diff --git a/node_modules/.bin/nodemon b/node_modules/.bin/nodemon deleted file mode 100644 index c477a189..00000000 --- a/node_modules/.bin/nodemon +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" -else - exec node "$basedir/../nodemon/bin/nodemon.js" "$@" -fi diff --git a/node_modules/.bin/nodemon.cmd b/node_modules/.bin/nodemon.cmd deleted file mode 100644 index 55acf8a4..00000000 --- a/node_modules/.bin/nodemon.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %* diff --git a/node_modules/.bin/nodemon.ps1 b/node_modules/.bin/nodemon.ps1 deleted file mode 100644 index d4e3f5d4..00000000 --- a/node_modules/.bin/nodemon.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args - } else { - & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args - } else { - & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/.bin/nodetouch b/node_modules/.bin/nodetouch deleted file mode 100644 index 3e146b41..00000000 --- a/node_modules/.bin/nodetouch +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" -else - exec node "$basedir/../touch/bin/nodetouch.js" "$@" -fi diff --git a/node_modules/.bin/nodetouch.cmd b/node_modules/.bin/nodetouch.cmd deleted file mode 100644 index 8298b918..00000000 --- a/node_modules/.bin/nodetouch.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %* diff --git a/node_modules/.bin/nodetouch.ps1 b/node_modules/.bin/nodetouch.ps1 deleted file mode 100644 index 5f68b4cb..00000000 --- a/node_modules/.bin/nodetouch.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args - } else { - & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args - } else { - & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver deleted file mode 100644 index 97c53279..00000000 --- a/node_modules/.bin/semver +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" -else - exec node "$basedir/../semver/bin/semver.js" "$@" -fi diff --git a/node_modules/.bin/semver.cmd b/node_modules/.bin/semver.cmd deleted file mode 100644 index 9913fa9d..00000000 --- a/node_modules/.bin/semver.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* diff --git a/node_modules/.bin/semver.ps1 b/node_modules/.bin/semver.ps1 deleted file mode 100644 index 314717ad..00000000 --- a/node_modules/.bin/semver.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args - } else { - & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args - } else { - & "node$exe" "$basedir/../semver/bin/semver.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100755 index 824c2889..00000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,1160 +0,0 @@ -{ - "name": "backend", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "license": "Apache-2.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/accepts": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bintrees": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.6.3", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", - "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.0", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-promise": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mime-db": { - "version": "1.54.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nodemon": { - "version": "3.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-to-regexp": { - "version": "8.3.0", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/pg": { - "version": "8.16.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", - "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", - "license": "MIT", - "dependencies": { - "pg-connection-string": "^2.9.1", - "pg-pool": "^3.10.1", - "pg-protocol": "^1.10.3", - "pg-types": "2.2.0", - "pgpass": "1.0.5" - }, - "engines": { - "node": ">= 16.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.2.7" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.2.7", - "license": "MIT", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.9.1", - "license": "MIT" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "license": "ISC", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.10.1", - "license": "MIT", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.10.3", - "license": "MIT" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prom-client": { - "version": "15.1.3", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api": "^1.4.0", - "tdigest": "^0.1.1" - }, - "engines": { - "node": "^16 || ^18 || >=20" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "dev": true, - "license": "MIT" - }, - "node_modules/qs": { - "version": "6.14.0", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.7.0", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/router": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "debug": "^4.3.5", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/serve-static": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/side-channel": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tdigest": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "bintrees": "1.0.2" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.1", - "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/type-is": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - } - } -} diff --git a/node_modules/@opentelemetry/api/LICENSE b/node_modules/@opentelemetry/api/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/node_modules/@opentelemetry/api/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/@opentelemetry/api/README.md b/node_modules/@opentelemetry/api/README.md deleted file mode 100644 index 59d4cd7a..00000000 --- a/node_modules/@opentelemetry/api/README.md +++ /dev/null @@ -1,116 +0,0 @@ -# OpenTelemetry API for JavaScript - -

- -API Reference -  •   -Documentation -
- - NPM Release - -
-

- -This package provides everything needed to interact with the OpenTelemetry API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser. - -The methods in this package perform no operations by default. This means they can be safely called by a library or end-user application whether there is an SDK registered or not. In order to generate and export telemetry data, you will also need an SDK such as the [OpenTelemetry JS SDK][opentelemetry-js]. - -## Tracing Quick Start - -### You Will Need - -- An application you wish to instrument -- [OpenTelemetry JS SDK][opentelemetry-js] -- Node.js >=8.5.0 (14+ is preferred) or an ECMAScript 5+ compatible browser - -**Note:** ECMAScript 5+ compatibility is for this package only. Please refer to the documentation for the SDK you are using to determine its minimum ECMAScript version. - -**Note for library authors:** Only your end users will need an OpenTelemetry SDK. If you wish to support OpenTelemetry in your library, you only need to use the OpenTelemetry API. For more information, please read the [tracing documentation][docs-tracing]. - -### Install Dependencies - -```sh -npm install @opentelemetry/api @opentelemetry/sdk-trace-base -``` - -### Trace Your Application - -In order to get started with tracing, you will need to first register an SDK. The SDK you are using may provide a convenience method which calls the registration methods for you, but if you would like to call them directly they are documented here: [SDK registration methods][docs-sdk-registration]. - -Once you have registered an SDK, you can start and end spans. A simple example of basic SDK registration and tracing a simple operation is below. The example should export spans to the console once per second. For more information, see the [tracing documentation][docs-tracing]. - -```javascript -const { trace } = require("@opentelemetry/api"); -const { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor } = require("@opentelemetry/sdk-trace-base"); - -// Create and register an SDK -const provider = new BasicTracerProvider(); -provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter())); -trace.setGlobalTracerProvider(provider); - -// Acquire a tracer from the global tracer provider which will be used to trace the application -const name = 'my-application-name'; -const version = '0.1.0'; -const tracer = trace.getTracer(name, version); - -// Trace your application by creating spans -async function operation() { - const span = tracer.startSpan("do operation"); - - // mock some work by sleeping 1 second - await new Promise((resolve, reject) => { - setTimeout(resolve, 1000); - }) - - span.end(); -} - -async function main() { - while (true) { - await operation(); - } -} - -main(); -``` - -## Version Compatibility - -Because the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API. - -## Upgrade Guidelines - -### 0.21.0 to 1.0.0 - -No breaking changes - -### 0.20.0 to 0.21.0 - -- [#78](https://github.com/open-telemetry/opentelemetry-js-api/issues/78) `api.context.bind` arguments reversed and `context` is now a required argument. -- [#46](https://github.com/open-telemetry/opentelemetry-js-api/issues/46) Noop classes and singletons are no longer exported. To create a noop span it is recommended to use `api.trace.wrapSpanContext` with `INVALID_SPAN_CONTEXT` instead of using the `NOOP_TRACER`. - -### 1.0.0-rc.3 to 0.20.0 - -- Removing `TimedEvent` which was not part of spec -- `HttpBaggage` renamed to `HttpBaggagePropagator` -- [#45](https://github.com/open-telemetry/opentelemetry-js-api/pull/45) `Span#context` renamed to `Span#spanContext` -- [#47](https://github.com/open-telemetry/opentelemetry-js-api/pull/47) `getSpan`/`setSpan`/`getSpanContext`/`setSpanContext` moved to `trace` namespace -- [#55](https://github.com/open-telemetry/opentelemetry-js-api/pull/55) `getBaggage`/`setBaggage`/`createBaggage` moved to `propagation` namespace - -## Useful links - -- For more information on OpenTelemetry, visit: -- For more about OpenTelemetry JavaScript: -- For help or feedback on this project, join us in [GitHub Discussions][discussions-url] - -## License - -Apache 2.0 - See [LICENSE][license-url] for more information. - -[opentelemetry-js]: https://github.com/open-telemetry/opentelemetry-js - -[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions -[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/api/LICENSE -[docs-tracing]: https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/tracing.md -[docs-sdk-registration]: https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/sdk-registration.md diff --git a/node_modules/@opentelemetry/api/build/esm/api/context.d.ts b/node_modules/@opentelemetry/api/build/esm/api/context.d.ts deleted file mode 100644 index 61caee8d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/context.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Context, ContextManager } from '../context/types'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Context API - */ -export declare class ContextAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Context API */ - static getInstance(): ContextAPI; - /** - * Set the current context manager. - * - * @returns true if the context manager was successfully registered, else false - */ - setGlobalContextManager(contextManager: ContextManager): boolean; - /** - * Get the currently active context - */ - active(): Context; - /** - * Execute a function with an active context - * - * @param context context to be active during function execution - * @param fn function to execute in a context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with ReturnType>(context: Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - /** - * Bind a context to a target function or event emitter - * - * @param context context to bind to the event emitter or function. Defaults to the currently active context - * @param target function or event emitter to bind - */ - bind(context: Context, target: T): T; - private _getContextManager; - /** Disable and remove the global context manager */ - disable(): void; -} -//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/context.js b/node_modules/@opentelemetry/api/build/esm/api/context.js deleted file mode 100644 index 0d02f972..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/context.js +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -}; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -import { NoopContextManager } from '../context/NoopContextManager'; -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { DiagAPI } from './diag'; -var API_NAME = 'context'; -var NOOP_CONTEXT_MANAGER = new NoopContextManager(); -/** - * Singleton object which represents the entry point to the OpenTelemetry Context API - */ -var ContextAPI = /** @class */ (function () { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - function ContextAPI() { - } - /** Get the singleton instance of the Context API */ - ContextAPI.getInstance = function () { - if (!this._instance) { - this._instance = new ContextAPI(); - } - return this._instance; - }; - /** - * Set the current context manager. - * - * @returns true if the context manager was successfully registered, else false - */ - ContextAPI.prototype.setGlobalContextManager = function (contextManager) { - return registerGlobal(API_NAME, contextManager, DiagAPI.instance()); - }; - /** - * Get the currently active context - */ - ContextAPI.prototype.active = function () { - return this._getContextManager().active(); - }; - /** - * Execute a function with an active context - * - * @param context context to be active during function execution - * @param fn function to execute in a context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - ContextAPI.prototype.with = function (context, fn, thisArg) { - var _a; - var args = []; - for (var _i = 3; _i < arguments.length; _i++) { - args[_i - 3] = arguments[_i]; - } - return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], __read(args), false)); - }; - /** - * Bind a context to a target function or event emitter - * - * @param context context to bind to the event emitter or function. Defaults to the currently active context - * @param target function or event emitter to bind - */ - ContextAPI.prototype.bind = function (context, target) { - return this._getContextManager().bind(context, target); - }; - ContextAPI.prototype._getContextManager = function () { - return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER; - }; - /** Disable and remove the global context manager */ - ContextAPI.prototype.disable = function () { - this._getContextManager().disable(); - unregisterGlobal(API_NAME, DiagAPI.instance()); - }; - return ContextAPI; -}()); -export { ContextAPI }; -//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/context.js.map b/node_modules/@opentelemetry/api/build/esm/api/context.js.map deleted file mode 100644 index 6938b716..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,IAAM,oBAAoB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEtD;;GAEG;AACH;IAGE,+FAA+F;IAC/F;IAAuB,CAAC;IAExB,oDAAoD;IACtC,sBAAW,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,4CAAuB,GAA9B,UAA+B,cAA8B;QAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACI,2BAAM,GAAb;QACE,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACI,yBAAI,GAAX,UACE,OAAgB,EAChB,EAAK,EACL,OAA8B;;QAC9B,cAAU;aAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;YAAV,6BAAU;;QAEV,OAAO,CAAA,KAAA,IAAI,CAAC,kBAAkB,EAAE,CAAA,CAAC,IAAI,0BAAC,OAAO,EAAE,EAAE,EAAE,OAAO,UAAK,IAAI,WAAE;IACvE,CAAC;IAED;;;;;OAKG;IACI,yBAAI,GAAX,UAAe,OAAgB,EAAE,MAAS;QACxC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEO,uCAAkB,GAA1B;QACE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IACrD,CAAC;IAED,oDAAoD;IAC7C,4BAAO,GAAd;QACE,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACH,iBAAC;AAAD,CAAC,AAnED,IAmEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { Context, ContextManager } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'context';\nconst NOOP_CONTEXT_MANAGER = new NoopContextManager();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport class ContextAPI {\n private static _instance?: ContextAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Context API */\n public static getInstance(): ContextAPI {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n public setGlobalContextManager(contextManager: ContextManager): boolean {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n }\n\n /**\n * Get the currently active context\n */\n public active(): Context {\n return this._getContextManager().active();\n }\n\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return this._getContextManager().with(context, fn, thisArg, ...args);\n }\n\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n public bind(context: Context, target: T): T {\n return this._getContextManager().bind(context, target);\n }\n\n private _getContextManager(): ContextManager {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n }\n\n /** Disable and remove the global context manager */\n public disable() {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/diag.d.ts b/node_modules/@opentelemetry/api/build/esm/api/diag.d.ts deleted file mode 100644 index 131db172..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/diag.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ComponentLoggerOptions, DiagLogFunction, DiagLogger, DiagLoggerApi } from '../diag/types'; -/** - * Singleton object which represents the entry point to the OpenTelemetry internal - * diagnostic API - */ -export declare class DiagAPI implements DiagLogger, DiagLoggerApi { - private static _instance?; - /** Get the singleton instance of the DiagAPI API */ - static instance(): DiagAPI; - /** - * Private internal constructor - * @private - */ - private constructor(); - setLogger: DiagLoggerApi['setLogger']; - /** - * - */ - createComponentLogger: (options: ComponentLoggerOptions) => DiagLogger; - verbose: DiagLogFunction; - debug: DiagLogFunction; - info: DiagLogFunction; - warn: DiagLogFunction; - error: DiagLogFunction; - /** - * Unregister the global logger and return to Noop - */ - disable: () => void; -} -//# sourceMappingURL=diag.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/diag.js b/node_modules/@opentelemetry/api/build/esm/api/diag.js deleted file mode 100644 index 25eb9afc..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/diag.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -}; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -import { DiagComponentLogger } from '../diag/ComponentLogger'; -import { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger'; -import { DiagLogLevel, } from '../diag/types'; -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -var API_NAME = 'diag'; -/** - * Singleton object which represents the entry point to the OpenTelemetry internal - * diagnostic API - */ -var DiagAPI = /** @class */ (function () { - /** - * Private internal constructor - * @private - */ - function DiagAPI() { - function _logProxy(funcName) { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var logger = getGlobal('diag'); - // shortcut if logger not set - if (!logger) - return; - return logger[funcName].apply(logger, __spreadArray([], __read(args), false)); - }; - } - // Using self local variable for minification purposes as 'this' cannot be minified - var self = this; - // DiagAPI specific functions - var setLogger = function (logger, optionsOrLogLevel) { - var _a, _b, _c; - if (optionsOrLogLevel === void 0) { optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }; } - if (logger === self) { - // There isn't much we can do here. - // Logging to the console might break the user application. - // Try to log to self. If a logger was previously registered it will receive the log. - var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'); - self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message); - return false; - } - if (typeof optionsOrLogLevel === 'number') { - optionsOrLogLevel = { - logLevel: optionsOrLogLevel, - }; - } - var oldLogger = getGlobal('diag'); - var newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger); - // There already is an logger registered. We'll let it know before overwriting it. - if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) { - var stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : ''; - oldLogger.warn("Current logger will be overwritten from " + stack); - newLogger.warn("Current logger will overwrite one already registered from " + stack); - } - return registerGlobal('diag', newLogger, self, true); - }; - self.setLogger = setLogger; - self.disable = function () { - unregisterGlobal(API_NAME, self); - }; - self.createComponentLogger = function (options) { - return new DiagComponentLogger(options); - }; - self.verbose = _logProxy('verbose'); - self.debug = _logProxy('debug'); - self.info = _logProxy('info'); - self.warn = _logProxy('warn'); - self.error = _logProxy('error'); - } - /** Get the singleton instance of the DiagAPI API */ - DiagAPI.instance = function () { - if (!this._instance) { - this._instance = new DiagAPI(); - } - return this._instance; - }; - return DiagAPI; -}()); -export { DiagAPI }; -//# sourceMappingURL=diag.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/diag.js.map b/node_modules/@opentelemetry/api/build/esm/api/diag.js.map deleted file mode 100644 index 380ed2d5..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/diag.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"diag.js","sourceRoot":"","sources":["../../../src/api/diag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAKL,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,IAAM,QAAQ,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH;IAYE;;;OAGG;IACH;QACE,SAAS,SAAS,CAAC,QAA0B;YAC3C,OAAO;gBAAU,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBACtB,IAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjC,6BAA6B;gBAC7B,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAhB,MAAM,2BAAc,IAAI,WAAE;YACnC,CAAC,CAAC;QACJ,CAAC;QAED,mFAAmF;QACnF,IAAM,IAAI,GAAG,IAAI,CAAC;QAElB,6BAA6B;QAE7B,IAAM,SAAS,GAA+B,UAC5C,MAAM,EACN,iBAAmD;;YAAnD,kCAAA,EAAA,sBAAsB,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE;YAEnD,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,mCAAmC;gBACnC,2DAA2D;gBAC3D,qFAAqF;gBACrF,IAAM,GAAG,GAAG,IAAI,KAAK,CACnB,oIAAoI,CACrI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC;aACd;YAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACzC,iBAAiB,GAAG;oBAClB,QAAQ,EAAE,iBAAiB;iBAC5B,CAAC;aACH;YAED,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,IAAM,SAAS,GAAG,wBAAwB,CACxC,MAAA,iBAAiB,CAAC,QAAQ,mCAAI,YAAY,CAAC,IAAI,EAC/C,MAAM,CACP,CAAC;YACF,kFAAkF;YAClF,IAAI,SAAS,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE;gBAC3D,IAAM,KAAK,GAAG,MAAA,IAAI,KAAK,EAAE,CAAC,KAAK,mCAAI,iCAAiC,CAAC;gBACrE,SAAS,CAAC,IAAI,CAAC,6CAA2C,KAAO,CAAC,CAAC;gBACnE,SAAS,CAAC,IAAI,CACZ,+DAA6D,KAAO,CACrE,CAAC;aACH;YAED,OAAO,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG;YACb,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG,UAAC,OAA+B;YAC3D,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAjFD,oDAAoD;IACtC,gBAAQ,GAAtB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IA+FH,cAAC;AAAD,CAAC,AAzGD,IAyGC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n DiagLogLevel,\n} from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/metrics.d.ts b/node_modules/@opentelemetry/api/build/esm/api/metrics.d.ts deleted file mode 100644 index 5adc1454..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/metrics.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Meter, MeterOptions } from '../metrics/Meter'; -import { MeterProvider } from '../metrics/MeterProvider'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Metrics API - */ -export declare class MetricsAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Metrics API */ - static getInstance(): MetricsAPI; - /** - * Set the current global meter provider. - * Returns true if the meter provider was successfully registered, else false. - */ - setGlobalMeterProvider(provider: MeterProvider): boolean; - /** - * Returns the global meter provider. - */ - getMeterProvider(): MeterProvider; - /** - * Returns a meter from the global meter provider. - */ - getMeter(name: string, version?: string, options?: MeterOptions): Meter; - /** Remove the global meter provider */ - disable(): void; -} -//# sourceMappingURL=metrics.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/metrics.js b/node_modules/@opentelemetry/api/build/esm/api/metrics.js deleted file mode 100644 index 92c575a4..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/metrics.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider'; -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { DiagAPI } from './diag'; -var API_NAME = 'metrics'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Metrics API - */ -var MetricsAPI = /** @class */ (function () { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - function MetricsAPI() { - } - /** Get the singleton instance of the Metrics API */ - MetricsAPI.getInstance = function () { - if (!this._instance) { - this._instance = new MetricsAPI(); - } - return this._instance; - }; - /** - * Set the current global meter provider. - * Returns true if the meter provider was successfully registered, else false. - */ - MetricsAPI.prototype.setGlobalMeterProvider = function (provider) { - return registerGlobal(API_NAME, provider, DiagAPI.instance()); - }; - /** - * Returns the global meter provider. - */ - MetricsAPI.prototype.getMeterProvider = function () { - return getGlobal(API_NAME) || NOOP_METER_PROVIDER; - }; - /** - * Returns a meter from the global meter provider. - */ - MetricsAPI.prototype.getMeter = function (name, version, options) { - return this.getMeterProvider().getMeter(name, version, options); - }; - /** Remove the global meter provider */ - MetricsAPI.prototype.disable = function () { - unregisterGlobal(API_NAME, DiagAPI.instance()); - }; - return MetricsAPI; -}()); -export { MetricsAPI }; -//# sourceMappingURL=metrics.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map b/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map deleted file mode 100644 index 39c6955a..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/api/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAE3B;;GAEG;AACH;IAGE,+FAA+F;IAC/F;IAAuB,CAAC;IAExB,oDAAoD;IACtC,sBAAW,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,2CAAsB,GAA7B,UAA8B,QAAuB;QACnD,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACI,qCAAgB,GAAvB;QACE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,6BAAQ,GAAf,UACE,IAAY,EACZ,OAAgB,EAChB,OAAsB;QAEtB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,uCAAuC;IAChC,4BAAO,GAAd;QACE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACH,iBAAC;AAAD,CAAC,AA7CD,IA6CC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from '../metrics/Meter';\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'metrics';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Metrics API\n */\nexport class MetricsAPI {\n private static _instance?: MetricsAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Metrics API */\n public static getInstance(): MetricsAPI {\n if (!this._instance) {\n this._instance = new MetricsAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global meter provider.\n * Returns true if the meter provider was successfully registered, else false.\n */\n public setGlobalMeterProvider(provider: MeterProvider): boolean {\n return registerGlobal(API_NAME, provider, DiagAPI.instance());\n }\n\n /**\n * Returns the global meter provider.\n */\n public getMeterProvider(): MeterProvider {\n return getGlobal(API_NAME) || NOOP_METER_PROVIDER;\n }\n\n /**\n * Returns a meter from the global meter provider.\n */\n public getMeter(\n name: string,\n version?: string,\n options?: MeterOptions\n ): Meter {\n return this.getMeterProvider().getMeter(name, version, options);\n }\n\n /** Remove the global meter provider */\n public disable(): void {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/propagation.d.ts b/node_modules/@opentelemetry/api/build/esm/api/propagation.d.ts deleted file mode 100644 index a22d24d3..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/propagation.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Context } from '../context/types'; -import { TextMapGetter, TextMapPropagator, TextMapSetter } from '../propagation/TextMapPropagator'; -import { getBaggage, getActiveBaggage, setBaggage, deleteBaggage } from '../baggage/context-helpers'; -import { createBaggage } from '../baggage/utils'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Propagation API - */ -export declare class PropagationAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Propagator API */ - static getInstance(): PropagationAPI; - /** - * Set the current propagator. - * - * @returns true if the propagator was successfully registered, else false - */ - setGlobalPropagator(propagator: TextMapPropagator): boolean; - /** - * Inject context into a carrier to be propagated inter-process - * - * @param context Context carrying tracing data to inject - * @param carrier carrier to inject context into - * @param setter Function used to set values on the carrier - */ - inject(context: Context, carrier: Carrier, setter?: TextMapSetter): void; - /** - * Extract context from a carrier - * - * @param context Context which the newly created context will inherit from - * @param carrier Carrier to extract context from - * @param getter Function used to extract keys from a carrier - */ - extract(context: Context, carrier: Carrier, getter?: TextMapGetter): Context; - /** - * Return a list of all fields which may be used by the propagator. - */ - fields(): string[]; - /** Remove the global propagator */ - disable(): void; - createBaggage: typeof createBaggage; - getBaggage: typeof getBaggage; - getActiveBaggage: typeof getActiveBaggage; - setBaggage: typeof setBaggage; - deleteBaggage: typeof deleteBaggage; - private _getGlobalPropagator; -} -//# sourceMappingURL=propagation.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/propagation.js b/node_modules/@opentelemetry/api/build/esm/api/propagation.js deleted file mode 100644 index d3f6f832..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/propagation.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator'; -import { defaultTextMapGetter, defaultTextMapSetter, } from '../propagation/TextMapPropagator'; -import { getBaggage, getActiveBaggage, setBaggage, deleteBaggage, } from '../baggage/context-helpers'; -import { createBaggage } from '../baggage/utils'; -import { DiagAPI } from './diag'; -var API_NAME = 'propagation'; -var NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator(); -/** - * Singleton object which represents the entry point to the OpenTelemetry Propagation API - */ -var PropagationAPI = /** @class */ (function () { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - function PropagationAPI() { - this.createBaggage = createBaggage; - this.getBaggage = getBaggage; - this.getActiveBaggage = getActiveBaggage; - this.setBaggage = setBaggage; - this.deleteBaggage = deleteBaggage; - } - /** Get the singleton instance of the Propagator API */ - PropagationAPI.getInstance = function () { - if (!this._instance) { - this._instance = new PropagationAPI(); - } - return this._instance; - }; - /** - * Set the current propagator. - * - * @returns true if the propagator was successfully registered, else false - */ - PropagationAPI.prototype.setGlobalPropagator = function (propagator) { - return registerGlobal(API_NAME, propagator, DiagAPI.instance()); - }; - /** - * Inject context into a carrier to be propagated inter-process - * - * @param context Context carrying tracing data to inject - * @param carrier carrier to inject context into - * @param setter Function used to set values on the carrier - */ - PropagationAPI.prototype.inject = function (context, carrier, setter) { - if (setter === void 0) { setter = defaultTextMapSetter; } - return this._getGlobalPropagator().inject(context, carrier, setter); - }; - /** - * Extract context from a carrier - * - * @param context Context which the newly created context will inherit from - * @param carrier Carrier to extract context from - * @param getter Function used to extract keys from a carrier - */ - PropagationAPI.prototype.extract = function (context, carrier, getter) { - if (getter === void 0) { getter = defaultTextMapGetter; } - return this._getGlobalPropagator().extract(context, carrier, getter); - }; - /** - * Return a list of all fields which may be used by the propagator. - */ - PropagationAPI.prototype.fields = function () { - return this._getGlobalPropagator().fields(); - }; - /** Remove the global propagator */ - PropagationAPI.prototype.disable = function () { - unregisterGlobal(API_NAME, DiagAPI.instance()); - }; - PropagationAPI.prototype._getGlobalPropagator = function () { - return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR; - }; - return PropagationAPI; -}()); -export { PropagationAPI }; -//# sourceMappingURL=propagation.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map b/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map deleted file mode 100644 index 1cad8f86..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"propagation.js","sourceRoot":"","sources":["../../../src/api/propagation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAIrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,IAAM,QAAQ,GAAG,aAAa,CAAC;AAC/B,IAAM,wBAAwB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAE7D;;GAEG;AACH;IAGE,+FAA+F;IAC/F;QA8DO,kBAAa,GAAG,aAAa,CAAC;QAE9B,eAAU,GAAG,UAAU,CAAC;QAExB,qBAAgB,GAAG,gBAAgB,CAAC;QAEpC,eAAU,GAAG,UAAU,CAAC;QAExB,kBAAa,GAAG,aAAa,CAAC;IAtEd,CAAC;IAExB,uDAAuD;IACzC,0BAAW,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,4CAAmB,GAA1B,UAA2B,UAA6B;QACtD,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACI,+BAAM,GAAb,UACE,OAAgB,EAChB,OAAgB,EAChB,MAAqD;QAArD,uBAAA,EAAA,6BAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;OAMG;IACI,gCAAO,GAAd,UACE,OAAgB,EAChB,OAAgB,EAChB,MAAqD;QAArD,uBAAA,EAAA,6BAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,+BAAM,GAAb;QACE,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,mCAAmC;IAC5B,gCAAO,GAAd;QACE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAYO,6CAAoB,GAA5B;QACE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC;IACzD,CAAC;IACH,qBAAC;AAAD,CAAC,AA/ED,IA+EC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport {\n defaultTextMapGetter,\n defaultTextMapSetter,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n getBaggage,\n getActiveBaggage,\n setBaggage,\n deleteBaggage,\n} from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'propagation';\nconst NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nexport class PropagationAPI {\n private static _instance?: PropagationAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Propagator API */\n public static getInstance(): PropagationAPI {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n public setGlobalPropagator(propagator: TextMapPropagator): boolean {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n }\n\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n public inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter = defaultTextMapSetter\n ): void {\n return this._getGlobalPropagator().inject(context, carrier, setter);\n }\n\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n public extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter = defaultTextMapGetter\n ): Context {\n return this._getGlobalPropagator().extract(context, carrier, getter);\n }\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n public fields(): string[] {\n return this._getGlobalPropagator().fields();\n }\n\n /** Remove the global propagator */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n\n public createBaggage = createBaggage;\n\n public getBaggage = getBaggage;\n\n public getActiveBaggage = getActiveBaggage;\n\n public setBaggage = setBaggage;\n\n public deleteBaggage = deleteBaggage;\n\n private _getGlobalPropagator(): TextMapPropagator {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/trace.d.ts b/node_modules/@opentelemetry/api/build/esm/api/trace.d.ts deleted file mode 100644 index df59fd2f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/trace.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { isSpanContextValid, wrapSpanContext } from '../trace/spancontext-utils'; -import { Tracer } from '../trace/tracer'; -import { TracerProvider } from '../trace/tracer_provider'; -import { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext } from '../trace/context-utils'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -export declare class TraceAPI { - private static _instance?; - private _proxyTracerProvider; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Trace API */ - static getInstance(): TraceAPI; - /** - * Set the current global tracer. - * - * @returns true if the tracer provider was successfully registered, else false - */ - setGlobalTracerProvider(provider: TracerProvider): boolean; - /** - * Returns the global tracer provider. - */ - getTracerProvider(): TracerProvider; - /** - * Returns a tracer from the global tracer provider. - */ - getTracer(name: string, version?: string): Tracer; - /** Remove the global tracer provider */ - disable(): void; - wrapSpanContext: typeof wrapSpanContext; - isSpanContextValid: typeof isSpanContextValid; - deleteSpan: typeof deleteSpan; - getSpan: typeof getSpan; - getActiveSpan: typeof getActiveSpan; - getSpanContext: typeof getSpanContext; - setSpan: typeof setSpan; - setSpanContext: typeof setSpanContext; -} -//# sourceMappingURL=trace.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/trace.js b/node_modules/@opentelemetry/api/build/esm/api/trace.js deleted file mode 100644 index a4aa6e6a..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/trace.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { ProxyTracerProvider } from '../trace/ProxyTracerProvider'; -import { isSpanContextValid, wrapSpanContext, } from '../trace/spancontext-utils'; -import { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext, } from '../trace/context-utils'; -import { DiagAPI } from './diag'; -var API_NAME = 'trace'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -var TraceAPI = /** @class */ (function () { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - function TraceAPI() { - this._proxyTracerProvider = new ProxyTracerProvider(); - this.wrapSpanContext = wrapSpanContext; - this.isSpanContextValid = isSpanContextValid; - this.deleteSpan = deleteSpan; - this.getSpan = getSpan; - this.getActiveSpan = getActiveSpan; - this.getSpanContext = getSpanContext; - this.setSpan = setSpan; - this.setSpanContext = setSpanContext; - } - /** Get the singleton instance of the Trace API */ - TraceAPI.getInstance = function () { - if (!this._instance) { - this._instance = new TraceAPI(); - } - return this._instance; - }; - /** - * Set the current global tracer. - * - * @returns true if the tracer provider was successfully registered, else false - */ - TraceAPI.prototype.setGlobalTracerProvider = function (provider) { - var success = registerGlobal(API_NAME, this._proxyTracerProvider, DiagAPI.instance()); - if (success) { - this._proxyTracerProvider.setDelegate(provider); - } - return success; - }; - /** - * Returns the global tracer provider. - */ - TraceAPI.prototype.getTracerProvider = function () { - return getGlobal(API_NAME) || this._proxyTracerProvider; - }; - /** - * Returns a tracer from the global tracer provider. - */ - TraceAPI.prototype.getTracer = function (name, version) { - return this.getTracerProvider().getTracer(name, version); - }; - /** Remove the global tracer provider */ - TraceAPI.prototype.disable = function () { - unregisterGlobal(API_NAME, DiagAPI.instance()); - this._proxyTracerProvider = new ProxyTracerProvider(); - }; - return TraceAPI; -}()); -export { TraceAPI }; -//# sourceMappingURL=trace.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/api/trace.js.map b/node_modules/@opentelemetry/api/build/esm/api/trace.js.map deleted file mode 100644 index 122b7e21..00000000 --- a/node_modules/@opentelemetry/api/build/esm/api/trace.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/api/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,aAAa,EACb,OAAO,EACP,cAAc,EACd,OAAO,EACP,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,IAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB;;GAEG;AACH;IAKE,+FAA+F;IAC/F;QAHQ,yBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAmDlD,oBAAe,GAAG,eAAe,CAAC;QAElC,uBAAkB,GAAG,kBAAkB,CAAC;QAExC,eAAU,GAAG,UAAU,CAAC;QAExB,YAAO,GAAG,OAAO,CAAC;QAElB,kBAAa,GAAG,aAAa,CAAC;QAE9B,mBAAc,GAAG,cAAc,CAAC;QAEhC,YAAO,GAAG,OAAO,CAAC;QAElB,mBAAc,GAAG,cAAc,CAAC;IA9DhB,CAAC;IAExB,kDAAkD;IACpC,oBAAW,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,0CAAuB,GAA9B,UAA+B,QAAwB;QACrD,IAAM,OAAO,GAAG,cAAc,CAC5B,QAAQ,EACR,IAAI,CAAC,oBAAoB,EACzB,OAAO,CAAC,QAAQ,EAAE,CACnB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SACjD;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,oCAAiB,GAAxB;QACE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,4BAAS,GAAhB,UAAiB,IAAY,EAAE,OAAgB;QAC7C,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,wCAAwC;IACjC,0BAAO,GAAd;QACE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACxD,CAAC;IAiBH,eAAC;AAAD,CAAC,AArED,IAqEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport { Tracer } from '../trace/tracer';\nimport { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getActiveSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n public getActiveSpan = getActiveSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.d.ts b/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.d.ts deleted file mode 100644 index 23750eb6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Context } from '../context/types'; -import { Baggage } from './types'; -/** - * Retrieve the current baggage from the given context - * - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -export declare function getBaggage(context: Context): Baggage | undefined; -/** - * Retrieve the current baggage from the active/current context - * - * @returns {Baggage} Extracted baggage from the context - */ -export declare function getActiveBaggage(): Baggage | undefined; -/** - * Store a baggage in the given context - * - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -export declare function setBaggage(context: Context, baggage: Baggage): Context; -/** - * Delete the baggage stored in the given context - * - * @param {Context} Context that manage all context values - */ -export declare function deleteBaggage(context: Context): Context; -//# sourceMappingURL=context-helpers.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js b/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js deleted file mode 100644 index 69113341..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ContextAPI } from '../api/context'; -import { createContextKey } from '../context/context'; -/** - * Baggage key - */ -var BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key'); -/** - * Retrieve the current baggage from the given context - * - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -export function getBaggage(context) { - return context.getValue(BAGGAGE_KEY) || undefined; -} -/** - * Retrieve the current baggage from the active/current context - * - * @returns {Baggage} Extracted baggage from the context - */ -export function getActiveBaggage() { - return getBaggage(ContextAPI.getInstance().active()); -} -/** - * Store a baggage in the given context - * - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -export function setBaggage(context, baggage) { - return context.setValue(BAGGAGE_KEY, baggage); -} -/** - * Delete the baggage stored in the given context - * - * @param {Context} Context that manage all context values - */ -export function deleteBaggage(context) { - return context.deleteValue(BAGGAGE_KEY); -} -//# sourceMappingURL=context-helpers.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map b/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map deleted file mode 100644 index 8670ebdf..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-helpers.js","sourceRoot":"","sources":["../../../src/baggage/context-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD;;GAEG;AACH,IAAM,WAAW,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa,IAAI,SAAS,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,OAAgB;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Baggage } from './types';\n\n/**\n * Baggage key\n */\nconst BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key');\n\n/**\n * Retrieve the current baggage from the given context\n *\n * @param {Context} Context that manage all context values\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getBaggage(context: Context): Baggage | undefined {\n return (context.getValue(BAGGAGE_KEY) as Baggage) || undefined;\n}\n\n/**\n * Retrieve the current baggage from the active/current context\n *\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getActiveBaggage(): Baggage | undefined {\n return getBaggage(ContextAPI.getInstance().active());\n}\n\n/**\n * Store a baggage in the given context\n *\n * @param {Context} Context that manage all context values\n * @param {Baggage} baggage that will be set in the actual context\n */\nexport function setBaggage(context: Context, baggage: Baggage): Context {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n\n/**\n * Delete the baggage stored in the given context\n *\n * @param {Context} Context that manage all context values\n */\nexport function deleteBaggage(context: Context): Context {\n return context.deleteValue(BAGGAGE_KEY);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.d.ts b/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.d.ts deleted file mode 100644 index e6b45540..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Baggage, BaggageEntry } from '../types'; -export declare class BaggageImpl implements Baggage { - private _entries; - constructor(entries?: Map); - getEntry(key: string): BaggageEntry | undefined; - getAllEntries(): [string, BaggageEntry][]; - setEntry(key: string, entry: BaggageEntry): BaggageImpl; - removeEntry(key: string): BaggageImpl; - removeEntries(...keys: string[]): BaggageImpl; - clear(): BaggageImpl; -} -//# sourceMappingURL=baggage-impl.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js b/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js deleted file mode 100644 index c29d6852..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -}; -var __values = (this && this.__values) || function(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -}; -var BaggageImpl = /** @class */ (function () { - function BaggageImpl(entries) { - this._entries = entries ? new Map(entries) : new Map(); - } - BaggageImpl.prototype.getEntry = function (key) { - var entry = this._entries.get(key); - if (!entry) { - return undefined; - } - return Object.assign({}, entry); - }; - BaggageImpl.prototype.getAllEntries = function () { - return Array.from(this._entries.entries()).map(function (_a) { - var _b = __read(_a, 2), k = _b[0], v = _b[1]; - return [k, v]; - }); - }; - BaggageImpl.prototype.setEntry = function (key, entry) { - var newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.set(key, entry); - return newBaggage; - }; - BaggageImpl.prototype.removeEntry = function (key) { - var newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.delete(key); - return newBaggage; - }; - BaggageImpl.prototype.removeEntries = function () { - var e_1, _a; - var keys = []; - for (var _i = 0; _i < arguments.length; _i++) { - keys[_i] = arguments[_i]; - } - var newBaggage = new BaggageImpl(this._entries); - try { - for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) { - var key = keys_1_1.value; - newBaggage._entries.delete(key); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1); - } - finally { if (e_1) throw e_1.error; } - } - return newBaggage; - }; - BaggageImpl.prototype.clear = function () { - return new BaggageImpl(); - }; - return BaggageImpl; -}()); -export { BaggageImpl }; -//# sourceMappingURL=baggage-impl.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map b/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map deleted file mode 100644 index 1f3d95a7..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"baggage-impl.js","sourceRoot":"","sources":["../../../../src/baggage/internal/baggage-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH;IAGE,qBAAY,OAAmC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACzD,CAAC;IAED,8BAAQ,GAAR,UAAS,GAAW;QAClB,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,mCAAa,GAAb;QACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAM;gBAAN,KAAA,aAAM,EAAL,CAAC,QAAA,EAAE,CAAC,QAAA;YAAM,OAAA,CAAC,CAAC,EAAE,CAAC,CAAC;QAAN,CAAM,CAAC,CAAC;IACrE,CAAC;IAED,8BAAQ,GAAR,UAAS,GAAW,EAAE,KAAmB;QACvC,IAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iCAAW,GAAX,UAAY,GAAW;QACrB,IAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mCAAa,GAAb;;QAAc,cAAiB;aAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;YAAjB,yBAAiB;;QAC7B,IAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAClD,KAAkB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA,4CAAE;gBAAnB,IAAM,GAAG,iBAAA;gBACZ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACjC;;;;;;;;;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,2BAAK,GAAL;QACE,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IACH,kBAAC;AAAD,CAAC,AA3CD,IA2CC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Baggage, BaggageEntry } from '../types';\n\nexport class BaggageImpl implements Baggage {\n private _entries: Map;\n\n constructor(entries?: Map) {\n this._entries = entries ? new Map(entries) : new Map();\n }\n\n getEntry(key: string): BaggageEntry | undefined {\n const entry = this._entries.get(key);\n if (!entry) {\n return undefined;\n }\n\n return Object.assign({}, entry);\n }\n\n getAllEntries(): [string, BaggageEntry][] {\n return Array.from(this._entries.entries()).map(([k, v]) => [k, v]);\n }\n\n setEntry(key: string, entry: BaggageEntry): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.set(key, entry);\n return newBaggage;\n }\n\n removeEntry(key: string): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.delete(key);\n return newBaggage;\n }\n\n removeEntries(...keys: string[]): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n for (const key of keys) {\n newBaggage._entries.delete(key);\n }\n return newBaggage;\n }\n\n clear(): BaggageImpl {\n return new BaggageImpl();\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.d.ts b/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.d.ts deleted file mode 100644 index 9cd991c1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Symbol used to make BaggageEntryMetadata an opaque type - */ -export declare const baggageEntryMetadataSymbol: unique symbol; -//# sourceMappingURL=symbol.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js b/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js deleted file mode 100644 index 0e7dc36d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Symbol used to make BaggageEntryMetadata an opaque type - */ -export var baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata'); -//# sourceMappingURL=symbol.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js.map b/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js.map deleted file mode 100644 index f0748665..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/baggage/internal/symbol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,MAAM,CAAC,IAAM,0BAA0B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Symbol used to make BaggageEntryMetadata an opaque type\n */\nexport const baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/types.d.ts b/node_modules/@opentelemetry/api/build/esm/baggage/types.d.ts deleted file mode 100644 index 32fa0ec6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/types.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { baggageEntryMetadataSymbol } from './internal/symbol'; -export interface BaggageEntry { - /** `String` value of the `BaggageEntry`. */ - value: string; - /** - * Metadata is an optional string property defined by the W3C baggage specification. - * It currently has no special meaning defined by the specification. - */ - metadata?: BaggageEntryMetadata; -} -/** - * Serializable Metadata defined by the W3C baggage specification. - * It currently has no special meaning defined by the OpenTelemetry or W3C. - */ -export declare type BaggageEntryMetadata = { - toString(): string; -} & { - __TYPE__: typeof baggageEntryMetadataSymbol; -}; -/** - * Baggage represents collection of key-value pairs with optional metadata. - * Each key of Baggage is associated with exactly one value. - * Baggage may be used to annotate and enrich telemetry data. - */ -export interface Baggage { - /** - * Get an entry from Baggage if it exists - * - * @param key The key which identifies the BaggageEntry - */ - getEntry(key: string): BaggageEntry | undefined; - /** - * Get a list of all entries in the Baggage - */ - getAllEntries(): [string, BaggageEntry][]; - /** - * Returns a new baggage with the entries from the current bag and the specified entry - * - * @param key string which identifies the baggage entry - * @param entry BaggageEntry for the given key - */ - setEntry(key: string, entry: BaggageEntry): Baggage; - /** - * Returns a new baggage with the entries from the current bag except the removed entry - * - * @param key key identifying the entry to be removed - */ - removeEntry(key: string): Baggage; - /** - * Returns a new baggage with the entries from the current bag except the removed entries - * - * @param key keys identifying the entries to be removed - */ - removeEntries(...key: string[]): Baggage; - /** - * Returns a new baggage with no entries - */ - clear(): Baggage; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/types.js b/node_modules/@opentelemetry/api/build/esm/baggage/types.js deleted file mode 100644 index 928faad0..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/types.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/types.js.map b/node_modules/@opentelemetry/api/build/esm/baggage/types.js.map deleted file mode 100644 index ae80c197..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/baggage/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\n\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface BaggageEntry {\n /** `String` value of the `BaggageEntry`. */\n value: string;\n /**\n * Metadata is an optional string property defined by the W3C baggage specification.\n * It currently has no special meaning defined by the specification.\n */\n metadata?: BaggageEntryMetadata;\n}\n\n/**\n * Serializable Metadata defined by the W3C baggage specification.\n * It currently has no special meaning defined by the OpenTelemetry or W3C.\n */\nexport type BaggageEntryMetadata = { toString(): string } & {\n __TYPE__: typeof baggageEntryMetadataSymbol;\n};\n\n/**\n * Baggage represents collection of key-value pairs with optional metadata.\n * Each key of Baggage is associated with exactly one value.\n * Baggage may be used to annotate and enrich telemetry data.\n */\nexport interface Baggage {\n /**\n * Get an entry from Baggage if it exists\n *\n * @param key The key which identifies the BaggageEntry\n */\n getEntry(key: string): BaggageEntry | undefined;\n\n /**\n * Get a list of all entries in the Baggage\n */\n getAllEntries(): [string, BaggageEntry][];\n\n /**\n * Returns a new baggage with the entries from the current bag and the specified entry\n *\n * @param key string which identifies the baggage entry\n * @param entry BaggageEntry for the given key\n */\n setEntry(key: string, entry: BaggageEntry): Baggage;\n\n /**\n * Returns a new baggage with the entries from the current bag except the removed entry\n *\n * @param key key identifying the entry to be removed\n */\n removeEntry(key: string): Baggage;\n\n /**\n * Returns a new baggage with the entries from the current bag except the removed entries\n *\n * @param key keys identifying the entries to be removed\n */\n removeEntries(...key: string[]): Baggage;\n\n /**\n * Returns a new baggage with no entries\n */\n clear(): Baggage;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/utils.d.ts b/node_modules/@opentelemetry/api/build/esm/baggage/utils.d.ts deleted file mode 100644 index 9955d9e2..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/utils.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Baggage, BaggageEntry, BaggageEntryMetadata } from './types'; -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -export declare function createBaggage(entries?: Record): Baggage; -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -export declare function baggageEntryMetadataFromString(str: string): BaggageEntryMetadata; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/utils.js b/node_modules/@opentelemetry/api/build/esm/baggage/utils.js deleted file mode 100644 index 3cc27165..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/utils.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { DiagAPI } from '../api/diag'; -import { BaggageImpl } from './internal/baggage-impl'; -import { baggageEntryMetadataSymbol } from './internal/symbol'; -var diag = DiagAPI.instance(); -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -export function createBaggage(entries) { - if (entries === void 0) { entries = {}; } - return new BaggageImpl(new Map(Object.entries(entries))); -} -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -export function baggageEntryMetadataFromString(str) { - if (typeof str !== 'string') { - diag.error("Cannot create baggage metadata from unknown type: " + typeof str); - str = ''; - } - return { - __TYPE__: baggageEntryMetadataSymbol, - toString: function () { - return str; - }, - }; -} -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map b/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map deleted file mode 100644 index f5a00f5b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/baggage/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAG/D,IAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA0C;IAA1C,wBAAA,EAAA,YAA0C;IAE1C,OAAO,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,GAAW;IAEX,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,CAAC,KAAK,CACR,uDAAqD,OAAO,GAAK,CAClE,CAAC;QACF,GAAG,GAAG,EAAE,CAAC;KACV;IAED,OAAO;QACL,QAAQ,EAAE,0BAA0B;QACpC,QAAQ;YACN,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagAPI } from '../api/diag';\nimport { BaggageImpl } from './internal/baggage-impl';\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\nimport { Baggage, BaggageEntry, BaggageEntryMetadata } from './types';\n\nconst diag = DiagAPI.instance();\n\n/**\n * Create a new Baggage with optional entries\n *\n * @param entries An array of baggage entries the new baggage should contain\n */\nexport function createBaggage(\n entries: Record = {}\n): Baggage {\n return new BaggageImpl(new Map(Object.entries(entries)));\n}\n\n/**\n * Create a serializable BaggageEntryMetadata object from a string.\n *\n * @param str string metadata. Format is currently not defined by the spec and has no special meaning.\n *\n */\nexport function baggageEntryMetadataFromString(\n str: string\n): BaggageEntryMetadata {\n if (typeof str !== 'string') {\n diag.error(\n `Cannot create baggage metadata from unknown type: ${typeof str}`\n );\n str = '';\n }\n\n return {\n __TYPE__: baggageEntryMetadataSymbol,\n toString() {\n return str;\n },\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Attributes.d.ts b/node_modules/@opentelemetry/api/build/esm/common/Attributes.d.ts deleted file mode 100644 index 19994fb2..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Attributes.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Attributes is a map from string to attribute values. - * - * Note: only the own enumerable keys are counted as valid attribute keys. - */ -export interface Attributes { - [attributeKey: string]: AttributeValue | undefined; -} -/** - * Attribute values may be any non-nullish primitive value except an object. - * - * null or undefined attribute values are invalid and will result in undefined behavior. - */ -export declare type AttributeValue = string | number | boolean | Array | Array | Array; -//# sourceMappingURL=Attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Attributes.js b/node_modules/@opentelemetry/api/build/esm/common/Attributes.js deleted file mode 100644 index dbb1e497..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Attributes.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Attributes.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Attributes.js.map b/node_modules/@opentelemetry/api/build/esm/common/Attributes.js.map deleted file mode 100644 index 2649c949..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Attributes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Attributes.js","sourceRoot":"","sources":["../../../src/common/Attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Attributes is a map from string to attribute values.\n *\n * Note: only the own enumerable keys are counted as valid attribute keys.\n */\nexport interface Attributes {\n [attributeKey: string]: AttributeValue | undefined;\n}\n\n/**\n * Attribute values may be any non-nullish primitive value except an object.\n *\n * null or undefined attribute values are invalid and will result in undefined behavior.\n */\nexport type AttributeValue =\n | string\n | number\n | boolean\n | Array\n | Array\n | Array;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Exception.d.ts b/node_modules/@opentelemetry/api/build/esm/common/Exception.d.ts deleted file mode 100644 index e175a7fd..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Exception.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -interface ExceptionWithCode { - code: string | number; - name?: string; - message?: string; - stack?: string; -} -interface ExceptionWithMessage { - code?: string | number; - message: string; - name?: string; - stack?: string; -} -interface ExceptionWithName { - code?: string | number; - message?: string; - name: string; - stack?: string; -} -/** - * Defines Exception. - * - * string or an object with one of (message or name or code) and optional stack - */ -export declare type Exception = ExceptionWithCode | ExceptionWithMessage | ExceptionWithName | string; -export {}; -//# sourceMappingURL=Exception.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Exception.js b/node_modules/@opentelemetry/api/build/esm/common/Exception.js deleted file mode 100644 index 6522a8e6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Exception.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Exception.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Exception.js.map b/node_modules/@opentelemetry/api/build/esm/common/Exception.js.map deleted file mode 100644 index 989dd3d1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Exception.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../src/common/Exception.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ExceptionWithCode {\n code: string | number;\n name?: string;\n message?: string;\n stack?: string;\n}\n\ninterface ExceptionWithMessage {\n code?: string | number;\n message: string;\n name?: string;\n stack?: string;\n}\n\ninterface ExceptionWithName {\n code?: string | number;\n message?: string;\n name: string;\n stack?: string;\n}\n\n/**\n * Defines Exception.\n *\n * string or an object with one of (message or name or code) and optional stack\n */\nexport type Exception =\n | ExceptionWithCode\n | ExceptionWithMessage\n | ExceptionWithName\n | string;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Time.d.ts b/node_modules/@opentelemetry/api/build/esm/common/Time.d.ts deleted file mode 100644 index cc3c502c..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Time.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Defines High-Resolution Time. - * - * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970. - * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds. - * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150. - * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds: - * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210. - * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds: - * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000. - * This is represented in HrTime format as [1609504210, 150000000]. - */ -export declare type HrTime = [number, number]; -/** - * Defines TimeInput. - * - * hrtime, epoch milliseconds, performance.now() or Date - */ -export declare type TimeInput = HrTime | number | Date; -//# sourceMappingURL=Time.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Time.js b/node_modules/@opentelemetry/api/build/esm/common/Time.js deleted file mode 100644 index 2abdf582..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Time.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=Time.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/common/Time.js.map b/node_modules/@opentelemetry/api/build/esm/common/Time.js.map deleted file mode 100644 index ae124f03..00000000 --- a/node_modules/@opentelemetry/api/build/esm/common/Time.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../src/common/Time.ts"],"names":[],"mappings":"","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Defines High-Resolution Time.\n *\n * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970.\n * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds.\n * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150.\n * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds:\n * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210.\n * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds:\n * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000.\n * This is represented in HrTime format as [1609504210, 150000000].\n */\nexport type HrTime = [number, number];\n\n/**\n * Defines TimeInput.\n *\n * hrtime, epoch milliseconds, performance.now() or Date\n */\nexport type TimeInput = HrTime | number | Date;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context-api.d.ts b/node_modules/@opentelemetry/api/build/esm/context-api.d.ts deleted file mode 100644 index 650f4eec..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ContextAPI } from './api/context'; -/** Entrypoint for context API */ -export declare const context: ContextAPI; -//# sourceMappingURL=context-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context-api.js b/node_modules/@opentelemetry/api/build/esm/context-api.js deleted file mode 100644 index b89fb257..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { ContextAPI } from './api/context'; -/** Entrypoint for context API */ -export var context = ContextAPI.getInstance(); -//# sourceMappingURL=context-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context-api.js.map b/node_modules/@opentelemetry/api/build/esm/context-api.js.map deleted file mode 100644 index a59bfc1e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-api.js","sourceRoot":"","sources":["../../src/context-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,iCAAiC;AACjC,MAAM,CAAC,IAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ContextAPI } from './api/context';\n/** Entrypoint for context API */\nexport const context = ContextAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.d.ts b/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.d.ts deleted file mode 100644 index 48a16597..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as types from './types'; -export declare class NoopContextManager implements types.ContextManager { - active(): types.Context; - with ReturnType>(_context: types.Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - bind(_context: types.Context, target: T): T; - enable(): this; - disable(): this; -} -//# sourceMappingURL=NoopContextManager.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js b/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js deleted file mode 100644 index 9794eff1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -}; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -import { ROOT_CONTEXT } from './context'; -var NoopContextManager = /** @class */ (function () { - function NoopContextManager() { - } - NoopContextManager.prototype.active = function () { - return ROOT_CONTEXT; - }; - NoopContextManager.prototype.with = function (_context, fn, thisArg) { - var args = []; - for (var _i = 3; _i < arguments.length; _i++) { - args[_i - 3] = arguments[_i]; - } - return fn.call.apply(fn, __spreadArray([thisArg], __read(args), false)); - }; - NoopContextManager.prototype.bind = function (_context, target) { - return target; - }; - NoopContextManager.prototype.enable = function () { - return this; - }; - NoopContextManager.prototype.disable = function () { - return this; - }; - return NoopContextManager; -}()); -export { NoopContextManager }; -//# sourceMappingURL=NoopContextManager.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map b/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map deleted file mode 100644 index 045925eb..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopContextManager.js","sourceRoot":"","sources":["../../../src/context/NoopContextManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC;IAAA;IAyBA,CAAC;IAxBC,mCAAM,GAAN;QACE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iCAAI,GAAJ,UACE,QAAuB,EACvB,EAAK,EACL,OAA8B;QAC9B,cAAU;aAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;YAAV,6BAAU;;QAEV,OAAO,EAAE,CAAC,IAAI,OAAP,EAAE,iBAAM,OAAO,UAAK,IAAI,WAAE;IACnC,CAAC;IAED,iCAAI,GAAJ,UAAQ,QAAuB,EAAE,MAAS;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mCAAM,GAAN;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAO,GAAP;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,yBAAC;AAAD,CAAC,AAzBD,IAyBC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ROOT_CONTEXT } from './context';\nimport * as types from './types';\n\nexport class NoopContextManager implements types.ContextManager {\n active(): types.Context {\n return ROOT_CONTEXT;\n }\n\n with ReturnType>(\n _context: types.Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return fn.call(thisArg, ...args);\n }\n\n bind(_context: types.Context, target: T): T {\n return target;\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n return this;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/context.d.ts b/node_modules/@opentelemetry/api/build/esm/context/context.d.ts deleted file mode 100644 index 8be02594..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/context.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Context } from './types'; -/** Get a key to uniquely identify a context value */ -export declare function createContextKey(description: string): symbol; -/** The root context is used as the default parent context when there is no active context */ -export declare const ROOT_CONTEXT: Context; -//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/context.js b/node_modules/@opentelemetry/api/build/esm/context/context.js deleted file mode 100644 index f8909dee..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/context.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** Get a key to uniquely identify a context value */ -export function createContextKey(description) { - // The specification states that for the same input, multiple calls should - // return different keys. Due to the nature of the JS dependency management - // system, this creates problems where multiple versions of some package - // could hold different keys for the same property. - // - // Therefore, we use Symbol.for which returns the same key for the same input. - return Symbol.for(description); -} -var BaseContext = /** @class */ (function () { - /** - * Construct a new context which inherits values from an optional parent context. - * - * @param parentContext a context from which to inherit values - */ - function BaseContext(parentContext) { - // for minification - var self = this; - self._currentContext = parentContext ? new Map(parentContext) : new Map(); - self.getValue = function (key) { return self._currentContext.get(key); }; - self.setValue = function (key, value) { - var context = new BaseContext(self._currentContext); - context._currentContext.set(key, value); - return context; - }; - self.deleteValue = function (key) { - var context = new BaseContext(self._currentContext); - context._currentContext.delete(key); - return context; - }; - } - return BaseContext; -}()); -/** The root context is used as the default parent context when there is no active context */ -export var ROOT_CONTEXT = new BaseContext(); -//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/context.js.map b/node_modules/@opentelemetry/api/build/esm/context/context.js.map deleted file mode 100644 index 7a7affd0..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,qDAAqD;AACrD,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,mDAAmD;IACnD,EAAE;IACF,8EAA8E;IAC9E,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED;IAGE;;;;OAIG;IACH,qBAAY,aAAoC;QAC9C,mBAAmB;QACnB,IAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAE1E,IAAI,CAAC,QAAQ,GAAG,UAAC,GAAW,IAAK,OAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAA7B,CAA6B,CAAC;QAE/D,IAAI,CAAC,QAAQ,GAAG,UAAC,GAAW,EAAE,KAAc;YAC1C,IAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,UAAC,GAAW;YAC7B,IAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IAyBH,kBAAC;AAAD,CAAC,AApDD,IAoDC;AAED,6FAA6F;AAC7F,MAAM,CAAC,IAAM,YAAY,GAAY,IAAI,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from './types';\n\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description: string) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\n\nclass BaseContext implements Context {\n private _currentContext!: Map;\n\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n constructor(parentContext?: Map) {\n // for minification\n const self = this;\n\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n\n self.getValue = (key: symbol) => self._currentContext.get(key);\n\n self.setValue = (key: symbol, value: unknown): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n\n self.deleteValue = (key: symbol): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n public getValue!: (key: symbol) => unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n public setValue!: (key: symbol, value: unknown) => Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n public deleteValue!: (key: symbol) => Context;\n}\n\n/** The root context is used as the default parent context when there is no active context */\nexport const ROOT_CONTEXT: Context = new BaseContext();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/types.d.ts b/node_modules/@opentelemetry/api/build/esm/context/types.d.ts deleted file mode 100644 index 7e866320..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/types.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -export interface Context { - /** - * Get a value from the context. - * - * @param key key which identifies a context value - */ - getValue(key: symbol): unknown; - /** - * Create a new context which inherits from this context and has - * the given key set to the given value. - * - * @param key context key for which to set the value - * @param value value to set for the given key - */ - setValue(key: symbol, value: unknown): Context; - /** - * Return a new context which inherits from this context but does - * not contain a value for the given key. - * - * @param key context key for which to clear a value - */ - deleteValue(key: symbol): Context; -} -export interface ContextManager { - /** - * Get the current active context - */ - active(): Context; - /** - * Run the fn callback with object set as the current active context - * @param context Any object to set as the current active context - * @param fn A callback to be immediately run within a specific context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with ReturnType>(context: Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - /** - * Bind an object as the current context (or a specific one) - * @param [context] Optionally specify the context which you want to assign - * @param target Any object to which a context need to be set - */ - bind(context: Context, target: T): T; - /** - * Enable context management - */ - enable(): this; - /** - * Disable context management - */ - disable(): this; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/types.js b/node_modules/@opentelemetry/api/build/esm/context/types.js deleted file mode 100644 index 928faad0..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/types.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/context/types.js.map b/node_modules/@opentelemetry/api/build/esm/context/types.js.map deleted file mode 100644 index d438aa31..00000000 --- a/node_modules/@opentelemetry/api/build/esm/context/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/context/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Context {\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n getValue(key: symbol): unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n setValue(key: symbol, value: unknown): Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n deleteValue(key: symbol): Context;\n}\n\nexport interface ContextManager {\n /**\n * Get the current active context\n */\n active(): Context;\n\n /**\n * Run the fn callback with object set as the current active context\n * @param context Any object to set as the current active context\n * @param fn A callback to be immediately run within a specific context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType;\n\n /**\n * Bind an object as the current context (or a specific one)\n * @param [context] Optionally specify the context which you want to assign\n * @param target Any object to which a context need to be set\n */\n bind(context: Context, target: T): T;\n\n /**\n * Enable context management\n */\n enable(): this;\n\n /**\n * Disable context management\n */\n disable(): this;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag-api.d.ts b/node_modules/@opentelemetry/api/build/esm/diag-api.d.ts deleted file mode 100644 index d82fdb18..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag-api.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DiagAPI } from './api/diag'; -/** - * Entrypoint for Diag API. - * Defines Diagnostic handler used for internal diagnostic logging operations. - * The default provides a Noop DiagLogger implementation which may be changed via the - * diag.setLogger(logger: DiagLogger) function. - */ -export declare const diag: DiagAPI; -//# sourceMappingURL=diag-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag-api.js b/node_modules/@opentelemetry/api/build/esm/diag-api.js deleted file mode 100644 index 9f85c1be..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag-api.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { DiagAPI } from './api/diag'; -/** - * Entrypoint for Diag API. - * Defines Diagnostic handler used for internal diagnostic logging operations. - * The default provides a Noop DiagLogger implementation which may be changed via the - * diag.setLogger(logger: DiagLogger) function. - */ -export var diag = DiagAPI.instance(); -//# sourceMappingURL=diag-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag-api.js.map b/node_modules/@opentelemetry/api/build/esm/diag-api.js.map deleted file mode 100644 index 6b09a0cc..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"diag-api.js","sourceRoot":"","sources":["../../src/diag-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC;;;;;GAKG;AACH,MAAM,CAAC,IAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n */\nexport const diag = DiagAPI.instance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.d.ts b/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.d.ts deleted file mode 100644 index f0609503..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ComponentLoggerOptions, DiagLogger } from './types'; -/** - * Component Logger which is meant to be used as part of any component which - * will add automatically additional namespace in front of the log message. - * It will then forward all message to global diag logger - * @example - * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); - * cLogger.debug('test'); - * // @opentelemetry/instrumentation-http test - */ -export declare class DiagComponentLogger implements DiagLogger { - private _namespace; - constructor(props: ComponentLoggerOptions); - debug(...args: any[]): void; - error(...args: any[]): void; - info(...args: any[]): void; - warn(...args: any[]): void; - verbose(...args: any[]): void; -} -//# sourceMappingURL=ComponentLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js b/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js deleted file mode 100644 index 44bc8be6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; -}; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -import { getGlobal } from '../internal/global-utils'; -/** - * Component Logger which is meant to be used as part of any component which - * will add automatically additional namespace in front of the log message. - * It will then forward all message to global diag logger - * @example - * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); - * cLogger.debug('test'); - * // @opentelemetry/instrumentation-http test - */ -var DiagComponentLogger = /** @class */ (function () { - function DiagComponentLogger(props) { - this._namespace = props.namespace || 'DiagComponentLogger'; - } - DiagComponentLogger.prototype.debug = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return logProxy('debug', this._namespace, args); - }; - DiagComponentLogger.prototype.error = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return logProxy('error', this._namespace, args); - }; - DiagComponentLogger.prototype.info = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return logProxy('info', this._namespace, args); - }; - DiagComponentLogger.prototype.warn = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return logProxy('warn', this._namespace, args); - }; - DiagComponentLogger.prototype.verbose = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return logProxy('verbose', this._namespace, args); - }; - return DiagComponentLogger; -}()); -export { DiagComponentLogger }; -function logProxy(funcName, namespace, args) { - var logger = getGlobal('diag'); - // shortcut if logger not set - if (!logger) { - return; - } - args.unshift(namespace); - return logger[funcName].apply(logger, __spreadArray([], __read(args), false)); -} -//# sourceMappingURL=ComponentLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map b/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map deleted file mode 100644 index 8671613f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ComponentLogger.js","sourceRoot":"","sources":["../../../src/diag/ComponentLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD;;;;;;;;GAQG;AACH;IAGE,6BAAY,KAA6B;QACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC;IAC7D,CAAC;IAEM,mCAAK,GAAZ;QAAa,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,mCAAK,GAAZ;QAAa,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,kCAAI,GAAX;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,kCAAI,GAAX;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,qCAAO,GAAd;QAAe,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC3B,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACH,0BAAC;AAAD,CAAC,AA1BD,IA0BC;;AAED,SAAS,QAAQ,CACf,QAA0B,EAC1B,SAAiB,EACjB,IAAS;IAET,IAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,6BAA6B;IAC7B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAhB,MAAM,2BAAe,IAAoC,WAAE;AACpE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport { ComponentLoggerOptions, DiagLogger, DiagLogFunction } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: any[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: any[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: any[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: any[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: any[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: any\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n args.unshift(namespace);\n return logger[funcName](...(args as Parameters));\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.d.ts b/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.d.ts deleted file mode 100644 index fa3db1e3..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DiagLogger, DiagLogFunction } from './types'; -/** - * A simple Immutable Console based diagnostic logger which will output any messages to the Console. - * If you want to limit the amount of logging to a specific level or lower use the - * {@link createLogLevelDiagLogger} - */ -export declare class DiagConsoleLogger implements DiagLogger { - constructor(); - /** Log an error scenario that was not expected and caused the requested operation to fail. */ - error: DiagLogFunction; - /** - * Log a warning scenario to inform the developer of an issues that should be investigated. - * The requested operation may or may not have succeeded or completed. - */ - warn: DiagLogFunction; - /** - * Log a general informational message, this should not affect functionality. - * This is also the default logging level so this should NOT be used for logging - * debugging level information. - */ - info: DiagLogFunction; - /** - * Log a general debug message that can be useful for identifying a failure. - * Information logged at this level may include diagnostic details that would - * help identify a failure scenario. Useful scenarios would be to log the execution - * order of async operations - */ - debug: DiagLogFunction; - /** - * Log a detailed (verbose) trace level logging that can be used to identify failures - * where debug level logging would be insufficient, this level of tracing can include - * input and output parameters and as such may include PII information passing through - * the API. As such it is recommended that this level of tracing should not be enabled - * in a production environment. - */ - verbose: DiagLogFunction; -} -//# sourceMappingURL=consoleLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js b/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js deleted file mode 100644 index 5965b8aa..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var consoleMap = [ - { n: 'error', c: 'error' }, - { n: 'warn', c: 'warn' }, - { n: 'info', c: 'info' }, - { n: 'debug', c: 'debug' }, - { n: 'verbose', c: 'trace' }, -]; -/** - * A simple Immutable Console based diagnostic logger which will output any messages to the Console. - * If you want to limit the amount of logging to a specific level or lower use the - * {@link createLogLevelDiagLogger} - */ -var DiagConsoleLogger = /** @class */ (function () { - function DiagConsoleLogger() { - function _consoleFunc(funcName) { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (console) { - // Some environments only expose the console when the F12 developer console is open - // eslint-disable-next-line no-console - var theFunc = console[funcName]; - if (typeof theFunc !== 'function') { - // Not all environments support all functions - // eslint-disable-next-line no-console - theFunc = console.log; - } - // One last final check - if (typeof theFunc === 'function') { - return theFunc.apply(console, args); - } - } - }; - } - for (var i = 0; i < consoleMap.length; i++) { - this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c); - } - } - return DiagConsoleLogger; -}()); -export { DiagConsoleLogger }; -//# sourceMappingURL=consoleLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js.map b/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js.map deleted file mode 100644 index fbfd0cf7..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"consoleLogger.js","sourceRoot":"","sources":["../../../src/diag/consoleLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,IAAM,UAAU,GAAiD;IAC/D,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;IAC1B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;IACxB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;IACxB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;IAC1B,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE;CAC7B,CAAC;AAEF;;;;GAIG;AACH;IACE;QACE,SAAS,YAAY,CAAC,QAAwB;YAC5C,OAAO;gBAAU,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBACtB,IAAI,OAAO,EAAE;oBACX,mFAAmF;oBACnF,sCAAsC;oBACtC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,6CAA6C;wBAC7C,sCAAsC;wBACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;qBACvB;oBAED,uBAAuB;oBACvB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBACrC;iBACF;YACH,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;IAkCH,wBAAC;AAAD,CAAC,AA3DD,IA2DC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger, DiagLogFunction } from './types';\n\ntype ConsoleMapKeys = 'error' | 'warn' | 'info' | 'debug' | 'trace';\nconst consoleMap: { n: keyof DiagLogger; c: ConsoleMapKeys }[] = [\n { n: 'error', c: 'error' },\n { n: 'warn', c: 'warn' },\n { n: 'info', c: 'info' },\n { n: 'debug', c: 'debug' },\n { n: 'verbose', c: 'trace' },\n];\n\n/**\n * A simple Immutable Console based diagnostic logger which will output any messages to the Console.\n * If you want to limit the amount of logging to a specific level or lower use the\n * {@link createLogLevelDiagLogger}\n */\nexport class DiagConsoleLogger implements DiagLogger {\n constructor() {\n function _consoleFunc(funcName: ConsoleMapKeys): DiagLogFunction {\n return function (...args) {\n if (console) {\n // Some environments only expose the console when the F12 developer console is open\n // eslint-disable-next-line no-console\n let theFunc = console[funcName];\n if (typeof theFunc !== 'function') {\n // Not all environments support all functions\n // eslint-disable-next-line no-console\n theFunc = console.log;\n }\n\n // One last final check\n if (typeof theFunc === 'function') {\n return theFunc.apply(console, args);\n }\n }\n };\n }\n\n for (let i = 0; i < consoleMap.length; i++) {\n this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);\n }\n }\n\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n public error!: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n public warn!: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n public info!: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario. Useful scenarios would be to log the execution\n * order of async operations\n */\n public debug!: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n public verbose!: DiagLogFunction;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.d.ts b/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.d.ts deleted file mode 100644 index 890b9f1e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DiagLogger, DiagLogLevel } from '../types'; -export declare function createLogLevelDiagLogger(maxLevel: DiagLogLevel, logger: DiagLogger): DiagLogger; -//# sourceMappingURL=logLevelLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js b/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js deleted file mode 100644 index aedab38d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { DiagLogLevel } from '../types'; -export function createLogLevelDiagLogger(maxLevel, logger) { - if (maxLevel < DiagLogLevel.NONE) { - maxLevel = DiagLogLevel.NONE; - } - else if (maxLevel > DiagLogLevel.ALL) { - maxLevel = DiagLogLevel.ALL; - } - // In case the logger is null or undefined - logger = logger || {}; - function _filterFunc(funcName, theLevel) { - var theFunc = logger[funcName]; - if (typeof theFunc === 'function' && maxLevel >= theLevel) { - return theFunc.bind(logger); - } - return function () { }; - } - return { - error: _filterFunc('error', DiagLogLevel.ERROR), - warn: _filterFunc('warn', DiagLogLevel.WARN), - info: _filterFunc('info', DiagLogLevel.INFO), - debug: _filterFunc('debug', DiagLogLevel.DEBUG), - verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE), - }; -} -//# sourceMappingURL=logLevelLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map b/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map deleted file mode 100644 index 7f9fafde..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logLevelLogger.js","sourceRoot":"","sources":["../../../../src/diag/internal/logLevelLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA+B,YAAY,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,UAAU,wBAAwB,CACtC,QAAsB,EACtB,MAAkB;IAElB,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE;QAChC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;KAC9B;SAAM,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE;QACtC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC;KAC7B;IAED,0CAA0C;IAC1C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAEtB,SAAS,WAAW,CAClB,QAA0B,EAC1B,QAAsB;QAEtB,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACzD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,cAAa,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC/C,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;QAC5C,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;QAC5C,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC/C,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;KACtD,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogFunction, DiagLogger, DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.d.ts b/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.d.ts deleted file mode 100644 index ac71ee3b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { DiagLogger } from '../types'; -/** - * Returns a No-Op Diagnostic logger where all messages do nothing. - * @implements {@link DiagLogger} - * @returns {DiagLogger} - */ -export declare function createNoopDiagLogger(): DiagLogger; -//# sourceMappingURL=noopLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js b/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js deleted file mode 100644 index 7d5ba63d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function noopLogFunction() { } -/** - * Returns a No-Op Diagnostic logger where all messages do nothing. - * @implements {@link DiagLogger} - * @returns {DiagLogger} - */ -export function createNoopDiagLogger() { - return { - verbose: noopLogFunction, - debug: noopLogFunction, - info: noopLogFunction, - warn: noopLogFunction, - error: noopLogFunction, - }; -} -//# sourceMappingURL=noopLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js.map b/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js.map deleted file mode 100644 index bf20aeaa..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/internal/noopLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"noopLogger.js","sourceRoot":"","sources":["../../../../src/diag/internal/noopLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,SAAS,eAAe,KAAI,CAAC;AAE7B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;KACvB,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger } from '../types';\n\nfunction noopLogFunction() {}\n\n/**\n * Returns a No-Op Diagnostic logger where all messages do nothing.\n * @implements {@link DiagLogger}\n * @returns {DiagLogger}\n */\nexport function createNoopDiagLogger(): DiagLogger {\n return {\n verbose: noopLogFunction,\n debug: noopLogFunction,\n info: noopLogFunction,\n warn: noopLogFunction,\n error: noopLogFunction,\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/types.d.ts b/node_modules/@opentelemetry/api/build/esm/diag/types.d.ts deleted file mode 100644 index e992cc59..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/types.d.ts +++ /dev/null @@ -1,100 +0,0 @@ -export declare type DiagLogFunction = (message: string, ...args: unknown[]) => void; -/** - * Defines an internal diagnostic logger interface which is used to log internal diagnostic - * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function. - * API provided implementations include :- - * - a No-Op {@link createNoopDiagLogger} - * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger} - * - a general Console {@link DiagConsoleLogger} version. - */ -export interface DiagLogger { - /** Log an error scenario that was not expected and caused the requested operation to fail. */ - error: DiagLogFunction; - /** - * Log a warning scenario to inform the developer of an issues that should be investigated. - * The requested operation may or may not have succeeded or completed. - */ - warn: DiagLogFunction; - /** - * Log a general informational message, this should not affect functionality. - * This is also the default logging level so this should NOT be used for logging - * debugging level information. - */ - info: DiagLogFunction; - /** - * Log a general debug message that can be useful for identifying a failure. - * Information logged at this level may include diagnostic details that would - * help identify a failure scenario. - * For example: Logging the order of execution of async operations. - */ - debug: DiagLogFunction; - /** - * Log a detailed (verbose) trace level logging that can be used to identify failures - * where debug level logging would be insufficient, this level of tracing can include - * input and output parameters and as such may include PII information passing through - * the API. As such it is recommended that this level of tracing should not be enabled - * in a production environment. - */ - verbose: DiagLogFunction; -} -/** - * Defines the available internal logging levels for the diagnostic logger, the numeric values - * of the levels are defined to match the original values from the initial LogLevel to avoid - * compatibility/migration issues for any implementation that assume the numeric ordering. - */ -export declare enum DiagLogLevel { - /** Diagnostic Logging level setting to disable all logging (except and forced logs) */ - NONE = 0, - /** Identifies an error scenario */ - ERROR = 30, - /** Identifies a warning scenario */ - WARN = 50, - /** General informational log message */ - INFO = 60, - /** General debug log message */ - DEBUG = 70, - /** - * Detailed trace level logging should only be used for development, should only be set - * in a development environment. - */ - VERBOSE = 80, - /** Used to set the logging level to include all logging */ - ALL = 9999 -} -/** - * Defines options for ComponentLogger - */ -export interface ComponentLoggerOptions { - namespace: string; -} -export interface DiagLoggerOptions { - /** - * The {@link DiagLogLevel} used to filter logs sent to the logger. - * - * @defaultValue DiagLogLevel.INFO - */ - logLevel?: DiagLogLevel; - /** - * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered. - */ - suppressOverrideMessage?: boolean; -} -export interface DiagLoggerApi { - /** - * Set the global DiagLogger and DiagLogLevel. - * If a global diag logger is already set, this will override it. - * - * @param logger - The {@link DiagLogger} instance to set as the default logger. - * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set. - * @returns `true` if the logger was successfully registered, else `false` - */ - setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean; - /** - * - * @param logger - The {@link DiagLogger} instance to set as the default logger. - * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}. - * @returns `true` if the logger was successfully registered, else `false` - */ - setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/types.js b/node_modules/@opentelemetry/api/build/esm/diag/types.js deleted file mode 100644 index 306585e8..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/types.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Defines the available internal logging levels for the diagnostic logger, the numeric values - * of the levels are defined to match the original values from the initial LogLevel to avoid - * compatibility/migration issues for any implementation that assume the numeric ordering. - */ -export var DiagLogLevel; -(function (DiagLogLevel) { - /** Diagnostic Logging level setting to disable all logging (except and forced logs) */ - DiagLogLevel[DiagLogLevel["NONE"] = 0] = "NONE"; - /** Identifies an error scenario */ - DiagLogLevel[DiagLogLevel["ERROR"] = 30] = "ERROR"; - /** Identifies a warning scenario */ - DiagLogLevel[DiagLogLevel["WARN"] = 50] = "WARN"; - /** General informational log message */ - DiagLogLevel[DiagLogLevel["INFO"] = 60] = "INFO"; - /** General debug log message */ - DiagLogLevel[DiagLogLevel["DEBUG"] = 70] = "DEBUG"; - /** - * Detailed trace level logging should only be used for development, should only be set - * in a development environment. - */ - DiagLogLevel[DiagLogLevel["VERBOSE"] = 80] = "VERBOSE"; - /** Used to set the logging level to include all logging */ - DiagLogLevel[DiagLogLevel["ALL"] = 9999] = "ALL"; -})(DiagLogLevel || (DiagLogLevel = {})); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/diag/types.js.map b/node_modules/@opentelemetry/api/build/esm/diag/types.js.map deleted file mode 100644 index 6578cce1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/diag/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diag/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+CH;;;;GAIG;AACH,MAAM,CAAN,IAAY,YAwBX;AAxBD,WAAY,YAAY;IACtB,uFAAuF;IACvF,+CAAQ,CAAA;IAER,mCAAmC;IACnC,kDAAU,CAAA;IAEV,oCAAoC;IACpC,gDAAS,CAAA;IAET,wCAAwC;IACxC,gDAAS,CAAA;IAET,gCAAgC;IAChC,kDAAU,CAAA;IAEV;;;OAGG;IACH,sDAAY,CAAA;IAEZ,2DAA2D;IAC3D,gDAAU,CAAA;AACZ,CAAC,EAxBW,YAAY,KAAZ,YAAY,QAwBvB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/index.d.ts b/node_modules/@opentelemetry/api/build/esm/experimental/index.d.ts deleted file mode 100644 index bec39657..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { wrapTracer, SugaredTracer } from './trace/SugaredTracer'; -export { SugaredSpanOptions } from './trace/SugaredOptions'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/index.js b/node_modules/@opentelemetry/api/build/esm/experimental/index.js deleted file mode 100644 index 8400e49f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export { wrapTracer, SugaredTracer } from './trace/SugaredTracer'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/index.js.map b/node_modules/@opentelemetry/api/build/esm/experimental/index.js.map deleted file mode 100644 index d1699d94..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/experimental/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { wrapTracer, SugaredTracer } from './trace/SugaredTracer';\nexport { SugaredSpanOptions } from './trace/SugaredOptions';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.d.ts b/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.d.ts deleted file mode 100644 index 89040aff..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Span, SpanOptions } from '../../'; -/** - * Options needed for span creation - */ -export interface SugaredSpanOptions extends SpanOptions { - /** - * function to overwrite default exception behavior to record the exception. No exceptions should be thrown in the function. - * @param e Error which triggered this exception - * @param span current span from context - */ - onException?: (e: Error, span: Span) => void; -} -//# sourceMappingURL=SugaredOptions.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js b/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js deleted file mode 100644 index 0c6a2bd4..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=SugaredOptions.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js.map b/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js.map deleted file mode 100644 index 2a18a56b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SugaredOptions.js","sourceRoot":"","sources":["../../../../src/experimental/trace/SugaredOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Span, SpanOptions } from '../../';\n\n/**\n * Options needed for span creation\n */\nexport interface SugaredSpanOptions extends SpanOptions {\n /**\n * function to overwrite default exception behavior to record the exception. No exceptions should be thrown in the function.\n * @param e Error which triggered this exception\n * @param span current span from context\n */\n onException?: (e: Error, span: Span) => void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.d.ts b/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.d.ts deleted file mode 100644 index 1ba7da92..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { SugaredSpanOptions } from './SugaredOptions'; -import { Context, Span, Tracer } from '../../'; -/** - * return a new SugaredTracer created from the supplied one - * @param tracer - */ -export declare function wrapTracer(tracer: Tracer): SugaredTracer; -export declare class SugaredTracer implements Tracer { - private readonly _tracer; - constructor(tracer: Tracer); - startActiveSpan: Tracer['startActiveSpan']; - startSpan: Tracer['startSpan']; - /** - * Starts a new {@link Span} and calls the given function passing it the - * created span as first argument. - * Additionally, the new span gets set in context and this context is activated - * for the duration of the function call. - * The span will be closed after the function has executed. - * If an exception occurs, it is recorded, the status is set to ERROR and the exception is rethrown. - * - * @param name The name of the span - * @param [options] SugaredSpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns return value of fn - * @example - * const something = tracer.withActiveSpan('op', span => { - * // do some work - * }); - * @example - * const something = await tracer.withActiveSpan('op', span => { - * // do some async work - * }); - */ - withActiveSpan ReturnType>(name: string, fn: F): ReturnType; - withActiveSpan ReturnType>(name: string, options: SugaredSpanOptions, fn: F): ReturnType; - withActiveSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; - /** - * Starts a new {@link Span} and ends it after execution of fn without setting it on context. - * The span will be closed after the function has executed. - * If an exception occurs, it is recorded, the status is et to ERROR and rethrown. - * - * This method does NOT modify the current Context. - * - * @param name The name of the span - * @param [options] SugaredSpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns Span The newly created span - * @example - * const something = tracer.withSpan('op', span => { - * // do some work - * }); - * @example - * const something = await tracer.withSpan('op', span => { - * // do some async work - * }); - */ - withSpan ReturnType>(name: string, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; -} -//# sourceMappingURL=SugaredTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js b/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js deleted file mode 100644 index 6fb98ded..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js +++ /dev/null @@ -1,92 +0,0 @@ -import { context, SpanStatusCode } from '../../'; -var defaultOnException = function (e, span) { - span.recordException(e); - span.setStatus({ - code: SpanStatusCode.ERROR, - }); -}; -/** - * return a new SugaredTracer created from the supplied one - * @param tracer - */ -export function wrapTracer(tracer) { - return new SugaredTracer(tracer); -} -var SugaredTracer = /** @class */ (function () { - function SugaredTracer(tracer) { - this._tracer = tracer; - this.startSpan = tracer.startSpan.bind(this._tracer); - this.startActiveSpan = tracer.startActiveSpan.bind(this._tracer); - } - SugaredTracer.prototype.withActiveSpan = function (name, arg2, arg3, arg4) { - var _a = massageParams(arg2, arg3, arg4), opts = _a.opts, ctx = _a.ctx, fn = _a.fn; - return this._tracer.startActiveSpan(name, opts, ctx, function (span) { - return handleFn(span, opts, fn); - }); - }; - SugaredTracer.prototype.withSpan = function (name, arg2, arg3, arg4) { - var _a = massageParams(arg2, arg3, arg4), opts = _a.opts, ctx = _a.ctx, fn = _a.fn; - var span = this._tracer.startSpan(name, opts, ctx); - return handleFn(span, opts, fn); - }; - return SugaredTracer; -}()); -export { SugaredTracer }; -/** - * Massages parameters of withSpan and withActiveSpan to allow signature overwrites - * @param arg - * @param arg2 - * @param arg3 - */ -function massageParams(arg, arg2, arg3) { - var opts; - var ctx; - var fn; - if (!arg2 && !arg3) { - fn = arg; - } - else if (!arg3) { - opts = arg; - fn = arg2; - } - else { - opts = arg; - ctx = arg2; - fn = arg3; - } - opts = opts !== null && opts !== void 0 ? opts : {}; - ctx = ctx !== null && ctx !== void 0 ? ctx : context.active(); - return { opts: opts, ctx: ctx, fn: fn }; -} -/** - * Executes fn, returns results and runs onException in the case of exception to allow overwriting of error handling - * @param span - * @param opts - * @param fn - */ -function handleFn(span, opts, fn) { - var _a; - var onException = (_a = opts.onException) !== null && _a !== void 0 ? _a : defaultOnException; - var errorHandler = function (e) { - onException(e, span); - span.end(); - throw e; - }; - try { - var ret = fn(span); - // if fn is an async function, attach a recordException and spanEnd callback to the promise - if (typeof (ret === null || ret === void 0 ? void 0 : ret.then) === 'function') { - return ret.then(function (val) { - span.end(); - return val; - }, errorHandler); - } - span.end(); - return ret; - } - catch (e) { - // add throw to signal the compiler that this will throw in the inner scope - throw errorHandler(e); - } -} -//# sourceMappingURL=SugaredTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js.map b/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js.map deleted file mode 100644 index d9bac44b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/experimental/trace/SugaredTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SugaredTracer.js","sourceRoot":"","sources":["../../../../src/experimental/trace/SugaredTracer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAiB,cAAc,EAAU,MAAM,QAAQ,CAAC;AAExE,IAAM,kBAAkB,GAAG,UAAC,CAAQ,EAAE,IAAU;IAC9C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,SAAS,CAAC;QACb,IAAI,EAAE,cAAc,CAAC,KAAK;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;IAGE,uBAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IA0CD,sCAAc,GAAd,UACE,IAAY,EACZ,IAA4B,EAC5B,IAAkB,EAClB,IAAQ;QAEF,IAAA,KAAoB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAjD,IAAI,UAAA,EAAE,GAAG,SAAA,EAAE,EAAE,QAAoC,CAAC;QAE1D,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAC,IAAU;YAC9D,OAAA,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QAAxB,CAAwB,CACR,CAAC;IACrB,CAAC;IA4CD,gCAAQ,GAAR,UACE,IAAY,EACZ,IAA4B,EAC5B,IAAkB,EAClB,IAAQ;QAEF,IAAA,KAAoB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAjD,IAAI,UAAA,EAAE,GAAG,SAAA,EAAE,EAAE,QAAoC,CAAC;QAE1D,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAkB,CAAC;IACnD,CAAC;IACH,oBAAC;AAAD,CAAC,AAnHD,IAmHC;;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,GAA2B,EAC3B,IAAkB,EAClB,IAAQ;IAER,IAAI,IAAoC,CAAC;IACzC,IAAI,GAAwB,CAAC;IAC7B,IAAI,EAAK,CAAC;IAEV,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;QAClB,EAAE,GAAG,GAAQ,CAAC;KACf;SAAM,IAAI,CAAC,IAAI,EAAE;QAChB,IAAI,GAAG,GAAyB,CAAC;QACjC,EAAE,GAAG,IAAS,CAAC;KAChB;SAAM;QACL,IAAI,GAAG,GAAyB,CAAC;QACjC,GAAG,GAAG,IAAe,CAAC;QACtB,EAAE,GAAG,IAAS,CAAC;KAChB;IACD,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;IAClB,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAE9B,OAAO,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,EAAE,IAAA,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,IAAU,EACV,IAAwB,EACxB,EAAK;;IAEL,IAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,kBAAkB,CAAC;IAC3D,IAAM,YAAY,GAAG,UAAC,CAAQ;QAC5B,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,IAAI;QACF,IAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAA2B,CAAC;QAC/C,2FAA2F;QAC3F,IAAI,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE;YACnC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAA,GAAG;gBACjB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,YAAY,CAAkB,CAAC;SACnC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,GAAoB,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,2EAA2E;QAC3E,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;KACvB;AACH,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SugaredSpanOptions } from './SugaredOptions';\nimport { context, Context, Span, SpanStatusCode, Tracer } from '../../';\n\nconst defaultOnException = (e: Error, span: Span) => {\n span.recordException(e);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n });\n};\n\n/**\n * return a new SugaredTracer created from the supplied one\n * @param tracer\n */\nexport function wrapTracer(tracer: Tracer): SugaredTracer {\n return new SugaredTracer(tracer);\n}\n\nexport class SugaredTracer implements Tracer {\n private readonly _tracer: Tracer;\n\n constructor(tracer: Tracer) {\n this._tracer = tracer;\n this.startSpan = tracer.startSpan.bind(this._tracer);\n this.startActiveSpan = tracer.startActiveSpan.bind(this._tracer);\n }\n\n startActiveSpan: Tracer['startActiveSpan'];\n startSpan: Tracer['startSpan'];\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally, the new span gets set in context and this context is activated\n * for the duration of the function call.\n * The span will be closed after the function has executed.\n * If an exception occurs, it is recorded, the status is set to ERROR and the exception is rethrown.\n *\n * @param name The name of the span\n * @param [options] SugaredSpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.withActiveSpan('op', span => {\n * // do some work\n * });\n * @example\n * const something = await tracer.withActiveSpan('op', span => {\n * // do some async work\n * });\n */\n withActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n arg2: F | SugaredSpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType {\n const { opts, ctx, fn } = massageParams(arg2, arg3, arg4);\n\n return this._tracer.startActiveSpan(name, opts, ctx, (span: Span) =>\n handleFn(span, opts, fn)\n ) as ReturnType;\n }\n\n /**\n * Starts a new {@link Span} and ends it after execution of fn without setting it on context.\n * The span will be closed after the function has executed.\n * If an exception occurs, it is recorded, the status is et to ERROR and rethrown.\n *\n * This method does NOT modify the current Context.\n *\n * @param name The name of the span\n * @param [options] SugaredSpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns Span The newly created span\n * @example\n * const something = tracer.withSpan('op', span => {\n * // do some work\n * });\n * @example\n * const something = await tracer.withSpan('op', span => {\n * // do some async work\n * });\n */\n withSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n arg2: SugaredSpanOptions | F,\n arg3?: Context | F,\n arg4?: F\n ): ReturnType {\n const { opts, ctx, fn } = massageParams(arg2, arg3, arg4);\n\n const span = this._tracer.startSpan(name, opts, ctx);\n return handleFn(span, opts, fn) as ReturnType;\n }\n}\n\n/**\n * Massages parameters of withSpan and withActiveSpan to allow signature overwrites\n * @param arg\n * @param arg2\n * @param arg3\n */\nfunction massageParams ReturnType>(\n arg: F | SugaredSpanOptions,\n arg2?: F | Context,\n arg3?: F\n) {\n let opts: SugaredSpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (!arg2 && !arg3) {\n fn = arg as F;\n } else if (!arg3) {\n opts = arg as SugaredSpanOptions;\n fn = arg2 as F;\n } else {\n opts = arg as SugaredSpanOptions;\n ctx = arg2 as Context;\n fn = arg3 as F;\n }\n opts = opts ?? {};\n ctx = ctx ?? context.active();\n\n return { opts, ctx, fn };\n}\n\n/**\n * Executes fn, returns results and runs onException in the case of exception to allow overwriting of error handling\n * @param span\n * @param opts\n * @param fn\n */\nfunction handleFn ReturnType>(\n span: Span,\n opts: SugaredSpanOptions,\n fn: F\n): ReturnType {\n const onException = opts.onException ?? defaultOnException;\n const errorHandler = (e: Error) => {\n onException(e, span);\n span.end();\n throw e;\n };\n\n try {\n const ret = fn(span) as Promise>;\n // if fn is an async function, attach a recordException and spanEnd callback to the promise\n if (typeof ret?.then === 'function') {\n return ret.then(val => {\n span.end();\n return val;\n }, errorHandler) as ReturnType;\n }\n span.end();\n return ret as ReturnType;\n } catch (e) {\n // add throw to signal the compiler that this will throw in the inner scope\n throw errorHandler(e);\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/index.d.ts b/node_modules/@opentelemetry/api/build/esm/index.d.ts deleted file mode 100644 index eea88f22..00000000 --- a/node_modules/@opentelemetry/api/build/esm/index.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -export { BaggageEntry, BaggageEntryMetadata, Baggage } from './baggage/types'; -export { baggageEntryMetadataFromString } from './baggage/utils'; -export { Exception } from './common/Exception'; -export { HrTime, TimeInput } from './common/Time'; -export { Attributes, AttributeValue } from './common/Attributes'; -export { createContextKey, ROOT_CONTEXT } from './context/context'; -export { Context, ContextManager } from './context/types'; -export type { ContextAPI } from './api/context'; -export { DiagConsoleLogger } from './diag/consoleLogger'; -export { DiagLogFunction, DiagLogger, DiagLogLevel, ComponentLoggerOptions, DiagLoggerOptions, } from './diag/types'; -export type { DiagAPI } from './api/diag'; -export { createNoopMeter } from './metrics/NoopMeter'; -export { MeterOptions, Meter } from './metrics/Meter'; -export { MeterProvider } from './metrics/MeterProvider'; -export { ValueType, Counter, Gauge, Histogram, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter, BatchObservableCallback, MetricAdvice, MetricAttributes, MetricAttributeValue, ObservableCallback, } from './metrics/Metric'; -export { BatchObservableResult, ObservableResult, } from './metrics/ObservableResult'; -export type { MetricsAPI } from './api/metrics'; -export { TextMapPropagator, TextMapSetter, TextMapGetter, defaultTextMapGetter, defaultTextMapSetter, } from './propagation/TextMapPropagator'; -export type { PropagationAPI } from './api/propagation'; -export { SpanAttributes, SpanAttributeValue } from './trace/attributes'; -export { Link } from './trace/link'; -export { ProxyTracer, TracerDelegator } from './trace/ProxyTracer'; -export { ProxyTracerProvider } from './trace/ProxyTracerProvider'; -export { Sampler } from './trace/Sampler'; -export { SamplingDecision, SamplingResult } from './trace/SamplingResult'; -export { SpanContext } from './trace/span_context'; -export { SpanKind } from './trace/span_kind'; -export { Span } from './trace/span'; -export { SpanOptions } from './trace/SpanOptions'; -export { SpanStatus, SpanStatusCode } from './trace/status'; -export { TraceFlags } from './trace/trace_flags'; -export { TraceState } from './trace/trace_state'; -export { createTraceState } from './trace/internal/utils'; -export { TracerProvider } from './trace/tracer_provider'; -export { Tracer } from './trace/tracer'; -export { TracerOptions } from './trace/tracer_options'; -export { isSpanContextValid, isValidTraceId, isValidSpanId, } from './trace/spancontext-utils'; -export { INVALID_SPANID, INVALID_TRACEID, INVALID_SPAN_CONTEXT, } from './trace/invalid-span-constants'; -export type { TraceAPI } from './api/trace'; -import { context } from './context-api'; -import { diag } from './diag-api'; -import { metrics } from './metrics-api'; -import { propagation } from './propagation-api'; -import { trace } from './trace-api'; -export { context, diag, metrics, propagation, trace }; -declare const _default: { - context: import("./api/context").ContextAPI; - diag: import("./api/diag").DiagAPI; - metrics: import("./api/metrics").MetricsAPI; - propagation: import("./api/propagation").PropagationAPI; - trace: import("./api/trace").TraceAPI; -}; -export default _default; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/index.js b/node_modules/@opentelemetry/api/build/esm/index.js deleted file mode 100644 index 70cd8701..00000000 --- a/node_modules/@opentelemetry/api/build/esm/index.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export { baggageEntryMetadataFromString } from './baggage/utils'; -// Context APIs -export { createContextKey, ROOT_CONTEXT } from './context/context'; -// Diag APIs -export { DiagConsoleLogger } from './diag/consoleLogger'; -export { DiagLogLevel, } from './diag/types'; -// Metrics APIs -export { createNoopMeter } from './metrics/NoopMeter'; -export { ValueType, } from './metrics/Metric'; -// Propagation APIs -export { defaultTextMapGetter, defaultTextMapSetter, } from './propagation/TextMapPropagator'; -export { ProxyTracer } from './trace/ProxyTracer'; -export { ProxyTracerProvider } from './trace/ProxyTracerProvider'; -export { SamplingDecision } from './trace/SamplingResult'; -export { SpanKind } from './trace/span_kind'; -export { SpanStatusCode } from './trace/status'; -export { TraceFlags } from './trace/trace_flags'; -export { createTraceState } from './trace/internal/utils'; -export { isSpanContextValid, isValidTraceId, isValidSpanId, } from './trace/spancontext-utils'; -export { INVALID_SPANID, INVALID_TRACEID, INVALID_SPAN_CONTEXT, } from './trace/invalid-span-constants'; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { context } from './context-api'; -import { diag } from './diag-api'; -import { metrics } from './metrics-api'; -import { propagation } from './propagation-api'; -import { trace } from './trace-api'; -// Named export. -export { context, diag, metrics, propagation, trace }; -// Default export. -export default { - context: context, - diag: diag, - metrics: metrics, - propagation: propagation, - trace: trace, -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/index.js.map b/node_modules/@opentelemetry/api/build/esm/index.js.map deleted file mode 100644 index b4fec2f8..00000000 --- a/node_modules/@opentelemetry/api/build/esm/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAKjE,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInE,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAGL,YAAY,GAGb,MAAM,cAAc,CAAC;AAGtB,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,SAAS,GAeV,MAAM,kBAAkB,CAAC;AAO1B,mBAAmB;AACnB,OAAO,EAIL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAGxC,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACtD,kBAAkB;AAClB,eAAe;IACb,OAAO,SAAA;IACP,IAAI,MAAA;IACJ,OAAO,SAAA;IACP,WAAW,aAAA;IACX,KAAK,OAAA;CACN,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BaggageEntry, BaggageEntryMetadata, Baggage } from './baggage/types';\nexport { baggageEntryMetadataFromString } from './baggage/utils';\nexport { Exception } from './common/Exception';\nexport { HrTime, TimeInput } from './common/Time';\nexport { Attributes, AttributeValue } from './common/Attributes';\n\n// Context APIs\nexport { createContextKey, ROOT_CONTEXT } from './context/context';\nexport { Context, ContextManager } from './context/types';\nexport type { ContextAPI } from './api/context';\n\n// Diag APIs\nexport { DiagConsoleLogger } from './diag/consoleLogger';\nexport {\n DiagLogFunction,\n DiagLogger,\n DiagLogLevel,\n ComponentLoggerOptions,\n DiagLoggerOptions,\n} from './diag/types';\nexport type { DiagAPI } from './api/diag';\n\n// Metrics APIs\nexport { createNoopMeter } from './metrics/NoopMeter';\nexport { MeterOptions, Meter } from './metrics/Meter';\nexport { MeterProvider } from './metrics/MeterProvider';\nexport {\n ValueType,\n Counter,\n Gauge,\n Histogram,\n MetricOptions,\n Observable,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n BatchObservableCallback,\n MetricAdvice,\n MetricAttributes,\n MetricAttributeValue,\n ObservableCallback,\n} from './metrics/Metric';\nexport {\n BatchObservableResult,\n ObservableResult,\n} from './metrics/ObservableResult';\nexport type { MetricsAPI } from './api/metrics';\n\n// Propagation APIs\nexport {\n TextMapPropagator,\n TextMapSetter,\n TextMapGetter,\n defaultTextMapGetter,\n defaultTextMapSetter,\n} from './propagation/TextMapPropagator';\nexport type { PropagationAPI } from './api/propagation';\n\n// Trace APIs\nexport { SpanAttributes, SpanAttributeValue } from './trace/attributes';\nexport { Link } from './trace/link';\nexport { ProxyTracer, TracerDelegator } from './trace/ProxyTracer';\nexport { ProxyTracerProvider } from './trace/ProxyTracerProvider';\nexport { Sampler } from './trace/Sampler';\nexport { SamplingDecision, SamplingResult } from './trace/SamplingResult';\nexport { SpanContext } from './trace/span_context';\nexport { SpanKind } from './trace/span_kind';\nexport { Span } from './trace/span';\nexport { SpanOptions } from './trace/SpanOptions';\nexport { SpanStatus, SpanStatusCode } from './trace/status';\nexport { TraceFlags } from './trace/trace_flags';\nexport { TraceState } from './trace/trace_state';\nexport { createTraceState } from './trace/internal/utils';\nexport { TracerProvider } from './trace/tracer_provider';\nexport { Tracer } from './trace/tracer';\nexport { TracerOptions } from './trace/tracer_options';\nexport {\n isSpanContextValid,\n isValidTraceId,\n isValidSpanId,\n} from './trace/spancontext-utils';\nexport {\n INVALID_SPANID,\n INVALID_TRACEID,\n INVALID_SPAN_CONTEXT,\n} from './trace/invalid-span-constants';\nexport type { TraceAPI } from './api/trace';\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { context } from './context-api';\nimport { diag } from './diag-api';\nimport { metrics } from './metrics-api';\nimport { propagation } from './propagation-api';\nimport { trace } from './trace-api';\n\n// Named export.\nexport { context, diag, metrics, propagation, trace };\n// Default export.\nexport default {\n context,\n diag,\n metrics,\n propagation,\n trace,\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/internal/global-utils.d.ts b/node_modules/@opentelemetry/api/build/esm/internal/global-utils.d.ts deleted file mode 100644 index 320db975..00000000 --- a/node_modules/@opentelemetry/api/build/esm/internal/global-utils.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MeterProvider } from '../metrics/MeterProvider'; -import { ContextManager } from '../context/types'; -import { DiagLogger } from '../diag/types'; -import { TextMapPropagator } from '../propagation/TextMapPropagator'; -import type { TracerProvider } from '../trace/tracer_provider'; -export declare function registerGlobal(type: Type, instance: OTelGlobalAPI[Type], diag: DiagLogger, allowOverride?: boolean): boolean; -export declare function getGlobal(type: Type): OTelGlobalAPI[Type] | undefined; -export declare function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger): void; -declare type OTelGlobalAPI = { - version: string; - diag?: DiagLogger; - trace?: TracerProvider; - context?: ContextManager; - metrics?: MeterProvider; - propagation?: TextMapPropagator; -}; -export {}; -//# sourceMappingURL=global-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js b/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js deleted file mode 100644 index 88e82a19..00000000 --- a/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { _globalThis } from '../platform'; -import { VERSION } from '../version'; -import { isCompatible } from './semver'; -var major = VERSION.split('.')[0]; -var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major); -var _global = _globalThis; -export function registerGlobal(type, instance, diag, allowOverride) { - var _a; - if (allowOverride === void 0) { allowOverride = false; } - var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { - version: VERSION, - }); - if (!allowOverride && api[type]) { - // already registered an API of this type - var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type); - diag.error(err.stack || err.message); - return false; - } - if (api.version !== VERSION) { - // All registered APIs must be of the same version exactly - var err = new Error("@opentelemetry/api: Registration of version v" + api.version + " for " + type + " does not match previously registered API v" + VERSION); - diag.error(err.stack || err.message); - return false; - } - api[type] = instance; - diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + VERSION + "."); - return true; -} -export function getGlobal(type) { - var _a, _b; - var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version; - if (!globalVersion || !isCompatible(globalVersion)) { - return; - } - return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type]; -} -export function unregisterGlobal(type, diag) { - diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + VERSION + "."); - var api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; - if (api) { - delete api[type]; - } -} -//# sourceMappingURL=global-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map b/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map deleted file mode 100644 index 41420b97..00000000 --- a/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"global-utils.js","sourceRoot":"","sources":["../../../src/internal/global-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,IAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAC7C,0BAAwB,KAAO,CAChC,CAAC;AAEF,IAAM,OAAO,GAAG,WAAyB,CAAC;AAE1C,MAAM,UAAU,cAAc,CAC5B,IAAU,EACV,QAA6B,EAC7B,IAAgB,EAChB,aAAqB;;IAArB,8BAAA,EAAA,qBAAqB;IAErB,IAAM,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,GAAG,MAAA,OAAO,CAC1D,4BAA4B,CAC7B,mCAAI;QACH,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,yCAAyC;QACzC,IAAM,GAAG,GAAG,IAAI,KAAK,CACnB,kEAAgE,IAAM,CACvE,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;QAC3B,0DAA0D;QAC1D,IAAM,GAAG,GAAG,IAAI,KAAK,CACnB,kDAAgD,GAAG,CAAC,OAAO,aAAQ,IAAI,mDAA8C,OAAS,CAC/H,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;KACd;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACrB,IAAI,CAAC,KAAK,CACR,iDAA+C,IAAI,UAAK,OAAO,MAAG,CACnE,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,IAAU;;IAEV,IAAM,aAAa,GAAG,MAAA,OAAO,CAAC,4BAA4B,CAAC,0CAAE,OAAO,CAAC;IACrE,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;QAClD,OAAO;KACR;IACD,OAAO,MAAA,OAAO,CAAC,4BAA4B,CAAC,0CAAG,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAyB,EAAE,IAAgB;IAC1E,IAAI,CAAC,KAAK,CACR,oDAAkD,IAAI,UAAK,OAAO,MAAG,CACtE,CAAC;IACF,IAAM,GAAG,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAElD,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;KAClB;AACH,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { ContextManager } from '../context/types';\nimport { DiagLogger } from '../diag/types';\nimport { _globalThis } from '../platform';\nimport { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\nconst _global = _globalThis as OTelGlobal;\n\nexport function registerGlobal(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/internal/semver.d.ts b/node_modules/@opentelemetry/api/build/esm/internal/semver.d.ts deleted file mode 100644 index d9f4259e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/internal/semver.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Create a function to test an API version to see if it is compatible with the provided ownVersion. - * - * The returned function has the following semantics: - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param ownVersion version which should be checked against - */ -export declare function _makeCompatibilityCheck(ownVersion: string): (globalVersion: string) => boolean; -/** - * Test an API version to see if it is compatible with this API. - * - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param version version of the API requesting an instance of the global API - */ -export declare const isCompatible: (globalVersion: string) => boolean; -//# sourceMappingURL=semver.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/internal/semver.js b/node_modules/@opentelemetry/api/build/esm/internal/semver.js deleted file mode 100644 index 2a788a0b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/internal/semver.js +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { VERSION } from '../version'; -var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; -/** - * Create a function to test an API version to see if it is compatible with the provided ownVersion. - * - * The returned function has the following semantics: - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param ownVersion version which should be checked against - */ -export function _makeCompatibilityCheck(ownVersion) { - var acceptedVersions = new Set([ownVersion]); - var rejectedVersions = new Set(); - var myVersionMatch = ownVersion.match(re); - if (!myVersionMatch) { - // we cannot guarantee compatibility so we always return noop - return function () { return false; }; - } - var ownVersionParsed = { - major: +myVersionMatch[1], - minor: +myVersionMatch[2], - patch: +myVersionMatch[3], - prerelease: myVersionMatch[4], - }; - // if ownVersion has a prerelease tag, versions must match exactly - if (ownVersionParsed.prerelease != null) { - return function isExactmatch(globalVersion) { - return globalVersion === ownVersion; - }; - } - function _reject(v) { - rejectedVersions.add(v); - return false; - } - function _accept(v) { - acceptedVersions.add(v); - return true; - } - return function isCompatible(globalVersion) { - if (acceptedVersions.has(globalVersion)) { - return true; - } - if (rejectedVersions.has(globalVersion)) { - return false; - } - var globalVersionMatch = globalVersion.match(re); - if (!globalVersionMatch) { - // cannot parse other version - // we cannot guarantee compatibility so we always noop - return _reject(globalVersion); - } - var globalVersionParsed = { - major: +globalVersionMatch[1], - minor: +globalVersionMatch[2], - patch: +globalVersionMatch[3], - prerelease: globalVersionMatch[4], - }; - // if globalVersion has a prerelease tag, versions must match exactly - if (globalVersionParsed.prerelease != null) { - return _reject(globalVersion); - } - // major versions must match - if (ownVersionParsed.major !== globalVersionParsed.major) { - return _reject(globalVersion); - } - if (ownVersionParsed.major === 0) { - if (ownVersionParsed.minor === globalVersionParsed.minor && - ownVersionParsed.patch <= globalVersionParsed.patch) { - return _accept(globalVersion); - } - return _reject(globalVersion); - } - if (ownVersionParsed.minor <= globalVersionParsed.minor) { - return _accept(globalVersion); - } - return _reject(globalVersion); - }; -} -/** - * Test an API version to see if it is compatible with this API. - * - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param version version of the API requesting an instance of the global API - */ -export var isCompatible = _makeCompatibilityCheck(VERSION); -//# sourceMappingURL=semver.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map b/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map deleted file mode 100644 index 75579a4a..00000000 --- a/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../../src/internal/semver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,IAAM,EAAE,GAAG,+BAA+B,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB;IAElB,IAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,IAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,cAAc,EAAE;QACnB,6DAA6D;QAC7D,OAAO,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC;KACpB;IAED,IAAM,gBAAgB,GAAG;QACvB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;KAC9B,CAAC;IAEF,kEAAkE;IAClE,IAAI,gBAAgB,CAAC,UAAU,IAAI,IAAI,EAAE;QACvC,OAAO,SAAS,YAAY,CAAC,aAAqB;YAChD,OAAO,aAAa,KAAK,UAAU,CAAC;QACtC,CAAC,CAAC;KACH;IAED,SAAS,OAAO,CAAC,CAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,OAAO,CAAC,CAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,YAAY,CAAC,aAAqB;QAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE;YACvB,6BAA6B;YAC7B,sDAAsD;YACtD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAM,mBAAmB,GAAG;YAC1B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;SAClC,CAAC;QAEF,qEAAqE;QACrE,IAAI,mBAAmB,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1C,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,4BAA4B;QAC5B,IAAI,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,EAAE;YACxD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,gBAAgB,CAAC,KAAK,KAAK,CAAC,EAAE;YAChC,IACE,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK;gBACpD,gBAAgB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EACnD;gBACA,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;aAC/B;YAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,gBAAgB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE;YACvD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,IAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics-api.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics-api.d.ts deleted file mode 100644 index 26d539c0..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { MetricsAPI } from './api/metrics'; -/** Entrypoint for metrics API */ -export declare const metrics: MetricsAPI; -//# sourceMappingURL=metrics-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics-api.js b/node_modules/@opentelemetry/api/build/esm/metrics-api.js deleted file mode 100644 index 145087f4..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { MetricsAPI } from './api/metrics'; -/** Entrypoint for metrics API */ -export var metrics = MetricsAPI.getInstance(); -//# sourceMappingURL=metrics-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map b/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map deleted file mode 100644 index 69dd3e2e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"metrics-api.js","sourceRoot":"","sources":["../../src/metrics-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,iCAAiC;AACjC,MAAM,CAAC,IAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { MetricsAPI } from './api/metrics';\n/** Entrypoint for metrics API */\nexport const metrics = MetricsAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/Meter.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics/Meter.d.ts deleted file mode 100644 index 5e3926b7..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/Meter.d.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { BatchObservableCallback, Counter, Gauge, Histogram, MetricAttributes, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter } from './Metric'; -/** - * An interface describes additional metadata of a meter. - */ -export interface MeterOptions { - /** - * The schemaUrl of the meter or instrumentation library - */ - schemaUrl?: string; -} -/** - * An interface to allow the recording metrics. - * - * {@link Metric}s are used for recording pre-defined aggregation (`Counter`), - * or raw values (`Histogram`) in which the aggregation and attributes - * for the exported metric are deferred. - */ -export interface Meter { - /** - * Creates and returns a new `Gauge`. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createGauge(name: string, options?: MetricOptions): Gauge; - /** - * Creates and returns a new `Histogram`. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createHistogram(name: string, options?: MetricOptions): Histogram; - /** - * Creates a new `Counter` metric. Generally, this kind of metric when the - * value is a quantity, the sum is of primary interest, and the event count - * and value distribution are not of primary interest. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createCounter(name: string, options?: MetricOptions): Counter; - /** - * Creates a new `UpDownCounter` metric. UpDownCounter is a synchronous - * instrument and very similar to Counter except that Add(increment) - * supports negative increments. It is generally useful for capturing changes - * in an amount of resources used, or any quantity that rises and falls - * during a request. - * Example uses for UpDownCounter: - *
    - *
  1. count the number of active requests.
  2. - *
  3. count memory in use by instrumenting new and delete.
  4. - *
  5. count queue size by instrumenting enqueue and dequeue.
  6. - *
  7. count semaphore up and down operations.
  8. - *
- * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createUpDownCounter(name: string, options?: MetricOptions): UpDownCounter; - /** - * Creates a new `ObservableGauge` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableGauge(name: string, options?: MetricOptions): ObservableGauge; - /** - * Creates a new `ObservableCounter` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableCounter(name: string, options?: MetricOptions): ObservableCounter; - /** - * Creates a new `ObservableUpDownCounter` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableUpDownCounter(name: string, options?: MetricOptions): ObservableUpDownCounter; - /** - * Sets up a function that will be called whenever a metric collection is - * initiated. - * - * If the function is already in the list of callbacks for this Observable, - * the function is not added a second time. - * - * Only the associated observables can be observed in the callback. - * Measurements of observables that are not associated observed in the - * callback are dropped. - * - * @param callback the batch observable callback - * @param observables the observables associated with this batch observable callback - */ - addBatchObservableCallback(callback: BatchObservableCallback, observables: Observable[]): void; - /** - * Removes a callback previously registered with {@link Meter.addBatchObservableCallback}. - * - * The callback to be removed is identified using a combination of the callback itself, - * and the set of the observables associated with it. - * - * @param callback the batch observable callback - * @param observables the observables associated with this batch observable callback - */ - removeBatchObservableCallback(callback: BatchObservableCallback, observables: Observable[]): void; -} -//# sourceMappingURL=Meter.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js b/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js deleted file mode 100644 index f1d0754d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Meter.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js.map b/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js.map deleted file mode 100644 index c4b0aafb..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/Meter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Meter.js","sourceRoot":"","sources":["../../../src/metrics/Meter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BatchObservableCallback,\n Counter,\n Gauge,\n Histogram,\n MetricAttributes,\n MetricOptions,\n Observable,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n} from './Metric';\n\n/**\n * An interface describes additional metadata of a meter.\n */\nexport interface MeterOptions {\n /**\n * The schemaUrl of the meter or instrumentation library\n */\n schemaUrl?: string;\n}\n\n/**\n * An interface to allow the recording metrics.\n *\n * {@link Metric}s are used for recording pre-defined aggregation (`Counter`),\n * or raw values (`Histogram`) in which the aggregation and attributes\n * for the exported metric are deferred.\n */\nexport interface Meter {\n /**\n * Creates and returns a new `Gauge`.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createGauge(\n name: string,\n options?: MetricOptions\n ): Gauge;\n\n /**\n * Creates and returns a new `Histogram`.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createHistogram(\n name: string,\n options?: MetricOptions\n ): Histogram;\n\n /**\n * Creates a new `Counter` metric. Generally, this kind of metric when the\n * value is a quantity, the sum is of primary interest, and the event count\n * and value distribution are not of primary interest.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createCounter(\n name: string,\n options?: MetricOptions\n ): Counter;\n\n /**\n * Creates a new `UpDownCounter` metric. UpDownCounter is a synchronous\n * instrument and very similar to Counter except that Add(increment)\n * supports negative increments. It is generally useful for capturing changes\n * in an amount of resources used, or any quantity that rises and falls\n * during a request.\n * Example uses for UpDownCounter:\n *
    \n *
  1. count the number of active requests.
  2. \n *
  3. count memory in use by instrumenting new and delete.
  4. \n *
  5. count queue size by instrumenting enqueue and dequeue.
  6. \n *
  7. count semaphore up and down operations.
  8. \n *
\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): UpDownCounter;\n\n /**\n * Creates a new `ObservableGauge` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableGauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableGauge;\n\n /**\n * Creates a new `ObservableCounter` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableCounter;\n\n /**\n * Creates a new `ObservableUpDownCounter` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableUpDownCounter;\n\n /**\n * Sets up a function that will be called whenever a metric collection is\n * initiated.\n *\n * If the function is already in the list of callbacks for this Observable,\n * the function is not added a second time.\n *\n * Only the associated observables can be observed in the callback.\n * Measurements of observables that are not associated observed in the\n * callback are dropped.\n *\n * @param callback the batch observable callback\n * @param observables the observables associated with this batch observable callback\n */\n addBatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n callback: BatchObservableCallback,\n observables: Observable[]\n ): void;\n\n /**\n * Removes a callback previously registered with {@link Meter.addBatchObservableCallback}.\n *\n * The callback to be removed is identified using a combination of the callback itself,\n * and the set of the observables associated with it.\n *\n * @param callback the batch observable callback\n * @param observables the observables associated with this batch observable callback\n */\n removeBatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n callback: BatchObservableCallback,\n observables: Observable[]\n ): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.d.ts deleted file mode 100644 index 6c08cc31..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Meter, MeterOptions } from './Meter'; -/** - * A registry for creating named {@link Meter}s. - */ -export interface MeterProvider { - /** - * Returns a Meter, creating one if one with the given name, version, and - * schemaUrl pair is not already created. - * - * @param name The name of the meter or instrumentation library. - * @param version The version of the meter or instrumentation library. - * @param options The options of the meter or instrumentation library. - * @returns Meter A Meter with the given name and version - */ - getMeter(name: string, version?: string, options?: MeterOptions): Meter; -} -//# sourceMappingURL=MeterProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js b/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js deleted file mode 100644 index 3051712f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=MeterProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js.map b/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js.map deleted file mode 100644 index 8f96d90e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/MeterProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MeterProvider.js","sourceRoot":"","sources":["../../../src/metrics/MeterProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from './Meter';\n\n/**\n * A registry for creating named {@link Meter}s.\n */\nexport interface MeterProvider {\n /**\n * Returns a Meter, creating one if one with the given name, version, and\n * schemaUrl pair is not already created.\n *\n * @param name The name of the meter or instrumentation library.\n * @param version The version of the meter or instrumentation library.\n * @param options The options of the meter or instrumentation library.\n * @returns Meter A Meter with the given name and version\n */\n getMeter(name: string, version?: string, options?: MeterOptions): Meter;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/Metric.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics/Metric.d.ts deleted file mode 100644 index 607b637e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/Metric.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { Attributes, AttributeValue } from '../common/Attributes'; -import { Context } from '../context/types'; -import { BatchObservableResult, ObservableResult } from './ObservableResult'; -/** - * Advisory options influencing aggregation configuration parameters. - * @experimental - */ -export interface MetricAdvice { - /** - * Hint the explicit bucket boundaries for SDK if the metric is been - * aggregated with a HistogramAggregator. - */ - explicitBucketBoundaries?: number[]; -} -/** - * Options needed for metric creation - */ -export interface MetricOptions { - /** - * The description of the Metric. - * @default '' - */ - description?: string; - /** - * The unit of the Metric values. - * @default '' - */ - unit?: string; - /** - * Indicates the type of the recorded value. - * @default {@link ValueType.DOUBLE} - */ - valueType?: ValueType; - /** - * The advice influencing aggregation configuration parameters. - * @experimental - */ - advice?: MetricAdvice; -} -/** The Type of value. It describes how the data is reported. */ -export declare enum ValueType { - INT = 0, - DOUBLE = 1 -} -/** - * Counter is the most common synchronous instrument. This instrument supports - * an `Add(increment)` function for reporting a sum, and is restricted to - * non-negative increments. The default aggregation is Sum, as for any additive - * instrument. - * - * Example uses for Counter: - *
    - *
  1. count the number of bytes received.
  2. - *
  3. count the number of requests completed.
  4. - *
  5. count the number of accounts created.
  6. - *
  7. count the number of checkpoints run.
  8. - *
  9. count the number of 5xx errors.
  10. - *
      - */ -export interface Counter { - /** - * Increment value of counter by the input. Inputs must not be negative. - */ - add(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface UpDownCounter { - /** - * Increment value of counter by the input. Inputs may be negative. - */ - add(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface Gauge { - /** - * Records a measurement. - */ - record(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface Histogram { - /** - * Records a measurement. Value of the measurement must not be negative. - */ - record(value: number, attributes?: AttributesTypes, context?: Context): void; -} -/** - * @deprecated please use {@link Attributes} - */ -export declare type MetricAttributes = Attributes; -/** - * @deprecated please use {@link AttributeValue} - */ -export declare type MetricAttributeValue = AttributeValue; -/** - * The observable callback for Observable instruments. - */ -export declare type ObservableCallback = (observableResult: ObservableResult) => void | Promise; -/** - * The observable callback for a batch of Observable instruments. - */ -export declare type BatchObservableCallback = (observableResult: BatchObservableResult) => void | Promise; -export interface Observable { - /** - * Sets up a function that will be called whenever a metric collection is initiated. - * - * If the function is already in the list of callbacks for this Observable, the function is not added a second time. - */ - addCallback(callback: ObservableCallback): void; - /** - * Removes a callback previously registered with {@link Observable.addCallback}. - */ - removeCallback(callback: ObservableCallback): void; -} -export declare type ObservableCounter = Observable; -export declare type ObservableUpDownCounter = Observable; -export declare type ObservableGauge = Observable; -//# sourceMappingURL=Metric.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js b/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js deleted file mode 100644 index 6df13741..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** The Type of value. It describes how the data is reported. */ -export var ValueType; -(function (ValueType) { - ValueType[ValueType["INT"] = 0] = "INT"; - ValueType[ValueType["DOUBLE"] = 1] = "DOUBLE"; -})(ValueType || (ValueType = {})); -//# sourceMappingURL=Metric.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js.map b/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js.map deleted file mode 100644 index a115430d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Metric.js","sourceRoot":"","sources":["../../../src/metrics/Metric.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+CH,gEAAgE;AAChE,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,6CAAM,CAAA;AACR,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes, AttributeValue } from '../common/Attributes';\nimport { Context } from '../context/types';\nimport { BatchObservableResult, ObservableResult } from './ObservableResult';\n\n/**\n * Advisory options influencing aggregation configuration parameters.\n * @experimental\n */\nexport interface MetricAdvice {\n /**\n * Hint the explicit bucket boundaries for SDK if the metric is been\n * aggregated with a HistogramAggregator.\n */\n explicitBucketBoundaries?: number[];\n}\n\n/**\n * Options needed for metric creation\n */\nexport interface MetricOptions {\n /**\n * The description of the Metric.\n * @default ''\n */\n description?: string;\n\n /**\n * The unit of the Metric values.\n * @default ''\n */\n unit?: string;\n\n /**\n * Indicates the type of the recorded value.\n * @default {@link ValueType.DOUBLE}\n */\n valueType?: ValueType;\n\n /**\n * The advice influencing aggregation configuration parameters.\n * @experimental\n */\n advice?: MetricAdvice;\n}\n\n/** The Type of value. It describes how the data is reported. */\nexport enum ValueType {\n INT,\n DOUBLE,\n}\n\n/**\n * Counter is the most common synchronous instrument. This instrument supports\n * an `Add(increment)` function for reporting a sum, and is restricted to\n * non-negative increments. The default aggregation is Sum, as for any additive\n * instrument.\n *\n * Example uses for Counter:\n *
        \n *
      1. count the number of bytes received.
      2. \n *
      3. count the number of requests completed.
      4. \n *
      5. count the number of accounts created.
      6. \n *
      7. count the number of checkpoints run.
      8. \n *
      9. count the number of 5xx errors.
      10. \n *
          \n */\nexport interface Counter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Increment value of counter by the input. Inputs must not be negative.\n */\n add(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface UpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Increment value of counter by the input. Inputs may be negative.\n */\n add(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface Gauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Records a measurement.\n */\n record(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface Histogram<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Records a measurement. Value of the measurement must not be negative.\n */\n record(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\n/**\n * @deprecated please use {@link Attributes}\n */\nexport type MetricAttributes = Attributes;\n\n/**\n * @deprecated please use {@link AttributeValue}\n */\nexport type MetricAttributeValue = AttributeValue;\n\n/**\n * The observable callback for Observable instruments.\n */\nexport type ObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = (\n observableResult: ObservableResult\n) => void | Promise;\n\n/**\n * The observable callback for a batch of Observable instruments.\n */\nexport type BatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = (\n observableResult: BatchObservableResult\n) => void | Promise;\n\nexport interface Observable<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Sets up a function that will be called whenever a metric collection is initiated.\n *\n * If the function is already in the list of callbacks for this Observable, the function is not added a second time.\n */\n addCallback(callback: ObservableCallback): void;\n\n /**\n * Removes a callback previously registered with {@link Observable.addCallback}.\n */\n removeCallback(callback: ObservableCallback): void;\n}\n\nexport type ObservableCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\nexport type ObservableUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\nexport type ObservableGauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.d.ts deleted file mode 100644 index bbefa9a7..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Meter } from './Meter'; -import { BatchObservableCallback, Counter, Gauge, Histogram, MetricAttributes, MetricOptions, Observable, ObservableCallback, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter } from './Metric'; -/** - * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses - * constant NoopMetrics for all of its methods. - */ -export declare class NoopMeter implements Meter { - constructor(); - /** - * @see {@link Meter.createGauge} - */ - createGauge(_name: string, _options?: MetricOptions): Gauge; - /** - * @see {@link Meter.createHistogram} - */ - createHistogram(_name: string, _options?: MetricOptions): Histogram; - /** - * @see {@link Meter.createCounter} - */ - createCounter(_name: string, _options?: MetricOptions): Counter; - /** - * @see {@link Meter.createUpDownCounter} - */ - createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter; - /** - * @see {@link Meter.createObservableGauge} - */ - createObservableGauge(_name: string, _options?: MetricOptions): ObservableGauge; - /** - * @see {@link Meter.createObservableCounter} - */ - createObservableCounter(_name: string, _options?: MetricOptions): ObservableCounter; - /** - * @see {@link Meter.createObservableUpDownCounter} - */ - createObservableUpDownCounter(_name: string, _options?: MetricOptions): ObservableUpDownCounter; - /** - * @see {@link Meter.addBatchObservableCallback} - */ - addBatchObservableCallback(_callback: BatchObservableCallback, _observables: Observable[]): void; - /** - * @see {@link Meter.removeBatchObservableCallback} - */ - removeBatchObservableCallback(_callback: BatchObservableCallback): void; -} -export declare class NoopMetric { -} -export declare class NoopCounterMetric extends NoopMetric implements Counter { - add(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopUpDownCounterMetric extends NoopMetric implements UpDownCounter { - add(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopGaugeMetric extends NoopMetric implements Gauge { - record(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopHistogramMetric extends NoopMetric implements Histogram { - record(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopObservableMetric { - addCallback(_callback: ObservableCallback): void; - removeCallback(_callback: ObservableCallback): void; -} -export declare class NoopObservableCounterMetric extends NoopObservableMetric implements ObservableCounter { -} -export declare class NoopObservableGaugeMetric extends NoopObservableMetric implements ObservableGauge { -} -export declare class NoopObservableUpDownCounterMetric extends NoopObservableMetric implements ObservableUpDownCounter { -} -export declare const NOOP_METER: NoopMeter; -export declare const NOOP_COUNTER_METRIC: NoopCounterMetric; -export declare const NOOP_GAUGE_METRIC: NoopGaugeMetric; -export declare const NOOP_HISTOGRAM_METRIC: NoopHistogramMetric; -export declare const NOOP_UP_DOWN_COUNTER_METRIC: NoopUpDownCounterMetric; -export declare const NOOP_OBSERVABLE_COUNTER_METRIC: NoopObservableCounterMetric; -export declare const NOOP_OBSERVABLE_GAUGE_METRIC: NoopObservableGaugeMetric; -export declare const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC: NoopObservableUpDownCounterMetric; -/** - * Create a no-op Meter - */ -export declare function createNoopMeter(): Meter; -//# sourceMappingURL=NoopMeter.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js b/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js deleted file mode 100644 index 8d03e40b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -/** - * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses - * constant NoopMetrics for all of its methods. - */ -var NoopMeter = /** @class */ (function () { - function NoopMeter() { - } - /** - * @see {@link Meter.createGauge} - */ - NoopMeter.prototype.createGauge = function (_name, _options) { - return NOOP_GAUGE_METRIC; - }; - /** - * @see {@link Meter.createHistogram} - */ - NoopMeter.prototype.createHistogram = function (_name, _options) { - return NOOP_HISTOGRAM_METRIC; - }; - /** - * @see {@link Meter.createCounter} - */ - NoopMeter.prototype.createCounter = function (_name, _options) { - return NOOP_COUNTER_METRIC; - }; - /** - * @see {@link Meter.createUpDownCounter} - */ - NoopMeter.prototype.createUpDownCounter = function (_name, _options) { - return NOOP_UP_DOWN_COUNTER_METRIC; - }; - /** - * @see {@link Meter.createObservableGauge} - */ - NoopMeter.prototype.createObservableGauge = function (_name, _options) { - return NOOP_OBSERVABLE_GAUGE_METRIC; - }; - /** - * @see {@link Meter.createObservableCounter} - */ - NoopMeter.prototype.createObservableCounter = function (_name, _options) { - return NOOP_OBSERVABLE_COUNTER_METRIC; - }; - /** - * @see {@link Meter.createObservableUpDownCounter} - */ - NoopMeter.prototype.createObservableUpDownCounter = function (_name, _options) { - return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC; - }; - /** - * @see {@link Meter.addBatchObservableCallback} - */ - NoopMeter.prototype.addBatchObservableCallback = function (_callback, _observables) { }; - /** - * @see {@link Meter.removeBatchObservableCallback} - */ - NoopMeter.prototype.removeBatchObservableCallback = function (_callback) { }; - return NoopMeter; -}()); -export { NoopMeter }; -var NoopMetric = /** @class */ (function () { - function NoopMetric() { - } - return NoopMetric; -}()); -export { NoopMetric }; -var NoopCounterMetric = /** @class */ (function (_super) { - __extends(NoopCounterMetric, _super); - function NoopCounterMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - NoopCounterMetric.prototype.add = function (_value, _attributes) { }; - return NoopCounterMetric; -}(NoopMetric)); -export { NoopCounterMetric }; -var NoopUpDownCounterMetric = /** @class */ (function (_super) { - __extends(NoopUpDownCounterMetric, _super); - function NoopUpDownCounterMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - NoopUpDownCounterMetric.prototype.add = function (_value, _attributes) { }; - return NoopUpDownCounterMetric; -}(NoopMetric)); -export { NoopUpDownCounterMetric }; -var NoopGaugeMetric = /** @class */ (function (_super) { - __extends(NoopGaugeMetric, _super); - function NoopGaugeMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - NoopGaugeMetric.prototype.record = function (_value, _attributes) { }; - return NoopGaugeMetric; -}(NoopMetric)); -export { NoopGaugeMetric }; -var NoopHistogramMetric = /** @class */ (function (_super) { - __extends(NoopHistogramMetric, _super); - function NoopHistogramMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - NoopHistogramMetric.prototype.record = function (_value, _attributes) { }; - return NoopHistogramMetric; -}(NoopMetric)); -export { NoopHistogramMetric }; -var NoopObservableMetric = /** @class */ (function () { - function NoopObservableMetric() { - } - NoopObservableMetric.prototype.addCallback = function (_callback) { }; - NoopObservableMetric.prototype.removeCallback = function (_callback) { }; - return NoopObservableMetric; -}()); -export { NoopObservableMetric }; -var NoopObservableCounterMetric = /** @class */ (function (_super) { - __extends(NoopObservableCounterMetric, _super); - function NoopObservableCounterMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - return NoopObservableCounterMetric; -}(NoopObservableMetric)); -export { NoopObservableCounterMetric }; -var NoopObservableGaugeMetric = /** @class */ (function (_super) { - __extends(NoopObservableGaugeMetric, _super); - function NoopObservableGaugeMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - return NoopObservableGaugeMetric; -}(NoopObservableMetric)); -export { NoopObservableGaugeMetric }; -var NoopObservableUpDownCounterMetric = /** @class */ (function (_super) { - __extends(NoopObservableUpDownCounterMetric, _super); - function NoopObservableUpDownCounterMetric() { - return _super !== null && _super.apply(this, arguments) || this; - } - return NoopObservableUpDownCounterMetric; -}(NoopObservableMetric)); -export { NoopObservableUpDownCounterMetric }; -export var NOOP_METER = new NoopMeter(); -// Synchronous instruments -export var NOOP_COUNTER_METRIC = new NoopCounterMetric(); -export var NOOP_GAUGE_METRIC = new NoopGaugeMetric(); -export var NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric(); -export var NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric(); -// Asynchronous instruments -export var NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric(); -export var NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric(); -export var NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric(); -/** - * Create a no-op Meter - */ -export function createNoopMeter() { - return NOOP_METER; -} -//# sourceMappingURL=NoopMeter.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map b/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map deleted file mode 100644 index e1dc0e0b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopMeter.js","sourceRoot":"","sources":["../../../src/metrics/NoopMeter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAkBH;;;GAGG;AACH;IACE;IAAe,CAAC;IAEhB;;OAEG;IACH,+BAAW,GAAX,UAAY,KAAa,EAAE,QAAwB;QACjD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,mCAAe,GAAf,UAAgB,KAAa,EAAE,QAAwB;QACrD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,iCAAa,GAAb,UAAc,KAAa,EAAE,QAAwB;QACnD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,uCAAmB,GAAnB,UAAoB,KAAa,EAAE,QAAwB;QACzD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,yCAAqB,GAArB,UACE,KAAa,EACb,QAAwB;QAExB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,2CAAuB,GAAvB,UACE,KAAa,EACb,QAAwB;QAExB,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,iDAA6B,GAA7B,UACE,KAAa,EACb,QAAwB;QAExB,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,8CAA0B,GAA1B,UACE,SAAkC,EAClC,YAA0B,IACnB,CAAC;IAEV;;OAEG;IACH,iDAA6B,GAA7B,UAA8B,SAAkC,IAAS,CAAC;IAC5E,gBAAC;AAAD,CAAC,AAzED,IAyEC;;AAED;IAAA;IAAyB,CAAC;IAAD,iBAAC;AAAD,CAAC,AAA1B,IAA0B;;AAE1B;IAAuC,qCAAU;IAAjD;;IAEA,CAAC;IADC,+BAAG,GAAH,UAAI,MAAc,EAAE,WAA6B,IAAS,CAAC;IAC7D,wBAAC;AAAD,CAAC,AAFD,CAAuC,UAAU,GAEhD;;AAED;IACU,2CAAU;IADpB;;IAKA,CAAC;IADC,qCAAG,GAAH,UAAI,MAAc,EAAE,WAA6B,IAAS,CAAC;IAC7D,8BAAC;AAAD,CAAC,AALD,CACU,UAAU,GAInB;;AAED;IAAqC,mCAAU;IAA/C;;IAEA,CAAC;IADC,gCAAM,GAAN,UAAO,MAAc,EAAE,WAA6B,IAAS,CAAC;IAChE,sBAAC;AAAD,CAAC,AAFD,CAAqC,UAAU,GAE9C;;AAED;IAAyC,uCAAU;IAAnD;;IAEA,CAAC;IADC,oCAAM,GAAN,UAAO,MAAc,EAAE,WAA6B,IAAS,CAAC;IAChE,0BAAC;AAAD,CAAC,AAFD,CAAyC,UAAU,GAElD;;AAED;IAAA;IAIA,CAAC;IAHC,0CAAW,GAAX,UAAY,SAA6B,IAAG,CAAC;IAE7C,6CAAc,GAAd,UAAe,SAA6B,IAAG,CAAC;IAClD,2BAAC;AAAD,CAAC,AAJD,IAIC;;AAED;IACU,+CAAoB;IAD9B;;IAEgC,CAAC;IAAD,kCAAC;AAAD,CAAC,AAFjC,CACU,oBAAoB,GACG;;AAEjC;IACU,6CAAoB;IAD9B;;IAE8B,CAAC;IAAD,gCAAC;AAAD,CAAC,AAF/B,CACU,oBAAoB,GACC;;AAE/B;IACU,qDAAoB;IAD9B;;IAEsC,CAAC;IAAD,wCAAC;AAAD,CAAC,AAFvC,CACU,oBAAoB,GACS;;AAEvC,MAAM,CAAC,IAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;AAE1C,0BAA0B;AAC1B,MAAM,CAAC,IAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAC3D,MAAM,CAAC,IAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;AACvD,MAAM,CAAC,IAAM,qBAAqB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAC/D,MAAM,CAAC,IAAM,2BAA2B,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEzE,2BAA2B;AAC3B,MAAM,CAAC,IAAM,8BAA8B,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAChF,MAAM,CAAC,IAAM,4BAA4B,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAC5E,MAAM,CAAC,IAAM,sCAAsC,GACjD,IAAI,iCAAiC,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter } from './Meter';\nimport {\n BatchObservableCallback,\n Counter,\n Gauge,\n Histogram,\n MetricAttributes,\n MetricOptions,\n Observable,\n ObservableCallback,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n} from './Metric';\n\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nexport class NoopMeter implements Meter {\n constructor() {}\n\n /**\n * @see {@link Meter.createGauge}\n */\n createGauge(_name: string, _options?: MetricOptions): Gauge {\n return NOOP_GAUGE_METRIC;\n }\n\n /**\n * @see {@link Meter.createHistogram}\n */\n createHistogram(_name: string, _options?: MetricOptions): Histogram {\n return NOOP_HISTOGRAM_METRIC;\n }\n\n /**\n * @see {@link Meter.createCounter}\n */\n createCounter(_name: string, _options?: MetricOptions): Counter {\n return NOOP_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createUpDownCounter}\n */\n createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter {\n return NOOP_UP_DOWN_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableGauge}\n */\n createObservableGauge(\n _name: string,\n _options?: MetricOptions\n ): ObservableGauge {\n return NOOP_OBSERVABLE_GAUGE_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableCounter}\n */\n createObservableCounter(\n _name: string,\n _options?: MetricOptions\n ): ObservableCounter {\n return NOOP_OBSERVABLE_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableUpDownCounter}\n */\n createObservableUpDownCounter(\n _name: string,\n _options?: MetricOptions\n ): ObservableUpDownCounter {\n return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.addBatchObservableCallback}\n */\n addBatchObservableCallback(\n _callback: BatchObservableCallback,\n _observables: Observable[]\n ): void {}\n\n /**\n * @see {@link Meter.removeBatchObservableCallback}\n */\n removeBatchObservableCallback(_callback: BatchObservableCallback): void {}\n}\n\nexport class NoopMetric {}\n\nexport class NoopCounterMetric extends NoopMetric implements Counter {\n add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopUpDownCounterMetric\n extends NoopMetric\n implements UpDownCounter\n{\n add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopGaugeMetric extends NoopMetric implements Gauge {\n record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopHistogramMetric extends NoopMetric implements Histogram {\n record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopObservableMetric {\n addCallback(_callback: ObservableCallback) {}\n\n removeCallback(_callback: ObservableCallback) {}\n}\n\nexport class NoopObservableCounterMetric\n extends NoopObservableMetric\n implements ObservableCounter {}\n\nexport class NoopObservableGaugeMetric\n extends NoopObservableMetric\n implements ObservableGauge {}\n\nexport class NoopObservableUpDownCounterMetric\n extends NoopObservableMetric\n implements ObservableUpDownCounter {}\n\nexport const NOOP_METER = new NoopMeter();\n\n// Synchronous instruments\nexport const NOOP_COUNTER_METRIC = new NoopCounterMetric();\nexport const NOOP_GAUGE_METRIC = new NoopGaugeMetric();\nexport const NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric();\nexport const NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric();\n\n// Asynchronous instruments\nexport const NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric();\nexport const NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric();\nexport const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC =\n new NoopObservableUpDownCounterMetric();\n\n/**\n * Create a no-op Meter\n */\nexport function createNoopMeter(): Meter {\n return NOOP_METER;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.d.ts deleted file mode 100644 index 8b51bc52..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Meter, MeterOptions } from './Meter'; -import { MeterProvider } from './MeterProvider'; -/** - * An implementation of the {@link MeterProvider} which returns an impotent Meter - * for all calls to `getMeter` - */ -export declare class NoopMeterProvider implements MeterProvider { - getMeter(_name: string, _version?: string, _options?: MeterOptions): Meter; -} -export declare const NOOP_METER_PROVIDER: NoopMeterProvider; -//# sourceMappingURL=NoopMeterProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js b/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js deleted file mode 100644 index 75de3c02..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NOOP_METER } from './NoopMeter'; -/** - * An implementation of the {@link MeterProvider} which returns an impotent Meter - * for all calls to `getMeter` - */ -var NoopMeterProvider = /** @class */ (function () { - function NoopMeterProvider() { - } - NoopMeterProvider.prototype.getMeter = function (_name, _version, _options) { - return NOOP_METER; - }; - return NoopMeterProvider; -}()); -export { NoopMeterProvider }; -export var NOOP_METER_PROVIDER = new NoopMeterProvider(); -//# sourceMappingURL=NoopMeterProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map b/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map deleted file mode 100644 index 28b31204..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopMeterProvider.js","sourceRoot":"","sources":["../../../src/metrics/NoopMeterProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH;IAAA;IAIA,CAAC;IAHC,oCAAQ,GAAR,UAAS,KAAa,EAAE,QAAiB,EAAE,QAAuB;QAChE,OAAO,UAAU,CAAC;IACpB,CAAC;IACH,wBAAC;AAAD,CAAC,AAJD,IAIC;;AAED,MAAM,CAAC,IAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from './Meter';\nimport { MeterProvider } from './MeterProvider';\nimport { NOOP_METER } from './NoopMeter';\n\n/**\n * An implementation of the {@link MeterProvider} which returns an impotent Meter\n * for all calls to `getMeter`\n */\nexport class NoopMeterProvider implements MeterProvider {\n getMeter(_name: string, _version?: string, _options?: MeterOptions): Meter {\n return NOOP_METER;\n }\n}\n\nexport const NOOP_METER_PROVIDER = new NoopMeterProvider();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.d.ts b/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.d.ts deleted file mode 100644 index 26563f9e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { MetricAttributes, Observable } from './Metric'; -/** - * Interface that is being used in callback function for Observable Metric. - */ -export interface ObservableResult { - /** - * Observe a measurement of the value associated with the given attributes. - * - * @param value The value to be observed. - * @param attributes The attributes associated with the value. If more than - * one values associated with the same attributes values, SDK may pick the - * last one or simply drop the entire observable result. - */ - observe(this: ObservableResult, value: number, attributes?: AttributesTypes): void; -} -/** - * Interface that is being used in batch observable callback function. - */ -export interface BatchObservableResult { - /** - * Observe a measurement of the value associated with the given attributes. - * - * @param metric The observable metric to be observed. - * @param value The value to be observed. - * @param attributes The attributes associated with the value. If more than - * one values associated with the same attributes values, SDK may pick the - * last one or simply drop the entire observable result. - */ - observe(this: BatchObservableResult, metric: Observable, value: number, attributes?: AttributesTypes): void; -} -//# sourceMappingURL=ObservableResult.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js b/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js deleted file mode 100644 index 7985d26d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=ObservableResult.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js.map b/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js.map deleted file mode 100644 index b6b0c7ca..00000000 --- a/node_modules/@opentelemetry/api/build/esm/metrics/ObservableResult.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ObservableResult.js","sourceRoot":"","sources":["../../../src/metrics/ObservableResult.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MetricAttributes, Observable } from './Metric';\n\n/**\n * Interface that is being used in callback function for Observable Metric.\n */\nexport interface ObservableResult<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Observe a measurement of the value associated with the given attributes.\n *\n * @param value The value to be observed.\n * @param attributes The attributes associated with the value. If more than\n * one values associated with the same attributes values, SDK may pick the\n * last one or simply drop the entire observable result.\n */\n observe(\n this: ObservableResult,\n value: number,\n attributes?: AttributesTypes\n ): void;\n}\n\n/**\n * Interface that is being used in batch observable callback function.\n */\nexport interface BatchObservableResult<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Observe a measurement of the value associated with the given attributes.\n *\n * @param metric The observable metric to be observed.\n * @param value The value to be observed.\n * @param attributes The attributes associated with the value. If more than\n * one values associated with the same attributes values, SDK may pick the\n * last one or simply drop the entire observable result.\n */\n observe(\n this: BatchObservableResult,\n metric: Observable,\n value: number,\n attributes?: AttributesTypes\n ): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.d.ts b/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.d.ts deleted file mode 100644 index e73fd73e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ -/** only globals that common to node and browsers are allowed */ -export declare const _globalThis: typeof globalThis; -//# sourceMappingURL=globalThis.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js b/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js deleted file mode 100644 index 52f985e2..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Updates to this file should also be replicated to @opentelemetry/core too. -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef -export var _globalThis = typeof globalThis === 'object' - ? globalThis - : typeof self === 'object' - ? self - : typeof window === 'object' - ? window - : typeof global === 'object' - ? global - : {}; -//# sourceMappingURL=globalThis.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js.map b/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js.map deleted file mode 100644 index 665e3fca..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalThis.js","sourceRoot":"","sources":["../../../../src/platform/browser/globalThis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,6EAA6E;AAE7E;;;;;;GAMG;AAEH,gEAAgE;AAChE,8EAA8E;AAC9E,MAAM,CAAC,IAAM,WAAW,GACtB,OAAO,UAAU,KAAK,QAAQ;IAC5B,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;YAC5B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;gBAC5B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAE,EAAwB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Updates to this file should also be replicated to @opentelemetry/core too.\n\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - (When all else fails)\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis: typeof globalThis =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : ({} as typeof globalThis);\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/browser/index.d.ts b/node_modules/@opentelemetry/api/build/esm/platform/browser/index.d.ts deleted file mode 100644 index ba20e123..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/browser/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './globalThis'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js b/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js deleted file mode 100644 index efcad2e9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './globalThis'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js.map b/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js.map deleted file mode 100644 index 07adcd9d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/browser/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './globalThis';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/index.d.ts b/node_modules/@opentelemetry/api/build/esm/platform/index.d.ts deleted file mode 100644 index 90595da9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/index.js b/node_modules/@opentelemetry/api/build/esm/platform/index.js deleted file mode 100644 index c0df125c..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './node'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/index.js.map b/node_modules/@opentelemetry/api/build/esm/platform/index.js.map deleted file mode 100644 index 9494c531..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,QAAQ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './node';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.d.ts b/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.d.ts deleted file mode 100644 index e3c83e5d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** only globals that common to node and browsers are allowed */ -export declare const _globalThis: typeof globalThis; -//# sourceMappingURL=globalThis.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js b/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js deleted file mode 100644 index feb97000..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins -export var _globalThis = typeof globalThis === 'object' ? globalThis : global; -//# sourceMappingURL=globalThis.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map b/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map deleted file mode 100644 index 5911136a..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalThis.js","sourceRoot":"","sources":["../../../../src/platform/node/globalThis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gEAAgE;AAChE,oEAAoE;AACpE,MAAM,CAAC,IAAM,WAAW,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins\nexport const _globalThis = typeof globalThis === 'object' ? globalThis : global;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/node/index.d.ts b/node_modules/@opentelemetry/api/build/esm/platform/node/index.d.ts deleted file mode 100644 index ba20e123..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/node/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './globalThis'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/node/index.js b/node_modules/@opentelemetry/api/build/esm/platform/node/index.js deleted file mode 100644 index efcad2e9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/node/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './globalThis'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/platform/node/index.js.map b/node_modules/@opentelemetry/api/build/esm/platform/node/index.js.map deleted file mode 100644 index f2797186..00000000 --- a/node_modules/@opentelemetry/api/build/esm/platform/node/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './globalThis';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation-api.d.ts b/node_modules/@opentelemetry/api/build/esm/propagation-api.d.ts deleted file mode 100644 index e12b51ba..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PropagationAPI } from './api/propagation'; -/** Entrypoint for propagation API */ -export declare const propagation: PropagationAPI; -//# sourceMappingURL=propagation-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation-api.js b/node_modules/@opentelemetry/api/build/esm/propagation-api.js deleted file mode 100644 index df8d5b9d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { PropagationAPI } from './api/propagation'; -/** Entrypoint for propagation API */ -export var propagation = PropagationAPI.getInstance(); -//# sourceMappingURL=propagation-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map b/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map deleted file mode 100644 index 2375317e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"propagation-api.js","sourceRoot":"","sources":["../../src/propagation-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,qCAAqC;AACrC,MAAM,CAAC,IAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { PropagationAPI } from './api/propagation';\n/** Entrypoint for propagation API */\nexport const propagation = PropagationAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.d.ts b/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.d.ts deleted file mode 100644 index 398021f3..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Context } from '../context/types'; -import { TextMapPropagator } from './TextMapPropagator'; -/** - * No-op implementations of {@link TextMapPropagator}. - */ -export declare class NoopTextMapPropagator implements TextMapPropagator { - /** Noop inject function does nothing */ - inject(_context: Context, _carrier: unknown): void; - /** Noop extract function does nothing and returns the input context */ - extract(context: Context, _carrier: unknown): Context; - fields(): string[]; -} -//# sourceMappingURL=NoopTextMapPropagator.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js b/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js deleted file mode 100644 index 8e629012..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * No-op implementations of {@link TextMapPropagator}. - */ -var NoopTextMapPropagator = /** @class */ (function () { - function NoopTextMapPropagator() { - } - /** Noop inject function does nothing */ - NoopTextMapPropagator.prototype.inject = function (_context, _carrier) { }; - /** Noop extract function does nothing and returns the input context */ - NoopTextMapPropagator.prototype.extract = function (context, _carrier) { - return context; - }; - NoopTextMapPropagator.prototype.fields = function () { - return []; - }; - return NoopTextMapPropagator; -}()); -export { NoopTextMapPropagator }; -//# sourceMappingURL=NoopTextMapPropagator.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map b/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map deleted file mode 100644 index 40be5661..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTextMapPropagator.js","sourceRoot":"","sources":["../../../src/propagation/NoopTextMapPropagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;GAEG;AACH;IAAA;IAUA,CAAC;IATC,wCAAwC;IACxC,sCAAM,GAAN,UAAO,QAAiB,EAAE,QAAiB,IAAS,CAAC;IACrD,uEAAuE;IACvE,uCAAO,GAAP,UAAQ,OAAgB,EAAE,QAAiB;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,sCAAM,GAAN;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,4BAAC;AAAD,CAAC,AAVD,IAUC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { TextMapPropagator } from './TextMapPropagator';\n\n/**\n * No-op implementations of {@link TextMapPropagator}.\n */\nexport class NoopTextMapPropagator implements TextMapPropagator {\n /** Noop inject function does nothing */\n inject(_context: Context, _carrier: unknown): void {}\n /** Noop extract function does nothing and returns the input context */\n extract(context: Context, _carrier: unknown): Context {\n return context;\n }\n fields(): string[] {\n return [];\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.d.ts b/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.d.ts deleted file mode 100644 index dc39367b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Context } from '../context/types'; -/** - * Injects `Context` into and extracts it from carriers that travel - * in-band across process boundaries. Encoding is expected to conform to the - * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request - * headers. - * - * The carrier of propagated data on both the client (injector) and server - * (extractor) side is usually an object such as http headers. Propagation is - * usually implemented via library-specific request interceptors, where the - * client-side injects values and the server-side extracts them. - */ -export interface TextMapPropagator { - /** - * Injects values from a given `Context` into a carrier. - * - * OpenTelemetry defines a common set of format values (TextMapPropagator), - * and each has an expected `carrier` type. - * - * @param context the Context from which to extract values to transmit over - * the wire. - * @param carrier the carrier of propagation fields, such as http request - * headers. - * @param setter an optional {@link TextMapSetter}. If undefined, values will be - * set by direct object assignment. - */ - inject(context: Context, carrier: Carrier, setter: TextMapSetter): void; - /** - * Given a `Context` and a carrier, extract context values from a - * carrier and return a new context, created from the old context, with the - * extracted values. - * - * @param context the Context from which to extract values to transmit over - * the wire. - * @param carrier the carrier of propagation fields, such as http request - * headers. - * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all - * own properties, and keys will be accessed by direct object access. - */ - extract(context: Context, carrier: Carrier, getter: TextMapGetter): Context; - /** - * Return a list of all fields which may be used by the propagator. - */ - fields(): string[]; -} -/** - * A setter is specified by the caller to define a specific method - * to set key/value pairs on the carrier within a propagator. - */ -export interface TextMapSetter { - /** - * Callback used to set a key/value pair on an object. - * - * Should be called by the propagator each time a key/value pair - * should be set, and should set that key/value pair on the propagator. - * - * @param carrier object or class which carries key/value pairs - * @param key string key to modify - * @param value value to be set to the key on the carrier - */ - set(carrier: Carrier, key: string, value: string): void; -} -/** - * A getter is specified by the caller to define a specific method - * to get the value of a key from a carrier. - */ -export interface TextMapGetter { - /** - * Get a list of all keys available on the carrier. - * - * @param carrier - */ - keys(carrier: Carrier): string[]; - /** - * Get the value of a specific key from the carrier. - * - * @param carrier - * @param key - */ - get(carrier: Carrier, key: string): undefined | string | string[]; -} -export declare const defaultTextMapGetter: TextMapGetter; -export declare const defaultTextMapSetter: TextMapSetter; -//# sourceMappingURL=TextMapPropagator.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js b/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js deleted file mode 100644 index c5f5311f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export var defaultTextMapGetter = { - get: function (carrier, key) { - if (carrier == null) { - return undefined; - } - return carrier[key]; - }, - keys: function (carrier) { - if (carrier == null) { - return []; - } - return Object.keys(carrier); - }, -}; -export var defaultTextMapSetter = { - set: function (carrier, key, value) { - if (carrier == null) { - return; - } - carrier[key] = value; - }, -}; -//# sourceMappingURL=TextMapPropagator.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map b/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map deleted file mode 100644 index 9de7d06a..00000000 --- a/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TextMapPropagator.js","sourceRoot":"","sources":["../../../src/propagation/TextMapPropagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkGH,MAAM,CAAC,IAAM,oBAAoB,GAAkB;IACjD,GAAG,YAAC,OAAO,EAAE,GAAG;QACd,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,YAAC,OAAO;QACV,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,IAAM,oBAAoB,GAAkB;IACjD,GAAG,YAAC,OAAO,EAAE,GAAG,EAAE,KAAK;QACrB,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO;SACR;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\n\n/**\n * Injects `Context` into and extracts it from carriers that travel\n * in-band across process boundaries. Encoding is expected to conform to the\n * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request\n * headers.\n *\n * The carrier of propagated data on both the client (injector) and server\n * (extractor) side is usually an object such as http headers. Propagation is\n * usually implemented via library-specific request interceptors, where the\n * client-side injects values and the server-side extracts them.\n */\nexport interface TextMapPropagator {\n /**\n * Injects values from a given `Context` into a carrier.\n *\n * OpenTelemetry defines a common set of format values (TextMapPropagator),\n * and each has an expected `carrier` type.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param setter an optional {@link TextMapSetter}. If undefined, values will be\n * set by direct object assignment.\n */\n inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter\n ): void;\n\n /**\n * Given a `Context` and a carrier, extract context values from a\n * carrier and return a new context, created from the old context, with the\n * extracted values.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all\n * own properties, and keys will be accessed by direct object access.\n */\n extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter\n ): Context;\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n fields(): string[];\n}\n\n/**\n * A setter is specified by the caller to define a specific method\n * to set key/value pairs on the carrier within a propagator.\n */\nexport interface TextMapSetter {\n /**\n * Callback used to set a key/value pair on an object.\n *\n * Should be called by the propagator each time a key/value pair\n * should be set, and should set that key/value pair on the propagator.\n *\n * @param carrier object or class which carries key/value pairs\n * @param key string key to modify\n * @param value value to be set to the key on the carrier\n */\n set(carrier: Carrier, key: string, value: string): void;\n}\n\n/**\n * A getter is specified by the caller to define a specific method\n * to get the value of a key from a carrier.\n */\nexport interface TextMapGetter {\n /**\n * Get a list of all keys available on the carrier.\n *\n * @param carrier\n */\n keys(carrier: Carrier): string[];\n\n /**\n * Get the value of a specific key from the carrier.\n *\n * @param carrier\n * @param key\n */\n get(carrier: Carrier, key: string): undefined | string | string[];\n}\n\nexport const defaultTextMapGetter: TextMapGetter = {\n get(carrier, key) {\n if (carrier == null) {\n return undefined;\n }\n return carrier[key];\n },\n\n keys(carrier) {\n if (carrier == null) {\n return [];\n }\n return Object.keys(carrier);\n },\n};\n\nexport const defaultTextMapSetter: TextMapSetter = {\n set(carrier, key, value) {\n if (carrier == null) {\n return;\n }\n\n carrier[key] = value;\n },\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace-api.d.ts b/node_modules/@opentelemetry/api/build/esm/trace-api.d.ts deleted file mode 100644 index b4751a7f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { TraceAPI } from './api/trace'; -/** Entrypoint for trace API */ -export declare const trace: TraceAPI; -//# sourceMappingURL=trace-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace-api.js b/node_modules/@opentelemetry/api/build/esm/trace-api.js deleted file mode 100644 index 57506e51..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { TraceAPI } from './api/trace'; -/** Entrypoint for trace API */ -export var trace = TraceAPI.getInstance(); -//# sourceMappingURL=trace-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace-api.js.map b/node_modules/@opentelemetry/api/build/esm/trace-api.js.map deleted file mode 100644 index bd11c06e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace-api.js","sourceRoot":"","sources":["../../src/trace-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,+BAA+B;AAC/B,MAAM,CAAC,IAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport const trace = TraceAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.d.ts deleted file mode 100644 index ce569f0c..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Exception } from '../common/Exception'; -import { TimeInput } from '../common/Time'; -import { SpanAttributes } from './attributes'; -import { Span } from './span'; -import { SpanContext } from './span_context'; -import { SpanStatus } from './status'; -import { Link } from './link'; -/** - * The NonRecordingSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -export declare class NonRecordingSpan implements Span { - private readonly _spanContext; - constructor(_spanContext?: SpanContext); - spanContext(): SpanContext; - setAttribute(_key: string, _value: unknown): this; - setAttributes(_attributes: SpanAttributes): this; - addEvent(_name: string, _attributes?: SpanAttributes): this; - addLink(_link: Link): this; - addLinks(_links: Link[]): this; - setStatus(_status: SpanStatus): this; - updateName(_name: string): this; - end(_endTime?: TimeInput): void; - isRecording(): boolean; - recordException(_exception: Exception, _time?: TimeInput): void; -} -//# sourceMappingURL=NonRecordingSpan.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js b/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js deleted file mode 100644 index ec6dd75b..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { INVALID_SPAN_CONTEXT } from './invalid-span-constants'; -/** - * The NonRecordingSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -var NonRecordingSpan = /** @class */ (function () { - function NonRecordingSpan(_spanContext) { - if (_spanContext === void 0) { _spanContext = INVALID_SPAN_CONTEXT; } - this._spanContext = _spanContext; - } - // Returns a SpanContext. - NonRecordingSpan.prototype.spanContext = function () { - return this._spanContext; - }; - // By default does nothing - NonRecordingSpan.prototype.setAttribute = function (_key, _value) { - return this; - }; - // By default does nothing - NonRecordingSpan.prototype.setAttributes = function (_attributes) { - return this; - }; - // By default does nothing - NonRecordingSpan.prototype.addEvent = function (_name, _attributes) { - return this; - }; - NonRecordingSpan.prototype.addLink = function (_link) { - return this; - }; - NonRecordingSpan.prototype.addLinks = function (_links) { - return this; - }; - // By default does nothing - NonRecordingSpan.prototype.setStatus = function (_status) { - return this; - }; - // By default does nothing - NonRecordingSpan.prototype.updateName = function (_name) { - return this; - }; - // By default does nothing - NonRecordingSpan.prototype.end = function (_endTime) { }; - // isRecording always returns false for NonRecordingSpan. - NonRecordingSpan.prototype.isRecording = function () { - return false; - }; - // By default does nothing - NonRecordingSpan.prototype.recordException = function (_exception, _time) { }; - return NonRecordingSpan; -}()); -export { NonRecordingSpan }; -//# sourceMappingURL=NonRecordingSpan.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map b/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map deleted file mode 100644 index 15f932e9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NonRecordingSpan.js","sourceRoot":"","sources":["../../../src/trace/NonRecordingSpan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMhE;;;;GAIG;AACH;IACE,0BACmB,YAAgD;QAAhD,6BAAA,EAAA,mCAAgD;QAAhD,iBAAY,GAAZ,YAAY,CAAoC;IAChE,CAAC;IAEJ,yBAAyB;IACzB,sCAAW,GAAX;QACE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,0BAA0B;IAC1B,uCAAY,GAAZ,UAAa,IAAY,EAAE,MAAe;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,wCAAa,GAAb,UAAc,WAA2B;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,mCAAQ,GAAR,UAAS,KAAa,EAAE,WAA4B;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAO,GAAP,UAAQ,KAAW;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAQ,GAAR,UAAS,MAAc;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,oCAAS,GAAT,UAAU,OAAmB;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,qCAAU,GAAV,UAAW,KAAa;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,8BAAG,GAAH,UAAI,QAAoB,IAAS,CAAC;IAElC,yDAAyD;IACzD,sCAAW,GAAX;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,0CAAe,GAAf,UAAgB,UAAqB,EAAE,KAAiB,IAAS,CAAC;IACpE,uBAAC;AAAD,CAAC,AArDD,IAqDC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nexport class NonRecordingSpan implements Span {\n constructor(\n private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT\n ) {}\n\n // Returns a SpanContext.\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n // By default does nothing\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n // By default does nothing\n setAttributes(_attributes: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n addEvent(_name: string, _attributes?: SpanAttributes): this {\n return this;\n }\n\n addLink(_link: Link): this {\n return this;\n }\n\n addLinks(_links: Link[]): this {\n return this;\n }\n\n // By default does nothing\n setStatus(_status: SpanStatus): this {\n return this;\n }\n\n // By default does nothing\n updateName(_name: string): this {\n return this;\n }\n\n // By default does nothing\n end(_endTime?: TimeInput): void {}\n\n // isRecording always returns false for NonRecordingSpan.\n isRecording(): boolean {\n return false;\n }\n\n // By default does nothing\n recordException(_exception: Exception, _time?: TimeInput): void {}\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.d.ts deleted file mode 100644 index 0e059c99..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -import { Tracer } from './tracer'; -/** - * No-op implementations of {@link Tracer}. - */ -export declare class NoopTracer implements Tracer { - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - startActiveSpan ReturnType>(name: string, fn: F): ReturnType; - startActiveSpan ReturnType>(name: string, opts: SpanOptions | undefined, fn: F): ReturnType; - startActiveSpan ReturnType>(name: string, opts: SpanOptions | undefined, ctx: Context | undefined, fn: F): ReturnType; -} -//# sourceMappingURL=NoopTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js b/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js deleted file mode 100644 index 5a3a9695..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ContextAPI } from '../api/context'; -import { getSpanContext, setSpan } from '../trace/context-utils'; -import { NonRecordingSpan } from './NonRecordingSpan'; -import { isSpanContextValid } from './spancontext-utils'; -var contextApi = ContextAPI.getInstance(); -/** - * No-op implementations of {@link Tracer}. - */ -var NoopTracer = /** @class */ (function () { - function NoopTracer() { - } - // startSpan starts a noop span. - NoopTracer.prototype.startSpan = function (name, options, context) { - if (context === void 0) { context = contextApi.active(); } - var root = Boolean(options === null || options === void 0 ? void 0 : options.root); - if (root) { - return new NonRecordingSpan(); - } - var parentFromContext = context && getSpanContext(context); - if (isSpanContext(parentFromContext) && - isSpanContextValid(parentFromContext)) { - return new NonRecordingSpan(parentFromContext); - } - else { - return new NonRecordingSpan(); - } - }; - NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) { - var opts; - var ctx; - var fn; - if (arguments.length < 2) { - return; - } - else if (arguments.length === 2) { - fn = arg2; - } - else if (arguments.length === 3) { - opts = arg2; - fn = arg3; - } - else { - opts = arg2; - ctx = arg3; - fn = arg4; - } - var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active(); - var span = this.startSpan(name, opts, parentContext); - var contextWithSpanSet = setSpan(parentContext, span); - return contextApi.with(contextWithSpanSet, fn, undefined, span); - }; - return NoopTracer; -}()); -export { NoopTracer }; -function isSpanContext(spanContext) { - return (typeof spanContext === 'object' && - typeof spanContext['spanId'] === 'string' && - typeof spanContext['traceId'] === 'string' && - typeof spanContext['traceFlags'] === 'number'); -} -//# sourceMappingURL=NoopTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map b/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map deleted file mode 100644 index ae829389..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../../../src/trace/NoopTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD,IAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;AAE5C;;GAEG;AACH;IAAA;IAoEA,CAAC;IAnEC,gCAAgC;IAChC,8BAAS,GAAT,UACE,IAAY,EACZ,OAAqB,EACrB,OAA6B;QAA7B,wBAAA,EAAA,UAAU,UAAU,CAAC,MAAM,EAAE;QAE7B,IAAM,IAAI,GAAG,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,gBAAgB,EAAE,CAAC;SAC/B;QAED,IAAM,iBAAiB,GAAG,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QAE7D,IACE,aAAa,CAAC,iBAAiB,CAAC;YAChC,kBAAkB,CAAC,iBAAiB,CAAC,EACrC;YACA,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;SAChD;aAAM;YACL,OAAO,IAAI,gBAAgB,EAAE,CAAC;SAC/B;IACH,CAAC;IAiBD,oCAAe,GAAf,UACE,IAAY,EACZ,IAAsB,EACtB,IAAkB,EAClB,IAAQ;QAER,IAAI,IAA6B,CAAC;QAClC,IAAI,GAAwB,CAAC;QAC7B,IAAI,EAAK,CAAC;QAEV,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO;SACR;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,EAAE,GAAG,IAAS,CAAC;SAChB;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,IAAI,GAAG,IAA+B,CAAC;YACvC,EAAE,GAAG,IAAS,CAAC;SAChB;aAAM;YACL,IAAI,GAAG,IAA+B,CAAC;YACvC,GAAG,GAAG,IAA2B,CAAC;YAClC,EAAE,GAAG,IAAS,CAAC;SAChB;QAED,IAAM,aAAa,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACjD,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACvD,IAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAExD,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IACH,iBAAC;AAAD,CAAC,AApED,IAoEC;;AAED,SAAS,aAAa,CAAC,WAAgB;IACrC,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACzC,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,QAAQ;QAC1C,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,QAAQ,CAC9C,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { Context } from '../context/types';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { isSpanContextValid } from './spancontext-utils';\nimport { SpanOptions } from './SpanOptions';\nimport { SpanContext } from './span_context';\nimport { Tracer } from './tracer';\n\nconst contextApi = ContextAPI.getInstance();\n\n/**\n * No-op implementations of {@link Tracer}.\n */\nexport class NoopTracer implements Tracer {\n // startSpan starts a noop span.\n startSpan(\n name: string,\n options?: SpanOptions,\n context = contextApi.active()\n ): Span {\n const root = Boolean(options?.root);\n if (root) {\n return new NonRecordingSpan();\n }\n\n const parentFromContext = context && getSpanContext(context);\n\n if (\n isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)\n ) {\n return new NonRecordingSpan(parentFromContext);\n } else {\n return new NonRecordingSpan();\n }\n }\n\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n ctx: Context | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | SpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: SpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as SpanOptions | undefined;\n ctx = arg3 as Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? contextApi.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = setSpan(parentContext, span);\n\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n }\n}\n\nfunction isSpanContext(spanContext: any): spanContext is SpanContext {\n return (\n typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number'\n );\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.d.ts deleted file mode 100644 index ec0fe792..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -import { TracerProvider } from './tracer_provider'; -/** - * An implementation of the {@link TracerProvider} which returns an impotent - * Tracer for all calls to `getTracer`. - * - * All operations are no-op. - */ -export declare class NoopTracerProvider implements TracerProvider { - getTracer(_name?: string, _version?: string, _options?: TracerOptions): Tracer; -} -//# sourceMappingURL=NoopTracerProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js b/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js deleted file mode 100644 index 14d44c22..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoopTracer } from './NoopTracer'; -/** - * An implementation of the {@link TracerProvider} which returns an impotent - * Tracer for all calls to `getTracer`. - * - * All operations are no-op. - */ -var NoopTracerProvider = /** @class */ (function () { - function NoopTracerProvider() { - } - NoopTracerProvider.prototype.getTracer = function (_name, _version, _options) { - return new NoopTracer(); - }; - return NoopTracerProvider; -}()); -export { NoopTracerProvider }; -//# sourceMappingURL=NoopTracerProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map b/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map deleted file mode 100644 index 2705ab49..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTracerProvider.js","sourceRoot":"","sources":["../../../src/trace/NoopTracerProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C;;;;;GAKG;AACH;IAAA;IAQA,CAAC;IAPC,sCAAS,GAAT,UACE,KAAc,EACd,QAAiB,EACjB,QAAwB;QAExB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IACH,yBAAC;AAAD,CAAC,AARD,IAQC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopTracer } from './NoopTracer';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\nimport { TracerProvider } from './tracer_provider';\n\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nexport class NoopTracerProvider implements TracerProvider {\n getTracer(\n _name?: string,\n _version?: string,\n _options?: TracerOptions\n ): Tracer {\n return new NoopTracer();\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.d.ts deleted file mode 100644 index 116cc5c1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -/** - * Proxy tracer provided by the proxy tracer provider - */ -export declare class ProxyTracer implements Tracer { - private _provider; - readonly name: string; - readonly version?: string | undefined; - readonly options?: TracerOptions | undefined; - private _delegate?; - constructor(_provider: TracerDelegator, name: string, version?: string | undefined, options?: TracerOptions | undefined); - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - startActiveSpan unknown>(_name: string, _options: F | SpanOptions, _context?: F | Context, _fn?: F): ReturnType; - /** - * Try to get a tracer from the proxy tracer provider. - * If the proxy tracer provider has no delegate, return a noop tracer. - */ - private _getTracer; -} -export interface TracerDelegator { - getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined; -} -//# sourceMappingURL=ProxyTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js b/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js deleted file mode 100644 index 341991b9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoopTracer } from './NoopTracer'; -var NOOP_TRACER = new NoopTracer(); -/** - * Proxy tracer provided by the proxy tracer provider - */ -var ProxyTracer = /** @class */ (function () { - function ProxyTracer(_provider, name, version, options) { - this._provider = _provider; - this.name = name; - this.version = version; - this.options = options; - } - ProxyTracer.prototype.startSpan = function (name, options, context) { - return this._getTracer().startSpan(name, options, context); - }; - ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) { - var tracer = this._getTracer(); - return Reflect.apply(tracer.startActiveSpan, tracer, arguments); - }; - /** - * Try to get a tracer from the proxy tracer provider. - * If the proxy tracer provider has no delegate, return a noop tracer. - */ - ProxyTracer.prototype._getTracer = function () { - if (this._delegate) { - return this._delegate; - } - var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options); - if (!tracer) { - return NOOP_TRACER; - } - this._delegate = tracer; - return this._delegate; - }; - return ProxyTracer; -}()); -export { ProxyTracer }; -//# sourceMappingURL=ProxyTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map b/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map deleted file mode 100644 index 0511ae80..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProxyTracer.js","sourceRoot":"","sources":["../../../src/trace/ProxyTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,IAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC;AAErC;;GAEG;AACH;IAIE,qBACU,SAA0B,EAClB,IAAY,EACZ,OAAgB,EAChB,OAAuB;QAH/B,cAAS,GAAT,SAAS,CAAiB;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAAgB;IACtC,CAAC;IAEJ,+BAAS,GAAT,UAAU,IAAY,EAAE,OAAqB,EAAE,OAAiB;QAC9D,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,qCAAe,GAAf,UACE,KAAa,EACb,QAAyB,EACzB,QAAsB,EACtB,GAAO;QAEP,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACK,gCAAU,GAAlB;QACE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC7C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,WAAW,CAAC;SACpB;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACH,kBAAC;AAAD,CAAC,AA/CD,IA+CC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { NoopTracer } from './NoopTracer';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER = new NoopTracer();\n\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nexport class ProxyTracer implements Tracer {\n // When a real implementation is provided, this will be it\n private _delegate?: Tracer;\n\n constructor(\n private _provider: TracerDelegator,\n public readonly name: string,\n public readonly version?: string,\n public readonly options?: TracerOptions\n ) {}\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n return this._getTracer().startSpan(name, options, context);\n }\n\n startActiveSpan unknown>(\n _name: string,\n _options: F | SpanOptions,\n _context?: F | Context,\n _fn?: F\n ): ReturnType {\n const tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n }\n\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n private _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n\n const tracer = this._provider.getDelegateTracer(\n this.name,\n this.version,\n this.options\n );\n\n if (!tracer) {\n return NOOP_TRACER;\n }\n\n this._delegate = tracer;\n return this._delegate;\n }\n}\n\nexport interface TracerDelegator {\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.d.ts deleted file mode 100644 index ee7eafa9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerProvider } from './tracer_provider'; -import { TracerOptions } from './tracer_options'; -/** - * Tracer provider which provides {@link ProxyTracer}s. - * - * Before a delegate is set, tracers provided are NoOp. - * When a delegate is set, traces are provided from the delegate. - * When a delegate is set after tracers have already been provided, - * all tracers already provided will use the provided delegate implementation. - */ -export declare class ProxyTracerProvider implements TracerProvider { - private _delegate?; - /** - * Get a {@link ProxyTracer} - */ - getTracer(name: string, version?: string, options?: TracerOptions): Tracer; - getDelegate(): TracerProvider; - /** - * Set the delegate tracer provider - */ - setDelegate(delegate: TracerProvider): void; - getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined; -} -//# sourceMappingURL=ProxyTracerProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js b/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js deleted file mode 100644 index 3cc735c9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ProxyTracer } from './ProxyTracer'; -import { NoopTracerProvider } from './NoopTracerProvider'; -var NOOP_TRACER_PROVIDER = new NoopTracerProvider(); -/** - * Tracer provider which provides {@link ProxyTracer}s. - * - * Before a delegate is set, tracers provided are NoOp. - * When a delegate is set, traces are provided from the delegate. - * When a delegate is set after tracers have already been provided, - * all tracers already provided will use the provided delegate implementation. - */ -var ProxyTracerProvider = /** @class */ (function () { - function ProxyTracerProvider() { - } - /** - * Get a {@link ProxyTracer} - */ - ProxyTracerProvider.prototype.getTracer = function (name, version, options) { - var _a; - return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options)); - }; - ProxyTracerProvider.prototype.getDelegate = function () { - var _a; - return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER; - }; - /** - * Set the delegate tracer provider - */ - ProxyTracerProvider.prototype.setDelegate = function (delegate) { - this._delegate = delegate; - }; - ProxyTracerProvider.prototype.getDelegateTracer = function (name, version, options) { - var _a; - return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options); - }; - return ProxyTracerProvider; -}()); -export { ProxyTracerProvider }; -//# sourceMappingURL=ProxyTracerProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map b/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map deleted file mode 100644 index fc9179b1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProxyTracerProvider.js","sourceRoot":"","sources":["../../../src/trace/ProxyTracerProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,IAAM,oBAAoB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEtD;;;;;;;GAOG;AACH;IAAA;IA+BA,CAAC;IA5BC;;OAEG;IACH,uCAAS,GAAT,UAAU,IAAY,EAAE,OAAgB,EAAE,OAAuB;;QAC/D,OAAO,CACL,MAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,mCAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,yCAAW,GAAX;;QACE,OAAO,MAAA,IAAI,CAAC,SAAS,mCAAI,oBAAoB,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,yCAAW,GAAX,UAAY,QAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,+CAAiB,GAAjB,UACE,IAAY,EACZ,OAAgB,EAChB,OAAuB;;QAEvB,OAAO,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IACH,0BAAC;AAAD,CAAC,AA/BD,IA+BC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nexport class ProxyTracerProvider implements TracerProvider {\n private _delegate?: TracerProvider;\n\n /**\n * Get a {@link ProxyTracer}\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n return (\n this.getDelegateTracer(name, version, options) ??\n new ProxyTracer(this, name, version, options)\n );\n }\n\n getDelegate(): TracerProvider {\n return this._delegate ?? NOOP_TRACER_PROVIDER;\n }\n\n /**\n * Set the delegate tracer provider\n */\n setDelegate(delegate: TracerProvider) {\n this._delegate = delegate;\n }\n\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined {\n return this._delegate?.getTracer(name, version, options);\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/Sampler.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/Sampler.d.ts deleted file mode 100644 index c847eaf3..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/Sampler.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Context } from '../context/types'; -import { SpanAttributes } from './attributes'; -import { Link } from './link'; -import { SamplingResult } from './SamplingResult'; -import { SpanKind } from './span_kind'; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * This interface represent a sampler. Sampling is a mechanism to control the - * noise and overhead introduced by OpenTelemetry by reducing the number of - * samples of traces collected and sent to the backend. - */ -export interface Sampler { - /** - * Checks whether span needs to be created and tracked. - * - * @param context Parent Context which may contain a span. - * @param traceId of the span to be created. It can be different from the - * traceId in the {@link SpanContext}. Typically in situations when the - * span to be created starts a new trace. - * @param spanName of the span to be created. - * @param spanKind of the span to be created. - * @param attributes Initial set of SpanAttributes for the Span being constructed. - * @param links Collection of links that will be associated with the Span to - * be created. Typically useful for batch operations. - * @returns a {@link SamplingResult}. - */ - shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: SpanAttributes, links: Link[]): SamplingResult; - /** Returns the sampler name or short description with the configuration. */ - toString(): string; -} -//# sourceMappingURL=Sampler.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js b/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js deleted file mode 100644 index 22a60a12..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Sampler.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js.map b/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js.map deleted file mode 100644 index 66719b11..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/Sampler.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Sampler.js","sourceRoot":"","sources":["../../../src/trace/Sampler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { SpanAttributes } from './attributes';\nimport { Link } from './link';\nimport { SamplingResult } from './SamplingResult';\nimport { SpanKind } from './span_kind';\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * This interface represent a sampler. Sampling is a mechanism to control the\n * noise and overhead introduced by OpenTelemetry by reducing the number of\n * samples of traces collected and sent to the backend.\n */\nexport interface Sampler {\n /**\n * Checks whether span needs to be created and tracked.\n *\n * @param context Parent Context which may contain a span.\n * @param traceId of the span to be created. It can be different from the\n * traceId in the {@link SpanContext}. Typically in situations when the\n * span to be created starts a new trace.\n * @param spanName of the span to be created.\n * @param spanKind of the span to be created.\n * @param attributes Initial set of SpanAttributes for the Span being constructed.\n * @param links Collection of links that will be associated with the Span to\n * be created. Typically useful for batch operations.\n * @returns a {@link SamplingResult}.\n */\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: SpanAttributes,\n links: Link[]\n ): SamplingResult;\n\n /** Returns the sampler name or short description with the configuration. */\n toString(): string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.d.ts deleted file mode 100644 index f2bb495f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { SpanAttributes } from './attributes'; -import { TraceState } from './trace_state'; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling decision that determines how a {@link Span} will be recorded - * and collected. - */ -export declare enum SamplingDecision { - /** - * `Span.isRecording() === false`, span will not be recorded and all events - * and attributes will be dropped. - */ - NOT_RECORD = 0, - /** - * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags} - * MUST NOT be set. - */ - RECORD = 1, - /** - * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags} - * MUST be set. - */ - RECORD_AND_SAMPLED = 2 -} -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling result contains a decision for a {@link Span} and additional - * attributes the sampler would like to added to the Span. - */ -export interface SamplingResult { - /** - * A sampling decision, refer to {@link SamplingDecision} for details. - */ - decision: SamplingDecision; - /** - * The list of attributes returned by SamplingResult MUST be immutable. - * Caller may call {@link Sampler}.shouldSample any number of times and - * can safely cache the returned value. - */ - attributes?: Readonly; - /** - * A {@link TraceState} that will be associated with the {@link Span} through - * the new {@link SpanContext}. Samplers SHOULD return the TraceState from - * the passed-in {@link Context} if they do not intend to change it. Leaving - * the value undefined will also leave the TraceState unchanged. - */ - traceState?: TraceState; -} -//# sourceMappingURL=SamplingResult.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js b/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js deleted file mode 100644 index be657416..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling decision that determines how a {@link Span} will be recorded - * and collected. - */ -export var SamplingDecision; -(function (SamplingDecision) { - /** - * `Span.isRecording() === false`, span will not be recorded and all events - * and attributes will be dropped. - */ - SamplingDecision[SamplingDecision["NOT_RECORD"] = 0] = "NOT_RECORD"; - /** - * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags} - * MUST NOT be set. - */ - SamplingDecision[SamplingDecision["RECORD"] = 1] = "RECORD"; - /** - * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags} - * MUST be set. - */ - SamplingDecision[SamplingDecision["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED"; -})(SamplingDecision || (SamplingDecision = {})); -//# sourceMappingURL=SamplingResult.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js.map b/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js.map deleted file mode 100644 index fd549c85..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SamplingResult.js","sourceRoot":"","sources":["../../../src/trace/SamplingResult.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;;;GAIG;AACH,MAAM,CAAN,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,mEAAU,CAAA;IACV;;;OAGG;IACH,2DAAM,CAAA;IACN;;;OAGG;IACH,mFAAkB,CAAA;AACpB,CAAC,EAhBW,gBAAgB,KAAhB,gBAAgB,QAgB3B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\nimport { TraceState } from './trace_state';\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport enum SamplingDecision {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n NOT_RECORD,\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n RECORD,\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n RECORD_AND_SAMPLED,\n}\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling result contains a decision for a {@link Span} and additional\n * attributes the sampler would like to added to the Span.\n */\nexport interface SamplingResult {\n /**\n * A sampling decision, refer to {@link SamplingDecision} for details.\n */\n decision: SamplingDecision;\n /**\n * The list of attributes returned by SamplingResult MUST be immutable.\n * Caller may call {@link Sampler}.shouldSample any number of times and\n * can safely cache the returned value.\n */\n attributes?: Readonly;\n /**\n * A {@link TraceState} that will be associated with the {@link Span} through\n * the new {@link SpanContext}. Samplers SHOULD return the TraceState from\n * the passed-in {@link Context} if they do not intend to change it. Leaving\n * the value undefined will also leave the TraceState unchanged.\n */\n traceState?: TraceState;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.d.ts deleted file mode 100644 index c8045689..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { TimeInput } from '../common/Time'; -import { SpanAttributes } from './attributes'; -import { Link } from './link'; -import { SpanKind } from './span_kind'; -/** - * Options needed for span creation - */ -export interface SpanOptions { - /** - * The SpanKind of a span - * @default {@link SpanKind.INTERNAL} - */ - kind?: SpanKind; - /** A span's attributes */ - attributes?: SpanAttributes; - /** {@link Link}s span to other spans */ - links?: Link[]; - /** A manually specified start time for the created `Span` object. */ - startTime?: TimeInput; - /** The new span should be a root span. (Ignore parent from context). */ - root?: boolean; -} -//# sourceMappingURL=SpanOptions.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js b/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js deleted file mode 100644 index 06b42b15..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=SpanOptions.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js.map b/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js.map deleted file mode 100644 index 9132a33e..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/SpanOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SpanOptions.js","sourceRoot":"","sources":["../../../src/trace/SpanOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { Link } from './link';\nimport { SpanKind } from './span_kind';\n\n/**\n * Options needed for span creation\n */\nexport interface SpanOptions {\n /**\n * The SpanKind of a span\n * @default {@link SpanKind.INTERNAL}\n */\n kind?: SpanKind;\n\n /** A span's attributes */\n attributes?: SpanAttributes;\n\n /** {@link Link}s span to other spans */\n links?: Link[];\n\n /** A manually specified start time for the created `Span` object. */\n startTime?: TimeInput;\n\n /** The new span should be a root span. (Ignore parent from context). */\n root?: boolean;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/attributes.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/attributes.d.ts deleted file mode 100644 index a2a5d2a2..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/attributes.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Attributes, AttributeValue } from '../common/Attributes'; -/** - * @deprecated please use {@link Attributes} - */ -export declare type SpanAttributes = Attributes; -/** - * @deprecated please use {@link AttributeValue} - */ -export declare type SpanAttributeValue = AttributeValue; -//# sourceMappingURL=attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/attributes.js b/node_modules/@opentelemetry/api/build/esm/trace/attributes.js deleted file mode 100644 index 6f1b9a3f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/attributes.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=attributes.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/attributes.js.map b/node_modules/@opentelemetry/api/build/esm/trace/attributes.js.map deleted file mode 100644 index 2b02be78..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/attributes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/trace/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes, AttributeValue } from '../common/Attributes';\n\n/**\n * @deprecated please use {@link Attributes}\n */\nexport type SpanAttributes = Attributes;\n\n/**\n * @deprecated please use {@link AttributeValue}\n */\nexport type SpanAttributeValue = AttributeValue;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/context-utils.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/context-utils.d.ts deleted file mode 100644 index f35f7942..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/context-utils.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanContext } from './span_context'; -/** - * Return the span if one exists - * - * @param context context to get span from - */ -export declare function getSpan(context: Context): Span | undefined; -/** - * Gets the span from the current context, if one exists. - */ -export declare function getActiveSpan(): Span | undefined; -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -export declare function setSpan(context: Context, span: Span): Context; -/** - * Remove current span stored in the context - * - * @param context context to delete span from - */ -export declare function deleteSpan(context: Context): Context; -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -export declare function setSpanContext(context: Context, spanContext: SpanContext): Context; -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -export declare function getSpanContext(context: Context): SpanContext | undefined; -//# sourceMappingURL=context-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js b/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js deleted file mode 100644 index 4d776c38..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { createContextKey } from '../context/context'; -import { NonRecordingSpan } from './NonRecordingSpan'; -import { ContextAPI } from '../api/context'; -/** - * span key - */ -var SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN'); -/** - * Return the span if one exists - * - * @param context context to get span from - */ -export function getSpan(context) { - return context.getValue(SPAN_KEY) || undefined; -} -/** - * Gets the span from the current context, if one exists. - */ -export function getActiveSpan() { - return getSpan(ContextAPI.getInstance().active()); -} -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -export function setSpan(context, span) { - return context.setValue(SPAN_KEY, span); -} -/** - * Remove current span stored in the context - * - * @param context context to delete span from - */ -export function deleteSpan(context) { - return context.deleteValue(SPAN_KEY); -} -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -export function setSpanContext(context, spanContext) { - return setSpan(context, new NonRecordingSpan(spanContext)); -} -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -export function getSpanContext(context) { - var _a; - return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext(); -} -//# sourceMappingURL=context-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map b/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map deleted file mode 100644 index 86103d17..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-utils.js","sourceRoot":"","sources":["../../../src/trace/context-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,IAAM,QAAQ,GAAG,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB;IACtC,OAAQ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU,IAAI,SAAS,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB,EAAE,IAAU;IAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,WAAwB;IAExB,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;;IAC7C,OAAO,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAE,WAAW,EAAE,CAAC;AACzC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan(): Span | undefined {\n return getSpan(ContextAPI.getInstance().active());\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.d.ts deleted file mode 100644 index 9ed5ecb7..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { TraceState } from '../trace_state'; -/** - * TraceState must be a class and not a simple object type because of the spec - * requirement (https://www.w3.org/TR/trace-context/#tracestate-field). - * - * Here is the list of allowed mutations: - * - New key-value pair should be added into the beginning of the list - * - The value of any key can be updated. Modified keys MUST be moved to the - * beginning of the list. - */ -export declare class TraceStateImpl implements TraceState { - private _internalState; - constructor(rawTraceState?: string); - set(key: string, value: string): TraceStateImpl; - unset(key: string): TraceStateImpl; - get(key: string): string | undefined; - serialize(): string; - private _parse; - private _keys; - private _clone; -} -//# sourceMappingURL=tracestate-impl.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js b/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js deleted file mode 100644 index 75140693..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { validateKey, validateValue } from './tracestate-validators'; -var MAX_TRACE_STATE_ITEMS = 32; -var MAX_TRACE_STATE_LEN = 512; -var LIST_MEMBERS_SEPARATOR = ','; -var LIST_MEMBER_KEY_VALUE_SPLITTER = '='; -/** - * TraceState must be a class and not a simple object type because of the spec - * requirement (https://www.w3.org/TR/trace-context/#tracestate-field). - * - * Here is the list of allowed mutations: - * - New key-value pair should be added into the beginning of the list - * - The value of any key can be updated. Modified keys MUST be moved to the - * beginning of the list. - */ -var TraceStateImpl = /** @class */ (function () { - function TraceStateImpl(rawTraceState) { - this._internalState = new Map(); - if (rawTraceState) - this._parse(rawTraceState); - } - TraceStateImpl.prototype.set = function (key, value) { - // TODO: Benchmark the different approaches(map vs list) and - // use the faster one. - var traceState = this._clone(); - if (traceState._internalState.has(key)) { - traceState._internalState.delete(key); - } - traceState._internalState.set(key, value); - return traceState; - }; - TraceStateImpl.prototype.unset = function (key) { - var traceState = this._clone(); - traceState._internalState.delete(key); - return traceState; - }; - TraceStateImpl.prototype.get = function (key) { - return this._internalState.get(key); - }; - TraceStateImpl.prototype.serialize = function () { - var _this = this; - return this._keys() - .reduce(function (agg, key) { - agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + _this.get(key)); - return agg; - }, []) - .join(LIST_MEMBERS_SEPARATOR); - }; - TraceStateImpl.prototype._parse = function (rawTraceState) { - if (rawTraceState.length > MAX_TRACE_STATE_LEN) - return; - this._internalState = rawTraceState - .split(LIST_MEMBERS_SEPARATOR) - .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning - .reduce(function (agg, part) { - var listMember = part.trim(); // Optional Whitespace (OWS) handling - var i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER); - if (i !== -1) { - var key = listMember.slice(0, i); - var value = listMember.slice(i + 1, part.length); - if (validateKey(key) && validateValue(value)) { - agg.set(key, value); - } - else { - // TODO: Consider to add warning log - } - } - return agg; - }, new Map()); - // Because of the reverse() requirement, trunc must be done after map is created - if (this._internalState.size > MAX_TRACE_STATE_ITEMS) { - this._internalState = new Map(Array.from(this._internalState.entries()) - .reverse() // Use reverse same as original tracestate parse chain - .slice(0, MAX_TRACE_STATE_ITEMS)); - } - }; - TraceStateImpl.prototype._keys = function () { - return Array.from(this._internalState.keys()).reverse(); - }; - TraceStateImpl.prototype._clone = function () { - var traceState = new TraceStateImpl(); - traceState._internalState = new Map(this._internalState); - return traceState; - }; - return TraceStateImpl; -}()); -export { TraceStateImpl }; -//# sourceMappingURL=tracestate-impl.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js.map b/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js.map deleted file mode 100644 index 102cb4f3..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracestate-impl.js","sourceRoot":"","sources":["../../../../src/trace/internal/tracestate-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAErE,IAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,IAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,IAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,IAAM,8BAA8B,GAAG,GAAG,CAAC;AAE3C;;;;;;;;GAQG;AACH;IAGE,wBAAY,aAAsB;QAF1B,mBAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QAGtD,IAAI,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,4BAAG,GAAH,UAAI,GAAW,EAAE,KAAa;QAC5B,4DAA4D;QAC5D,sBAAsB;QACtB,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvC;QACD,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,8BAAK,GAAL,UAAM,GAAW;QACf,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,4BAAG,GAAH,UAAI,GAAW;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,kCAAS,GAAT;QAAA,iBAOC;QANC,OAAO,IAAI,CAAC,KAAK,EAAE;aAChB,MAAM,CAAC,UAAC,GAAa,EAAE,GAAG;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,GAAG,KAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;aACL,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAEO,+BAAM,GAAd,UAAe,aAAqB;QAClC,IAAI,aAAa,CAAC,MAAM,GAAG,mBAAmB;YAAE,OAAO;QACvD,IAAI,CAAC,cAAc,GAAG,aAAa;aAChC,KAAK,CAAC,sBAAsB,CAAC;aAC7B,OAAO,EAAE,CAAC,2EAA2E;aACrF,MAAM,CAAC,UAAC,GAAwB,EAAE,IAAY;YAC7C,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,qCAAqC;YACrE,IAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACZ,IAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;oBAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACrB;qBAAM;oBACL,oCAAoC;iBACrC;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAEhB,gFAAgF;QAChF,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,qBAAqB,EAAE;YACpD,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;iBACtC,OAAO,EAAE,CAAC,sDAAsD;iBAChE,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CACnC,CAAC;SACH;IACH,CAAC;IAEO,8BAAK,GAAb;QACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;IAEO,+BAAM,GAAd;QACE,IAAM,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,UAAU,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IACH,qBAAC;AAAD,CAAC,AA5ED,IA4EC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { validateKey, validateValue } from './tracestate-validators';\n\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nexport class TraceStateImpl implements TraceState {\n private _internalState: Map = new Map();\n\n constructor(rawTraceState?: string) {\n if (rawTraceState) this._parse(rawTraceState);\n }\n\n set(key: string, value: string): TraceStateImpl {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n\n unset(key: string): TraceStateImpl {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n\n get(key: string): string | undefined {\n return this._internalState.get(key);\n }\n\n serialize(): string {\n return this._keys()\n .reduce((agg: string[], key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n\n private _parse(rawTraceState: string) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN) return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg: Map, part: string) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n } else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(\n Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS)\n );\n }\n }\n\n private _keys(): string[] {\n return Array.from(this._internalState.keys()).reverse();\n }\n\n private _clone(): TraceStateImpl {\n const traceState = new TraceStateImpl();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.d.ts deleted file mode 100644 index 4917f99d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Key is opaque string up to 256 characters printable. It MUST begin with a - * lowercase letter, and can only contain lowercase letters a-z, digits 0-9, - * underscores _, dashes -, asterisks *, and forward slashes /. - * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the - * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key. - * see https://www.w3.org/TR/trace-context/#key - */ -export declare function validateKey(key: string): boolean; -/** - * Value is opaque string up to 256 characters printable ASCII RFC0020 - * characters (i.e., the range 0x20 to 0x7E) except comma , and =. - */ -export declare function validateValue(value: string): boolean; -//# sourceMappingURL=tracestate-validators.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js b/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js deleted file mode 100644 index 1d3f14bc..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]'; -var VALID_KEY = "[a-z]" + VALID_KEY_CHAR_RANGE + "{0,255}"; -var VALID_VENDOR_KEY = "[a-z0-9]" + VALID_KEY_CHAR_RANGE + "{0,240}@[a-z]" + VALID_KEY_CHAR_RANGE + "{0,13}"; -var VALID_KEY_REGEX = new RegExp("^(?:" + VALID_KEY + "|" + VALID_VENDOR_KEY + ")$"); -var VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/; -var INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/; -/** - * Key is opaque string up to 256 characters printable. It MUST begin with a - * lowercase letter, and can only contain lowercase letters a-z, digits 0-9, - * underscores _, dashes -, asterisks *, and forward slashes /. - * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the - * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key. - * see https://www.w3.org/TR/trace-context/#key - */ -export function validateKey(key) { - return VALID_KEY_REGEX.test(key); -} -/** - * Value is opaque string up to 256 characters printable ASCII RFC0020 - * characters (i.e., the range 0x20 to 0x7E) except comma , and =. - */ -export function validateValue(value) { - return (VALID_VALUE_BASE_REGEX.test(value) && - !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)); -} -//# sourceMappingURL=tracestate-validators.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js.map b/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js.map deleted file mode 100644 index 72899fc6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracestate-validators.js","sourceRoot":"","sources":["../../../../src/trace/internal/tracestate-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,IAAM,oBAAoB,GAAG,cAAc,CAAC;AAC5C,IAAM,SAAS,GAAG,UAAQ,oBAAoB,YAAS,CAAC;AACxD,IAAM,gBAAgB,GAAG,aAAW,oBAAoB,qBAAgB,oBAAoB,WAAQ,CAAC;AACrG,IAAM,eAAe,GAAG,IAAI,MAAM,CAAC,SAAO,SAAS,SAAI,gBAAgB,OAAI,CAAC,CAAC;AAC7E,IAAM,sBAAsB,GAAG,qBAAqB,CAAC;AACrD,IAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAC7C,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key: string): boolean {\n return VALID_KEY_REGEX.test(key);\n}\n\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value: string): boolean {\n return (\n VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)\n );\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.d.ts deleted file mode 100644 index e3b51fe4..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { TraceState } from '../trace_state'; -export declare function createTraceState(rawTraceState?: string): TraceState; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js b/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js deleted file mode 100644 index feea4691..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { TraceStateImpl } from './tracestate-impl'; -export function createTraceState(rawTraceState) { - return new TraceStateImpl(rawTraceState); -} -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js.map b/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js.map deleted file mode 100644 index 91ba3d14..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/trace/internal/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,gBAAgB,CAAC,aAAsB;IACrD,OAAO,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { TraceStateImpl } from './tracestate-impl';\n\nexport function createTraceState(rawTraceState?: string): TraceState {\n return new TraceStateImpl(rawTraceState);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.d.ts deleted file mode 100644 index e32dab9d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { SpanContext } from './span_context'; -export declare const INVALID_SPANID = "0000000000000000"; -export declare const INVALID_TRACEID = "00000000000000000000000000000000"; -export declare const INVALID_SPAN_CONTEXT: SpanContext; -//# sourceMappingURL=invalid-span-constants.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js b/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js deleted file mode 100644 index 36dc1d62..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { TraceFlags } from './trace_flags'; -export var INVALID_SPANID = '0000000000000000'; -export var INVALID_TRACEID = '00000000000000000000000000000000'; -export var INVALID_SPAN_CONTEXT = { - traceId: INVALID_TRACEID, - spanId: INVALID_SPANID, - traceFlags: TraceFlags.NONE, -}; -//# sourceMappingURL=invalid-span-constants.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map b/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map deleted file mode 100644 index 970a3f41..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"invalid-span-constants.js","sourceRoot":"","sources":["../../../src/trace/invalid-span-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,CAAC,IAAM,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,CAAC,IAAM,eAAe,GAAG,kCAAkC,CAAC;AAClE,MAAM,CAAC,IAAM,oBAAoB,GAAgB;IAC/C,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,UAAU,CAAC,IAAI;CAC5B,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanContext } from './span_context';\nimport { TraceFlags } from './trace_flags';\n\nexport const INVALID_SPANID = '0000000000000000';\nexport const INVALID_TRACEID = '00000000000000000000000000000000';\nexport const INVALID_SPAN_CONTEXT: SpanContext = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/link.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/link.d.ts deleted file mode 100644 index 8fc01062..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/link.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { SpanAttributes } from './attributes'; -import { SpanContext } from './span_context'; -/** - * A pointer from the current {@link Span} to another span in the same trace or - * in a different trace. - * Few examples of Link usage. - * 1. Batch Processing: A batch of elements may contain elements associated - * with one or more traces/spans. Since there can only be one parent - * SpanContext, Link is used to keep reference to SpanContext of all - * elements in the batch. - * 2. Public Endpoint: A SpanContext in incoming client request on a public - * endpoint is untrusted from service provider perspective. In such case it - * is advisable to start a new trace with appropriate sampling decision. - * However, it is desirable to associate incoming SpanContext to new trace - * initiated on service provider side so two traces (from Client and from - * Service Provider) can be correlated. - */ -export interface Link { - /** The {@link SpanContext} of a linked span. */ - context: SpanContext; - /** A set of {@link SpanAttributes} on the link. */ - attributes?: SpanAttributes; - /** Count of attributes of the link that were dropped due to collection limits */ - droppedAttributesCount?: number; -} -//# sourceMappingURL=link.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/link.js b/node_modules/@opentelemetry/api/build/esm/trace/link.js deleted file mode 100644 index 7c8accbe..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/link.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=link.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/link.js.map b/node_modules/@opentelemetry/api/build/esm/trace/link.js.map deleted file mode 100644 index c10b7142..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/link.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/trace/link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\nimport { SpanContext } from './span_context';\n\n/**\n * A pointer from the current {@link Span} to another span in the same trace or\n * in a different trace.\n * Few examples of Link usage.\n * 1. Batch Processing: A batch of elements may contain elements associated\n * with one or more traces/spans. Since there can only be one parent\n * SpanContext, Link is used to keep reference to SpanContext of all\n * elements in the batch.\n * 2. Public Endpoint: A SpanContext in incoming client request on a public\n * endpoint is untrusted from service provider perspective. In such case it\n * is advisable to start a new trace with appropriate sampling decision.\n * However, it is desirable to associate incoming SpanContext to new trace\n * initiated on service provider side so two traces (from Client and from\n * Service Provider) can be correlated.\n */\nexport interface Link {\n /** The {@link SpanContext} of a linked span. */\n context: SpanContext;\n /** A set of {@link SpanAttributes} on the link. */\n attributes?: SpanAttributes;\n /** Count of attributes of the link that were dropped due to collection limits */\n droppedAttributesCount?: number;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/span.d.ts deleted file mode 100644 index 28c6442d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span.d.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { Exception } from '../common/Exception'; -import { TimeInput } from '../common/Time'; -import { SpanAttributes, SpanAttributeValue } from './attributes'; -import { SpanContext } from './span_context'; -import { SpanStatus } from './status'; -import { Link } from './link'; -/** - * An interface that represents a span. A span represents a single operation - * within a trace. Examples of span might include remote procedure calls or a - * in-process function calls to sub-components. A Trace has a single, top-level - * "root" Span that in turn may have zero or more child Spans, which in turn - * may have children. - * - * Spans are created by the {@link Tracer.startSpan} method. - */ -export interface Span { - /** - * Returns the {@link SpanContext} object associated with this Span. - * - * Get an immutable, serializable identifier for this span that can be used - * to create new child spans. Returned SpanContext is usable even after the - * span ends. - * - * @returns the SpanContext object associated with this Span. - */ - spanContext(): SpanContext; - /** - * Sets an attribute to the span. - * - * Sets a single Attribute with the key and value passed as arguments. - * - * @param key the key for this attribute. - * @param value the value for this attribute. Setting a value null or - * undefined is invalid and will result in undefined behavior. - */ - setAttribute(key: string, value: SpanAttributeValue): this; - /** - * Sets attributes to the span. - * - * @param attributes the attributes that will be added. - * null or undefined attribute values - * are invalid and will result in undefined behavior. - */ - setAttributes(attributes: SpanAttributes): this; - /** - * Adds an event to the Span. - * - * @param name the name of the event. - * @param [attributesOrStartTime] the attributes that will be added; these are - * associated with this event. Can be also a start time - * if type is {@type TimeInput} and 3rd param is undefined - * @param [startTime] start time of the event. - */ - addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this; - /** - * Adds a single link to the span. - * - * Links added after the creation will not affect the sampling decision. - * It is preferred span links be added at span creation. - * - * @param link the link to add. - */ - addLink(link: Link): this; - /** - * Adds multiple links to the span. - * - * Links added after the creation will not affect the sampling decision. - * It is preferred span links be added at span creation. - * - * @param links the links to add. - */ - addLinks(links: Link[]): this; - /** - * Sets a status to the span. If used, this will override the default Span - * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value - * of previous calls to SetStatus on the Span. - * - * @param status the SpanStatus to set. - */ - setStatus(status: SpanStatus): this; - /** - * Updates the Span name. - * - * This will override the name provided via {@link Tracer.startSpan}. - * - * Upon this update, any sampling behavior based on Span name will depend on - * the implementation. - * - * @param name the Span name. - */ - updateName(name: string): this; - /** - * Marks the end of Span execution. - * - * Call to End of a Span MUST not have any effects on child spans. Those may - * still be running and can be ended later. - * - * Do not return `this`. The Span generally should not be used after it - * is ended so chaining is not desired in this context. - * - * @param [endTime] the time to set as Span's end time. If not provided, - * use the current time as the span's end time. - */ - end(endTime?: TimeInput): void; - /** - * Returns the flag whether this span will be recorded. - * - * @returns true if this Span is active and recording information like events - * with the `AddEvent` operation and attributes using `setAttributes`. - */ - isRecording(): boolean; - /** - * Sets exception as a span event - * @param exception the exception the only accepted values are string or Error - * @param [time] the time to set as Span's event time. If not provided, - * use the current time. - */ - recordException(exception: Exception, time?: TimeInput): void; -} -//# sourceMappingURL=span.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span.js b/node_modules/@opentelemetry/api/build/esm/trace/span.js deleted file mode 100644 index f41c7f6f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=span.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span.js.map b/node_modules/@opentelemetry/api/build/esm/trace/span.js.map deleted file mode 100644 index f9a1e32f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../src/trace/span.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes, SpanAttributeValue } from './attributes';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * An interface that represents a span. A span represents a single operation\n * within a trace. Examples of span might include remote procedure calls or a\n * in-process function calls to sub-components. A Trace has a single, top-level\n * \"root\" Span that in turn may have zero or more child Spans, which in turn\n * may have children.\n *\n * Spans are created by the {@link Tracer.startSpan} method.\n */\nexport interface Span {\n /**\n * Returns the {@link SpanContext} object associated with this Span.\n *\n * Get an immutable, serializable identifier for this span that can be used\n * to create new child spans. Returned SpanContext is usable even after the\n * span ends.\n *\n * @returns the SpanContext object associated with this Span.\n */\n spanContext(): SpanContext;\n\n /**\n * Sets an attribute to the span.\n *\n * Sets a single Attribute with the key and value passed as arguments.\n *\n * @param key the key for this attribute.\n * @param value the value for this attribute. Setting a value null or\n * undefined is invalid and will result in undefined behavior.\n */\n setAttribute(key: string, value: SpanAttributeValue): this;\n\n /**\n * Sets attributes to the span.\n *\n * @param attributes the attributes that will be added.\n * null or undefined attribute values\n * are invalid and will result in undefined behavior.\n */\n setAttributes(attributes: SpanAttributes): this;\n\n /**\n * Adds an event to the Span.\n *\n * @param name the name of the event.\n * @param [attributesOrStartTime] the attributes that will be added; these are\n * associated with this event. Can be also a start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [startTime] start time of the event.\n */\n addEvent(\n name: string,\n attributesOrStartTime?: SpanAttributes | TimeInput,\n startTime?: TimeInput\n ): this;\n\n /**\n * Adds a single link to the span.\n *\n * Links added after the creation will not affect the sampling decision.\n * It is preferred span links be added at span creation.\n *\n * @param link the link to add.\n */\n addLink(link: Link): this;\n\n /**\n * Adds multiple links to the span.\n *\n * Links added after the creation will not affect the sampling decision.\n * It is preferred span links be added at span creation.\n *\n * @param links the links to add.\n */\n addLinks(links: Link[]): this;\n\n /**\n * Sets a status to the span. If used, this will override the default Span\n * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value\n * of previous calls to SetStatus on the Span.\n *\n * @param status the SpanStatus to set.\n */\n setStatus(status: SpanStatus): this;\n\n /**\n * Updates the Span name.\n *\n * This will override the name provided via {@link Tracer.startSpan}.\n *\n * Upon this update, any sampling behavior based on Span name will depend on\n * the implementation.\n *\n * @param name the Span name.\n */\n updateName(name: string): this;\n\n /**\n * Marks the end of Span execution.\n *\n * Call to End of a Span MUST not have any effects on child spans. Those may\n * still be running and can be ended later.\n *\n * Do not return `this`. The Span generally should not be used after it\n * is ended so chaining is not desired in this context.\n *\n * @param [endTime] the time to set as Span's end time. If not provided,\n * use the current time as the span's end time.\n */\n end(endTime?: TimeInput): void;\n\n /**\n * Returns the flag whether this span will be recorded.\n *\n * @returns true if this Span is active and recording information like events\n * with the `AddEvent` operation and attributes using `setAttributes`.\n */\n isRecording(): boolean;\n\n /**\n * Sets exception as a span event\n * @param exception the exception the only accepted values are string or Error\n * @param [time] the time to set as Span's event time. If not provided,\n * use the current time.\n */\n recordException(exception: Exception, time?: TimeInput): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span_context.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/span_context.d.ts deleted file mode 100644 index f30933a1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span_context.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { TraceState } from './trace_state'; -/** - * A SpanContext represents the portion of a {@link Span} which must be - * serialized and propagated along side of a {@link Baggage}. - */ -export interface SpanContext { - /** - * The ID of the trace that this span belongs to. It is worldwide unique - * with practically sufficient probability by being made as 16 randomly - * generated bytes, encoded as a 32 lowercase hex characters corresponding to - * 128 bits. - */ - traceId: string; - /** - * The ID of the Span. It is globally unique with practically sufficient - * probability by being made as 8 randomly generated bytes, encoded as a 16 - * lowercase hex characters corresponding to 64 bits. - */ - spanId: string; - /** - * Only true if the SpanContext was propagated from a remote parent. - */ - isRemote?: boolean; - /** - * Trace flags to propagate. - * - * It is represented as 1 byte (bitmap). Bit to represent whether trace is - * sampled or not. When set, the least significant bit documents that the - * caller may have recorded trace data. A caller who does not record trace - * data out-of-band leaves this flag unset. - * - * see {@link TraceFlags} for valid flag values. - */ - traceFlags: number; - /** - * Tracing-system-specific info to propagate. - * - * The tracestate field value is a `list` as defined below. The `list` is a - * series of `list-members` separated by commas `,`, and a list-member is a - * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs - * surrounding `list-members` are ignored. There can be a maximum of 32 - * `list-members` in a `list`. - * More Info: https://www.w3.org/TR/trace-context/#tracestate-field - * - * Examples: - * Single tracing system (generic format): - * tracestate: rojo=00f067aa0ba902b7 - * Multiple tracing systems (with different formatting): - * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE - */ - traceState?: TraceState; -} -//# sourceMappingURL=span_context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span_context.js b/node_modules/@opentelemetry/api/build/esm/trace/span_context.js deleted file mode 100644 index 1bb88b0d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span_context.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=span_context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span_context.js.map b/node_modules/@opentelemetry/api/build/esm/trace/span_context.js.map deleted file mode 100644 index dbf0bfe5..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span_context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span_context.js","sourceRoot":"","sources":["../../../src/trace/span_context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from './trace_state';\n\n/**\n * A SpanContext represents the portion of a {@link Span} which must be\n * serialized and propagated along side of a {@link Baggage}.\n */\nexport interface SpanContext {\n /**\n * The ID of the trace that this span belongs to. It is worldwide unique\n * with practically sufficient probability by being made as 16 randomly\n * generated bytes, encoded as a 32 lowercase hex characters corresponding to\n * 128 bits.\n */\n traceId: string;\n /**\n * The ID of the Span. It is globally unique with practically sufficient\n * probability by being made as 8 randomly generated bytes, encoded as a 16\n * lowercase hex characters corresponding to 64 bits.\n */\n spanId: string;\n /**\n * Only true if the SpanContext was propagated from a remote parent.\n */\n isRemote?: boolean;\n /**\n * Trace flags to propagate.\n *\n * It is represented as 1 byte (bitmap). Bit to represent whether trace is\n * sampled or not. When set, the least significant bit documents that the\n * caller may have recorded trace data. A caller who does not record trace\n * data out-of-band leaves this flag unset.\n *\n * see {@link TraceFlags} for valid flag values.\n */\n traceFlags: number;\n /**\n * Tracing-system-specific info to propagate.\n *\n * The tracestate field value is a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n * More Info: https://www.w3.org/TR/trace-context/#tracestate-field\n *\n * Examples:\n * Single tracing system (generic format):\n * tracestate: rojo=00f067aa0ba902b7\n * Multiple tracing systems (with different formatting):\n * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE\n */\n traceState?: TraceState;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span_kind.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/span_kind.d.ts deleted file mode 100644 index a89846f6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span_kind.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -export declare enum SpanKind { - /** Default value. Indicates that the span is used internally. */ - INTERNAL = 0, - /** - * Indicates that the span covers server-side handling of an RPC or other - * remote request. - */ - SERVER = 1, - /** - * Indicates that the span covers the client-side wrapper around an RPC or - * other remote request. - */ - CLIENT = 2, - /** - * Indicates that the span describes producer sending a message to a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - PRODUCER = 3, - /** - * Indicates that the span describes consumer receiving a message from a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - CONSUMER = 4 -} -//# sourceMappingURL=span_kind.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js b/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js deleted file mode 100644 index 1119df92..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export var SpanKind; -(function (SpanKind) { - /** Default value. Indicates that the span is used internally. */ - SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL"; - /** - * Indicates that the span covers server-side handling of an RPC or other - * remote request. - */ - SpanKind[SpanKind["SERVER"] = 1] = "SERVER"; - /** - * Indicates that the span covers the client-side wrapper around an RPC or - * other remote request. - */ - SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT"; - /** - * Indicates that the span describes producer sending a message to a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER"; - /** - * Indicates that the span describes consumer receiving a message from a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER"; -})(SpanKind || (SpanKind = {})); -//# sourceMappingURL=span_kind.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js.map b/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js.map deleted file mode 100644 index deb6be73..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span_kind.js","sourceRoot":"","sources":["../../../src/trace/span_kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAN,IAAY,QA6BX;AA7BD,WAAY,QAAQ;IAClB,iEAAiE;IACjE,+CAAY,CAAA;IAEZ;;;OAGG;IACH,2CAAU,CAAA;IAEV;;;OAGG;IACH,2CAAU,CAAA;IAEV;;;;OAIG;IACH,+CAAY,CAAA;IAEZ;;;;OAIG;IACH,+CAAY,CAAA;AACd,CAAC,EA7BW,QAAQ,KAAR,QAAQ,QA6BnB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum SpanKind {\n /** Default value. Indicates that the span is used internally. */\n INTERNAL = 0,\n\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SERVER = 1,\n\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n CLIENT = 2,\n\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n PRODUCER = 3,\n\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n CONSUMER = 4,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.d.ts deleted file mode 100644 index f1911114..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Span } from './span'; -import { SpanContext } from './span_context'; -export declare function isValidTraceId(traceId: string): boolean; -export declare function isValidSpanId(spanId: string): boolean; -/** - * Returns true if this {@link SpanContext} is valid. - * @return true if this {@link SpanContext} is valid. - */ -export declare function isSpanContextValid(spanContext: SpanContext): boolean; -/** - * Wrap the given {@link SpanContext} in a new non-recording {@link Span} - * - * @param spanContext span context to be wrapped - * @returns a new non-recording {@link Span} with the provided context - */ -export declare function wrapSpanContext(spanContext: SpanContext): Span; -//# sourceMappingURL=spancontext-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js b/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js deleted file mode 100644 index 88545bb5..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants'; -import { NonRecordingSpan } from './NonRecordingSpan'; -var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; -var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; -export function isValidTraceId(traceId) { - return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID; -} -export function isValidSpanId(spanId) { - return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID; -} -/** - * Returns true if this {@link SpanContext} is valid. - * @return true if this {@link SpanContext} is valid. - */ -export function isSpanContextValid(spanContext) { - return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)); -} -/** - * Wrap the given {@link SpanContext} in a new non-recording {@link Span} - * - * @param spanContext span context to be wrapped - * @returns a new non-recording {@link Span} with the provided context - */ -export function wrapSpanContext(spanContext) { - return new NonRecordingSpan(spanContext); -} -//# sourceMappingURL=spancontext-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map b/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map deleted file mode 100644 index a4dc6c2c..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"spancontext-utils.js","sourceRoot":"","sources":["../../../src/trace/spancontext-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,IAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,IAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,eAAe,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,cAAc,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAwB;IACzD,OAAO,CACL,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CACzE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\n\nconst VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nconst VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\n\nexport function isValidTraceId(traceId: string): boolean {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\n\nexport function isValidSpanId(spanId: string): boolean {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext: SpanContext): boolean {\n return (\n isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)\n );\n}\n\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext: SpanContext): Span {\n return new NonRecordingSpan(spanContext);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/status.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/status.d.ts deleted file mode 100644 index ab19a68f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/status.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface SpanStatus { - /** The status code of this message. */ - code: SpanStatusCode; - /** A developer-facing error message. */ - message?: string; -} -/** - * An enumeration of status codes. - */ -export declare enum SpanStatusCode { - /** - * The default status. - */ - UNSET = 0, - /** - * The operation has been validated by an Application developer or - * Operator to have completed successfully. - */ - OK = 1, - /** - * The operation contains an error. - */ - ERROR = 2 -} -//# sourceMappingURL=status.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/status.js b/node_modules/@opentelemetry/api/build/esm/trace/status.js deleted file mode 100644 index 5ee55e42..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/status.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * An enumeration of status codes. - */ -export var SpanStatusCode; -(function (SpanStatusCode) { - /** - * The default status. - */ - SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET"; - /** - * The operation has been validated by an Application developer or - * Operator to have completed successfully. - */ - SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK"; - /** - * The operation contains an error. - */ - SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR"; -})(SpanStatusCode || (SpanStatusCode = {})); -//# sourceMappingURL=status.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/status.js.map b/node_modules/@opentelemetry/api/build/esm/trace/status.js.map deleted file mode 100644 index af7e7d7f..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/status.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/trace/status.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,CAAN,IAAY,cAcX;AAdD,WAAY,cAAc;IACxB;;OAEG;IACH,qDAAS,CAAA;IACT;;;OAGG;IACH,+CAAM,CAAA;IACN;;OAEG;IACH,qDAAS,CAAA;AACX,CAAC,EAdW,cAAc,KAAd,cAAc,QAczB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * An enumeration of status codes.\n */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.d.ts deleted file mode 100644 index 11288ba9..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare enum TraceFlags { - /** Represents no flag set. */ - NONE = 0, - /** Bit to represent whether trace is sampled in trace flags. */ - SAMPLED = 1 -} -//# sourceMappingURL=trace_flags.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js b/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js deleted file mode 100644 index 8a7b0007..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export var TraceFlags; -(function (TraceFlags) { - /** Represents no flag set. */ - TraceFlags[TraceFlags["NONE"] = 0] = "NONE"; - /** Bit to represent whether trace is sampled in trace flags. */ - TraceFlags[TraceFlags["SAMPLED"] = 1] = "SAMPLED"; -})(TraceFlags || (TraceFlags = {})); -//# sourceMappingURL=trace_flags.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map b/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map deleted file mode 100644 index 2ea8680d..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_flags.js","sourceRoot":"","sources":["../../../src/trace/trace_flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,8BAA8B;IAC9B,2CAAU,CAAA;IACV,gEAAgE;IAChE,iDAAkB,CAAA;AACpB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum TraceFlags {\n /** Represents no flag set. */\n NONE = 0x0,\n /** Bit to represent whether trace is sampled in trace flags. */\n SAMPLED = 0x1 << 0,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/trace_state.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/trace_state.d.ts deleted file mode 100644 index f275b8be..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/trace_state.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -export interface TraceState { - /** - * Create a new TraceState which inherits from this TraceState and has the - * given key set. - * The new entry will always be added in the front of the list of states. - * - * @param key key of the TraceState entry. - * @param value value of the TraceState entry. - */ - set(key: string, value: string): TraceState; - /** - * Return a new TraceState which inherits from this TraceState but does not - * contain the given key. - * - * @param key the key for the TraceState entry to be removed. - */ - unset(key: string): TraceState; - /** - * Returns the value to which the specified key is mapped, or `undefined` if - * this map contains no mapping for the key. - * - * @param key with which the specified value is to be associated. - * @returns the value to which the specified key is mapped, or `undefined` if - * this map contains no mapping for the key. - */ - get(key: string): string | undefined; - /** - * Serializes the TraceState to a `list` as defined below. The `list` is a - * series of `list-members` separated by commas `,`, and a list-member is a - * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs - * surrounding `list-members` are ignored. There can be a maximum of 32 - * `list-members` in a `list`. - * - * @returns the serialized string. - */ - serialize(): string; -} -//# sourceMappingURL=trace_state.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js b/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js deleted file mode 100644 index a6c368f8..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=trace_state.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js.map b/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js.map deleted file mode 100644 index 64a3d7a2..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/trace_state.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_state.js","sourceRoot":"","sources":["../../../src/trace/trace_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface TraceState {\n /**\n * Create a new TraceState which inherits from this TraceState and has the\n * given key set.\n * The new entry will always be added in the front of the list of states.\n *\n * @param key key of the TraceState entry.\n * @param value value of the TraceState entry.\n */\n set(key: string, value: string): TraceState;\n\n /**\n * Return a new TraceState which inherits from this TraceState but does not\n * contain the given key.\n *\n * @param key the key for the TraceState entry to be removed.\n */\n unset(key: string): TraceState;\n\n /**\n * Returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n *\n * @param key with which the specified value is to be associated.\n * @returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n */\n get(key: string): string | undefined;\n\n // TODO: Consider to add support for merging an object as well by also\n // accepting a single internalTraceState argument similar to the constructor.\n\n /**\n * Serializes the TraceState to a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n *\n * @returns the serialized string.\n */\n serialize(): string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/tracer.d.ts deleted file mode 100644 index 25090899..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer.d.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -/** - * Tracer provides an interface for creating {@link Span}s. - */ -export interface Tracer { - /** - * Starts a new {@link Span}. Start the span without setting it on context. - * - * This method do NOT modify the current Context. - * - * @param name The name of the span - * @param [options] SpanOptions used for span creation - * @param [context] Context to use to extract parent - * @returns Span The newly created span - * @example - * const span = tracer.startSpan('op'); - * span.setAttribute('key', 'value'); - * span.end(); - */ - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - /** - * Starts a new {@link Span} and calls the given function passing it the - * created span as first argument. - * Additionally the new span gets set in context and this context is activated - * for the duration of the function call. - * - * @param name The name of the span - * @param [options] SpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns return value of fn - * @example - * const something = tracer.startActiveSpan('op', span => { - * try { - * do some work - * span.setStatus({code: SpanStatusCode.OK}); - * return something; - * } catch (err) { - * span.setStatus({ - * code: SpanStatusCode.ERROR, - * message: err.message, - * }); - * throw err; - * } finally { - * span.end(); - * } - * }); - * - * @example - * const span = tracer.startActiveSpan('op', span => { - * try { - * do some work - * return span; - * } catch (err) { - * span.setStatus({ - * code: SpanStatusCode.ERROR, - * message: err.message, - * }); - * throw err; - * } - * }); - * do some more work - * span.end(); - */ - startActiveSpan unknown>(name: string, fn: F): ReturnType; - startActiveSpan unknown>(name: string, options: SpanOptions, fn: F): ReturnType; - startActiveSpan unknown>(name: string, options: SpanOptions, context: Context, fn: F): ReturnType; -} -//# sourceMappingURL=tracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer.js b/node_modules/@opentelemetry/api/build/esm/trace/tracer.js deleted file mode 100644 index ad066dc3..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=tracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer.js.map b/node_modules/@opentelemetry/api/build/esm/trace/tracer.js.map deleted file mode 100644 index 77f6ae93..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/trace/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\n\n/**\n * Tracer provides an interface for creating {@link Span}s.\n */\nexport interface Tracer {\n /**\n * Starts a new {@link Span}. Start the span without setting it on context.\n *\n * This method do NOT modify the current Context.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @returns Span The newly created span\n * @example\n * const span = tracer.startSpan('op');\n * span.setAttribute('key', 'value');\n * span.end();\n */\n startSpan(name: string, options?: SpanOptions, context?: Context): Span;\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally the new span gets set in context and this context is activated\n * for the duration of the function call.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * span.setStatus({code: SpanStatusCode.OK});\n * return something;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * } finally {\n * span.end();\n * }\n * });\n *\n * @example\n * const span = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * return span;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * }\n * });\n * do some more work\n * span.end();\n */\n startActiveSpan unknown>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan unknown>(\n name: string,\n options: SpanOptions,\n fn: F\n ): ReturnType;\n startActiveSpan unknown>(\n name: string,\n options: SpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.d.ts deleted file mode 100644 index f3bbccfc..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * An interface describes additional metadata of a tracer. - */ -export interface TracerOptions { - /** - * The schemaUrl of the tracer or instrumentation library - */ - schemaUrl?: string; -} -//# sourceMappingURL=tracer_options.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js b/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js deleted file mode 100644 index 470a3a73..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=tracer_options.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js.map b/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js.map deleted file mode 100644 index 70365afc..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer_options.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer_options.js","sourceRoot":"","sources":["../../../src/trace/tracer_options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An interface describes additional metadata of a tracer.\n */\nexport interface TracerOptions {\n /**\n * The schemaUrl of the tracer or instrumentation library\n */\n schemaUrl?: string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.d.ts b/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.d.ts deleted file mode 100644 index 9b2f7a95..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -/** - * A registry for creating named {@link Tracer}s. - */ -export interface TracerProvider { - /** - * Returns a Tracer, creating one if one with the given name and version is - * not already created. - * - * This function may return different Tracer types (e.g. - * {@link NoopTracerProvider} vs. a functional tracer). - * - * @param name The name of the tracer or instrumentation library. - * @param version The version of the tracer or instrumentation library. - * @param options The options of the tracer or instrumentation library. - * @returns Tracer A Tracer with the given name and version - */ - getTracer(name: string, version?: string, options?: TracerOptions): Tracer; -} -//# sourceMappingURL=tracer_provider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js b/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js deleted file mode 100644 index adf432a6..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=tracer_provider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js.map b/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js.map deleted file mode 100644 index bfc1cbd1..00000000 --- a/node_modules/@opentelemetry/api/build/esm/trace/tracer_provider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer_provider.js","sourceRoot":"","sources":["../../../src/trace/tracer_provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\n/**\n * A registry for creating named {@link Tracer}s.\n */\nexport interface TracerProvider {\n /**\n * Returns a Tracer, creating one if one with the given name and version is\n * not already created.\n *\n * This function may return different Tracer types (e.g.\n * {@link NoopTracerProvider} vs. a functional tracer).\n *\n * @param name The name of the tracer or instrumentation library.\n * @param version The version of the tracer or instrumentation library.\n * @param options The options of the tracer or instrumentation library.\n * @returns Tracer A Tracer with the given name and version\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/version.d.ts b/node_modules/@opentelemetry/api/build/esm/version.d.ts deleted file mode 100644 index 40f03659..00000000 --- a/node_modules/@opentelemetry/api/build/esm/version.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const VERSION = "1.9.0"; -//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/version.js b/node_modules/@opentelemetry/api/build/esm/version.js deleted file mode 100644 index b0e29e56..00000000 --- a/node_modules/@opentelemetry/api/build/esm/version.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// this is autogenerated file, see scripts/version-update.js -export var VERSION = '1.9.0'; -//# sourceMappingURL=version.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esm/version.js.map b/node_modules/@opentelemetry/api/build/esm/version.js.map deleted file mode 100644 index 36b10ebd..00000000 --- a/node_modules/@opentelemetry/api/build/esm/version.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,IAAM,OAAO,GAAG,OAAO,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.0';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/context.d.ts b/node_modules/@opentelemetry/api/build/esnext/api/context.d.ts deleted file mode 100644 index 61caee8d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/context.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Context, ContextManager } from '../context/types'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Context API - */ -export declare class ContextAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Context API */ - static getInstance(): ContextAPI; - /** - * Set the current context manager. - * - * @returns true if the context manager was successfully registered, else false - */ - setGlobalContextManager(contextManager: ContextManager): boolean; - /** - * Get the currently active context - */ - active(): Context; - /** - * Execute a function with an active context - * - * @param context context to be active during function execution - * @param fn function to execute in a context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with ReturnType>(context: Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - /** - * Bind a context to a target function or event emitter - * - * @param context context to bind to the event emitter or function. Defaults to the currently active context - * @param target function or event emitter to bind - */ - bind(context: Context, target: T): T; - private _getContextManager; - /** Disable and remove the global context manager */ - disable(): void; -} -//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/context.js b/node_modules/@opentelemetry/api/build/esnext/api/context.js deleted file mode 100644 index c672a419..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/context.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoopContextManager } from '../context/NoopContextManager'; -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { DiagAPI } from './diag'; -const API_NAME = 'context'; -const NOOP_CONTEXT_MANAGER = new NoopContextManager(); -/** - * Singleton object which represents the entry point to the OpenTelemetry Context API - */ -export class ContextAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { } - /** Get the singleton instance of the Context API */ - static getInstance() { - if (!this._instance) { - this._instance = new ContextAPI(); - } - return this._instance; - } - /** - * Set the current context manager. - * - * @returns true if the context manager was successfully registered, else false - */ - setGlobalContextManager(contextManager) { - return registerGlobal(API_NAME, contextManager, DiagAPI.instance()); - } - /** - * Get the currently active context - */ - active() { - return this._getContextManager().active(); - } - /** - * Execute a function with an active context - * - * @param context context to be active during function execution - * @param fn function to execute in a context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with(context, fn, thisArg, ...args) { - return this._getContextManager().with(context, fn, thisArg, ...args); - } - /** - * Bind a context to a target function or event emitter - * - * @param context context to bind to the event emitter or function. Defaults to the currently active context - * @param target function or event emitter to bind - */ - bind(context, target) { - return this._getContextManager().bind(context, target); - } - _getContextManager() { - return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER; - } - /** Disable and remove the global context manager */ - disable() { - this._getContextManager().disable(); - unregisterGlobal(API_NAME, DiagAPI.instance()); - } -} -//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/context.js.map b/node_modules/@opentelemetry/api/build/esnext/api/context.js.map deleted file mode 100644 index 5ad9a011..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,oBAAoB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,UAAU;IAGrB,+FAA+F;IAC/F,gBAAuB,CAAC;IAExB,oDAAoD;IAC7C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,uBAAuB,CAAC,cAA8B;QAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACI,IAAI,CACT,OAAgB,EAChB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAI,OAAgB,EAAE,MAAS;QACxC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB;QACxB,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IACrD,CAAC;IAED,oDAAoD;IAC7C,OAAO;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { Context, ContextManager } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'context';\nconst NOOP_CONTEXT_MANAGER = new NoopContextManager();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport class ContextAPI {\n private static _instance?: ContextAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Context API */\n public static getInstance(): ContextAPI {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n public setGlobalContextManager(contextManager: ContextManager): boolean {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n }\n\n /**\n * Get the currently active context\n */\n public active(): Context {\n return this._getContextManager().active();\n }\n\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return this._getContextManager().with(context, fn, thisArg, ...args);\n }\n\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n public bind(context: Context, target: T): T {\n return this._getContextManager().bind(context, target);\n }\n\n private _getContextManager(): ContextManager {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n }\n\n /** Disable and remove the global context manager */\n public disable() {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/diag.d.ts b/node_modules/@opentelemetry/api/build/esnext/api/diag.d.ts deleted file mode 100644 index 131db172..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/diag.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ComponentLoggerOptions, DiagLogFunction, DiagLogger, DiagLoggerApi } from '../diag/types'; -/** - * Singleton object which represents the entry point to the OpenTelemetry internal - * diagnostic API - */ -export declare class DiagAPI implements DiagLogger, DiagLoggerApi { - private static _instance?; - /** Get the singleton instance of the DiagAPI API */ - static instance(): DiagAPI; - /** - * Private internal constructor - * @private - */ - private constructor(); - setLogger: DiagLoggerApi['setLogger']; - /** - * - */ - createComponentLogger: (options: ComponentLoggerOptions) => DiagLogger; - verbose: DiagLogFunction; - debug: DiagLogFunction; - info: DiagLogFunction; - warn: DiagLogFunction; - error: DiagLogFunction; - /** - * Unregister the global logger and return to Noop - */ - disable: () => void; -} -//# sourceMappingURL=diag.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/diag.js b/node_modules/@opentelemetry/api/build/esnext/api/diag.js deleted file mode 100644 index 8798a39f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/diag.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { DiagComponentLogger } from '../diag/ComponentLogger'; -import { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger'; -import { DiagLogLevel, } from '../diag/types'; -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -const API_NAME = 'diag'; -/** - * Singleton object which represents the entry point to the OpenTelemetry internal - * diagnostic API - */ -export class DiagAPI { - /** - * Private internal constructor - * @private - */ - constructor() { - function _logProxy(funcName) { - return function (...args) { - const logger = getGlobal('diag'); - // shortcut if logger not set - if (!logger) - return; - return logger[funcName](...args); - }; - } - // Using self local variable for minification purposes as 'this' cannot be minified - const self = this; - // DiagAPI specific functions - const setLogger = (logger, optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }) => { - var _a, _b, _c; - if (logger === self) { - // There isn't much we can do here. - // Logging to the console might break the user application. - // Try to log to self. If a logger was previously registered it will receive the log. - const err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'); - self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message); - return false; - } - if (typeof optionsOrLogLevel === 'number') { - optionsOrLogLevel = { - logLevel: optionsOrLogLevel, - }; - } - const oldLogger = getGlobal('diag'); - const newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger); - // There already is an logger registered. We'll let it know before overwriting it. - if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) { - const stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : ''; - oldLogger.warn(`Current logger will be overwritten from ${stack}`); - newLogger.warn(`Current logger will overwrite one already registered from ${stack}`); - } - return registerGlobal('diag', newLogger, self, true); - }; - self.setLogger = setLogger; - self.disable = () => { - unregisterGlobal(API_NAME, self); - }; - self.createComponentLogger = (options) => { - return new DiagComponentLogger(options); - }; - self.verbose = _logProxy('verbose'); - self.debug = _logProxy('debug'); - self.info = _logProxy('info'); - self.warn = _logProxy('warn'); - self.error = _logProxy('error'); - } - /** Get the singleton instance of the DiagAPI API */ - static instance() { - if (!this._instance) { - this._instance = new DiagAPI(); - } - return this._instance; - } -} -//# sourceMappingURL=diag.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/diag.js.map b/node_modules/@opentelemetry/api/build/esnext/api/diag.js.map deleted file mode 100644 index 448d05c5..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/diag.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"diag.js","sourceRoot":"","sources":["../../../src/api/diag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAKL,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH,MAAM,OAAO,OAAO;IAYlB;;;OAGG;IACH;QACE,SAAS,SAAS,CAAC,QAA0B;YAC3C,OAAO,UAAU,GAAG,IAAI;gBACtB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjC,6BAA6B;gBAC7B,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC;QACJ,CAAC;QAED,mFAAmF;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,6BAA6B;QAE7B,MAAM,SAAS,GAA+B,CAC5C,MAAM,EACN,iBAAiB,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,EACnD,EAAE;;YACF,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,mCAAmC;gBACnC,2DAA2D;gBAC3D,qFAAqF;gBACrF,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,oIAAoI,CACrI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC;aACd;YAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACzC,iBAAiB,GAAG;oBAClB,QAAQ,EAAE,iBAAiB;iBAC5B,CAAC;aACH;YAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,wBAAwB,CACxC,MAAA,iBAAiB,CAAC,QAAQ,mCAAI,YAAY,CAAC,IAAI,EAC/C,MAAM,CACP,CAAC;YACF,kFAAkF;YAClF,IAAI,SAAS,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE;gBAC3D,MAAM,KAAK,GAAG,MAAA,IAAI,KAAK,EAAE,CAAC,KAAK,mCAAI,iCAAiC,CAAC;gBACrE,SAAS,CAAC,IAAI,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC;gBACnE,SAAS,CAAC,IAAI,CACZ,6DAA6D,KAAK,EAAE,CACrE,CAAC;aACH;YAED,OAAO,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;YAC/D,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAjFD,oDAAoD;IAC7C,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CA+FF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n DiagLogLevel,\n} from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/metrics.d.ts b/node_modules/@opentelemetry/api/build/esnext/api/metrics.d.ts deleted file mode 100644 index 5adc1454..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/metrics.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Meter, MeterOptions } from '../metrics/Meter'; -import { MeterProvider } from '../metrics/MeterProvider'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Metrics API - */ -export declare class MetricsAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Metrics API */ - static getInstance(): MetricsAPI; - /** - * Set the current global meter provider. - * Returns true if the meter provider was successfully registered, else false. - */ - setGlobalMeterProvider(provider: MeterProvider): boolean; - /** - * Returns the global meter provider. - */ - getMeterProvider(): MeterProvider; - /** - * Returns a meter from the global meter provider. - */ - getMeter(name: string, version?: string, options?: MeterOptions): Meter; - /** Remove the global meter provider */ - disable(): void; -} -//# sourceMappingURL=metrics.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/metrics.js b/node_modules/@opentelemetry/api/build/esnext/api/metrics.js deleted file mode 100644 index 78649264..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/metrics.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider'; -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { DiagAPI } from './diag'; -const API_NAME = 'metrics'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Metrics API - */ -export class MetricsAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { } - /** Get the singleton instance of the Metrics API */ - static getInstance() { - if (!this._instance) { - this._instance = new MetricsAPI(); - } - return this._instance; - } - /** - * Set the current global meter provider. - * Returns true if the meter provider was successfully registered, else false. - */ - setGlobalMeterProvider(provider) { - return registerGlobal(API_NAME, provider, DiagAPI.instance()); - } - /** - * Returns the global meter provider. - */ - getMeterProvider() { - return getGlobal(API_NAME) || NOOP_METER_PROVIDER; - } - /** - * Returns a meter from the global meter provider. - */ - getMeter(name, version, options) { - return this.getMeterProvider().getMeter(name, version, options); - } - /** Remove the global meter provider */ - disable() { - unregisterGlobal(API_NAME, DiagAPI.instance()); - } -} -//# sourceMappingURL=metrics.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/metrics.js.map b/node_modules/@opentelemetry/api/build/esnext/api/metrics.js.map deleted file mode 100644 index 03c28727..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/metrics.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/api/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAO,UAAU;IAGrB,+FAA+F;IAC/F,gBAAuB,CAAC;IAExB,oDAAoD;IAC7C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,sBAAsB,CAAC,QAAuB;QACnD,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,QAAQ,CACb,IAAY,EACZ,OAAgB,EAChB,OAAsB;QAEtB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,uCAAuC;IAChC,OAAO;QACZ,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from '../metrics/Meter';\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'metrics';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Metrics API\n */\nexport class MetricsAPI {\n private static _instance?: MetricsAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Metrics API */\n public static getInstance(): MetricsAPI {\n if (!this._instance) {\n this._instance = new MetricsAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global meter provider.\n * Returns true if the meter provider was successfully registered, else false.\n */\n public setGlobalMeterProvider(provider: MeterProvider): boolean {\n return registerGlobal(API_NAME, provider, DiagAPI.instance());\n }\n\n /**\n * Returns the global meter provider.\n */\n public getMeterProvider(): MeterProvider {\n return getGlobal(API_NAME) || NOOP_METER_PROVIDER;\n }\n\n /**\n * Returns a meter from the global meter provider.\n */\n public getMeter(\n name: string,\n version?: string,\n options?: MeterOptions\n ): Meter {\n return this.getMeterProvider().getMeter(name, version, options);\n }\n\n /** Remove the global meter provider */\n public disable(): void {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/propagation.d.ts b/node_modules/@opentelemetry/api/build/esnext/api/propagation.d.ts deleted file mode 100644 index a22d24d3..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/propagation.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Context } from '../context/types'; -import { TextMapGetter, TextMapPropagator, TextMapSetter } from '../propagation/TextMapPropagator'; -import { getBaggage, getActiveBaggage, setBaggage, deleteBaggage } from '../baggage/context-helpers'; -import { createBaggage } from '../baggage/utils'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Propagation API - */ -export declare class PropagationAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Propagator API */ - static getInstance(): PropagationAPI; - /** - * Set the current propagator. - * - * @returns true if the propagator was successfully registered, else false - */ - setGlobalPropagator(propagator: TextMapPropagator): boolean; - /** - * Inject context into a carrier to be propagated inter-process - * - * @param context Context carrying tracing data to inject - * @param carrier carrier to inject context into - * @param setter Function used to set values on the carrier - */ - inject(context: Context, carrier: Carrier, setter?: TextMapSetter): void; - /** - * Extract context from a carrier - * - * @param context Context which the newly created context will inherit from - * @param carrier Carrier to extract context from - * @param getter Function used to extract keys from a carrier - */ - extract(context: Context, carrier: Carrier, getter?: TextMapGetter): Context; - /** - * Return a list of all fields which may be used by the propagator. - */ - fields(): string[]; - /** Remove the global propagator */ - disable(): void; - createBaggage: typeof createBaggage; - getBaggage: typeof getBaggage; - getActiveBaggage: typeof getActiveBaggage; - setBaggage: typeof setBaggage; - deleteBaggage: typeof deleteBaggage; - private _getGlobalPropagator; -} -//# sourceMappingURL=propagation.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/propagation.js b/node_modules/@opentelemetry/api/build/esnext/api/propagation.js deleted file mode 100644 index 93507eb9..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/propagation.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator'; -import { defaultTextMapGetter, defaultTextMapSetter, } from '../propagation/TextMapPropagator'; -import { getBaggage, getActiveBaggage, setBaggage, deleteBaggage, } from '../baggage/context-helpers'; -import { createBaggage } from '../baggage/utils'; -import { DiagAPI } from './diag'; -const API_NAME = 'propagation'; -const NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator(); -/** - * Singleton object which represents the entry point to the OpenTelemetry Propagation API - */ -export class PropagationAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { - this.createBaggage = createBaggage; - this.getBaggage = getBaggage; - this.getActiveBaggage = getActiveBaggage; - this.setBaggage = setBaggage; - this.deleteBaggage = deleteBaggage; - } - /** Get the singleton instance of the Propagator API */ - static getInstance() { - if (!this._instance) { - this._instance = new PropagationAPI(); - } - return this._instance; - } - /** - * Set the current propagator. - * - * @returns true if the propagator was successfully registered, else false - */ - setGlobalPropagator(propagator) { - return registerGlobal(API_NAME, propagator, DiagAPI.instance()); - } - /** - * Inject context into a carrier to be propagated inter-process - * - * @param context Context carrying tracing data to inject - * @param carrier carrier to inject context into - * @param setter Function used to set values on the carrier - */ - inject(context, carrier, setter = defaultTextMapSetter) { - return this._getGlobalPropagator().inject(context, carrier, setter); - } - /** - * Extract context from a carrier - * - * @param context Context which the newly created context will inherit from - * @param carrier Carrier to extract context from - * @param getter Function used to extract keys from a carrier - */ - extract(context, carrier, getter = defaultTextMapGetter) { - return this._getGlobalPropagator().extract(context, carrier, getter); - } - /** - * Return a list of all fields which may be used by the propagator. - */ - fields() { - return this._getGlobalPropagator().fields(); - } - /** Remove the global propagator */ - disable() { - unregisterGlobal(API_NAME, DiagAPI.instance()); - } - _getGlobalPropagator() { - return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR; - } -} -//# sourceMappingURL=propagation.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/propagation.js.map b/node_modules/@opentelemetry/api/build/esnext/api/propagation.js.map deleted file mode 100644 index a0673fea..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/propagation.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"propagation.js","sourceRoot":"","sources":["../../../src/api/propagation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAIrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,QAAQ,GAAG,aAAa,CAAC;AAC/B,MAAM,wBAAwB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAE7D;;GAEG;AACH,MAAM,OAAO,cAAc;IAGzB,+FAA+F;IAC/F;QA8DO,kBAAa,GAAG,aAAa,CAAC;QAE9B,eAAU,GAAG,UAAU,CAAC;QAExB,qBAAgB,GAAG,gBAAgB,CAAC;QAEpC,eAAU,GAAG,UAAU,CAAC;QAExB,kBAAa,GAAG,aAAa,CAAC;IAtEd,CAAC;IAExB,uDAAuD;IAChD,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,UAA6B;QACtD,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACX,OAAgB,EAChB,OAAgB,EAChB,SAAiC,oBAAoB;QAErD,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;OAMG;IACI,OAAO,CACZ,OAAgB,EAChB,OAAgB,EAChB,SAAiC,oBAAoB;QAErD,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,mCAAmC;IAC5B,OAAO;QACZ,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAYO,oBAAoB;QAC1B,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC;IACzD,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport {\n defaultTextMapGetter,\n defaultTextMapSetter,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n getBaggage,\n getActiveBaggage,\n setBaggage,\n deleteBaggage,\n} from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'propagation';\nconst NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nexport class PropagationAPI {\n private static _instance?: PropagationAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Propagator API */\n public static getInstance(): PropagationAPI {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n public setGlobalPropagator(propagator: TextMapPropagator): boolean {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n }\n\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n public inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter = defaultTextMapSetter\n ): void {\n return this._getGlobalPropagator().inject(context, carrier, setter);\n }\n\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n public extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter = defaultTextMapGetter\n ): Context {\n return this._getGlobalPropagator().extract(context, carrier, getter);\n }\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n public fields(): string[] {\n return this._getGlobalPropagator().fields();\n }\n\n /** Remove the global propagator */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n\n public createBaggage = createBaggage;\n\n public getBaggage = getBaggage;\n\n public getActiveBaggage = getActiveBaggage;\n\n public setBaggage = setBaggage;\n\n public deleteBaggage = deleteBaggage;\n\n private _getGlobalPropagator(): TextMapPropagator {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/trace.d.ts b/node_modules/@opentelemetry/api/build/esnext/api/trace.d.ts deleted file mode 100644 index df59fd2f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/trace.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { isSpanContextValid, wrapSpanContext } from '../trace/spancontext-utils'; -import { Tracer } from '../trace/tracer'; -import { TracerProvider } from '../trace/tracer_provider'; -import { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext } from '../trace/context-utils'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -export declare class TraceAPI { - private static _instance?; - private _proxyTracerProvider; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Trace API */ - static getInstance(): TraceAPI; - /** - * Set the current global tracer. - * - * @returns true if the tracer provider was successfully registered, else false - */ - setGlobalTracerProvider(provider: TracerProvider): boolean; - /** - * Returns the global tracer provider. - */ - getTracerProvider(): TracerProvider; - /** - * Returns a tracer from the global tracer provider. - */ - getTracer(name: string, version?: string): Tracer; - /** Remove the global tracer provider */ - disable(): void; - wrapSpanContext: typeof wrapSpanContext; - isSpanContextValid: typeof isSpanContextValid; - deleteSpan: typeof deleteSpan; - getSpan: typeof getSpan; - getActiveSpan: typeof getActiveSpan; - getSpanContext: typeof getSpanContext; - setSpan: typeof setSpan; - setSpanContext: typeof setSpanContext; -} -//# sourceMappingURL=trace.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/trace.js b/node_modules/@opentelemetry/api/build/esnext/api/trace.js deleted file mode 100644 index 60036200..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/trace.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils'; -import { ProxyTracerProvider } from '../trace/ProxyTracerProvider'; -import { isSpanContextValid, wrapSpanContext, } from '../trace/spancontext-utils'; -import { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext, } from '../trace/context-utils'; -import { DiagAPI } from './diag'; -const API_NAME = 'trace'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -export class TraceAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { - this._proxyTracerProvider = new ProxyTracerProvider(); - this.wrapSpanContext = wrapSpanContext; - this.isSpanContextValid = isSpanContextValid; - this.deleteSpan = deleteSpan; - this.getSpan = getSpan; - this.getActiveSpan = getActiveSpan; - this.getSpanContext = getSpanContext; - this.setSpan = setSpan; - this.setSpanContext = setSpanContext; - } - /** Get the singleton instance of the Trace API */ - static getInstance() { - if (!this._instance) { - this._instance = new TraceAPI(); - } - return this._instance; - } - /** - * Set the current global tracer. - * - * @returns true if the tracer provider was successfully registered, else false - */ - setGlobalTracerProvider(provider) { - const success = registerGlobal(API_NAME, this._proxyTracerProvider, DiagAPI.instance()); - if (success) { - this._proxyTracerProvider.setDelegate(provider); - } - return success; - } - /** - * Returns the global tracer provider. - */ - getTracerProvider() { - return getGlobal(API_NAME) || this._proxyTracerProvider; - } - /** - * Returns a tracer from the global tracer provider. - */ - getTracer(name, version) { - return this.getTracerProvider().getTracer(name, version); - } - /** Remove the global tracer provider */ - disable() { - unregisterGlobal(API_NAME, DiagAPI.instance()); - this._proxyTracerProvider = new ProxyTracerProvider(); - } -} -//# sourceMappingURL=trace.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/api/trace.js.map b/node_modules/@opentelemetry/api/build/esnext/api/trace.js.map deleted file mode 100644 index 15218779..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/api/trace.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/api/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,aAAa,EACb,OAAO,EACP,cAAc,EACd,OAAO,EACP,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB;;GAEG;AACH,MAAM,OAAO,QAAQ;IAKnB,+FAA+F;IAC/F;QAHQ,yBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAmDlD,oBAAe,GAAG,eAAe,CAAC;QAElC,uBAAkB,GAAG,kBAAkB,CAAC;QAExC,eAAU,GAAG,UAAU,CAAC;QAExB,YAAO,GAAG,OAAO,CAAC;QAElB,kBAAa,GAAG,aAAa,CAAC;QAE9B,mBAAc,GAAG,cAAc,CAAC;QAEhC,YAAO,GAAG,OAAO,CAAC;QAElB,mBAAc,GAAG,cAAc,CAAC;IA9DhB,CAAC;IAExB,kDAAkD;IAC3C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,uBAAuB,CAAC,QAAwB;QACrD,MAAM,OAAO,GAAG,cAAc,CAC5B,QAAQ,EACR,IAAI,CAAC,oBAAoB,EACzB,OAAO,CAAC,QAAQ,EAAE,CACnB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SACjD;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,IAAY,EAAE,OAAgB;QAC7C,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,wCAAwC;IACjC,OAAO;QACZ,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACxD,CAAC;CAiBF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport { Tracer } from '../trace/tracer';\nimport { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getActiveSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n public getActiveSpan = getActiveSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.d.ts b/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.d.ts deleted file mode 100644 index 23750eb6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Context } from '../context/types'; -import { Baggage } from './types'; -/** - * Retrieve the current baggage from the given context - * - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -export declare function getBaggage(context: Context): Baggage | undefined; -/** - * Retrieve the current baggage from the active/current context - * - * @returns {Baggage} Extracted baggage from the context - */ -export declare function getActiveBaggage(): Baggage | undefined; -/** - * Store a baggage in the given context - * - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -export declare function setBaggage(context: Context, baggage: Baggage): Context; -/** - * Delete the baggage stored in the given context - * - * @param {Context} Context that manage all context values - */ -export declare function deleteBaggage(context: Context): Context; -//# sourceMappingURL=context-helpers.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js b/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js deleted file mode 100644 index 9cd0fe7c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ContextAPI } from '../api/context'; -import { createContextKey } from '../context/context'; -/** - * Baggage key - */ -const BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key'); -/** - * Retrieve the current baggage from the given context - * - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -export function getBaggage(context) { - return context.getValue(BAGGAGE_KEY) || undefined; -} -/** - * Retrieve the current baggage from the active/current context - * - * @returns {Baggage} Extracted baggage from the context - */ -export function getActiveBaggage() { - return getBaggage(ContextAPI.getInstance().active()); -} -/** - * Store a baggage in the given context - * - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -export function setBaggage(context, baggage) { - return context.setValue(BAGGAGE_KEY, baggage); -} -/** - * Delete the baggage stored in the given context - * - * @param {Context} Context that manage all context values - */ -export function deleteBaggage(context) { - return context.deleteValue(BAGGAGE_KEY); -} -//# sourceMappingURL=context-helpers.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js.map b/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js.map deleted file mode 100644 index c39d666d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/context-helpers.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-helpers.js","sourceRoot":"","sources":["../../../src/baggage/context-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa,IAAI,SAAS,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,OAAgB;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Baggage } from './types';\n\n/**\n * Baggage key\n */\nconst BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key');\n\n/**\n * Retrieve the current baggage from the given context\n *\n * @param {Context} Context that manage all context values\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getBaggage(context: Context): Baggage | undefined {\n return (context.getValue(BAGGAGE_KEY) as Baggage) || undefined;\n}\n\n/**\n * Retrieve the current baggage from the active/current context\n *\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getActiveBaggage(): Baggage | undefined {\n return getBaggage(ContextAPI.getInstance().active());\n}\n\n/**\n * Store a baggage in the given context\n *\n * @param {Context} Context that manage all context values\n * @param {Baggage} baggage that will be set in the actual context\n */\nexport function setBaggage(context: Context, baggage: Baggage): Context {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n\n/**\n * Delete the baggage stored in the given context\n *\n * @param {Context} Context that manage all context values\n */\nexport function deleteBaggage(context: Context): Context {\n return context.deleteValue(BAGGAGE_KEY);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.d.ts b/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.d.ts deleted file mode 100644 index e6b45540..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Baggage, BaggageEntry } from '../types'; -export declare class BaggageImpl implements Baggage { - private _entries; - constructor(entries?: Map); - getEntry(key: string): BaggageEntry | undefined; - getAllEntries(): [string, BaggageEntry][]; - setEntry(key: string, entry: BaggageEntry): BaggageImpl; - removeEntry(key: string): BaggageImpl; - removeEntries(...keys: string[]): BaggageImpl; - clear(): BaggageImpl; -} -//# sourceMappingURL=baggage-impl.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js b/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js deleted file mode 100644 index 774d1f8d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export class BaggageImpl { - constructor(entries) { - this._entries = entries ? new Map(entries) : new Map(); - } - getEntry(key) { - const entry = this._entries.get(key); - if (!entry) { - return undefined; - } - return Object.assign({}, entry); - } - getAllEntries() { - return Array.from(this._entries.entries()).map(([k, v]) => [k, v]); - } - setEntry(key, entry) { - const newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.set(key, entry); - return newBaggage; - } - removeEntry(key) { - const newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.delete(key); - return newBaggage; - } - removeEntries(...keys) { - const newBaggage = new BaggageImpl(this._entries); - for (const key of keys) { - newBaggage._entries.delete(key); - } - return newBaggage; - } - clear() { - return new BaggageImpl(); - } -} -//# sourceMappingURL=baggage-impl.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js.map b/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js.map deleted file mode 100644 index 74c6a4c7..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/baggage-impl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"baggage-impl.js","sourceRoot":"","sources":["../../../../src/baggage/internal/baggage-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,OAAO,WAAW;IAGtB,YAAY,OAAmC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAAmB;QACvC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,GAAG,IAAc;QAC7B,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACjC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Baggage, BaggageEntry } from '../types';\n\nexport class BaggageImpl implements Baggage {\n private _entries: Map;\n\n constructor(entries?: Map) {\n this._entries = entries ? new Map(entries) : new Map();\n }\n\n getEntry(key: string): BaggageEntry | undefined {\n const entry = this._entries.get(key);\n if (!entry) {\n return undefined;\n }\n\n return Object.assign({}, entry);\n }\n\n getAllEntries(): [string, BaggageEntry][] {\n return Array.from(this._entries.entries()).map(([k, v]) => [k, v]);\n }\n\n setEntry(key: string, entry: BaggageEntry): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.set(key, entry);\n return newBaggage;\n }\n\n removeEntry(key: string): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.delete(key);\n return newBaggage;\n }\n\n removeEntries(...keys: string[]): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n for (const key of keys) {\n newBaggage._entries.delete(key);\n }\n return newBaggage;\n }\n\n clear(): BaggageImpl {\n return new BaggageImpl();\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.d.ts b/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.d.ts deleted file mode 100644 index 9cd991c1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Symbol used to make BaggageEntryMetadata an opaque type - */ -export declare const baggageEntryMetadataSymbol: unique symbol; -//# sourceMappingURL=symbol.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js b/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js deleted file mode 100644 index 22f5b25d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Symbol used to make BaggageEntryMetadata an opaque type - */ -export const baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata'); -//# sourceMappingURL=symbol.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js.map b/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js.map deleted file mode 100644 index 0cc1abd0..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/internal/symbol.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/baggage/internal/symbol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Symbol used to make BaggageEntryMetadata an opaque type\n */\nexport const baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/types.d.ts b/node_modules/@opentelemetry/api/build/esnext/baggage/types.d.ts deleted file mode 100644 index 32fa0ec6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/types.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { baggageEntryMetadataSymbol } from './internal/symbol'; -export interface BaggageEntry { - /** `String` value of the `BaggageEntry`. */ - value: string; - /** - * Metadata is an optional string property defined by the W3C baggage specification. - * It currently has no special meaning defined by the specification. - */ - metadata?: BaggageEntryMetadata; -} -/** - * Serializable Metadata defined by the W3C baggage specification. - * It currently has no special meaning defined by the OpenTelemetry or W3C. - */ -export declare type BaggageEntryMetadata = { - toString(): string; -} & { - __TYPE__: typeof baggageEntryMetadataSymbol; -}; -/** - * Baggage represents collection of key-value pairs with optional metadata. - * Each key of Baggage is associated with exactly one value. - * Baggage may be used to annotate and enrich telemetry data. - */ -export interface Baggage { - /** - * Get an entry from Baggage if it exists - * - * @param key The key which identifies the BaggageEntry - */ - getEntry(key: string): BaggageEntry | undefined; - /** - * Get a list of all entries in the Baggage - */ - getAllEntries(): [string, BaggageEntry][]; - /** - * Returns a new baggage with the entries from the current bag and the specified entry - * - * @param key string which identifies the baggage entry - * @param entry BaggageEntry for the given key - */ - setEntry(key: string, entry: BaggageEntry): Baggage; - /** - * Returns a new baggage with the entries from the current bag except the removed entry - * - * @param key key identifying the entry to be removed - */ - removeEntry(key: string): Baggage; - /** - * Returns a new baggage with the entries from the current bag except the removed entries - * - * @param key keys identifying the entries to be removed - */ - removeEntries(...key: string[]): Baggage; - /** - * Returns a new baggage with no entries - */ - clear(): Baggage; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/types.js b/node_modules/@opentelemetry/api/build/esnext/baggage/types.js deleted file mode 100644 index 928faad0..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/types.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/types.js.map b/node_modules/@opentelemetry/api/build/esnext/baggage/types.js.map deleted file mode 100644 index ae80c197..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/baggage/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\n\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface BaggageEntry {\n /** `String` value of the `BaggageEntry`. */\n value: string;\n /**\n * Metadata is an optional string property defined by the W3C baggage specification.\n * It currently has no special meaning defined by the specification.\n */\n metadata?: BaggageEntryMetadata;\n}\n\n/**\n * Serializable Metadata defined by the W3C baggage specification.\n * It currently has no special meaning defined by the OpenTelemetry or W3C.\n */\nexport type BaggageEntryMetadata = { toString(): string } & {\n __TYPE__: typeof baggageEntryMetadataSymbol;\n};\n\n/**\n * Baggage represents collection of key-value pairs with optional metadata.\n * Each key of Baggage is associated with exactly one value.\n * Baggage may be used to annotate and enrich telemetry data.\n */\nexport interface Baggage {\n /**\n * Get an entry from Baggage if it exists\n *\n * @param key The key which identifies the BaggageEntry\n */\n getEntry(key: string): BaggageEntry | undefined;\n\n /**\n * Get a list of all entries in the Baggage\n */\n getAllEntries(): [string, BaggageEntry][];\n\n /**\n * Returns a new baggage with the entries from the current bag and the specified entry\n *\n * @param key string which identifies the baggage entry\n * @param entry BaggageEntry for the given key\n */\n setEntry(key: string, entry: BaggageEntry): Baggage;\n\n /**\n * Returns a new baggage with the entries from the current bag except the removed entry\n *\n * @param key key identifying the entry to be removed\n */\n removeEntry(key: string): Baggage;\n\n /**\n * Returns a new baggage with the entries from the current bag except the removed entries\n *\n * @param key keys identifying the entries to be removed\n */\n removeEntries(...key: string[]): Baggage;\n\n /**\n * Returns a new baggage with no entries\n */\n clear(): Baggage;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/utils.d.ts b/node_modules/@opentelemetry/api/build/esnext/baggage/utils.d.ts deleted file mode 100644 index 9955d9e2..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/utils.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Baggage, BaggageEntry, BaggageEntryMetadata } from './types'; -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -export declare function createBaggage(entries?: Record): Baggage; -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -export declare function baggageEntryMetadataFromString(str: string): BaggageEntryMetadata; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js b/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js deleted file mode 100644 index b4448833..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { DiagAPI } from '../api/diag'; -import { BaggageImpl } from './internal/baggage-impl'; -import { baggageEntryMetadataSymbol } from './internal/symbol'; -const diag = DiagAPI.instance(); -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -export function createBaggage(entries = {}) { - return new BaggageImpl(new Map(Object.entries(entries))); -} -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -export function baggageEntryMetadataFromString(str) { - if (typeof str !== 'string') { - diag.error(`Cannot create baggage metadata from unknown type: ${typeof str}`); - str = ''; - } - return { - __TYPE__: baggageEntryMetadataSymbol, - toString() { - return str; - }, - }; -} -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js.map b/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js.map deleted file mode 100644 index 0a0228d4..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/baggage/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/baggage/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAwC,EAAE;IAE1C,OAAO,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,GAAW;IAEX,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,CAAC,KAAK,CACR,qDAAqD,OAAO,GAAG,EAAE,CAClE,CAAC;QACF,GAAG,GAAG,EAAE,CAAC;KACV;IAED,OAAO;QACL,QAAQ,EAAE,0BAA0B;QACpC,QAAQ;YACN,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagAPI } from '../api/diag';\nimport { BaggageImpl } from './internal/baggage-impl';\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\nimport { Baggage, BaggageEntry, BaggageEntryMetadata } from './types';\n\nconst diag = DiagAPI.instance();\n\n/**\n * Create a new Baggage with optional entries\n *\n * @param entries An array of baggage entries the new baggage should contain\n */\nexport function createBaggage(\n entries: Record = {}\n): Baggage {\n return new BaggageImpl(new Map(Object.entries(entries)));\n}\n\n/**\n * Create a serializable BaggageEntryMetadata object from a string.\n *\n * @param str string metadata. Format is currently not defined by the spec and has no special meaning.\n *\n */\nexport function baggageEntryMetadataFromString(\n str: string\n): BaggageEntryMetadata {\n if (typeof str !== 'string') {\n diag.error(\n `Cannot create baggage metadata from unknown type: ${typeof str}`\n );\n str = '';\n }\n\n return {\n __TYPE__: baggageEntryMetadataSymbol,\n toString() {\n return str;\n },\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Attributes.d.ts b/node_modules/@opentelemetry/api/build/esnext/common/Attributes.d.ts deleted file mode 100644 index 19994fb2..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Attributes.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Attributes is a map from string to attribute values. - * - * Note: only the own enumerable keys are counted as valid attribute keys. - */ -export interface Attributes { - [attributeKey: string]: AttributeValue | undefined; -} -/** - * Attribute values may be any non-nullish primitive value except an object. - * - * null or undefined attribute values are invalid and will result in undefined behavior. - */ -export declare type AttributeValue = string | number | boolean | Array | Array | Array; -//# sourceMappingURL=Attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js b/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js deleted file mode 100644 index dbb1e497..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Attributes.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js.map b/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js.map deleted file mode 100644 index 2649c949..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Attributes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Attributes.js","sourceRoot":"","sources":["../../../src/common/Attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Attributes is a map from string to attribute values.\n *\n * Note: only the own enumerable keys are counted as valid attribute keys.\n */\nexport interface Attributes {\n [attributeKey: string]: AttributeValue | undefined;\n}\n\n/**\n * Attribute values may be any non-nullish primitive value except an object.\n *\n * null or undefined attribute values are invalid and will result in undefined behavior.\n */\nexport type AttributeValue =\n | string\n | number\n | boolean\n | Array\n | Array\n | Array;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Exception.d.ts b/node_modules/@opentelemetry/api/build/esnext/common/Exception.d.ts deleted file mode 100644 index e175a7fd..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Exception.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -interface ExceptionWithCode { - code: string | number; - name?: string; - message?: string; - stack?: string; -} -interface ExceptionWithMessage { - code?: string | number; - message: string; - name?: string; - stack?: string; -} -interface ExceptionWithName { - code?: string | number; - message?: string; - name: string; - stack?: string; -} -/** - * Defines Exception. - * - * string or an object with one of (message or name or code) and optional stack - */ -export declare type Exception = ExceptionWithCode | ExceptionWithMessage | ExceptionWithName | string; -export {}; -//# sourceMappingURL=Exception.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Exception.js b/node_modules/@opentelemetry/api/build/esnext/common/Exception.js deleted file mode 100644 index 6522a8e6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Exception.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Exception.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Exception.js.map b/node_modules/@opentelemetry/api/build/esnext/common/Exception.js.map deleted file mode 100644 index 989dd3d1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Exception.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../src/common/Exception.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ExceptionWithCode {\n code: string | number;\n name?: string;\n message?: string;\n stack?: string;\n}\n\ninterface ExceptionWithMessage {\n code?: string | number;\n message: string;\n name?: string;\n stack?: string;\n}\n\ninterface ExceptionWithName {\n code?: string | number;\n message?: string;\n name: string;\n stack?: string;\n}\n\n/**\n * Defines Exception.\n *\n * string or an object with one of (message or name or code) and optional stack\n */\nexport type Exception =\n | ExceptionWithCode\n | ExceptionWithMessage\n | ExceptionWithName\n | string;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Time.d.ts b/node_modules/@opentelemetry/api/build/esnext/common/Time.d.ts deleted file mode 100644 index cc3c502c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Time.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Defines High-Resolution Time. - * - * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970. - * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds. - * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150. - * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds: - * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210. - * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds: - * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000. - * This is represented in HrTime format as [1609504210, 150000000]. - */ -export declare type HrTime = [number, number]; -/** - * Defines TimeInput. - * - * hrtime, epoch milliseconds, performance.now() or Date - */ -export declare type TimeInput = HrTime | number | Date; -//# sourceMappingURL=Time.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Time.js b/node_modules/@opentelemetry/api/build/esnext/common/Time.js deleted file mode 100644 index 2abdf582..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Time.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=Time.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/common/Time.js.map b/node_modules/@opentelemetry/api/build/esnext/common/Time.js.map deleted file mode 100644 index ae124f03..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/common/Time.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../src/common/Time.ts"],"names":[],"mappings":"","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Defines High-Resolution Time.\n *\n * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970.\n * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds.\n * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150.\n * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds:\n * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210.\n * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds:\n * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000.\n * This is represented in HrTime format as [1609504210, 150000000].\n */\nexport type HrTime = [number, number];\n\n/**\n * Defines TimeInput.\n *\n * hrtime, epoch milliseconds, performance.now() or Date\n */\nexport type TimeInput = HrTime | number | Date;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context-api.d.ts b/node_modules/@opentelemetry/api/build/esnext/context-api.d.ts deleted file mode 100644 index 650f4eec..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ContextAPI } from './api/context'; -/** Entrypoint for context API */ -export declare const context: ContextAPI; -//# sourceMappingURL=context-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context-api.js b/node_modules/@opentelemetry/api/build/esnext/context-api.js deleted file mode 100644 index 58270433..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { ContextAPI } from './api/context'; -/** Entrypoint for context API */ -export const context = ContextAPI.getInstance(); -//# sourceMappingURL=context-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context-api.js.map b/node_modules/@opentelemetry/api/build/esnext/context-api.js.map deleted file mode 100644 index fc655d30..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-api.js","sourceRoot":"","sources":["../../src/context-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ContextAPI } from './api/context';\n/** Entrypoint for context API */\nexport const context = ContextAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.d.ts b/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.d.ts deleted file mode 100644 index 48a16597..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as types from './types'; -export declare class NoopContextManager implements types.ContextManager { - active(): types.Context; - with ReturnType>(_context: types.Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - bind(_context: types.Context, target: T): T; - enable(): this; - disable(): this; -} -//# sourceMappingURL=NoopContextManager.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js b/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js deleted file mode 100644 index 14824a6b..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ROOT_CONTEXT } from './context'; -export class NoopContextManager { - active() { - return ROOT_CONTEXT; - } - with(_context, fn, thisArg, ...args) { - return fn.call(thisArg, ...args); - } - bind(_context, target) { - return target; - } - enable() { - return this; - } - disable() { - return this; - } -} -//# sourceMappingURL=NoopContextManager.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js.map b/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js.map deleted file mode 100644 index 8ee9f8f6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/NoopContextManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopContextManager.js","sourceRoot":"","sources":["../../../src/context/NoopContextManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,OAAO,kBAAkB;IAC7B,MAAM;QACJ,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,CACF,QAAuB,EACvB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAI,QAAuB,EAAE,MAAS;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ROOT_CONTEXT } from './context';\nimport * as types from './types';\n\nexport class NoopContextManager implements types.ContextManager {\n active(): types.Context {\n return ROOT_CONTEXT;\n }\n\n with ReturnType>(\n _context: types.Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return fn.call(thisArg, ...args);\n }\n\n bind(_context: types.Context, target: T): T {\n return target;\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n return this;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/context.d.ts b/node_modules/@opentelemetry/api/build/esnext/context/context.d.ts deleted file mode 100644 index 8be02594..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/context.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Context } from './types'; -/** Get a key to uniquely identify a context value */ -export declare function createContextKey(description: string): symbol; -/** The root context is used as the default parent context when there is no active context */ -export declare const ROOT_CONTEXT: Context; -//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/context.js b/node_modules/@opentelemetry/api/build/esnext/context/context.js deleted file mode 100644 index a95ecf03..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/context.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** Get a key to uniquely identify a context value */ -export function createContextKey(description) { - // The specification states that for the same input, multiple calls should - // return different keys. Due to the nature of the JS dependency management - // system, this creates problems where multiple versions of some package - // could hold different keys for the same property. - // - // Therefore, we use Symbol.for which returns the same key for the same input. - return Symbol.for(description); -} -class BaseContext { - /** - * Construct a new context which inherits values from an optional parent context. - * - * @param parentContext a context from which to inherit values - */ - constructor(parentContext) { - // for minification - const self = this; - self._currentContext = parentContext ? new Map(parentContext) : new Map(); - self.getValue = (key) => self._currentContext.get(key); - self.setValue = (key, value) => { - const context = new BaseContext(self._currentContext); - context._currentContext.set(key, value); - return context; - }; - self.deleteValue = (key) => { - const context = new BaseContext(self._currentContext); - context._currentContext.delete(key); - return context; - }; - } -} -/** The root context is used as the default parent context when there is no active context */ -export const ROOT_CONTEXT = new BaseContext(); -//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/context.js.map b/node_modules/@opentelemetry/api/build/esnext/context/context.js.map deleted file mode 100644 index a35b9a7a..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,qDAAqD;AACrD,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,mDAAmD;IACnD,EAAE;IACF,8EAA8E;IAC9E,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,WAAW;IAGf;;;;OAIG;IACH,YAAY,aAAoC;QAC9C,mBAAmB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAE1E,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/D,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAc,EAAW,EAAE;YACvD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;CAyBF;AAED,6FAA6F;AAC7F,MAAM,CAAC,MAAM,YAAY,GAAY,IAAI,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from './types';\n\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description: string) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\n\nclass BaseContext implements Context {\n private _currentContext!: Map;\n\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n constructor(parentContext?: Map) {\n // for minification\n const self = this;\n\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n\n self.getValue = (key: symbol) => self._currentContext.get(key);\n\n self.setValue = (key: symbol, value: unknown): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n\n self.deleteValue = (key: symbol): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n public getValue!: (key: symbol) => unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n public setValue!: (key: symbol, value: unknown) => Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n public deleteValue!: (key: symbol) => Context;\n}\n\n/** The root context is used as the default parent context when there is no active context */\nexport const ROOT_CONTEXT: Context = new BaseContext();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/types.d.ts b/node_modules/@opentelemetry/api/build/esnext/context/types.d.ts deleted file mode 100644 index 7e866320..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/types.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -export interface Context { - /** - * Get a value from the context. - * - * @param key key which identifies a context value - */ - getValue(key: symbol): unknown; - /** - * Create a new context which inherits from this context and has - * the given key set to the given value. - * - * @param key context key for which to set the value - * @param value value to set for the given key - */ - setValue(key: symbol, value: unknown): Context; - /** - * Return a new context which inherits from this context but does - * not contain a value for the given key. - * - * @param key context key for which to clear a value - */ - deleteValue(key: symbol): Context; -} -export interface ContextManager { - /** - * Get the current active context - */ - active(): Context; - /** - * Run the fn callback with object set as the current active context - * @param context Any object to set as the current active context - * @param fn A callback to be immediately run within a specific context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with ReturnType>(context: Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - /** - * Bind an object as the current context (or a specific one) - * @param [context] Optionally specify the context which you want to assign - * @param target Any object to which a context need to be set - */ - bind(context: Context, target: T): T; - /** - * Enable context management - */ - enable(): this; - /** - * Disable context management - */ - disable(): this; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/types.js b/node_modules/@opentelemetry/api/build/esnext/context/types.js deleted file mode 100644 index 928faad0..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/types.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/context/types.js.map b/node_modules/@opentelemetry/api/build/esnext/context/types.js.map deleted file mode 100644 index d438aa31..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/context/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/context/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Context {\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n getValue(key: symbol): unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n setValue(key: symbol, value: unknown): Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n deleteValue(key: symbol): Context;\n}\n\nexport interface ContextManager {\n /**\n * Get the current active context\n */\n active(): Context;\n\n /**\n * Run the fn callback with object set as the current active context\n * @param context Any object to set as the current active context\n * @param fn A callback to be immediately run within a specific context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType;\n\n /**\n * Bind an object as the current context (or a specific one)\n * @param [context] Optionally specify the context which you want to assign\n * @param target Any object to which a context need to be set\n */\n bind(context: Context, target: T): T;\n\n /**\n * Enable context management\n */\n enable(): this;\n\n /**\n * Disable context management\n */\n disable(): this;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag-api.d.ts b/node_modules/@opentelemetry/api/build/esnext/diag-api.d.ts deleted file mode 100644 index d82fdb18..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag-api.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DiagAPI } from './api/diag'; -/** - * Entrypoint for Diag API. - * Defines Diagnostic handler used for internal diagnostic logging operations. - * The default provides a Noop DiagLogger implementation which may be changed via the - * diag.setLogger(logger: DiagLogger) function. - */ -export declare const diag: DiagAPI; -//# sourceMappingURL=diag-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag-api.js b/node_modules/@opentelemetry/api/build/esnext/diag-api.js deleted file mode 100644 index 41d26584..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag-api.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { DiagAPI } from './api/diag'; -/** - * Entrypoint for Diag API. - * Defines Diagnostic handler used for internal diagnostic logging operations. - * The default provides a Noop DiagLogger implementation which may be changed via the - * diag.setLogger(logger: DiagLogger) function. - */ -export const diag = DiagAPI.instance(); -//# sourceMappingURL=diag-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag-api.js.map b/node_modules/@opentelemetry/api/build/esnext/diag-api.js.map deleted file mode 100644 index d0be8cbb..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"diag-api.js","sourceRoot":"","sources":["../../src/diag-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n */\nexport const diag = DiagAPI.instance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.d.ts b/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.d.ts deleted file mode 100644 index f0609503..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ComponentLoggerOptions, DiagLogger } from './types'; -/** - * Component Logger which is meant to be used as part of any component which - * will add automatically additional namespace in front of the log message. - * It will then forward all message to global diag logger - * @example - * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); - * cLogger.debug('test'); - * // @opentelemetry/instrumentation-http test - */ -export declare class DiagComponentLogger implements DiagLogger { - private _namespace; - constructor(props: ComponentLoggerOptions); - debug(...args: any[]): void; - error(...args: any[]): void; - info(...args: any[]): void; - warn(...args: any[]): void; - verbose(...args: any[]): void; -} -//# sourceMappingURL=ComponentLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js b/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js deleted file mode 100644 index 1e21dbee..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { getGlobal } from '../internal/global-utils'; -/** - * Component Logger which is meant to be used as part of any component which - * will add automatically additional namespace in front of the log message. - * It will then forward all message to global diag logger - * @example - * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); - * cLogger.debug('test'); - * // @opentelemetry/instrumentation-http test - */ -export class DiagComponentLogger { - constructor(props) { - this._namespace = props.namespace || 'DiagComponentLogger'; - } - debug(...args) { - return logProxy('debug', this._namespace, args); - } - error(...args) { - return logProxy('error', this._namespace, args); - } - info(...args) { - return logProxy('info', this._namespace, args); - } - warn(...args) { - return logProxy('warn', this._namespace, args); - } - verbose(...args) { - return logProxy('verbose', this._namespace, args); - } -} -function logProxy(funcName, namespace, args) { - const logger = getGlobal('diag'); - // shortcut if logger not set - if (!logger) { - return; - } - args.unshift(namespace); - return logger[funcName](...args); -} -//# sourceMappingURL=ComponentLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js.map b/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js.map deleted file mode 100644 index c65f5ff8..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/ComponentLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ComponentLogger.js","sourceRoot":"","sources":["../../../src/diag/ComponentLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IAG9B,YAAY,KAA6B;QACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,GAAG,IAAW;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,GAAG,IAAW;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO,CAAC,GAAG,IAAW;QAC3B,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CACF;AAED,SAAS,QAAQ,CACf,QAA0B,EAC1B,SAAiB,EACjB,IAAS;IAET,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,6BAA6B;IAC7B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAI,IAAoC,CAAC,CAAC;AACpE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport { ComponentLoggerOptions, DiagLogger, DiagLogFunction } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: any[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: any[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: any[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: any[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: any[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: any\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n args.unshift(namespace);\n return logger[funcName](...(args as Parameters));\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.d.ts b/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.d.ts deleted file mode 100644 index fa3db1e3..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DiagLogger, DiagLogFunction } from './types'; -/** - * A simple Immutable Console based diagnostic logger which will output any messages to the Console. - * If you want to limit the amount of logging to a specific level or lower use the - * {@link createLogLevelDiagLogger} - */ -export declare class DiagConsoleLogger implements DiagLogger { - constructor(); - /** Log an error scenario that was not expected and caused the requested operation to fail. */ - error: DiagLogFunction; - /** - * Log a warning scenario to inform the developer of an issues that should be investigated. - * The requested operation may or may not have succeeded or completed. - */ - warn: DiagLogFunction; - /** - * Log a general informational message, this should not affect functionality. - * This is also the default logging level so this should NOT be used for logging - * debugging level information. - */ - info: DiagLogFunction; - /** - * Log a general debug message that can be useful for identifying a failure. - * Information logged at this level may include diagnostic details that would - * help identify a failure scenario. Useful scenarios would be to log the execution - * order of async operations - */ - debug: DiagLogFunction; - /** - * Log a detailed (verbose) trace level logging that can be used to identify failures - * where debug level logging would be insufficient, this level of tracing can include - * input and output parameters and as such may include PII information passing through - * the API. As such it is recommended that this level of tracing should not be enabled - * in a production environment. - */ - verbose: DiagLogFunction; -} -//# sourceMappingURL=consoleLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js b/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js deleted file mode 100644 index d81ea30c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const consoleMap = [ - { n: 'error', c: 'error' }, - { n: 'warn', c: 'warn' }, - { n: 'info', c: 'info' }, - { n: 'debug', c: 'debug' }, - { n: 'verbose', c: 'trace' }, -]; -/** - * A simple Immutable Console based diagnostic logger which will output any messages to the Console. - * If you want to limit the amount of logging to a specific level or lower use the - * {@link createLogLevelDiagLogger} - */ -export class DiagConsoleLogger { - constructor() { - function _consoleFunc(funcName) { - return function (...args) { - if (console) { - // Some environments only expose the console when the F12 developer console is open - // eslint-disable-next-line no-console - let theFunc = console[funcName]; - if (typeof theFunc !== 'function') { - // Not all environments support all functions - // eslint-disable-next-line no-console - theFunc = console.log; - } - // One last final check - if (typeof theFunc === 'function') { - return theFunc.apply(console, args); - } - } - }; - } - for (let i = 0; i < consoleMap.length; i++) { - this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c); - } - } -} -//# sourceMappingURL=consoleLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js.map b/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js.map deleted file mode 100644 index 7498dd0e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/consoleLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"consoleLogger.js","sourceRoot":"","sources":["../../../src/diag/consoleLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,UAAU,GAAiD;IAC/D,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;IAC1B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;IACxB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;IACxB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;IAC1B,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IAC5B;QACE,SAAS,YAAY,CAAC,QAAwB;YAC5C,OAAO,UAAU,GAAG,IAAI;gBACtB,IAAI,OAAO,EAAE;oBACX,mFAAmF;oBACnF,sCAAsC;oBACtC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,6CAA6C;wBAC7C,sCAAsC;wBACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;qBACvB;oBAED,uBAAuB;oBACvB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBACrC;iBACF;YACH,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;CAkCF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger, DiagLogFunction } from './types';\n\ntype ConsoleMapKeys = 'error' | 'warn' | 'info' | 'debug' | 'trace';\nconst consoleMap: { n: keyof DiagLogger; c: ConsoleMapKeys }[] = [\n { n: 'error', c: 'error' },\n { n: 'warn', c: 'warn' },\n { n: 'info', c: 'info' },\n { n: 'debug', c: 'debug' },\n { n: 'verbose', c: 'trace' },\n];\n\n/**\n * A simple Immutable Console based diagnostic logger which will output any messages to the Console.\n * If you want to limit the amount of logging to a specific level or lower use the\n * {@link createLogLevelDiagLogger}\n */\nexport class DiagConsoleLogger implements DiagLogger {\n constructor() {\n function _consoleFunc(funcName: ConsoleMapKeys): DiagLogFunction {\n return function (...args) {\n if (console) {\n // Some environments only expose the console when the F12 developer console is open\n // eslint-disable-next-line no-console\n let theFunc = console[funcName];\n if (typeof theFunc !== 'function') {\n // Not all environments support all functions\n // eslint-disable-next-line no-console\n theFunc = console.log;\n }\n\n // One last final check\n if (typeof theFunc === 'function') {\n return theFunc.apply(console, args);\n }\n }\n };\n }\n\n for (let i = 0; i < consoleMap.length; i++) {\n this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);\n }\n }\n\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n public error!: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n public warn!: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n public info!: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario. Useful scenarios would be to log the execution\n * order of async operations\n */\n public debug!: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n public verbose!: DiagLogFunction;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.d.ts b/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.d.ts deleted file mode 100644 index 890b9f1e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DiagLogger, DiagLogLevel } from '../types'; -export declare function createLogLevelDiagLogger(maxLevel: DiagLogLevel, logger: DiagLogger): DiagLogger; -//# sourceMappingURL=logLevelLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js b/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js deleted file mode 100644 index 6abf21b1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { DiagLogLevel } from '../types'; -export function createLogLevelDiagLogger(maxLevel, logger) { - if (maxLevel < DiagLogLevel.NONE) { - maxLevel = DiagLogLevel.NONE; - } - else if (maxLevel > DiagLogLevel.ALL) { - maxLevel = DiagLogLevel.ALL; - } - // In case the logger is null or undefined - logger = logger || {}; - function _filterFunc(funcName, theLevel) { - const theFunc = logger[funcName]; - if (typeof theFunc === 'function' && maxLevel >= theLevel) { - return theFunc.bind(logger); - } - return function () { }; - } - return { - error: _filterFunc('error', DiagLogLevel.ERROR), - warn: _filterFunc('warn', DiagLogLevel.WARN), - info: _filterFunc('info', DiagLogLevel.INFO), - debug: _filterFunc('debug', DiagLogLevel.DEBUG), - verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE), - }; -} -//# sourceMappingURL=logLevelLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js.map b/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js.map deleted file mode 100644 index ac342514..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/internal/logLevelLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logLevelLogger.js","sourceRoot":"","sources":["../../../../src/diag/internal/logLevelLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA+B,YAAY,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,UAAU,wBAAwB,CACtC,QAAsB,EACtB,MAAkB;IAElB,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE;QAChC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;KAC9B;SAAM,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE;QACtC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC;KAC7B;IAED,0CAA0C;IAC1C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAEtB,SAAS,WAAW,CAClB,QAA0B,EAC1B,QAAsB;QAEtB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACzD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,cAAa,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC/C,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;QAC5C,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;QAC5C,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC/C,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;KACtD,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogFunction, DiagLogger, DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.d.ts b/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.d.ts deleted file mode 100644 index ac71ee3b..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { DiagLogger } from '../types'; -/** - * Returns a No-Op Diagnostic logger where all messages do nothing. - * @implements {@link DiagLogger} - * @returns {DiagLogger} - */ -export declare function createNoopDiagLogger(): DiagLogger; -//# sourceMappingURL=noopLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js b/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js deleted file mode 100644 index 7d5ba63d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function noopLogFunction() { } -/** - * Returns a No-Op Diagnostic logger where all messages do nothing. - * @implements {@link DiagLogger} - * @returns {DiagLogger} - */ -export function createNoopDiagLogger() { - return { - verbose: noopLogFunction, - debug: noopLogFunction, - info: noopLogFunction, - warn: noopLogFunction, - error: noopLogFunction, - }; -} -//# sourceMappingURL=noopLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js.map b/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js.map deleted file mode 100644 index bf20aeaa..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/internal/noopLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"noopLogger.js","sourceRoot":"","sources":["../../../../src/diag/internal/noopLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,SAAS,eAAe,KAAI,CAAC;AAE7B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;KACvB,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger } from '../types';\n\nfunction noopLogFunction() {}\n\n/**\n * Returns a No-Op Diagnostic logger where all messages do nothing.\n * @implements {@link DiagLogger}\n * @returns {DiagLogger}\n */\nexport function createNoopDiagLogger(): DiagLogger {\n return {\n verbose: noopLogFunction,\n debug: noopLogFunction,\n info: noopLogFunction,\n warn: noopLogFunction,\n error: noopLogFunction,\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/types.d.ts b/node_modules/@opentelemetry/api/build/esnext/diag/types.d.ts deleted file mode 100644 index e992cc59..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/types.d.ts +++ /dev/null @@ -1,100 +0,0 @@ -export declare type DiagLogFunction = (message: string, ...args: unknown[]) => void; -/** - * Defines an internal diagnostic logger interface which is used to log internal diagnostic - * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function. - * API provided implementations include :- - * - a No-Op {@link createNoopDiagLogger} - * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger} - * - a general Console {@link DiagConsoleLogger} version. - */ -export interface DiagLogger { - /** Log an error scenario that was not expected and caused the requested operation to fail. */ - error: DiagLogFunction; - /** - * Log a warning scenario to inform the developer of an issues that should be investigated. - * The requested operation may or may not have succeeded or completed. - */ - warn: DiagLogFunction; - /** - * Log a general informational message, this should not affect functionality. - * This is also the default logging level so this should NOT be used for logging - * debugging level information. - */ - info: DiagLogFunction; - /** - * Log a general debug message that can be useful for identifying a failure. - * Information logged at this level may include diagnostic details that would - * help identify a failure scenario. - * For example: Logging the order of execution of async operations. - */ - debug: DiagLogFunction; - /** - * Log a detailed (verbose) trace level logging that can be used to identify failures - * where debug level logging would be insufficient, this level of tracing can include - * input and output parameters and as such may include PII information passing through - * the API. As such it is recommended that this level of tracing should not be enabled - * in a production environment. - */ - verbose: DiagLogFunction; -} -/** - * Defines the available internal logging levels for the diagnostic logger, the numeric values - * of the levels are defined to match the original values from the initial LogLevel to avoid - * compatibility/migration issues for any implementation that assume the numeric ordering. - */ -export declare enum DiagLogLevel { - /** Diagnostic Logging level setting to disable all logging (except and forced logs) */ - NONE = 0, - /** Identifies an error scenario */ - ERROR = 30, - /** Identifies a warning scenario */ - WARN = 50, - /** General informational log message */ - INFO = 60, - /** General debug log message */ - DEBUG = 70, - /** - * Detailed trace level logging should only be used for development, should only be set - * in a development environment. - */ - VERBOSE = 80, - /** Used to set the logging level to include all logging */ - ALL = 9999 -} -/** - * Defines options for ComponentLogger - */ -export interface ComponentLoggerOptions { - namespace: string; -} -export interface DiagLoggerOptions { - /** - * The {@link DiagLogLevel} used to filter logs sent to the logger. - * - * @defaultValue DiagLogLevel.INFO - */ - logLevel?: DiagLogLevel; - /** - * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered. - */ - suppressOverrideMessage?: boolean; -} -export interface DiagLoggerApi { - /** - * Set the global DiagLogger and DiagLogLevel. - * If a global diag logger is already set, this will override it. - * - * @param logger - The {@link DiagLogger} instance to set as the default logger. - * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set. - * @returns `true` if the logger was successfully registered, else `false` - */ - setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean; - /** - * - * @param logger - The {@link DiagLogger} instance to set as the default logger. - * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}. - * @returns `true` if the logger was successfully registered, else `false` - */ - setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/types.js b/node_modules/@opentelemetry/api/build/esnext/diag/types.js deleted file mode 100644 index 306585e8..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/types.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Defines the available internal logging levels for the diagnostic logger, the numeric values - * of the levels are defined to match the original values from the initial LogLevel to avoid - * compatibility/migration issues for any implementation that assume the numeric ordering. - */ -export var DiagLogLevel; -(function (DiagLogLevel) { - /** Diagnostic Logging level setting to disable all logging (except and forced logs) */ - DiagLogLevel[DiagLogLevel["NONE"] = 0] = "NONE"; - /** Identifies an error scenario */ - DiagLogLevel[DiagLogLevel["ERROR"] = 30] = "ERROR"; - /** Identifies a warning scenario */ - DiagLogLevel[DiagLogLevel["WARN"] = 50] = "WARN"; - /** General informational log message */ - DiagLogLevel[DiagLogLevel["INFO"] = 60] = "INFO"; - /** General debug log message */ - DiagLogLevel[DiagLogLevel["DEBUG"] = 70] = "DEBUG"; - /** - * Detailed trace level logging should only be used for development, should only be set - * in a development environment. - */ - DiagLogLevel[DiagLogLevel["VERBOSE"] = 80] = "VERBOSE"; - /** Used to set the logging level to include all logging */ - DiagLogLevel[DiagLogLevel["ALL"] = 9999] = "ALL"; -})(DiagLogLevel || (DiagLogLevel = {})); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/diag/types.js.map b/node_modules/@opentelemetry/api/build/esnext/diag/types.js.map deleted file mode 100644 index 6578cce1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/diag/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diag/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+CH;;;;GAIG;AACH,MAAM,CAAN,IAAY,YAwBX;AAxBD,WAAY,YAAY;IACtB,uFAAuF;IACvF,+CAAQ,CAAA;IAER,mCAAmC;IACnC,kDAAU,CAAA;IAEV,oCAAoC;IACpC,gDAAS,CAAA;IAET,wCAAwC;IACxC,gDAAS,CAAA;IAET,gCAAgC;IAChC,kDAAU,CAAA;IAEV;;;OAGG;IACH,sDAAY,CAAA;IAEZ,2DAA2D;IAC3D,gDAAU,CAAA;AACZ,CAAC,EAxBW,YAAY,KAAZ,YAAY,QAwBvB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/index.d.ts b/node_modules/@opentelemetry/api/build/esnext/experimental/index.d.ts deleted file mode 100644 index bec39657..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { wrapTracer, SugaredTracer } from './trace/SugaredTracer'; -export { SugaredSpanOptions } from './trace/SugaredOptions'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/index.js b/node_modules/@opentelemetry/api/build/esnext/experimental/index.js deleted file mode 100644 index 8400e49f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export { wrapTracer, SugaredTracer } from './trace/SugaredTracer'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/index.js.map b/node_modules/@opentelemetry/api/build/esnext/experimental/index.js.map deleted file mode 100644 index d1699d94..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/experimental/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { wrapTracer, SugaredTracer } from './trace/SugaredTracer';\nexport { SugaredSpanOptions } from './trace/SugaredOptions';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.d.ts b/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.d.ts deleted file mode 100644 index 89040aff..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Span, SpanOptions } from '../../'; -/** - * Options needed for span creation - */ -export interface SugaredSpanOptions extends SpanOptions { - /** - * function to overwrite default exception behavior to record the exception. No exceptions should be thrown in the function. - * @param e Error which triggered this exception - * @param span current span from context - */ - onException?: (e: Error, span: Span) => void; -} -//# sourceMappingURL=SugaredOptions.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js b/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js deleted file mode 100644 index 0c6a2bd4..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=SugaredOptions.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js.map b/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js.map deleted file mode 100644 index 2a18a56b..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SugaredOptions.js","sourceRoot":"","sources":["../../../../src/experimental/trace/SugaredOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Span, SpanOptions } from '../../';\n\n/**\n * Options needed for span creation\n */\nexport interface SugaredSpanOptions extends SpanOptions {\n /**\n * function to overwrite default exception behavior to record the exception. No exceptions should be thrown in the function.\n * @param e Error which triggered this exception\n * @param span current span from context\n */\n onException?: (e: Error, span: Span) => void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.d.ts b/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.d.ts deleted file mode 100644 index 1ba7da92..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { SugaredSpanOptions } from './SugaredOptions'; -import { Context, Span, Tracer } from '../../'; -/** - * return a new SugaredTracer created from the supplied one - * @param tracer - */ -export declare function wrapTracer(tracer: Tracer): SugaredTracer; -export declare class SugaredTracer implements Tracer { - private readonly _tracer; - constructor(tracer: Tracer); - startActiveSpan: Tracer['startActiveSpan']; - startSpan: Tracer['startSpan']; - /** - * Starts a new {@link Span} and calls the given function passing it the - * created span as first argument. - * Additionally, the new span gets set in context and this context is activated - * for the duration of the function call. - * The span will be closed after the function has executed. - * If an exception occurs, it is recorded, the status is set to ERROR and the exception is rethrown. - * - * @param name The name of the span - * @param [options] SugaredSpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns return value of fn - * @example - * const something = tracer.withActiveSpan('op', span => { - * // do some work - * }); - * @example - * const something = await tracer.withActiveSpan('op', span => { - * // do some async work - * }); - */ - withActiveSpan ReturnType>(name: string, fn: F): ReturnType; - withActiveSpan ReturnType>(name: string, options: SugaredSpanOptions, fn: F): ReturnType; - withActiveSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; - /** - * Starts a new {@link Span} and ends it after execution of fn without setting it on context. - * The span will be closed after the function has executed. - * If an exception occurs, it is recorded, the status is et to ERROR and rethrown. - * - * This method does NOT modify the current Context. - * - * @param name The name of the span - * @param [options] SugaredSpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns Span The newly created span - * @example - * const something = tracer.withSpan('op', span => { - * // do some work - * }); - * @example - * const something = await tracer.withSpan('op', span => { - * // do some async work - * }); - */ - withSpan ReturnType>(name: string, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; -} -//# sourceMappingURL=SugaredTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js b/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js deleted file mode 100644 index a1edc7f7..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js +++ /dev/null @@ -1,88 +0,0 @@ -import { context, SpanStatusCode } from '../../'; -const defaultOnException = (e, span) => { - span.recordException(e); - span.setStatus({ - code: SpanStatusCode.ERROR, - }); -}; -/** - * return a new SugaredTracer created from the supplied one - * @param tracer - */ -export function wrapTracer(tracer) { - return new SugaredTracer(tracer); -} -export class SugaredTracer { - constructor(tracer) { - this._tracer = tracer; - this.startSpan = tracer.startSpan.bind(this._tracer); - this.startActiveSpan = tracer.startActiveSpan.bind(this._tracer); - } - withActiveSpan(name, arg2, arg3, arg4) { - const { opts, ctx, fn } = massageParams(arg2, arg3, arg4); - return this._tracer.startActiveSpan(name, opts, ctx, (span) => handleFn(span, opts, fn)); - } - withSpan(name, arg2, arg3, arg4) { - const { opts, ctx, fn } = massageParams(arg2, arg3, arg4); - const span = this._tracer.startSpan(name, opts, ctx); - return handleFn(span, opts, fn); - } -} -/** - * Massages parameters of withSpan and withActiveSpan to allow signature overwrites - * @param arg - * @param arg2 - * @param arg3 - */ -function massageParams(arg, arg2, arg3) { - let opts; - let ctx; - let fn; - if (!arg2 && !arg3) { - fn = arg; - } - else if (!arg3) { - opts = arg; - fn = arg2; - } - else { - opts = arg; - ctx = arg2; - fn = arg3; - } - opts = opts !== null && opts !== void 0 ? opts : {}; - ctx = ctx !== null && ctx !== void 0 ? ctx : context.active(); - return { opts, ctx, fn }; -} -/** - * Executes fn, returns results and runs onException in the case of exception to allow overwriting of error handling - * @param span - * @param opts - * @param fn - */ -function handleFn(span, opts, fn) { - var _a; - const onException = (_a = opts.onException) !== null && _a !== void 0 ? _a : defaultOnException; - const errorHandler = (e) => { - onException(e, span); - span.end(); - throw e; - }; - try { - const ret = fn(span); - // if fn is an async function, attach a recordException and spanEnd callback to the promise - if (typeof (ret === null || ret === void 0 ? void 0 : ret.then) === 'function') { - return ret.then(val => { - span.end(); - return val; - }, errorHandler); - } - span.end(); - return ret; - } - catch (e) { - // add throw to signal the compiler that this will throw in the inner scope - throw errorHandler(e); - } -} -//# sourceMappingURL=SugaredTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js.map b/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js.map deleted file mode 100644 index 600ea54c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/experimental/trace/SugaredTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SugaredTracer.js","sourceRoot":"","sources":["../../../../src/experimental/trace/SugaredTracer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAiB,cAAc,EAAU,MAAM,QAAQ,CAAC;AAExE,MAAM,kBAAkB,GAAG,CAAC,CAAQ,EAAE,IAAU,EAAE,EAAE;IAClD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,SAAS,CAAC;QACb,IAAI,EAAE,cAAc,CAAC,KAAK;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,aAAa;IAGxB,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IA0CD,cAAc,CACZ,IAAY,EACZ,IAA4B,EAC5B,IAAkB,EAClB,IAAQ;QAER,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAU,EAAE,EAAE,CAClE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CACR,CAAC;IACrB,CAAC;IA4CD,QAAQ,CACN,IAAY,EACZ,IAA4B,EAC5B,IAAkB,EAClB,IAAQ;QAER,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAkB,CAAC;IACnD,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,GAA2B,EAC3B,IAAkB,EAClB,IAAQ;IAER,IAAI,IAAoC,CAAC;IACzC,IAAI,GAAwB,CAAC;IAC7B,IAAI,EAAK,CAAC;IAEV,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;QAClB,EAAE,GAAG,GAAQ,CAAC;KACf;SAAM,IAAI,CAAC,IAAI,EAAE;QAChB,IAAI,GAAG,GAAyB,CAAC;QACjC,EAAE,GAAG,IAAS,CAAC;KAChB;SAAM;QACL,IAAI,GAAG,GAAyB,CAAC;QACjC,GAAG,GAAG,IAAe,CAAC;QACtB,EAAE,GAAG,IAAS,CAAC;KAChB;IACD,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;IAClB,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAE9B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,IAAU,EACV,IAAwB,EACxB,EAAK;;IAEL,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,kBAAkB,CAAC;IAC3D,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;QAChC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,IAAI;QACF,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAA2B,CAAC;QAC/C,2FAA2F;QAC3F,IAAI,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE;YACnC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,YAAY,CAAkB,CAAC;SACnC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,GAAoB,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,2EAA2E;QAC3E,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;KACvB;AACH,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SugaredSpanOptions } from './SugaredOptions';\nimport { context, Context, Span, SpanStatusCode, Tracer } from '../../';\n\nconst defaultOnException = (e: Error, span: Span) => {\n span.recordException(e);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n });\n};\n\n/**\n * return a new SugaredTracer created from the supplied one\n * @param tracer\n */\nexport function wrapTracer(tracer: Tracer): SugaredTracer {\n return new SugaredTracer(tracer);\n}\n\nexport class SugaredTracer implements Tracer {\n private readonly _tracer: Tracer;\n\n constructor(tracer: Tracer) {\n this._tracer = tracer;\n this.startSpan = tracer.startSpan.bind(this._tracer);\n this.startActiveSpan = tracer.startActiveSpan.bind(this._tracer);\n }\n\n startActiveSpan: Tracer['startActiveSpan'];\n startSpan: Tracer['startSpan'];\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally, the new span gets set in context and this context is activated\n * for the duration of the function call.\n * The span will be closed after the function has executed.\n * If an exception occurs, it is recorded, the status is set to ERROR and the exception is rethrown.\n *\n * @param name The name of the span\n * @param [options] SugaredSpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.withActiveSpan('op', span => {\n * // do some work\n * });\n * @example\n * const something = await tracer.withActiveSpan('op', span => {\n * // do some async work\n * });\n */\n withActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n arg2: F | SugaredSpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType {\n const { opts, ctx, fn } = massageParams(arg2, arg3, arg4);\n\n return this._tracer.startActiveSpan(name, opts, ctx, (span: Span) =>\n handleFn(span, opts, fn)\n ) as ReturnType;\n }\n\n /**\n * Starts a new {@link Span} and ends it after execution of fn without setting it on context.\n * The span will be closed after the function has executed.\n * If an exception occurs, it is recorded, the status is et to ERROR and rethrown.\n *\n * This method does NOT modify the current Context.\n *\n * @param name The name of the span\n * @param [options] SugaredSpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns Span The newly created span\n * @example\n * const something = tracer.withSpan('op', span => {\n * // do some work\n * });\n * @example\n * const something = await tracer.withSpan('op', span => {\n * // do some async work\n * });\n */\n withSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n arg2: SugaredSpanOptions | F,\n arg3?: Context | F,\n arg4?: F\n ): ReturnType {\n const { opts, ctx, fn } = massageParams(arg2, arg3, arg4);\n\n const span = this._tracer.startSpan(name, opts, ctx);\n return handleFn(span, opts, fn) as ReturnType;\n }\n}\n\n/**\n * Massages parameters of withSpan and withActiveSpan to allow signature overwrites\n * @param arg\n * @param arg2\n * @param arg3\n */\nfunction massageParams ReturnType>(\n arg: F | SugaredSpanOptions,\n arg2?: F | Context,\n arg3?: F\n) {\n let opts: SugaredSpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (!arg2 && !arg3) {\n fn = arg as F;\n } else if (!arg3) {\n opts = arg as SugaredSpanOptions;\n fn = arg2 as F;\n } else {\n opts = arg as SugaredSpanOptions;\n ctx = arg2 as Context;\n fn = arg3 as F;\n }\n opts = opts ?? {};\n ctx = ctx ?? context.active();\n\n return { opts, ctx, fn };\n}\n\n/**\n * Executes fn, returns results and runs onException in the case of exception to allow overwriting of error handling\n * @param span\n * @param opts\n * @param fn\n */\nfunction handleFn ReturnType>(\n span: Span,\n opts: SugaredSpanOptions,\n fn: F\n): ReturnType {\n const onException = opts.onException ?? defaultOnException;\n const errorHandler = (e: Error) => {\n onException(e, span);\n span.end();\n throw e;\n };\n\n try {\n const ret = fn(span) as Promise>;\n // if fn is an async function, attach a recordException and spanEnd callback to the promise\n if (typeof ret?.then === 'function') {\n return ret.then(val => {\n span.end();\n return val;\n }, errorHandler) as ReturnType;\n }\n span.end();\n return ret as ReturnType;\n } catch (e) {\n // add throw to signal the compiler that this will throw in the inner scope\n throw errorHandler(e);\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/index.d.ts b/node_modules/@opentelemetry/api/build/esnext/index.d.ts deleted file mode 100644 index eea88f22..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/index.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -export { BaggageEntry, BaggageEntryMetadata, Baggage } from './baggage/types'; -export { baggageEntryMetadataFromString } from './baggage/utils'; -export { Exception } from './common/Exception'; -export { HrTime, TimeInput } from './common/Time'; -export { Attributes, AttributeValue } from './common/Attributes'; -export { createContextKey, ROOT_CONTEXT } from './context/context'; -export { Context, ContextManager } from './context/types'; -export type { ContextAPI } from './api/context'; -export { DiagConsoleLogger } from './diag/consoleLogger'; -export { DiagLogFunction, DiagLogger, DiagLogLevel, ComponentLoggerOptions, DiagLoggerOptions, } from './diag/types'; -export type { DiagAPI } from './api/diag'; -export { createNoopMeter } from './metrics/NoopMeter'; -export { MeterOptions, Meter } from './metrics/Meter'; -export { MeterProvider } from './metrics/MeterProvider'; -export { ValueType, Counter, Gauge, Histogram, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter, BatchObservableCallback, MetricAdvice, MetricAttributes, MetricAttributeValue, ObservableCallback, } from './metrics/Metric'; -export { BatchObservableResult, ObservableResult, } from './metrics/ObservableResult'; -export type { MetricsAPI } from './api/metrics'; -export { TextMapPropagator, TextMapSetter, TextMapGetter, defaultTextMapGetter, defaultTextMapSetter, } from './propagation/TextMapPropagator'; -export type { PropagationAPI } from './api/propagation'; -export { SpanAttributes, SpanAttributeValue } from './trace/attributes'; -export { Link } from './trace/link'; -export { ProxyTracer, TracerDelegator } from './trace/ProxyTracer'; -export { ProxyTracerProvider } from './trace/ProxyTracerProvider'; -export { Sampler } from './trace/Sampler'; -export { SamplingDecision, SamplingResult } from './trace/SamplingResult'; -export { SpanContext } from './trace/span_context'; -export { SpanKind } from './trace/span_kind'; -export { Span } from './trace/span'; -export { SpanOptions } from './trace/SpanOptions'; -export { SpanStatus, SpanStatusCode } from './trace/status'; -export { TraceFlags } from './trace/trace_flags'; -export { TraceState } from './trace/trace_state'; -export { createTraceState } from './trace/internal/utils'; -export { TracerProvider } from './trace/tracer_provider'; -export { Tracer } from './trace/tracer'; -export { TracerOptions } from './trace/tracer_options'; -export { isSpanContextValid, isValidTraceId, isValidSpanId, } from './trace/spancontext-utils'; -export { INVALID_SPANID, INVALID_TRACEID, INVALID_SPAN_CONTEXT, } from './trace/invalid-span-constants'; -export type { TraceAPI } from './api/trace'; -import { context } from './context-api'; -import { diag } from './diag-api'; -import { metrics } from './metrics-api'; -import { propagation } from './propagation-api'; -import { trace } from './trace-api'; -export { context, diag, metrics, propagation, trace }; -declare const _default: { - context: import("./api/context").ContextAPI; - diag: import("./api/diag").DiagAPI; - metrics: import("./api/metrics").MetricsAPI; - propagation: import("./api/propagation").PropagationAPI; - trace: import("./api/trace").TraceAPI; -}; -export default _default; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/index.js b/node_modules/@opentelemetry/api/build/esnext/index.js deleted file mode 100644 index 123dc4d4..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/index.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export { baggageEntryMetadataFromString } from './baggage/utils'; -// Context APIs -export { createContextKey, ROOT_CONTEXT } from './context/context'; -// Diag APIs -export { DiagConsoleLogger } from './diag/consoleLogger'; -export { DiagLogLevel, } from './diag/types'; -// Metrics APIs -export { createNoopMeter } from './metrics/NoopMeter'; -export { ValueType, } from './metrics/Metric'; -// Propagation APIs -export { defaultTextMapGetter, defaultTextMapSetter, } from './propagation/TextMapPropagator'; -export { ProxyTracer } from './trace/ProxyTracer'; -export { ProxyTracerProvider } from './trace/ProxyTracerProvider'; -export { SamplingDecision } from './trace/SamplingResult'; -export { SpanKind } from './trace/span_kind'; -export { SpanStatusCode } from './trace/status'; -export { TraceFlags } from './trace/trace_flags'; -export { createTraceState } from './trace/internal/utils'; -export { isSpanContextValid, isValidTraceId, isValidSpanId, } from './trace/spancontext-utils'; -export { INVALID_SPANID, INVALID_TRACEID, INVALID_SPAN_CONTEXT, } from './trace/invalid-span-constants'; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { context } from './context-api'; -import { diag } from './diag-api'; -import { metrics } from './metrics-api'; -import { propagation } from './propagation-api'; -import { trace } from './trace-api'; -// Named export. -export { context, diag, metrics, propagation, trace }; -// Default export. -export default { - context, - diag, - metrics, - propagation, - trace, -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/index.js.map b/node_modules/@opentelemetry/api/build/esnext/index.js.map deleted file mode 100644 index d53dae45..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAKjE,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInE,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAGL,YAAY,GAGb,MAAM,cAAc,CAAC;AAGtB,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,SAAS,GAeV,MAAM,kBAAkB,CAAC;AAO1B,mBAAmB;AACnB,OAAO,EAIL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAGxC,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACtD,kBAAkB;AAClB,eAAe;IACb,OAAO;IACP,IAAI;IACJ,OAAO;IACP,WAAW;IACX,KAAK;CACN,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BaggageEntry, BaggageEntryMetadata, Baggage } from './baggage/types';\nexport { baggageEntryMetadataFromString } from './baggage/utils';\nexport { Exception } from './common/Exception';\nexport { HrTime, TimeInput } from './common/Time';\nexport { Attributes, AttributeValue } from './common/Attributes';\n\n// Context APIs\nexport { createContextKey, ROOT_CONTEXT } from './context/context';\nexport { Context, ContextManager } from './context/types';\nexport type { ContextAPI } from './api/context';\n\n// Diag APIs\nexport { DiagConsoleLogger } from './diag/consoleLogger';\nexport {\n DiagLogFunction,\n DiagLogger,\n DiagLogLevel,\n ComponentLoggerOptions,\n DiagLoggerOptions,\n} from './diag/types';\nexport type { DiagAPI } from './api/diag';\n\n// Metrics APIs\nexport { createNoopMeter } from './metrics/NoopMeter';\nexport { MeterOptions, Meter } from './metrics/Meter';\nexport { MeterProvider } from './metrics/MeterProvider';\nexport {\n ValueType,\n Counter,\n Gauge,\n Histogram,\n MetricOptions,\n Observable,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n BatchObservableCallback,\n MetricAdvice,\n MetricAttributes,\n MetricAttributeValue,\n ObservableCallback,\n} from './metrics/Metric';\nexport {\n BatchObservableResult,\n ObservableResult,\n} from './metrics/ObservableResult';\nexport type { MetricsAPI } from './api/metrics';\n\n// Propagation APIs\nexport {\n TextMapPropagator,\n TextMapSetter,\n TextMapGetter,\n defaultTextMapGetter,\n defaultTextMapSetter,\n} from './propagation/TextMapPropagator';\nexport type { PropagationAPI } from './api/propagation';\n\n// Trace APIs\nexport { SpanAttributes, SpanAttributeValue } from './trace/attributes';\nexport { Link } from './trace/link';\nexport { ProxyTracer, TracerDelegator } from './trace/ProxyTracer';\nexport { ProxyTracerProvider } from './trace/ProxyTracerProvider';\nexport { Sampler } from './trace/Sampler';\nexport { SamplingDecision, SamplingResult } from './trace/SamplingResult';\nexport { SpanContext } from './trace/span_context';\nexport { SpanKind } from './trace/span_kind';\nexport { Span } from './trace/span';\nexport { SpanOptions } from './trace/SpanOptions';\nexport { SpanStatus, SpanStatusCode } from './trace/status';\nexport { TraceFlags } from './trace/trace_flags';\nexport { TraceState } from './trace/trace_state';\nexport { createTraceState } from './trace/internal/utils';\nexport { TracerProvider } from './trace/tracer_provider';\nexport { Tracer } from './trace/tracer';\nexport { TracerOptions } from './trace/tracer_options';\nexport {\n isSpanContextValid,\n isValidTraceId,\n isValidSpanId,\n} from './trace/spancontext-utils';\nexport {\n INVALID_SPANID,\n INVALID_TRACEID,\n INVALID_SPAN_CONTEXT,\n} from './trace/invalid-span-constants';\nexport type { TraceAPI } from './api/trace';\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { context } from './context-api';\nimport { diag } from './diag-api';\nimport { metrics } from './metrics-api';\nimport { propagation } from './propagation-api';\nimport { trace } from './trace-api';\n\n// Named export.\nexport { context, diag, metrics, propagation, trace };\n// Default export.\nexport default {\n context,\n diag,\n metrics,\n propagation,\n trace,\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.d.ts b/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.d.ts deleted file mode 100644 index 320db975..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MeterProvider } from '../metrics/MeterProvider'; -import { ContextManager } from '../context/types'; -import { DiagLogger } from '../diag/types'; -import { TextMapPropagator } from '../propagation/TextMapPropagator'; -import type { TracerProvider } from '../trace/tracer_provider'; -export declare function registerGlobal(type: Type, instance: OTelGlobalAPI[Type], diag: DiagLogger, allowOverride?: boolean): boolean; -export declare function getGlobal(type: Type): OTelGlobalAPI[Type] | undefined; -export declare function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger): void; -declare type OTelGlobalAPI = { - version: string; - diag?: DiagLogger; - trace?: TracerProvider; - context?: ContextManager; - metrics?: MeterProvider; - propagation?: TextMapPropagator; -}; -export {}; -//# sourceMappingURL=global-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js b/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js deleted file mode 100644 index acdd1852..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { _globalThis } from '../platform'; -import { VERSION } from '../version'; -import { isCompatible } from './semver'; -const major = VERSION.split('.')[0]; -const GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(`opentelemetry.js.api.${major}`); -const _global = _globalThis; -export function registerGlobal(type, instance, diag, allowOverride = false) { - var _a; - const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { - version: VERSION, - }); - if (!allowOverride && api[type]) { - // already registered an API of this type - const err = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${type}`); - diag.error(err.stack || err.message); - return false; - } - if (api.version !== VERSION) { - // All registered APIs must be of the same version exactly - const err = new Error(`@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`); - diag.error(err.stack || err.message); - return false; - } - api[type] = instance; - diag.debug(`@opentelemetry/api: Registered a global for ${type} v${VERSION}.`); - return true; -} -export function getGlobal(type) { - var _a, _b; - const globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version; - if (!globalVersion || !isCompatible(globalVersion)) { - return; - } - return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type]; -} -export function unregisterGlobal(type, diag) { - diag.debug(`@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`); - const api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; - if (api) { - delete api[type]; - } -} -//# sourceMappingURL=global-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js.map b/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js.map deleted file mode 100644 index 6c95b125..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/internal/global-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"global-utils.js","sourceRoot":"","sources":["../../../src/internal/global-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAC7C,wBAAwB,KAAK,EAAE,CAChC,CAAC;AAEF,MAAM,OAAO,GAAG,WAAyB,CAAC;AAE1C,MAAM,UAAU,cAAc,CAC5B,IAAU,EACV,QAA6B,EAC7B,IAAgB,EAChB,aAAa,GAAG,KAAK;;IAErB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,GAAG,MAAA,OAAO,CAC1D,4BAA4B,CAC7B,mCAAI;QACH,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,yCAAyC;QACzC,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,gEAAgE,IAAI,EAAE,CACvE,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;QAC3B,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,gDAAgD,GAAG,CAAC,OAAO,QAAQ,IAAI,8CAA8C,OAAO,EAAE,CAC/H,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;KACd;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACrB,IAAI,CAAC,KAAK,CACR,+CAA+C,IAAI,KAAK,OAAO,GAAG,CACnE,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,IAAU;;IAEV,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,4BAA4B,CAAC,0CAAE,OAAO,CAAC;IACrE,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;QAClD,OAAO;KACR;IACD,OAAO,MAAA,OAAO,CAAC,4BAA4B,CAAC,0CAAG,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAyB,EAAE,IAAgB;IAC1E,IAAI,CAAC,KAAK,CACR,kDAAkD,IAAI,KAAK,OAAO,GAAG,CACtE,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAElD,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;KAClB;AACH,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { ContextManager } from '../context/types';\nimport { DiagLogger } from '../diag/types';\nimport { _globalThis } from '../platform';\nimport { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\nconst _global = _globalThis as OTelGlobal;\n\nexport function registerGlobal(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/internal/semver.d.ts b/node_modules/@opentelemetry/api/build/esnext/internal/semver.d.ts deleted file mode 100644 index d9f4259e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/internal/semver.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Create a function to test an API version to see if it is compatible with the provided ownVersion. - * - * The returned function has the following semantics: - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param ownVersion version which should be checked against - */ -export declare function _makeCompatibilityCheck(ownVersion: string): (globalVersion: string) => boolean; -/** - * Test an API version to see if it is compatible with this API. - * - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param version version of the API requesting an instance of the global API - */ -export declare const isCompatible: (globalVersion: string) => boolean; -//# sourceMappingURL=semver.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/internal/semver.js b/node_modules/@opentelemetry/api/build/esnext/internal/semver.js deleted file mode 100644 index 85e5980e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/internal/semver.js +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { VERSION } from '../version'; -const re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; -/** - * Create a function to test an API version to see if it is compatible with the provided ownVersion. - * - * The returned function has the following semantics: - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param ownVersion version which should be checked against - */ -export function _makeCompatibilityCheck(ownVersion) { - const acceptedVersions = new Set([ownVersion]); - const rejectedVersions = new Set(); - const myVersionMatch = ownVersion.match(re); - if (!myVersionMatch) { - // we cannot guarantee compatibility so we always return noop - return () => false; - } - const ownVersionParsed = { - major: +myVersionMatch[1], - minor: +myVersionMatch[2], - patch: +myVersionMatch[3], - prerelease: myVersionMatch[4], - }; - // if ownVersion has a prerelease tag, versions must match exactly - if (ownVersionParsed.prerelease != null) { - return function isExactmatch(globalVersion) { - return globalVersion === ownVersion; - }; - } - function _reject(v) { - rejectedVersions.add(v); - return false; - } - function _accept(v) { - acceptedVersions.add(v); - return true; - } - return function isCompatible(globalVersion) { - if (acceptedVersions.has(globalVersion)) { - return true; - } - if (rejectedVersions.has(globalVersion)) { - return false; - } - const globalVersionMatch = globalVersion.match(re); - if (!globalVersionMatch) { - // cannot parse other version - // we cannot guarantee compatibility so we always noop - return _reject(globalVersion); - } - const globalVersionParsed = { - major: +globalVersionMatch[1], - minor: +globalVersionMatch[2], - patch: +globalVersionMatch[3], - prerelease: globalVersionMatch[4], - }; - // if globalVersion has a prerelease tag, versions must match exactly - if (globalVersionParsed.prerelease != null) { - return _reject(globalVersion); - } - // major versions must match - if (ownVersionParsed.major !== globalVersionParsed.major) { - return _reject(globalVersion); - } - if (ownVersionParsed.major === 0) { - if (ownVersionParsed.minor === globalVersionParsed.minor && - ownVersionParsed.patch <= globalVersionParsed.patch) { - return _accept(globalVersion); - } - return _reject(globalVersion); - } - if (ownVersionParsed.minor <= globalVersionParsed.minor) { - return _accept(globalVersion); - } - return _reject(globalVersion); - }; -} -/** - * Test an API version to see if it is compatible with this API. - * - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param version version of the API requesting an instance of the global API - */ -export const isCompatible = _makeCompatibilityCheck(VERSION); -//# sourceMappingURL=semver.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/internal/semver.js.map b/node_modules/@opentelemetry/api/build/esnext/internal/semver.js.map deleted file mode 100644 index 45cc4a35..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/internal/semver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../../src/internal/semver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,EAAE,GAAG,+BAA+B,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB;IAElB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,cAAc,EAAE;QACnB,6DAA6D;QAC7D,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;KACpB;IAED,MAAM,gBAAgB,GAAG;QACvB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;KAC9B,CAAC;IAEF,kEAAkE;IAClE,IAAI,gBAAgB,CAAC,UAAU,IAAI,IAAI,EAAE;QACvC,OAAO,SAAS,YAAY,CAAC,aAAqB;YAChD,OAAO,aAAa,KAAK,UAAU,CAAC;QACtC,CAAC,CAAC;KACH;IAED,SAAS,OAAO,CAAC,CAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,OAAO,CAAC,CAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,YAAY,CAAC,aAAqB;QAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE;YACvB,6BAA6B;YAC7B,sDAAsD;YACtD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,MAAM,mBAAmB,GAAG;YAC1B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;SAClC,CAAC;QAEF,qEAAqE;QACrE,IAAI,mBAAmB,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1C,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,4BAA4B;QAC5B,IAAI,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,EAAE;YACxD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,gBAAgB,CAAC,KAAK,KAAK,CAAC,EAAE;YAChC,IACE,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK;gBACpD,gBAAgB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EACnD;gBACA,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;aAC/B;YAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,gBAAgB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE;YACvD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics-api.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics-api.d.ts deleted file mode 100644 index 26d539c0..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { MetricsAPI } from './api/metrics'; -/** Entrypoint for metrics API */ -export declare const metrics: MetricsAPI; -//# sourceMappingURL=metrics-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics-api.js b/node_modules/@opentelemetry/api/build/esnext/metrics-api.js deleted file mode 100644 index 624c8863..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { MetricsAPI } from './api/metrics'; -/** Entrypoint for metrics API */ -export const metrics = MetricsAPI.getInstance(); -//# sourceMappingURL=metrics-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics-api.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics-api.js.map deleted file mode 100644 index eb011b69..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"metrics-api.js","sourceRoot":"","sources":["../../src/metrics-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { MetricsAPI } from './api/metrics';\n/** Entrypoint for metrics API */\nexport const metrics = MetricsAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.d.ts deleted file mode 100644 index 5e3926b7..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.d.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { BatchObservableCallback, Counter, Gauge, Histogram, MetricAttributes, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter } from './Metric'; -/** - * An interface describes additional metadata of a meter. - */ -export interface MeterOptions { - /** - * The schemaUrl of the meter or instrumentation library - */ - schemaUrl?: string; -} -/** - * An interface to allow the recording metrics. - * - * {@link Metric}s are used for recording pre-defined aggregation (`Counter`), - * or raw values (`Histogram`) in which the aggregation and attributes - * for the exported metric are deferred. - */ -export interface Meter { - /** - * Creates and returns a new `Gauge`. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createGauge(name: string, options?: MetricOptions): Gauge; - /** - * Creates and returns a new `Histogram`. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createHistogram(name: string, options?: MetricOptions): Histogram; - /** - * Creates a new `Counter` metric. Generally, this kind of metric when the - * value is a quantity, the sum is of primary interest, and the event count - * and value distribution are not of primary interest. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createCounter(name: string, options?: MetricOptions): Counter; - /** - * Creates a new `UpDownCounter` metric. UpDownCounter is a synchronous - * instrument and very similar to Counter except that Add(increment) - * supports negative increments. It is generally useful for capturing changes - * in an amount of resources used, or any quantity that rises and falls - * during a request. - * Example uses for UpDownCounter: - *
            - *
          1. count the number of active requests.
          2. - *
          3. count memory in use by instrumenting new and delete.
          4. - *
          5. count queue size by instrumenting enqueue and dequeue.
          6. - *
          7. count semaphore up and down operations.
          8. - *
          - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createUpDownCounter(name: string, options?: MetricOptions): UpDownCounter; - /** - * Creates a new `ObservableGauge` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableGauge(name: string, options?: MetricOptions): ObservableGauge; - /** - * Creates a new `ObservableCounter` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableCounter(name: string, options?: MetricOptions): ObservableCounter; - /** - * Creates a new `ObservableUpDownCounter` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableUpDownCounter(name: string, options?: MetricOptions): ObservableUpDownCounter; - /** - * Sets up a function that will be called whenever a metric collection is - * initiated. - * - * If the function is already in the list of callbacks for this Observable, - * the function is not added a second time. - * - * Only the associated observables can be observed in the callback. - * Measurements of observables that are not associated observed in the - * callback are dropped. - * - * @param callback the batch observable callback - * @param observables the observables associated with this batch observable callback - */ - addBatchObservableCallback(callback: BatchObservableCallback, observables: Observable[]): void; - /** - * Removes a callback previously registered with {@link Meter.addBatchObservableCallback}. - * - * The callback to be removed is identified using a combination of the callback itself, - * and the set of the observables associated with it. - * - * @param callback the batch observable callback - * @param observables the observables associated with this batch observable callback - */ - removeBatchObservableCallback(callback: BatchObservableCallback, observables: Observable[]): void; -} -//# sourceMappingURL=Meter.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js b/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js deleted file mode 100644 index f1d0754d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Meter.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js.map deleted file mode 100644 index c4b0aafb..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/Meter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Meter.js","sourceRoot":"","sources":["../../../src/metrics/Meter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BatchObservableCallback,\n Counter,\n Gauge,\n Histogram,\n MetricAttributes,\n MetricOptions,\n Observable,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n} from './Metric';\n\n/**\n * An interface describes additional metadata of a meter.\n */\nexport interface MeterOptions {\n /**\n * The schemaUrl of the meter or instrumentation library\n */\n schemaUrl?: string;\n}\n\n/**\n * An interface to allow the recording metrics.\n *\n * {@link Metric}s are used for recording pre-defined aggregation (`Counter`),\n * or raw values (`Histogram`) in which the aggregation and attributes\n * for the exported metric are deferred.\n */\nexport interface Meter {\n /**\n * Creates and returns a new `Gauge`.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createGauge(\n name: string,\n options?: MetricOptions\n ): Gauge;\n\n /**\n * Creates and returns a new `Histogram`.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createHistogram(\n name: string,\n options?: MetricOptions\n ): Histogram;\n\n /**\n * Creates a new `Counter` metric. Generally, this kind of metric when the\n * value is a quantity, the sum is of primary interest, and the event count\n * and value distribution are not of primary interest.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createCounter(\n name: string,\n options?: MetricOptions\n ): Counter;\n\n /**\n * Creates a new `UpDownCounter` metric. UpDownCounter is a synchronous\n * instrument and very similar to Counter except that Add(increment)\n * supports negative increments. It is generally useful for capturing changes\n * in an amount of resources used, or any quantity that rises and falls\n * during a request.\n * Example uses for UpDownCounter:\n *
            \n *
          1. count the number of active requests.
          2. \n *
          3. count memory in use by instrumenting new and delete.
          4. \n *
          5. count queue size by instrumenting enqueue and dequeue.
          6. \n *
          7. count semaphore up and down operations.
          8. \n *
          \n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): UpDownCounter;\n\n /**\n * Creates a new `ObservableGauge` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableGauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableGauge;\n\n /**\n * Creates a new `ObservableCounter` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableCounter;\n\n /**\n * Creates a new `ObservableUpDownCounter` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableUpDownCounter;\n\n /**\n * Sets up a function that will be called whenever a metric collection is\n * initiated.\n *\n * If the function is already in the list of callbacks for this Observable,\n * the function is not added a second time.\n *\n * Only the associated observables can be observed in the callback.\n * Measurements of observables that are not associated observed in the\n * callback are dropped.\n *\n * @param callback the batch observable callback\n * @param observables the observables associated with this batch observable callback\n */\n addBatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n callback: BatchObservableCallback,\n observables: Observable[]\n ): void;\n\n /**\n * Removes a callback previously registered with {@link Meter.addBatchObservableCallback}.\n *\n * The callback to be removed is identified using a combination of the callback itself,\n * and the set of the observables associated with it.\n *\n * @param callback the batch observable callback\n * @param observables the observables associated with this batch observable callback\n */\n removeBatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n callback: BatchObservableCallback,\n observables: Observable[]\n ): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.d.ts deleted file mode 100644 index 6c08cc31..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Meter, MeterOptions } from './Meter'; -/** - * A registry for creating named {@link Meter}s. - */ -export interface MeterProvider { - /** - * Returns a Meter, creating one if one with the given name, version, and - * schemaUrl pair is not already created. - * - * @param name The name of the meter or instrumentation library. - * @param version The version of the meter or instrumentation library. - * @param options The options of the meter or instrumentation library. - * @returns Meter A Meter with the given name and version - */ - getMeter(name: string, version?: string, options?: MeterOptions): Meter; -} -//# sourceMappingURL=MeterProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js b/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js deleted file mode 100644 index 3051712f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=MeterProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js.map deleted file mode 100644 index 8f96d90e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/MeterProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MeterProvider.js","sourceRoot":"","sources":["../../../src/metrics/MeterProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from './Meter';\n\n/**\n * A registry for creating named {@link Meter}s.\n */\nexport interface MeterProvider {\n /**\n * Returns a Meter, creating one if one with the given name, version, and\n * schemaUrl pair is not already created.\n *\n * @param name The name of the meter or instrumentation library.\n * @param version The version of the meter or instrumentation library.\n * @param options The options of the meter or instrumentation library.\n * @returns Meter A Meter with the given name and version\n */\n getMeter(name: string, version?: string, options?: MeterOptions): Meter;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.d.ts deleted file mode 100644 index 607b637e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { Attributes, AttributeValue } from '../common/Attributes'; -import { Context } from '../context/types'; -import { BatchObservableResult, ObservableResult } from './ObservableResult'; -/** - * Advisory options influencing aggregation configuration parameters. - * @experimental - */ -export interface MetricAdvice { - /** - * Hint the explicit bucket boundaries for SDK if the metric is been - * aggregated with a HistogramAggregator. - */ - explicitBucketBoundaries?: number[]; -} -/** - * Options needed for metric creation - */ -export interface MetricOptions { - /** - * The description of the Metric. - * @default '' - */ - description?: string; - /** - * The unit of the Metric values. - * @default '' - */ - unit?: string; - /** - * Indicates the type of the recorded value. - * @default {@link ValueType.DOUBLE} - */ - valueType?: ValueType; - /** - * The advice influencing aggregation configuration parameters. - * @experimental - */ - advice?: MetricAdvice; -} -/** The Type of value. It describes how the data is reported. */ -export declare enum ValueType { - INT = 0, - DOUBLE = 1 -} -/** - * Counter is the most common synchronous instrument. This instrument supports - * an `Add(increment)` function for reporting a sum, and is restricted to - * non-negative increments. The default aggregation is Sum, as for any additive - * instrument. - * - * Example uses for Counter: - *
            - *
          1. count the number of bytes received.
          2. - *
          3. count the number of requests completed.
          4. - *
          5. count the number of accounts created.
          6. - *
          7. count the number of checkpoints run.
          8. - *
          9. count the number of 5xx errors.
          10. - *
              - */ -export interface Counter { - /** - * Increment value of counter by the input. Inputs must not be negative. - */ - add(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface UpDownCounter { - /** - * Increment value of counter by the input. Inputs may be negative. - */ - add(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface Gauge { - /** - * Records a measurement. - */ - record(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface Histogram { - /** - * Records a measurement. Value of the measurement must not be negative. - */ - record(value: number, attributes?: AttributesTypes, context?: Context): void; -} -/** - * @deprecated please use {@link Attributes} - */ -export declare type MetricAttributes = Attributes; -/** - * @deprecated please use {@link AttributeValue} - */ -export declare type MetricAttributeValue = AttributeValue; -/** - * The observable callback for Observable instruments. - */ -export declare type ObservableCallback = (observableResult: ObservableResult) => void | Promise; -/** - * The observable callback for a batch of Observable instruments. - */ -export declare type BatchObservableCallback = (observableResult: BatchObservableResult) => void | Promise; -export interface Observable { - /** - * Sets up a function that will be called whenever a metric collection is initiated. - * - * If the function is already in the list of callbacks for this Observable, the function is not added a second time. - */ - addCallback(callback: ObservableCallback): void; - /** - * Removes a callback previously registered with {@link Observable.addCallback}. - */ - removeCallback(callback: ObservableCallback): void; -} -export declare type ObservableCounter = Observable; -export declare type ObservableUpDownCounter = Observable; -export declare type ObservableGauge = Observable; -//# sourceMappingURL=Metric.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js b/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js deleted file mode 100644 index 6df13741..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** The Type of value. It describes how the data is reported. */ -export var ValueType; -(function (ValueType) { - ValueType[ValueType["INT"] = 0] = "INT"; - ValueType[ValueType["DOUBLE"] = 1] = "DOUBLE"; -})(ValueType || (ValueType = {})); -//# sourceMappingURL=Metric.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js.map deleted file mode 100644 index a115430d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/Metric.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Metric.js","sourceRoot":"","sources":["../../../src/metrics/Metric.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+CH,gEAAgE;AAChE,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,6CAAM,CAAA;AACR,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes, AttributeValue } from '../common/Attributes';\nimport { Context } from '../context/types';\nimport { BatchObservableResult, ObservableResult } from './ObservableResult';\n\n/**\n * Advisory options influencing aggregation configuration parameters.\n * @experimental\n */\nexport interface MetricAdvice {\n /**\n * Hint the explicit bucket boundaries for SDK if the metric is been\n * aggregated with a HistogramAggregator.\n */\n explicitBucketBoundaries?: number[];\n}\n\n/**\n * Options needed for metric creation\n */\nexport interface MetricOptions {\n /**\n * The description of the Metric.\n * @default ''\n */\n description?: string;\n\n /**\n * The unit of the Metric values.\n * @default ''\n */\n unit?: string;\n\n /**\n * Indicates the type of the recorded value.\n * @default {@link ValueType.DOUBLE}\n */\n valueType?: ValueType;\n\n /**\n * The advice influencing aggregation configuration parameters.\n * @experimental\n */\n advice?: MetricAdvice;\n}\n\n/** The Type of value. It describes how the data is reported. */\nexport enum ValueType {\n INT,\n DOUBLE,\n}\n\n/**\n * Counter is the most common synchronous instrument. This instrument supports\n * an `Add(increment)` function for reporting a sum, and is restricted to\n * non-negative increments. The default aggregation is Sum, as for any additive\n * instrument.\n *\n * Example uses for Counter:\n *
                \n *
              1. count the number of bytes received.
              2. \n *
              3. count the number of requests completed.
              4. \n *
              5. count the number of accounts created.
              6. \n *
              7. count the number of checkpoints run.
              8. \n *
              9. count the number of 5xx errors.
              10. \n *
                  \n */\nexport interface Counter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Increment value of counter by the input. Inputs must not be negative.\n */\n add(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface UpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Increment value of counter by the input. Inputs may be negative.\n */\n add(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface Gauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Records a measurement.\n */\n record(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface Histogram<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Records a measurement. Value of the measurement must not be negative.\n */\n record(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\n/**\n * @deprecated please use {@link Attributes}\n */\nexport type MetricAttributes = Attributes;\n\n/**\n * @deprecated please use {@link AttributeValue}\n */\nexport type MetricAttributeValue = AttributeValue;\n\n/**\n * The observable callback for Observable instruments.\n */\nexport type ObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = (\n observableResult: ObservableResult\n) => void | Promise;\n\n/**\n * The observable callback for a batch of Observable instruments.\n */\nexport type BatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = (\n observableResult: BatchObservableResult\n) => void | Promise;\n\nexport interface Observable<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Sets up a function that will be called whenever a metric collection is initiated.\n *\n * If the function is already in the list of callbacks for this Observable, the function is not added a second time.\n */\n addCallback(callback: ObservableCallback): void;\n\n /**\n * Removes a callback previously registered with {@link Observable.addCallback}.\n */\n removeCallback(callback: ObservableCallback): void;\n}\n\nexport type ObservableCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\nexport type ObservableUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\nexport type ObservableGauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.d.ts deleted file mode 100644 index bbefa9a7..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Meter } from './Meter'; -import { BatchObservableCallback, Counter, Gauge, Histogram, MetricAttributes, MetricOptions, Observable, ObservableCallback, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter } from './Metric'; -/** - * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses - * constant NoopMetrics for all of its methods. - */ -export declare class NoopMeter implements Meter { - constructor(); - /** - * @see {@link Meter.createGauge} - */ - createGauge(_name: string, _options?: MetricOptions): Gauge; - /** - * @see {@link Meter.createHistogram} - */ - createHistogram(_name: string, _options?: MetricOptions): Histogram; - /** - * @see {@link Meter.createCounter} - */ - createCounter(_name: string, _options?: MetricOptions): Counter; - /** - * @see {@link Meter.createUpDownCounter} - */ - createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter; - /** - * @see {@link Meter.createObservableGauge} - */ - createObservableGauge(_name: string, _options?: MetricOptions): ObservableGauge; - /** - * @see {@link Meter.createObservableCounter} - */ - createObservableCounter(_name: string, _options?: MetricOptions): ObservableCounter; - /** - * @see {@link Meter.createObservableUpDownCounter} - */ - createObservableUpDownCounter(_name: string, _options?: MetricOptions): ObservableUpDownCounter; - /** - * @see {@link Meter.addBatchObservableCallback} - */ - addBatchObservableCallback(_callback: BatchObservableCallback, _observables: Observable[]): void; - /** - * @see {@link Meter.removeBatchObservableCallback} - */ - removeBatchObservableCallback(_callback: BatchObservableCallback): void; -} -export declare class NoopMetric { -} -export declare class NoopCounterMetric extends NoopMetric implements Counter { - add(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopUpDownCounterMetric extends NoopMetric implements UpDownCounter { - add(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopGaugeMetric extends NoopMetric implements Gauge { - record(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopHistogramMetric extends NoopMetric implements Histogram { - record(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopObservableMetric { - addCallback(_callback: ObservableCallback): void; - removeCallback(_callback: ObservableCallback): void; -} -export declare class NoopObservableCounterMetric extends NoopObservableMetric implements ObservableCounter { -} -export declare class NoopObservableGaugeMetric extends NoopObservableMetric implements ObservableGauge { -} -export declare class NoopObservableUpDownCounterMetric extends NoopObservableMetric implements ObservableUpDownCounter { -} -export declare const NOOP_METER: NoopMeter; -export declare const NOOP_COUNTER_METRIC: NoopCounterMetric; -export declare const NOOP_GAUGE_METRIC: NoopGaugeMetric; -export declare const NOOP_HISTOGRAM_METRIC: NoopHistogramMetric; -export declare const NOOP_UP_DOWN_COUNTER_METRIC: NoopUpDownCounterMetric; -export declare const NOOP_OBSERVABLE_COUNTER_METRIC: NoopObservableCounterMetric; -export declare const NOOP_OBSERVABLE_GAUGE_METRIC: NoopObservableGaugeMetric; -export declare const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC: NoopObservableUpDownCounterMetric; -/** - * Create a no-op Meter - */ -export declare function createNoopMeter(): Meter; -//# sourceMappingURL=NoopMeter.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js b/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js deleted file mode 100644 index 1f966ba6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses - * constant NoopMetrics for all of its methods. - */ -export class NoopMeter { - constructor() { } - /** - * @see {@link Meter.createGauge} - */ - createGauge(_name, _options) { - return NOOP_GAUGE_METRIC; - } - /** - * @see {@link Meter.createHistogram} - */ - createHistogram(_name, _options) { - return NOOP_HISTOGRAM_METRIC; - } - /** - * @see {@link Meter.createCounter} - */ - createCounter(_name, _options) { - return NOOP_COUNTER_METRIC; - } - /** - * @see {@link Meter.createUpDownCounter} - */ - createUpDownCounter(_name, _options) { - return NOOP_UP_DOWN_COUNTER_METRIC; - } - /** - * @see {@link Meter.createObservableGauge} - */ - createObservableGauge(_name, _options) { - return NOOP_OBSERVABLE_GAUGE_METRIC; - } - /** - * @see {@link Meter.createObservableCounter} - */ - createObservableCounter(_name, _options) { - return NOOP_OBSERVABLE_COUNTER_METRIC; - } - /** - * @see {@link Meter.createObservableUpDownCounter} - */ - createObservableUpDownCounter(_name, _options) { - return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC; - } - /** - * @see {@link Meter.addBatchObservableCallback} - */ - addBatchObservableCallback(_callback, _observables) { } - /** - * @see {@link Meter.removeBatchObservableCallback} - */ - removeBatchObservableCallback(_callback) { } -} -export class NoopMetric { -} -export class NoopCounterMetric extends NoopMetric { - add(_value, _attributes) { } -} -export class NoopUpDownCounterMetric extends NoopMetric { - add(_value, _attributes) { } -} -export class NoopGaugeMetric extends NoopMetric { - record(_value, _attributes) { } -} -export class NoopHistogramMetric extends NoopMetric { - record(_value, _attributes) { } -} -export class NoopObservableMetric { - addCallback(_callback) { } - removeCallback(_callback) { } -} -export class NoopObservableCounterMetric extends NoopObservableMetric { -} -export class NoopObservableGaugeMetric extends NoopObservableMetric { -} -export class NoopObservableUpDownCounterMetric extends NoopObservableMetric { -} -export const NOOP_METER = new NoopMeter(); -// Synchronous instruments -export const NOOP_COUNTER_METRIC = new NoopCounterMetric(); -export const NOOP_GAUGE_METRIC = new NoopGaugeMetric(); -export const NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric(); -export const NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric(); -// Asynchronous instruments -export const NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric(); -export const NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric(); -export const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric(); -/** - * Create a no-op Meter - */ -export function createNoopMeter() { - return NOOP_METER; -} -//# sourceMappingURL=NoopMeter.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js.map deleted file mode 100644 index ca6e9042..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopMeter.js","sourceRoot":"","sources":["../../../src/metrics/NoopMeter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH;;;GAGG;AACH,MAAM,OAAO,SAAS;IACpB,gBAAe,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,KAAa,EAAE,QAAwB;QACjD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,QAAwB;QACrD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAa,EAAE,QAAwB;QACnD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAa,EAAE,QAAwB;QACzD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,qBAAqB,CACnB,KAAa,EACb,QAAwB;QAExB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,KAAa,EACb,QAAwB;QAExB,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,6BAA6B,CAC3B,KAAa,EACb,QAAwB;QAExB,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,0BAA0B,CACxB,SAAkC,EAClC,YAA0B,IACnB,CAAC;IAEV;;OAEG;IACH,6BAA6B,CAAC,SAAkC,IAAS,CAAC;CAC3E;AAED,MAAM,OAAO,UAAU;CAAG;AAE1B,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/C,GAAG,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC5D;AAED,MAAM,OAAO,uBACX,SAAQ,UAAU;IAGlB,GAAG,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC5D;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC/D;AAED,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC/D;AAED,MAAM,OAAO,oBAAoB;IAC/B,WAAW,CAAC,SAA6B,IAAG,CAAC;IAE7C,cAAc,CAAC,SAA6B,IAAG,CAAC;CACjD;AAED,MAAM,OAAO,2BACX,SAAQ,oBAAoB;CACG;AAEjC,MAAM,OAAO,yBACX,SAAQ,oBAAoB;CACC;AAE/B,MAAM,OAAO,iCACX,SAAQ,oBAAoB;CACS;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;AAE1C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEzE,2BAA2B;AAC3B,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAChF,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAC5E,MAAM,CAAC,MAAM,sCAAsC,GACjD,IAAI,iCAAiC,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter } from './Meter';\nimport {\n BatchObservableCallback,\n Counter,\n Gauge,\n Histogram,\n MetricAttributes,\n MetricOptions,\n Observable,\n ObservableCallback,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n} from './Metric';\n\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nexport class NoopMeter implements Meter {\n constructor() {}\n\n /**\n * @see {@link Meter.createGauge}\n */\n createGauge(_name: string, _options?: MetricOptions): Gauge {\n return NOOP_GAUGE_METRIC;\n }\n\n /**\n * @see {@link Meter.createHistogram}\n */\n createHistogram(_name: string, _options?: MetricOptions): Histogram {\n return NOOP_HISTOGRAM_METRIC;\n }\n\n /**\n * @see {@link Meter.createCounter}\n */\n createCounter(_name: string, _options?: MetricOptions): Counter {\n return NOOP_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createUpDownCounter}\n */\n createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter {\n return NOOP_UP_DOWN_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableGauge}\n */\n createObservableGauge(\n _name: string,\n _options?: MetricOptions\n ): ObservableGauge {\n return NOOP_OBSERVABLE_GAUGE_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableCounter}\n */\n createObservableCounter(\n _name: string,\n _options?: MetricOptions\n ): ObservableCounter {\n return NOOP_OBSERVABLE_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableUpDownCounter}\n */\n createObservableUpDownCounter(\n _name: string,\n _options?: MetricOptions\n ): ObservableUpDownCounter {\n return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.addBatchObservableCallback}\n */\n addBatchObservableCallback(\n _callback: BatchObservableCallback,\n _observables: Observable[]\n ): void {}\n\n /**\n * @see {@link Meter.removeBatchObservableCallback}\n */\n removeBatchObservableCallback(_callback: BatchObservableCallback): void {}\n}\n\nexport class NoopMetric {}\n\nexport class NoopCounterMetric extends NoopMetric implements Counter {\n add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopUpDownCounterMetric\n extends NoopMetric\n implements UpDownCounter\n{\n add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopGaugeMetric extends NoopMetric implements Gauge {\n record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopHistogramMetric extends NoopMetric implements Histogram {\n record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopObservableMetric {\n addCallback(_callback: ObservableCallback) {}\n\n removeCallback(_callback: ObservableCallback) {}\n}\n\nexport class NoopObservableCounterMetric\n extends NoopObservableMetric\n implements ObservableCounter {}\n\nexport class NoopObservableGaugeMetric\n extends NoopObservableMetric\n implements ObservableGauge {}\n\nexport class NoopObservableUpDownCounterMetric\n extends NoopObservableMetric\n implements ObservableUpDownCounter {}\n\nexport const NOOP_METER = new NoopMeter();\n\n// Synchronous instruments\nexport const NOOP_COUNTER_METRIC = new NoopCounterMetric();\nexport const NOOP_GAUGE_METRIC = new NoopGaugeMetric();\nexport const NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric();\nexport const NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric();\n\n// Asynchronous instruments\nexport const NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric();\nexport const NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric();\nexport const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC =\n new NoopObservableUpDownCounterMetric();\n\n/**\n * Create a no-op Meter\n */\nexport function createNoopMeter(): Meter {\n return NOOP_METER;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.d.ts deleted file mode 100644 index 8b51bc52..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Meter, MeterOptions } from './Meter'; -import { MeterProvider } from './MeterProvider'; -/** - * An implementation of the {@link MeterProvider} which returns an impotent Meter - * for all calls to `getMeter` - */ -export declare class NoopMeterProvider implements MeterProvider { - getMeter(_name: string, _version?: string, _options?: MeterOptions): Meter; -} -export declare const NOOP_METER_PROVIDER: NoopMeterProvider; -//# sourceMappingURL=NoopMeterProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js b/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js deleted file mode 100644 index 075f5c66..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NOOP_METER } from './NoopMeter'; -/** - * An implementation of the {@link MeterProvider} which returns an impotent Meter - * for all calls to `getMeter` - */ -export class NoopMeterProvider { - getMeter(_name, _version, _options) { - return NOOP_METER; - } -} -export const NOOP_METER_PROVIDER = new NoopMeterProvider(); -//# sourceMappingURL=NoopMeterProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js.map deleted file mode 100644 index c68783a2..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/NoopMeterProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopMeterProvider.js","sourceRoot":"","sources":["../../../src/metrics/NoopMeterProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B,QAAQ,CAAC,KAAa,EAAE,QAAiB,EAAE,QAAuB;QAChE,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from './Meter';\nimport { MeterProvider } from './MeterProvider';\nimport { NOOP_METER } from './NoopMeter';\n\n/**\n * An implementation of the {@link MeterProvider} which returns an impotent Meter\n * for all calls to `getMeter`\n */\nexport class NoopMeterProvider implements MeterProvider {\n getMeter(_name: string, _version?: string, _options?: MeterOptions): Meter {\n return NOOP_METER;\n }\n}\n\nexport const NOOP_METER_PROVIDER = new NoopMeterProvider();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.d.ts b/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.d.ts deleted file mode 100644 index 26563f9e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { MetricAttributes, Observable } from './Metric'; -/** - * Interface that is being used in callback function for Observable Metric. - */ -export interface ObservableResult { - /** - * Observe a measurement of the value associated with the given attributes. - * - * @param value The value to be observed. - * @param attributes The attributes associated with the value. If more than - * one values associated with the same attributes values, SDK may pick the - * last one or simply drop the entire observable result. - */ - observe(this: ObservableResult, value: number, attributes?: AttributesTypes): void; -} -/** - * Interface that is being used in batch observable callback function. - */ -export interface BatchObservableResult { - /** - * Observe a measurement of the value associated with the given attributes. - * - * @param metric The observable metric to be observed. - * @param value The value to be observed. - * @param attributes The attributes associated with the value. If more than - * one values associated with the same attributes values, SDK may pick the - * last one or simply drop the entire observable result. - */ - observe(this: BatchObservableResult, metric: Observable, value: number, attributes?: AttributesTypes): void; -} -//# sourceMappingURL=ObservableResult.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js b/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js deleted file mode 100644 index 7985d26d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=ObservableResult.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js.map b/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js.map deleted file mode 100644 index b6b0c7ca..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/metrics/ObservableResult.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ObservableResult.js","sourceRoot":"","sources":["../../../src/metrics/ObservableResult.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MetricAttributes, Observable } from './Metric';\n\n/**\n * Interface that is being used in callback function for Observable Metric.\n */\nexport interface ObservableResult<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Observe a measurement of the value associated with the given attributes.\n *\n * @param value The value to be observed.\n * @param attributes The attributes associated with the value. If more than\n * one values associated with the same attributes values, SDK may pick the\n * last one or simply drop the entire observable result.\n */\n observe(\n this: ObservableResult,\n value: number,\n attributes?: AttributesTypes\n ): void;\n}\n\n/**\n * Interface that is being used in batch observable callback function.\n */\nexport interface BatchObservableResult<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Observe a measurement of the value associated with the given attributes.\n *\n * @param metric The observable metric to be observed.\n * @param value The value to be observed.\n * @param attributes The attributes associated with the value. If more than\n * one values associated with the same attributes values, SDK may pick the\n * last one or simply drop the entire observable result.\n */\n observe(\n this: BatchObservableResult,\n metric: Observable,\n value: number,\n attributes?: AttributesTypes\n ): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.d.ts b/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.d.ts deleted file mode 100644 index e73fd73e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ -/** only globals that common to node and browsers are allowed */ -export declare const _globalThis: typeof globalThis; -//# sourceMappingURL=globalThis.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js b/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js deleted file mode 100644 index e9d58b3c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Updates to this file should also be replicated to @opentelemetry/core too. -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef -export const _globalThis = typeof globalThis === 'object' - ? globalThis - : typeof self === 'object' - ? self - : typeof window === 'object' - ? window - : typeof global === 'object' - ? global - : {}; -//# sourceMappingURL=globalThis.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js.map b/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js.map deleted file mode 100644 index c01e2abb..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/browser/globalThis.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalThis.js","sourceRoot":"","sources":["../../../../src/platform/browser/globalThis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,6EAA6E;AAE7E;;;;;;GAMG;AAEH,gEAAgE;AAChE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GACtB,OAAO,UAAU,KAAK,QAAQ;IAC5B,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;YAC5B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;gBAC5B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAE,EAAwB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Updates to this file should also be replicated to @opentelemetry/core too.\n\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - (When all else fails)\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis: typeof globalThis =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : ({} as typeof globalThis);\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.d.ts b/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.d.ts deleted file mode 100644 index ba20e123..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './globalThis'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js b/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js deleted file mode 100644 index efcad2e9..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './globalThis'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js.map b/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js.map deleted file mode 100644 index 07adcd9d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/browser/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './globalThis';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/index.d.ts b/node_modules/@opentelemetry/api/build/esnext/platform/index.d.ts deleted file mode 100644 index 90595da9..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/index.js b/node_modules/@opentelemetry/api/build/esnext/platform/index.js deleted file mode 100644 index c0df125c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './node'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/index.js.map b/node_modules/@opentelemetry/api/build/esnext/platform/index.js.map deleted file mode 100644 index 9494c531..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,QAAQ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './node';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.d.ts b/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.d.ts deleted file mode 100644 index e3c83e5d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** only globals that common to node and browsers are allowed */ -export declare const _globalThis: typeof globalThis; -//# sourceMappingURL=globalThis.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js b/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js deleted file mode 100644 index 7daa45d8..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins -export const _globalThis = typeof globalThis === 'object' ? globalThis : global; -//# sourceMappingURL=globalThis.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js.map b/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js.map deleted file mode 100644 index 7d8366c4..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/node/globalThis.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalThis.js","sourceRoot":"","sources":["../../../../src/platform/node/globalThis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gEAAgE;AAChE,oEAAoE;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins\nexport const _globalThis = typeof globalThis === 'object' ? globalThis : global;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/node/index.d.ts b/node_modules/@opentelemetry/api/build/esnext/platform/node/index.d.ts deleted file mode 100644 index ba20e123..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/node/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './globalThis'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js b/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js deleted file mode 100644 index efcad2e9..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './globalThis'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js.map b/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js.map deleted file mode 100644 index f2797186..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/platform/node/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './globalThis';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation-api.d.ts b/node_modules/@opentelemetry/api/build/esnext/propagation-api.d.ts deleted file mode 100644 index e12b51ba..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PropagationAPI } from './api/propagation'; -/** Entrypoint for propagation API */ -export declare const propagation: PropagationAPI; -//# sourceMappingURL=propagation-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation-api.js b/node_modules/@opentelemetry/api/build/esnext/propagation-api.js deleted file mode 100644 index 7964ed9e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { PropagationAPI } from './api/propagation'; -/** Entrypoint for propagation API */ -export const propagation = PropagationAPI.getInstance(); -//# sourceMappingURL=propagation-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation-api.js.map b/node_modules/@opentelemetry/api/build/esnext/propagation-api.js.map deleted file mode 100644 index 401c0bcb..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"propagation-api.js","sourceRoot":"","sources":["../../src/propagation-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { PropagationAPI } from './api/propagation';\n/** Entrypoint for propagation API */\nexport const propagation = PropagationAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.d.ts b/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.d.ts deleted file mode 100644 index 398021f3..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Context } from '../context/types'; -import { TextMapPropagator } from './TextMapPropagator'; -/** - * No-op implementations of {@link TextMapPropagator}. - */ -export declare class NoopTextMapPropagator implements TextMapPropagator { - /** Noop inject function does nothing */ - inject(_context: Context, _carrier: unknown): void; - /** Noop extract function does nothing and returns the input context */ - extract(context: Context, _carrier: unknown): Context; - fields(): string[]; -} -//# sourceMappingURL=NoopTextMapPropagator.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js b/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js deleted file mode 100644 index 642b84ed..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * No-op implementations of {@link TextMapPropagator}. - */ -export class NoopTextMapPropagator { - /** Noop inject function does nothing */ - inject(_context, _carrier) { } - /** Noop extract function does nothing and returns the input context */ - extract(context, _carrier) { - return context; - } - fields() { - return []; - } -} -//# sourceMappingURL=NoopTextMapPropagator.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js.map b/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js.map deleted file mode 100644 index 29ce4939..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation/NoopTextMapPropagator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTextMapPropagator.js","sourceRoot":"","sources":["../../../src/propagation/NoopTextMapPropagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAChC,wCAAwC;IACxC,MAAM,CAAC,QAAiB,EAAE,QAAiB,IAAS,CAAC;IACrD,uEAAuE;IACvE,OAAO,CAAC,OAAgB,EAAE,QAAiB;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { TextMapPropagator } from './TextMapPropagator';\n\n/**\n * No-op implementations of {@link TextMapPropagator}.\n */\nexport class NoopTextMapPropagator implements TextMapPropagator {\n /** Noop inject function does nothing */\n inject(_context: Context, _carrier: unknown): void {}\n /** Noop extract function does nothing and returns the input context */\n extract(context: Context, _carrier: unknown): Context {\n return context;\n }\n fields(): string[] {\n return [];\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.d.ts b/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.d.ts deleted file mode 100644 index dc39367b..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Context } from '../context/types'; -/** - * Injects `Context` into and extracts it from carriers that travel - * in-band across process boundaries. Encoding is expected to conform to the - * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request - * headers. - * - * The carrier of propagated data on both the client (injector) and server - * (extractor) side is usually an object such as http headers. Propagation is - * usually implemented via library-specific request interceptors, where the - * client-side injects values and the server-side extracts them. - */ -export interface TextMapPropagator { - /** - * Injects values from a given `Context` into a carrier. - * - * OpenTelemetry defines a common set of format values (TextMapPropagator), - * and each has an expected `carrier` type. - * - * @param context the Context from which to extract values to transmit over - * the wire. - * @param carrier the carrier of propagation fields, such as http request - * headers. - * @param setter an optional {@link TextMapSetter}. If undefined, values will be - * set by direct object assignment. - */ - inject(context: Context, carrier: Carrier, setter: TextMapSetter): void; - /** - * Given a `Context` and a carrier, extract context values from a - * carrier and return a new context, created from the old context, with the - * extracted values. - * - * @param context the Context from which to extract values to transmit over - * the wire. - * @param carrier the carrier of propagation fields, such as http request - * headers. - * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all - * own properties, and keys will be accessed by direct object access. - */ - extract(context: Context, carrier: Carrier, getter: TextMapGetter): Context; - /** - * Return a list of all fields which may be used by the propagator. - */ - fields(): string[]; -} -/** - * A setter is specified by the caller to define a specific method - * to set key/value pairs on the carrier within a propagator. - */ -export interface TextMapSetter { - /** - * Callback used to set a key/value pair on an object. - * - * Should be called by the propagator each time a key/value pair - * should be set, and should set that key/value pair on the propagator. - * - * @param carrier object or class which carries key/value pairs - * @param key string key to modify - * @param value value to be set to the key on the carrier - */ - set(carrier: Carrier, key: string, value: string): void; -} -/** - * A getter is specified by the caller to define a specific method - * to get the value of a key from a carrier. - */ -export interface TextMapGetter { - /** - * Get a list of all keys available on the carrier. - * - * @param carrier - */ - keys(carrier: Carrier): string[]; - /** - * Get the value of a specific key from the carrier. - * - * @param carrier - * @param key - */ - get(carrier: Carrier, key: string): undefined | string | string[]; -} -export declare const defaultTextMapGetter: TextMapGetter; -export declare const defaultTextMapSetter: TextMapSetter; -//# sourceMappingURL=TextMapPropagator.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js b/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js deleted file mode 100644 index 4c369958..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export const defaultTextMapGetter = { - get(carrier, key) { - if (carrier == null) { - return undefined; - } - return carrier[key]; - }, - keys(carrier) { - if (carrier == null) { - return []; - } - return Object.keys(carrier); - }, -}; -export const defaultTextMapSetter = { - set(carrier, key, value) { - if (carrier == null) { - return; - } - carrier[key] = value; - }, -}; -//# sourceMappingURL=TextMapPropagator.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js.map b/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js.map deleted file mode 100644 index d46019b1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/propagation/TextMapPropagator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TextMapPropagator.js","sourceRoot":"","sources":["../../../src/propagation/TextMapPropagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkGH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,GAAG,CAAC,OAAO,EAAE,GAAG;QACd,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAO;QACV,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK;QACrB,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO;SACR;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\n\n/**\n * Injects `Context` into and extracts it from carriers that travel\n * in-band across process boundaries. Encoding is expected to conform to the\n * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request\n * headers.\n *\n * The carrier of propagated data on both the client (injector) and server\n * (extractor) side is usually an object such as http headers. Propagation is\n * usually implemented via library-specific request interceptors, where the\n * client-side injects values and the server-side extracts them.\n */\nexport interface TextMapPropagator {\n /**\n * Injects values from a given `Context` into a carrier.\n *\n * OpenTelemetry defines a common set of format values (TextMapPropagator),\n * and each has an expected `carrier` type.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param setter an optional {@link TextMapSetter}. If undefined, values will be\n * set by direct object assignment.\n */\n inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter\n ): void;\n\n /**\n * Given a `Context` and a carrier, extract context values from a\n * carrier and return a new context, created from the old context, with the\n * extracted values.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all\n * own properties, and keys will be accessed by direct object access.\n */\n extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter\n ): Context;\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n fields(): string[];\n}\n\n/**\n * A setter is specified by the caller to define a specific method\n * to set key/value pairs on the carrier within a propagator.\n */\nexport interface TextMapSetter {\n /**\n * Callback used to set a key/value pair on an object.\n *\n * Should be called by the propagator each time a key/value pair\n * should be set, and should set that key/value pair on the propagator.\n *\n * @param carrier object or class which carries key/value pairs\n * @param key string key to modify\n * @param value value to be set to the key on the carrier\n */\n set(carrier: Carrier, key: string, value: string): void;\n}\n\n/**\n * A getter is specified by the caller to define a specific method\n * to get the value of a key from a carrier.\n */\nexport interface TextMapGetter {\n /**\n * Get a list of all keys available on the carrier.\n *\n * @param carrier\n */\n keys(carrier: Carrier): string[];\n\n /**\n * Get the value of a specific key from the carrier.\n *\n * @param carrier\n * @param key\n */\n get(carrier: Carrier, key: string): undefined | string | string[];\n}\n\nexport const defaultTextMapGetter: TextMapGetter = {\n get(carrier, key) {\n if (carrier == null) {\n return undefined;\n }\n return carrier[key];\n },\n\n keys(carrier) {\n if (carrier == null) {\n return [];\n }\n return Object.keys(carrier);\n },\n};\n\nexport const defaultTextMapSetter: TextMapSetter = {\n set(carrier, key, value) {\n if (carrier == null) {\n return;\n }\n\n carrier[key] = value;\n },\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace-api.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace-api.d.ts deleted file mode 100644 index b4751a7f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { TraceAPI } from './api/trace'; -/** Entrypoint for trace API */ -export declare const trace: TraceAPI; -//# sourceMappingURL=trace-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace-api.js b/node_modules/@opentelemetry/api/build/esnext/trace-api.js deleted file mode 100644 index 3a0b9b0f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace-api.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -import { TraceAPI } from './api/trace'; -/** Entrypoint for trace API */ -export const trace = TraceAPI.getInstance(); -//# sourceMappingURL=trace-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace-api.js.map b/node_modules/@opentelemetry/api/build/esnext/trace-api.js.map deleted file mode 100644 index 39823129..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace-api.js","sourceRoot":"","sources":["../../src/trace-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport const trace = TraceAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.d.ts deleted file mode 100644 index ce569f0c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Exception } from '../common/Exception'; -import { TimeInput } from '../common/Time'; -import { SpanAttributes } from './attributes'; -import { Span } from './span'; -import { SpanContext } from './span_context'; -import { SpanStatus } from './status'; -import { Link } from './link'; -/** - * The NonRecordingSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -export declare class NonRecordingSpan implements Span { - private readonly _spanContext; - constructor(_spanContext?: SpanContext); - spanContext(): SpanContext; - setAttribute(_key: string, _value: unknown): this; - setAttributes(_attributes: SpanAttributes): this; - addEvent(_name: string, _attributes?: SpanAttributes): this; - addLink(_link: Link): this; - addLinks(_links: Link[]): this; - setStatus(_status: SpanStatus): this; - updateName(_name: string): this; - end(_endTime?: TimeInput): void; - isRecording(): boolean; - recordException(_exception: Exception, _time?: TimeInput): void; -} -//# sourceMappingURL=NonRecordingSpan.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js b/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js deleted file mode 100644 index 51157ccc..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { INVALID_SPAN_CONTEXT } from './invalid-span-constants'; -/** - * The NonRecordingSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -export class NonRecordingSpan { - constructor(_spanContext = INVALID_SPAN_CONTEXT) { - this._spanContext = _spanContext; - } - // Returns a SpanContext. - spanContext() { - return this._spanContext; - } - // By default does nothing - setAttribute(_key, _value) { - return this; - } - // By default does nothing - setAttributes(_attributes) { - return this; - } - // By default does nothing - addEvent(_name, _attributes) { - return this; - } - addLink(_link) { - return this; - } - addLinks(_links) { - return this; - } - // By default does nothing - setStatus(_status) { - return this; - } - // By default does nothing - updateName(_name) { - return this; - } - // By default does nothing - end(_endTime) { } - // isRecording always returns false for NonRecordingSpan. - isRecording() { - return false; - } - // By default does nothing - recordException(_exception, _time) { } -} -//# sourceMappingURL=NonRecordingSpan.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js.map deleted file mode 100644 index 55dd10b1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NonRecordingSpan.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NonRecordingSpan.js","sourceRoot":"","sources":["../../../src/trace/NonRecordingSpan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMhE;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YACmB,eAA4B,oBAAoB;QAAhD,iBAAY,GAAZ,YAAY,CAAoC;IAChE,CAAC;IAEJ,yBAAyB;IACzB,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,0BAA0B;IAC1B,YAAY,CAAC,IAAY,EAAE,MAAe;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,aAAa,CAAC,WAA2B;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAa,EAAE,WAA4B;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAW;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,SAAS,CAAC,OAAmB;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,GAAG,CAAC,QAAoB,IAAS,CAAC;IAElC,yDAAyD;IACzD,WAAW;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,eAAe,CAAC,UAAqB,EAAE,KAAiB,IAAS,CAAC;CACnE","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nexport class NonRecordingSpan implements Span {\n constructor(\n private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT\n ) {}\n\n // Returns a SpanContext.\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n // By default does nothing\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n // By default does nothing\n setAttributes(_attributes: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n addEvent(_name: string, _attributes?: SpanAttributes): this {\n return this;\n }\n\n addLink(_link: Link): this {\n return this;\n }\n\n addLinks(_links: Link[]): this {\n return this;\n }\n\n // By default does nothing\n setStatus(_status: SpanStatus): this {\n return this;\n }\n\n // By default does nothing\n updateName(_name: string): this {\n return this;\n }\n\n // By default does nothing\n end(_endTime?: TimeInput): void {}\n\n // isRecording always returns false for NonRecordingSpan.\n isRecording(): boolean {\n return false;\n }\n\n // By default does nothing\n recordException(_exception: Exception, _time?: TimeInput): void {}\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.d.ts deleted file mode 100644 index 0e059c99..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -import { Tracer } from './tracer'; -/** - * No-op implementations of {@link Tracer}. - */ -export declare class NoopTracer implements Tracer { - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - startActiveSpan ReturnType>(name: string, fn: F): ReturnType; - startActiveSpan ReturnType>(name: string, opts: SpanOptions | undefined, fn: F): ReturnType; - startActiveSpan ReturnType>(name: string, opts: SpanOptions | undefined, ctx: Context | undefined, fn: F): ReturnType; -} -//# sourceMappingURL=NoopTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js b/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js deleted file mode 100644 index ddc7760b..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ContextAPI } from '../api/context'; -import { getSpanContext, setSpan } from '../trace/context-utils'; -import { NonRecordingSpan } from './NonRecordingSpan'; -import { isSpanContextValid } from './spancontext-utils'; -const contextApi = ContextAPI.getInstance(); -/** - * No-op implementations of {@link Tracer}. - */ -export class NoopTracer { - // startSpan starts a noop span. - startSpan(name, options, context = contextApi.active()) { - const root = Boolean(options === null || options === void 0 ? void 0 : options.root); - if (root) { - return new NonRecordingSpan(); - } - const parentFromContext = context && getSpanContext(context); - if (isSpanContext(parentFromContext) && - isSpanContextValid(parentFromContext)) { - return new NonRecordingSpan(parentFromContext); - } - else { - return new NonRecordingSpan(); - } - } - startActiveSpan(name, arg2, arg3, arg4) { - let opts; - let ctx; - let fn; - if (arguments.length < 2) { - return; - } - else if (arguments.length === 2) { - fn = arg2; - } - else if (arguments.length === 3) { - opts = arg2; - fn = arg3; - } - else { - opts = arg2; - ctx = arg3; - fn = arg4; - } - const parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active(); - const span = this.startSpan(name, opts, parentContext); - const contextWithSpanSet = setSpan(parentContext, span); - return contextApi.with(contextWithSpanSet, fn, undefined, span); - } -} -function isSpanContext(spanContext) { - return (typeof spanContext === 'object' && - typeof spanContext['spanId'] === 'string' && - typeof spanContext['traceId'] === 'string' && - typeof spanContext['traceFlags'] === 'number'); -} -//# sourceMappingURL=NoopTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js.map deleted file mode 100644 index d2f96c7b..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../../../src/trace/NoopTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB,gCAAgC;IAChC,SAAS,CACP,IAAY,EACZ,OAAqB,EACrB,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE;QAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,gBAAgB,EAAE,CAAC;SAC/B;QAED,MAAM,iBAAiB,GAAG,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QAE7D,IACE,aAAa,CAAC,iBAAiB,CAAC;YAChC,kBAAkB,CAAC,iBAAiB,CAAC,EACrC;YACA,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;SAChD;aAAM;YACL,OAAO,IAAI,gBAAgB,EAAE,CAAC;SAC/B;IACH,CAAC;IAiBD,eAAe,CACb,IAAY,EACZ,IAAsB,EACtB,IAAkB,EAClB,IAAQ;QAER,IAAI,IAA6B,CAAC;QAClC,IAAI,GAAwB,CAAC;QAC7B,IAAI,EAAK,CAAC;QAEV,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO;SACR;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,EAAE,GAAG,IAAS,CAAC;SAChB;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,IAAI,GAAG,IAA+B,CAAC;YACvC,EAAE,GAAG,IAAS,CAAC;SAChB;aAAM;YACL,IAAI,GAAG,IAA+B,CAAC;YACvC,GAAG,GAAG,IAA2B,CAAC;YAClC,EAAE,GAAG,IAAS,CAAC;SAChB;QAED,MAAM,aAAa,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAExD,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;CACF;AAED,SAAS,aAAa,CAAC,WAAgB;IACrC,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACzC,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,QAAQ;QAC1C,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,QAAQ,CAC9C,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { Context } from '../context/types';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { isSpanContextValid } from './spancontext-utils';\nimport { SpanOptions } from './SpanOptions';\nimport { SpanContext } from './span_context';\nimport { Tracer } from './tracer';\n\nconst contextApi = ContextAPI.getInstance();\n\n/**\n * No-op implementations of {@link Tracer}.\n */\nexport class NoopTracer implements Tracer {\n // startSpan starts a noop span.\n startSpan(\n name: string,\n options?: SpanOptions,\n context = contextApi.active()\n ): Span {\n const root = Boolean(options?.root);\n if (root) {\n return new NonRecordingSpan();\n }\n\n const parentFromContext = context && getSpanContext(context);\n\n if (\n isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)\n ) {\n return new NonRecordingSpan(parentFromContext);\n } else {\n return new NonRecordingSpan();\n }\n }\n\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n ctx: Context | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | SpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: SpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as SpanOptions | undefined;\n ctx = arg3 as Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? contextApi.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = setSpan(parentContext, span);\n\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n }\n}\n\nfunction isSpanContext(spanContext: any): spanContext is SpanContext {\n return (\n typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number'\n );\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.d.ts deleted file mode 100644 index ec0fe792..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -import { TracerProvider } from './tracer_provider'; -/** - * An implementation of the {@link TracerProvider} which returns an impotent - * Tracer for all calls to `getTracer`. - * - * All operations are no-op. - */ -export declare class NoopTracerProvider implements TracerProvider { - getTracer(_name?: string, _version?: string, _options?: TracerOptions): Tracer; -} -//# sourceMappingURL=NoopTracerProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js b/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js deleted file mode 100644 index b542b7da..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoopTracer } from './NoopTracer'; -/** - * An implementation of the {@link TracerProvider} which returns an impotent - * Tracer for all calls to `getTracer`. - * - * All operations are no-op. - */ -export class NoopTracerProvider { - getTracer(_name, _version, _options) { - return new NoopTracer(); - } -} -//# sourceMappingURL=NoopTracerProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js.map deleted file mode 100644 index 6380d2c5..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/NoopTracerProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTracerProvider.js","sourceRoot":"","sources":["../../../src/trace/NoopTracerProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B,SAAS,CACP,KAAc,EACd,QAAiB,EACjB,QAAwB;QAExB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopTracer } from './NoopTracer';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\nimport { TracerProvider } from './tracer_provider';\n\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nexport class NoopTracerProvider implements TracerProvider {\n getTracer(\n _name?: string,\n _version?: string,\n _options?: TracerOptions\n ): Tracer {\n return new NoopTracer();\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.d.ts deleted file mode 100644 index 116cc5c1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -/** - * Proxy tracer provided by the proxy tracer provider - */ -export declare class ProxyTracer implements Tracer { - private _provider; - readonly name: string; - readonly version?: string | undefined; - readonly options?: TracerOptions | undefined; - private _delegate?; - constructor(_provider: TracerDelegator, name: string, version?: string | undefined, options?: TracerOptions | undefined); - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - startActiveSpan unknown>(_name: string, _options: F | SpanOptions, _context?: F | Context, _fn?: F): ReturnType; - /** - * Try to get a tracer from the proxy tracer provider. - * If the proxy tracer provider has no delegate, return a noop tracer. - */ - private _getTracer; -} -export interface TracerDelegator { - getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined; -} -//# sourceMappingURL=ProxyTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js b/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js deleted file mode 100644 index 94dcb020..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoopTracer } from './NoopTracer'; -const NOOP_TRACER = new NoopTracer(); -/** - * Proxy tracer provided by the proxy tracer provider - */ -export class ProxyTracer { - constructor(_provider, name, version, options) { - this._provider = _provider; - this.name = name; - this.version = version; - this.options = options; - } - startSpan(name, options, context) { - return this._getTracer().startSpan(name, options, context); - } - startActiveSpan(_name, _options, _context, _fn) { - const tracer = this._getTracer(); - return Reflect.apply(tracer.startActiveSpan, tracer, arguments); - } - /** - * Try to get a tracer from the proxy tracer provider. - * If the proxy tracer provider has no delegate, return a noop tracer. - */ - _getTracer() { - if (this._delegate) { - return this._delegate; - } - const tracer = this._provider.getDelegateTracer(this.name, this.version, this.options); - if (!tracer) { - return NOOP_TRACER; - } - this._delegate = tracer; - return this._delegate; - } -} -//# sourceMappingURL=ProxyTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js.map deleted file mode 100644 index e9469389..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProxyTracer.js","sourceRoot":"","sources":["../../../src/trace/ProxyTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,WAAW;IAItB,YACU,SAA0B,EAClB,IAAY,EACZ,OAAgB,EAChB,OAAuB;QAH/B,cAAS,GAAT,SAAS,CAAiB;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAAgB;IACtC,CAAC;IAEJ,SAAS,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiB;QAC9D,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CACb,KAAa,EACb,QAAyB,EACzB,QAAsB,EACtB,GAAO;QAEP,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC7C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,WAAW,CAAC;SACpB;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { NoopTracer } from './NoopTracer';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER = new NoopTracer();\n\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nexport class ProxyTracer implements Tracer {\n // When a real implementation is provided, this will be it\n private _delegate?: Tracer;\n\n constructor(\n private _provider: TracerDelegator,\n public readonly name: string,\n public readonly version?: string,\n public readonly options?: TracerOptions\n ) {}\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n return this._getTracer().startSpan(name, options, context);\n }\n\n startActiveSpan unknown>(\n _name: string,\n _options: F | SpanOptions,\n _context?: F | Context,\n _fn?: F\n ): ReturnType {\n const tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n }\n\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n private _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n\n const tracer = this._provider.getDelegateTracer(\n this.name,\n this.version,\n this.options\n );\n\n if (!tracer) {\n return NOOP_TRACER;\n }\n\n this._delegate = tracer;\n return this._delegate;\n }\n}\n\nexport interface TracerDelegator {\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.d.ts deleted file mode 100644 index ee7eafa9..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerProvider } from './tracer_provider'; -import { TracerOptions } from './tracer_options'; -/** - * Tracer provider which provides {@link ProxyTracer}s. - * - * Before a delegate is set, tracers provided are NoOp. - * When a delegate is set, traces are provided from the delegate. - * When a delegate is set after tracers have already been provided, - * all tracers already provided will use the provided delegate implementation. - */ -export declare class ProxyTracerProvider implements TracerProvider { - private _delegate?; - /** - * Get a {@link ProxyTracer} - */ - getTracer(name: string, version?: string, options?: TracerOptions): Tracer; - getDelegate(): TracerProvider; - /** - * Set the delegate tracer provider - */ - setDelegate(delegate: TracerProvider): void; - getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined; -} -//# sourceMappingURL=ProxyTracerProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js b/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js deleted file mode 100644 index b62fb816..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ProxyTracer } from './ProxyTracer'; -import { NoopTracerProvider } from './NoopTracerProvider'; -const NOOP_TRACER_PROVIDER = new NoopTracerProvider(); -/** - * Tracer provider which provides {@link ProxyTracer}s. - * - * Before a delegate is set, tracers provided are NoOp. - * When a delegate is set, traces are provided from the delegate. - * When a delegate is set after tracers have already been provided, - * all tracers already provided will use the provided delegate implementation. - */ -export class ProxyTracerProvider { - /** - * Get a {@link ProxyTracer} - */ - getTracer(name, version, options) { - var _a; - return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options)); - } - getDelegate() { - var _a; - return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER; - } - /** - * Set the delegate tracer provider - */ - setDelegate(delegate) { - this._delegate = delegate; - } - getDelegateTracer(name, version, options) { - var _a; - return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options); - } -} -//# sourceMappingURL=ProxyTracerProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js.map deleted file mode 100644 index fc11723e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/ProxyTracerProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProxyTracerProvider.js","sourceRoot":"","sources":["../../../src/trace/ProxyTracerProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,oBAAoB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IAG9B;;OAEG;IACH,SAAS,CAAC,IAAY,EAAE,OAAgB,EAAE,OAAuB;;QAC/D,OAAO,CACL,MAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,mCAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,WAAW;;QACT,OAAO,MAAA,IAAI,CAAC,SAAS,mCAAI,oBAAoB,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,iBAAiB,CACf,IAAY,EACZ,OAAgB,EAChB,OAAuB;;QAEvB,OAAO,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nexport class ProxyTracerProvider implements TracerProvider {\n private _delegate?: TracerProvider;\n\n /**\n * Get a {@link ProxyTracer}\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n return (\n this.getDelegateTracer(name, version, options) ??\n new ProxyTracer(this, name, version, options)\n );\n }\n\n getDelegate(): TracerProvider {\n return this._delegate ?? NOOP_TRACER_PROVIDER;\n }\n\n /**\n * Set the delegate tracer provider\n */\n setDelegate(delegate: TracerProvider) {\n this._delegate = delegate;\n }\n\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined {\n return this._delegate?.getTracer(name, version, options);\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.d.ts deleted file mode 100644 index c847eaf3..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Context } from '../context/types'; -import { SpanAttributes } from './attributes'; -import { Link } from './link'; -import { SamplingResult } from './SamplingResult'; -import { SpanKind } from './span_kind'; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * This interface represent a sampler. Sampling is a mechanism to control the - * noise and overhead introduced by OpenTelemetry by reducing the number of - * samples of traces collected and sent to the backend. - */ -export interface Sampler { - /** - * Checks whether span needs to be created and tracked. - * - * @param context Parent Context which may contain a span. - * @param traceId of the span to be created. It can be different from the - * traceId in the {@link SpanContext}. Typically in situations when the - * span to be created starts a new trace. - * @param spanName of the span to be created. - * @param spanKind of the span to be created. - * @param attributes Initial set of SpanAttributes for the Span being constructed. - * @param links Collection of links that will be associated with the Span to - * be created. Typically useful for batch operations. - * @returns a {@link SamplingResult}. - */ - shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: SpanAttributes, links: Link[]): SamplingResult; - /** Returns the sampler name or short description with the configuration. */ - toString(): string; -} -//# sourceMappingURL=Sampler.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js b/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js deleted file mode 100644 index 22a60a12..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=Sampler.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js.map deleted file mode 100644 index 66719b11..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/Sampler.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Sampler.js","sourceRoot":"","sources":["../../../src/trace/Sampler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { SpanAttributes } from './attributes';\nimport { Link } from './link';\nimport { SamplingResult } from './SamplingResult';\nimport { SpanKind } from './span_kind';\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * This interface represent a sampler. Sampling is a mechanism to control the\n * noise and overhead introduced by OpenTelemetry by reducing the number of\n * samples of traces collected and sent to the backend.\n */\nexport interface Sampler {\n /**\n * Checks whether span needs to be created and tracked.\n *\n * @param context Parent Context which may contain a span.\n * @param traceId of the span to be created. It can be different from the\n * traceId in the {@link SpanContext}. Typically in situations when the\n * span to be created starts a new trace.\n * @param spanName of the span to be created.\n * @param spanKind of the span to be created.\n * @param attributes Initial set of SpanAttributes for the Span being constructed.\n * @param links Collection of links that will be associated with the Span to\n * be created. Typically useful for batch operations.\n * @returns a {@link SamplingResult}.\n */\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: SpanAttributes,\n links: Link[]\n ): SamplingResult;\n\n /** Returns the sampler name or short description with the configuration. */\n toString(): string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.d.ts deleted file mode 100644 index f2bb495f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { SpanAttributes } from './attributes'; -import { TraceState } from './trace_state'; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling decision that determines how a {@link Span} will be recorded - * and collected. - */ -export declare enum SamplingDecision { - /** - * `Span.isRecording() === false`, span will not be recorded and all events - * and attributes will be dropped. - */ - NOT_RECORD = 0, - /** - * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags} - * MUST NOT be set. - */ - RECORD = 1, - /** - * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags} - * MUST be set. - */ - RECORD_AND_SAMPLED = 2 -} -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling result contains a decision for a {@link Span} and additional - * attributes the sampler would like to added to the Span. - */ -export interface SamplingResult { - /** - * A sampling decision, refer to {@link SamplingDecision} for details. - */ - decision: SamplingDecision; - /** - * The list of attributes returned by SamplingResult MUST be immutable. - * Caller may call {@link Sampler}.shouldSample any number of times and - * can safely cache the returned value. - */ - attributes?: Readonly; - /** - * A {@link TraceState} that will be associated with the {@link Span} through - * the new {@link SpanContext}. Samplers SHOULD return the TraceState from - * the passed-in {@link Context} if they do not intend to change it. Leaving - * the value undefined will also leave the TraceState unchanged. - */ - traceState?: TraceState; -} -//# sourceMappingURL=SamplingResult.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js b/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js deleted file mode 100644 index be657416..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling decision that determines how a {@link Span} will be recorded - * and collected. - */ -export var SamplingDecision; -(function (SamplingDecision) { - /** - * `Span.isRecording() === false`, span will not be recorded and all events - * and attributes will be dropped. - */ - SamplingDecision[SamplingDecision["NOT_RECORD"] = 0] = "NOT_RECORD"; - /** - * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags} - * MUST NOT be set. - */ - SamplingDecision[SamplingDecision["RECORD"] = 1] = "RECORD"; - /** - * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags} - * MUST be set. - */ - SamplingDecision[SamplingDecision["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED"; -})(SamplingDecision || (SamplingDecision = {})); -//# sourceMappingURL=SamplingResult.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js.map deleted file mode 100644 index fd549c85..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/SamplingResult.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SamplingResult.js","sourceRoot":"","sources":["../../../src/trace/SamplingResult.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;;;GAIG;AACH,MAAM,CAAN,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,mEAAU,CAAA;IACV;;;OAGG;IACH,2DAAM,CAAA;IACN;;;OAGG;IACH,mFAAkB,CAAA;AACpB,CAAC,EAhBW,gBAAgB,KAAhB,gBAAgB,QAgB3B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\nimport { TraceState } from './trace_state';\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport enum SamplingDecision {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n NOT_RECORD,\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n RECORD,\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n RECORD_AND_SAMPLED,\n}\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling result contains a decision for a {@link Span} and additional\n * attributes the sampler would like to added to the Span.\n */\nexport interface SamplingResult {\n /**\n * A sampling decision, refer to {@link SamplingDecision} for details.\n */\n decision: SamplingDecision;\n /**\n * The list of attributes returned by SamplingResult MUST be immutable.\n * Caller may call {@link Sampler}.shouldSample any number of times and\n * can safely cache the returned value.\n */\n attributes?: Readonly;\n /**\n * A {@link TraceState} that will be associated with the {@link Span} through\n * the new {@link SpanContext}. Samplers SHOULD return the TraceState from\n * the passed-in {@link Context} if they do not intend to change it. Leaving\n * the value undefined will also leave the TraceState unchanged.\n */\n traceState?: TraceState;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.d.ts deleted file mode 100644 index c8045689..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { TimeInput } from '../common/Time'; -import { SpanAttributes } from './attributes'; -import { Link } from './link'; -import { SpanKind } from './span_kind'; -/** - * Options needed for span creation - */ -export interface SpanOptions { - /** - * The SpanKind of a span - * @default {@link SpanKind.INTERNAL} - */ - kind?: SpanKind; - /** A span's attributes */ - attributes?: SpanAttributes; - /** {@link Link}s span to other spans */ - links?: Link[]; - /** A manually specified start time for the created `Span` object. */ - startTime?: TimeInput; - /** The new span should be a root span. (Ignore parent from context). */ - root?: boolean; -} -//# sourceMappingURL=SpanOptions.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js b/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js deleted file mode 100644 index 06b42b15..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=SpanOptions.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js.map deleted file mode 100644 index 9132a33e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/SpanOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SpanOptions.js","sourceRoot":"","sources":["../../../src/trace/SpanOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { Link } from './link';\nimport { SpanKind } from './span_kind';\n\n/**\n * Options needed for span creation\n */\nexport interface SpanOptions {\n /**\n * The SpanKind of a span\n * @default {@link SpanKind.INTERNAL}\n */\n kind?: SpanKind;\n\n /** A span's attributes */\n attributes?: SpanAttributes;\n\n /** {@link Link}s span to other spans */\n links?: Link[];\n\n /** A manually specified start time for the created `Span` object. */\n startTime?: TimeInput;\n\n /** The new span should be a root span. (Ignore parent from context). */\n root?: boolean;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/attributes.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/attributes.d.ts deleted file mode 100644 index a2a5d2a2..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/attributes.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Attributes, AttributeValue } from '../common/Attributes'; -/** - * @deprecated please use {@link Attributes} - */ -export declare type SpanAttributes = Attributes; -/** - * @deprecated please use {@link AttributeValue} - */ -export declare type SpanAttributeValue = AttributeValue; -//# sourceMappingURL=attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js b/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js deleted file mode 100644 index 6f1b9a3f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=attributes.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js.map deleted file mode 100644 index 2b02be78..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/attributes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/trace/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes, AttributeValue } from '../common/Attributes';\n\n/**\n * @deprecated please use {@link Attributes}\n */\nexport type SpanAttributes = Attributes;\n\n/**\n * @deprecated please use {@link AttributeValue}\n */\nexport type SpanAttributeValue = AttributeValue;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.d.ts deleted file mode 100644 index f35f7942..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanContext } from './span_context'; -/** - * Return the span if one exists - * - * @param context context to get span from - */ -export declare function getSpan(context: Context): Span | undefined; -/** - * Gets the span from the current context, if one exists. - */ -export declare function getActiveSpan(): Span | undefined; -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -export declare function setSpan(context: Context, span: Span): Context; -/** - * Remove current span stored in the context - * - * @param context context to delete span from - */ -export declare function deleteSpan(context: Context): Context; -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -export declare function setSpanContext(context: Context, spanContext: SpanContext): Context; -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -export declare function getSpanContext(context: Context): SpanContext | undefined; -//# sourceMappingURL=context-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js b/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js deleted file mode 100644 index 5d113f13..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { createContextKey } from '../context/context'; -import { NonRecordingSpan } from './NonRecordingSpan'; -import { ContextAPI } from '../api/context'; -/** - * span key - */ -const SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN'); -/** - * Return the span if one exists - * - * @param context context to get span from - */ -export function getSpan(context) { - return context.getValue(SPAN_KEY) || undefined; -} -/** - * Gets the span from the current context, if one exists. - */ -export function getActiveSpan() { - return getSpan(ContextAPI.getInstance().active()); -} -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -export function setSpan(context, span) { - return context.setValue(SPAN_KEY, span); -} -/** - * Remove current span stored in the context - * - * @param context context to delete span from - */ -export function deleteSpan(context) { - return context.deleteValue(SPAN_KEY); -} -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -export function setSpanContext(context, spanContext) { - return setSpan(context, new NonRecordingSpan(spanContext)); -} -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -export function getSpanContext(context) { - var _a; - return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext(); -} -//# sourceMappingURL=context-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js.map deleted file mode 100644 index a8917a48..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/context-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-utils.js","sourceRoot":"","sources":["../../../src/trace/context-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB;IACtC,OAAQ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU,IAAI,SAAS,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB,EAAE,IAAU;IAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,WAAwB;IAExB,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;;IAC7C,OAAO,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAE,WAAW,EAAE,CAAC;AACzC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan(): Span | undefined {\n return getSpan(ContextAPI.getInstance().active());\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.d.ts deleted file mode 100644 index 9ed5ecb7..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { TraceState } from '../trace_state'; -/** - * TraceState must be a class and not a simple object type because of the spec - * requirement (https://www.w3.org/TR/trace-context/#tracestate-field). - * - * Here is the list of allowed mutations: - * - New key-value pair should be added into the beginning of the list - * - The value of any key can be updated. Modified keys MUST be moved to the - * beginning of the list. - */ -export declare class TraceStateImpl implements TraceState { - private _internalState; - constructor(rawTraceState?: string); - set(key: string, value: string): TraceStateImpl; - unset(key: string): TraceStateImpl; - get(key: string): string | undefined; - serialize(): string; - private _parse; - private _keys; - private _clone; -} -//# sourceMappingURL=tracestate-impl.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js b/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js deleted file mode 100644 index 3be2ea3c..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { validateKey, validateValue } from './tracestate-validators'; -const MAX_TRACE_STATE_ITEMS = 32; -const MAX_TRACE_STATE_LEN = 512; -const LIST_MEMBERS_SEPARATOR = ','; -const LIST_MEMBER_KEY_VALUE_SPLITTER = '='; -/** - * TraceState must be a class and not a simple object type because of the spec - * requirement (https://www.w3.org/TR/trace-context/#tracestate-field). - * - * Here is the list of allowed mutations: - * - New key-value pair should be added into the beginning of the list - * - The value of any key can be updated. Modified keys MUST be moved to the - * beginning of the list. - */ -export class TraceStateImpl { - constructor(rawTraceState) { - this._internalState = new Map(); - if (rawTraceState) - this._parse(rawTraceState); - } - set(key, value) { - // TODO: Benchmark the different approaches(map vs list) and - // use the faster one. - const traceState = this._clone(); - if (traceState._internalState.has(key)) { - traceState._internalState.delete(key); - } - traceState._internalState.set(key, value); - return traceState; - } - unset(key) { - const traceState = this._clone(); - traceState._internalState.delete(key); - return traceState; - } - get(key) { - return this._internalState.get(key); - } - serialize() { - return this._keys() - .reduce((agg, key) => { - agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key)); - return agg; - }, []) - .join(LIST_MEMBERS_SEPARATOR); - } - _parse(rawTraceState) { - if (rawTraceState.length > MAX_TRACE_STATE_LEN) - return; - this._internalState = rawTraceState - .split(LIST_MEMBERS_SEPARATOR) - .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning - .reduce((agg, part) => { - const listMember = part.trim(); // Optional Whitespace (OWS) handling - const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER); - if (i !== -1) { - const key = listMember.slice(0, i); - const value = listMember.slice(i + 1, part.length); - if (validateKey(key) && validateValue(value)) { - agg.set(key, value); - } - else { - // TODO: Consider to add warning log - } - } - return agg; - }, new Map()); - // Because of the reverse() requirement, trunc must be done after map is created - if (this._internalState.size > MAX_TRACE_STATE_ITEMS) { - this._internalState = new Map(Array.from(this._internalState.entries()) - .reverse() // Use reverse same as original tracestate parse chain - .slice(0, MAX_TRACE_STATE_ITEMS)); - } - } - _keys() { - return Array.from(this._internalState.keys()).reverse(); - } - _clone() { - const traceState = new TraceStateImpl(); - traceState._internalState = new Map(this._internalState); - return traceState; - } -} -//# sourceMappingURL=tracestate-impl.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js.map deleted file mode 100644 index 90f35e6e..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-impl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracestate-impl.js","sourceRoot":"","sources":["../../../../src/trace/internal/tracestate-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;IAGzB,YAAY,aAAsB;QAF1B,mBAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QAGtD,IAAI,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,4DAA4D;QAC5D,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvC;QACD,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,GAAW;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE;aAChB,MAAM,CAAC,CAAC,GAAa,EAAE,GAAG,EAAE,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;aACL,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,aAAqB;QAClC,IAAI,aAAa,CAAC,MAAM,GAAG,mBAAmB;YAAE,OAAO;QACvD,IAAI,CAAC,cAAc,GAAG,aAAa;aAChC,KAAK,CAAC,sBAAsB,CAAC;aAC7B,OAAO,EAAE,CAAC,2EAA2E;aACrF,MAAM,CAAC,CAAC,GAAwB,EAAE,IAAY,EAAE,EAAE;YACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,qCAAqC;YACrE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACZ,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;oBAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACrB;qBAAM;oBACL,oCAAoC;iBACrC;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAEhB,gFAAgF;QAChF,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,qBAAqB,EAAE;YACpD,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;iBACtC,OAAO,EAAE,CAAC,sDAAsD;iBAChE,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CACnC,CAAC;SACH;IACH,CAAC;IAEO,KAAK;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;IAEO,MAAM;QACZ,MAAM,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,UAAU,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { validateKey, validateValue } from './tracestate-validators';\n\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nexport class TraceStateImpl implements TraceState {\n private _internalState: Map = new Map();\n\n constructor(rawTraceState?: string) {\n if (rawTraceState) this._parse(rawTraceState);\n }\n\n set(key: string, value: string): TraceStateImpl {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n\n unset(key: string): TraceStateImpl {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n\n get(key: string): string | undefined {\n return this._internalState.get(key);\n }\n\n serialize(): string {\n return this._keys()\n .reduce((agg: string[], key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n\n private _parse(rawTraceState: string) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN) return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg: Map, part: string) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n } else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(\n Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS)\n );\n }\n }\n\n private _keys(): string[] {\n return Array.from(this._internalState.keys()).reverse();\n }\n\n private _clone(): TraceStateImpl {\n const traceState = new TraceStateImpl();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.d.ts deleted file mode 100644 index 4917f99d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Key is opaque string up to 256 characters printable. It MUST begin with a - * lowercase letter, and can only contain lowercase letters a-z, digits 0-9, - * underscores _, dashes -, asterisks *, and forward slashes /. - * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the - * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key. - * see https://www.w3.org/TR/trace-context/#key - */ -export declare function validateKey(key: string): boolean; -/** - * Value is opaque string up to 256 characters printable ASCII RFC0020 - * characters (i.e., the range 0x20 to 0x7E) except comma , and =. - */ -export declare function validateValue(value: string): boolean; -//# sourceMappingURL=tracestate-validators.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js b/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js deleted file mode 100644 index 3a4f95fb..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]'; -const VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`; -const VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`; -const VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`); -const VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/; -const INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/; -/** - * Key is opaque string up to 256 characters printable. It MUST begin with a - * lowercase letter, and can only contain lowercase letters a-z, digits 0-9, - * underscores _, dashes -, asterisks *, and forward slashes /. - * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the - * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key. - * see https://www.w3.org/TR/trace-context/#key - */ -export function validateKey(key) { - return VALID_KEY_REGEX.test(key); -} -/** - * Value is opaque string up to 256 characters printable ASCII RFC0020 - * characters (i.e., the range 0x20 to 0x7E) except comma , and =. - */ -export function validateValue(value) { - return (VALID_VALUE_BASE_REGEX.test(value) && - !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)); -} -//# sourceMappingURL=tracestate-validators.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js.map deleted file mode 100644 index 20d02b89..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/tracestate-validators.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracestate-validators.js","sourceRoot":"","sources":["../../../../src/trace/internal/tracestate-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAC5C,MAAM,SAAS,GAAG,QAAQ,oBAAoB,SAAS,CAAC;AACxD,MAAM,gBAAgB,GAAG,WAAW,oBAAoB,gBAAgB,oBAAoB,QAAQ,CAAC;AACrG,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,OAAO,SAAS,IAAI,gBAAgB,IAAI,CAAC,CAAC;AAC7E,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AACrD,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAC7C,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key: string): boolean {\n return VALID_KEY_REGEX.test(key);\n}\n\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value: string): boolean {\n return (\n VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)\n );\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.d.ts deleted file mode 100644 index e3b51fe4..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { TraceState } from '../trace_state'; -export declare function createTraceState(rawTraceState?: string): TraceState; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js b/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js deleted file mode 100644 index feea4691..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { TraceStateImpl } from './tracestate-impl'; -export function createTraceState(rawTraceState) { - return new TraceStateImpl(rawTraceState); -} -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js.map deleted file mode 100644 index 91ba3d14..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/internal/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/trace/internal/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,gBAAgB,CAAC,aAAsB;IACrD,OAAO,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { TraceStateImpl } from './tracestate-impl';\n\nexport function createTraceState(rawTraceState?: string): TraceState {\n return new TraceStateImpl(rawTraceState);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.d.ts deleted file mode 100644 index e32dab9d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { SpanContext } from './span_context'; -export declare const INVALID_SPANID = "0000000000000000"; -export declare const INVALID_TRACEID = "00000000000000000000000000000000"; -export declare const INVALID_SPAN_CONTEXT: SpanContext; -//# sourceMappingURL=invalid-span-constants.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js b/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js deleted file mode 100644 index bd912f4d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { TraceFlags } from './trace_flags'; -export const INVALID_SPANID = '0000000000000000'; -export const INVALID_TRACEID = '00000000000000000000000000000000'; -export const INVALID_SPAN_CONTEXT = { - traceId: INVALID_TRACEID, - spanId: INVALID_SPANID, - traceFlags: TraceFlags.NONE, -}; -//# sourceMappingURL=invalid-span-constants.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js.map deleted file mode 100644 index 9c337c4f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/invalid-span-constants.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"invalid-span-constants.js","sourceRoot":"","sources":["../../../src/trace/invalid-span-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,UAAU,CAAC,IAAI;CAC5B,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanContext } from './span_context';\nimport { TraceFlags } from './trace_flags';\n\nexport const INVALID_SPANID = '0000000000000000';\nexport const INVALID_TRACEID = '00000000000000000000000000000000';\nexport const INVALID_SPAN_CONTEXT: SpanContext = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/link.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/link.d.ts deleted file mode 100644 index 8fc01062..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/link.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { SpanAttributes } from './attributes'; -import { SpanContext } from './span_context'; -/** - * A pointer from the current {@link Span} to another span in the same trace or - * in a different trace. - * Few examples of Link usage. - * 1. Batch Processing: A batch of elements may contain elements associated - * with one or more traces/spans. Since there can only be one parent - * SpanContext, Link is used to keep reference to SpanContext of all - * elements in the batch. - * 2. Public Endpoint: A SpanContext in incoming client request on a public - * endpoint is untrusted from service provider perspective. In such case it - * is advisable to start a new trace with appropriate sampling decision. - * However, it is desirable to associate incoming SpanContext to new trace - * initiated on service provider side so two traces (from Client and from - * Service Provider) can be correlated. - */ -export interface Link { - /** The {@link SpanContext} of a linked span. */ - context: SpanContext; - /** A set of {@link SpanAttributes} on the link. */ - attributes?: SpanAttributes; - /** Count of attributes of the link that were dropped due to collection limits */ - droppedAttributesCount?: number; -} -//# sourceMappingURL=link.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/link.js b/node_modules/@opentelemetry/api/build/esnext/trace/link.js deleted file mode 100644 index 7c8accbe..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/link.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=link.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/link.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/link.js.map deleted file mode 100644 index c10b7142..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/link.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/trace/link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\nimport { SpanContext } from './span_context';\n\n/**\n * A pointer from the current {@link Span} to another span in the same trace or\n * in a different trace.\n * Few examples of Link usage.\n * 1. Batch Processing: A batch of elements may contain elements associated\n * with one or more traces/spans. Since there can only be one parent\n * SpanContext, Link is used to keep reference to SpanContext of all\n * elements in the batch.\n * 2. Public Endpoint: A SpanContext in incoming client request on a public\n * endpoint is untrusted from service provider perspective. In such case it\n * is advisable to start a new trace with appropriate sampling decision.\n * However, it is desirable to associate incoming SpanContext to new trace\n * initiated on service provider side so two traces (from Client and from\n * Service Provider) can be correlated.\n */\nexport interface Link {\n /** The {@link SpanContext} of a linked span. */\n context: SpanContext;\n /** A set of {@link SpanAttributes} on the link. */\n attributes?: SpanAttributes;\n /** Count of attributes of the link that were dropped due to collection limits */\n droppedAttributesCount?: number;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/span.d.ts deleted file mode 100644 index 28c6442d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span.d.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { Exception } from '../common/Exception'; -import { TimeInput } from '../common/Time'; -import { SpanAttributes, SpanAttributeValue } from './attributes'; -import { SpanContext } from './span_context'; -import { SpanStatus } from './status'; -import { Link } from './link'; -/** - * An interface that represents a span. A span represents a single operation - * within a trace. Examples of span might include remote procedure calls or a - * in-process function calls to sub-components. A Trace has a single, top-level - * "root" Span that in turn may have zero or more child Spans, which in turn - * may have children. - * - * Spans are created by the {@link Tracer.startSpan} method. - */ -export interface Span { - /** - * Returns the {@link SpanContext} object associated with this Span. - * - * Get an immutable, serializable identifier for this span that can be used - * to create new child spans. Returned SpanContext is usable even after the - * span ends. - * - * @returns the SpanContext object associated with this Span. - */ - spanContext(): SpanContext; - /** - * Sets an attribute to the span. - * - * Sets a single Attribute with the key and value passed as arguments. - * - * @param key the key for this attribute. - * @param value the value for this attribute. Setting a value null or - * undefined is invalid and will result in undefined behavior. - */ - setAttribute(key: string, value: SpanAttributeValue): this; - /** - * Sets attributes to the span. - * - * @param attributes the attributes that will be added. - * null or undefined attribute values - * are invalid and will result in undefined behavior. - */ - setAttributes(attributes: SpanAttributes): this; - /** - * Adds an event to the Span. - * - * @param name the name of the event. - * @param [attributesOrStartTime] the attributes that will be added; these are - * associated with this event. Can be also a start time - * if type is {@type TimeInput} and 3rd param is undefined - * @param [startTime] start time of the event. - */ - addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this; - /** - * Adds a single link to the span. - * - * Links added after the creation will not affect the sampling decision. - * It is preferred span links be added at span creation. - * - * @param link the link to add. - */ - addLink(link: Link): this; - /** - * Adds multiple links to the span. - * - * Links added after the creation will not affect the sampling decision. - * It is preferred span links be added at span creation. - * - * @param links the links to add. - */ - addLinks(links: Link[]): this; - /** - * Sets a status to the span. If used, this will override the default Span - * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value - * of previous calls to SetStatus on the Span. - * - * @param status the SpanStatus to set. - */ - setStatus(status: SpanStatus): this; - /** - * Updates the Span name. - * - * This will override the name provided via {@link Tracer.startSpan}. - * - * Upon this update, any sampling behavior based on Span name will depend on - * the implementation. - * - * @param name the Span name. - */ - updateName(name: string): this; - /** - * Marks the end of Span execution. - * - * Call to End of a Span MUST not have any effects on child spans. Those may - * still be running and can be ended later. - * - * Do not return `this`. The Span generally should not be used after it - * is ended so chaining is not desired in this context. - * - * @param [endTime] the time to set as Span's end time. If not provided, - * use the current time as the span's end time. - */ - end(endTime?: TimeInput): void; - /** - * Returns the flag whether this span will be recorded. - * - * @returns true if this Span is active and recording information like events - * with the `AddEvent` operation and attributes using `setAttributes`. - */ - isRecording(): boolean; - /** - * Sets exception as a span event - * @param exception the exception the only accepted values are string or Error - * @param [time] the time to set as Span's event time. If not provided, - * use the current time. - */ - recordException(exception: Exception, time?: TimeInput): void; -} -//# sourceMappingURL=span.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span.js b/node_modules/@opentelemetry/api/build/esnext/trace/span.js deleted file mode 100644 index f41c7f6f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=span.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/span.js.map deleted file mode 100644 index f9a1e32f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../src/trace/span.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes, SpanAttributeValue } from './attributes';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * An interface that represents a span. A span represents a single operation\n * within a trace. Examples of span might include remote procedure calls or a\n * in-process function calls to sub-components. A Trace has a single, top-level\n * \"root\" Span that in turn may have zero or more child Spans, which in turn\n * may have children.\n *\n * Spans are created by the {@link Tracer.startSpan} method.\n */\nexport interface Span {\n /**\n * Returns the {@link SpanContext} object associated with this Span.\n *\n * Get an immutable, serializable identifier for this span that can be used\n * to create new child spans. Returned SpanContext is usable even after the\n * span ends.\n *\n * @returns the SpanContext object associated with this Span.\n */\n spanContext(): SpanContext;\n\n /**\n * Sets an attribute to the span.\n *\n * Sets a single Attribute with the key and value passed as arguments.\n *\n * @param key the key for this attribute.\n * @param value the value for this attribute. Setting a value null or\n * undefined is invalid and will result in undefined behavior.\n */\n setAttribute(key: string, value: SpanAttributeValue): this;\n\n /**\n * Sets attributes to the span.\n *\n * @param attributes the attributes that will be added.\n * null or undefined attribute values\n * are invalid and will result in undefined behavior.\n */\n setAttributes(attributes: SpanAttributes): this;\n\n /**\n * Adds an event to the Span.\n *\n * @param name the name of the event.\n * @param [attributesOrStartTime] the attributes that will be added; these are\n * associated with this event. Can be also a start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [startTime] start time of the event.\n */\n addEvent(\n name: string,\n attributesOrStartTime?: SpanAttributes | TimeInput,\n startTime?: TimeInput\n ): this;\n\n /**\n * Adds a single link to the span.\n *\n * Links added after the creation will not affect the sampling decision.\n * It is preferred span links be added at span creation.\n *\n * @param link the link to add.\n */\n addLink(link: Link): this;\n\n /**\n * Adds multiple links to the span.\n *\n * Links added after the creation will not affect the sampling decision.\n * It is preferred span links be added at span creation.\n *\n * @param links the links to add.\n */\n addLinks(links: Link[]): this;\n\n /**\n * Sets a status to the span. If used, this will override the default Span\n * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value\n * of previous calls to SetStatus on the Span.\n *\n * @param status the SpanStatus to set.\n */\n setStatus(status: SpanStatus): this;\n\n /**\n * Updates the Span name.\n *\n * This will override the name provided via {@link Tracer.startSpan}.\n *\n * Upon this update, any sampling behavior based on Span name will depend on\n * the implementation.\n *\n * @param name the Span name.\n */\n updateName(name: string): this;\n\n /**\n * Marks the end of Span execution.\n *\n * Call to End of a Span MUST not have any effects on child spans. Those may\n * still be running and can be ended later.\n *\n * Do not return `this`. The Span generally should not be used after it\n * is ended so chaining is not desired in this context.\n *\n * @param [endTime] the time to set as Span's end time. If not provided,\n * use the current time as the span's end time.\n */\n end(endTime?: TimeInput): void;\n\n /**\n * Returns the flag whether this span will be recorded.\n *\n * @returns true if this Span is active and recording information like events\n * with the `AddEvent` operation and attributes using `setAttributes`.\n */\n isRecording(): boolean;\n\n /**\n * Sets exception as a span event\n * @param exception the exception the only accepted values are string or Error\n * @param [time] the time to set as Span's event time. If not provided,\n * use the current time.\n */\n recordException(exception: Exception, time?: TimeInput): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span_context.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/span_context.d.ts deleted file mode 100644 index f30933a1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span_context.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { TraceState } from './trace_state'; -/** - * A SpanContext represents the portion of a {@link Span} which must be - * serialized and propagated along side of a {@link Baggage}. - */ -export interface SpanContext { - /** - * The ID of the trace that this span belongs to. It is worldwide unique - * with practically sufficient probability by being made as 16 randomly - * generated bytes, encoded as a 32 lowercase hex characters corresponding to - * 128 bits. - */ - traceId: string; - /** - * The ID of the Span. It is globally unique with practically sufficient - * probability by being made as 8 randomly generated bytes, encoded as a 16 - * lowercase hex characters corresponding to 64 bits. - */ - spanId: string; - /** - * Only true if the SpanContext was propagated from a remote parent. - */ - isRemote?: boolean; - /** - * Trace flags to propagate. - * - * It is represented as 1 byte (bitmap). Bit to represent whether trace is - * sampled or not. When set, the least significant bit documents that the - * caller may have recorded trace data. A caller who does not record trace - * data out-of-band leaves this flag unset. - * - * see {@link TraceFlags} for valid flag values. - */ - traceFlags: number; - /** - * Tracing-system-specific info to propagate. - * - * The tracestate field value is a `list` as defined below. The `list` is a - * series of `list-members` separated by commas `,`, and a list-member is a - * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs - * surrounding `list-members` are ignored. There can be a maximum of 32 - * `list-members` in a `list`. - * More Info: https://www.w3.org/TR/trace-context/#tracestate-field - * - * Examples: - * Single tracing system (generic format): - * tracestate: rojo=00f067aa0ba902b7 - * Multiple tracing systems (with different formatting): - * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE - */ - traceState?: TraceState; -} -//# sourceMappingURL=span_context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js b/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js deleted file mode 100644 index 1bb88b0d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=span_context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js.map deleted file mode 100644 index dbf0bfe5..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span_context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span_context.js","sourceRoot":"","sources":["../../../src/trace/span_context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from './trace_state';\n\n/**\n * A SpanContext represents the portion of a {@link Span} which must be\n * serialized and propagated along side of a {@link Baggage}.\n */\nexport interface SpanContext {\n /**\n * The ID of the trace that this span belongs to. It is worldwide unique\n * with practically sufficient probability by being made as 16 randomly\n * generated bytes, encoded as a 32 lowercase hex characters corresponding to\n * 128 bits.\n */\n traceId: string;\n /**\n * The ID of the Span. It is globally unique with practically sufficient\n * probability by being made as 8 randomly generated bytes, encoded as a 16\n * lowercase hex characters corresponding to 64 bits.\n */\n spanId: string;\n /**\n * Only true if the SpanContext was propagated from a remote parent.\n */\n isRemote?: boolean;\n /**\n * Trace flags to propagate.\n *\n * It is represented as 1 byte (bitmap). Bit to represent whether trace is\n * sampled or not. When set, the least significant bit documents that the\n * caller may have recorded trace data. A caller who does not record trace\n * data out-of-band leaves this flag unset.\n *\n * see {@link TraceFlags} for valid flag values.\n */\n traceFlags: number;\n /**\n * Tracing-system-specific info to propagate.\n *\n * The tracestate field value is a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n * More Info: https://www.w3.org/TR/trace-context/#tracestate-field\n *\n * Examples:\n * Single tracing system (generic format):\n * tracestate: rojo=00f067aa0ba902b7\n * Multiple tracing systems (with different formatting):\n * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE\n */\n traceState?: TraceState;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.d.ts deleted file mode 100644 index a89846f6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -export declare enum SpanKind { - /** Default value. Indicates that the span is used internally. */ - INTERNAL = 0, - /** - * Indicates that the span covers server-side handling of an RPC or other - * remote request. - */ - SERVER = 1, - /** - * Indicates that the span covers the client-side wrapper around an RPC or - * other remote request. - */ - CLIENT = 2, - /** - * Indicates that the span describes producer sending a message to a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - PRODUCER = 3, - /** - * Indicates that the span describes consumer receiving a message from a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - CONSUMER = 4 -} -//# sourceMappingURL=span_kind.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js b/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js deleted file mode 100644 index 1119df92..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export var SpanKind; -(function (SpanKind) { - /** Default value. Indicates that the span is used internally. */ - SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL"; - /** - * Indicates that the span covers server-side handling of an RPC or other - * remote request. - */ - SpanKind[SpanKind["SERVER"] = 1] = "SERVER"; - /** - * Indicates that the span covers the client-side wrapper around an RPC or - * other remote request. - */ - SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT"; - /** - * Indicates that the span describes producer sending a message to a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER"; - /** - * Indicates that the span describes consumer receiving a message from a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER"; -})(SpanKind || (SpanKind = {})); -//# sourceMappingURL=span_kind.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js.map deleted file mode 100644 index deb6be73..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/span_kind.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span_kind.js","sourceRoot":"","sources":["../../../src/trace/span_kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAN,IAAY,QA6BX;AA7BD,WAAY,QAAQ;IAClB,iEAAiE;IACjE,+CAAY,CAAA;IAEZ;;;OAGG;IACH,2CAAU,CAAA;IAEV;;;OAGG;IACH,2CAAU,CAAA;IAEV;;;;OAIG;IACH,+CAAY,CAAA;IAEZ;;;;OAIG;IACH,+CAAY,CAAA;AACd,CAAC,EA7BW,QAAQ,KAAR,QAAQ,QA6BnB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum SpanKind {\n /** Default value. Indicates that the span is used internally. */\n INTERNAL = 0,\n\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SERVER = 1,\n\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n CLIENT = 2,\n\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n PRODUCER = 3,\n\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n CONSUMER = 4,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.d.ts deleted file mode 100644 index f1911114..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Span } from './span'; -import { SpanContext } from './span_context'; -export declare function isValidTraceId(traceId: string): boolean; -export declare function isValidSpanId(spanId: string): boolean; -/** - * Returns true if this {@link SpanContext} is valid. - * @return true if this {@link SpanContext} is valid. - */ -export declare function isSpanContextValid(spanContext: SpanContext): boolean; -/** - * Wrap the given {@link SpanContext} in a new non-recording {@link Span} - * - * @param spanContext span context to be wrapped - * @returns a new non-recording {@link Span} with the provided context - */ -export declare function wrapSpanContext(spanContext: SpanContext): Span; -//# sourceMappingURL=spancontext-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js b/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js deleted file mode 100644 index a51187ae..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants'; -import { NonRecordingSpan } from './NonRecordingSpan'; -const VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; -const VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; -export function isValidTraceId(traceId) { - return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID; -} -export function isValidSpanId(spanId) { - return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID; -} -/** - * Returns true if this {@link SpanContext} is valid. - * @return true if this {@link SpanContext} is valid. - */ -export function isSpanContextValid(spanContext) { - return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)); -} -/** - * Wrap the given {@link SpanContext} in a new non-recording {@link Span} - * - * @param spanContext span context to be wrapped - * @returns a new non-recording {@link Span} with the provided context - */ -export function wrapSpanContext(spanContext) { - return new NonRecordingSpan(spanContext); -} -//# sourceMappingURL=spancontext-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js.map deleted file mode 100644 index 9730fc70..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/spancontext-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"spancontext-utils.js","sourceRoot":"","sources":["../../../src/trace/spancontext-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,eAAe,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,cAAc,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAwB;IACzD,OAAO,CACL,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CACzE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\n\nconst VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nconst VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\n\nexport function isValidTraceId(traceId: string): boolean {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\n\nexport function isValidSpanId(spanId: string): boolean {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext: SpanContext): boolean {\n return (\n isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)\n );\n}\n\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext: SpanContext): Span {\n return new NonRecordingSpan(spanContext);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/status.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/status.d.ts deleted file mode 100644 index ab19a68f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/status.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface SpanStatus { - /** The status code of this message. */ - code: SpanStatusCode; - /** A developer-facing error message. */ - message?: string; -} -/** - * An enumeration of status codes. - */ -export declare enum SpanStatusCode { - /** - * The default status. - */ - UNSET = 0, - /** - * The operation has been validated by an Application developer or - * Operator to have completed successfully. - */ - OK = 1, - /** - * The operation contains an error. - */ - ERROR = 2 -} -//# sourceMappingURL=status.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/status.js b/node_modules/@opentelemetry/api/build/esnext/trace/status.js deleted file mode 100644 index 5ee55e42..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/status.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * An enumeration of status codes. - */ -export var SpanStatusCode; -(function (SpanStatusCode) { - /** - * The default status. - */ - SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET"; - /** - * The operation has been validated by an Application developer or - * Operator to have completed successfully. - */ - SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK"; - /** - * The operation contains an error. - */ - SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR"; -})(SpanStatusCode || (SpanStatusCode = {})); -//# sourceMappingURL=status.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/status.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/status.js.map deleted file mode 100644 index af7e7d7f..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/status.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/trace/status.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,CAAN,IAAY,cAcX;AAdD,WAAY,cAAc;IACxB;;OAEG;IACH,qDAAS,CAAA;IACT;;;OAGG;IACH,+CAAM,CAAA;IACN;;OAEG;IACH,qDAAS,CAAA;AACX,CAAC,EAdW,cAAc,KAAd,cAAc,QAczB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * An enumeration of status codes.\n */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.d.ts deleted file mode 100644 index 11288ba9..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare enum TraceFlags { - /** Represents no flag set. */ - NONE = 0, - /** Bit to represent whether trace is sampled in trace flags. */ - SAMPLED = 1 -} -//# sourceMappingURL=trace_flags.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js b/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js deleted file mode 100644 index 8a7b0007..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export var TraceFlags; -(function (TraceFlags) { - /** Represents no flag set. */ - TraceFlags[TraceFlags["NONE"] = 0] = "NONE"; - /** Bit to represent whether trace is sampled in trace flags. */ - TraceFlags[TraceFlags["SAMPLED"] = 1] = "SAMPLED"; -})(TraceFlags || (TraceFlags = {})); -//# sourceMappingURL=trace_flags.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js.map deleted file mode 100644 index 2ea8680d..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/trace_flags.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_flags.js","sourceRoot":"","sources":["../../../src/trace/trace_flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,8BAA8B;IAC9B,2CAAU,CAAA;IACV,gEAAgE;IAChE,iDAAkB,CAAA;AACpB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum TraceFlags {\n /** Represents no flag set. */\n NONE = 0x0,\n /** Bit to represent whether trace is sampled in trace flags. */\n SAMPLED = 0x1 << 0,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.d.ts deleted file mode 100644 index f275b8be..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -export interface TraceState { - /** - * Create a new TraceState which inherits from this TraceState and has the - * given key set. - * The new entry will always be added in the front of the list of states. - * - * @param key key of the TraceState entry. - * @param value value of the TraceState entry. - */ - set(key: string, value: string): TraceState; - /** - * Return a new TraceState which inherits from this TraceState but does not - * contain the given key. - * - * @param key the key for the TraceState entry to be removed. - */ - unset(key: string): TraceState; - /** - * Returns the value to which the specified key is mapped, or `undefined` if - * this map contains no mapping for the key. - * - * @param key with which the specified value is to be associated. - * @returns the value to which the specified key is mapped, or `undefined` if - * this map contains no mapping for the key. - */ - get(key: string): string | undefined; - /** - * Serializes the TraceState to a `list` as defined below. The `list` is a - * series of `list-members` separated by commas `,`, and a list-member is a - * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs - * surrounding `list-members` are ignored. There can be a maximum of 32 - * `list-members` in a `list`. - * - * @returns the serialized string. - */ - serialize(): string; -} -//# sourceMappingURL=trace_state.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js b/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js deleted file mode 100644 index a6c368f8..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=trace_state.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js.map deleted file mode 100644 index 64a3d7a2..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/trace_state.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_state.js","sourceRoot":"","sources":["../../../src/trace/trace_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface TraceState {\n /**\n * Create a new TraceState which inherits from this TraceState and has the\n * given key set.\n * The new entry will always be added in the front of the list of states.\n *\n * @param key key of the TraceState entry.\n * @param value value of the TraceState entry.\n */\n set(key: string, value: string): TraceState;\n\n /**\n * Return a new TraceState which inherits from this TraceState but does not\n * contain the given key.\n *\n * @param key the key for the TraceState entry to be removed.\n */\n unset(key: string): TraceState;\n\n /**\n * Returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n *\n * @param key with which the specified value is to be associated.\n * @returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n */\n get(key: string): string | undefined;\n\n // TODO: Consider to add support for merging an object as well by also\n // accepting a single internalTraceState argument similar to the constructor.\n\n /**\n * Serializes the TraceState to a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n *\n * @returns the serialized string.\n */\n serialize(): string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/tracer.d.ts deleted file mode 100644 index 25090899..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer.d.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -/** - * Tracer provides an interface for creating {@link Span}s. - */ -export interface Tracer { - /** - * Starts a new {@link Span}. Start the span without setting it on context. - * - * This method do NOT modify the current Context. - * - * @param name The name of the span - * @param [options] SpanOptions used for span creation - * @param [context] Context to use to extract parent - * @returns Span The newly created span - * @example - * const span = tracer.startSpan('op'); - * span.setAttribute('key', 'value'); - * span.end(); - */ - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - /** - * Starts a new {@link Span} and calls the given function passing it the - * created span as first argument. - * Additionally the new span gets set in context and this context is activated - * for the duration of the function call. - * - * @param name The name of the span - * @param [options] SpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns return value of fn - * @example - * const something = tracer.startActiveSpan('op', span => { - * try { - * do some work - * span.setStatus({code: SpanStatusCode.OK}); - * return something; - * } catch (err) { - * span.setStatus({ - * code: SpanStatusCode.ERROR, - * message: err.message, - * }); - * throw err; - * } finally { - * span.end(); - * } - * }); - * - * @example - * const span = tracer.startActiveSpan('op', span => { - * try { - * do some work - * return span; - * } catch (err) { - * span.setStatus({ - * code: SpanStatusCode.ERROR, - * message: err.message, - * }); - * throw err; - * } - * }); - * do some more work - * span.end(); - */ - startActiveSpan unknown>(name: string, fn: F): ReturnType; - startActiveSpan unknown>(name: string, options: SpanOptions, fn: F): ReturnType; - startActiveSpan unknown>(name: string, options: SpanOptions, context: Context, fn: F): ReturnType; -} -//# sourceMappingURL=tracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js b/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js deleted file mode 100644 index ad066dc3..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=tracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js.map deleted file mode 100644 index 77f6ae93..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/trace/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\n\n/**\n * Tracer provides an interface for creating {@link Span}s.\n */\nexport interface Tracer {\n /**\n * Starts a new {@link Span}. Start the span without setting it on context.\n *\n * This method do NOT modify the current Context.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @returns Span The newly created span\n * @example\n * const span = tracer.startSpan('op');\n * span.setAttribute('key', 'value');\n * span.end();\n */\n startSpan(name: string, options?: SpanOptions, context?: Context): Span;\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally the new span gets set in context and this context is activated\n * for the duration of the function call.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * span.setStatus({code: SpanStatusCode.OK});\n * return something;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * } finally {\n * span.end();\n * }\n * });\n *\n * @example\n * const span = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * return span;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * }\n * });\n * do some more work\n * span.end();\n */\n startActiveSpan unknown>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan unknown>(\n name: string,\n options: SpanOptions,\n fn: F\n ): ReturnType;\n startActiveSpan unknown>(\n name: string,\n options: SpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.d.ts deleted file mode 100644 index f3bbccfc..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * An interface describes additional metadata of a tracer. - */ -export interface TracerOptions { - /** - * The schemaUrl of the tracer or instrumentation library - */ - schemaUrl?: string; -} -//# sourceMappingURL=tracer_options.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js b/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js deleted file mode 100644 index 470a3a73..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=tracer_options.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js.map deleted file mode 100644 index 70365afc..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_options.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer_options.js","sourceRoot":"","sources":["../../../src/trace/tracer_options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An interface describes additional metadata of a tracer.\n */\nexport interface TracerOptions {\n /**\n * The schemaUrl of the tracer or instrumentation library\n */\n schemaUrl?: string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.d.ts b/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.d.ts deleted file mode 100644 index 9b2f7a95..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -/** - * A registry for creating named {@link Tracer}s. - */ -export interface TracerProvider { - /** - * Returns a Tracer, creating one if one with the given name and version is - * not already created. - * - * This function may return different Tracer types (e.g. - * {@link NoopTracerProvider} vs. a functional tracer). - * - * @param name The name of the tracer or instrumentation library. - * @param version The version of the tracer or instrumentation library. - * @param options The options of the tracer or instrumentation library. - * @returns Tracer A Tracer with the given name and version - */ - getTracer(name: string, version?: string, options?: TracerOptions): Tracer; -} -//# sourceMappingURL=tracer_provider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js b/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js deleted file mode 100644 index adf432a6..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=tracer_provider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js.map b/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js.map deleted file mode 100644 index bfc1cbd1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/trace/tracer_provider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer_provider.js","sourceRoot":"","sources":["../../../src/trace/tracer_provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\n/**\n * A registry for creating named {@link Tracer}s.\n */\nexport interface TracerProvider {\n /**\n * Returns a Tracer, creating one if one with the given name and version is\n * not already created.\n *\n * This function may return different Tracer types (e.g.\n * {@link NoopTracerProvider} vs. a functional tracer).\n *\n * @param name The name of the tracer or instrumentation library.\n * @param version The version of the tracer or instrumentation library.\n * @param options The options of the tracer or instrumentation library.\n * @returns Tracer A Tracer with the given name and version\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/version.d.ts b/node_modules/@opentelemetry/api/build/esnext/version.d.ts deleted file mode 100644 index 40f03659..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/version.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const VERSION = "1.9.0"; -//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/version.js b/node_modules/@opentelemetry/api/build/esnext/version.js deleted file mode 100644 index 2a86ecf1..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/version.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// this is autogenerated file, see scripts/version-update.js -export const VERSION = '1.9.0'; -//# sourceMappingURL=version.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/esnext/version.js.map b/node_modules/@opentelemetry/api/build/esnext/version.js.map deleted file mode 100644 index c5ea9024..00000000 --- a/node_modules/@opentelemetry/api/build/esnext/version.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.0';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/context.d.ts b/node_modules/@opentelemetry/api/build/src/api/context.d.ts deleted file mode 100644 index 61caee8d..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/context.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Context, ContextManager } from '../context/types'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Context API - */ -export declare class ContextAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Context API */ - static getInstance(): ContextAPI; - /** - * Set the current context manager. - * - * @returns true if the context manager was successfully registered, else false - */ - setGlobalContextManager(contextManager: ContextManager): boolean; - /** - * Get the currently active context - */ - active(): Context; - /** - * Execute a function with an active context - * - * @param context context to be active during function execution - * @param fn function to execute in a context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with ReturnType>(context: Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - /** - * Bind a context to a target function or event emitter - * - * @param context context to bind to the event emitter or function. Defaults to the currently active context - * @param target function or event emitter to bind - */ - bind(context: Context, target: T): T; - private _getContextManager; - /** Disable and remove the global context manager */ - disable(): void; -} -//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/context.js b/node_modules/@opentelemetry/api/build/src/api/context.js deleted file mode 100644 index 8af551f8..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/context.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ContextAPI = void 0; -const NoopContextManager_1 = require("../context/NoopContextManager"); -const global_utils_1 = require("../internal/global-utils"); -const diag_1 = require("./diag"); -const API_NAME = 'context'; -const NOOP_CONTEXT_MANAGER = new NoopContextManager_1.NoopContextManager(); -/** - * Singleton object which represents the entry point to the OpenTelemetry Context API - */ -class ContextAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { } - /** Get the singleton instance of the Context API */ - static getInstance() { - if (!this._instance) { - this._instance = new ContextAPI(); - } - return this._instance; - } - /** - * Set the current context manager. - * - * @returns true if the context manager was successfully registered, else false - */ - setGlobalContextManager(contextManager) { - return (0, global_utils_1.registerGlobal)(API_NAME, contextManager, diag_1.DiagAPI.instance()); - } - /** - * Get the currently active context - */ - active() { - return this._getContextManager().active(); - } - /** - * Execute a function with an active context - * - * @param context context to be active during function execution - * @param fn function to execute in a context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with(context, fn, thisArg, ...args) { - return this._getContextManager().with(context, fn, thisArg, ...args); - } - /** - * Bind a context to a target function or event emitter - * - * @param context context to bind to the event emitter or function. Defaults to the currently active context - * @param target function or event emitter to bind - */ - bind(context, target) { - return this._getContextManager().bind(context, target); - } - _getContextManager() { - return (0, global_utils_1.getGlobal)(API_NAME) || NOOP_CONTEXT_MANAGER; - } - /** Disable and remove the global context manager */ - disable() { - this._getContextManager().disable(); - (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance()); - } -} -exports.ContextAPI = ContextAPI; -//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/context.js.map b/node_modules/@opentelemetry/api/build/src/api/context.js.map deleted file mode 100644 index 78c56c12..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sEAAmE;AAEnE,2DAIkC;AAClC,iCAAiC;AAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,oBAAoB,GAAG,IAAI,uCAAkB,EAAE,CAAC;AAEtD;;GAEG;AACH,MAAa,UAAU;IAGrB,+FAA+F;IAC/F,gBAAuB,CAAC;IAExB,oDAAoD;IAC7C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,uBAAuB,CAAC,cAA8B;QAC3D,OAAO,IAAA,6BAAc,EAAC,QAAQ,EAAE,cAAc,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACI,IAAI,CACT,OAAgB,EAChB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAI,OAAgB,EAAE,MAAS;QACxC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAA,wBAAS,EAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IACrD,CAAC;IAED,oDAAoD;IAC7C,OAAO;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,IAAA,+BAAgB,EAAC,QAAQ,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAnED,gCAmEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { Context, ContextManager } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'context';\nconst NOOP_CONTEXT_MANAGER = new NoopContextManager();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport class ContextAPI {\n private static _instance?: ContextAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Context API */\n public static getInstance(): ContextAPI {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n public setGlobalContextManager(contextManager: ContextManager): boolean {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n }\n\n /**\n * Get the currently active context\n */\n public active(): Context {\n return this._getContextManager().active();\n }\n\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return this._getContextManager().with(context, fn, thisArg, ...args);\n }\n\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n public bind(context: Context, target: T): T {\n return this._getContextManager().bind(context, target);\n }\n\n private _getContextManager(): ContextManager {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n }\n\n /** Disable and remove the global context manager */\n public disable() {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/diag.d.ts b/node_modules/@opentelemetry/api/build/src/api/diag.d.ts deleted file mode 100644 index 131db172..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/diag.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ComponentLoggerOptions, DiagLogFunction, DiagLogger, DiagLoggerApi } from '../diag/types'; -/** - * Singleton object which represents the entry point to the OpenTelemetry internal - * diagnostic API - */ -export declare class DiagAPI implements DiagLogger, DiagLoggerApi { - private static _instance?; - /** Get the singleton instance of the DiagAPI API */ - static instance(): DiagAPI; - /** - * Private internal constructor - * @private - */ - private constructor(); - setLogger: DiagLoggerApi['setLogger']; - /** - * - */ - createComponentLogger: (options: ComponentLoggerOptions) => DiagLogger; - verbose: DiagLogFunction; - debug: DiagLogFunction; - info: DiagLogFunction; - warn: DiagLogFunction; - error: DiagLogFunction; - /** - * Unregister the global logger and return to Noop - */ - disable: () => void; -} -//# sourceMappingURL=diag.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/diag.js b/node_modules/@opentelemetry/api/build/src/api/diag.js deleted file mode 100644 index 94569232..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/diag.js +++ /dev/null @@ -1,93 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DiagAPI = void 0; -const ComponentLogger_1 = require("../diag/ComponentLogger"); -const logLevelLogger_1 = require("../diag/internal/logLevelLogger"); -const types_1 = require("../diag/types"); -const global_utils_1 = require("../internal/global-utils"); -const API_NAME = 'diag'; -/** - * Singleton object which represents the entry point to the OpenTelemetry internal - * diagnostic API - */ -class DiagAPI { - /** - * Private internal constructor - * @private - */ - constructor() { - function _logProxy(funcName) { - return function (...args) { - const logger = (0, global_utils_1.getGlobal)('diag'); - // shortcut if logger not set - if (!logger) - return; - return logger[funcName](...args); - }; - } - // Using self local variable for minification purposes as 'this' cannot be minified - const self = this; - // DiagAPI specific functions - const setLogger = (logger, optionsOrLogLevel = { logLevel: types_1.DiagLogLevel.INFO }) => { - var _a, _b, _c; - if (logger === self) { - // There isn't much we can do here. - // Logging to the console might break the user application. - // Try to log to self. If a logger was previously registered it will receive the log. - const err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'); - self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message); - return false; - } - if (typeof optionsOrLogLevel === 'number') { - optionsOrLogLevel = { - logLevel: optionsOrLogLevel, - }; - } - const oldLogger = (0, global_utils_1.getGlobal)('diag'); - const newLogger = (0, logLevelLogger_1.createLogLevelDiagLogger)((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : types_1.DiagLogLevel.INFO, logger); - // There already is an logger registered. We'll let it know before overwriting it. - if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) { - const stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : ''; - oldLogger.warn(`Current logger will be overwritten from ${stack}`); - newLogger.warn(`Current logger will overwrite one already registered from ${stack}`); - } - return (0, global_utils_1.registerGlobal)('diag', newLogger, self, true); - }; - self.setLogger = setLogger; - self.disable = () => { - (0, global_utils_1.unregisterGlobal)(API_NAME, self); - }; - self.createComponentLogger = (options) => { - return new ComponentLogger_1.DiagComponentLogger(options); - }; - self.verbose = _logProxy('verbose'); - self.debug = _logProxy('debug'); - self.info = _logProxy('info'); - self.warn = _logProxy('warn'); - self.error = _logProxy('error'); - } - /** Get the singleton instance of the DiagAPI API */ - static instance() { - if (!this._instance) { - this._instance = new DiagAPI(); - } - return this._instance; - } -} -exports.DiagAPI = DiagAPI; -//# sourceMappingURL=diag.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/diag.js.map b/node_modules/@opentelemetry/api/build/src/api/diag.js.map deleted file mode 100644 index 868e19c0..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/diag.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"diag.js","sourceRoot":"","sources":["../../../src/api/diag.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,6DAA8D;AAC9D,oEAA2E;AAC3E,yCAMuB;AACvB,2DAIkC;AAElC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH,MAAa,OAAO;IAYlB;;;OAGG;IACH;QACE,SAAS,SAAS,CAAC,QAA0B;YAC3C,OAAO,UAAU,GAAG,IAAI;gBACtB,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,MAAM,CAAC,CAAC;gBACjC,6BAA6B;gBAC7B,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC;QACJ,CAAC;QAED,mFAAmF;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,6BAA6B;QAE7B,MAAM,SAAS,GAA+B,CAC5C,MAAM,EACN,iBAAiB,GAAG,EAAE,QAAQ,EAAE,oBAAY,CAAC,IAAI,EAAE,EACnD,EAAE;;YACF,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,mCAAmC;gBACnC,2DAA2D;gBAC3D,qFAAqF;gBACrF,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,oIAAoI,CACrI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC;aACd;YAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACzC,iBAAiB,GAAG;oBAClB,QAAQ,EAAE,iBAAiB;iBAC5B,CAAC;aACH;YAED,MAAM,SAAS,GAAG,IAAA,wBAAS,EAAC,MAAM,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,IAAA,yCAAwB,EACxC,MAAA,iBAAiB,CAAC,QAAQ,mCAAI,oBAAY,CAAC,IAAI,EAC/C,MAAM,CACP,CAAC;YACF,kFAAkF;YAClF,IAAI,SAAS,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE;gBAC3D,MAAM,KAAK,GAAG,MAAA,IAAI,KAAK,EAAE,CAAC,KAAK,mCAAI,iCAAiC,CAAC;gBACrE,SAAS,CAAC,IAAI,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC;gBACnE,SAAS,CAAC,IAAI,CACZ,6DAA6D,KAAK,EAAE,CACrE,CAAC;aACH;YAED,OAAO,IAAA,6BAAc,EAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,IAAA,+BAAgB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;YAC/D,OAAO,IAAI,qCAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAjFD,oDAAoD;IAC7C,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CA+FF;AAzGD,0BAyGC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n DiagLogLevel,\n} from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/metrics.d.ts b/node_modules/@opentelemetry/api/build/src/api/metrics.d.ts deleted file mode 100644 index 5adc1454..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/metrics.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Meter, MeterOptions } from '../metrics/Meter'; -import { MeterProvider } from '../metrics/MeterProvider'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Metrics API - */ -export declare class MetricsAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Metrics API */ - static getInstance(): MetricsAPI; - /** - * Set the current global meter provider. - * Returns true if the meter provider was successfully registered, else false. - */ - setGlobalMeterProvider(provider: MeterProvider): boolean; - /** - * Returns the global meter provider. - */ - getMeterProvider(): MeterProvider; - /** - * Returns a meter from the global meter provider. - */ - getMeter(name: string, version?: string, options?: MeterOptions): Meter; - /** Remove the global meter provider */ - disable(): void; -} -//# sourceMappingURL=metrics.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/metrics.js b/node_modules/@opentelemetry/api/build/src/api/metrics.js deleted file mode 100644 index 4bbc4331..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/metrics.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MetricsAPI = void 0; -const NoopMeterProvider_1 = require("../metrics/NoopMeterProvider"); -const global_utils_1 = require("../internal/global-utils"); -const diag_1 = require("./diag"); -const API_NAME = 'metrics'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Metrics API - */ -class MetricsAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { } - /** Get the singleton instance of the Metrics API */ - static getInstance() { - if (!this._instance) { - this._instance = new MetricsAPI(); - } - return this._instance; - } - /** - * Set the current global meter provider. - * Returns true if the meter provider was successfully registered, else false. - */ - setGlobalMeterProvider(provider) { - return (0, global_utils_1.registerGlobal)(API_NAME, provider, diag_1.DiagAPI.instance()); - } - /** - * Returns the global meter provider. - */ - getMeterProvider() { - return (0, global_utils_1.getGlobal)(API_NAME) || NoopMeterProvider_1.NOOP_METER_PROVIDER; - } - /** - * Returns a meter from the global meter provider. - */ - getMeter(name, version, options) { - return this.getMeterProvider().getMeter(name, version, options); - } - /** Remove the global meter provider */ - disable() { - (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance()); - } -} -exports.MetricsAPI = MetricsAPI; -//# sourceMappingURL=metrics.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/metrics.js.map b/node_modules/@opentelemetry/api/build/src/api/metrics.js.map deleted file mode 100644 index 3431094d..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/metrics.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/api/metrics.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,oEAAmE;AACnE,2DAIkC;AAClC,iCAAiC;AAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAE3B;;GAEG;AACH,MAAa,UAAU;IAGrB,+FAA+F;IAC/F,gBAAuB,CAAC;IAExB,oDAAoD;IAC7C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,sBAAsB,CAAC,QAAuB;QACnD,OAAO,IAAA,6BAAc,EAAC,QAAQ,EAAE,QAAQ,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,OAAO,IAAA,wBAAS,EAAC,QAAQ,CAAC,IAAI,uCAAmB,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,QAAQ,CACb,IAAY,EACZ,OAAgB,EAChB,OAAsB;QAEtB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,uCAAuC;IAChC,OAAO;QACZ,IAAA,+BAAgB,EAAC,QAAQ,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AA7CD,gCA6CC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from '../metrics/Meter';\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'metrics';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Metrics API\n */\nexport class MetricsAPI {\n private static _instance?: MetricsAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Metrics API */\n public static getInstance(): MetricsAPI {\n if (!this._instance) {\n this._instance = new MetricsAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global meter provider.\n * Returns true if the meter provider was successfully registered, else false.\n */\n public setGlobalMeterProvider(provider: MeterProvider): boolean {\n return registerGlobal(API_NAME, provider, DiagAPI.instance());\n }\n\n /**\n * Returns the global meter provider.\n */\n public getMeterProvider(): MeterProvider {\n return getGlobal(API_NAME) || NOOP_METER_PROVIDER;\n }\n\n /**\n * Returns a meter from the global meter provider.\n */\n public getMeter(\n name: string,\n version?: string,\n options?: MeterOptions\n ): Meter {\n return this.getMeterProvider().getMeter(name, version, options);\n }\n\n /** Remove the global meter provider */\n public disable(): void {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/propagation.d.ts b/node_modules/@opentelemetry/api/build/src/api/propagation.d.ts deleted file mode 100644 index a22d24d3..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/propagation.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Context } from '../context/types'; -import { TextMapGetter, TextMapPropagator, TextMapSetter } from '../propagation/TextMapPropagator'; -import { getBaggage, getActiveBaggage, setBaggage, deleteBaggage } from '../baggage/context-helpers'; -import { createBaggage } from '../baggage/utils'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Propagation API - */ -export declare class PropagationAPI { - private static _instance?; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Propagator API */ - static getInstance(): PropagationAPI; - /** - * Set the current propagator. - * - * @returns true if the propagator was successfully registered, else false - */ - setGlobalPropagator(propagator: TextMapPropagator): boolean; - /** - * Inject context into a carrier to be propagated inter-process - * - * @param context Context carrying tracing data to inject - * @param carrier carrier to inject context into - * @param setter Function used to set values on the carrier - */ - inject(context: Context, carrier: Carrier, setter?: TextMapSetter): void; - /** - * Extract context from a carrier - * - * @param context Context which the newly created context will inherit from - * @param carrier Carrier to extract context from - * @param getter Function used to extract keys from a carrier - */ - extract(context: Context, carrier: Carrier, getter?: TextMapGetter): Context; - /** - * Return a list of all fields which may be used by the propagator. - */ - fields(): string[]; - /** Remove the global propagator */ - disable(): void; - createBaggage: typeof createBaggage; - getBaggage: typeof getBaggage; - getActiveBaggage: typeof getActiveBaggage; - setBaggage: typeof setBaggage; - deleteBaggage: typeof deleteBaggage; - private _getGlobalPropagator; -} -//# sourceMappingURL=propagation.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/propagation.js b/node_modules/@opentelemetry/api/build/src/api/propagation.js deleted file mode 100644 index 7f03df81..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/propagation.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PropagationAPI = void 0; -const global_utils_1 = require("../internal/global-utils"); -const NoopTextMapPropagator_1 = require("../propagation/NoopTextMapPropagator"); -const TextMapPropagator_1 = require("../propagation/TextMapPropagator"); -const context_helpers_1 = require("../baggage/context-helpers"); -const utils_1 = require("../baggage/utils"); -const diag_1 = require("./diag"); -const API_NAME = 'propagation'; -const NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator_1.NoopTextMapPropagator(); -/** - * Singleton object which represents the entry point to the OpenTelemetry Propagation API - */ -class PropagationAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { - this.createBaggage = utils_1.createBaggage; - this.getBaggage = context_helpers_1.getBaggage; - this.getActiveBaggage = context_helpers_1.getActiveBaggage; - this.setBaggage = context_helpers_1.setBaggage; - this.deleteBaggage = context_helpers_1.deleteBaggage; - } - /** Get the singleton instance of the Propagator API */ - static getInstance() { - if (!this._instance) { - this._instance = new PropagationAPI(); - } - return this._instance; - } - /** - * Set the current propagator. - * - * @returns true if the propagator was successfully registered, else false - */ - setGlobalPropagator(propagator) { - return (0, global_utils_1.registerGlobal)(API_NAME, propagator, diag_1.DiagAPI.instance()); - } - /** - * Inject context into a carrier to be propagated inter-process - * - * @param context Context carrying tracing data to inject - * @param carrier carrier to inject context into - * @param setter Function used to set values on the carrier - */ - inject(context, carrier, setter = TextMapPropagator_1.defaultTextMapSetter) { - return this._getGlobalPropagator().inject(context, carrier, setter); - } - /** - * Extract context from a carrier - * - * @param context Context which the newly created context will inherit from - * @param carrier Carrier to extract context from - * @param getter Function used to extract keys from a carrier - */ - extract(context, carrier, getter = TextMapPropagator_1.defaultTextMapGetter) { - return this._getGlobalPropagator().extract(context, carrier, getter); - } - /** - * Return a list of all fields which may be used by the propagator. - */ - fields() { - return this._getGlobalPropagator().fields(); - } - /** Remove the global propagator */ - disable() { - (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance()); - } - _getGlobalPropagator() { - return (0, global_utils_1.getGlobal)(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR; - } -} -exports.PropagationAPI = PropagationAPI; -//# sourceMappingURL=propagation.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/propagation.js.map b/node_modules/@opentelemetry/api/build/src/api/propagation.js.map deleted file mode 100644 index bb3b7e15..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/propagation.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"propagation.js","sourceRoot":"","sources":["../../../src/api/propagation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,2DAIkC;AAClC,gFAA6E;AAC7E,wEAM0C;AAC1C,gEAKoC;AACpC,4CAAiD;AACjD,iCAAiC;AAEjC,MAAM,QAAQ,GAAG,aAAa,CAAC;AAC/B,MAAM,wBAAwB,GAAG,IAAI,6CAAqB,EAAE,CAAC;AAE7D;;GAEG;AACH,MAAa,cAAc;IAGzB,+FAA+F;IAC/F;QA8DO,kBAAa,GAAG,qBAAa,CAAC;QAE9B,eAAU,GAAG,4BAAU,CAAC;QAExB,qBAAgB,GAAG,kCAAgB,CAAC;QAEpC,eAAU,GAAG,4BAAU,CAAC;QAExB,kBAAa,GAAG,+BAAa,CAAC;IAtEd,CAAC;IAExB,uDAAuD;IAChD,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,UAA6B;QACtD,OAAO,IAAA,6BAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACX,OAAgB,EAChB,OAAgB,EAChB,SAAiC,wCAAoB;QAErD,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;OAMG;IACI,OAAO,CACZ,OAAgB,EAChB,OAAgB,EAChB,SAAiC,wCAAoB;QAErD,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,mCAAmC;IAC5B,OAAO;QACZ,IAAA,+BAAgB,EAAC,QAAQ,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAYO,oBAAoB;QAC1B,OAAO,IAAA,wBAAS,EAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC;IACzD,CAAC;CACF;AA/ED,wCA+EC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport {\n defaultTextMapGetter,\n defaultTextMapSetter,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n getBaggage,\n getActiveBaggage,\n setBaggage,\n deleteBaggage,\n} from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'propagation';\nconst NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nexport class PropagationAPI {\n private static _instance?: PropagationAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Propagator API */\n public static getInstance(): PropagationAPI {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n public setGlobalPropagator(propagator: TextMapPropagator): boolean {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n }\n\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n public inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter = defaultTextMapSetter\n ): void {\n return this._getGlobalPropagator().inject(context, carrier, setter);\n }\n\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n public extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter = defaultTextMapGetter\n ): Context {\n return this._getGlobalPropagator().extract(context, carrier, getter);\n }\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n public fields(): string[] {\n return this._getGlobalPropagator().fields();\n }\n\n /** Remove the global propagator */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n\n public createBaggage = createBaggage;\n\n public getBaggage = getBaggage;\n\n public getActiveBaggage = getActiveBaggage;\n\n public setBaggage = setBaggage;\n\n public deleteBaggage = deleteBaggage;\n\n private _getGlobalPropagator(): TextMapPropagator {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/trace.d.ts b/node_modules/@opentelemetry/api/build/src/api/trace.d.ts deleted file mode 100644 index df59fd2f..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/trace.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { isSpanContextValid, wrapSpanContext } from '../trace/spancontext-utils'; -import { Tracer } from '../trace/tracer'; -import { TracerProvider } from '../trace/tracer_provider'; -import { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext } from '../trace/context-utils'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -export declare class TraceAPI { - private static _instance?; - private _proxyTracerProvider; - /** Empty private constructor prevents end users from constructing a new instance of the API */ - private constructor(); - /** Get the singleton instance of the Trace API */ - static getInstance(): TraceAPI; - /** - * Set the current global tracer. - * - * @returns true if the tracer provider was successfully registered, else false - */ - setGlobalTracerProvider(provider: TracerProvider): boolean; - /** - * Returns the global tracer provider. - */ - getTracerProvider(): TracerProvider; - /** - * Returns a tracer from the global tracer provider. - */ - getTracer(name: string, version?: string): Tracer; - /** Remove the global tracer provider */ - disable(): void; - wrapSpanContext: typeof wrapSpanContext; - isSpanContextValid: typeof isSpanContextValid; - deleteSpan: typeof deleteSpan; - getSpan: typeof getSpan; - getActiveSpan: typeof getActiveSpan; - getSpanContext: typeof getSpanContext; - setSpan: typeof setSpan; - setSpanContext: typeof setSpanContext; -} -//# sourceMappingURL=trace.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/trace.js b/node_modules/@opentelemetry/api/build/src/api/trace.js deleted file mode 100644 index aa7a9da5..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/trace.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TraceAPI = void 0; -const global_utils_1 = require("../internal/global-utils"); -const ProxyTracerProvider_1 = require("../trace/ProxyTracerProvider"); -const spancontext_utils_1 = require("../trace/spancontext-utils"); -const context_utils_1 = require("../trace/context-utils"); -const diag_1 = require("./diag"); -const API_NAME = 'trace'; -/** - * Singleton object which represents the entry point to the OpenTelemetry Tracing API - */ -class TraceAPI { - /** Empty private constructor prevents end users from constructing a new instance of the API */ - constructor() { - this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); - this.wrapSpanContext = spancontext_utils_1.wrapSpanContext; - this.isSpanContextValid = spancontext_utils_1.isSpanContextValid; - this.deleteSpan = context_utils_1.deleteSpan; - this.getSpan = context_utils_1.getSpan; - this.getActiveSpan = context_utils_1.getActiveSpan; - this.getSpanContext = context_utils_1.getSpanContext; - this.setSpan = context_utils_1.setSpan; - this.setSpanContext = context_utils_1.setSpanContext; - } - /** Get the singleton instance of the Trace API */ - static getInstance() { - if (!this._instance) { - this._instance = new TraceAPI(); - } - return this._instance; - } - /** - * Set the current global tracer. - * - * @returns true if the tracer provider was successfully registered, else false - */ - setGlobalTracerProvider(provider) { - const success = (0, global_utils_1.registerGlobal)(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance()); - if (success) { - this._proxyTracerProvider.setDelegate(provider); - } - return success; - } - /** - * Returns the global tracer provider. - */ - getTracerProvider() { - return (0, global_utils_1.getGlobal)(API_NAME) || this._proxyTracerProvider; - } - /** - * Returns a tracer from the global tracer provider. - */ - getTracer(name, version) { - return this.getTracerProvider().getTracer(name, version); - } - /** Remove the global tracer provider */ - disable() { - (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance()); - this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider(); - } -} -exports.TraceAPI = TraceAPI; -//# sourceMappingURL=trace.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/api/trace.js.map b/node_modules/@opentelemetry/api/build/src/api/trace.js.map deleted file mode 100644 index 9bd31120..00000000 --- a/node_modules/@opentelemetry/api/build/src/api/trace.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/api/trace.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,2DAIkC;AAClC,sEAAmE;AACnE,kEAGoC;AAGpC,0DAOgC;AAChC,iCAAiC;AAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB;;GAEG;AACH,MAAa,QAAQ;IAKnB,+FAA+F;IAC/F;QAHQ,yBAAoB,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAmDlD,oBAAe,GAAG,mCAAe,CAAC;QAElC,uBAAkB,GAAG,sCAAkB,CAAC;QAExC,eAAU,GAAG,0BAAU,CAAC;QAExB,YAAO,GAAG,uBAAO,CAAC;QAElB,kBAAa,GAAG,6BAAa,CAAC;QAE9B,mBAAc,GAAG,8BAAc,CAAC;QAEhC,YAAO,GAAG,uBAAO,CAAC;QAElB,mBAAc,GAAG,8BAAc,CAAC;IA9DhB,CAAC;IAExB,kDAAkD;IAC3C,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,uBAAuB,CAAC,QAAwB;QACrD,MAAM,OAAO,GAAG,IAAA,6BAAc,EAC5B,QAAQ,EACR,IAAI,CAAC,oBAAoB,EACzB,cAAO,CAAC,QAAQ,EAAE,CACnB,CAAC;QACF,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SACjD;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,OAAO,IAAA,wBAAS,EAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,IAAY,EAAE,OAAgB;QAC7C,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,wCAAwC;IACjC,OAAO;QACZ,IAAA,+BAAgB,EAAC,QAAQ,EAAE,cAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,yCAAmB,EAAE,CAAC;IACxD,CAAC;CAiBF;AArED,4BAqEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport { Tracer } from '../trace/tracer';\nimport { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getActiveSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n public getActiveSpan = getActiveSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts b/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts deleted file mode 100644 index 23750eb6..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Context } from '../context/types'; -import { Baggage } from './types'; -/** - * Retrieve the current baggage from the given context - * - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -export declare function getBaggage(context: Context): Baggage | undefined; -/** - * Retrieve the current baggage from the active/current context - * - * @returns {Baggage} Extracted baggage from the context - */ -export declare function getActiveBaggage(): Baggage | undefined; -/** - * Store a baggage in the given context - * - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -export declare function setBaggage(context: Context, baggage: Baggage): Context; -/** - * Delete the baggage stored in the given context - * - * @param {Context} Context that manage all context values - */ -export declare function deleteBaggage(context: Context): Context; -//# sourceMappingURL=context-helpers.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js b/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js deleted file mode 100644 index cc0f00bf..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.deleteBaggage = exports.setBaggage = exports.getActiveBaggage = exports.getBaggage = void 0; -const context_1 = require("../api/context"); -const context_2 = require("../context/context"); -/** - * Baggage key - */ -const BAGGAGE_KEY = (0, context_2.createContextKey)('OpenTelemetry Baggage Key'); -/** - * Retrieve the current baggage from the given context - * - * @param {Context} Context that manage all context values - * @returns {Baggage} Extracted baggage from the context - */ -function getBaggage(context) { - return context.getValue(BAGGAGE_KEY) || undefined; -} -exports.getBaggage = getBaggage; -/** - * Retrieve the current baggage from the active/current context - * - * @returns {Baggage} Extracted baggage from the context - */ -function getActiveBaggage() { - return getBaggage(context_1.ContextAPI.getInstance().active()); -} -exports.getActiveBaggage = getActiveBaggage; -/** - * Store a baggage in the given context - * - * @param {Context} Context that manage all context values - * @param {Baggage} baggage that will be set in the actual context - */ -function setBaggage(context, baggage) { - return context.setValue(BAGGAGE_KEY, baggage); -} -exports.setBaggage = setBaggage; -/** - * Delete the baggage stored in the given context - * - * @param {Context} Context that manage all context values - */ -function deleteBaggage(context) { - return context.deleteValue(BAGGAGE_KEY); -} -exports.deleteBaggage = deleteBaggage; -//# sourceMappingURL=context-helpers.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js.map b/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js.map deleted file mode 100644 index ba60094f..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-helpers.js","sourceRoot":"","sources":["../../../src/baggage/context-helpers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4CAA4C;AAC5C,gDAAsD;AAItD;;GAEG;AACH,MAAM,WAAW,GAAG,IAAA,0BAAgB,EAAC,2BAA2B,CAAC,CAAC;AAElE;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa,IAAI,SAAS,CAAC;AACjE,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,UAAU,CAAC,oBAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAFD,4CAEC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAAgB,EAAE,OAAgB;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAFD,sCAEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Baggage } from './types';\n\n/**\n * Baggage key\n */\nconst BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key');\n\n/**\n * Retrieve the current baggage from the given context\n *\n * @param {Context} Context that manage all context values\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getBaggage(context: Context): Baggage | undefined {\n return (context.getValue(BAGGAGE_KEY) as Baggage) || undefined;\n}\n\n/**\n * Retrieve the current baggage from the active/current context\n *\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getActiveBaggage(): Baggage | undefined {\n return getBaggage(ContextAPI.getInstance().active());\n}\n\n/**\n * Store a baggage in the given context\n *\n * @param {Context} Context that manage all context values\n * @param {Baggage} baggage that will be set in the actual context\n */\nexport function setBaggage(context: Context, baggage: Baggage): Context {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n\n/**\n * Delete the baggage stored in the given context\n *\n * @param {Context} Context that manage all context values\n */\nexport function deleteBaggage(context: Context): Context {\n return context.deleteValue(BAGGAGE_KEY);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.d.ts b/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.d.ts deleted file mode 100644 index e6b45540..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Baggage, BaggageEntry } from '../types'; -export declare class BaggageImpl implements Baggage { - private _entries; - constructor(entries?: Map); - getEntry(key: string): BaggageEntry | undefined; - getAllEntries(): [string, BaggageEntry][]; - setEntry(key: string, entry: BaggageEntry): BaggageImpl; - removeEntry(key: string): BaggageImpl; - removeEntries(...keys: string[]): BaggageImpl; - clear(): BaggageImpl; -} -//# sourceMappingURL=baggage-impl.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js b/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js deleted file mode 100644 index 6f04d4a6..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BaggageImpl = void 0; -class BaggageImpl { - constructor(entries) { - this._entries = entries ? new Map(entries) : new Map(); - } - getEntry(key) { - const entry = this._entries.get(key); - if (!entry) { - return undefined; - } - return Object.assign({}, entry); - } - getAllEntries() { - return Array.from(this._entries.entries()).map(([k, v]) => [k, v]); - } - setEntry(key, entry) { - const newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.set(key, entry); - return newBaggage; - } - removeEntry(key) { - const newBaggage = new BaggageImpl(this._entries); - newBaggage._entries.delete(key); - return newBaggage; - } - removeEntries(...keys) { - const newBaggage = new BaggageImpl(this._entries); - for (const key of keys) { - newBaggage._entries.delete(key); - } - return newBaggage; - } - clear() { - return new BaggageImpl(); - } -} -exports.BaggageImpl = BaggageImpl; -//# sourceMappingURL=baggage-impl.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js.map b/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js.map deleted file mode 100644 index e95c4bcf..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"baggage-impl.js","sourceRoot":"","sources":["../../../../src/baggage/internal/baggage-impl.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,MAAa,WAAW;IAGtB,YAAY,OAAmC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAAmB;QACvC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,GAAG,IAAc;QAC7B,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACjC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;CACF;AA3CD,kCA2CC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Baggage, BaggageEntry } from '../types';\n\nexport class BaggageImpl implements Baggage {\n private _entries: Map;\n\n constructor(entries?: Map) {\n this._entries = entries ? new Map(entries) : new Map();\n }\n\n getEntry(key: string): BaggageEntry | undefined {\n const entry = this._entries.get(key);\n if (!entry) {\n return undefined;\n }\n\n return Object.assign({}, entry);\n }\n\n getAllEntries(): [string, BaggageEntry][] {\n return Array.from(this._entries.entries()).map(([k, v]) => [k, v]);\n }\n\n setEntry(key: string, entry: BaggageEntry): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.set(key, entry);\n return newBaggage;\n }\n\n removeEntry(key: string): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.delete(key);\n return newBaggage;\n }\n\n removeEntries(...keys: string[]): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n for (const key of keys) {\n newBaggage._entries.delete(key);\n }\n return newBaggage;\n }\n\n clear(): BaggageImpl {\n return new BaggageImpl();\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts b/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts deleted file mode 100644 index 9cd991c1..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Symbol used to make BaggageEntryMetadata an opaque type - */ -export declare const baggageEntryMetadataSymbol: unique symbol; -//# sourceMappingURL=symbol.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js b/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js deleted file mode 100644 index 324c216d..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.baggageEntryMetadataSymbol = void 0; -/** - * Symbol used to make BaggageEntryMetadata an opaque type - */ -exports.baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata'); -//# sourceMappingURL=symbol.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js.map b/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js.map deleted file mode 100644 index 497f3627..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/baggage/internal/symbol.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH;;GAEG;AACU,QAAA,0BAA0B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Symbol used to make BaggageEntryMetadata an opaque type\n */\nexport const baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/types.d.ts b/node_modules/@opentelemetry/api/build/src/baggage/types.d.ts deleted file mode 100644 index 32fa0ec6..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/types.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { baggageEntryMetadataSymbol } from './internal/symbol'; -export interface BaggageEntry { - /** `String` value of the `BaggageEntry`. */ - value: string; - /** - * Metadata is an optional string property defined by the W3C baggage specification. - * It currently has no special meaning defined by the specification. - */ - metadata?: BaggageEntryMetadata; -} -/** - * Serializable Metadata defined by the W3C baggage specification. - * It currently has no special meaning defined by the OpenTelemetry or W3C. - */ -export declare type BaggageEntryMetadata = { - toString(): string; -} & { - __TYPE__: typeof baggageEntryMetadataSymbol; -}; -/** - * Baggage represents collection of key-value pairs with optional metadata. - * Each key of Baggage is associated with exactly one value. - * Baggage may be used to annotate and enrich telemetry data. - */ -export interface Baggage { - /** - * Get an entry from Baggage if it exists - * - * @param key The key which identifies the BaggageEntry - */ - getEntry(key: string): BaggageEntry | undefined; - /** - * Get a list of all entries in the Baggage - */ - getAllEntries(): [string, BaggageEntry][]; - /** - * Returns a new baggage with the entries from the current bag and the specified entry - * - * @param key string which identifies the baggage entry - * @param entry BaggageEntry for the given key - */ - setEntry(key: string, entry: BaggageEntry): Baggage; - /** - * Returns a new baggage with the entries from the current bag except the removed entry - * - * @param key key identifying the entry to be removed - */ - removeEntry(key: string): Baggage; - /** - * Returns a new baggage with the entries from the current bag except the removed entries - * - * @param key keys identifying the entries to be removed - */ - removeEntries(...key: string[]): Baggage; - /** - * Returns a new baggage with no entries - */ - clear(): Baggage; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/types.js b/node_modules/@opentelemetry/api/build/src/baggage/types.js deleted file mode 100644 index c428c6d0..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/types.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/types.js.map b/node_modules/@opentelemetry/api/build/src/baggage/types.js.map deleted file mode 100644 index 2a00da49..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/baggage/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\n\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface BaggageEntry {\n /** `String` value of the `BaggageEntry`. */\n value: string;\n /**\n * Metadata is an optional string property defined by the W3C baggage specification.\n * It currently has no special meaning defined by the specification.\n */\n metadata?: BaggageEntryMetadata;\n}\n\n/**\n * Serializable Metadata defined by the W3C baggage specification.\n * It currently has no special meaning defined by the OpenTelemetry or W3C.\n */\nexport type BaggageEntryMetadata = { toString(): string } & {\n __TYPE__: typeof baggageEntryMetadataSymbol;\n};\n\n/**\n * Baggage represents collection of key-value pairs with optional metadata.\n * Each key of Baggage is associated with exactly one value.\n * Baggage may be used to annotate and enrich telemetry data.\n */\nexport interface Baggage {\n /**\n * Get an entry from Baggage if it exists\n *\n * @param key The key which identifies the BaggageEntry\n */\n getEntry(key: string): BaggageEntry | undefined;\n\n /**\n * Get a list of all entries in the Baggage\n */\n getAllEntries(): [string, BaggageEntry][];\n\n /**\n * Returns a new baggage with the entries from the current bag and the specified entry\n *\n * @param key string which identifies the baggage entry\n * @param entry BaggageEntry for the given key\n */\n setEntry(key: string, entry: BaggageEntry): Baggage;\n\n /**\n * Returns a new baggage with the entries from the current bag except the removed entry\n *\n * @param key key identifying the entry to be removed\n */\n removeEntry(key: string): Baggage;\n\n /**\n * Returns a new baggage with the entries from the current bag except the removed entries\n *\n * @param key keys identifying the entries to be removed\n */\n removeEntries(...key: string[]): Baggage;\n\n /**\n * Returns a new baggage with no entries\n */\n clear(): Baggage;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts b/node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts deleted file mode 100644 index 9955d9e2..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Baggage, BaggageEntry, BaggageEntryMetadata } from './types'; -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -export declare function createBaggage(entries?: Record): Baggage; -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -export declare function baggageEntryMetadataFromString(str: string): BaggageEntryMetadata; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/utils.js b/node_modules/@opentelemetry/api/build/src/baggage/utils.js deleted file mode 100644 index a0bfbf6c..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/utils.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.baggageEntryMetadataFromString = exports.createBaggage = void 0; -const diag_1 = require("../api/diag"); -const baggage_impl_1 = require("./internal/baggage-impl"); -const symbol_1 = require("./internal/symbol"); -const diag = diag_1.DiagAPI.instance(); -/** - * Create a new Baggage with optional entries - * - * @param entries An array of baggage entries the new baggage should contain - */ -function createBaggage(entries = {}) { - return new baggage_impl_1.BaggageImpl(new Map(Object.entries(entries))); -} -exports.createBaggage = createBaggage; -/** - * Create a serializable BaggageEntryMetadata object from a string. - * - * @param str string metadata. Format is currently not defined by the spec and has no special meaning. - * - */ -function baggageEntryMetadataFromString(str) { - if (typeof str !== 'string') { - diag.error(`Cannot create baggage metadata from unknown type: ${typeof str}`); - str = ''; - } - return { - __TYPE__: symbol_1.baggageEntryMetadataSymbol, - toString() { - return str; - }, - }; -} -exports.baggageEntryMetadataFromString = baggageEntryMetadataFromString; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/baggage/utils.js.map b/node_modules/@opentelemetry/api/build/src/baggage/utils.js.map deleted file mode 100644 index d3e6ee8d..00000000 --- a/node_modules/@opentelemetry/api/build/src/baggage/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/baggage/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sCAAsC;AACtC,0DAAsD;AACtD,8CAA+D;AAG/D,MAAM,IAAI,GAAG,cAAO,CAAC,QAAQ,EAAE,CAAC;AAEhC;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,UAAwC,EAAE;IAE1C,OAAO,IAAI,0BAAW,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAJD,sCAIC;AAED;;;;;GAKG;AACH,SAAgB,8BAA8B,CAC5C,GAAW;IAEX,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,CAAC,KAAK,CACR,qDAAqD,OAAO,GAAG,EAAE,CAClE,CAAC;QACF,GAAG,GAAG,EAAE,CAAC;KACV;IAED,OAAO;QACL,QAAQ,EAAE,mCAA0B;QACpC,QAAQ;YACN,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAhBD,wEAgBC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagAPI } from '../api/diag';\nimport { BaggageImpl } from './internal/baggage-impl';\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\nimport { Baggage, BaggageEntry, BaggageEntryMetadata } from './types';\n\nconst diag = DiagAPI.instance();\n\n/**\n * Create a new Baggage with optional entries\n *\n * @param entries An array of baggage entries the new baggage should contain\n */\nexport function createBaggage(\n entries: Record = {}\n): Baggage {\n return new BaggageImpl(new Map(Object.entries(entries)));\n}\n\n/**\n * Create a serializable BaggageEntryMetadata object from a string.\n *\n * @param str string metadata. Format is currently not defined by the spec and has no special meaning.\n *\n */\nexport function baggageEntryMetadataFromString(\n str: string\n): BaggageEntryMetadata {\n if (typeof str !== 'string') {\n diag.error(\n `Cannot create baggage metadata from unknown type: ${typeof str}`\n );\n str = '';\n }\n\n return {\n __TYPE__: baggageEntryMetadataSymbol,\n toString() {\n return str;\n },\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Attributes.d.ts b/node_modules/@opentelemetry/api/build/src/common/Attributes.d.ts deleted file mode 100644 index 19994fb2..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Attributes.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Attributes is a map from string to attribute values. - * - * Note: only the own enumerable keys are counted as valid attribute keys. - */ -export interface Attributes { - [attributeKey: string]: AttributeValue | undefined; -} -/** - * Attribute values may be any non-nullish primitive value except an object. - * - * null or undefined attribute values are invalid and will result in undefined behavior. - */ -export declare type AttributeValue = string | number | boolean | Array | Array | Array; -//# sourceMappingURL=Attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Attributes.js b/node_modules/@opentelemetry/api/build/src/common/Attributes.js deleted file mode 100644 index 684c93db..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Attributes.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Attributes.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Attributes.js.map b/node_modules/@opentelemetry/api/build/src/common/Attributes.js.map deleted file mode 100644 index 81b11681..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Attributes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Attributes.js","sourceRoot":"","sources":["../../../src/common/Attributes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Attributes is a map from string to attribute values.\n *\n * Note: only the own enumerable keys are counted as valid attribute keys.\n */\nexport interface Attributes {\n [attributeKey: string]: AttributeValue | undefined;\n}\n\n/**\n * Attribute values may be any non-nullish primitive value except an object.\n *\n * null or undefined attribute values are invalid and will result in undefined behavior.\n */\nexport type AttributeValue =\n | string\n | number\n | boolean\n | Array\n | Array\n | Array;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Exception.d.ts b/node_modules/@opentelemetry/api/build/src/common/Exception.d.ts deleted file mode 100644 index e175a7fd..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Exception.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -interface ExceptionWithCode { - code: string | number; - name?: string; - message?: string; - stack?: string; -} -interface ExceptionWithMessage { - code?: string | number; - message: string; - name?: string; - stack?: string; -} -interface ExceptionWithName { - code?: string | number; - message?: string; - name: string; - stack?: string; -} -/** - * Defines Exception. - * - * string or an object with one of (message or name or code) and optional stack - */ -export declare type Exception = ExceptionWithCode | ExceptionWithMessage | ExceptionWithName | string; -export {}; -//# sourceMappingURL=Exception.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Exception.js b/node_modules/@opentelemetry/api/build/src/common/Exception.js deleted file mode 100644 index ed450aef..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Exception.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Exception.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Exception.js.map b/node_modules/@opentelemetry/api/build/src/common/Exception.js.map deleted file mode 100644 index 459c350a..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Exception.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../../src/common/Exception.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ExceptionWithCode {\n code: string | number;\n name?: string;\n message?: string;\n stack?: string;\n}\n\ninterface ExceptionWithMessage {\n code?: string | number;\n message: string;\n name?: string;\n stack?: string;\n}\n\ninterface ExceptionWithName {\n code?: string | number;\n message?: string;\n name: string;\n stack?: string;\n}\n\n/**\n * Defines Exception.\n *\n * string or an object with one of (message or name or code) and optional stack\n */\nexport type Exception =\n | ExceptionWithCode\n | ExceptionWithMessage\n | ExceptionWithName\n | string;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Time.d.ts b/node_modules/@opentelemetry/api/build/src/common/Time.d.ts deleted file mode 100644 index cc3c502c..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Time.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Defines High-Resolution Time. - * - * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970. - * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds. - * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150. - * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds: - * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210. - * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds: - * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000. - * This is represented in HrTime format as [1609504210, 150000000]. - */ -export declare type HrTime = [number, number]; -/** - * Defines TimeInput. - * - * hrtime, epoch milliseconds, performance.now() or Date - */ -export declare type TimeInput = HrTime | number | Date; -//# sourceMappingURL=Time.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Time.js b/node_modules/@opentelemetry/api/build/src/common/Time.js deleted file mode 100644 index 1faaf698..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Time.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Time.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/common/Time.js.map b/node_modules/@opentelemetry/api/build/src/common/Time.js.map deleted file mode 100644 index ae124f03..00000000 --- a/node_modules/@opentelemetry/api/build/src/common/Time.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../src/common/Time.ts"],"names":[],"mappings":"","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Defines High-Resolution Time.\n *\n * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970.\n * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds.\n * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150.\n * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds:\n * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210.\n * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds:\n * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000.\n * This is represented in HrTime format as [1609504210, 150000000].\n */\nexport type HrTime = [number, number];\n\n/**\n * Defines TimeInput.\n *\n * hrtime, epoch milliseconds, performance.now() or Date\n */\nexport type TimeInput = HrTime | number | Date;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context-api.d.ts b/node_modules/@opentelemetry/api/build/src/context-api.d.ts deleted file mode 100644 index 650f4eec..00000000 --- a/node_modules/@opentelemetry/api/build/src/context-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ContextAPI } from './api/context'; -/** Entrypoint for context API */ -export declare const context: ContextAPI; -//# sourceMappingURL=context-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context-api.js b/node_modules/@opentelemetry/api/build/src/context-api.js deleted file mode 100644 index b9aeea93..00000000 --- a/node_modules/@opentelemetry/api/build/src/context-api.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.context = void 0; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -const context_1 = require("./api/context"); -/** Entrypoint for context API */ -exports.context = context_1.ContextAPI.getInstance(); -//# sourceMappingURL=context-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context-api.js.map b/node_modules/@opentelemetry/api/build/src/context-api.js.map deleted file mode 100644 index e8e3f92f..00000000 --- a/node_modules/@opentelemetry/api/build/src/context-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-api.js","sourceRoot":"","sources":["../../src/context-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,2CAA2C;AAC3C,iCAAiC;AACpB,QAAA,OAAO,GAAG,oBAAU,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ContextAPI } from './api/context';\n/** Entrypoint for context API */\nexport const context = ContextAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.d.ts b/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.d.ts deleted file mode 100644 index 48a16597..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as types from './types'; -export declare class NoopContextManager implements types.ContextManager { - active(): types.Context; - with ReturnType>(_context: types.Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - bind(_context: types.Context, target: T): T; - enable(): this; - disable(): this; -} -//# sourceMappingURL=NoopContextManager.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js b/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js deleted file mode 100644 index 10c6ae1b..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NoopContextManager = void 0; -const context_1 = require("./context"); -class NoopContextManager { - active() { - return context_1.ROOT_CONTEXT; - } - with(_context, fn, thisArg, ...args) { - return fn.call(thisArg, ...args); - } - bind(_context, target) { - return target; - } - enable() { - return this; - } - disable() { - return this; - } -} -exports.NoopContextManager = NoopContextManager; -//# sourceMappingURL=NoopContextManager.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js.map b/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js.map deleted file mode 100644 index 46b06123..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopContextManager.js","sourceRoot":"","sources":["../../../src/context/NoopContextManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,uCAAyC;AAGzC,MAAa,kBAAkB;IAC7B,MAAM;QACJ,OAAO,sBAAY,CAAC;IACtB,CAAC;IAED,IAAI,CACF,QAAuB,EACvB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAI,QAAuB,EAAE,MAAS;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAzBD,gDAyBC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ROOT_CONTEXT } from './context';\nimport * as types from './types';\n\nexport class NoopContextManager implements types.ContextManager {\n active(): types.Context {\n return ROOT_CONTEXT;\n }\n\n with ReturnType>(\n _context: types.Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return fn.call(thisArg, ...args);\n }\n\n bind(_context: types.Context, target: T): T {\n return target;\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n return this;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/context.d.ts b/node_modules/@opentelemetry/api/build/src/context/context.d.ts deleted file mode 100644 index 8be02594..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/context.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Context } from './types'; -/** Get a key to uniquely identify a context value */ -export declare function createContextKey(description: string): symbol; -/** The root context is used as the default parent context when there is no active context */ -export declare const ROOT_CONTEXT: Context; -//# sourceMappingURL=context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/context.js b/node_modules/@opentelemetry/api/build/src/context/context.js deleted file mode 100644 index eecc1593..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/context.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROOT_CONTEXT = exports.createContextKey = void 0; -/** Get a key to uniquely identify a context value */ -function createContextKey(description) { - // The specification states that for the same input, multiple calls should - // return different keys. Due to the nature of the JS dependency management - // system, this creates problems where multiple versions of some package - // could hold different keys for the same property. - // - // Therefore, we use Symbol.for which returns the same key for the same input. - return Symbol.for(description); -} -exports.createContextKey = createContextKey; -class BaseContext { - /** - * Construct a new context which inherits values from an optional parent context. - * - * @param parentContext a context from which to inherit values - */ - constructor(parentContext) { - // for minification - const self = this; - self._currentContext = parentContext ? new Map(parentContext) : new Map(); - self.getValue = (key) => self._currentContext.get(key); - self.setValue = (key, value) => { - const context = new BaseContext(self._currentContext); - context._currentContext.set(key, value); - return context; - }; - self.deleteValue = (key) => { - const context = new BaseContext(self._currentContext); - context._currentContext.delete(key); - return context; - }; - } -} -/** The root context is used as the default parent context when there is no active context */ -exports.ROOT_CONTEXT = new BaseContext(); -//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/context.js.map b/node_modules/@opentelemetry/api/build/src/context/context.js.map deleted file mode 100644 index e46cf8da..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,qDAAqD;AACrD,SAAgB,gBAAgB,CAAC,WAAmB;IAClD,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,mDAAmD;IACnD,EAAE;IACF,8EAA8E;IAC9E,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AARD,4CAQC;AAED,MAAM,WAAW;IAGf;;;;OAIG;IACH,YAAY,aAAoC;QAC9C,mBAAmB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAE1E,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/D,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAc,EAAW,EAAE;YACvD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;CAyBF;AAED,6FAA6F;AAChF,QAAA,YAAY,GAAY,IAAI,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from './types';\n\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description: string) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\n\nclass BaseContext implements Context {\n private _currentContext!: Map;\n\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n constructor(parentContext?: Map) {\n // for minification\n const self = this;\n\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n\n self.getValue = (key: symbol) => self._currentContext.get(key);\n\n self.setValue = (key: symbol, value: unknown): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n\n self.deleteValue = (key: symbol): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n public getValue!: (key: symbol) => unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n public setValue!: (key: symbol, value: unknown) => Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n public deleteValue!: (key: symbol) => Context;\n}\n\n/** The root context is used as the default parent context when there is no active context */\nexport const ROOT_CONTEXT: Context = new BaseContext();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/types.d.ts b/node_modules/@opentelemetry/api/build/src/context/types.d.ts deleted file mode 100644 index 7e866320..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/types.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -export interface Context { - /** - * Get a value from the context. - * - * @param key key which identifies a context value - */ - getValue(key: symbol): unknown; - /** - * Create a new context which inherits from this context and has - * the given key set to the given value. - * - * @param key context key for which to set the value - * @param value value to set for the given key - */ - setValue(key: symbol, value: unknown): Context; - /** - * Return a new context which inherits from this context but does - * not contain a value for the given key. - * - * @param key context key for which to clear a value - */ - deleteValue(key: symbol): Context; -} -export interface ContextManager { - /** - * Get the current active context - */ - active(): Context; - /** - * Run the fn callback with object set as the current active context - * @param context Any object to set as the current active context - * @param fn A callback to be immediately run within a specific context - * @param thisArg optional receiver to be used for calling fn - * @param args optional arguments forwarded to fn - */ - with ReturnType>(context: Context, fn: F, thisArg?: ThisParameterType, ...args: A): ReturnType; - /** - * Bind an object as the current context (or a specific one) - * @param [context] Optionally specify the context which you want to assign - * @param target Any object to which a context need to be set - */ - bind(context: Context, target: T): T; - /** - * Enable context management - */ - enable(): this; - /** - * Disable context management - */ - disable(): this; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/types.js b/node_modules/@opentelemetry/api/build/src/context/types.js deleted file mode 100644 index c428c6d0..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/types.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/context/types.js.map b/node_modules/@opentelemetry/api/build/src/context/types.js.map deleted file mode 100644 index 8bde9ce3..00000000 --- a/node_modules/@opentelemetry/api/build/src/context/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/context/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Context {\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n getValue(key: symbol): unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n setValue(key: symbol, value: unknown): Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n deleteValue(key: symbol): Context;\n}\n\nexport interface ContextManager {\n /**\n * Get the current active context\n */\n active(): Context;\n\n /**\n * Run the fn callback with object set as the current active context\n * @param context Any object to set as the current active context\n * @param fn A callback to be immediately run within a specific context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType;\n\n /**\n * Bind an object as the current context (or a specific one)\n * @param [context] Optionally specify the context which you want to assign\n * @param target Any object to which a context need to be set\n */\n bind(context: Context, target: T): T;\n\n /**\n * Enable context management\n */\n enable(): this;\n\n /**\n * Disable context management\n */\n disable(): this;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag-api.d.ts b/node_modules/@opentelemetry/api/build/src/diag-api.d.ts deleted file mode 100644 index d82fdb18..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag-api.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DiagAPI } from './api/diag'; -/** - * Entrypoint for Diag API. - * Defines Diagnostic handler used for internal diagnostic logging operations. - * The default provides a Noop DiagLogger implementation which may be changed via the - * diag.setLogger(logger: DiagLogger) function. - */ -export declare const diag: DiagAPI; -//# sourceMappingURL=diag-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag-api.js b/node_modules/@opentelemetry/api/build/src/diag-api.js deleted file mode 100644 index cbf28db3..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag-api.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.diag = void 0; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -const diag_1 = require("./api/diag"); -/** - * Entrypoint for Diag API. - * Defines Diagnostic handler used for internal diagnostic logging operations. - * The default provides a Noop DiagLogger implementation which may be changed via the - * diag.setLogger(logger: DiagLogger) function. - */ -exports.diag = diag_1.DiagAPI.instance(); -//# sourceMappingURL=diag-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag-api.js.map b/node_modules/@opentelemetry/api/build/src/diag-api.js.map deleted file mode 100644 index f87b0fba..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"diag-api.js","sourceRoot":"","sources":["../../src/diag-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,qCAAqC;AACrC;;;;;GAKG;AACU,QAAA,IAAI,GAAG,cAAO,CAAC,QAAQ,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n */\nexport const diag = DiagAPI.instance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.d.ts b/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.d.ts deleted file mode 100644 index f0609503..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ComponentLoggerOptions, DiagLogger } from './types'; -/** - * Component Logger which is meant to be used as part of any component which - * will add automatically additional namespace in front of the log message. - * It will then forward all message to global diag logger - * @example - * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); - * cLogger.debug('test'); - * // @opentelemetry/instrumentation-http test - */ -export declare class DiagComponentLogger implements DiagLogger { - private _namespace; - constructor(props: ComponentLoggerOptions); - debug(...args: any[]): void; - error(...args: any[]): void; - info(...args: any[]): void; - warn(...args: any[]): void; - verbose(...args: any[]): void; -} -//# sourceMappingURL=ComponentLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js b/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js deleted file mode 100644 index 579b7e68..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DiagComponentLogger = void 0; -const global_utils_1 = require("../internal/global-utils"); -/** - * Component Logger which is meant to be used as part of any component which - * will add automatically additional namespace in front of the log message. - * It will then forward all message to global diag logger - * @example - * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' }); - * cLogger.debug('test'); - * // @opentelemetry/instrumentation-http test - */ -class DiagComponentLogger { - constructor(props) { - this._namespace = props.namespace || 'DiagComponentLogger'; - } - debug(...args) { - return logProxy('debug', this._namespace, args); - } - error(...args) { - return logProxy('error', this._namespace, args); - } - info(...args) { - return logProxy('info', this._namespace, args); - } - warn(...args) { - return logProxy('warn', this._namespace, args); - } - verbose(...args) { - return logProxy('verbose', this._namespace, args); - } -} -exports.DiagComponentLogger = DiagComponentLogger; -function logProxy(funcName, namespace, args) { - const logger = (0, global_utils_1.getGlobal)('diag'); - // shortcut if logger not set - if (!logger) { - return; - } - args.unshift(namespace); - return logger[funcName](...args); -} -//# sourceMappingURL=ComponentLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js.map b/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js.map deleted file mode 100644 index c1b85044..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ComponentLogger.js","sourceRoot":"","sources":["../../../src/diag/ComponentLogger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,2DAAqD;AAGrD;;;;;;;;GAQG;AACH,MAAa,mBAAmB;IAG9B,YAAY,KAA6B;QACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,GAAG,IAAW;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,GAAG,IAAW;QACzB,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO,CAAC,GAAG,IAAW;QAC3B,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CACF;AA1BD,kDA0BC;AAED,SAAS,QAAQ,CACf,QAA0B,EAC1B,SAAiB,EACjB,IAAS;IAET,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,MAAM,CAAC,CAAC;IACjC,6BAA6B;IAC7B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAI,IAAoC,CAAC,CAAC;AACpE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport { ComponentLoggerOptions, DiagLogger, DiagLogFunction } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: any[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: any[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: any[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: any[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: any[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: any\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n args.unshift(namespace);\n return logger[funcName](...(args as Parameters));\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.d.ts b/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.d.ts deleted file mode 100644 index fa3db1e3..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DiagLogger, DiagLogFunction } from './types'; -/** - * A simple Immutable Console based diagnostic logger which will output any messages to the Console. - * If you want to limit the amount of logging to a specific level or lower use the - * {@link createLogLevelDiagLogger} - */ -export declare class DiagConsoleLogger implements DiagLogger { - constructor(); - /** Log an error scenario that was not expected and caused the requested operation to fail. */ - error: DiagLogFunction; - /** - * Log a warning scenario to inform the developer of an issues that should be investigated. - * The requested operation may or may not have succeeded or completed. - */ - warn: DiagLogFunction; - /** - * Log a general informational message, this should not affect functionality. - * This is also the default logging level so this should NOT be used for logging - * debugging level information. - */ - info: DiagLogFunction; - /** - * Log a general debug message that can be useful for identifying a failure. - * Information logged at this level may include diagnostic details that would - * help identify a failure scenario. Useful scenarios would be to log the execution - * order of async operations - */ - debug: DiagLogFunction; - /** - * Log a detailed (verbose) trace level logging that can be used to identify failures - * where debug level logging would be insufficient, this level of tracing can include - * input and output parameters and as such may include PII information passing through - * the API. As such it is recommended that this level of tracing should not be enabled - * in a production environment. - */ - verbose: DiagLogFunction; -} -//# sourceMappingURL=consoleLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js b/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js deleted file mode 100644 index 1962275f..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DiagConsoleLogger = void 0; -const consoleMap = [ - { n: 'error', c: 'error' }, - { n: 'warn', c: 'warn' }, - { n: 'info', c: 'info' }, - { n: 'debug', c: 'debug' }, - { n: 'verbose', c: 'trace' }, -]; -/** - * A simple Immutable Console based diagnostic logger which will output any messages to the Console. - * If you want to limit the amount of logging to a specific level or lower use the - * {@link createLogLevelDiagLogger} - */ -class DiagConsoleLogger { - constructor() { - function _consoleFunc(funcName) { - return function (...args) { - if (console) { - // Some environments only expose the console when the F12 developer console is open - // eslint-disable-next-line no-console - let theFunc = console[funcName]; - if (typeof theFunc !== 'function') { - // Not all environments support all functions - // eslint-disable-next-line no-console - theFunc = console.log; - } - // One last final check - if (typeof theFunc === 'function') { - return theFunc.apply(console, args); - } - } - }; - } - for (let i = 0; i < consoleMap.length; i++) { - this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c); - } - } -} -exports.DiagConsoleLogger = DiagConsoleLogger; -//# sourceMappingURL=consoleLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js.map b/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js.map deleted file mode 100644 index d57fe77c..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"consoleLogger.js","sourceRoot":"","sources":["../../../src/diag/consoleLogger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,MAAM,UAAU,GAAiD;IAC/D,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;IAC1B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;IACxB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;IACxB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;IAC1B,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAa,iBAAiB;IAC5B;QACE,SAAS,YAAY,CAAC,QAAwB;YAC5C,OAAO,UAAU,GAAG,IAAI;gBACtB,IAAI,OAAO,EAAE;oBACX,mFAAmF;oBACnF,sCAAsC;oBACtC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,6CAA6C;wBAC7C,sCAAsC;wBACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;qBACvB;oBAED,uBAAuB;oBACvB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBACjC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBACrC;iBACF;YACH,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;CAkCF;AA3DD,8CA2DC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger, DiagLogFunction } from './types';\n\ntype ConsoleMapKeys = 'error' | 'warn' | 'info' | 'debug' | 'trace';\nconst consoleMap: { n: keyof DiagLogger; c: ConsoleMapKeys }[] = [\n { n: 'error', c: 'error' },\n { n: 'warn', c: 'warn' },\n { n: 'info', c: 'info' },\n { n: 'debug', c: 'debug' },\n { n: 'verbose', c: 'trace' },\n];\n\n/**\n * A simple Immutable Console based diagnostic logger which will output any messages to the Console.\n * If you want to limit the amount of logging to a specific level or lower use the\n * {@link createLogLevelDiagLogger}\n */\nexport class DiagConsoleLogger implements DiagLogger {\n constructor() {\n function _consoleFunc(funcName: ConsoleMapKeys): DiagLogFunction {\n return function (...args) {\n if (console) {\n // Some environments only expose the console when the F12 developer console is open\n // eslint-disable-next-line no-console\n let theFunc = console[funcName];\n if (typeof theFunc !== 'function') {\n // Not all environments support all functions\n // eslint-disable-next-line no-console\n theFunc = console.log;\n }\n\n // One last final check\n if (typeof theFunc === 'function') {\n return theFunc.apply(console, args);\n }\n }\n };\n }\n\n for (let i = 0; i < consoleMap.length; i++) {\n this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);\n }\n }\n\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n public error!: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n public warn!: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n public info!: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario. Useful scenarios would be to log the execution\n * order of async operations\n */\n public debug!: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n public verbose!: DiagLogFunction;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.d.ts b/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.d.ts deleted file mode 100644 index 890b9f1e..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DiagLogger, DiagLogLevel } from '../types'; -export declare function createLogLevelDiagLogger(maxLevel: DiagLogLevel, logger: DiagLogger): DiagLogger; -//# sourceMappingURL=logLevelLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js b/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js deleted file mode 100644 index ee1702e5..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createLogLevelDiagLogger = void 0; -const types_1 = require("../types"); -function createLogLevelDiagLogger(maxLevel, logger) { - if (maxLevel < types_1.DiagLogLevel.NONE) { - maxLevel = types_1.DiagLogLevel.NONE; - } - else if (maxLevel > types_1.DiagLogLevel.ALL) { - maxLevel = types_1.DiagLogLevel.ALL; - } - // In case the logger is null or undefined - logger = logger || {}; - function _filterFunc(funcName, theLevel) { - const theFunc = logger[funcName]; - if (typeof theFunc === 'function' && maxLevel >= theLevel) { - return theFunc.bind(logger); - } - return function () { }; - } - return { - error: _filterFunc('error', types_1.DiagLogLevel.ERROR), - warn: _filterFunc('warn', types_1.DiagLogLevel.WARN), - info: _filterFunc('info', types_1.DiagLogLevel.INFO), - debug: _filterFunc('debug', types_1.DiagLogLevel.DEBUG), - verbose: _filterFunc('verbose', types_1.DiagLogLevel.VERBOSE), - }; -} -exports.createLogLevelDiagLogger = createLogLevelDiagLogger; -//# sourceMappingURL=logLevelLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js.map b/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js.map deleted file mode 100644 index 11488359..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logLevelLogger.js","sourceRoot":"","sources":["../../../../src/diag/internal/logLevelLogger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,oCAAqE;AAErE,SAAgB,wBAAwB,CACtC,QAAsB,EACtB,MAAkB;IAElB,IAAI,QAAQ,GAAG,oBAAY,CAAC,IAAI,EAAE;QAChC,QAAQ,GAAG,oBAAY,CAAC,IAAI,CAAC;KAC9B;SAAM,IAAI,QAAQ,GAAG,oBAAY,CAAC,GAAG,EAAE;QACtC,QAAQ,GAAG,oBAAY,CAAC,GAAG,CAAC;KAC7B;IAED,0CAA0C;IAC1C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAEtB,SAAS,WAAW,CAClB,QAA0B,EAC1B,QAAsB;QAEtB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACzD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,cAAa,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,oBAAY,CAAC,KAAK,CAAC;QAC/C,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAY,CAAC,IAAI,CAAC;QAC5C,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAY,CAAC,IAAI,CAAC;QAC5C,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,oBAAY,CAAC,KAAK,CAAC;QAC/C,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,oBAAY,CAAC,OAAO,CAAC;KACtD,CAAC;AACJ,CAAC;AAhCD,4DAgCC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogFunction, DiagLogger, DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.d.ts b/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.d.ts deleted file mode 100644 index ac71ee3b..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { DiagLogger } from '../types'; -/** - * Returns a No-Op Diagnostic logger where all messages do nothing. - * @implements {@link DiagLogger} - * @returns {DiagLogger} - */ -export declare function createNoopDiagLogger(): DiagLogger; -//# sourceMappingURL=noopLogger.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js b/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js deleted file mode 100644 index 40916314..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createNoopDiagLogger = void 0; -function noopLogFunction() { } -/** - * Returns a No-Op Diagnostic logger where all messages do nothing. - * @implements {@link DiagLogger} - * @returns {DiagLogger} - */ -function createNoopDiagLogger() { - return { - verbose: noopLogFunction, - debug: noopLogFunction, - info: noopLogFunction, - warn: noopLogFunction, - error: noopLogFunction, - }; -} -exports.createNoopDiagLogger = createNoopDiagLogger; -//# sourceMappingURL=noopLogger.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js.map b/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js.map deleted file mode 100644 index 20e0e81e..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/internal/noopLogger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"noopLogger.js","sourceRoot":"","sources":["../../../../src/diag/internal/noopLogger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,SAAS,eAAe,KAAI,CAAC;AAE7B;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;KACvB,CAAC;AACJ,CAAC;AARD,oDAQC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger } from '../types';\n\nfunction noopLogFunction() {}\n\n/**\n * Returns a No-Op Diagnostic logger where all messages do nothing.\n * @implements {@link DiagLogger}\n * @returns {DiagLogger}\n */\nexport function createNoopDiagLogger(): DiagLogger {\n return {\n verbose: noopLogFunction,\n debug: noopLogFunction,\n info: noopLogFunction,\n warn: noopLogFunction,\n error: noopLogFunction,\n };\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/types.d.ts b/node_modules/@opentelemetry/api/build/src/diag/types.d.ts deleted file mode 100644 index e992cc59..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/types.d.ts +++ /dev/null @@ -1,100 +0,0 @@ -export declare type DiagLogFunction = (message: string, ...args: unknown[]) => void; -/** - * Defines an internal diagnostic logger interface which is used to log internal diagnostic - * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function. - * API provided implementations include :- - * - a No-Op {@link createNoopDiagLogger} - * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger} - * - a general Console {@link DiagConsoleLogger} version. - */ -export interface DiagLogger { - /** Log an error scenario that was not expected and caused the requested operation to fail. */ - error: DiagLogFunction; - /** - * Log a warning scenario to inform the developer of an issues that should be investigated. - * The requested operation may or may not have succeeded or completed. - */ - warn: DiagLogFunction; - /** - * Log a general informational message, this should not affect functionality. - * This is also the default logging level so this should NOT be used for logging - * debugging level information. - */ - info: DiagLogFunction; - /** - * Log a general debug message that can be useful for identifying a failure. - * Information logged at this level may include diagnostic details that would - * help identify a failure scenario. - * For example: Logging the order of execution of async operations. - */ - debug: DiagLogFunction; - /** - * Log a detailed (verbose) trace level logging that can be used to identify failures - * where debug level logging would be insufficient, this level of tracing can include - * input and output parameters and as such may include PII information passing through - * the API. As such it is recommended that this level of tracing should not be enabled - * in a production environment. - */ - verbose: DiagLogFunction; -} -/** - * Defines the available internal logging levels for the diagnostic logger, the numeric values - * of the levels are defined to match the original values from the initial LogLevel to avoid - * compatibility/migration issues for any implementation that assume the numeric ordering. - */ -export declare enum DiagLogLevel { - /** Diagnostic Logging level setting to disable all logging (except and forced logs) */ - NONE = 0, - /** Identifies an error scenario */ - ERROR = 30, - /** Identifies a warning scenario */ - WARN = 50, - /** General informational log message */ - INFO = 60, - /** General debug log message */ - DEBUG = 70, - /** - * Detailed trace level logging should only be used for development, should only be set - * in a development environment. - */ - VERBOSE = 80, - /** Used to set the logging level to include all logging */ - ALL = 9999 -} -/** - * Defines options for ComponentLogger - */ -export interface ComponentLoggerOptions { - namespace: string; -} -export interface DiagLoggerOptions { - /** - * The {@link DiagLogLevel} used to filter logs sent to the logger. - * - * @defaultValue DiagLogLevel.INFO - */ - logLevel?: DiagLogLevel; - /** - * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered. - */ - suppressOverrideMessage?: boolean; -} -export interface DiagLoggerApi { - /** - * Set the global DiagLogger and DiagLogLevel. - * If a global diag logger is already set, this will override it. - * - * @param logger - The {@link DiagLogger} instance to set as the default logger. - * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set. - * @returns `true` if the logger was successfully registered, else `false` - */ - setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean; - /** - * - * @param logger - The {@link DiagLogger} instance to set as the default logger. - * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}. - * @returns `true` if the logger was successfully registered, else `false` - */ - setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/types.js b/node_modules/@opentelemetry/api/build/src/diag/types.js deleted file mode 100644 index c195e45e..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/types.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.DiagLogLevel = void 0; -/** - * Defines the available internal logging levels for the diagnostic logger, the numeric values - * of the levels are defined to match the original values from the initial LogLevel to avoid - * compatibility/migration issues for any implementation that assume the numeric ordering. - */ -var DiagLogLevel; -(function (DiagLogLevel) { - /** Diagnostic Logging level setting to disable all logging (except and forced logs) */ - DiagLogLevel[DiagLogLevel["NONE"] = 0] = "NONE"; - /** Identifies an error scenario */ - DiagLogLevel[DiagLogLevel["ERROR"] = 30] = "ERROR"; - /** Identifies a warning scenario */ - DiagLogLevel[DiagLogLevel["WARN"] = 50] = "WARN"; - /** General informational log message */ - DiagLogLevel[DiagLogLevel["INFO"] = 60] = "INFO"; - /** General debug log message */ - DiagLogLevel[DiagLogLevel["DEBUG"] = 70] = "DEBUG"; - /** - * Detailed trace level logging should only be used for development, should only be set - * in a development environment. - */ - DiagLogLevel[DiagLogLevel["VERBOSE"] = 80] = "VERBOSE"; - /** Used to set the logging level to include all logging */ - DiagLogLevel[DiagLogLevel["ALL"] = 9999] = "ALL"; -})(DiagLogLevel = exports.DiagLogLevel || (exports.DiagLogLevel = {})); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/diag/types.js.map b/node_modules/@opentelemetry/api/build/src/diag/types.js.map deleted file mode 100644 index ee8afcab..00000000 --- a/node_modules/@opentelemetry/api/build/src/diag/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diag/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AA+CH;;;;GAIG;AACH,IAAY,YAwBX;AAxBD,WAAY,YAAY;IACtB,uFAAuF;IACvF,+CAAQ,CAAA;IAER,mCAAmC;IACnC,kDAAU,CAAA;IAEV,oCAAoC;IACpC,gDAAS,CAAA;IAET,wCAAwC;IACxC,gDAAS,CAAA;IAET,gCAAgC;IAChC,kDAAU,CAAA;IAEV;;;OAGG;IACH,sDAAY,CAAA;IAEZ,2DAA2D;IAC3D,gDAAU,CAAA;AACZ,CAAC,EAxBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAwBvB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/index.d.ts b/node_modules/@opentelemetry/api/build/src/experimental/index.d.ts deleted file mode 100644 index bec39657..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { wrapTracer, SugaredTracer } from './trace/SugaredTracer'; -export { SugaredSpanOptions } from './trace/SugaredOptions'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/index.js b/node_modules/@opentelemetry/api/build/src/experimental/index.js deleted file mode 100644 index bd611ec0..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SugaredTracer = exports.wrapTracer = void 0; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var SugaredTracer_1 = require("./trace/SugaredTracer"); -Object.defineProperty(exports, "wrapTracer", { enumerable: true, get: function () { return SugaredTracer_1.wrapTracer; } }); -Object.defineProperty(exports, "SugaredTracer", { enumerable: true, get: function () { return SugaredTracer_1.SugaredTracer; } }); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/index.js.map b/node_modules/@opentelemetry/api/build/src/experimental/index.js.map deleted file mode 100644 index f0ed9836..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/experimental/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,uDAAkE;AAAzD,2GAAA,UAAU,OAAA;AAAE,8GAAA,aAAa,OAAA","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { wrapTracer, SugaredTracer } from './trace/SugaredTracer';\nexport { SugaredSpanOptions } from './trace/SugaredOptions';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.d.ts b/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.d.ts deleted file mode 100644 index 89040aff..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Span, SpanOptions } from '../../'; -/** - * Options needed for span creation - */ -export interface SugaredSpanOptions extends SpanOptions { - /** - * function to overwrite default exception behavior to record the exception. No exceptions should be thrown in the function. - * @param e Error which triggered this exception - * @param span current span from context - */ - onException?: (e: Error, span: Span) => void; -} -//# sourceMappingURL=SugaredOptions.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js b/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js deleted file mode 100644 index a18d65b2..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=SugaredOptions.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js.map b/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js.map deleted file mode 100644 index 19ded54e..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SugaredOptions.js","sourceRoot":"","sources":["../../../../src/experimental/trace/SugaredOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Span, SpanOptions } from '../../';\n\n/**\n * Options needed for span creation\n */\nexport interface SugaredSpanOptions extends SpanOptions {\n /**\n * function to overwrite default exception behavior to record the exception. No exceptions should be thrown in the function.\n * @param e Error which triggered this exception\n * @param span current span from context\n */\n onException?: (e: Error, span: Span) => void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.d.ts b/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.d.ts deleted file mode 100644 index 1ba7da92..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { SugaredSpanOptions } from './SugaredOptions'; -import { Context, Span, Tracer } from '../../'; -/** - * return a new SugaredTracer created from the supplied one - * @param tracer - */ -export declare function wrapTracer(tracer: Tracer): SugaredTracer; -export declare class SugaredTracer implements Tracer { - private readonly _tracer; - constructor(tracer: Tracer); - startActiveSpan: Tracer['startActiveSpan']; - startSpan: Tracer['startSpan']; - /** - * Starts a new {@link Span} and calls the given function passing it the - * created span as first argument. - * Additionally, the new span gets set in context and this context is activated - * for the duration of the function call. - * The span will be closed after the function has executed. - * If an exception occurs, it is recorded, the status is set to ERROR and the exception is rethrown. - * - * @param name The name of the span - * @param [options] SugaredSpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns return value of fn - * @example - * const something = tracer.withActiveSpan('op', span => { - * // do some work - * }); - * @example - * const something = await tracer.withActiveSpan('op', span => { - * // do some async work - * }); - */ - withActiveSpan ReturnType>(name: string, fn: F): ReturnType; - withActiveSpan ReturnType>(name: string, options: SugaredSpanOptions, fn: F): ReturnType; - withActiveSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; - /** - * Starts a new {@link Span} and ends it after execution of fn without setting it on context. - * The span will be closed after the function has executed. - * If an exception occurs, it is recorded, the status is et to ERROR and rethrown. - * - * This method does NOT modify the current Context. - * - * @param name The name of the span - * @param [options] SugaredSpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns Span The newly created span - * @example - * const something = tracer.withSpan('op', span => { - * // do some work - * }); - * @example - * const something = await tracer.withSpan('op', span => { - * // do some async work - * }); - */ - withSpan ReturnType>(name: string, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; - withSpan ReturnType>(name: string, options: SugaredSpanOptions, context: Context, fn: F): ReturnType; -} -//# sourceMappingURL=SugaredTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js b/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js deleted file mode 100644 index aae62498..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js +++ /dev/null @@ -1,93 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SugaredTracer = exports.wrapTracer = void 0; -const __1 = require("../../"); -const defaultOnException = (e, span) => { - span.recordException(e); - span.setStatus({ - code: __1.SpanStatusCode.ERROR, - }); -}; -/** - * return a new SugaredTracer created from the supplied one - * @param tracer - */ -function wrapTracer(tracer) { - return new SugaredTracer(tracer); -} -exports.wrapTracer = wrapTracer; -class SugaredTracer { - constructor(tracer) { - this._tracer = tracer; - this.startSpan = tracer.startSpan.bind(this._tracer); - this.startActiveSpan = tracer.startActiveSpan.bind(this._tracer); - } - withActiveSpan(name, arg2, arg3, arg4) { - const { opts, ctx, fn } = massageParams(arg2, arg3, arg4); - return this._tracer.startActiveSpan(name, opts, ctx, (span) => handleFn(span, opts, fn)); - } - withSpan(name, arg2, arg3, arg4) { - const { opts, ctx, fn } = massageParams(arg2, arg3, arg4); - const span = this._tracer.startSpan(name, opts, ctx); - return handleFn(span, opts, fn); - } -} -exports.SugaredTracer = SugaredTracer; -/** - * Massages parameters of withSpan and withActiveSpan to allow signature overwrites - * @param arg - * @param arg2 - * @param arg3 - */ -function massageParams(arg, arg2, arg3) { - let opts; - let ctx; - let fn; - if (!arg2 && !arg3) { - fn = arg; - } - else if (!arg3) { - opts = arg; - fn = arg2; - } - else { - opts = arg; - ctx = arg2; - fn = arg3; - } - opts = opts !== null && opts !== void 0 ? opts : {}; - ctx = ctx !== null && ctx !== void 0 ? ctx : __1.context.active(); - return { opts, ctx, fn }; -} -/** - * Executes fn, returns results and runs onException in the case of exception to allow overwriting of error handling - * @param span - * @param opts - * @param fn - */ -function handleFn(span, opts, fn) { - var _a; - const onException = (_a = opts.onException) !== null && _a !== void 0 ? _a : defaultOnException; - const errorHandler = (e) => { - onException(e, span); - span.end(); - throw e; - }; - try { - const ret = fn(span); - // if fn is an async function, attach a recordException and spanEnd callback to the promise - if (typeof (ret === null || ret === void 0 ? void 0 : ret.then) === 'function') { - return ret.then(val => { - span.end(); - return val; - }, errorHandler); - } - span.end(); - return ret; - } - catch (e) { - // add throw to signal the compiler that this will throw in the inner scope - throw errorHandler(e); - } -} -//# sourceMappingURL=SugaredTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js.map b/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js.map deleted file mode 100644 index b7abda9f..00000000 --- a/node_modules/@opentelemetry/api/build/src/experimental/trace/SugaredTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SugaredTracer.js","sourceRoot":"","sources":["../../../../src/experimental/trace/SugaredTracer.ts"],"names":[],"mappings":";;;AAgBA,8BAAwE;AAExE,MAAM,kBAAkB,GAAG,CAAC,CAAQ,EAAE,IAAU,EAAE,EAAE;IAClD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,SAAS,CAAC;QACb,IAAI,EAAE,kBAAc,CAAC,KAAK;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACH,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAFD,gCAEC;AAED,MAAa,aAAa;IAGxB,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IA0CD,cAAc,CACZ,IAAY,EACZ,IAA4B,EAC5B,IAAkB,EAClB,IAAQ;QAER,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAU,EAAE,EAAE,CAClE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CACR,CAAC;IACrB,CAAC;IA4CD,QAAQ,CACN,IAAY,EACZ,IAA4B,EAC5B,IAAkB,EAClB,IAAQ;QAER,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAkB,CAAC;IACnD,CAAC;CACF;AAnHD,sCAmHC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,GAA2B,EAC3B,IAAkB,EAClB,IAAQ;IAER,IAAI,IAAoC,CAAC;IACzC,IAAI,GAAwB,CAAC;IAC7B,IAAI,EAAK,CAAC;IAEV,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;QAClB,EAAE,GAAG,GAAQ,CAAC;KACf;SAAM,IAAI,CAAC,IAAI,EAAE;QAChB,IAAI,GAAG,GAAyB,CAAC;QACjC,EAAE,GAAG,IAAS,CAAC;KAChB;SAAM;QACL,IAAI,GAAG,GAAyB,CAAC;QACjC,GAAG,GAAG,IAAe,CAAC;QACtB,EAAE,GAAG,IAAS,CAAC;KAChB;IACD,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;IAClB,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,WAAO,CAAC,MAAM,EAAE,CAAC;IAE9B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,IAAU,EACV,IAAwB,EACxB,EAAK;;IAEL,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,kBAAkB,CAAC;IAC3D,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;QAChC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,IAAI;QACF,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAA2B,CAAC;QAC/C,2FAA2F;QAC3F,IAAI,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE;YACnC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,YAAY,CAAkB,CAAC;SACnC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,GAAoB,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,2EAA2E;QAC3E,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;KACvB;AACH,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SugaredSpanOptions } from './SugaredOptions';\nimport { context, Context, Span, SpanStatusCode, Tracer } from '../../';\n\nconst defaultOnException = (e: Error, span: Span) => {\n span.recordException(e);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n });\n};\n\n/**\n * return a new SugaredTracer created from the supplied one\n * @param tracer\n */\nexport function wrapTracer(tracer: Tracer): SugaredTracer {\n return new SugaredTracer(tracer);\n}\n\nexport class SugaredTracer implements Tracer {\n private readonly _tracer: Tracer;\n\n constructor(tracer: Tracer) {\n this._tracer = tracer;\n this.startSpan = tracer.startSpan.bind(this._tracer);\n this.startActiveSpan = tracer.startActiveSpan.bind(this._tracer);\n }\n\n startActiveSpan: Tracer['startActiveSpan'];\n startSpan: Tracer['startSpan'];\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally, the new span gets set in context and this context is activated\n * for the duration of the function call.\n * The span will be closed after the function has executed.\n * If an exception occurs, it is recorded, the status is set to ERROR and the exception is rethrown.\n *\n * @param name The name of the span\n * @param [options] SugaredSpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.withActiveSpan('op', span => {\n * // do some work\n * });\n * @example\n * const something = await tracer.withActiveSpan('op', span => {\n * // do some async work\n * });\n */\n withActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withActiveSpan ReturnType>(\n name: string,\n arg2: F | SugaredSpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType {\n const { opts, ctx, fn } = massageParams(arg2, arg3, arg4);\n\n return this._tracer.startActiveSpan(name, opts, ctx, (span: Span) =>\n handleFn(span, opts, fn)\n ) as ReturnType;\n }\n\n /**\n * Starts a new {@link Span} and ends it after execution of fn without setting it on context.\n * The span will be closed after the function has executed.\n * If an exception occurs, it is recorded, the status is et to ERROR and rethrown.\n *\n * This method does NOT modify the current Context.\n *\n * @param name The name of the span\n * @param [options] SugaredSpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns Span The newly created span\n * @example\n * const something = tracer.withSpan('op', span => {\n * // do some work\n * });\n * @example\n * const something = await tracer.withSpan('op', span => {\n * // do some async work\n * });\n */\n withSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n options: SugaredSpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n withSpan ReturnType>(\n name: string,\n arg2: SugaredSpanOptions | F,\n arg3?: Context | F,\n arg4?: F\n ): ReturnType {\n const { opts, ctx, fn } = massageParams(arg2, arg3, arg4);\n\n const span = this._tracer.startSpan(name, opts, ctx);\n return handleFn(span, opts, fn) as ReturnType;\n }\n}\n\n/**\n * Massages parameters of withSpan and withActiveSpan to allow signature overwrites\n * @param arg\n * @param arg2\n * @param arg3\n */\nfunction massageParams ReturnType>(\n arg: F | SugaredSpanOptions,\n arg2?: F | Context,\n arg3?: F\n) {\n let opts: SugaredSpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (!arg2 && !arg3) {\n fn = arg as F;\n } else if (!arg3) {\n opts = arg as SugaredSpanOptions;\n fn = arg2 as F;\n } else {\n opts = arg as SugaredSpanOptions;\n ctx = arg2 as Context;\n fn = arg3 as F;\n }\n opts = opts ?? {};\n ctx = ctx ?? context.active();\n\n return { opts, ctx, fn };\n}\n\n/**\n * Executes fn, returns results and runs onException in the case of exception to allow overwriting of error handling\n * @param span\n * @param opts\n * @param fn\n */\nfunction handleFn ReturnType>(\n span: Span,\n opts: SugaredSpanOptions,\n fn: F\n): ReturnType {\n const onException = opts.onException ?? defaultOnException;\n const errorHandler = (e: Error) => {\n onException(e, span);\n span.end();\n throw e;\n };\n\n try {\n const ret = fn(span) as Promise>;\n // if fn is an async function, attach a recordException and spanEnd callback to the promise\n if (typeof ret?.then === 'function') {\n return ret.then(val => {\n span.end();\n return val;\n }, errorHandler) as ReturnType;\n }\n span.end();\n return ret as ReturnType;\n } catch (e) {\n // add throw to signal the compiler that this will throw in the inner scope\n throw errorHandler(e);\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/index.d.ts b/node_modules/@opentelemetry/api/build/src/index.d.ts deleted file mode 100644 index eea88f22..00000000 --- a/node_modules/@opentelemetry/api/build/src/index.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -export { BaggageEntry, BaggageEntryMetadata, Baggage } from './baggage/types'; -export { baggageEntryMetadataFromString } from './baggage/utils'; -export { Exception } from './common/Exception'; -export { HrTime, TimeInput } from './common/Time'; -export { Attributes, AttributeValue } from './common/Attributes'; -export { createContextKey, ROOT_CONTEXT } from './context/context'; -export { Context, ContextManager } from './context/types'; -export type { ContextAPI } from './api/context'; -export { DiagConsoleLogger } from './diag/consoleLogger'; -export { DiagLogFunction, DiagLogger, DiagLogLevel, ComponentLoggerOptions, DiagLoggerOptions, } from './diag/types'; -export type { DiagAPI } from './api/diag'; -export { createNoopMeter } from './metrics/NoopMeter'; -export { MeterOptions, Meter } from './metrics/Meter'; -export { MeterProvider } from './metrics/MeterProvider'; -export { ValueType, Counter, Gauge, Histogram, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter, BatchObservableCallback, MetricAdvice, MetricAttributes, MetricAttributeValue, ObservableCallback, } from './metrics/Metric'; -export { BatchObservableResult, ObservableResult, } from './metrics/ObservableResult'; -export type { MetricsAPI } from './api/metrics'; -export { TextMapPropagator, TextMapSetter, TextMapGetter, defaultTextMapGetter, defaultTextMapSetter, } from './propagation/TextMapPropagator'; -export type { PropagationAPI } from './api/propagation'; -export { SpanAttributes, SpanAttributeValue } from './trace/attributes'; -export { Link } from './trace/link'; -export { ProxyTracer, TracerDelegator } from './trace/ProxyTracer'; -export { ProxyTracerProvider } from './trace/ProxyTracerProvider'; -export { Sampler } from './trace/Sampler'; -export { SamplingDecision, SamplingResult } from './trace/SamplingResult'; -export { SpanContext } from './trace/span_context'; -export { SpanKind } from './trace/span_kind'; -export { Span } from './trace/span'; -export { SpanOptions } from './trace/SpanOptions'; -export { SpanStatus, SpanStatusCode } from './trace/status'; -export { TraceFlags } from './trace/trace_flags'; -export { TraceState } from './trace/trace_state'; -export { createTraceState } from './trace/internal/utils'; -export { TracerProvider } from './trace/tracer_provider'; -export { Tracer } from './trace/tracer'; -export { TracerOptions } from './trace/tracer_options'; -export { isSpanContextValid, isValidTraceId, isValidSpanId, } from './trace/spancontext-utils'; -export { INVALID_SPANID, INVALID_TRACEID, INVALID_SPAN_CONTEXT, } from './trace/invalid-span-constants'; -export type { TraceAPI } from './api/trace'; -import { context } from './context-api'; -import { diag } from './diag-api'; -import { metrics } from './metrics-api'; -import { propagation } from './propagation-api'; -import { trace } from './trace-api'; -export { context, diag, metrics, propagation, trace }; -declare const _default: { - context: import("./api/context").ContextAPI; - diag: import("./api/diag").DiagAPI; - metrics: import("./api/metrics").MetricsAPI; - propagation: import("./api/propagation").PropagationAPI; - trace: import("./api/trace").TraceAPI; -}; -export default _default; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/index.js b/node_modules/@opentelemetry/api/build/src/index.js deleted file mode 100644 index cb0a8723..00000000 --- a/node_modules/@opentelemetry/api/build/src/index.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.trace = exports.propagation = exports.metrics = exports.diag = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.createTraceState = exports.TraceFlags = exports.SpanStatusCode = exports.SpanKind = exports.SamplingDecision = exports.ProxyTracerProvider = exports.ProxyTracer = exports.defaultTextMapSetter = exports.defaultTextMapGetter = exports.ValueType = exports.createNoopMeter = exports.DiagLogLevel = exports.DiagConsoleLogger = exports.ROOT_CONTEXT = exports.createContextKey = exports.baggageEntryMetadataFromString = void 0; -var utils_1 = require("./baggage/utils"); -Object.defineProperty(exports, "baggageEntryMetadataFromString", { enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } }); -// Context APIs -var context_1 = require("./context/context"); -Object.defineProperty(exports, "createContextKey", { enumerable: true, get: function () { return context_1.createContextKey; } }); -Object.defineProperty(exports, "ROOT_CONTEXT", { enumerable: true, get: function () { return context_1.ROOT_CONTEXT; } }); -// Diag APIs -var consoleLogger_1 = require("./diag/consoleLogger"); -Object.defineProperty(exports, "DiagConsoleLogger", { enumerable: true, get: function () { return consoleLogger_1.DiagConsoleLogger; } }); -var types_1 = require("./diag/types"); -Object.defineProperty(exports, "DiagLogLevel", { enumerable: true, get: function () { return types_1.DiagLogLevel; } }); -// Metrics APIs -var NoopMeter_1 = require("./metrics/NoopMeter"); -Object.defineProperty(exports, "createNoopMeter", { enumerable: true, get: function () { return NoopMeter_1.createNoopMeter; } }); -var Metric_1 = require("./metrics/Metric"); -Object.defineProperty(exports, "ValueType", { enumerable: true, get: function () { return Metric_1.ValueType; } }); -// Propagation APIs -var TextMapPropagator_1 = require("./propagation/TextMapPropagator"); -Object.defineProperty(exports, "defaultTextMapGetter", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapGetter; } }); -Object.defineProperty(exports, "defaultTextMapSetter", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapSetter; } }); -var ProxyTracer_1 = require("./trace/ProxyTracer"); -Object.defineProperty(exports, "ProxyTracer", { enumerable: true, get: function () { return ProxyTracer_1.ProxyTracer; } }); -var ProxyTracerProvider_1 = require("./trace/ProxyTracerProvider"); -Object.defineProperty(exports, "ProxyTracerProvider", { enumerable: true, get: function () { return ProxyTracerProvider_1.ProxyTracerProvider; } }); -var SamplingResult_1 = require("./trace/SamplingResult"); -Object.defineProperty(exports, "SamplingDecision", { enumerable: true, get: function () { return SamplingResult_1.SamplingDecision; } }); -var span_kind_1 = require("./trace/span_kind"); -Object.defineProperty(exports, "SpanKind", { enumerable: true, get: function () { return span_kind_1.SpanKind; } }); -var status_1 = require("./trace/status"); -Object.defineProperty(exports, "SpanStatusCode", { enumerable: true, get: function () { return status_1.SpanStatusCode; } }); -var trace_flags_1 = require("./trace/trace_flags"); -Object.defineProperty(exports, "TraceFlags", { enumerable: true, get: function () { return trace_flags_1.TraceFlags; } }); -var utils_2 = require("./trace/internal/utils"); -Object.defineProperty(exports, "createTraceState", { enumerable: true, get: function () { return utils_2.createTraceState; } }); -var spancontext_utils_1 = require("./trace/spancontext-utils"); -Object.defineProperty(exports, "isSpanContextValid", { enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } }); -Object.defineProperty(exports, "isValidTraceId", { enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } }); -Object.defineProperty(exports, "isValidSpanId", { enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } }); -var invalid_span_constants_1 = require("./trace/invalid-span-constants"); -Object.defineProperty(exports, "INVALID_SPANID", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } }); -Object.defineProperty(exports, "INVALID_TRACEID", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } }); -Object.defineProperty(exports, "INVALID_SPAN_CONTEXT", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } }); -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -const context_api_1 = require("./context-api"); -Object.defineProperty(exports, "context", { enumerable: true, get: function () { return context_api_1.context; } }); -const diag_api_1 = require("./diag-api"); -Object.defineProperty(exports, "diag", { enumerable: true, get: function () { return diag_api_1.diag; } }); -const metrics_api_1 = require("./metrics-api"); -Object.defineProperty(exports, "metrics", { enumerable: true, get: function () { return metrics_api_1.metrics; } }); -const propagation_api_1 = require("./propagation-api"); -Object.defineProperty(exports, "propagation", { enumerable: true, get: function () { return propagation_api_1.propagation; } }); -const trace_api_1 = require("./trace-api"); -Object.defineProperty(exports, "trace", { enumerable: true, get: function () { return trace_api_1.trace; } }); -// Default export. -exports.default = { - context: context_api_1.context, - diag: diag_api_1.diag, - metrics: metrics_api_1.metrics, - propagation: propagation_api_1.propagation, - trace: trace_api_1.trace, -}; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/index.js.map b/node_modules/@opentelemetry/api/build/src/index.js.map deleted file mode 100644 index 2ff3ff6a..00000000 --- a/node_modules/@opentelemetry/api/build/src/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,yCAAiE;AAAxD,uHAAA,8BAA8B,OAAA;AAKvC,eAAe;AACf,6CAAmE;AAA1D,2GAAA,gBAAgB,OAAA;AAAE,uGAAA,YAAY,OAAA;AAIvC,YAAY;AACZ,sDAAyD;AAAhD,kHAAA,iBAAiB,OAAA;AAC1B,sCAMsB;AAHpB,qGAAA,YAAY,OAAA;AAMd,eAAe;AACf,iDAAsD;AAA7C,4GAAA,eAAe,OAAA;AAGxB,2CAgB0B;AAfxB,mGAAA,SAAS,OAAA;AAsBX,mBAAmB;AACnB,qEAMyC;AAFvC,yHAAA,oBAAoB,OAAA;AACpB,yHAAA,oBAAoB,OAAA;AAOtB,mDAAmE;AAA1D,0GAAA,WAAW,OAAA;AACpB,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAE5B,yDAA0E;AAAjE,kHAAA,gBAAgB,OAAA;AAEzB,+CAA6C;AAApC,qGAAA,QAAQ,OAAA;AAGjB,yCAA4D;AAAvC,wGAAA,cAAc,OAAA;AACnC,mDAAiD;AAAxC,yGAAA,UAAU,OAAA;AAEnB,gDAA0D;AAAjD,yGAAA,gBAAgB,OAAA;AAIzB,+DAImC;AAHjC,uHAAA,kBAAkB,OAAA;AAClB,mHAAA,cAAc,OAAA;AACd,kHAAA,aAAa,OAAA;AAEf,yEAIwC;AAHtC,wHAAA,cAAc,OAAA;AACd,yHAAA,eAAe,OAAA;AACf,8HAAA,oBAAoB,OAAA;AAItB,sEAAsE;AACtE,qCAAqC;AACrC,+CAAwC;AAO/B,wFAPA,qBAAO,OAOA;AANhB,yCAAkC;AAMhB,qFANT,eAAI,OAMS;AALtB,+CAAwC;AAKhB,wFALf,qBAAO,OAKe;AAJ/B,uDAAgD;AAIf,4FAJxB,6BAAW,OAIwB;AAH5C,2CAAoC;AAGU,sFAHrC,iBAAK,OAGqC;AACnD,kBAAkB;AAClB,kBAAe;IACb,OAAO,EAAP,qBAAO;IACP,IAAI,EAAJ,eAAI;IACJ,OAAO,EAAP,qBAAO;IACP,WAAW,EAAX,6BAAW;IACX,KAAK,EAAL,iBAAK;CACN,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BaggageEntry, BaggageEntryMetadata, Baggage } from './baggage/types';\nexport { baggageEntryMetadataFromString } from './baggage/utils';\nexport { Exception } from './common/Exception';\nexport { HrTime, TimeInput } from './common/Time';\nexport { Attributes, AttributeValue } from './common/Attributes';\n\n// Context APIs\nexport { createContextKey, ROOT_CONTEXT } from './context/context';\nexport { Context, ContextManager } from './context/types';\nexport type { ContextAPI } from './api/context';\n\n// Diag APIs\nexport { DiagConsoleLogger } from './diag/consoleLogger';\nexport {\n DiagLogFunction,\n DiagLogger,\n DiagLogLevel,\n ComponentLoggerOptions,\n DiagLoggerOptions,\n} from './diag/types';\nexport type { DiagAPI } from './api/diag';\n\n// Metrics APIs\nexport { createNoopMeter } from './metrics/NoopMeter';\nexport { MeterOptions, Meter } from './metrics/Meter';\nexport { MeterProvider } from './metrics/MeterProvider';\nexport {\n ValueType,\n Counter,\n Gauge,\n Histogram,\n MetricOptions,\n Observable,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n BatchObservableCallback,\n MetricAdvice,\n MetricAttributes,\n MetricAttributeValue,\n ObservableCallback,\n} from './metrics/Metric';\nexport {\n BatchObservableResult,\n ObservableResult,\n} from './metrics/ObservableResult';\nexport type { MetricsAPI } from './api/metrics';\n\n// Propagation APIs\nexport {\n TextMapPropagator,\n TextMapSetter,\n TextMapGetter,\n defaultTextMapGetter,\n defaultTextMapSetter,\n} from './propagation/TextMapPropagator';\nexport type { PropagationAPI } from './api/propagation';\n\n// Trace APIs\nexport { SpanAttributes, SpanAttributeValue } from './trace/attributes';\nexport { Link } from './trace/link';\nexport { ProxyTracer, TracerDelegator } from './trace/ProxyTracer';\nexport { ProxyTracerProvider } from './trace/ProxyTracerProvider';\nexport { Sampler } from './trace/Sampler';\nexport { SamplingDecision, SamplingResult } from './trace/SamplingResult';\nexport { SpanContext } from './trace/span_context';\nexport { SpanKind } from './trace/span_kind';\nexport { Span } from './trace/span';\nexport { SpanOptions } from './trace/SpanOptions';\nexport { SpanStatus, SpanStatusCode } from './trace/status';\nexport { TraceFlags } from './trace/trace_flags';\nexport { TraceState } from './trace/trace_state';\nexport { createTraceState } from './trace/internal/utils';\nexport { TracerProvider } from './trace/tracer_provider';\nexport { Tracer } from './trace/tracer';\nexport { TracerOptions } from './trace/tracer_options';\nexport {\n isSpanContextValid,\n isValidTraceId,\n isValidSpanId,\n} from './trace/spancontext-utils';\nexport {\n INVALID_SPANID,\n INVALID_TRACEID,\n INVALID_SPAN_CONTEXT,\n} from './trace/invalid-span-constants';\nexport type { TraceAPI } from './api/trace';\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { context } from './context-api';\nimport { diag } from './diag-api';\nimport { metrics } from './metrics-api';\nimport { propagation } from './propagation-api';\nimport { trace } from './trace-api';\n\n// Named export.\nexport { context, diag, metrics, propagation, trace };\n// Default export.\nexport default {\n context,\n diag,\n metrics,\n propagation,\n trace,\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/internal/global-utils.d.ts b/node_modules/@opentelemetry/api/build/src/internal/global-utils.d.ts deleted file mode 100644 index 320db975..00000000 --- a/node_modules/@opentelemetry/api/build/src/internal/global-utils.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MeterProvider } from '../metrics/MeterProvider'; -import { ContextManager } from '../context/types'; -import { DiagLogger } from '../diag/types'; -import { TextMapPropagator } from '../propagation/TextMapPropagator'; -import type { TracerProvider } from '../trace/tracer_provider'; -export declare function registerGlobal(type: Type, instance: OTelGlobalAPI[Type], diag: DiagLogger, allowOverride?: boolean): boolean; -export declare function getGlobal(type: Type): OTelGlobalAPI[Type] | undefined; -export declare function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger): void; -declare type OTelGlobalAPI = { - version: string; - diag?: DiagLogger; - trace?: TracerProvider; - context?: ContextManager; - metrics?: MeterProvider; - propagation?: TextMapPropagator; -}; -export {}; -//# sourceMappingURL=global-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/internal/global-utils.js b/node_modules/@opentelemetry/api/build/src/internal/global-utils.js deleted file mode 100644 index 11a1a441..00000000 --- a/node_modules/@opentelemetry/api/build/src/internal/global-utils.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.unregisterGlobal = exports.getGlobal = exports.registerGlobal = void 0; -const platform_1 = require("../platform"); -const version_1 = require("../version"); -const semver_1 = require("./semver"); -const major = version_1.VERSION.split('.')[0]; -const GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(`opentelemetry.js.api.${major}`); -const _global = platform_1._globalThis; -function registerGlobal(type, instance, diag, allowOverride = false) { - var _a; - const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { - version: version_1.VERSION, - }); - if (!allowOverride && api[type]) { - // already registered an API of this type - const err = new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${type}`); - diag.error(err.stack || err.message); - return false; - } - if (api.version !== version_1.VERSION) { - // All registered APIs must be of the same version exactly - const err = new Error(`@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${version_1.VERSION}`); - diag.error(err.stack || err.message); - return false; - } - api[type] = instance; - diag.debug(`@opentelemetry/api: Registered a global for ${type} v${version_1.VERSION}.`); - return true; -} -exports.registerGlobal = registerGlobal; -function getGlobal(type) { - var _a, _b; - const globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version; - if (!globalVersion || !(0, semver_1.isCompatible)(globalVersion)) { - return; - } - return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type]; -} -exports.getGlobal = getGlobal; -function unregisterGlobal(type, diag) { - diag.debug(`@opentelemetry/api: Unregistering a global for ${type} v${version_1.VERSION}.`); - const api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; - if (api) { - delete api[type]; - } -} -exports.unregisterGlobal = unregisterGlobal; -//# sourceMappingURL=global-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/internal/global-utils.js.map b/node_modules/@opentelemetry/api/build/src/internal/global-utils.js.map deleted file mode 100644 index ddca6376..00000000 --- a/node_modules/@opentelemetry/api/build/src/internal/global-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"global-utils.js","sourceRoot":"","sources":["../../../src/internal/global-utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,0CAA0C;AAG1C,wCAAqC;AACrC,qCAAwC;AAExC,MAAM,KAAK,GAAG,iBAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAC7C,wBAAwB,KAAK,EAAE,CAChC,CAAC;AAEF,MAAM,OAAO,GAAG,sBAAyB,CAAC;AAE1C,SAAgB,cAAc,CAC5B,IAAU,EACV,QAA6B,EAC7B,IAAgB,EAChB,aAAa,GAAG,KAAK;;IAErB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,GAAG,MAAA,OAAO,CAC1D,4BAA4B,CAC7B,mCAAI;QACH,OAAO,EAAE,iBAAO;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,yCAAyC;QACzC,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,gEAAgE,IAAI,EAAE,CACvE,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAO,EAAE;QAC3B,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,gDAAgD,GAAG,CAAC,OAAO,QAAQ,IAAI,8CAA8C,iBAAO,EAAE,CAC/H,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;KACd;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACrB,IAAI,CAAC,KAAK,CACR,+CAA+C,IAAI,KAAK,iBAAO,GAAG,CACnE,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AApCD,wCAoCC;AAED,SAAgB,SAAS,CACvB,IAAU;;IAEV,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,4BAA4B,CAAC,0CAAE,OAAO,CAAC;IACrE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAA,qBAAY,EAAC,aAAa,CAAC,EAAE;QAClD,OAAO;KACR;IACD,OAAO,MAAA,OAAO,CAAC,4BAA4B,CAAC,0CAAG,IAAI,CAAC,CAAC;AACvD,CAAC;AARD,8BAQC;AAED,SAAgB,gBAAgB,CAAC,IAAyB,EAAE,IAAgB;IAC1E,IAAI,CAAC,KAAK,CACR,kDAAkD,IAAI,KAAK,iBAAO,GAAG,CACtE,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAElD,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;KAClB;AACH,CAAC;AATD,4CASC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { ContextManager } from '../context/types';\nimport { DiagLogger } from '../diag/types';\nimport { _globalThis } from '../platform';\nimport { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\nconst _global = _globalThis as OTelGlobal;\n\nexport function registerGlobal(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/internal/semver.d.ts b/node_modules/@opentelemetry/api/build/src/internal/semver.d.ts deleted file mode 100644 index d9f4259e..00000000 --- a/node_modules/@opentelemetry/api/build/src/internal/semver.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Create a function to test an API version to see if it is compatible with the provided ownVersion. - * - * The returned function has the following semantics: - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param ownVersion version which should be checked against - */ -export declare function _makeCompatibilityCheck(ownVersion: string): (globalVersion: string) => boolean; -/** - * Test an API version to see if it is compatible with this API. - * - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param version version of the API requesting an instance of the global API - */ -export declare const isCompatible: (globalVersion: string) => boolean; -//# sourceMappingURL=semver.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/internal/semver.js b/node_modules/@opentelemetry/api/build/src/internal/semver.js deleted file mode 100644 index 7a073b22..00000000 --- a/node_modules/@opentelemetry/api/build/src/internal/semver.js +++ /dev/null @@ -1,122 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isCompatible = exports._makeCompatibilityCheck = void 0; -const version_1 = require("../version"); -const re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; -/** - * Create a function to test an API version to see if it is compatible with the provided ownVersion. - * - * The returned function has the following semantics: - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param ownVersion version which should be checked against - */ -function _makeCompatibilityCheck(ownVersion) { - const acceptedVersions = new Set([ownVersion]); - const rejectedVersions = new Set(); - const myVersionMatch = ownVersion.match(re); - if (!myVersionMatch) { - // we cannot guarantee compatibility so we always return noop - return () => false; - } - const ownVersionParsed = { - major: +myVersionMatch[1], - minor: +myVersionMatch[2], - patch: +myVersionMatch[3], - prerelease: myVersionMatch[4], - }; - // if ownVersion has a prerelease tag, versions must match exactly - if (ownVersionParsed.prerelease != null) { - return function isExactmatch(globalVersion) { - return globalVersion === ownVersion; - }; - } - function _reject(v) { - rejectedVersions.add(v); - return false; - } - function _accept(v) { - acceptedVersions.add(v); - return true; - } - return function isCompatible(globalVersion) { - if (acceptedVersions.has(globalVersion)) { - return true; - } - if (rejectedVersions.has(globalVersion)) { - return false; - } - const globalVersionMatch = globalVersion.match(re); - if (!globalVersionMatch) { - // cannot parse other version - // we cannot guarantee compatibility so we always noop - return _reject(globalVersion); - } - const globalVersionParsed = { - major: +globalVersionMatch[1], - minor: +globalVersionMatch[2], - patch: +globalVersionMatch[3], - prerelease: globalVersionMatch[4], - }; - // if globalVersion has a prerelease tag, versions must match exactly - if (globalVersionParsed.prerelease != null) { - return _reject(globalVersion); - } - // major versions must match - if (ownVersionParsed.major !== globalVersionParsed.major) { - return _reject(globalVersion); - } - if (ownVersionParsed.major === 0) { - if (ownVersionParsed.minor === globalVersionParsed.minor && - ownVersionParsed.patch <= globalVersionParsed.patch) { - return _accept(globalVersion); - } - return _reject(globalVersion); - } - if (ownVersionParsed.minor <= globalVersionParsed.minor) { - return _accept(globalVersion); - } - return _reject(globalVersion); - }; -} -exports._makeCompatibilityCheck = _makeCompatibilityCheck; -/** - * Test an API version to see if it is compatible with this API. - * - * - Exact match is always compatible - * - Major versions must match exactly - * - 1.x package cannot use global 2.x package - * - 2.x package cannot use global 1.x package - * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API - * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects - * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3 - * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor - * - Patch and build tag differences are not considered at this time - * - * @param version version of the API requesting an instance of the global API - */ -exports.isCompatible = _makeCompatibilityCheck(version_1.VERSION); -//# sourceMappingURL=semver.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/internal/semver.js.map b/node_modules/@opentelemetry/api/build/src/internal/semver.js.map deleted file mode 100644 index d58dc787..00000000 --- a/node_modules/@opentelemetry/api/build/src/internal/semver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../../src/internal/semver.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,wCAAqC;AAErC,MAAM,EAAE,GAAG,+BAA+B,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,uBAAuB,CACrC,UAAkB;IAElB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,cAAc,EAAE;QACnB,6DAA6D;QAC7D,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;KACpB;IAED,MAAM,gBAAgB,GAAG;QACvB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;KAC9B,CAAC;IAEF,kEAAkE;IAClE,IAAI,gBAAgB,CAAC,UAAU,IAAI,IAAI,EAAE;QACvC,OAAO,SAAS,YAAY,CAAC,aAAqB;YAChD,OAAO,aAAa,KAAK,UAAU,CAAC;QACtC,CAAC,CAAC;KACH;IAED,SAAS,OAAO,CAAC,CAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,OAAO,CAAC,CAAS;QACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,YAAY,CAAC,aAAqB;QAChD,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE;YACvB,6BAA6B;YAC7B,sDAAsD;YACtD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,MAAM,mBAAmB,GAAG;YAC1B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC7B,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;SAClC,CAAC;QAEF,qEAAqE;QACrE,IAAI,mBAAmB,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1C,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,4BAA4B;QAC5B,IAAI,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,EAAE;YACxD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,gBAAgB,CAAC,KAAK,KAAK,CAAC,EAAE;YAChC,IACE,gBAAgB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK;gBACpD,gBAAgB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EACnD;gBACA,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;aAC/B;YAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,gBAAgB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE;YACvD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAtFD,0DAsFC;AAED;;;;;;;;;;;;;;GAcG;AACU,QAAA,YAAY,GAAG,uBAAuB,CAAC,iBAAO,CAAC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics-api.d.ts b/node_modules/@opentelemetry/api/build/src/metrics-api.d.ts deleted file mode 100644 index 26d539c0..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { MetricsAPI } from './api/metrics'; -/** Entrypoint for metrics API */ -export declare const metrics: MetricsAPI; -//# sourceMappingURL=metrics-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics-api.js b/node_modules/@opentelemetry/api/build/src/metrics-api.js deleted file mode 100644 index 987f7c25..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics-api.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.metrics = void 0; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -const metrics_1 = require("./api/metrics"); -/** Entrypoint for metrics API */ -exports.metrics = metrics_1.MetricsAPI.getInstance(); -//# sourceMappingURL=metrics-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics-api.js.map b/node_modules/@opentelemetry/api/build/src/metrics-api.js.map deleted file mode 100644 index 26e18021..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"metrics-api.js","sourceRoot":"","sources":["../../src/metrics-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,2CAA2C;AAC3C,iCAAiC;AACpB,QAAA,OAAO,GAAG,oBAAU,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { MetricsAPI } from './api/metrics';\n/** Entrypoint for metrics API */\nexport const metrics = MetricsAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/Meter.d.ts b/node_modules/@opentelemetry/api/build/src/metrics/Meter.d.ts deleted file mode 100644 index 5e3926b7..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/Meter.d.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { BatchObservableCallback, Counter, Gauge, Histogram, MetricAttributes, MetricOptions, Observable, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter } from './Metric'; -/** - * An interface describes additional metadata of a meter. - */ -export interface MeterOptions { - /** - * The schemaUrl of the meter or instrumentation library - */ - schemaUrl?: string; -} -/** - * An interface to allow the recording metrics. - * - * {@link Metric}s are used for recording pre-defined aggregation (`Counter`), - * or raw values (`Histogram`) in which the aggregation and attributes - * for the exported metric are deferred. - */ -export interface Meter { - /** - * Creates and returns a new `Gauge`. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createGauge(name: string, options?: MetricOptions): Gauge; - /** - * Creates and returns a new `Histogram`. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createHistogram(name: string, options?: MetricOptions): Histogram; - /** - * Creates a new `Counter` metric. Generally, this kind of metric when the - * value is a quantity, the sum is of primary interest, and the event count - * and value distribution are not of primary interest. - * @param name the name of the metric. - * @param [options] the metric options. - */ - createCounter(name: string, options?: MetricOptions): Counter; - /** - * Creates a new `UpDownCounter` metric. UpDownCounter is a synchronous - * instrument and very similar to Counter except that Add(increment) - * supports negative increments. It is generally useful for capturing changes - * in an amount of resources used, or any quantity that rises and falls - * during a request. - * Example uses for UpDownCounter: - *
                    - *
                  1. count the number of active requests.
                  2. - *
                  3. count memory in use by instrumenting new and delete.
                  4. - *
                  5. count queue size by instrumenting enqueue and dequeue.
                  6. - *
                  7. count semaphore up and down operations.
                  8. - *
                  - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createUpDownCounter(name: string, options?: MetricOptions): UpDownCounter; - /** - * Creates a new `ObservableGauge` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableGauge(name: string, options?: MetricOptions): ObservableGauge; - /** - * Creates a new `ObservableCounter` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableCounter(name: string, options?: MetricOptions): ObservableCounter; - /** - * Creates a new `ObservableUpDownCounter` metric. - * - * The callback SHOULD be safe to be invoked concurrently. - * - * @param name the name of the metric. - * @param [options] the metric options. - */ - createObservableUpDownCounter(name: string, options?: MetricOptions): ObservableUpDownCounter; - /** - * Sets up a function that will be called whenever a metric collection is - * initiated. - * - * If the function is already in the list of callbacks for this Observable, - * the function is not added a second time. - * - * Only the associated observables can be observed in the callback. - * Measurements of observables that are not associated observed in the - * callback are dropped. - * - * @param callback the batch observable callback - * @param observables the observables associated with this batch observable callback - */ - addBatchObservableCallback(callback: BatchObservableCallback, observables: Observable[]): void; - /** - * Removes a callback previously registered with {@link Meter.addBatchObservableCallback}. - * - * The callback to be removed is identified using a combination of the callback itself, - * and the set of the observables associated with it. - * - * @param callback the batch observable callback - * @param observables the observables associated with this batch observable callback - */ - removeBatchObservableCallback(callback: BatchObservableCallback, observables: Observable[]): void; -} -//# sourceMappingURL=Meter.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/Meter.js b/node_modules/@opentelemetry/api/build/src/metrics/Meter.js deleted file mode 100644 index 56b930c6..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/Meter.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Meter.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/Meter.js.map b/node_modules/@opentelemetry/api/build/src/metrics/Meter.js.map deleted file mode 100644 index c5e2cede..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/Meter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Meter.js","sourceRoot":"","sources":["../../../src/metrics/Meter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BatchObservableCallback,\n Counter,\n Gauge,\n Histogram,\n MetricAttributes,\n MetricOptions,\n Observable,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n} from './Metric';\n\n/**\n * An interface describes additional metadata of a meter.\n */\nexport interface MeterOptions {\n /**\n * The schemaUrl of the meter or instrumentation library\n */\n schemaUrl?: string;\n}\n\n/**\n * An interface to allow the recording metrics.\n *\n * {@link Metric}s are used for recording pre-defined aggregation (`Counter`),\n * or raw values (`Histogram`) in which the aggregation and attributes\n * for the exported metric are deferred.\n */\nexport interface Meter {\n /**\n * Creates and returns a new `Gauge`.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createGauge(\n name: string,\n options?: MetricOptions\n ): Gauge;\n\n /**\n * Creates and returns a new `Histogram`.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createHistogram(\n name: string,\n options?: MetricOptions\n ): Histogram;\n\n /**\n * Creates a new `Counter` metric. Generally, this kind of metric when the\n * value is a quantity, the sum is of primary interest, and the event count\n * and value distribution are not of primary interest.\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createCounter(\n name: string,\n options?: MetricOptions\n ): Counter;\n\n /**\n * Creates a new `UpDownCounter` metric. UpDownCounter is a synchronous\n * instrument and very similar to Counter except that Add(increment)\n * supports negative increments. It is generally useful for capturing changes\n * in an amount of resources used, or any quantity that rises and falls\n * during a request.\n * Example uses for UpDownCounter:\n *
                    \n *
                  1. count the number of active requests.
                  2. \n *
                  3. count memory in use by instrumenting new and delete.
                  4. \n *
                  5. count queue size by instrumenting enqueue and dequeue.
                  6. \n *
                  7. count semaphore up and down operations.
                  8. \n *
                  \n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): UpDownCounter;\n\n /**\n * Creates a new `ObservableGauge` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableGauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableGauge;\n\n /**\n * Creates a new `ObservableCounter` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableCounter;\n\n /**\n * Creates a new `ObservableUpDownCounter` metric.\n *\n * The callback SHOULD be safe to be invoked concurrently.\n *\n * @param name the name of the metric.\n * @param [options] the metric options.\n */\n createObservableUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n name: string,\n options?: MetricOptions\n ): ObservableUpDownCounter;\n\n /**\n * Sets up a function that will be called whenever a metric collection is\n * initiated.\n *\n * If the function is already in the list of callbacks for this Observable,\n * the function is not added a second time.\n *\n * Only the associated observables can be observed in the callback.\n * Measurements of observables that are not associated observed in the\n * callback are dropped.\n *\n * @param callback the batch observable callback\n * @param observables the observables associated with this batch observable callback\n */\n addBatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n callback: BatchObservableCallback,\n observables: Observable[]\n ): void;\n\n /**\n * Removes a callback previously registered with {@link Meter.addBatchObservableCallback}.\n *\n * The callback to be removed is identified using a combination of the callback itself,\n * and the set of the observables associated with it.\n *\n * @param callback the batch observable callback\n * @param observables the observables associated with this batch observable callback\n */\n removeBatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n >(\n callback: BatchObservableCallback,\n observables: Observable[]\n ): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.d.ts b/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.d.ts deleted file mode 100644 index 6c08cc31..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Meter, MeterOptions } from './Meter'; -/** - * A registry for creating named {@link Meter}s. - */ -export interface MeterProvider { - /** - * Returns a Meter, creating one if one with the given name, version, and - * schemaUrl pair is not already created. - * - * @param name The name of the meter or instrumentation library. - * @param version The version of the meter or instrumentation library. - * @param options The options of the meter or instrumentation library. - * @returns Meter A Meter with the given name and version - */ - getMeter(name: string, version?: string, options?: MeterOptions): Meter; -} -//# sourceMappingURL=MeterProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js b/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js deleted file mode 100644 index e94205e7..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=MeterProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js.map b/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js.map deleted file mode 100644 index 80c07b76..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/MeterProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MeterProvider.js","sourceRoot":"","sources":["../../../src/metrics/MeterProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from './Meter';\n\n/**\n * A registry for creating named {@link Meter}s.\n */\nexport interface MeterProvider {\n /**\n * Returns a Meter, creating one if one with the given name, version, and\n * schemaUrl pair is not already created.\n *\n * @param name The name of the meter or instrumentation library.\n * @param version The version of the meter or instrumentation library.\n * @param options The options of the meter or instrumentation library.\n * @returns Meter A Meter with the given name and version\n */\n getMeter(name: string, version?: string, options?: MeterOptions): Meter;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/Metric.d.ts b/node_modules/@opentelemetry/api/build/src/metrics/Metric.d.ts deleted file mode 100644 index 607b637e..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/Metric.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { Attributes, AttributeValue } from '../common/Attributes'; -import { Context } from '../context/types'; -import { BatchObservableResult, ObservableResult } from './ObservableResult'; -/** - * Advisory options influencing aggregation configuration parameters. - * @experimental - */ -export interface MetricAdvice { - /** - * Hint the explicit bucket boundaries for SDK if the metric is been - * aggregated with a HistogramAggregator. - */ - explicitBucketBoundaries?: number[]; -} -/** - * Options needed for metric creation - */ -export interface MetricOptions { - /** - * The description of the Metric. - * @default '' - */ - description?: string; - /** - * The unit of the Metric values. - * @default '' - */ - unit?: string; - /** - * Indicates the type of the recorded value. - * @default {@link ValueType.DOUBLE} - */ - valueType?: ValueType; - /** - * The advice influencing aggregation configuration parameters. - * @experimental - */ - advice?: MetricAdvice; -} -/** The Type of value. It describes how the data is reported. */ -export declare enum ValueType { - INT = 0, - DOUBLE = 1 -} -/** - * Counter is the most common synchronous instrument. This instrument supports - * an `Add(increment)` function for reporting a sum, and is restricted to - * non-negative increments. The default aggregation is Sum, as for any additive - * instrument. - * - * Example uses for Counter: - *
                    - *
                  1. count the number of bytes received.
                  2. - *
                  3. count the number of requests completed.
                  4. - *
                  5. count the number of accounts created.
                  6. - *
                  7. count the number of checkpoints run.
                  8. - *
                  9. count the number of 5xx errors.
                  10. - *
                      - */ -export interface Counter { - /** - * Increment value of counter by the input. Inputs must not be negative. - */ - add(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface UpDownCounter { - /** - * Increment value of counter by the input. Inputs may be negative. - */ - add(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface Gauge { - /** - * Records a measurement. - */ - record(value: number, attributes?: AttributesTypes, context?: Context): void; -} -export interface Histogram { - /** - * Records a measurement. Value of the measurement must not be negative. - */ - record(value: number, attributes?: AttributesTypes, context?: Context): void; -} -/** - * @deprecated please use {@link Attributes} - */ -export declare type MetricAttributes = Attributes; -/** - * @deprecated please use {@link AttributeValue} - */ -export declare type MetricAttributeValue = AttributeValue; -/** - * The observable callback for Observable instruments. - */ -export declare type ObservableCallback = (observableResult: ObservableResult) => void | Promise; -/** - * The observable callback for a batch of Observable instruments. - */ -export declare type BatchObservableCallback = (observableResult: BatchObservableResult) => void | Promise; -export interface Observable { - /** - * Sets up a function that will be called whenever a metric collection is initiated. - * - * If the function is already in the list of callbacks for this Observable, the function is not added a second time. - */ - addCallback(callback: ObservableCallback): void; - /** - * Removes a callback previously registered with {@link Observable.addCallback}. - */ - removeCallback(callback: ObservableCallback): void; -} -export declare type ObservableCounter = Observable; -export declare type ObservableUpDownCounter = Observable; -export declare type ObservableGauge = Observable; -//# sourceMappingURL=Metric.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/Metric.js b/node_modules/@opentelemetry/api/build/src/metrics/Metric.js deleted file mode 100644 index 4966c3d5..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/Metric.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValueType = void 0; -/** The Type of value. It describes how the data is reported. */ -var ValueType; -(function (ValueType) { - ValueType[ValueType["INT"] = 0] = "INT"; - ValueType[ValueType["DOUBLE"] = 1] = "DOUBLE"; -})(ValueType = exports.ValueType || (exports.ValueType = {})); -//# sourceMappingURL=Metric.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/Metric.js.map b/node_modules/@opentelemetry/api/build/src/metrics/Metric.js.map deleted file mode 100644 index db168848..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/Metric.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Metric.js","sourceRoot":"","sources":["../../../src/metrics/Metric.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AA+CH,gEAAgE;AAChE,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,6CAAM,CAAA;AACR,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes, AttributeValue } from '../common/Attributes';\nimport { Context } from '../context/types';\nimport { BatchObservableResult, ObservableResult } from './ObservableResult';\n\n/**\n * Advisory options influencing aggregation configuration parameters.\n * @experimental\n */\nexport interface MetricAdvice {\n /**\n * Hint the explicit bucket boundaries for SDK if the metric is been\n * aggregated with a HistogramAggregator.\n */\n explicitBucketBoundaries?: number[];\n}\n\n/**\n * Options needed for metric creation\n */\nexport interface MetricOptions {\n /**\n * The description of the Metric.\n * @default ''\n */\n description?: string;\n\n /**\n * The unit of the Metric values.\n * @default ''\n */\n unit?: string;\n\n /**\n * Indicates the type of the recorded value.\n * @default {@link ValueType.DOUBLE}\n */\n valueType?: ValueType;\n\n /**\n * The advice influencing aggregation configuration parameters.\n * @experimental\n */\n advice?: MetricAdvice;\n}\n\n/** The Type of value. It describes how the data is reported. */\nexport enum ValueType {\n INT,\n DOUBLE,\n}\n\n/**\n * Counter is the most common synchronous instrument. This instrument supports\n * an `Add(increment)` function for reporting a sum, and is restricted to\n * non-negative increments. The default aggregation is Sum, as for any additive\n * instrument.\n *\n * Example uses for Counter:\n *
                        \n *
                      1. count the number of bytes received.
                      2. \n *
                      3. count the number of requests completed.
                      4. \n *
                      5. count the number of accounts created.
                      6. \n *
                      7. count the number of checkpoints run.
                      8. \n *
                      9. count the number of 5xx errors.
                      10. \n *
                          \n */\nexport interface Counter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Increment value of counter by the input. Inputs must not be negative.\n */\n add(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface UpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Increment value of counter by the input. Inputs may be negative.\n */\n add(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface Gauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Records a measurement.\n */\n record(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\nexport interface Histogram<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Records a measurement. Value of the measurement must not be negative.\n */\n record(value: number, attributes?: AttributesTypes, context?: Context): void;\n}\n\n/**\n * @deprecated please use {@link Attributes}\n */\nexport type MetricAttributes = Attributes;\n\n/**\n * @deprecated please use {@link AttributeValue}\n */\nexport type MetricAttributeValue = AttributeValue;\n\n/**\n * The observable callback for Observable instruments.\n */\nexport type ObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = (\n observableResult: ObservableResult\n) => void | Promise;\n\n/**\n * The observable callback for a batch of Observable instruments.\n */\nexport type BatchObservableCallback<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = (\n observableResult: BatchObservableResult\n) => void | Promise;\n\nexport interface Observable<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Sets up a function that will be called whenever a metric collection is initiated.\n *\n * If the function is already in the list of callbacks for this Observable, the function is not added a second time.\n */\n addCallback(callback: ObservableCallback): void;\n\n /**\n * Removes a callback previously registered with {@link Observable.addCallback}.\n */\n removeCallback(callback: ObservableCallback): void;\n}\n\nexport type ObservableCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\nexport type ObservableUpDownCounter<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\nexport type ObservableGauge<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> = Observable;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.d.ts b/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.d.ts deleted file mode 100644 index bbefa9a7..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Meter } from './Meter'; -import { BatchObservableCallback, Counter, Gauge, Histogram, MetricAttributes, MetricOptions, Observable, ObservableCallback, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter } from './Metric'; -/** - * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses - * constant NoopMetrics for all of its methods. - */ -export declare class NoopMeter implements Meter { - constructor(); - /** - * @see {@link Meter.createGauge} - */ - createGauge(_name: string, _options?: MetricOptions): Gauge; - /** - * @see {@link Meter.createHistogram} - */ - createHistogram(_name: string, _options?: MetricOptions): Histogram; - /** - * @see {@link Meter.createCounter} - */ - createCounter(_name: string, _options?: MetricOptions): Counter; - /** - * @see {@link Meter.createUpDownCounter} - */ - createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter; - /** - * @see {@link Meter.createObservableGauge} - */ - createObservableGauge(_name: string, _options?: MetricOptions): ObservableGauge; - /** - * @see {@link Meter.createObservableCounter} - */ - createObservableCounter(_name: string, _options?: MetricOptions): ObservableCounter; - /** - * @see {@link Meter.createObservableUpDownCounter} - */ - createObservableUpDownCounter(_name: string, _options?: MetricOptions): ObservableUpDownCounter; - /** - * @see {@link Meter.addBatchObservableCallback} - */ - addBatchObservableCallback(_callback: BatchObservableCallback, _observables: Observable[]): void; - /** - * @see {@link Meter.removeBatchObservableCallback} - */ - removeBatchObservableCallback(_callback: BatchObservableCallback): void; -} -export declare class NoopMetric { -} -export declare class NoopCounterMetric extends NoopMetric implements Counter { - add(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopUpDownCounterMetric extends NoopMetric implements UpDownCounter { - add(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopGaugeMetric extends NoopMetric implements Gauge { - record(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopHistogramMetric extends NoopMetric implements Histogram { - record(_value: number, _attributes: MetricAttributes): void; -} -export declare class NoopObservableMetric { - addCallback(_callback: ObservableCallback): void; - removeCallback(_callback: ObservableCallback): void; -} -export declare class NoopObservableCounterMetric extends NoopObservableMetric implements ObservableCounter { -} -export declare class NoopObservableGaugeMetric extends NoopObservableMetric implements ObservableGauge { -} -export declare class NoopObservableUpDownCounterMetric extends NoopObservableMetric implements ObservableUpDownCounter { -} -export declare const NOOP_METER: NoopMeter; -export declare const NOOP_COUNTER_METRIC: NoopCounterMetric; -export declare const NOOP_GAUGE_METRIC: NoopGaugeMetric; -export declare const NOOP_HISTOGRAM_METRIC: NoopHistogramMetric; -export declare const NOOP_UP_DOWN_COUNTER_METRIC: NoopUpDownCounterMetric; -export declare const NOOP_OBSERVABLE_COUNTER_METRIC: NoopObservableCounterMetric; -export declare const NOOP_OBSERVABLE_GAUGE_METRIC: NoopObservableGaugeMetric; -export declare const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC: NoopObservableUpDownCounterMetric; -/** - * Create a no-op Meter - */ -export declare function createNoopMeter(): Meter; -//# sourceMappingURL=NoopMeter.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js b/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js deleted file mode 100644 index d40ef036..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js +++ /dev/null @@ -1,127 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createNoopMeter = exports.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = exports.NOOP_OBSERVABLE_GAUGE_METRIC = exports.NOOP_OBSERVABLE_COUNTER_METRIC = exports.NOOP_UP_DOWN_COUNTER_METRIC = exports.NOOP_HISTOGRAM_METRIC = exports.NOOP_GAUGE_METRIC = exports.NOOP_COUNTER_METRIC = exports.NOOP_METER = exports.NoopObservableUpDownCounterMetric = exports.NoopObservableGaugeMetric = exports.NoopObservableCounterMetric = exports.NoopObservableMetric = exports.NoopHistogramMetric = exports.NoopGaugeMetric = exports.NoopUpDownCounterMetric = exports.NoopCounterMetric = exports.NoopMetric = exports.NoopMeter = void 0; -/** - * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses - * constant NoopMetrics for all of its methods. - */ -class NoopMeter { - constructor() { } - /** - * @see {@link Meter.createGauge} - */ - createGauge(_name, _options) { - return exports.NOOP_GAUGE_METRIC; - } - /** - * @see {@link Meter.createHistogram} - */ - createHistogram(_name, _options) { - return exports.NOOP_HISTOGRAM_METRIC; - } - /** - * @see {@link Meter.createCounter} - */ - createCounter(_name, _options) { - return exports.NOOP_COUNTER_METRIC; - } - /** - * @see {@link Meter.createUpDownCounter} - */ - createUpDownCounter(_name, _options) { - return exports.NOOP_UP_DOWN_COUNTER_METRIC; - } - /** - * @see {@link Meter.createObservableGauge} - */ - createObservableGauge(_name, _options) { - return exports.NOOP_OBSERVABLE_GAUGE_METRIC; - } - /** - * @see {@link Meter.createObservableCounter} - */ - createObservableCounter(_name, _options) { - return exports.NOOP_OBSERVABLE_COUNTER_METRIC; - } - /** - * @see {@link Meter.createObservableUpDownCounter} - */ - createObservableUpDownCounter(_name, _options) { - return exports.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC; - } - /** - * @see {@link Meter.addBatchObservableCallback} - */ - addBatchObservableCallback(_callback, _observables) { } - /** - * @see {@link Meter.removeBatchObservableCallback} - */ - removeBatchObservableCallback(_callback) { } -} -exports.NoopMeter = NoopMeter; -class NoopMetric { -} -exports.NoopMetric = NoopMetric; -class NoopCounterMetric extends NoopMetric { - add(_value, _attributes) { } -} -exports.NoopCounterMetric = NoopCounterMetric; -class NoopUpDownCounterMetric extends NoopMetric { - add(_value, _attributes) { } -} -exports.NoopUpDownCounterMetric = NoopUpDownCounterMetric; -class NoopGaugeMetric extends NoopMetric { - record(_value, _attributes) { } -} -exports.NoopGaugeMetric = NoopGaugeMetric; -class NoopHistogramMetric extends NoopMetric { - record(_value, _attributes) { } -} -exports.NoopHistogramMetric = NoopHistogramMetric; -class NoopObservableMetric { - addCallback(_callback) { } - removeCallback(_callback) { } -} -exports.NoopObservableMetric = NoopObservableMetric; -class NoopObservableCounterMetric extends NoopObservableMetric { -} -exports.NoopObservableCounterMetric = NoopObservableCounterMetric; -class NoopObservableGaugeMetric extends NoopObservableMetric { -} -exports.NoopObservableGaugeMetric = NoopObservableGaugeMetric; -class NoopObservableUpDownCounterMetric extends NoopObservableMetric { -} -exports.NoopObservableUpDownCounterMetric = NoopObservableUpDownCounterMetric; -exports.NOOP_METER = new NoopMeter(); -// Synchronous instruments -exports.NOOP_COUNTER_METRIC = new NoopCounterMetric(); -exports.NOOP_GAUGE_METRIC = new NoopGaugeMetric(); -exports.NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric(); -exports.NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric(); -// Asynchronous instruments -exports.NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric(); -exports.NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric(); -exports.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric(); -/** - * Create a no-op Meter - */ -function createNoopMeter() { - return exports.NOOP_METER; -} -exports.createNoopMeter = createNoopMeter; -//# sourceMappingURL=NoopMeter.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js.map b/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js.map deleted file mode 100644 index 512d5fe8..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopMeter.js","sourceRoot":"","sources":["../../../src/metrics/NoopMeter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAkBH;;;GAGG;AACH,MAAa,SAAS;IACpB,gBAAe,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,KAAa,EAAE,QAAwB;QACjD,OAAO,yBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,QAAwB;QACrD,OAAO,6BAAqB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAa,EAAE,QAAwB;QACnD,OAAO,2BAAmB,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAa,EAAE,QAAwB;QACzD,OAAO,mCAA2B,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,qBAAqB,CACnB,KAAa,EACb,QAAwB;QAExB,OAAO,oCAA4B,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,KAAa,EACb,QAAwB;QAExB,OAAO,sCAA8B,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,6BAA6B,CAC3B,KAAa,EACb,QAAwB;QAExB,OAAO,8CAAsC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,0BAA0B,CACxB,SAAkC,EAClC,YAA0B,IACnB,CAAC;IAEV;;OAEG;IACH,6BAA6B,CAAC,SAAkC,IAAS,CAAC;CAC3E;AAzED,8BAyEC;AAED,MAAa,UAAU;CAAG;AAA1B,gCAA0B;AAE1B,MAAa,iBAAkB,SAAQ,UAAU;IAC/C,GAAG,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC5D;AAFD,8CAEC;AAED,MAAa,uBACX,SAAQ,UAAU;IAGlB,GAAG,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC5D;AALD,0DAKC;AAED,MAAa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC/D;AAFD,0CAEC;AAED,MAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,MAAc,EAAE,WAA6B,IAAS,CAAC;CAC/D;AAFD,kDAEC;AAED,MAAa,oBAAoB;IAC/B,WAAW,CAAC,SAA6B,IAAG,CAAC;IAE7C,cAAc,CAAC,SAA6B,IAAG,CAAC;CACjD;AAJD,oDAIC;AAED,MAAa,2BACX,SAAQ,oBAAoB;CACG;AAFjC,kEAEiC;AAEjC,MAAa,yBACX,SAAQ,oBAAoB;CACC;AAF/B,8DAE+B;AAE/B,MAAa,iCACX,SAAQ,oBAAoB;CACS;AAFvC,8EAEuC;AAE1B,QAAA,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;AAE1C,0BAA0B;AACb,QAAA,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAC9C,QAAA,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;AAC1C,QAAA,qBAAqB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAClD,QAAA,2BAA2B,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEzE,2BAA2B;AACd,QAAA,8BAA8B,GAAG,IAAI,2BAA2B,EAAE,CAAC;AACnE,QAAA,4BAA4B,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAC/D,QAAA,sCAAsC,GACjD,IAAI,iCAAiC,EAAE,CAAC;AAE1C;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,kBAAU,CAAC;AACpB,CAAC;AAFD,0CAEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter } from './Meter';\nimport {\n BatchObservableCallback,\n Counter,\n Gauge,\n Histogram,\n MetricAttributes,\n MetricOptions,\n Observable,\n ObservableCallback,\n ObservableCounter,\n ObservableGauge,\n ObservableUpDownCounter,\n UpDownCounter,\n} from './Metric';\n\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nexport class NoopMeter implements Meter {\n constructor() {}\n\n /**\n * @see {@link Meter.createGauge}\n */\n createGauge(_name: string, _options?: MetricOptions): Gauge {\n return NOOP_GAUGE_METRIC;\n }\n\n /**\n * @see {@link Meter.createHistogram}\n */\n createHistogram(_name: string, _options?: MetricOptions): Histogram {\n return NOOP_HISTOGRAM_METRIC;\n }\n\n /**\n * @see {@link Meter.createCounter}\n */\n createCounter(_name: string, _options?: MetricOptions): Counter {\n return NOOP_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createUpDownCounter}\n */\n createUpDownCounter(_name: string, _options?: MetricOptions): UpDownCounter {\n return NOOP_UP_DOWN_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableGauge}\n */\n createObservableGauge(\n _name: string,\n _options?: MetricOptions\n ): ObservableGauge {\n return NOOP_OBSERVABLE_GAUGE_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableCounter}\n */\n createObservableCounter(\n _name: string,\n _options?: MetricOptions\n ): ObservableCounter {\n return NOOP_OBSERVABLE_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.createObservableUpDownCounter}\n */\n createObservableUpDownCounter(\n _name: string,\n _options?: MetricOptions\n ): ObservableUpDownCounter {\n return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n }\n\n /**\n * @see {@link Meter.addBatchObservableCallback}\n */\n addBatchObservableCallback(\n _callback: BatchObservableCallback,\n _observables: Observable[]\n ): void {}\n\n /**\n * @see {@link Meter.removeBatchObservableCallback}\n */\n removeBatchObservableCallback(_callback: BatchObservableCallback): void {}\n}\n\nexport class NoopMetric {}\n\nexport class NoopCounterMetric extends NoopMetric implements Counter {\n add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopUpDownCounterMetric\n extends NoopMetric\n implements UpDownCounter\n{\n add(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopGaugeMetric extends NoopMetric implements Gauge {\n record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopHistogramMetric extends NoopMetric implements Histogram {\n record(_value: number, _attributes: MetricAttributes): void {}\n}\n\nexport class NoopObservableMetric {\n addCallback(_callback: ObservableCallback) {}\n\n removeCallback(_callback: ObservableCallback) {}\n}\n\nexport class NoopObservableCounterMetric\n extends NoopObservableMetric\n implements ObservableCounter {}\n\nexport class NoopObservableGaugeMetric\n extends NoopObservableMetric\n implements ObservableGauge {}\n\nexport class NoopObservableUpDownCounterMetric\n extends NoopObservableMetric\n implements ObservableUpDownCounter {}\n\nexport const NOOP_METER = new NoopMeter();\n\n// Synchronous instruments\nexport const NOOP_COUNTER_METRIC = new NoopCounterMetric();\nexport const NOOP_GAUGE_METRIC = new NoopGaugeMetric();\nexport const NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric();\nexport const NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric();\n\n// Asynchronous instruments\nexport const NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric();\nexport const NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric();\nexport const NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC =\n new NoopObservableUpDownCounterMetric();\n\n/**\n * Create a no-op Meter\n */\nexport function createNoopMeter(): Meter {\n return NOOP_METER;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.d.ts b/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.d.ts deleted file mode 100644 index 8b51bc52..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Meter, MeterOptions } from './Meter'; -import { MeterProvider } from './MeterProvider'; -/** - * An implementation of the {@link MeterProvider} which returns an impotent Meter - * for all calls to `getMeter` - */ -export declare class NoopMeterProvider implements MeterProvider { - getMeter(_name: string, _version?: string, _options?: MeterOptions): Meter; -} -export declare const NOOP_METER_PROVIDER: NoopMeterProvider; -//# sourceMappingURL=NoopMeterProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js b/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js deleted file mode 100644 index b1c1cc06..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NOOP_METER_PROVIDER = exports.NoopMeterProvider = void 0; -const NoopMeter_1 = require("./NoopMeter"); -/** - * An implementation of the {@link MeterProvider} which returns an impotent Meter - * for all calls to `getMeter` - */ -class NoopMeterProvider { - getMeter(_name, _version, _options) { - return NoopMeter_1.NOOP_METER; - } -} -exports.NoopMeterProvider = NoopMeterProvider; -exports.NOOP_METER_PROVIDER = new NoopMeterProvider(); -//# sourceMappingURL=NoopMeterProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js.map b/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js.map deleted file mode 100644 index 66117d05..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopMeterProvider.js","sourceRoot":"","sources":["../../../src/metrics/NoopMeterProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,2CAAyC;AAEzC;;;GAGG;AACH,MAAa,iBAAiB;IAC5B,QAAQ,CAAC,KAAa,EAAE,QAAiB,EAAE,QAAuB;QAChE,OAAO,sBAAU,CAAC;IACpB,CAAC;CACF;AAJD,8CAIC;AAEY,QAAA,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Meter, MeterOptions } from './Meter';\nimport { MeterProvider } from './MeterProvider';\nimport { NOOP_METER } from './NoopMeter';\n\n/**\n * An implementation of the {@link MeterProvider} which returns an impotent Meter\n * for all calls to `getMeter`\n */\nexport class NoopMeterProvider implements MeterProvider {\n getMeter(_name: string, _version?: string, _options?: MeterOptions): Meter {\n return NOOP_METER;\n }\n}\n\nexport const NOOP_METER_PROVIDER = new NoopMeterProvider();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.d.ts b/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.d.ts deleted file mode 100644 index 26563f9e..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { MetricAttributes, Observable } from './Metric'; -/** - * Interface that is being used in callback function for Observable Metric. - */ -export interface ObservableResult { - /** - * Observe a measurement of the value associated with the given attributes. - * - * @param value The value to be observed. - * @param attributes The attributes associated with the value. If more than - * one values associated with the same attributes values, SDK may pick the - * last one or simply drop the entire observable result. - */ - observe(this: ObservableResult, value: number, attributes?: AttributesTypes): void; -} -/** - * Interface that is being used in batch observable callback function. - */ -export interface BatchObservableResult { - /** - * Observe a measurement of the value associated with the given attributes. - * - * @param metric The observable metric to be observed. - * @param value The value to be observed. - * @param attributes The attributes associated with the value. If more than - * one values associated with the same attributes values, SDK may pick the - * last one or simply drop the entire observable result. - */ - observe(this: BatchObservableResult, metric: Observable, value: number, attributes?: AttributesTypes): void; -} -//# sourceMappingURL=ObservableResult.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js b/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js deleted file mode 100644 index 7e5cbd0e..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=ObservableResult.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js.map b/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js.map deleted file mode 100644 index 450ef745..00000000 --- a/node_modules/@opentelemetry/api/build/src/metrics/ObservableResult.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ObservableResult.js","sourceRoot":"","sources":["../../../src/metrics/ObservableResult.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MetricAttributes, Observable } from './Metric';\n\n/**\n * Interface that is being used in callback function for Observable Metric.\n */\nexport interface ObservableResult<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Observe a measurement of the value associated with the given attributes.\n *\n * @param value The value to be observed.\n * @param attributes The attributes associated with the value. If more than\n * one values associated with the same attributes values, SDK may pick the\n * last one or simply drop the entire observable result.\n */\n observe(\n this: ObservableResult,\n value: number,\n attributes?: AttributesTypes\n ): void;\n}\n\n/**\n * Interface that is being used in batch observable callback function.\n */\nexport interface BatchObservableResult<\n AttributesTypes extends MetricAttributes = MetricAttributes,\n> {\n /**\n * Observe a measurement of the value associated with the given attributes.\n *\n * @param metric The observable metric to be observed.\n * @param value The value to be observed.\n * @param attributes The attributes associated with the value. If more than\n * one values associated with the same attributes values, SDK may pick the\n * last one or simply drop the entire observable result.\n */\n observe(\n this: BatchObservableResult,\n metric: Observable,\n value: number,\n attributes?: AttributesTypes\n ): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.d.ts b/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.d.ts deleted file mode 100644 index e73fd73e..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ -/** only globals that common to node and browsers are allowed */ -export declare const _globalThis: typeof globalThis; -//# sourceMappingURL=globalThis.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js b/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js deleted file mode 100644 index 15c8d21a..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports._globalThis = void 0; -// Updates to this file should also be replicated to @opentelemetry/core too. -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef -exports._globalThis = typeof globalThis === 'object' - ? globalThis - : typeof self === 'object' - ? self - : typeof window === 'object' - ? window - : typeof global === 'object' - ? global - : {}; -//# sourceMappingURL=globalThis.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js.map b/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js.map deleted file mode 100644 index 1c025099..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalThis.js","sourceRoot":"","sources":["../../../../src/platform/browser/globalThis.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,6EAA6E;AAE7E;;;;;;GAMG;AAEH,gEAAgE;AAChE,8EAA8E;AACjE,QAAA,WAAW,GACtB,OAAO,UAAU,KAAK,QAAQ;IAC5B,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;YAC5B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;gBAC5B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAE,EAAwB,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Updates to this file should also be replicated to @opentelemetry/core too.\n\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - (When all else fails)\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis: typeof globalThis =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : ({} as typeof globalThis);\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/browser/index.d.ts b/node_modules/@opentelemetry/api/build/src/platform/browser/index.d.ts deleted file mode 100644 index ba20e123..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/browser/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './globalThis'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/browser/index.js b/node_modules/@opentelemetry/api/build/src/platform/browser/index.js deleted file mode 100644 index 99fd57c8..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/browser/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./globalThis"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/browser/index.js.map b/node_modules/@opentelemetry/api/build/src/platform/browser/index.js.map deleted file mode 100644 index 5a406a99..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/browser/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/browser/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,+CAA6B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './globalThis';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/index.d.ts b/node_modules/@opentelemetry/api/build/src/platform/index.d.ts deleted file mode 100644 index 90595da9..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/index.js b/node_modules/@opentelemetry/api/build/src/platform/index.js deleted file mode 100644 index 33b834db..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./node"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/index.js.map b/node_modules/@opentelemetry/api/build/src/platform/index.js.map deleted file mode 100644 index bc13701f..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,yCAAuB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './node';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.d.ts b/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.d.ts deleted file mode 100644 index e3c83e5d..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** only globals that common to node and browsers are allowed */ -export declare const _globalThis: typeof globalThis; -//# sourceMappingURL=globalThis.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js b/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js deleted file mode 100644 index 82c4e394..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports._globalThis = void 0; -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins -exports._globalThis = typeof globalThis === 'object' ? globalThis : global; -//# sourceMappingURL=globalThis.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js.map b/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js.map deleted file mode 100644 index 2f2ca822..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globalThis.js","sourceRoot":"","sources":["../../../../src/platform/node/globalThis.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,gEAAgE;AAChE,oEAAoE;AACvD,QAAA,WAAW,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins\nexport const _globalThis = typeof globalThis === 'object' ? globalThis : global;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/node/index.d.ts b/node_modules/@opentelemetry/api/build/src/platform/node/index.d.ts deleted file mode 100644 index ba20e123..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/node/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './globalThis'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/node/index.js b/node_modules/@opentelemetry/api/build/src/platform/node/index.js deleted file mode 100644 index 99fd57c8..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/node/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./globalThis"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/platform/node/index.js.map b/node_modules/@opentelemetry/api/build/src/platform/node/index.js.map deleted file mode 100644 index 95561e98..00000000 --- a/node_modules/@opentelemetry/api/build/src/platform/node/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/node/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,+CAA6B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './globalThis';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation-api.d.ts b/node_modules/@opentelemetry/api/build/src/propagation-api.d.ts deleted file mode 100644 index e12b51ba..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PropagationAPI } from './api/propagation'; -/** Entrypoint for propagation API */ -export declare const propagation: PropagationAPI; -//# sourceMappingURL=propagation-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation-api.js b/node_modules/@opentelemetry/api/build/src/propagation-api.js deleted file mode 100644 index f014fb4a..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation-api.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.propagation = void 0; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -const propagation_1 = require("./api/propagation"); -/** Entrypoint for propagation API */ -exports.propagation = propagation_1.PropagationAPI.getInstance(); -//# sourceMappingURL=propagation-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation-api.js.map b/node_modules/@opentelemetry/api/build/src/propagation-api.js.map deleted file mode 100644 index ff17b744..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"propagation-api.js","sourceRoot":"","sources":["../../src/propagation-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,mDAAmD;AACnD,qCAAqC;AACxB,QAAA,WAAW,GAAG,4BAAc,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { PropagationAPI } from './api/propagation';\n/** Entrypoint for propagation API */\nexport const propagation = PropagationAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.d.ts b/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.d.ts deleted file mode 100644 index 398021f3..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Context } from '../context/types'; -import { TextMapPropagator } from './TextMapPropagator'; -/** - * No-op implementations of {@link TextMapPropagator}. - */ -export declare class NoopTextMapPropagator implements TextMapPropagator { - /** Noop inject function does nothing */ - inject(_context: Context, _carrier: unknown): void; - /** Noop extract function does nothing and returns the input context */ - extract(context: Context, _carrier: unknown): Context; - fields(): string[]; -} -//# sourceMappingURL=NoopTextMapPropagator.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js b/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js deleted file mode 100644 index 3f395829..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NoopTextMapPropagator = void 0; -/** - * No-op implementations of {@link TextMapPropagator}. - */ -class NoopTextMapPropagator { - /** Noop inject function does nothing */ - inject(_context, _carrier) { } - /** Noop extract function does nothing and returns the input context */ - extract(context, _carrier) { - return context; - } - fields() { - return []; - } -} -exports.NoopTextMapPropagator = NoopTextMapPropagator; -//# sourceMappingURL=NoopTextMapPropagator.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js.map b/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js.map deleted file mode 100644 index dfd01aaf..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTextMapPropagator.js","sourceRoot":"","sources":["../../../src/propagation/NoopTextMapPropagator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH;;GAEG;AACH,MAAa,qBAAqB;IAChC,wCAAwC;IACxC,MAAM,CAAC,QAAiB,EAAE,QAAiB,IAAS,CAAC;IACrD,uEAAuE;IACvE,OAAO,CAAC,OAAgB,EAAE,QAAiB;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAVD,sDAUC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { TextMapPropagator } from './TextMapPropagator';\n\n/**\n * No-op implementations of {@link TextMapPropagator}.\n */\nexport class NoopTextMapPropagator implements TextMapPropagator {\n /** Noop inject function does nothing */\n inject(_context: Context, _carrier: unknown): void {}\n /** Noop extract function does nothing and returns the input context */\n extract(context: Context, _carrier: unknown): Context {\n return context;\n }\n fields(): string[] {\n return [];\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.d.ts b/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.d.ts deleted file mode 100644 index dc39367b..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Context } from '../context/types'; -/** - * Injects `Context` into and extracts it from carriers that travel - * in-band across process boundaries. Encoding is expected to conform to the - * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request - * headers. - * - * The carrier of propagated data on both the client (injector) and server - * (extractor) side is usually an object such as http headers. Propagation is - * usually implemented via library-specific request interceptors, where the - * client-side injects values and the server-side extracts them. - */ -export interface TextMapPropagator { - /** - * Injects values from a given `Context` into a carrier. - * - * OpenTelemetry defines a common set of format values (TextMapPropagator), - * and each has an expected `carrier` type. - * - * @param context the Context from which to extract values to transmit over - * the wire. - * @param carrier the carrier of propagation fields, such as http request - * headers. - * @param setter an optional {@link TextMapSetter}. If undefined, values will be - * set by direct object assignment. - */ - inject(context: Context, carrier: Carrier, setter: TextMapSetter): void; - /** - * Given a `Context` and a carrier, extract context values from a - * carrier and return a new context, created from the old context, with the - * extracted values. - * - * @param context the Context from which to extract values to transmit over - * the wire. - * @param carrier the carrier of propagation fields, such as http request - * headers. - * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all - * own properties, and keys will be accessed by direct object access. - */ - extract(context: Context, carrier: Carrier, getter: TextMapGetter): Context; - /** - * Return a list of all fields which may be used by the propagator. - */ - fields(): string[]; -} -/** - * A setter is specified by the caller to define a specific method - * to set key/value pairs on the carrier within a propagator. - */ -export interface TextMapSetter { - /** - * Callback used to set a key/value pair on an object. - * - * Should be called by the propagator each time a key/value pair - * should be set, and should set that key/value pair on the propagator. - * - * @param carrier object or class which carries key/value pairs - * @param key string key to modify - * @param value value to be set to the key on the carrier - */ - set(carrier: Carrier, key: string, value: string): void; -} -/** - * A getter is specified by the caller to define a specific method - * to get the value of a key from a carrier. - */ -export interface TextMapGetter { - /** - * Get a list of all keys available on the carrier. - * - * @param carrier - */ - keys(carrier: Carrier): string[]; - /** - * Get the value of a specific key from the carrier. - * - * @param carrier - * @param key - */ - get(carrier: Carrier, key: string): undefined | string | string[]; -} -export declare const defaultTextMapGetter: TextMapGetter; -export declare const defaultTextMapSetter: TextMapSetter; -//# sourceMappingURL=TextMapPropagator.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js b/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js deleted file mode 100644 index 513f33c6..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultTextMapSetter = exports.defaultTextMapGetter = void 0; -exports.defaultTextMapGetter = { - get(carrier, key) { - if (carrier == null) { - return undefined; - } - return carrier[key]; - }, - keys(carrier) { - if (carrier == null) { - return []; - } - return Object.keys(carrier); - }, -}; -exports.defaultTextMapSetter = { - set(carrier, key, value) { - if (carrier == null) { - return; - } - carrier[key] = value; - }, -}; -//# sourceMappingURL=TextMapPropagator.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js.map b/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js.map deleted file mode 100644 index f2334353..00000000 --- a/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TextMapPropagator.js","sourceRoot":"","sources":["../../../src/propagation/TextMapPropagator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAkGU,QAAA,oBAAoB,GAAkB;IACjD,GAAG,CAAC,OAAO,EAAE,GAAG;QACd,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAO;QACV,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAkB;IACjD,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK;QACrB,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO;SACR;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\n\n/**\n * Injects `Context` into and extracts it from carriers that travel\n * in-band across process boundaries. Encoding is expected to conform to the\n * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request\n * headers.\n *\n * The carrier of propagated data on both the client (injector) and server\n * (extractor) side is usually an object such as http headers. Propagation is\n * usually implemented via library-specific request interceptors, where the\n * client-side injects values and the server-side extracts them.\n */\nexport interface TextMapPropagator {\n /**\n * Injects values from a given `Context` into a carrier.\n *\n * OpenTelemetry defines a common set of format values (TextMapPropagator),\n * and each has an expected `carrier` type.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param setter an optional {@link TextMapSetter}. If undefined, values will be\n * set by direct object assignment.\n */\n inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter\n ): void;\n\n /**\n * Given a `Context` and a carrier, extract context values from a\n * carrier and return a new context, created from the old context, with the\n * extracted values.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all\n * own properties, and keys will be accessed by direct object access.\n */\n extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter\n ): Context;\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n fields(): string[];\n}\n\n/**\n * A setter is specified by the caller to define a specific method\n * to set key/value pairs on the carrier within a propagator.\n */\nexport interface TextMapSetter {\n /**\n * Callback used to set a key/value pair on an object.\n *\n * Should be called by the propagator each time a key/value pair\n * should be set, and should set that key/value pair on the propagator.\n *\n * @param carrier object or class which carries key/value pairs\n * @param key string key to modify\n * @param value value to be set to the key on the carrier\n */\n set(carrier: Carrier, key: string, value: string): void;\n}\n\n/**\n * A getter is specified by the caller to define a specific method\n * to get the value of a key from a carrier.\n */\nexport interface TextMapGetter {\n /**\n * Get a list of all keys available on the carrier.\n *\n * @param carrier\n */\n keys(carrier: Carrier): string[];\n\n /**\n * Get the value of a specific key from the carrier.\n *\n * @param carrier\n * @param key\n */\n get(carrier: Carrier, key: string): undefined | string | string[];\n}\n\nexport const defaultTextMapGetter: TextMapGetter = {\n get(carrier, key) {\n if (carrier == null) {\n return undefined;\n }\n return carrier[key];\n },\n\n keys(carrier) {\n if (carrier == null) {\n return [];\n }\n return Object.keys(carrier);\n },\n};\n\nexport const defaultTextMapSetter: TextMapSetter = {\n set(carrier, key, value) {\n if (carrier == null) {\n return;\n }\n\n carrier[key] = value;\n },\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace-api.d.ts b/node_modules/@opentelemetry/api/build/src/trace-api.d.ts deleted file mode 100644 index b4751a7f..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace-api.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { TraceAPI } from './api/trace'; -/** Entrypoint for trace API */ -export declare const trace: TraceAPI; -//# sourceMappingURL=trace-api.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace-api.js b/node_modules/@opentelemetry/api/build/src/trace-api.js deleted file mode 100644 index c8bbe93a..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace-api.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.trace = void 0; -// Split module-level variable definition into separate files to allow -// tree-shaking on each api instance. -const trace_1 = require("./api/trace"); -/** Entrypoint for trace API */ -exports.trace = trace_1.TraceAPI.getInstance(); -//# sourceMappingURL=trace-api.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace-api.js.map b/node_modules/@opentelemetry/api/build/src/trace-api.js.map deleted file mode 100644 index 2475b595..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace-api.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace-api.js","sourceRoot":"","sources":["../../src/trace-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sEAAsE;AACtE,qCAAqC;AACrC,uCAAuC;AACvC,+BAA+B;AAClB,QAAA,KAAK,GAAG,gBAAQ,CAAC,WAAW,EAAE,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport const trace = TraceAPI.getInstance();\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.d.ts b/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.d.ts deleted file mode 100644 index ce569f0c..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Exception } from '../common/Exception'; -import { TimeInput } from '../common/Time'; -import { SpanAttributes } from './attributes'; -import { Span } from './span'; -import { SpanContext } from './span_context'; -import { SpanStatus } from './status'; -import { Link } from './link'; -/** - * The NonRecordingSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -export declare class NonRecordingSpan implements Span { - private readonly _spanContext; - constructor(_spanContext?: SpanContext); - spanContext(): SpanContext; - setAttribute(_key: string, _value: unknown): this; - setAttributes(_attributes: SpanAttributes): this; - addEvent(_name: string, _attributes?: SpanAttributes): this; - addLink(_link: Link): this; - addLinks(_links: Link[]): this; - setStatus(_status: SpanStatus): this; - updateName(_name: string): this; - end(_endTime?: TimeInput): void; - isRecording(): boolean; - recordException(_exception: Exception, _time?: TimeInput): void; -} -//# sourceMappingURL=NonRecordingSpan.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js b/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js deleted file mode 100644 index 6d3e6eea..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NonRecordingSpan = void 0; -const invalid_span_constants_1 = require("./invalid-span-constants"); -/** - * The NonRecordingSpan is the default {@link Span} that is used when no Span - * implementation is available. All operations are no-op including context - * propagation. - */ -class NonRecordingSpan { - constructor(_spanContext = invalid_span_constants_1.INVALID_SPAN_CONTEXT) { - this._spanContext = _spanContext; - } - // Returns a SpanContext. - spanContext() { - return this._spanContext; - } - // By default does nothing - setAttribute(_key, _value) { - return this; - } - // By default does nothing - setAttributes(_attributes) { - return this; - } - // By default does nothing - addEvent(_name, _attributes) { - return this; - } - addLink(_link) { - return this; - } - addLinks(_links) { - return this; - } - // By default does nothing - setStatus(_status) { - return this; - } - // By default does nothing - updateName(_name) { - return this; - } - // By default does nothing - end(_endTime) { } - // isRecording always returns false for NonRecordingSpan. - isRecording() { - return false; - } - // By default does nothing - recordException(_exception, _time) { } -} -exports.NonRecordingSpan = NonRecordingSpan; -//# sourceMappingURL=NonRecordingSpan.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js.map b/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js.map deleted file mode 100644 index 4465327e..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NonRecordingSpan.js","sourceRoot":"","sources":["../../../src/trace/NonRecordingSpan.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,qEAAgE;AAMhE;;;;GAIG;AACH,MAAa,gBAAgB;IAC3B,YACmB,eAA4B,6CAAoB;QAAhD,iBAAY,GAAZ,YAAY,CAAoC;IAChE,CAAC;IAEJ,yBAAyB;IACzB,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,0BAA0B;IAC1B,YAAY,CAAC,IAAY,EAAE,MAAe;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,aAAa,CAAC,WAA2B;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAa,EAAE,WAA4B;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAW;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,SAAS,CAAC,OAAmB;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,GAAG,CAAC,QAAoB,IAAS,CAAC;IAElC,yDAAyD;IACzD,WAAW;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,eAAe,CAAC,UAAqB,EAAE,KAAiB,IAAS,CAAC;CACnE;AArDD,4CAqDC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nexport class NonRecordingSpan implements Span {\n constructor(\n private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT\n ) {}\n\n // Returns a SpanContext.\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n // By default does nothing\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n // By default does nothing\n setAttributes(_attributes: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n addEvent(_name: string, _attributes?: SpanAttributes): this {\n return this;\n }\n\n addLink(_link: Link): this {\n return this;\n }\n\n addLinks(_links: Link[]): this {\n return this;\n }\n\n // By default does nothing\n setStatus(_status: SpanStatus): this {\n return this;\n }\n\n // By default does nothing\n updateName(_name: string): this {\n return this;\n }\n\n // By default does nothing\n end(_endTime?: TimeInput): void {}\n\n // isRecording always returns false for NonRecordingSpan.\n isRecording(): boolean {\n return false;\n }\n\n // By default does nothing\n recordException(_exception: Exception, _time?: TimeInput): void {}\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.d.ts b/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.d.ts deleted file mode 100644 index 0e059c99..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -import { Tracer } from './tracer'; -/** - * No-op implementations of {@link Tracer}. - */ -export declare class NoopTracer implements Tracer { - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - startActiveSpan ReturnType>(name: string, fn: F): ReturnType; - startActiveSpan ReturnType>(name: string, opts: SpanOptions | undefined, fn: F): ReturnType; - startActiveSpan ReturnType>(name: string, opts: SpanOptions | undefined, ctx: Context | undefined, fn: F): ReturnType; -} -//# sourceMappingURL=NoopTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js b/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js deleted file mode 100644 index 0a823aa5..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NoopTracer = void 0; -const context_1 = require("../api/context"); -const context_utils_1 = require("../trace/context-utils"); -const NonRecordingSpan_1 = require("./NonRecordingSpan"); -const spancontext_utils_1 = require("./spancontext-utils"); -const contextApi = context_1.ContextAPI.getInstance(); -/** - * No-op implementations of {@link Tracer}. - */ -class NoopTracer { - // startSpan starts a noop span. - startSpan(name, options, context = contextApi.active()) { - const root = Boolean(options === null || options === void 0 ? void 0 : options.root); - if (root) { - return new NonRecordingSpan_1.NonRecordingSpan(); - } - const parentFromContext = context && (0, context_utils_1.getSpanContext)(context); - if (isSpanContext(parentFromContext) && - (0, spancontext_utils_1.isSpanContextValid)(parentFromContext)) { - return new NonRecordingSpan_1.NonRecordingSpan(parentFromContext); - } - else { - return new NonRecordingSpan_1.NonRecordingSpan(); - } - } - startActiveSpan(name, arg2, arg3, arg4) { - let opts; - let ctx; - let fn; - if (arguments.length < 2) { - return; - } - else if (arguments.length === 2) { - fn = arg2; - } - else if (arguments.length === 3) { - opts = arg2; - fn = arg3; - } - else { - opts = arg2; - ctx = arg3; - fn = arg4; - } - const parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active(); - const span = this.startSpan(name, opts, parentContext); - const contextWithSpanSet = (0, context_utils_1.setSpan)(parentContext, span); - return contextApi.with(contextWithSpanSet, fn, undefined, span); - } -} -exports.NoopTracer = NoopTracer; -function isSpanContext(spanContext) { - return (typeof spanContext === 'object' && - typeof spanContext['spanId'] === 'string' && - typeof spanContext['traceId'] === 'string' && - typeof spanContext['traceFlags'] === 'number'); -} -//# sourceMappingURL=NoopTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js.map b/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js.map deleted file mode 100644 index 7fde17da..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../../../src/trace/NoopTracer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4CAA4C;AAE5C,0DAAiE;AACjE,yDAAsD;AAEtD,2DAAyD;AAKzD,MAAM,UAAU,GAAG,oBAAU,CAAC,WAAW,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAa,UAAU;IACrB,gCAAgC;IAChC,SAAS,CACP,IAAY,EACZ,OAAqB,EACrB,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE;QAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,mCAAgB,EAAE,CAAC;SAC/B;QAED,MAAM,iBAAiB,GAAG,OAAO,IAAI,IAAA,8BAAc,EAAC,OAAO,CAAC,CAAC;QAE7D,IACE,aAAa,CAAC,iBAAiB,CAAC;YAChC,IAAA,sCAAkB,EAAC,iBAAiB,CAAC,EACrC;YACA,OAAO,IAAI,mCAAgB,CAAC,iBAAiB,CAAC,CAAC;SAChD;aAAM;YACL,OAAO,IAAI,mCAAgB,EAAE,CAAC;SAC/B;IACH,CAAC;IAiBD,eAAe,CACb,IAAY,EACZ,IAAsB,EACtB,IAAkB,EAClB,IAAQ;QAER,IAAI,IAA6B,CAAC;QAClC,IAAI,GAAwB,CAAC;QAC7B,IAAI,EAAK,CAAC;QAEV,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO;SACR;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,EAAE,GAAG,IAAS,CAAC;SAChB;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,IAAI,GAAG,IAA+B,CAAC;YACvC,EAAE,GAAG,IAAS,CAAC;SAChB;aAAM;YACL,IAAI,GAAG,IAA+B,CAAC;YACvC,GAAG,GAAG,IAA2B,CAAC;YAClC,EAAE,GAAG,IAAS,CAAC;SAChB;QAED,MAAM,aAAa,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,kBAAkB,GAAG,IAAA,uBAAO,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAExD,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;CACF;AApED,gCAoEC;AAED,SAAS,aAAa,CAAC,WAAgB;IACrC,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACzC,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,QAAQ;QAC1C,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,QAAQ,CAC9C,CAAC;AACJ,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { Context } from '../context/types';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { isSpanContextValid } from './spancontext-utils';\nimport { SpanOptions } from './SpanOptions';\nimport { SpanContext } from './span_context';\nimport { Tracer } from './tracer';\n\nconst contextApi = ContextAPI.getInstance();\n\n/**\n * No-op implementations of {@link Tracer}.\n */\nexport class NoopTracer implements Tracer {\n // startSpan starts a noop span.\n startSpan(\n name: string,\n options?: SpanOptions,\n context = contextApi.active()\n ): Span {\n const root = Boolean(options?.root);\n if (root) {\n return new NonRecordingSpan();\n }\n\n const parentFromContext = context && getSpanContext(context);\n\n if (\n isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)\n ) {\n return new NonRecordingSpan(parentFromContext);\n } else {\n return new NonRecordingSpan();\n }\n }\n\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n ctx: Context | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | SpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: SpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as SpanOptions | undefined;\n ctx = arg3 as Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? contextApi.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = setSpan(parentContext, span);\n\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n }\n}\n\nfunction isSpanContext(spanContext: any): spanContext is SpanContext {\n return (\n typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number'\n );\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.d.ts b/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.d.ts deleted file mode 100644 index ec0fe792..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -import { TracerProvider } from './tracer_provider'; -/** - * An implementation of the {@link TracerProvider} which returns an impotent - * Tracer for all calls to `getTracer`. - * - * All operations are no-op. - */ -export declare class NoopTracerProvider implements TracerProvider { - getTracer(_name?: string, _version?: string, _options?: TracerOptions): Tracer; -} -//# sourceMappingURL=NoopTracerProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js b/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js deleted file mode 100644 index c9e08d63..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NoopTracerProvider = void 0; -const NoopTracer_1 = require("./NoopTracer"); -/** - * An implementation of the {@link TracerProvider} which returns an impotent - * Tracer for all calls to `getTracer`. - * - * All operations are no-op. - */ -class NoopTracerProvider { - getTracer(_name, _version, _options) { - return new NoopTracer_1.NoopTracer(); - } -} -exports.NoopTracerProvider = NoopTracerProvider; -//# sourceMappingURL=NoopTracerProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js.map b/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js.map deleted file mode 100644 index c47b3500..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoopTracerProvider.js","sourceRoot":"","sources":["../../../src/trace/NoopTracerProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,6CAA0C;AAK1C;;;;;GAKG;AACH,MAAa,kBAAkB;IAC7B,SAAS,CACP,KAAc,EACd,QAAiB,EACjB,QAAwB;QAExB,OAAO,IAAI,uBAAU,EAAE,CAAC;IAC1B,CAAC;CACF;AARD,gDAQC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopTracer } from './NoopTracer';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\nimport { TracerProvider } from './tracer_provider';\n\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nexport class NoopTracerProvider implements TracerProvider {\n getTracer(\n _name?: string,\n _version?: string,\n _options?: TracerOptions\n ): Tracer {\n return new NoopTracer();\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.d.ts b/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.d.ts deleted file mode 100644 index 116cc5c1..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -/** - * Proxy tracer provided by the proxy tracer provider - */ -export declare class ProxyTracer implements Tracer { - private _provider; - readonly name: string; - readonly version?: string | undefined; - readonly options?: TracerOptions | undefined; - private _delegate?; - constructor(_provider: TracerDelegator, name: string, version?: string | undefined, options?: TracerOptions | undefined); - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - startActiveSpan unknown>(_name: string, _options: F | SpanOptions, _context?: F | Context, _fn?: F): ReturnType; - /** - * Try to get a tracer from the proxy tracer provider. - * If the proxy tracer provider has no delegate, return a noop tracer. - */ - private _getTracer; -} -export interface TracerDelegator { - getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined; -} -//# sourceMappingURL=ProxyTracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js b/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js deleted file mode 100644 index 66776801..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ProxyTracer = void 0; -const NoopTracer_1 = require("./NoopTracer"); -const NOOP_TRACER = new NoopTracer_1.NoopTracer(); -/** - * Proxy tracer provided by the proxy tracer provider - */ -class ProxyTracer { - constructor(_provider, name, version, options) { - this._provider = _provider; - this.name = name; - this.version = version; - this.options = options; - } - startSpan(name, options, context) { - return this._getTracer().startSpan(name, options, context); - } - startActiveSpan(_name, _options, _context, _fn) { - const tracer = this._getTracer(); - return Reflect.apply(tracer.startActiveSpan, tracer, arguments); - } - /** - * Try to get a tracer from the proxy tracer provider. - * If the proxy tracer provider has no delegate, return a noop tracer. - */ - _getTracer() { - if (this._delegate) { - return this._delegate; - } - const tracer = this._provider.getDelegateTracer(this.name, this.version, this.options); - if (!tracer) { - return NOOP_TRACER; - } - this._delegate = tracer; - return this._delegate; - } -} -exports.ProxyTracer = ProxyTracer; -//# sourceMappingURL=ProxyTracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js.map b/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js.map deleted file mode 100644 index 941125c4..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProxyTracer.js","sourceRoot":"","sources":["../../../src/trace/ProxyTracer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,6CAA0C;AAM1C,MAAM,WAAW,GAAG,IAAI,uBAAU,EAAE,CAAC;AAErC;;GAEG;AACH,MAAa,WAAW;IAItB,YACU,SAA0B,EAClB,IAAY,EACZ,OAAgB,EAChB,OAAuB;QAH/B,cAAS,GAAT,SAAS,CAAiB;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAAgB;IACtC,CAAC;IAEJ,SAAS,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiB;QAC9D,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CACb,KAAa,EACb,QAAyB,EACzB,QAAsB,EACtB,GAAO;QAEP,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC7C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,WAAW,CAAC;SACpB;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AA/CD,kCA+CC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { NoopTracer } from './NoopTracer';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER = new NoopTracer();\n\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nexport class ProxyTracer implements Tracer {\n // When a real implementation is provided, this will be it\n private _delegate?: Tracer;\n\n constructor(\n private _provider: TracerDelegator,\n public readonly name: string,\n public readonly version?: string,\n public readonly options?: TracerOptions\n ) {}\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n return this._getTracer().startSpan(name, options, context);\n }\n\n startActiveSpan unknown>(\n _name: string,\n _options: F | SpanOptions,\n _context?: F | Context,\n _fn?: F\n ): ReturnType {\n const tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n }\n\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n private _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n\n const tracer = this._provider.getDelegateTracer(\n this.name,\n this.version,\n this.options\n );\n\n if (!tracer) {\n return NOOP_TRACER;\n }\n\n this._delegate = tracer;\n return this._delegate;\n }\n}\n\nexport interface TracerDelegator {\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.d.ts b/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.d.ts deleted file mode 100644 index ee7eafa9..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerProvider } from './tracer_provider'; -import { TracerOptions } from './tracer_options'; -/** - * Tracer provider which provides {@link ProxyTracer}s. - * - * Before a delegate is set, tracers provided are NoOp. - * When a delegate is set, traces are provided from the delegate. - * When a delegate is set after tracers have already been provided, - * all tracers already provided will use the provided delegate implementation. - */ -export declare class ProxyTracerProvider implements TracerProvider { - private _delegate?; - /** - * Get a {@link ProxyTracer} - */ - getTracer(name: string, version?: string, options?: TracerOptions): Tracer; - getDelegate(): TracerProvider; - /** - * Set the delegate tracer provider - */ - setDelegate(delegate: TracerProvider): void; - getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined; -} -//# sourceMappingURL=ProxyTracerProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js b/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js deleted file mode 100644 index 75ec910d..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ProxyTracerProvider = void 0; -const ProxyTracer_1 = require("./ProxyTracer"); -const NoopTracerProvider_1 = require("./NoopTracerProvider"); -const NOOP_TRACER_PROVIDER = new NoopTracerProvider_1.NoopTracerProvider(); -/** - * Tracer provider which provides {@link ProxyTracer}s. - * - * Before a delegate is set, tracers provided are NoOp. - * When a delegate is set, traces are provided from the delegate. - * When a delegate is set after tracers have already been provided, - * all tracers already provided will use the provided delegate implementation. - */ -class ProxyTracerProvider { - /** - * Get a {@link ProxyTracer} - */ - getTracer(name, version, options) { - var _a; - return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer_1.ProxyTracer(this, name, version, options)); - } - getDelegate() { - var _a; - return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER; - } - /** - * Set the delegate tracer provider - */ - setDelegate(delegate) { - this._delegate = delegate; - } - getDelegateTracer(name, version, options) { - var _a; - return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options); - } -} -exports.ProxyTracerProvider = ProxyTracerProvider; -//# sourceMappingURL=ProxyTracerProvider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js.map b/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js.map deleted file mode 100644 index 682c255d..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProxyTracerProvider.js","sourceRoot":"","sources":["../../../src/trace/ProxyTracerProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,+CAA4C;AAC5C,6DAA0D;AAG1D,MAAM,oBAAoB,GAAG,IAAI,uCAAkB,EAAE,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAa,mBAAmB;IAG9B;;OAEG;IACH,SAAS,CAAC,IAAY,EAAE,OAAgB,EAAE,OAAuB;;QAC/D,OAAO,CACL,MAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,mCAC9C,IAAI,yBAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,WAAW;;QACT,OAAO,MAAA,IAAI,CAAC,SAAS,mCAAI,oBAAoB,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,iBAAiB,CACf,IAAY,EACZ,OAAgB,EAChB,OAAuB;;QAEvB,OAAO,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF;AA/BD,kDA+BC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nexport class ProxyTracerProvider implements TracerProvider {\n private _delegate?: TracerProvider;\n\n /**\n * Get a {@link ProxyTracer}\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n return (\n this.getDelegateTracer(name, version, options) ??\n new ProxyTracer(this, name, version, options)\n );\n }\n\n getDelegate(): TracerProvider {\n return this._delegate ?? NOOP_TRACER_PROVIDER;\n }\n\n /**\n * Set the delegate tracer provider\n */\n setDelegate(delegate: TracerProvider) {\n this._delegate = delegate;\n }\n\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined {\n return this._delegate?.getTracer(name, version, options);\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/Sampler.d.ts b/node_modules/@opentelemetry/api/build/src/trace/Sampler.d.ts deleted file mode 100644 index c847eaf3..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/Sampler.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Context } from '../context/types'; -import { SpanAttributes } from './attributes'; -import { Link } from './link'; -import { SamplingResult } from './SamplingResult'; -import { SpanKind } from './span_kind'; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * This interface represent a sampler. Sampling is a mechanism to control the - * noise and overhead introduced by OpenTelemetry by reducing the number of - * samples of traces collected and sent to the backend. - */ -export interface Sampler { - /** - * Checks whether span needs to be created and tracked. - * - * @param context Parent Context which may contain a span. - * @param traceId of the span to be created. It can be different from the - * traceId in the {@link SpanContext}. Typically in situations when the - * span to be created starts a new trace. - * @param spanName of the span to be created. - * @param spanKind of the span to be created. - * @param attributes Initial set of SpanAttributes for the Span being constructed. - * @param links Collection of links that will be associated with the Span to - * be created. Typically useful for batch operations. - * @returns a {@link SamplingResult}. - */ - shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: SpanAttributes, links: Link[]): SamplingResult; - /** Returns the sampler name or short description with the configuration. */ - toString(): string; -} -//# sourceMappingURL=Sampler.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/Sampler.js b/node_modules/@opentelemetry/api/build/src/trace/Sampler.js deleted file mode 100644 index 6034482e..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/Sampler.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=Sampler.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/Sampler.js.map b/node_modules/@opentelemetry/api/build/src/trace/Sampler.js.map deleted file mode 100644 index 83ae0544..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/Sampler.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Sampler.js","sourceRoot":"","sources":["../../../src/trace/Sampler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { SpanAttributes } from './attributes';\nimport { Link } from './link';\nimport { SamplingResult } from './SamplingResult';\nimport { SpanKind } from './span_kind';\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * This interface represent a sampler. Sampling is a mechanism to control the\n * noise and overhead introduced by OpenTelemetry by reducing the number of\n * samples of traces collected and sent to the backend.\n */\nexport interface Sampler {\n /**\n * Checks whether span needs to be created and tracked.\n *\n * @param context Parent Context which may contain a span.\n * @param traceId of the span to be created. It can be different from the\n * traceId in the {@link SpanContext}. Typically in situations when the\n * span to be created starts a new trace.\n * @param spanName of the span to be created.\n * @param spanKind of the span to be created.\n * @param attributes Initial set of SpanAttributes for the Span being constructed.\n * @param links Collection of links that will be associated with the Span to\n * be created. Typically useful for batch operations.\n * @returns a {@link SamplingResult}.\n */\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: SpanAttributes,\n links: Link[]\n ): SamplingResult;\n\n /** Returns the sampler name or short description with the configuration. */\n toString(): string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.d.ts b/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.d.ts deleted file mode 100644 index f2bb495f..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { SpanAttributes } from './attributes'; -import { TraceState } from './trace_state'; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling decision that determines how a {@link Span} will be recorded - * and collected. - */ -export declare enum SamplingDecision { - /** - * `Span.isRecording() === false`, span will not be recorded and all events - * and attributes will be dropped. - */ - NOT_RECORD = 0, - /** - * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags} - * MUST NOT be set. - */ - RECORD = 1, - /** - * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags} - * MUST be set. - */ - RECORD_AND_SAMPLED = 2 -} -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling result contains a decision for a {@link Span} and additional - * attributes the sampler would like to added to the Span. - */ -export interface SamplingResult { - /** - * A sampling decision, refer to {@link SamplingDecision} for details. - */ - decision: SamplingDecision; - /** - * The list of attributes returned by SamplingResult MUST be immutable. - * Caller may call {@link Sampler}.shouldSample any number of times and - * can safely cache the returned value. - */ - attributes?: Readonly; - /** - * A {@link TraceState} that will be associated with the {@link Span} through - * the new {@link SpanContext}. Samplers SHOULD return the TraceState from - * the passed-in {@link Context} if they do not intend to change it. Leaving - * the value undefined will also leave the TraceState unchanged. - */ - traceState?: TraceState; -} -//# sourceMappingURL=SamplingResult.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js b/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js deleted file mode 100644 index 6df6b3bf..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SamplingDecision = void 0; -/** - * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead. - * A sampling decision that determines how a {@link Span} will be recorded - * and collected. - */ -var SamplingDecision; -(function (SamplingDecision) { - /** - * `Span.isRecording() === false`, span will not be recorded and all events - * and attributes will be dropped. - */ - SamplingDecision[SamplingDecision["NOT_RECORD"] = 0] = "NOT_RECORD"; - /** - * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags} - * MUST NOT be set. - */ - SamplingDecision[SamplingDecision["RECORD"] = 1] = "RECORD"; - /** - * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags} - * MUST be set. - */ - SamplingDecision[SamplingDecision["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED"; -})(SamplingDecision = exports.SamplingDecision || (exports.SamplingDecision = {})); -//# sourceMappingURL=SamplingResult.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js.map b/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js.map deleted file mode 100644 index 6e4ed4b2..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SamplingResult.js","sourceRoot":"","sources":["../../../src/trace/SamplingResult.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH;;;;GAIG;AACH,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,mEAAU,CAAA;IACV;;;OAGG;IACH,2DAAM,CAAA;IACN;;;OAGG;IACH,mFAAkB,CAAA;AACpB,CAAC,EAhBW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAgB3B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\nimport { TraceState } from './trace_state';\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport enum SamplingDecision {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n NOT_RECORD,\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n RECORD,\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n RECORD_AND_SAMPLED,\n}\n\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling result contains a decision for a {@link Span} and additional\n * attributes the sampler would like to added to the Span.\n */\nexport interface SamplingResult {\n /**\n * A sampling decision, refer to {@link SamplingDecision} for details.\n */\n decision: SamplingDecision;\n /**\n * The list of attributes returned by SamplingResult MUST be immutable.\n * Caller may call {@link Sampler}.shouldSample any number of times and\n * can safely cache the returned value.\n */\n attributes?: Readonly;\n /**\n * A {@link TraceState} that will be associated with the {@link Span} through\n * the new {@link SpanContext}. Samplers SHOULD return the TraceState from\n * the passed-in {@link Context} if they do not intend to change it. Leaving\n * the value undefined will also leave the TraceState unchanged.\n */\n traceState?: TraceState;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.d.ts b/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.d.ts deleted file mode 100644 index c8045689..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { TimeInput } from '../common/Time'; -import { SpanAttributes } from './attributes'; -import { Link } from './link'; -import { SpanKind } from './span_kind'; -/** - * Options needed for span creation - */ -export interface SpanOptions { - /** - * The SpanKind of a span - * @default {@link SpanKind.INTERNAL} - */ - kind?: SpanKind; - /** A span's attributes */ - attributes?: SpanAttributes; - /** {@link Link}s span to other spans */ - links?: Link[]; - /** A manually specified start time for the created `Span` object. */ - startTime?: TimeInput; - /** The new span should be a root span. (Ignore parent from context). */ - root?: boolean; -} -//# sourceMappingURL=SpanOptions.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js b/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js deleted file mode 100644 index cb582305..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=SpanOptions.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js.map b/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js.map deleted file mode 100644 index 049f6858..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/SpanOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SpanOptions.js","sourceRoot":"","sources":["../../../src/trace/SpanOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { Link } from './link';\nimport { SpanKind } from './span_kind';\n\n/**\n * Options needed for span creation\n */\nexport interface SpanOptions {\n /**\n * The SpanKind of a span\n * @default {@link SpanKind.INTERNAL}\n */\n kind?: SpanKind;\n\n /** A span's attributes */\n attributes?: SpanAttributes;\n\n /** {@link Link}s span to other spans */\n links?: Link[];\n\n /** A manually specified start time for the created `Span` object. */\n startTime?: TimeInput;\n\n /** The new span should be a root span. (Ignore parent from context). */\n root?: boolean;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts b/node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts deleted file mode 100644 index a2a5d2a2..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Attributes, AttributeValue } from '../common/Attributes'; -/** - * @deprecated please use {@link Attributes} - */ -export declare type SpanAttributes = Attributes; -/** - * @deprecated please use {@link AttributeValue} - */ -export declare type SpanAttributeValue = AttributeValue; -//# sourceMappingURL=attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/attributes.js b/node_modules/@opentelemetry/api/build/src/trace/attributes.js deleted file mode 100644 index c6eb97a3..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/attributes.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=attributes.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/attributes.js.map b/node_modules/@opentelemetry/api/build/src/trace/attributes.js.map deleted file mode 100644 index 4de58c42..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/attributes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/trace/attributes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes, AttributeValue } from '../common/Attributes';\n\n/**\n * @deprecated please use {@link Attributes}\n */\nexport type SpanAttributes = Attributes;\n\n/**\n * @deprecated please use {@link AttributeValue}\n */\nexport type SpanAttributeValue = AttributeValue;\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts b/node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts deleted file mode 100644 index f35f7942..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanContext } from './span_context'; -/** - * Return the span if one exists - * - * @param context context to get span from - */ -export declare function getSpan(context: Context): Span | undefined; -/** - * Gets the span from the current context, if one exists. - */ -export declare function getActiveSpan(): Span | undefined; -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -export declare function setSpan(context: Context, span: Span): Context; -/** - * Remove current span stored in the context - * - * @param context context to delete span from - */ -export declare function deleteSpan(context: Context): Context; -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -export declare function setSpanContext(context: Context, spanContext: SpanContext): Context; -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -export declare function getSpanContext(context: Context): SpanContext | undefined; -//# sourceMappingURL=context-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/context-utils.js b/node_modules/@opentelemetry/api/build/src/trace/context-utils.js deleted file mode 100644 index d7e9c3a3..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/context-utils.js +++ /dev/null @@ -1,82 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getSpanContext = exports.setSpanContext = exports.deleteSpan = exports.setSpan = exports.getActiveSpan = exports.getSpan = void 0; -const context_1 = require("../context/context"); -const NonRecordingSpan_1 = require("./NonRecordingSpan"); -const context_2 = require("../api/context"); -/** - * span key - */ -const SPAN_KEY = (0, context_1.createContextKey)('OpenTelemetry Context Key SPAN'); -/** - * Return the span if one exists - * - * @param context context to get span from - */ -function getSpan(context) { - return context.getValue(SPAN_KEY) || undefined; -} -exports.getSpan = getSpan; -/** - * Gets the span from the current context, if one exists. - */ -function getActiveSpan() { - return getSpan(context_2.ContextAPI.getInstance().active()); -} -exports.getActiveSpan = getActiveSpan; -/** - * Set the span on a context - * - * @param context context to use as parent - * @param span span to set active - */ -function setSpan(context, span) { - return context.setValue(SPAN_KEY, span); -} -exports.setSpan = setSpan; -/** - * Remove current span stored in the context - * - * @param context context to delete span from - */ -function deleteSpan(context) { - return context.deleteValue(SPAN_KEY); -} -exports.deleteSpan = deleteSpan; -/** - * Wrap span context in a NoopSpan and set as span in a new - * context - * - * @param context context to set active span on - * @param spanContext span context to be wrapped - */ -function setSpanContext(context, spanContext) { - return setSpan(context, new NonRecordingSpan_1.NonRecordingSpan(spanContext)); -} -exports.setSpanContext = setSpanContext; -/** - * Get the span context of the span if it exists. - * - * @param context context to get values from - */ -function getSpanContext(context) { - var _a; - return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext(); -} -exports.getSpanContext = getSpanContext; -//# sourceMappingURL=context-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/context-utils.js.map b/node_modules/@opentelemetry/api/build/src/trace/context-utils.js.map deleted file mode 100644 index 5fa81260..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/context-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"context-utils.js","sourceRoot":"","sources":["../../../src/trace/context-utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,gDAAsD;AAItD,yDAAsD;AACtD,4CAA4C;AAE5C;;GAEG;AACH,MAAM,QAAQ,GAAG,IAAA,0BAAgB,EAAC,gCAAgC,CAAC,CAAC;AAEpE;;;;GAIG;AACH,SAAgB,OAAO,CAAC,OAAgB;IACtC,OAAQ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU,IAAI,SAAS,CAAC;AAC3D,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,oBAAU,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAFD,sCAEC;AAED;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,OAAgB,EAAE,IAAU;IAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAFD,gCAEC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,OAAgB,EAChB,WAAwB;IAExB,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,mCAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,CAAC;AALD,wCAKC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAgB;;IAC7C,OAAO,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAFD,wCAEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan(): Span | undefined {\n return getSpan(ContextAPI.getInstance().active());\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.d.ts b/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.d.ts deleted file mode 100644 index 9ed5ecb7..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { TraceState } from '../trace_state'; -/** - * TraceState must be a class and not a simple object type because of the spec - * requirement (https://www.w3.org/TR/trace-context/#tracestate-field). - * - * Here is the list of allowed mutations: - * - New key-value pair should be added into the beginning of the list - * - The value of any key can be updated. Modified keys MUST be moved to the - * beginning of the list. - */ -export declare class TraceStateImpl implements TraceState { - private _internalState; - constructor(rawTraceState?: string); - set(key: string, value: string): TraceStateImpl; - unset(key: string): TraceStateImpl; - get(key: string): string | undefined; - serialize(): string; - private _parse; - private _keys; - private _clone; -} -//# sourceMappingURL=tracestate-impl.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js b/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js deleted file mode 100644 index 93c0289c..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js +++ /dev/null @@ -1,103 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TraceStateImpl = void 0; -const tracestate_validators_1 = require("./tracestate-validators"); -const MAX_TRACE_STATE_ITEMS = 32; -const MAX_TRACE_STATE_LEN = 512; -const LIST_MEMBERS_SEPARATOR = ','; -const LIST_MEMBER_KEY_VALUE_SPLITTER = '='; -/** - * TraceState must be a class and not a simple object type because of the spec - * requirement (https://www.w3.org/TR/trace-context/#tracestate-field). - * - * Here is the list of allowed mutations: - * - New key-value pair should be added into the beginning of the list - * - The value of any key can be updated. Modified keys MUST be moved to the - * beginning of the list. - */ -class TraceStateImpl { - constructor(rawTraceState) { - this._internalState = new Map(); - if (rawTraceState) - this._parse(rawTraceState); - } - set(key, value) { - // TODO: Benchmark the different approaches(map vs list) and - // use the faster one. - const traceState = this._clone(); - if (traceState._internalState.has(key)) { - traceState._internalState.delete(key); - } - traceState._internalState.set(key, value); - return traceState; - } - unset(key) { - const traceState = this._clone(); - traceState._internalState.delete(key); - return traceState; - } - get(key) { - return this._internalState.get(key); - } - serialize() { - return this._keys() - .reduce((agg, key) => { - agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key)); - return agg; - }, []) - .join(LIST_MEMBERS_SEPARATOR); - } - _parse(rawTraceState) { - if (rawTraceState.length > MAX_TRACE_STATE_LEN) - return; - this._internalState = rawTraceState - .split(LIST_MEMBERS_SEPARATOR) - .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning - .reduce((agg, part) => { - const listMember = part.trim(); // Optional Whitespace (OWS) handling - const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER); - if (i !== -1) { - const key = listMember.slice(0, i); - const value = listMember.slice(i + 1, part.length); - if ((0, tracestate_validators_1.validateKey)(key) && (0, tracestate_validators_1.validateValue)(value)) { - agg.set(key, value); - } - else { - // TODO: Consider to add warning log - } - } - return agg; - }, new Map()); - // Because of the reverse() requirement, trunc must be done after map is created - if (this._internalState.size > MAX_TRACE_STATE_ITEMS) { - this._internalState = new Map(Array.from(this._internalState.entries()) - .reverse() // Use reverse same as original tracestate parse chain - .slice(0, MAX_TRACE_STATE_ITEMS)); - } - } - _keys() { - return Array.from(this._internalState.keys()).reverse(); - } - _clone() { - const traceState = new TraceStateImpl(); - traceState._internalState = new Map(this._internalState); - return traceState; - } -} -exports.TraceStateImpl = TraceStateImpl; -//# sourceMappingURL=tracestate-impl.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js.map b/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js.map deleted file mode 100644 index 83eacbe7..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracestate-impl.js","sourceRoot":"","sources":["../../../../src/trace/internal/tracestate-impl.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,mEAAqE;AAErE,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAa,cAAc;IAGzB,YAAY,aAAsB;QAF1B,mBAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QAGtD,IAAI,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,4DAA4D;QAC5D,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvC;QACD,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,GAAW;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE;aAChB,MAAM,CAAC,CAAC,GAAa,EAAE,GAAG,EAAE,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;aACL,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,aAAqB;QAClC,IAAI,aAAa,CAAC,MAAM,GAAG,mBAAmB;YAAE,OAAO;QACvD,IAAI,CAAC,cAAc,GAAG,aAAa;aAChC,KAAK,CAAC,sBAAsB,CAAC;aAC7B,OAAO,EAAE,CAAC,2EAA2E;aACrF,MAAM,CAAC,CAAC,GAAwB,EAAE,IAAY,EAAE,EAAE;YACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,qCAAqC;YACrE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACZ,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,IAAA,mCAAW,EAAC,GAAG,CAAC,IAAI,IAAA,qCAAa,EAAC,KAAK,CAAC,EAAE;oBAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACrB;qBAAM;oBACL,oCAAoC;iBACrC;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAEhB,gFAAgF;QAChF,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,qBAAqB,EAAE;YACpD,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;iBACtC,OAAO,EAAE,CAAC,sDAAsD;iBAChE,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CACnC,CAAC;SACH;IACH,CAAC;IAEO,KAAK;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;IAEO,MAAM;QACZ,MAAM,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,UAAU,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA5ED,wCA4EC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { validateKey, validateValue } from './tracestate-validators';\n\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nexport class TraceStateImpl implements TraceState {\n private _internalState: Map = new Map();\n\n constructor(rawTraceState?: string) {\n if (rawTraceState) this._parse(rawTraceState);\n }\n\n set(key: string, value: string): TraceStateImpl {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n\n unset(key: string): TraceStateImpl {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n\n get(key: string): string | undefined {\n return this._internalState.get(key);\n }\n\n serialize(): string {\n return this._keys()\n .reduce((agg: string[], key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n\n private _parse(rawTraceState: string) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN) return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg: Map, part: string) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n } else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(\n Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS)\n );\n }\n }\n\n private _keys(): string[] {\n return Array.from(this._internalState.keys()).reverse();\n }\n\n private _clone(): TraceStateImpl {\n const traceState = new TraceStateImpl();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.d.ts b/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.d.ts deleted file mode 100644 index 4917f99d..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Key is opaque string up to 256 characters printable. It MUST begin with a - * lowercase letter, and can only contain lowercase letters a-z, digits 0-9, - * underscores _, dashes -, asterisks *, and forward slashes /. - * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the - * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key. - * see https://www.w3.org/TR/trace-context/#key - */ -export declare function validateKey(key: string): boolean; -/** - * Value is opaque string up to 256 characters printable ASCII RFC0020 - * characters (i.e., the range 0x20 to 0x7E) except comma , and =. - */ -export declare function validateValue(value: string): boolean; -//# sourceMappingURL=tracestate-validators.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js b/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js deleted file mode 100644 index 3e370449..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.validateValue = exports.validateKey = void 0; -const VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]'; -const VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`; -const VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`; -const VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`); -const VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/; -const INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/; -/** - * Key is opaque string up to 256 characters printable. It MUST begin with a - * lowercase letter, and can only contain lowercase letters a-z, digits 0-9, - * underscores _, dashes -, asterisks *, and forward slashes /. - * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the - * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key. - * see https://www.w3.org/TR/trace-context/#key - */ -function validateKey(key) { - return VALID_KEY_REGEX.test(key); -} -exports.validateKey = validateKey; -/** - * Value is opaque string up to 256 characters printable ASCII RFC0020 - * characters (i.e., the range 0x20 to 0x7E) except comma , and =. - */ -function validateValue(value) { - return (VALID_VALUE_BASE_REGEX.test(value) && - !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)); -} -exports.validateValue = validateValue; -//# sourceMappingURL=tracestate-validators.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js.map b/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js.map deleted file mode 100644 index 498abce3..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracestate-validators.js","sourceRoot":"","sources":["../../../../src/trace/internal/tracestate-validators.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAC5C,MAAM,SAAS,GAAG,QAAQ,oBAAoB,SAAS,CAAC;AACxD,MAAM,gBAAgB,GAAG,WAAW,oBAAoB,gBAAgB,oBAAoB,QAAQ,CAAC;AACrG,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,OAAO,SAAS,IAAI,gBAAgB,IAAI,CAAC,CAAC;AAC7E,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AACrD,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAC7C,CAAC;AACJ,CAAC;AALD,sCAKC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key: string): boolean {\n return VALID_KEY_REGEX.test(key);\n}\n\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value: string): boolean {\n return (\n VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)\n );\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts b/node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts deleted file mode 100644 index e3b51fe4..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { TraceState } from '../trace_state'; -export declare function createTraceState(rawTraceState?: string): TraceState; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js b/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js deleted file mode 100644 index 3d954190..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.createTraceState = void 0; -const tracestate_impl_1 = require("./tracestate-impl"); -function createTraceState(rawTraceState) { - return new tracestate_impl_1.TraceStateImpl(rawTraceState); -} -exports.createTraceState = createTraceState; -//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js.map b/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js.map deleted file mode 100644 index 19cd87cb..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/trace/internal/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,uDAAmD;AAEnD,SAAgB,gBAAgB,CAAC,aAAsB;IACrD,OAAO,IAAI,gCAAc,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC;AAFD,4CAEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { TraceStateImpl } from './tracestate-impl';\n\nexport function createTraceState(rawTraceState?: string): TraceState {\n return new TraceStateImpl(rawTraceState);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts b/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts deleted file mode 100644 index e32dab9d..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { SpanContext } from './span_context'; -export declare const INVALID_SPANID = "0000000000000000"; -export declare const INVALID_TRACEID = "00000000000000000000000000000000"; -export declare const INVALID_SPAN_CONTEXT: SpanContext; -//# sourceMappingURL=invalid-span-constants.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js b/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js deleted file mode 100644 index 77fb79e9..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = void 0; -const trace_flags_1 = require("./trace_flags"); -exports.INVALID_SPANID = '0000000000000000'; -exports.INVALID_TRACEID = '00000000000000000000000000000000'; -exports.INVALID_SPAN_CONTEXT = { - traceId: exports.INVALID_TRACEID, - spanId: exports.INVALID_SPANID, - traceFlags: trace_flags_1.TraceFlags.NONE, -}; -//# sourceMappingURL=invalid-span-constants.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js.map b/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js.map deleted file mode 100644 index 54da5374..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"invalid-span-constants.js","sourceRoot":"","sources":["../../../src/trace/invalid-span-constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,+CAA2C;AAE9B,QAAA,cAAc,GAAG,kBAAkB,CAAC;AACpC,QAAA,eAAe,GAAG,kCAAkC,CAAC;AACrD,QAAA,oBAAoB,GAAgB;IAC/C,OAAO,EAAE,uBAAe;IACxB,MAAM,EAAE,sBAAc;IACtB,UAAU,EAAE,wBAAU,CAAC,IAAI;CAC5B,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanContext } from './span_context';\nimport { TraceFlags } from './trace_flags';\n\nexport const INVALID_SPANID = '0000000000000000';\nexport const INVALID_TRACEID = '00000000000000000000000000000000';\nexport const INVALID_SPAN_CONTEXT: SpanContext = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/link.d.ts b/node_modules/@opentelemetry/api/build/src/trace/link.d.ts deleted file mode 100644 index 8fc01062..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/link.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { SpanAttributes } from './attributes'; -import { SpanContext } from './span_context'; -/** - * A pointer from the current {@link Span} to another span in the same trace or - * in a different trace. - * Few examples of Link usage. - * 1. Batch Processing: A batch of elements may contain elements associated - * with one or more traces/spans. Since there can only be one parent - * SpanContext, Link is used to keep reference to SpanContext of all - * elements in the batch. - * 2. Public Endpoint: A SpanContext in incoming client request on a public - * endpoint is untrusted from service provider perspective. In such case it - * is advisable to start a new trace with appropriate sampling decision. - * However, it is desirable to associate incoming SpanContext to new trace - * initiated on service provider side so two traces (from Client and from - * Service Provider) can be correlated. - */ -export interface Link { - /** The {@link SpanContext} of a linked span. */ - context: SpanContext; - /** A set of {@link SpanAttributes} on the link. */ - attributes?: SpanAttributes; - /** Count of attributes of the link that were dropped due to collection limits */ - droppedAttributesCount?: number; -} -//# sourceMappingURL=link.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/link.js b/node_modules/@opentelemetry/api/build/src/trace/link.js deleted file mode 100644 index 8036a634..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/link.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=link.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/link.js.map b/node_modules/@opentelemetry/api/build/src/trace/link.js.map deleted file mode 100644 index 34fae43d..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/link.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/trace/link.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\nimport { SpanContext } from './span_context';\n\n/**\n * A pointer from the current {@link Span} to another span in the same trace or\n * in a different trace.\n * Few examples of Link usage.\n * 1. Batch Processing: A batch of elements may contain elements associated\n * with one or more traces/spans. Since there can only be one parent\n * SpanContext, Link is used to keep reference to SpanContext of all\n * elements in the batch.\n * 2. Public Endpoint: A SpanContext in incoming client request on a public\n * endpoint is untrusted from service provider perspective. In such case it\n * is advisable to start a new trace with appropriate sampling decision.\n * However, it is desirable to associate incoming SpanContext to new trace\n * initiated on service provider side so two traces (from Client and from\n * Service Provider) can be correlated.\n */\nexport interface Link {\n /** The {@link SpanContext} of a linked span. */\n context: SpanContext;\n /** A set of {@link SpanAttributes} on the link. */\n attributes?: SpanAttributes;\n /** Count of attributes of the link that were dropped due to collection limits */\n droppedAttributesCount?: number;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span.d.ts b/node_modules/@opentelemetry/api/build/src/trace/span.d.ts deleted file mode 100644 index 28c6442d..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span.d.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { Exception } from '../common/Exception'; -import { TimeInput } from '../common/Time'; -import { SpanAttributes, SpanAttributeValue } from './attributes'; -import { SpanContext } from './span_context'; -import { SpanStatus } from './status'; -import { Link } from './link'; -/** - * An interface that represents a span. A span represents a single operation - * within a trace. Examples of span might include remote procedure calls or a - * in-process function calls to sub-components. A Trace has a single, top-level - * "root" Span that in turn may have zero or more child Spans, which in turn - * may have children. - * - * Spans are created by the {@link Tracer.startSpan} method. - */ -export interface Span { - /** - * Returns the {@link SpanContext} object associated with this Span. - * - * Get an immutable, serializable identifier for this span that can be used - * to create new child spans. Returned SpanContext is usable even after the - * span ends. - * - * @returns the SpanContext object associated with this Span. - */ - spanContext(): SpanContext; - /** - * Sets an attribute to the span. - * - * Sets a single Attribute with the key and value passed as arguments. - * - * @param key the key for this attribute. - * @param value the value for this attribute. Setting a value null or - * undefined is invalid and will result in undefined behavior. - */ - setAttribute(key: string, value: SpanAttributeValue): this; - /** - * Sets attributes to the span. - * - * @param attributes the attributes that will be added. - * null or undefined attribute values - * are invalid and will result in undefined behavior. - */ - setAttributes(attributes: SpanAttributes): this; - /** - * Adds an event to the Span. - * - * @param name the name of the event. - * @param [attributesOrStartTime] the attributes that will be added; these are - * associated with this event. Can be also a start time - * if type is {@type TimeInput} and 3rd param is undefined - * @param [startTime] start time of the event. - */ - addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this; - /** - * Adds a single link to the span. - * - * Links added after the creation will not affect the sampling decision. - * It is preferred span links be added at span creation. - * - * @param link the link to add. - */ - addLink(link: Link): this; - /** - * Adds multiple links to the span. - * - * Links added after the creation will not affect the sampling decision. - * It is preferred span links be added at span creation. - * - * @param links the links to add. - */ - addLinks(links: Link[]): this; - /** - * Sets a status to the span. If used, this will override the default Span - * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value - * of previous calls to SetStatus on the Span. - * - * @param status the SpanStatus to set. - */ - setStatus(status: SpanStatus): this; - /** - * Updates the Span name. - * - * This will override the name provided via {@link Tracer.startSpan}. - * - * Upon this update, any sampling behavior based on Span name will depend on - * the implementation. - * - * @param name the Span name. - */ - updateName(name: string): this; - /** - * Marks the end of Span execution. - * - * Call to End of a Span MUST not have any effects on child spans. Those may - * still be running and can be ended later. - * - * Do not return `this`. The Span generally should not be used after it - * is ended so chaining is not desired in this context. - * - * @param [endTime] the time to set as Span's end time. If not provided, - * use the current time as the span's end time. - */ - end(endTime?: TimeInput): void; - /** - * Returns the flag whether this span will be recorded. - * - * @returns true if this Span is active and recording information like events - * with the `AddEvent` operation and attributes using `setAttributes`. - */ - isRecording(): boolean; - /** - * Sets exception as a span event - * @param exception the exception the only accepted values are string or Error - * @param [time] the time to set as Span's event time. If not provided, - * use the current time. - */ - recordException(exception: Exception, time?: TimeInput): void; -} -//# sourceMappingURL=span.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span.js b/node_modules/@opentelemetry/api/build/src/trace/span.js deleted file mode 100644 index b50af462..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=span.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span.js.map b/node_modules/@opentelemetry/api/build/src/trace/span.js.map deleted file mode 100644 index f32cb28b..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../src/trace/span.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes, SpanAttributeValue } from './attributes';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * An interface that represents a span. A span represents a single operation\n * within a trace. Examples of span might include remote procedure calls or a\n * in-process function calls to sub-components. A Trace has a single, top-level\n * \"root\" Span that in turn may have zero or more child Spans, which in turn\n * may have children.\n *\n * Spans are created by the {@link Tracer.startSpan} method.\n */\nexport interface Span {\n /**\n * Returns the {@link SpanContext} object associated with this Span.\n *\n * Get an immutable, serializable identifier for this span that can be used\n * to create new child spans. Returned SpanContext is usable even after the\n * span ends.\n *\n * @returns the SpanContext object associated with this Span.\n */\n spanContext(): SpanContext;\n\n /**\n * Sets an attribute to the span.\n *\n * Sets a single Attribute with the key and value passed as arguments.\n *\n * @param key the key for this attribute.\n * @param value the value for this attribute. Setting a value null or\n * undefined is invalid and will result in undefined behavior.\n */\n setAttribute(key: string, value: SpanAttributeValue): this;\n\n /**\n * Sets attributes to the span.\n *\n * @param attributes the attributes that will be added.\n * null or undefined attribute values\n * are invalid and will result in undefined behavior.\n */\n setAttributes(attributes: SpanAttributes): this;\n\n /**\n * Adds an event to the Span.\n *\n * @param name the name of the event.\n * @param [attributesOrStartTime] the attributes that will be added; these are\n * associated with this event. Can be also a start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [startTime] start time of the event.\n */\n addEvent(\n name: string,\n attributesOrStartTime?: SpanAttributes | TimeInput,\n startTime?: TimeInput\n ): this;\n\n /**\n * Adds a single link to the span.\n *\n * Links added after the creation will not affect the sampling decision.\n * It is preferred span links be added at span creation.\n *\n * @param link the link to add.\n */\n addLink(link: Link): this;\n\n /**\n * Adds multiple links to the span.\n *\n * Links added after the creation will not affect the sampling decision.\n * It is preferred span links be added at span creation.\n *\n * @param links the links to add.\n */\n addLinks(links: Link[]): this;\n\n /**\n * Sets a status to the span. If used, this will override the default Span\n * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value\n * of previous calls to SetStatus on the Span.\n *\n * @param status the SpanStatus to set.\n */\n setStatus(status: SpanStatus): this;\n\n /**\n * Updates the Span name.\n *\n * This will override the name provided via {@link Tracer.startSpan}.\n *\n * Upon this update, any sampling behavior based on Span name will depend on\n * the implementation.\n *\n * @param name the Span name.\n */\n updateName(name: string): this;\n\n /**\n * Marks the end of Span execution.\n *\n * Call to End of a Span MUST not have any effects on child spans. Those may\n * still be running and can be ended later.\n *\n * Do not return `this`. The Span generally should not be used after it\n * is ended so chaining is not desired in this context.\n *\n * @param [endTime] the time to set as Span's end time. If not provided,\n * use the current time as the span's end time.\n */\n end(endTime?: TimeInput): void;\n\n /**\n * Returns the flag whether this span will be recorded.\n *\n * @returns true if this Span is active and recording information like events\n * with the `AddEvent` operation and attributes using `setAttributes`.\n */\n isRecording(): boolean;\n\n /**\n * Sets exception as a span event\n * @param exception the exception the only accepted values are string or Error\n * @param [time] the time to set as Span's event time. If not provided,\n * use the current time.\n */\n recordException(exception: Exception, time?: TimeInput): void;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts b/node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts deleted file mode 100644 index f30933a1..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { TraceState } from './trace_state'; -/** - * A SpanContext represents the portion of a {@link Span} which must be - * serialized and propagated along side of a {@link Baggage}. - */ -export interface SpanContext { - /** - * The ID of the trace that this span belongs to. It is worldwide unique - * with practically sufficient probability by being made as 16 randomly - * generated bytes, encoded as a 32 lowercase hex characters corresponding to - * 128 bits. - */ - traceId: string; - /** - * The ID of the Span. It is globally unique with practically sufficient - * probability by being made as 8 randomly generated bytes, encoded as a 16 - * lowercase hex characters corresponding to 64 bits. - */ - spanId: string; - /** - * Only true if the SpanContext was propagated from a remote parent. - */ - isRemote?: boolean; - /** - * Trace flags to propagate. - * - * It is represented as 1 byte (bitmap). Bit to represent whether trace is - * sampled or not. When set, the least significant bit documents that the - * caller may have recorded trace data. A caller who does not record trace - * data out-of-band leaves this flag unset. - * - * see {@link TraceFlags} for valid flag values. - */ - traceFlags: number; - /** - * Tracing-system-specific info to propagate. - * - * The tracestate field value is a `list` as defined below. The `list` is a - * series of `list-members` separated by commas `,`, and a list-member is a - * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs - * surrounding `list-members` are ignored. There can be a maximum of 32 - * `list-members` in a `list`. - * More Info: https://www.w3.org/TR/trace-context/#tracestate-field - * - * Examples: - * Single tracing system (generic format): - * tracestate: rojo=00f067aa0ba902b7 - * Multiple tracing systems (with different formatting): - * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE - */ - traceState?: TraceState; -} -//# sourceMappingURL=span_context.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span_context.js b/node_modules/@opentelemetry/api/build/src/trace/span_context.js deleted file mode 100644 index 4b7976ce..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span_context.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=span_context.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span_context.js.map b/node_modules/@opentelemetry/api/build/src/trace/span_context.js.map deleted file mode 100644 index 005386d6..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span_context.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span_context.js","sourceRoot":"","sources":["../../../src/trace/span_context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from './trace_state';\n\n/**\n * A SpanContext represents the portion of a {@link Span} which must be\n * serialized and propagated along side of a {@link Baggage}.\n */\nexport interface SpanContext {\n /**\n * The ID of the trace that this span belongs to. It is worldwide unique\n * with practically sufficient probability by being made as 16 randomly\n * generated bytes, encoded as a 32 lowercase hex characters corresponding to\n * 128 bits.\n */\n traceId: string;\n /**\n * The ID of the Span. It is globally unique with practically sufficient\n * probability by being made as 8 randomly generated bytes, encoded as a 16\n * lowercase hex characters corresponding to 64 bits.\n */\n spanId: string;\n /**\n * Only true if the SpanContext was propagated from a remote parent.\n */\n isRemote?: boolean;\n /**\n * Trace flags to propagate.\n *\n * It is represented as 1 byte (bitmap). Bit to represent whether trace is\n * sampled or not. When set, the least significant bit documents that the\n * caller may have recorded trace data. A caller who does not record trace\n * data out-of-band leaves this flag unset.\n *\n * see {@link TraceFlags} for valid flag values.\n */\n traceFlags: number;\n /**\n * Tracing-system-specific info to propagate.\n *\n * The tracestate field value is a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n * More Info: https://www.w3.org/TR/trace-context/#tracestate-field\n *\n * Examples:\n * Single tracing system (generic format):\n * tracestate: rojo=00f067aa0ba902b7\n * Multiple tracing systems (with different formatting):\n * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE\n */\n traceState?: TraceState;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts b/node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts deleted file mode 100644 index a89846f6..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -export declare enum SpanKind { - /** Default value. Indicates that the span is used internally. */ - INTERNAL = 0, - /** - * Indicates that the span covers server-side handling of an RPC or other - * remote request. - */ - SERVER = 1, - /** - * Indicates that the span covers the client-side wrapper around an RPC or - * other remote request. - */ - CLIENT = 2, - /** - * Indicates that the span describes producer sending a message to a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - PRODUCER = 3, - /** - * Indicates that the span describes consumer receiving a message from a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - CONSUMER = 4 -} -//# sourceMappingURL=span_kind.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span_kind.js b/node_modules/@opentelemetry/api/build/src/trace/span_kind.js deleted file mode 100644 index 9c06e2c2..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span_kind.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SpanKind = void 0; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var SpanKind; -(function (SpanKind) { - /** Default value. Indicates that the span is used internally. */ - SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL"; - /** - * Indicates that the span covers server-side handling of an RPC or other - * remote request. - */ - SpanKind[SpanKind["SERVER"] = 1] = "SERVER"; - /** - * Indicates that the span covers the client-side wrapper around an RPC or - * other remote request. - */ - SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT"; - /** - * Indicates that the span describes producer sending a message to a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER"; - /** - * Indicates that the span describes consumer receiving a message from a - * broker. Unlike client and server, there is no direct critical path latency - * relationship between producer and consumer spans. - */ - SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER"; -})(SpanKind = exports.SpanKind || (exports.SpanKind = {})); -//# sourceMappingURL=span_kind.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/span_kind.js.map b/node_modules/@opentelemetry/api/build/src/trace/span_kind.js.map deleted file mode 100644 index c0ba360f..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/span_kind.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"span_kind.js","sourceRoot":"","sources":["../../../src/trace/span_kind.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,IAAY,QA6BX;AA7BD,WAAY,QAAQ;IAClB,iEAAiE;IACjE,+CAAY,CAAA;IAEZ;;;OAGG;IACH,2CAAU,CAAA;IAEV;;;OAGG;IACH,2CAAU,CAAA;IAEV;;;;OAIG;IACH,+CAAY,CAAA;IAEZ;;;;OAIG;IACH,+CAAY,CAAA;AACd,CAAC,EA7BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA6BnB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum SpanKind {\n /** Default value. Indicates that the span is used internally. */\n INTERNAL = 0,\n\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SERVER = 1,\n\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n CLIENT = 2,\n\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n PRODUCER = 3,\n\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n CONSUMER = 4,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts b/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts deleted file mode 100644 index f1911114..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Span } from './span'; -import { SpanContext } from './span_context'; -export declare function isValidTraceId(traceId: string): boolean; -export declare function isValidSpanId(spanId: string): boolean; -/** - * Returns true if this {@link SpanContext} is valid. - * @return true if this {@link SpanContext} is valid. - */ -export declare function isSpanContextValid(spanContext: SpanContext): boolean; -/** - * Wrap the given {@link SpanContext} in a new non-recording {@link Span} - * - * @param spanContext span context to be wrapped - * @returns a new non-recording {@link Span} with the provided context - */ -export declare function wrapSpanContext(spanContext: SpanContext): Span; -//# sourceMappingURL=spancontext-utils.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js b/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js deleted file mode 100644 index dc88f5e6..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.wrapSpanContext = exports.isSpanContextValid = exports.isValidSpanId = exports.isValidTraceId = void 0; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const invalid_span_constants_1 = require("./invalid-span-constants"); -const NonRecordingSpan_1 = require("./NonRecordingSpan"); -const VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; -const VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; -function isValidTraceId(traceId) { - return VALID_TRACEID_REGEX.test(traceId) && traceId !== invalid_span_constants_1.INVALID_TRACEID; -} -exports.isValidTraceId = isValidTraceId; -function isValidSpanId(spanId) { - return VALID_SPANID_REGEX.test(spanId) && spanId !== invalid_span_constants_1.INVALID_SPANID; -} -exports.isValidSpanId = isValidSpanId; -/** - * Returns true if this {@link SpanContext} is valid. - * @return true if this {@link SpanContext} is valid. - */ -function isSpanContextValid(spanContext) { - return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)); -} -exports.isSpanContextValid = isSpanContextValid; -/** - * Wrap the given {@link SpanContext} in a new non-recording {@link Span} - * - * @param spanContext span context to be wrapped - * @returns a new non-recording {@link Span} with the provided context - */ -function wrapSpanContext(spanContext) { - return new NonRecordingSpan_1.NonRecordingSpan(spanContext); -} -exports.wrapSpanContext = wrapSpanContext; -//# sourceMappingURL=spancontext-utils.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js.map b/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js.map deleted file mode 100644 index 58358a06..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"spancontext-utils.js","sourceRoot":"","sources":["../../../src/trace/spancontext-utils.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,qEAA2E;AAC3E,yDAAsD;AAItD,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAE7C,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,wCAAe,CAAC;AAC1E,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAC,MAAc;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,uCAAc,CAAC;AACtE,CAAC;AAFD,sCAEC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,WAAwB;IACzD,OAAO,CACL,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CACzE,CAAC;AACJ,CAAC;AAJD,gDAIC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,WAAwB;IACtD,OAAO,IAAI,mCAAgB,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AAFD,0CAEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\n\nconst VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nconst VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\n\nexport function isValidTraceId(traceId: string): boolean {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\n\nexport function isValidSpanId(spanId: string): boolean {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext: SpanContext): boolean {\n return (\n isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)\n );\n}\n\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext: SpanContext): Span {\n return new NonRecordingSpan(spanContext);\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/status.d.ts b/node_modules/@opentelemetry/api/build/src/trace/status.d.ts deleted file mode 100644 index ab19a68f..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/status.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface SpanStatus { - /** The status code of this message. */ - code: SpanStatusCode; - /** A developer-facing error message. */ - message?: string; -} -/** - * An enumeration of status codes. - */ -export declare enum SpanStatusCode { - /** - * The default status. - */ - UNSET = 0, - /** - * The operation has been validated by an Application developer or - * Operator to have completed successfully. - */ - OK = 1, - /** - * The operation contains an error. - */ - ERROR = 2 -} -//# sourceMappingURL=status.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/status.js b/node_modules/@opentelemetry/api/build/src/trace/status.js deleted file mode 100644 index 50cbdef8..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/status.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SpanStatusCode = void 0; -/** - * An enumeration of status codes. - */ -var SpanStatusCode; -(function (SpanStatusCode) { - /** - * The default status. - */ - SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET"; - /** - * The operation has been validated by an Application developer or - * Operator to have completed successfully. - */ - SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK"; - /** - * The operation contains an error. - */ - SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR"; -})(SpanStatusCode = exports.SpanStatusCode || (exports.SpanStatusCode = {})); -//# sourceMappingURL=status.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/status.js.map b/node_modules/@opentelemetry/api/build/src/trace/status.js.map deleted file mode 100644 index b921cae5..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/status.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/trace/status.ts"],"names":[],"mappings":";;;AAsBA;;GAEG;AACH,IAAY,cAcX;AAdD,WAAY,cAAc;IACxB;;OAEG;IACH,qDAAS,CAAA;IACT;;;OAGG;IACH,+CAAM,CAAA;IACN;;OAEG;IACH,qDAAS,CAAA;AACX,CAAC,EAdW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAczB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * An enumeration of status codes.\n */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts b/node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts deleted file mode 100644 index 11288ba9..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare enum TraceFlags { - /** Represents no flag set. */ - NONE = 0, - /** Bit to represent whether trace is sampled in trace flags. */ - SAMPLED = 1 -} -//# sourceMappingURL=trace_flags.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js b/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js deleted file mode 100644 index f8d4dd8a..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TraceFlags = void 0; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var TraceFlags; -(function (TraceFlags) { - /** Represents no flag set. */ - TraceFlags[TraceFlags["NONE"] = 0] = "NONE"; - /** Bit to represent whether trace is sampled in trace flags. */ - TraceFlags[TraceFlags["SAMPLED"] = 1] = "SAMPLED"; -})(TraceFlags = exports.TraceFlags || (exports.TraceFlags = {})); -//# sourceMappingURL=trace_flags.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js.map b/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js.map deleted file mode 100644 index 965ce794..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_flags.js","sourceRoot":"","sources":["../../../src/trace/trace_flags.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,8BAA8B;IAC9B,2CAAU,CAAA;IACV,gEAAgE;IAChE,iDAAkB,CAAA;AACpB,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum TraceFlags {\n /** Represents no flag set. */\n NONE = 0x0,\n /** Bit to represent whether trace is sampled in trace flags. */\n SAMPLED = 0x1 << 0,\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts b/node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts deleted file mode 100644 index f275b8be..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -export interface TraceState { - /** - * Create a new TraceState which inherits from this TraceState and has the - * given key set. - * The new entry will always be added in the front of the list of states. - * - * @param key key of the TraceState entry. - * @param value value of the TraceState entry. - */ - set(key: string, value: string): TraceState; - /** - * Return a new TraceState which inherits from this TraceState but does not - * contain the given key. - * - * @param key the key for the TraceState entry to be removed. - */ - unset(key: string): TraceState; - /** - * Returns the value to which the specified key is mapped, or `undefined` if - * this map contains no mapping for the key. - * - * @param key with which the specified value is to be associated. - * @returns the value to which the specified key is mapped, or `undefined` if - * this map contains no mapping for the key. - */ - get(key: string): string | undefined; - /** - * Serializes the TraceState to a `list` as defined below. The `list` is a - * series of `list-members` separated by commas `,`, and a list-member is a - * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs - * surrounding `list-members` are ignored. There can be a maximum of 32 - * `list-members` in a `list`. - * - * @returns the serialized string. - */ - serialize(): string; -} -//# sourceMappingURL=trace_state.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/trace_state.js b/node_modules/@opentelemetry/api/build/src/trace/trace_state.js deleted file mode 100644 index 13970381..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/trace_state.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=trace_state.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/trace_state.js.map b/node_modules/@opentelemetry/api/build/src/trace/trace_state.js.map deleted file mode 100644 index 267f2e82..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/trace_state.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"trace_state.js","sourceRoot":"","sources":["../../../src/trace/trace_state.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface TraceState {\n /**\n * Create a new TraceState which inherits from this TraceState and has the\n * given key set.\n * The new entry will always be added in the front of the list of states.\n *\n * @param key key of the TraceState entry.\n * @param value value of the TraceState entry.\n */\n set(key: string, value: string): TraceState;\n\n /**\n * Return a new TraceState which inherits from this TraceState but does not\n * contain the given key.\n *\n * @param key the key for the TraceState entry to be removed.\n */\n unset(key: string): TraceState;\n\n /**\n * Returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n *\n * @param key with which the specified value is to be associated.\n * @returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n */\n get(key: string): string | undefined;\n\n // TODO: Consider to add support for merging an object as well by also\n // accepting a single internalTraceState argument similar to the constructor.\n\n /**\n * Serializes the TraceState to a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n *\n * @returns the serialized string.\n */\n serialize(): string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts b/node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts deleted file mode 100644 index 25090899..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Context } from '../context/types'; -import { Span } from './span'; -import { SpanOptions } from './SpanOptions'; -/** - * Tracer provides an interface for creating {@link Span}s. - */ -export interface Tracer { - /** - * Starts a new {@link Span}. Start the span without setting it on context. - * - * This method do NOT modify the current Context. - * - * @param name The name of the span - * @param [options] SpanOptions used for span creation - * @param [context] Context to use to extract parent - * @returns Span The newly created span - * @example - * const span = tracer.startSpan('op'); - * span.setAttribute('key', 'value'); - * span.end(); - */ - startSpan(name: string, options?: SpanOptions, context?: Context): Span; - /** - * Starts a new {@link Span} and calls the given function passing it the - * created span as first argument. - * Additionally the new span gets set in context and this context is activated - * for the duration of the function call. - * - * @param name The name of the span - * @param [options] SpanOptions used for span creation - * @param [context] Context to use to extract parent - * @param fn function called in the context of the span and receives the newly created span as an argument - * @returns return value of fn - * @example - * const something = tracer.startActiveSpan('op', span => { - * try { - * do some work - * span.setStatus({code: SpanStatusCode.OK}); - * return something; - * } catch (err) { - * span.setStatus({ - * code: SpanStatusCode.ERROR, - * message: err.message, - * }); - * throw err; - * } finally { - * span.end(); - * } - * }); - * - * @example - * const span = tracer.startActiveSpan('op', span => { - * try { - * do some work - * return span; - * } catch (err) { - * span.setStatus({ - * code: SpanStatusCode.ERROR, - * message: err.message, - * }); - * throw err; - * } - * }); - * do some more work - * span.end(); - */ - startActiveSpan unknown>(name: string, fn: F): ReturnType; - startActiveSpan unknown>(name: string, options: SpanOptions, fn: F): ReturnType; - startActiveSpan unknown>(name: string, options: SpanOptions, context: Context, fn: F): ReturnType; -} -//# sourceMappingURL=tracer.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer.js b/node_modules/@opentelemetry/api/build/src/trace/tracer.js deleted file mode 100644 index d710ef9a..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=tracer.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer.js.map b/node_modules/@opentelemetry/api/build/src/trace/tracer.js.map deleted file mode 100644 index 3c3c591a..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/trace/tracer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\n\n/**\n * Tracer provides an interface for creating {@link Span}s.\n */\nexport interface Tracer {\n /**\n * Starts a new {@link Span}. Start the span without setting it on context.\n *\n * This method do NOT modify the current Context.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @returns Span The newly created span\n * @example\n * const span = tracer.startSpan('op');\n * span.setAttribute('key', 'value');\n * span.end();\n */\n startSpan(name: string, options?: SpanOptions, context?: Context): Span;\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally the new span gets set in context and this context is activated\n * for the duration of the function call.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * span.setStatus({code: SpanStatusCode.OK});\n * return something;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * } finally {\n * span.end();\n * }\n * });\n *\n * @example\n * const span = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * return span;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * }\n * });\n * do some more work\n * span.end();\n */\n startActiveSpan unknown>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan unknown>(\n name: string,\n options: SpanOptions,\n fn: F\n ): ReturnType;\n startActiveSpan unknown>(\n name: string,\n options: SpanOptions,\n context: Context,\n fn: F\n ): ReturnType;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts b/node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts deleted file mode 100644 index f3bbccfc..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * An interface describes additional metadata of a tracer. - */ -export interface TracerOptions { - /** - * The schemaUrl of the tracer or instrumentation library - */ - schemaUrl?: string; -} -//# sourceMappingURL=tracer_options.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js b/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js deleted file mode 100644 index 3547251a..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=tracer_options.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js.map b/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js.map deleted file mode 100644 index a7432527..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer_options.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer_options.js","sourceRoot":"","sources":["../../../src/trace/tracer_options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An interface describes additional metadata of a tracer.\n */\nexport interface TracerOptions {\n /**\n * The schemaUrl of the tracer or instrumentation library\n */\n schemaUrl?: string;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts b/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts deleted file mode 100644 index 9b2f7a95..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Tracer } from './tracer'; -import { TracerOptions } from './tracer_options'; -/** - * A registry for creating named {@link Tracer}s. - */ -export interface TracerProvider { - /** - * Returns a Tracer, creating one if one with the given name and version is - * not already created. - * - * This function may return different Tracer types (e.g. - * {@link NoopTracerProvider} vs. a functional tracer). - * - * @param name The name of the tracer or instrumentation library. - * @param version The version of the tracer or instrumentation library. - * @param options The options of the tracer or instrumentation library. - * @returns Tracer A Tracer with the given name and version - */ - getTracer(name: string, version?: string, options?: TracerOptions): Tracer; -} -//# sourceMappingURL=tracer_provider.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js b/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js deleted file mode 100644 index 4c511db9..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=tracer_provider.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js.map b/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js.map deleted file mode 100644 index 31f334aa..00000000 --- a/node_modules/@opentelemetry/api/build/src/trace/tracer_provider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tracer_provider.js","sourceRoot":"","sources":["../../../src/trace/tracer_provider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\n/**\n * A registry for creating named {@link Tracer}s.\n */\nexport interface TracerProvider {\n /**\n * Returns a Tracer, creating one if one with the given name and version is\n * not already created.\n *\n * This function may return different Tracer types (e.g.\n * {@link NoopTracerProvider} vs. a functional tracer).\n *\n * @param name The name of the tracer or instrumentation library.\n * @param version The version of the tracer or instrumentation library.\n * @param options The options of the tracer or instrumentation library.\n * @returns Tracer A Tracer with the given name and version\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer;\n}\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/version.d.ts b/node_modules/@opentelemetry/api/build/src/version.d.ts deleted file mode 100644 index 40f03659..00000000 --- a/node_modules/@opentelemetry/api/build/src/version.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const VERSION = "1.9.0"; -//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/version.js b/node_modules/@opentelemetry/api/build/src/version.js deleted file mode 100644 index 3c717941..00000000 --- a/node_modules/@opentelemetry/api/build/src/version.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.VERSION = void 0; -// this is autogenerated file, see scripts/version-update.js -exports.VERSION = '1.9.0'; -//# sourceMappingURL=version.js.map \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/build/src/version.js.map b/node_modules/@opentelemetry/api/build/src/version.js.map deleted file mode 100644 index ee3c12c7..00000000 --- a/node_modules/@opentelemetry/api/build/src/version.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4DAA4D;AAC/C,QAAA,OAAO,GAAG,OAAO,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.0';\n"]} \ No newline at end of file diff --git a/node_modules/@opentelemetry/api/package.json b/node_modules/@opentelemetry/api/package.json deleted file mode 100644 index f7ba45f9..00000000 --- a/node_modules/@opentelemetry/api/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "name": "@opentelemetry/api", - "version": "1.9.0", - "description": "Public API for OpenTelemetry", - "main": "build/src/index.js", - "module": "build/esm/index.js", - "esnext": "build/esnext/index.js", - "types": "build/src/index.d.ts", - "browser": { - "./src/platform/index.ts": "./src/platform/browser/index.ts", - "./build/esm/platform/index.js": "./build/esm/platform/browser/index.js", - "./build/esnext/platform/index.js": "./build/esnext/platform/browser/index.js", - "./build/src/platform/index.js": "./build/src/platform/browser/index.js" - }, - "exports": { - ".": { - "module": "./build/esm/index.js", - "esnext": "./build/esnext/index.js", - "types": "./build/src/index.d.ts", - "default": "./build/src/index.js" - }, - "./experimental": { - "module": "./build/esm/experimental/index.js", - "esnext": "./build/esnext/experimental/index.js", - "types": "./build/src/experimental/index.d.ts", - "default": "./build/src/experimental/index.js" - } - }, - "repository": "open-telemetry/opentelemetry-js", - "scripts": { - "clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "codecov:browser": "nyc report --reporter=json && codecov -f coverage/*.json -p ../", - "codecov:webworker": "nyc report --reporter=json && codecov -f coverage/*.json -p ../", - "codecov": "nyc report --reporter=json && codecov -f coverage/*.json -p ../", - "precompile": "cross-var lerna run version --scope $npm_package_name --include-dependencies", - "compile": "tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "docs": "typedoc", - "docs:deploy": "gh-pages --dist docs/out", - "docs:test": "linkinator docs/out --silent && linkinator docs/*.md *.md --markdown --silent", - "lint:fix": "eslint . --ext .ts --fix", - "lint": "eslint . --ext .ts", - "test:browser": "karma start --single-run", - "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'", - "test:eol": "ts-mocha -p tsconfig.json 'test/**/*.test.ts'", - "test:webworker": "karma start karma.worker.js --single-run", - "cycle-check": "dpdm --exit-code circular:1 src/index.ts", - "version": "node ../scripts/version-update.js", - "prewatch": "npm run precompile", - "watch": "tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "peer-api-check": "node ../scripts/peer-api-check.js" - }, - "keywords": [ - "opentelemetry", - "nodejs", - "browser", - "tracing", - "profiling", - "stats", - "monitoring" - ], - "author": "OpenTelemetry Authors", - "license": "Apache-2.0", - "engines": { - "node": ">=8.0.0" - }, - "files": [ - "build/esm/**/*.js", - "build/esm/**/*.js.map", - "build/esm/**/*.d.ts", - "build/esnext/**/*.js", - "build/esnext/**/*.js.map", - "build/esnext/**/*.d.ts", - "build/src/**/*.js", - "build/src/**/*.js.map", - "build/src/**/*.d.ts", - "LICENSE", - "README.md" - ], - "publishConfig": { - "access": "public" - }, - "devDependencies": { - "@types/mocha": "10.0.6", - "@types/node": "18.6.5", - "@types/sinon": "17.0.3", - "@types/webpack": "5.28.5", - "@types/webpack-env": "1.16.3", - "babel-plugin-istanbul": "6.1.1", - "codecov": "3.8.3", - "cross-var": "1.1.0", - "dpdm": "3.13.1", - "karma": "6.4.3", - "karma-chrome-launcher": "3.1.0", - "karma-coverage": "2.2.1", - "karma-mocha": "2.0.1", - "karma-mocha-webworker": "1.3.0", - "karma-spec-reporter": "0.0.36", - "karma-webpack": "5.0.1", - "lerna": "6.6.2", - "memfs": "3.5.3", - "mocha": "10.2.0", - "nyc": "15.1.0", - "sinon": "15.1.2", - "ts-loader": "9.5.1", - "ts-mocha": "10.0.0", - "typescript": "4.4.4", - "unionfs": "4.5.4", - "webpack": "5.89.0" - }, - "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/api", - "sideEffects": false, - "gitHead": "c4d3351b6b3f5593c8d7cbfec97b45cea9fe1511" -} diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md deleted file mode 100755 index 627a81d0..00000000 --- a/node_modules/accepts/HISTORY.md +++ /dev/null @@ -1,250 +0,0 @@ -2.0.0 / 2024-08-31 -================== - - * Drop node <18 support - * deps: mime-types@^3.0.0 - * deps: negotiator@^1.0.0 - -1.3.8 / 2022-02-02 -================== - - * deps: mime-types@~2.1.34 - - deps: mime-db@~1.51.0 - * deps: negotiator@0.6.3 - -1.3.7 / 2019-04-29 -================== - - * deps: negotiator@0.6.2 - - Fix sorting charset, encoding, and language with extra parameters - -1.3.6 / 2019-04-28 -================== - - * deps: mime-types@~2.1.24 - - deps: mime-db@~1.40.0 - -1.3.5 / 2018-02-28 -================== - - * deps: mime-types@~2.1.18 - - deps: mime-db@~1.33.0 - -1.3.4 / 2017-08-22 -================== - - * deps: mime-types@~2.1.16 - - deps: mime-db@~1.29.0 - -1.3.3 / 2016-05-02 -================== - - * deps: mime-types@~2.1.11 - - deps: mime-db@~1.23.0 - * deps: negotiator@0.6.1 - - perf: improve `Accept` parsing speed - - perf: improve `Accept-Charset` parsing speed - - perf: improve `Accept-Encoding` parsing speed - - perf: improve `Accept-Language` parsing speed - -1.3.2 / 2016-03-08 -================== - - * deps: mime-types@~2.1.10 - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - - deps: mime-db@~1.22.0 - -1.3.1 / 2016-01-19 -================== - - * deps: mime-types@~2.1.9 - - deps: mime-db@~1.21.0 - -1.3.0 / 2015-09-29 -================== - - * deps: mime-types@~2.1.7 - - deps: mime-db@~1.19.0 - * deps: negotiator@0.6.0 - - Fix including type extensions in parameters in `Accept` parsing - - Fix parsing `Accept` parameters with quoted equals - - Fix parsing `Accept` parameters with quoted semicolons - - Lazy-load modules from main entry point - - perf: delay type concatenation until needed - - perf: enable strict mode - - perf: hoist regular expressions - - perf: remove closures getting spec properties - - perf: remove a closure from media type parsing - - perf: remove property delete from media type parsing - -1.2.13 / 2015-09-06 -=================== - - * deps: mime-types@~2.1.6 - - deps: mime-db@~1.18.0 - -1.2.12 / 2015-07-30 -=================== - - * deps: mime-types@~2.1.4 - - deps: mime-db@~1.16.0 - -1.2.11 / 2015-07-16 -=================== - - * deps: mime-types@~2.1.3 - - deps: mime-db@~1.15.0 - -1.2.10 / 2015-07-01 -=================== - - * deps: mime-types@~2.1.2 - - deps: mime-db@~1.14.0 - -1.2.9 / 2015-06-08 -================== - - * deps: mime-types@~2.1.1 - - perf: fix deopt during mapping - -1.2.8 / 2015-06-07 -================== - - * deps: mime-types@~2.1.0 - - deps: mime-db@~1.13.0 - * perf: avoid argument reassignment & argument slice - * perf: avoid negotiator recursive construction - * perf: enable strict mode - * perf: remove unnecessary bitwise operator - -1.2.7 / 2015-05-10 -================== - - * deps: negotiator@0.5.3 - - Fix media type parameter matching to be case-insensitive - -1.2.6 / 2015-05-07 -================== - - * deps: mime-types@~2.0.11 - - deps: mime-db@~1.9.1 - * deps: negotiator@0.5.2 - - Fix comparing media types with quoted values - - Fix splitting media types with quoted commas - -1.2.5 / 2015-03-13 -================== - - * deps: mime-types@~2.0.10 - - deps: mime-db@~1.8.0 - -1.2.4 / 2015-02-14 -================== - - * Support Node.js 0.6 - * deps: mime-types@~2.0.9 - - deps: mime-db@~1.7.0 - * deps: negotiator@0.5.1 - - Fix preference sorting to be stable for long acceptable lists - -1.2.3 / 2015-01-31 -================== - - * deps: mime-types@~2.0.8 - - deps: mime-db@~1.6.0 - -1.2.2 / 2014-12-30 -================== - - * deps: mime-types@~2.0.7 - - deps: mime-db@~1.5.0 - -1.2.1 / 2014-12-30 -================== - - * deps: mime-types@~2.0.5 - - deps: mime-db@~1.3.1 - -1.2.0 / 2014-12-19 -================== - - * deps: negotiator@0.5.0 - - Fix list return order when large accepted list - - Fix missing identity encoding when q=0 exists - - Remove dynamic building of Negotiator class - -1.1.4 / 2014-12-10 -================== - - * deps: mime-types@~2.0.4 - - deps: mime-db@~1.3.0 - -1.1.3 / 2014-11-09 -================== - - * deps: mime-types@~2.0.3 - - deps: mime-db@~1.2.0 - -1.1.2 / 2014-10-14 -================== - - * deps: negotiator@0.4.9 - - Fix error when media type has invalid parameter - -1.1.1 / 2014-09-28 -================== - - * deps: mime-types@~2.0.2 - - deps: mime-db@~1.1.0 - * deps: negotiator@0.4.8 - - Fix all negotiations to be case-insensitive - - Stable sort preferences of same quality according to client order - -1.1.0 / 2014-09-02 -================== - - * update `mime-types` - -1.0.7 / 2014-07-04 -================== - - * Fix wrong type returned from `type` when match after unknown extension - -1.0.6 / 2014-06-24 -================== - - * deps: negotiator@0.4.7 - -1.0.5 / 2014-06-20 -================== - - * fix crash when unknown extension given - -1.0.4 / 2014-06-19 -================== - - * use `mime-types` - -1.0.3 / 2014-06-11 -================== - - * deps: negotiator@0.4.6 - - Order by specificity when quality is the same - -1.0.2 / 2014-05-29 -================== - - * Fix interpretation when header not in request - * deps: pin negotiator@0.4.5 - -1.0.1 / 2014-01-18 -================== - - * Identity encoding isn't always acceptable - * deps: negotiator@~0.4.0 - -1.0.0 / 2013-12-27 -================== - - * Genesis diff --git a/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE deleted file mode 100755 index 06166077..00000000 --- a/node_modules/accepts/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -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/accepts/README.md b/node_modules/accepts/README.md deleted file mode 100755 index f3f10c4a..00000000 --- a/node_modules/accepts/README.md +++ /dev/null @@ -1,140 +0,0 @@ -# accepts - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][github-actions-ci-image]][github-actions-ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). -Extracted from [koa](https://www.npmjs.com/package/koa) for general use. - -In addition to negotiator, it allows: - -- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` - as well as `('text/html', 'application/json')`. -- Allows type shorthands such as `json`. -- Returns `false` when no types match -- Treats non-existent headers as `*` - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install accepts -``` - -## API - -```js -var accepts = require('accepts') -``` - -### accepts(req) - -Create a new `Accepts` object for the given `req`. - -#### .charset(charsets) - -Return the first accepted charset. If nothing in `charsets` is accepted, -then `false` is returned. - -#### .charsets() - -Return the charsets that the request accepts, in the order of the client's -preference (most preferred first). - -#### .encoding(encodings) - -Return the first accepted encoding. If nothing in `encodings` is accepted, -then `false` is returned. - -#### .encodings() - -Return the encodings that the request accepts, in the order of the client's -preference (most preferred first). - -#### .language(languages) - -Return the first accepted language. If nothing in `languages` is accepted, -then `false` is returned. - -#### .languages() - -Return the languages that the request accepts, in the order of the client's -preference (most preferred first). - -#### .type(types) - -Return the first accepted type (and it is returned as the same text as what -appears in the `types` array). If nothing in `types` is accepted, then `false` -is returned. - -The `types` array can contain full MIME types or file extensions. Any value -that is not a full MIME type is passed to `require('mime-types').lookup`. - -#### .types() - -Return the types that the request accepts, in the order of the client's -preference (most preferred first). - -## Examples - -### Simple type negotiation - -This simple example shows how to use `accepts` to return a different typed -respond body based on what the client wants to accept. The server lists it's -preferences in order and will get back the best match between the client and -server. - -```js -var accepts = require('accepts') -var http = require('http') - -function app (req, res) { - var accept = accepts(req) - - // the order of this list is significant; should be server preferred order - switch (accept.type(['json', 'html'])) { - case 'json': - res.setHeader('Content-Type', 'application/json') - res.write('{"hello":"world!"}') - break - case 'html': - res.setHeader('Content-Type', 'text/html') - res.write('hello, world!') - break - default: - // the fallback is text/plain, so no need to specify it above - res.setHeader('Content-Type', 'text/plain') - res.write('hello, world!') - break - } - - res.end() -} - -http.createServer(app).listen(3000) -``` - -You can test this out with the cURL program: -```sh -curl -I -H'Accept: text/html' http://localhost:3000/ -``` - -## License - -[MIT](LICENSE) - -[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master -[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master -[github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci -[github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml -[node-version-image]: https://badgen.net/npm/node/accepts -[node-version-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/accepts -[npm-url]: https://npmjs.org/package/accepts -[npm-version-image]: https://badgen.net/npm/v/accepts diff --git a/node_modules/accepts/index.js b/node_modules/accepts/index.js deleted file mode 100755 index 4f2840c0..00000000 --- a/node_modules/accepts/index.js +++ /dev/null @@ -1,238 +0,0 @@ -/*! - * accepts - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Negotiator = require('negotiator') -var mime = require('mime-types') - -/** - * Module exports. - * @public - */ - -module.exports = Accepts - -/** - * Create a new Accepts object for the given req. - * - * @param {object} req - * @public - */ - -function Accepts (req) { - if (!(this instanceof Accepts)) { - return new Accepts(req) - } - - this.headers = req.headers - this.negotiator = new Negotiator(req) -} - -/** - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single mime type string - * such as "application/json", the extension name - * such as "json" or an array `["json", "html", "text/plain"]`. When a list - * or array is given the _best_ match, if any is returned. - * - * Examples: - * - * // Accept: text/html - * this.types('html'); - * // => "html" - * - * // Accept: text/*, application/json - * this.types('html'); - * // => "html" - * this.types('text/html'); - * // => "text/html" - * this.types('json', 'text'); - * // => "json" - * this.types('application/json'); - * // => "application/json" - * - * // Accept: text/*, application/json - * this.types('image/png'); - * this.types('png'); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * this.types(['html', 'json']); - * this.types('html', 'json'); - * // => "json" - * - * @param {String|Array} types... - * @return {String|Array|Boolean} - * @public - */ - -Accepts.prototype.type = -Accepts.prototype.types = function (types_) { - var types = types_ - - // support flattened arguments - if (types && !Array.isArray(types)) { - types = new Array(arguments.length) - for (var i = 0; i < types.length; i++) { - types[i] = arguments[i] - } - } - - // no types, return all requested types - if (!types || types.length === 0) { - return this.negotiator.mediaTypes() - } - - // no accept header, return first given type - if (!this.headers.accept) { - return types[0] - } - - var mimes = types.map(extToMime) - var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) - var first = accepts[0] - - return first - ? types[mimes.indexOf(first)] - : false -} - -/** - * Return accepted encodings or best fit based on `encodings`. - * - * Given `Accept-Encoding: gzip, deflate` - * an array sorted by quality is returned: - * - * ['gzip', 'deflate'] - * - * @param {String|Array} encodings... - * @return {String|Array} - * @public - */ - -Accepts.prototype.encoding = -Accepts.prototype.encodings = function (encodings_) { - var encodings = encodings_ - - // support flattened arguments - if (encodings && !Array.isArray(encodings)) { - encodings = new Array(arguments.length) - for (var i = 0; i < encodings.length; i++) { - encodings[i] = arguments[i] - } - } - - // no encodings, return all requested encodings - if (!encodings || encodings.length === 0) { - return this.negotiator.encodings() - } - - return this.negotiator.encodings(encodings)[0] || false -} - -/** - * Return accepted charsets or best fit based on `charsets`. - * - * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` - * an array sorted by quality is returned: - * - * ['utf-8', 'utf-7', 'iso-8859-1'] - * - * @param {String|Array} charsets... - * @return {String|Array} - * @public - */ - -Accepts.prototype.charset = -Accepts.prototype.charsets = function (charsets_) { - var charsets = charsets_ - - // support flattened arguments - if (charsets && !Array.isArray(charsets)) { - charsets = new Array(arguments.length) - for (var i = 0; i < charsets.length; i++) { - charsets[i] = arguments[i] - } - } - - // no charsets, return all requested charsets - if (!charsets || charsets.length === 0) { - return this.negotiator.charsets() - } - - return this.negotiator.charsets(charsets)[0] || false -} - -/** - * Return accepted languages or best fit based on `langs`. - * - * Given `Accept-Language: en;q=0.8, es, pt` - * an array sorted by quality is returned: - * - * ['es', 'pt', 'en'] - * - * @param {String|Array} langs... - * @return {Array|String} - * @public - */ - -Accepts.prototype.lang = -Accepts.prototype.langs = -Accepts.prototype.language = -Accepts.prototype.languages = function (languages_) { - var languages = languages_ - - // support flattened arguments - if (languages && !Array.isArray(languages)) { - languages = new Array(arguments.length) - for (var i = 0; i < languages.length; i++) { - languages[i] = arguments[i] - } - } - - // no languages, return all requested languages - if (!languages || languages.length === 0) { - return this.negotiator.languages() - } - - return this.negotiator.languages(languages)[0] || false -} - -/** - * Convert extnames to mime. - * - * @param {String} type - * @return {String} - * @private - */ - -function extToMime (type) { - return type.indexOf('/') === -1 - ? mime.lookup(type) - : type -} - -/** - * Check if mime is valid. - * - * @param {String} type - * @return {Boolean} - * @private - */ - -function validMime (type) { - return typeof type === 'string' -} diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json deleted file mode 100755 index b35b262d..00000000 --- a/node_modules/accepts/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "accepts", - "description": "Higher-level content negotiation", - "version": "2.0.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "repository": "jshttp/accepts", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "devDependencies": { - "deep-equal": "1.0.1", - "eslint": "7.32.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.25.4", - "eslint-plugin-markdown": "2.2.1", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "4.3.1", - "eslint-plugin-standard": "4.1.0", - "mocha": "9.2.0", - "nyc": "15.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "nyc --reporter=lcov --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - }, - "keywords": [ - "content", - "negotiation", - "accept", - "accepts" - ] -} diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE deleted file mode 100644 index 491766ca..00000000 --- a/node_modules/anymatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) - -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/anymatch/README.md b/node_modules/anymatch/README.md deleted file mode 100644 index 1dd67f53..00000000 --- a/node_modules/anymatch/README.md +++ /dev/null @@ -1,87 +0,0 @@ -anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) -====== -Javascript module to match a string against a regular expression, glob, string, -or function that takes the string as an argument and returns a truthy or falsy -value. The matcher can also be an array of any or all of these. Useful for -allowing a very flexible user-defined config to define things like file paths. - -__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ - - -Usage ------ -```sh -npm install anymatch -``` - -#### anymatch(matchers, testString, [returnIndex], [options]) -* __matchers__: (_Array|String|RegExp|Function_) -String to be directly matched, string with glob patterns, regular expression -test, function that takes the testString as an argument and returns a truthy -value if it should be matched, or an array of any number and mix of these types. -* __testString__: (_String|Array_) The string to test against the matchers. If -passed as an array, the first element of the array will be used as the -`testString` for non-function matchers, while the entire array will be applied -as the arguments for function matchers. -* __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. - * __returnIndex__: (_Boolean [optional]_) If true, return the array index of -the first matcher that that testString matched, or -1 if no match, instead of a -boolean result. - -```js -const anymatch = require('anymatch'); - -const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; - -anymatch(matchers, 'path/to/file.js'); // true -anymatch(matchers, 'path/anyjs/baz.js'); // true -anymatch(matchers, 'path/to/foo.js'); // true -anymatch(matchers, 'path/to/bar.js'); // true -anymatch(matchers, 'bar.js'); // false - -// returnIndex = true -anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 -anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 - -// any picomatc - -// using globs to match directories and their children -anymatch('node_modules', 'node_modules'); // true -anymatch('node_modules', 'node_modules/somelib/index.js'); // false -anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true -anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false -anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true - -const matcher = anymatch(matchers); -['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] -anymatch master* ❯ - -``` - -#### anymatch(matchers) -You can also pass in only your matcher(s) to get a curried function that has -already been bound to the provided matching criteria. This can be used as an -`Array#filter` callback. - -```js -var matcher = anymatch(matchers); - -matcher('path/to/file.js'); // true -matcher('path/anyjs/baz.js', true); // 1 - -['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] -``` - -Changelog ----------- -[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) - -- **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. -- **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). -- **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) -for glob pattern matching. Issues with glob pattern matching should be -reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). - -License -------- -[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) diff --git a/node_modules/anymatch/index.d.ts b/node_modules/anymatch/index.d.ts deleted file mode 100644 index 3ef7eaad..00000000 --- a/node_modules/anymatch/index.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -type AnymatchFn = (testString: string) => boolean; -type AnymatchPattern = string|RegExp|AnymatchFn; -type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] -type AnymatchTester = { - (testString: string|any[], returnIndex: true): number; - (testString: string|any[]): boolean; -} - -type PicomatchOptions = {dot: boolean}; - -declare const anymatch: { - (matchers: AnymatchMatcher): AnymatchTester; - (matchers: AnymatchMatcher, testString: null, returnIndex: true | PicomatchOptions): AnymatchTester; - (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; - (matchers: AnymatchMatcher, testString: string|any[]): boolean; -} - -export {AnymatchMatcher as Matcher} -export {AnymatchTester as Tester} -export default anymatch diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js deleted file mode 100644 index 8eb73e9c..00000000 --- a/node_modules/anymatch/index.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { value: true }); - -const picomatch = require('picomatch'); -const normalizePath = require('normalize-path'); - -/** - * @typedef {(testString: string) => boolean} AnymatchFn - * @typedef {string|RegExp|AnymatchFn} AnymatchPattern - * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher - */ -const BANG = '!'; -const DEFAULT_OPTIONS = {returnIndex: false}; -const arrify = (item) => Array.isArray(item) ? item : [item]; - -/** - * @param {AnymatchPattern} matcher - * @param {object} options - * @returns {AnymatchFn} - */ -const createPattern = (matcher, options) => { - if (typeof matcher === 'function') { - return matcher; - } - if (typeof matcher === 'string') { - const glob = picomatch(matcher, options); - return (string) => matcher === string || glob(string); - } - if (matcher instanceof RegExp) { - return (string) => matcher.test(string); - } - return (string) => false; -}; - -/** - * @param {Array} patterns - * @param {Array} negPatterns - * @param {String|Array} args - * @param {Boolean} returnIndex - * @returns {boolean|number} - */ -const matchPatterns = (patterns, negPatterns, args, returnIndex) => { - const isList = Array.isArray(args); - const _path = isList ? args[0] : args; - if (!isList && typeof _path !== 'string') { - throw new TypeError('anymatch: second argument must be a string: got ' + - Object.prototype.toString.call(_path)) - } - const path = normalizePath(_path, false); - - for (let index = 0; index < negPatterns.length; index++) { - const nglob = negPatterns[index]; - if (nglob(path)) { - return returnIndex ? -1 : false; - } - } - - const applied = isList && [path].concat(args.slice(1)); - for (let index = 0; index < patterns.length; index++) { - const pattern = patterns[index]; - if (isList ? pattern(...applied) : pattern(path)) { - return returnIndex ? index : true; - } - } - - return returnIndex ? -1 : false; -}; - -/** - * @param {AnymatchMatcher} matchers - * @param {Array|string} testString - * @param {object} options - * @returns {boolean|number|Function} - */ -const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { - if (matchers == null) { - throw new TypeError('anymatch: specify first argument'); - } - const opts = typeof options === 'boolean' ? {returnIndex: options} : options; - const returnIndex = opts.returnIndex || false; - - // Early cache for matchers. - const mtchers = arrify(matchers); - const negatedGlobs = mtchers - .filter(item => typeof item === 'string' && item.charAt(0) === BANG) - .map(item => item.slice(1)) - .map(item => picomatch(item, opts)); - const patterns = mtchers - .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG)) - .map(matcher => createPattern(matcher, opts)); - - if (testString == null) { - return (testString, ri = false) => { - const returnIndex = typeof ri === 'boolean' ? ri : false; - return matchPatterns(patterns, negatedGlobs, testString, returnIndex); - } - } - - return matchPatterns(patterns, negatedGlobs, testString, returnIndex); -}; - -anymatch.default = anymatch; -module.exports = anymatch; diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json deleted file mode 100644 index 2cb2307e..00000000 --- a/node_modules/anymatch/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "anymatch", - "version": "3.1.3", - "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", - "files": [ - "index.js", - "index.d.ts" - ], - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "author": { - "name": "Elan Shanker", - "url": "https://github.com/es128" - }, - "license": "ISC", - "homepage": "https://github.com/micromatch/anymatch", - "repository": { - "type": "git", - "url": "https://github.com/micromatch/anymatch" - }, - "keywords": [ - "match", - "any", - "string", - "file", - "fs", - "list", - "glob", - "regex", - "regexp", - "regular", - "expression", - "function" - ], - "scripts": { - "test": "nyc mocha", - "mocha": "mocha" - }, - "devDependencies": { - "mocha": "^6.1.3", - "nyc": "^14.0.0" - }, - "engines": { - "node": ">= 8" - } -} diff --git a/node_modules/balanced-match/.github/FUNDING.yml b/node_modules/balanced-match/.github/FUNDING.yml deleted file mode 100644 index cea8b16e..00000000 --- a/node_modules/balanced-match/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -tidelift: "npm/balanced-match" -patreon: juliangruber diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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: - -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/balanced-match/README.md b/node_modules/balanced-match/README.md deleted file mode 100644 index d2a48b6b..00000000 --- a/node_modules/balanced-match/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## Security contact information - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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: - -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/balanced-match/index.js b/node_modules/balanced-match/index.js deleted file mode 100644 index c67a6460..00000000 --- a/node_modules/balanced-match/index.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - if(a===b) { - return [ai, bi]; - } - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json deleted file mode 100644 index ce6073e0..00000000 --- a/node_modules/balanced-match/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "tape test/test.js", - "bench": "matcha test/bench.js" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - } -} diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json deleted file mode 100644 index ac08048e..00000000 --- a/node_modules/binary-extensions/binary-extensions.json +++ /dev/null @@ -1,263 +0,0 @@ -[ - "3dm", - "3ds", - "3g2", - "3gp", - "7z", - "a", - "aac", - "adp", - "afdesign", - "afphoto", - "afpub", - "ai", - "aif", - "aiff", - "alz", - "ape", - "apk", - "appimage", - "ar", - "arj", - "asf", - "au", - "avi", - "bak", - "baml", - "bh", - "bin", - "bk", - "bmp", - "btif", - "bz2", - "bzip2", - "cab", - "caf", - "cgm", - "class", - "cmx", - "cpio", - "cr2", - "cur", - "dat", - "dcm", - "deb", - "dex", - "djvu", - "dll", - "dmg", - "dng", - "doc", - "docm", - "docx", - "dot", - "dotm", - "dra", - "DS_Store", - "dsk", - "dts", - "dtshd", - "dvb", - "dwg", - "dxf", - "ecelp4800", - "ecelp7470", - "ecelp9600", - "egg", - "eol", - "eot", - "epub", - "exe", - "f4v", - "fbs", - "fh", - "fla", - "flac", - "flatpak", - "fli", - "flv", - "fpx", - "fst", - "fvt", - "g3", - "gh", - "gif", - "graffle", - "gz", - "gzip", - "h261", - "h263", - "h264", - "icns", - "ico", - "ief", - "img", - "ipa", - "iso", - "jar", - "jpeg", - "jpg", - "jpgv", - "jpm", - "jxr", - "key", - "ktx", - "lha", - "lib", - "lvp", - "lz", - "lzh", - "lzma", - "lzo", - "m3u", - "m4a", - "m4v", - "mar", - "mdi", - "mht", - "mid", - "midi", - "mj2", - "mka", - "mkv", - "mmr", - "mng", - "mobi", - "mov", - "movie", - "mp3", - "mp4", - "mp4a", - "mpeg", - "mpg", - "mpga", - "mxu", - "nef", - "npx", - "numbers", - "nupkg", - "o", - "odp", - "ods", - "odt", - "oga", - "ogg", - "ogv", - "otf", - "ott", - "pages", - "pbm", - "pcx", - "pdb", - "pdf", - "pea", - "pgm", - "pic", - "png", - "pnm", - "pot", - "potm", - "potx", - "ppa", - "ppam", - "ppm", - "pps", - "ppsm", - "ppsx", - "ppt", - "pptm", - "pptx", - "psd", - "pya", - "pyc", - "pyo", - "pyv", - "qt", - "rar", - "ras", - "raw", - "resources", - "rgb", - "rip", - "rlc", - "rmf", - "rmvb", - "rpm", - "rtf", - "rz", - "s3m", - "s7z", - "scpt", - "sgi", - "shar", - "snap", - "sil", - "sketch", - "slk", - "smv", - "snk", - "so", - "stl", - "suo", - "sub", - "swf", - "tar", - "tbz", - "tbz2", - "tga", - "tgz", - "thmx", - "tif", - "tiff", - "tlz", - "ttc", - "ttf", - "txz", - "udf", - "uvh", - "uvi", - "uvm", - "uvp", - "uvs", - "uvu", - "viv", - "vob", - "war", - "wav", - "wax", - "wbmp", - "wdp", - "weba", - "webm", - "webp", - "whl", - "wim", - "wm", - "wma", - "wmv", - "wmx", - "woff", - "woff2", - "wrm", - "wvx", - "xbm", - "xif", - "xla", - "xlam", - "xls", - "xlsb", - "xlsm", - "xlsx", - "xlt", - "xltm", - "xltx", - "xm", - "xmind", - "xpi", - "xpm", - "xwd", - "xz", - "z", - "zip", - "zipx" -] diff --git a/node_modules/binary-extensions/binary-extensions.json.d.ts b/node_modules/binary-extensions/binary-extensions.json.d.ts deleted file mode 100644 index 94a248c2..00000000 --- a/node_modules/binary-extensions/binary-extensions.json.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const binaryExtensionsJson: readonly string[]; - -export = binaryExtensionsJson; diff --git a/node_modules/binary-extensions/index.d.ts b/node_modules/binary-extensions/index.d.ts deleted file mode 100644 index f469ac5f..00000000 --- a/node_modules/binary-extensions/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** -List of binary file extensions. - -@example -``` -import binaryExtensions = require('binary-extensions'); - -console.log(binaryExtensions); -//=> ['3ds', '3g2', …] -``` -*/ -declare const binaryExtensions: readonly string[]; - -export = binaryExtensions; diff --git a/node_modules/binary-extensions/index.js b/node_modules/binary-extensions/index.js deleted file mode 100644 index d46e4688..00000000 --- a/node_modules/binary-extensions/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./binary-extensions.json'); diff --git a/node_modules/binary-extensions/license b/node_modules/binary-extensions/license deleted file mode 100644 index 5493a1a6..00000000 --- a/node_modules/binary-extensions/license +++ /dev/null @@ -1,10 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) -Copyright (c) Paul Miller (https://paulmillr.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: - -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/binary-extensions/package.json b/node_modules/binary-extensions/package.json deleted file mode 100644 index 4710c339..00000000 --- a/node_modules/binary-extensions/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "binary-extensions", - "version": "2.3.0", - "description": "List of binary file extensions", - "license": "MIT", - "repository": "sindresorhus/binary-extensions", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "sideEffects": false, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "binary-extensions.json", - "binary-extensions.json.d.ts" - ], - "keywords": [ - "binary", - "extensions", - "extension", - "file", - "json", - "list", - "array" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/node_modules/binary-extensions/readme.md b/node_modules/binary-extensions/readme.md deleted file mode 100644 index 88519b3a..00000000 --- a/node_modules/binary-extensions/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# binary-extensions - -> List of binary file extensions - -The list is just a [JSON file](binary-extensions.json) and can be used anywhere. - -## Install - -```sh -npm install binary-extensions -``` - -## Usage - -```js -const binaryExtensions = require('binary-extensions'); - -console.log(binaryExtensions); -//=> ['3ds', '3g2', …] -``` - -## Related - -- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file -- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions diff --git a/node_modules/bintrees/.npmignore b/node_modules/bintrees/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/node_modules/bintrees/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/bintrees/.travis.yml b/node_modules/bintrees/.travis.yml deleted file mode 100644 index 81614ca7..00000000 --- a/node_modules/bintrees/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.10" - - "0.12" diff --git a/node_modules/bintrees/LICENSE b/node_modules/bintrees/LICENSE deleted file mode 100644 index e1a78072..00000000 --- a/node_modules/bintrees/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2011 by Vadim Graboys - -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/bintrees/Makefile b/node_modules/bintrees/Makefile deleted file mode 100644 index ff5f95a8..00000000 --- a/node_modules/bintrees/Makefile +++ /dev/null @@ -1,22 +0,0 @@ - -all: dist/rbtree.min.js dist/bintree.min.js - -dist/rbtree.js: lib/rbtree.js lib/treebase.js - ./node_modules/.bin/reunion --ns RBTree $< > $@ - -dist/bintree.js: lib/bintree.js lib/treebase.js - ./node_modules/.bin/reunion --ns BinTree $< > $@ - -dist/bintree.min.js: dist/bintree.js - curl --data-urlencode "js_code@$<" \ - -d "output_info=compiled_code&compilation_level=SIMPLE_OPTIMIZATIONS" \ - http://closure-compiler.appspot.com/compile \ - > $@ - -dist/rbtree.min.js: dist/rbtree.js - curl --data-urlencode "js_code@$<" \ - -d "output_info=compiled_code&compilation_level=SIMPLE_OPTIMIZATIONS" \ - http://closure-compiler.appspot.com/compile \ - > $@ - - diff --git a/node_modules/bintrees/README.md b/node_modules/bintrees/README.md deleted file mode 100644 index 6493d10c..00000000 --- a/node_modules/bintrees/README.md +++ /dev/null @@ -1,130 +0,0 @@ -Binary Trees [![Build Status](https://secure.travis-ci.org/vadimg/js_bintrees.png?branch=master)](http://travis-ci.org/vadimg/js_bintrees) -============ - -This package provides Binary and Red-Black Search Trees written in Javascript. It is released under the MIT License. - -Binary Search Trees are a good way to store data in sorted order. A Red-Black tree is a variation of a Binary Tree that balances itself. - -Algorithms were taken from Julienne Walker: http://eternallyconfuzzled.com/jsw_home.aspx - -Trees ------------- - -* BinTree - Binary Search Tree -* RBTree - Red-Black Tree - -Quickstart ------------- -node.js: - -``` -npm install bintrees -``` - -```javascript -var RBTree = require('bintrees').RBTree; - -var tree = new RBTree(function(a, b) { return a - b; }); - -tree.insert(2); -tree.insert(-3); -``` - -see examples/node.js for more info - -In the browser: - -```html - - -``` - -see examples/client.html for more info - -Constructor ------------- - -Requires 1 argument: a comparator function f(a,b) which returns: -* 0 if a == b -* >0 if a > b -* <0 if a < b - -Methods ------------- - -### insert(item) -> Inserts the item into the tree. Returns true if inserted, false if duplicate. - -### remove(item) -> Removes the item from the tree. Returns true if removed, false if not found. - -### size -> Number of nodes in the tree. - -### clear() -> Removes all nodes from the tree. - -### find(item) -> Returns node data if found, null otherwise. - -### findIter(item) -> Returns an iterator to the node if found, null otherwise. - -### lowerBound(item) -> Returns an iterator to the tree node at or immediately after the item. Returns null-iterator if tree is empty. ->> __NOTE: Changed in version 1.0.0 to match C++ lower_bound__ - -### upperBound(item) -> Returns an iterator to the tree node immediately after the item. Returns null-iterator if tree is empty. ->> __NOTE: Changed in version 1.0.0 to match C++ upper_bound__ - -### min() -> Returns the min node data in the tree, or null if the tree is empty. - -### max() -> Returns the max node data in the tree, or null if the tree is empty. - -### each(f) -> Calls f on each node's data, in order. - -### reach(f) -> Calls f on each node's data, in reverse order. - -### iterator() -> Returns a null-iterator. See __Iterators__ section below. - -Iterators ------------- - -tree.iterator() will return a null-iterator. On a null iterator, -* next() will return the first element in the tree -* prev() will return the last element in the tree - -Otherwise, -* next() will return the next element -* prev() will return the previous element -* data() will return the node the iterator is pointing to - -When iteration reaches the end, the iterator becomes a null-iterator again. - -Forward iteration example: - -```javascript -var it=tree.iterator(), item; -while((item = it.next()) !== null) { - // do stuff with item -} -``` - -If you are iterating forward through the tree, you can always call prev() to go back, and vice versa. - -__NOTE:__ iterators become invalid when you add or remove elements from the tree. - -## Production Usage - -* [Coinbase Exchange](https://exchange.coinbase.com/), since Jan 26, 2015. -* If you are using this in production, please let me know! (add your company to this README in a pull request) diff --git a/node_modules/bintrees/dist/bintree.js b/node_modules/bintrees/dist/bintree.js deleted file mode 100644 index 7cbdf0b4..00000000 --- a/node_modules/bintrees/dist/bintree.js +++ /dev/null @@ -1,359 +0,0 @@ -BinTree = (function(window) { -var global = window; -var require = function(name) { - var fn = require.m[name]; - if (fn.mod) { - return fn.mod.exports; - } - - var mod = fn.mod = { exports: {} }; - fn(mod, mod.exports); - return mod.exports; -}; - -require.m = {}; -require.m['./treebase'] = function(module, exports) { - -function TreeBase() {} - -// removes all nodes from the tree -TreeBase.prototype.clear = function() { - this._root = null; - this.size = 0; -}; - -// returns node data if found, null otherwise -TreeBase.prototype.find = function(data) { - var res = this._root; - - while(res !== null) { - var c = this._comparator(data, res.data); - if(c === 0) { - return res.data; - } - else { - res = res.get_child(c > 0); - } - } - - return null; -}; - -// returns iterator to node if found, null otherwise -TreeBase.prototype.findIter = function(data) { - var res = this._root; - var iter = this.iterator(); - - while(res !== null) { - var c = this._comparator(data, res.data); - if(c === 0) { - iter._cursor = res; - return iter; - } - else { - iter._ancestors.push(res); - res = res.get_child(c > 0); - } - } - - return null; -}; - -// Returns an iterator to the tree node at or immediately after the item -TreeBase.prototype.lowerBound = function(item) { - var cur = this._root; - var iter = this.iterator(); - var cmp = this._comparator; - - while(cur !== null) { - var c = cmp(item, cur.data); - if(c === 0) { - iter._cursor = cur; - return iter; - } - iter._ancestors.push(cur); - cur = cur.get_child(c > 0); - } - - for(var i=iter._ancestors.length - 1; i >= 0; --i) { - cur = iter._ancestors[i]; - if(cmp(item, cur.data) < 0) { - iter._cursor = cur; - iter._ancestors.length = i; - return iter; - } - } - - iter._ancestors.length = 0; - return iter; -}; - -// Returns an iterator to the tree node immediately after the item -TreeBase.prototype.upperBound = function(item) { - var iter = this.lowerBound(item); - var cmp = this._comparator; - - while(iter.data() !== null && cmp(iter.data(), item) === 0) { - iter.next(); - } - - return iter; -}; - -// returns null if tree is empty -TreeBase.prototype.min = function() { - var res = this._root; - if(res === null) { - return null; - } - - while(res.left !== null) { - res = res.left; - } - - return res.data; -}; - -// returns null if tree is empty -TreeBase.prototype.max = function() { - var res = this._root; - if(res === null) { - return null; - } - - while(res.right !== null) { - res = res.right; - } - - return res.data; -}; - -// returns a null iterator -// call next() or prev() to point to an element -TreeBase.prototype.iterator = function() { - return new Iterator(this); -}; - -// calls cb on each node's data, in order -TreeBase.prototype.each = function(cb) { - var it=this.iterator(), data; - while((data = it.next()) !== null) { - cb(data); - } -}; - -// calls cb on each node's data, in reverse order -TreeBase.prototype.reach = function(cb) { - var it=this.iterator(), data; - while((data = it.prev()) !== null) { - cb(data); - } -}; - - -function Iterator(tree) { - this._tree = tree; - this._ancestors = []; - this._cursor = null; -} - -Iterator.prototype.data = function() { - return this._cursor !== null ? this._cursor.data : null; -}; - -// if null-iterator, returns first node -// otherwise, returns next node -Iterator.prototype.next = function() { - if(this._cursor === null) { - var root = this._tree._root; - if(root !== null) { - this._minNode(root); - } - } - else { - if(this._cursor.right === null) { - // no greater node in subtree, go up to parent - // if coming from a right child, continue up the stack - var save; - do { - save = this._cursor; - if(this._ancestors.length) { - this._cursor = this._ancestors.pop(); - } - else { - this._cursor = null; - break; - } - } while(this._cursor.right === save); - } - else { - // get the next node from the subtree - this._ancestors.push(this._cursor); - this._minNode(this._cursor.right); - } - } - return this._cursor !== null ? this._cursor.data : null; -}; - -// if null-iterator, returns last node -// otherwise, returns previous node -Iterator.prototype.prev = function() { - if(this._cursor === null) { - var root = this._tree._root; - if(root !== null) { - this._maxNode(root); - } - } - else { - if(this._cursor.left === null) { - var save; - do { - save = this._cursor; - if(this._ancestors.length) { - this._cursor = this._ancestors.pop(); - } - else { - this._cursor = null; - break; - } - } while(this._cursor.left === save); - } - else { - this._ancestors.push(this._cursor); - this._maxNode(this._cursor.left); - } - } - return this._cursor !== null ? this._cursor.data : null; -}; - -Iterator.prototype._minNode = function(start) { - while(start.left !== null) { - this._ancestors.push(start); - start = start.left; - } - this._cursor = start; -}; - -Iterator.prototype._maxNode = function(start) { - while(start.right !== null) { - this._ancestors.push(start); - start = start.right; - } - this._cursor = start; -}; - -module.exports = TreeBase; - -}; -require.m['__main__'] = function(module, exports) { - -var TreeBase = require('./treebase'); - -function Node(data) { - this.data = data; - this.left = null; - this.right = null; -} - -Node.prototype.get_child = function(dir) { - return dir ? this.right : this.left; -}; - -Node.prototype.set_child = function(dir, val) { - if(dir) { - this.right = val; - } - else { - this.left = val; - } -}; - -function BinTree(comparator) { - this._root = null; - this._comparator = comparator; - this.size = 0; -} - -BinTree.prototype = new TreeBase(); - -// returns true if inserted, false if duplicate -BinTree.prototype.insert = function(data) { - if(this._root === null) { - // empty tree - this._root = new Node(data); - this.size++; - return true; - } - - var dir = 0; - - // setup - var p = null; // parent - var node = this._root; - - // search down - while(true) { - if(node === null) { - // insert new node at the bottom - node = new Node(data); - p.set_child(dir, node); - ret = true; - this.size++; - return true; - } - - // stop if found - if(this._comparator(node.data, data) === 0) { - return false; - } - - dir = this._comparator(node.data, data) < 0; - - // update helpers - p = node; - node = node.get_child(dir); - } -}; - -// returns true if removed, false if not found -BinTree.prototype.remove = function(data) { - if(this._root === null) { - return false; - } - - var head = new Node(undefined); // fake tree root - var node = head; - node.right = this._root; - var p = null; // parent - var found = null; // found item - var dir = 1; - - while(node.get_child(dir) !== null) { - p = node; - node = node.get_child(dir); - var cmp = this._comparator(data, node.data); - dir = cmp > 0; - - if(cmp === 0) { - found = node; - } - } - - if(found !== null) { - found.data = node.data; - p.set_child(p.right === node, node.get_child(node.left === null)); - - this._root = head.right; - this.size--; - return true; - } - else { - return false; - } -}; - -module.exports = BinTree; - -}; -return require('__main__'); -})(window); diff --git a/node_modules/bintrees/dist/bintree.min.js b/node_modules/bintrees/dist/bintree.min.js deleted file mode 100644 index 61794054..00000000 --- a/node_modules/bintrees/dist/bintree.min.js +++ /dev/null @@ -1,8 +0,0 @@ -BinTree=function(m){var k=function(h){h=k.m[h];if(h.mod)return h.mod.exports;var l=h.mod={exports:{}};h(l,l.exports);return l.exports};k.m={};k.m["./treebase"]=function(h,k){function f(){}function g(a){this._tree=a;this._ancestors=[];this._cursor=null}f.prototype.clear=function(){this._root=null;this.size=0};f.prototype.find=function(a){for(var c=this._root;null!==c;){var b=this._comparator(a,c.data);if(0===b)return c.data;c=c.get_child(0d(a,c.data))return b._cursor=c,b._ancestors.length=e,b;b._ancestors.length=0;return b};f.prototype.upperBound= -function(a){for(var c=this.lowerBound(a),b=this._comparator;null!==c.data()&&0===b(c.data(),a);)c.next();return c};f.prototype.min=function(){var a=this._root;if(null===a)return null;for(;null!==a.left;)a=a.left;return a.data};f.prototype.max=function(){var a=this._root;if(null===a)return null;for(;null!==a.right;)a=a.right;return a.data};f.prototype.iterator=function(){return new g(this)};f.prototype.each=function(a){for(var c=this.iterator(),b;null!==(b=c.next());)a(b)};f.prototype.reach=function(a){for(var c= -this.iterator(),b;null!==(b=c.prev());)a(b)};g.prototype.data=function(){return null!==this._cursor?this._cursor.data:null};g.prototype.next=function(){if(null===this._cursor){var a=this._tree._root;null!==a&&this._minNode(a)}else if(null===this._cursor.right){do if(a=this._cursor,this._ancestors.length)this._cursor=this._ancestors.pop();else{this._cursor=null;break}while(this._cursor.right===a)}else this._ancestors.push(this._cursor),this._minNode(this._cursor.right);return null!==this._cursor?this._cursor.data: -null};g.prototype.prev=function(){if(null===this._cursor){var a=this._tree._root;null!==a&&this._maxNode(a)}else if(null===this._cursor.left){do if(a=this._cursor,this._ancestors.length)this._cursor=this._ancestors.pop();else{this._cursor=null;break}while(this._cursor.left===a)}else this._ancestors.push(this._cursor),this._maxNode(this._cursor.left);return null!==this._cursor?this._cursor.data:null};g.prototype._minNode=function(a){for(;null!==a.left;)this._ancestors.push(a),a=a.left;this._cursor= -a};g.prototype._maxNode=function(a){for(;null!==a.right;)this._ancestors.push(a),a=a.right;this._cursor=a};h.exports=f};k.m.__main__=function(h,l){function f(a){this.data=a;this.right=this.left=null}function g(a){this._root=null;this._comparator=a;this.size=0}var a=k("./treebase");f.prototype.get_child=function(a){return a?this.right:this.left};f.prototype.set_child=function(a,b){a?this.right=b:this.left=b};g.prototype=new a;g.prototype.insert=function(a){if(null===this._root)return this._root=new f(a), -this.size++,!0;for(var b=0,d=null,e=this._root;;){if(null===e)return e=new f(a),d.set_child(b,e),ret=!0,this.size++,!0;if(0===this._comparator(e.data,a))return!1;b=0>this._comparator(e.data,a);d=e;e=e.get_child(b)}};g.prototype.remove=function(a){if(null===this._root)return!1;var b=new f(void 0),d=b;d.right=this._root;for(var e=null,g=null,h=1;null!==d.get_child(h);){var e=d,d=d.get_child(h),k=this._comparator(a,d.data),h=0 0); - } - } - - return null; -}; - -// returns iterator to node if found, null otherwise -TreeBase.prototype.findIter = function(data) { - var res = this._root; - var iter = this.iterator(); - - while(res !== null) { - var c = this._comparator(data, res.data); - if(c === 0) { - iter._cursor = res; - return iter; - } - else { - iter._ancestors.push(res); - res = res.get_child(c > 0); - } - } - - return null; -}; - -// Returns an iterator to the tree node at or immediately after the item -TreeBase.prototype.lowerBound = function(item) { - var cur = this._root; - var iter = this.iterator(); - var cmp = this._comparator; - - while(cur !== null) { - var c = cmp(item, cur.data); - if(c === 0) { - iter._cursor = cur; - return iter; - } - iter._ancestors.push(cur); - cur = cur.get_child(c > 0); - } - - for(var i=iter._ancestors.length - 1; i >= 0; --i) { - cur = iter._ancestors[i]; - if(cmp(item, cur.data) < 0) { - iter._cursor = cur; - iter._ancestors.length = i; - return iter; - } - } - - iter._ancestors.length = 0; - return iter; -}; - -// Returns an iterator to the tree node immediately after the item -TreeBase.prototype.upperBound = function(item) { - var iter = this.lowerBound(item); - var cmp = this._comparator; - - while(iter.data() !== null && cmp(iter.data(), item) === 0) { - iter.next(); - } - - return iter; -}; - -// returns null if tree is empty -TreeBase.prototype.min = function() { - var res = this._root; - if(res === null) { - return null; - } - - while(res.left !== null) { - res = res.left; - } - - return res.data; -}; - -// returns null if tree is empty -TreeBase.prototype.max = function() { - var res = this._root; - if(res === null) { - return null; - } - - while(res.right !== null) { - res = res.right; - } - - return res.data; -}; - -// returns a null iterator -// call next() or prev() to point to an element -TreeBase.prototype.iterator = function() { - return new Iterator(this); -}; - -// calls cb on each node's data, in order -TreeBase.prototype.each = function(cb) { - var it=this.iterator(), data; - while((data = it.next()) !== null) { - cb(data); - } -}; - -// calls cb on each node's data, in reverse order -TreeBase.prototype.reach = function(cb) { - var it=this.iterator(), data; - while((data = it.prev()) !== null) { - cb(data); - } -}; - - -function Iterator(tree) { - this._tree = tree; - this._ancestors = []; - this._cursor = null; -} - -Iterator.prototype.data = function() { - return this._cursor !== null ? this._cursor.data : null; -}; - -// if null-iterator, returns first node -// otherwise, returns next node -Iterator.prototype.next = function() { - if(this._cursor === null) { - var root = this._tree._root; - if(root !== null) { - this._minNode(root); - } - } - else { - if(this._cursor.right === null) { - // no greater node in subtree, go up to parent - // if coming from a right child, continue up the stack - var save; - do { - save = this._cursor; - if(this._ancestors.length) { - this._cursor = this._ancestors.pop(); - } - else { - this._cursor = null; - break; - } - } while(this._cursor.right === save); - } - else { - // get the next node from the subtree - this._ancestors.push(this._cursor); - this._minNode(this._cursor.right); - } - } - return this._cursor !== null ? this._cursor.data : null; -}; - -// if null-iterator, returns last node -// otherwise, returns previous node -Iterator.prototype.prev = function() { - if(this._cursor === null) { - var root = this._tree._root; - if(root !== null) { - this._maxNode(root); - } - } - else { - if(this._cursor.left === null) { - var save; - do { - save = this._cursor; - if(this._ancestors.length) { - this._cursor = this._ancestors.pop(); - } - else { - this._cursor = null; - break; - } - } while(this._cursor.left === save); - } - else { - this._ancestors.push(this._cursor); - this._maxNode(this._cursor.left); - } - } - return this._cursor !== null ? this._cursor.data : null; -}; - -Iterator.prototype._minNode = function(start) { - while(start.left !== null) { - this._ancestors.push(start); - start = start.left; - } - this._cursor = start; -}; - -Iterator.prototype._maxNode = function(start) { - while(start.right !== null) { - this._ancestors.push(start); - start = start.right; - } - this._cursor = start; -}; - -module.exports = TreeBase; - -}; -require.m['__main__'] = function(module, exports) { - -var TreeBase = require('./treebase'); - -function Node(data) { - this.data = data; - this.left = null; - this.right = null; - this.red = true; -} - -Node.prototype.get_child = function(dir) { - return dir ? this.right : this.left; -}; - -Node.prototype.set_child = function(dir, val) { - if(dir) { - this.right = val; - } - else { - this.left = val; - } -}; - -function RBTree(comparator) { - this._root = null; - this._comparator = comparator; - this.size = 0; -} - -RBTree.prototype = new TreeBase(); - -// returns true if inserted, false if duplicate -RBTree.prototype.insert = function(data) { - var ret = false; - - if(this._root === null) { - // empty tree - this._root = new Node(data); - ret = true; - this.size++; - } - else { - var head = new Node(undefined); // fake tree root - - var dir = 0; - var last = 0; - - // setup - var gp = null; // grandparent - var ggp = head; // grand-grand-parent - var p = null; // parent - var node = this._root; - ggp.right = this._root; - - // search down - while(true) { - if(node === null) { - // insert new node at the bottom - node = new Node(data); - p.set_child(dir, node); - ret = true; - this.size++; - } - else if(is_red(node.left) && is_red(node.right)) { - // color flip - node.red = true; - node.left.red = false; - node.right.red = false; - } - - // fix red violation - if(is_red(node) && is_red(p)) { - var dir2 = ggp.right === gp; - - if(node === p.get_child(last)) { - ggp.set_child(dir2, single_rotate(gp, !last)); - } - else { - ggp.set_child(dir2, double_rotate(gp, !last)); - } - } - - var cmp = this._comparator(node.data, data); - - // stop if found - if(cmp === 0) { - break; - } - - last = dir; - dir = cmp < 0; - - // update helpers - if(gp !== null) { - ggp = gp; - } - gp = p; - p = node; - node = node.get_child(dir); - } - - // update root - this._root = head.right; - } - - // make root black - this._root.red = false; - - return ret; -}; - -// returns true if removed, false if not found -RBTree.prototype.remove = function(data) { - if(this._root === null) { - return false; - } - - var head = new Node(undefined); // fake tree root - var node = head; - node.right = this._root; - var p = null; // parent - var gp = null; // grand parent - var found = null; // found item - var dir = 1; - - while(node.get_child(dir) !== null) { - var last = dir; - - // update helpers - gp = p; - p = node; - node = node.get_child(dir); - - var cmp = this._comparator(data, node.data); - - dir = cmp > 0; - - // save found node - if(cmp === 0) { - found = node; - } - - // push the red node down - if(!is_red(node) && !is_red(node.get_child(dir))) { - if(is_red(node.get_child(!dir))) { - var sr = single_rotate(node, dir); - p.set_child(last, sr); - p = sr; - } - else if(!is_red(node.get_child(!dir))) { - var sibling = p.get_child(!last); - if(sibling !== null) { - if(!is_red(sibling.get_child(!last)) && !is_red(sibling.get_child(last))) { - // color flip - p.red = false; - sibling.red = true; - node.red = true; - } - else { - var dir2 = gp.right === p; - - if(is_red(sibling.get_child(last))) { - gp.set_child(dir2, double_rotate(p, last)); - } - else if(is_red(sibling.get_child(!last))) { - gp.set_child(dir2, single_rotate(p, last)); - } - - // ensure correct coloring - var gpc = gp.get_child(dir2); - gpc.red = true; - node.red = true; - gpc.left.red = false; - gpc.right.red = false; - } - } - } - } - } - - // replace and remove if found - if(found !== null) { - found.data = node.data; - p.set_child(p.right === node, node.get_child(node.left === null)); - this.size--; - } - - // update root and make it black - this._root = head.right; - if(this._root !== null) { - this._root.red = false; - } - - return found !== null; -}; - -function is_red(node) { - return node !== null && node.red; -} - -function single_rotate(root, dir) { - var save = root.get_child(!dir); - - root.set_child(!dir, save.get_child(dir)); - save.set_child(dir, root); - - root.red = true; - save.red = false; - - return save; -} - -function double_rotate(root, dir) { - root.set_child(!dir, single_rotate(root.get_child(!dir), !dir)); - return single_rotate(root, dir); -} - -module.exports = RBTree; -}; -return require('__main__'); -})(window); diff --git a/node_modules/bintrees/dist/rbtree.min.js b/node_modules/bintrees/dist/rbtree.min.js deleted file mode 100644 index 5084629d..00000000 --- a/node_modules/bintrees/dist/rbtree.min.js +++ /dev/null @@ -1,9 +0,0 @@ -RBTree=function(v){var p=function(g){g=p.m[g];if(g.mod)return g.mod.exports;var t=g.mod={exports:{}};g(t,t.exports);return t.exports};p.m={};p.m["./treebase"]=function(g,p){function d(){}function h(a){this._tree=a;this._ancestors=[];this._cursor=null}d.prototype.clear=function(){this._root=null;this.size=0};d.prototype.find=function(a){for(var b=this._root;null!==b;){var c=this._comparator(a,b.data);if(0===c)return b.data;b=b.get_child(0d(a,b.data))return c._cursor=b,c._ancestors.length=q,c;c._ancestors.length=0;return c};d.prototype.upperBound= -function(a){for(var b=this.lowerBound(a),c=this._comparator;null!==b.data()&&0===c(b.data(),a);)b.next();return b};d.prototype.min=function(){var a=this._root;if(null===a)return null;for(;null!==a.left;)a=a.left;return a.data};d.prototype.max=function(){var a=this._root;if(null===a)return null;for(;null!==a.right;)a=a.right;return a.data};d.prototype.iterator=function(){return new h(this)};d.prototype.each=function(a){for(var b=this.iterator(),c;null!==(c=b.next());)a(c)};d.prototype.reach=function(a){for(var b= -this.iterator(),c;null!==(c=b.prev());)a(c)};h.prototype.data=function(){return null!==this._cursor?this._cursor.data:null};h.prototype.next=function(){if(null===this._cursor){var a=this._tree._root;null!==a&&this._minNode(a)}else if(null===this._cursor.right){do if(a=this._cursor,this._ancestors.length)this._cursor=this._ancestors.pop();else{this._cursor=null;break}while(this._cursor.right===a)}else this._ancestors.push(this._cursor),this._minNode(this._cursor.right);return null!==this._cursor?this._cursor.data: -null};h.prototype.prev=function(){if(null===this._cursor){var a=this._tree._root;null!==a&&this._maxNode(a)}else if(null===this._cursor.left){do if(a=this._cursor,this._ancestors.length)this._cursor=this._ancestors.pop();else{this._cursor=null;break}while(this._cursor.left===a)}else this._ancestors.push(this._cursor),this._maxNode(this._cursor.left);return null!==this._cursor?this._cursor.data:null};h.prototype._minNode=function(a){for(;null!==a.left;)this._ancestors.push(a),a=a.left;this._cursor= -a};h.prototype._maxNode=function(a){for(;null!==a.right;)this._ancestors.push(a),a=a.right;this._cursor=a};g.exports=d};p.m.__main__=function(g,t){function d(a){this.data=a;this.right=this.left=null;this.red=!0}function h(a){this._root=null;this._comparator=a;this.size=0}function a(a){return null!==a&&a.red}function b(a,b){var c=a.get_child(!b);a.set_child(!b,c.get_child(b));c.set_child(b,a);a.red=!0;c.red=!1;return c}function c(a,c){a.set_child(!c,b(a.get_child(!c),!c));return b(a,c)}var u=p("./treebase"); -d.prototype.get_child=function(a){return a?this.right:this.left};d.prototype.set_child=function(a,b){a?this.right=b:this.left=b};h.prototype=new u;h.prototype.insert=function(q){var h=!1;if(null===this._root)this._root=new d(q),h=!0,this.size++;else{var f=new d(void 0),l=0,n=0,r=null,m=f,k=null,e=this._root;for(m.right=this._root;;){null===e?(e=new d(q),k.set_child(l,e),h=!0,this.size++):a(e.left)&&a(e.right)&&(e.red=!0,e.left.red=!1,e.right.red=!1);if(a(e)&&a(k)){var g=m.right===r;e===k.get_child(n)? -m.set_child(g,b(r,!n)):m.set_child(g,c(r,!n))}g=this._comparator(e.data,q);if(0===g)break;n=l;l=0>g;null!==r&&(m=r);r=k;k=e;e=e.get_child(l)}this._root=f.right}this._root.red=!1;return h};h.prototype.remove=function(g){if(null===this._root)return!1;var h=new d(void 0),f=h;f.right=this._root;for(var l=null,n=null,r=null,m=1;null!==f.get_child(m);){var k=m,n=l,l=f,f=f.get_child(m),e=this._comparator(g,f.data),m=0 - - - simple browser test - - - - - - This test just makes sure the script loads and something works. More comprehensive tests are located in the /test directory. - - diff --git a/node_modules/bintrees/examples/node.js b/node_modules/bintrees/examples/node.js deleted file mode 100644 index f550887a..00000000 --- a/node_modules/bintrees/examples/node.js +++ /dev/null @@ -1,13 +0,0 @@ -var Tree = require('..').RBTree; - -// create a new tree, pass in the compare function -var tree = new Tree(function(a, b) { return a - b; }); - -// do some inserts -tree.insert(1); -tree.insert(2); -tree.insert(3); -tree.remove(2); - -// get smallest item -tree.min(); diff --git a/node_modules/bintrees/index.js b/node_modules/bintrees/index.js deleted file mode 100644 index 8a0d6228..00000000 --- a/node_modules/bintrees/index.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - RBTree: require('./lib/rbtree'), - BinTree: require('./lib/bintree') -}; diff --git a/node_modules/bintrees/lib/bintree.js b/node_modules/bintrees/lib/bintree.js deleted file mode 100644 index 0f043ddb..00000000 --- a/node_modules/bintrees/lib/bintree.js +++ /dev/null @@ -1,108 +0,0 @@ - -var TreeBase = require('./treebase'); - -function Node(data) { - this.data = data; - this.left = null; - this.right = null; -} - -Node.prototype.get_child = function(dir) { - return dir ? this.right : this.left; -}; - -Node.prototype.set_child = function(dir, val) { - if(dir) { - this.right = val; - } - else { - this.left = val; - } -}; - -function BinTree(comparator) { - this._root = null; - this._comparator = comparator; - this.size = 0; -} - -BinTree.prototype = new TreeBase(); - -// returns true if inserted, false if duplicate -BinTree.prototype.insert = function(data) { - if(this._root === null) { - // empty tree - this._root = new Node(data); - this.size++; - return true; - } - - var dir = 0; - - // setup - var p = null; // parent - var node = this._root; - - // search down - while(true) { - if(node === null) { - // insert new node at the bottom - node = new Node(data); - p.set_child(dir, node); - ret = true; - this.size++; - return true; - } - - // stop if found - if(this._comparator(node.data, data) === 0) { - return false; - } - - dir = this._comparator(node.data, data) < 0; - - // update helpers - p = node; - node = node.get_child(dir); - } -}; - -// returns true if removed, false if not found -BinTree.prototype.remove = function(data) { - if(this._root === null) { - return false; - } - - var head = new Node(undefined); // fake tree root - var node = head; - node.right = this._root; - var p = null; // parent - var found = null; // found item - var dir = 1; - - while(node.get_child(dir) !== null) { - p = node; - node = node.get_child(dir); - var cmp = this._comparator(data, node.data); - dir = cmp > 0; - - if(cmp === 0) { - found = node; - } - } - - if(found !== null) { - found.data = node.data; - p.set_child(p.right === node, node.get_child(node.left === null)); - - this._root = head.right; - this.size--; - return true; - } - else { - return false; - } -}; - -module.exports = BinTree; - diff --git a/node_modules/bintrees/lib/rbtree.js b/node_modules/bintrees/lib/rbtree.js deleted file mode 100644 index 1327450a..00000000 --- a/node_modules/bintrees/lib/rbtree.js +++ /dev/null @@ -1,218 +0,0 @@ - -var TreeBase = require('./treebase'); - -function Node(data) { - this.data = data; - this.left = null; - this.right = null; - this.red = true; -} - -Node.prototype.get_child = function(dir) { - return dir ? this.right : this.left; -}; - -Node.prototype.set_child = function(dir, val) { - if(dir) { - this.right = val; - } - else { - this.left = val; - } -}; - -function RBTree(comparator) { - this._root = null; - this._comparator = comparator; - this.size = 0; -} - -RBTree.prototype = new TreeBase(); - -// returns true if inserted, false if duplicate -RBTree.prototype.insert = function(data) { - var ret = false; - - if(this._root === null) { - // empty tree - this._root = new Node(data); - ret = true; - this.size++; - } - else { - var head = new Node(undefined); // fake tree root - - var dir = 0; - var last = 0; - - // setup - var gp = null; // grandparent - var ggp = head; // grand-grand-parent - var p = null; // parent - var node = this._root; - ggp.right = this._root; - - // search down - while(true) { - if(node === null) { - // insert new node at the bottom - node = new Node(data); - p.set_child(dir, node); - ret = true; - this.size++; - } - else if(is_red(node.left) && is_red(node.right)) { - // color flip - node.red = true; - node.left.red = false; - node.right.red = false; - } - - // fix red violation - if(is_red(node) && is_red(p)) { - var dir2 = ggp.right === gp; - - if(node === p.get_child(last)) { - ggp.set_child(dir2, single_rotate(gp, !last)); - } - else { - ggp.set_child(dir2, double_rotate(gp, !last)); - } - } - - var cmp = this._comparator(node.data, data); - - // stop if found - if(cmp === 0) { - break; - } - - last = dir; - dir = cmp < 0; - - // update helpers - if(gp !== null) { - ggp = gp; - } - gp = p; - p = node; - node = node.get_child(dir); - } - - // update root - this._root = head.right; - } - - // make root black - this._root.red = false; - - return ret; -}; - -// returns true if removed, false if not found -RBTree.prototype.remove = function(data) { - if(this._root === null) { - return false; - } - - var head = new Node(undefined); // fake tree root - var node = head; - node.right = this._root; - var p = null; // parent - var gp = null; // grand parent - var found = null; // found item - var dir = 1; - - while(node.get_child(dir) !== null) { - var last = dir; - - // update helpers - gp = p; - p = node; - node = node.get_child(dir); - - var cmp = this._comparator(data, node.data); - - dir = cmp > 0; - - // save found node - if(cmp === 0) { - found = node; - } - - // push the red node down - if(!is_red(node) && !is_red(node.get_child(dir))) { - if(is_red(node.get_child(!dir))) { - var sr = single_rotate(node, dir); - p.set_child(last, sr); - p = sr; - } - else if(!is_red(node.get_child(!dir))) { - var sibling = p.get_child(!last); - if(sibling !== null) { - if(!is_red(sibling.get_child(!last)) && !is_red(sibling.get_child(last))) { - // color flip - p.red = false; - sibling.red = true; - node.red = true; - } - else { - var dir2 = gp.right === p; - - if(is_red(sibling.get_child(last))) { - gp.set_child(dir2, double_rotate(p, last)); - } - else if(is_red(sibling.get_child(!last))) { - gp.set_child(dir2, single_rotate(p, last)); - } - - // ensure correct coloring - var gpc = gp.get_child(dir2); - gpc.red = true; - node.red = true; - gpc.left.red = false; - gpc.right.red = false; - } - } - } - } - } - - // replace and remove if found - if(found !== null) { - found.data = node.data; - p.set_child(p.right === node, node.get_child(node.left === null)); - this.size--; - } - - // update root and make it black - this._root = head.right; - if(this._root !== null) { - this._root.red = false; - } - - return found !== null; -}; - -function is_red(node) { - return node !== null && node.red; -} - -function single_rotate(root, dir) { - var save = root.get_child(!dir); - - root.set_child(!dir, save.get_child(dir)); - save.set_child(dir, root); - - root.red = true; - save.red = false; - - return save; -} - -function double_rotate(root, dir) { - root.set_child(!dir, single_rotate(root.get_child(!dir), !dir)); - return single_rotate(root, dir); -} - -module.exports = RBTree; diff --git a/node_modules/bintrees/lib/treebase.js b/node_modules/bintrees/lib/treebase.js deleted file mode 100644 index abb9112b..00000000 --- a/node_modules/bintrees/lib/treebase.js +++ /dev/null @@ -1,235 +0,0 @@ - -function TreeBase() {} - -// removes all nodes from the tree -TreeBase.prototype.clear = function() { - this._root = null; - this.size = 0; -}; - -// returns node data if found, null otherwise -TreeBase.prototype.find = function(data) { - var res = this._root; - - while(res !== null) { - var c = this._comparator(data, res.data); - if(c === 0) { - return res.data; - } - else { - res = res.get_child(c > 0); - } - } - - return null; -}; - -// returns iterator to node if found, null otherwise -TreeBase.prototype.findIter = function(data) { - var res = this._root; - var iter = this.iterator(); - - while(res !== null) { - var c = this._comparator(data, res.data); - if(c === 0) { - iter._cursor = res; - return iter; - } - else { - iter._ancestors.push(res); - res = res.get_child(c > 0); - } - } - - return null; -}; - -// Returns an iterator to the tree node at or immediately after the item -TreeBase.prototype.lowerBound = function(item) { - var cur = this._root; - var iter = this.iterator(); - var cmp = this._comparator; - - while(cur !== null) { - var c = cmp(item, cur.data); - if(c === 0) { - iter._cursor = cur; - return iter; - } - iter._ancestors.push(cur); - cur = cur.get_child(c > 0); - } - - for(var i=iter._ancestors.length - 1; i >= 0; --i) { - cur = iter._ancestors[i]; - if(cmp(item, cur.data) < 0) { - iter._cursor = cur; - iter._ancestors.length = i; - return iter; - } - } - - iter._ancestors.length = 0; - return iter; -}; - -// Returns an iterator to the tree node immediately after the item -TreeBase.prototype.upperBound = function(item) { - var iter = this.lowerBound(item); - var cmp = this._comparator; - - while(iter.data() !== null && cmp(iter.data(), item) === 0) { - iter.next(); - } - - return iter; -}; - -// returns null if tree is empty -TreeBase.prototype.min = function() { - var res = this._root; - if(res === null) { - return null; - } - - while(res.left !== null) { - res = res.left; - } - - return res.data; -}; - -// returns null if tree is empty -TreeBase.prototype.max = function() { - var res = this._root; - if(res === null) { - return null; - } - - while(res.right !== null) { - res = res.right; - } - - return res.data; -}; - -// returns a null iterator -// call next() or prev() to point to an element -TreeBase.prototype.iterator = function() { - return new Iterator(this); -}; - -// calls cb on each node's data, in order -TreeBase.prototype.each = function(cb) { - var it=this.iterator(), data; - while((data = it.next()) !== null) { - if(cb(data) === false) { - return; - } - } -}; - -// calls cb on each node's data, in reverse order -TreeBase.prototype.reach = function(cb) { - var it=this.iterator(), data; - while((data = it.prev()) !== null) { - if(cb(data) === false) { - return; - } - } -}; - - -function Iterator(tree) { - this._tree = tree; - this._ancestors = []; - this._cursor = null; -} - -Iterator.prototype.data = function() { - return this._cursor !== null ? this._cursor.data : null; -}; - -// if null-iterator, returns first node -// otherwise, returns next node -Iterator.prototype.next = function() { - if(this._cursor === null) { - var root = this._tree._root; - if(root !== null) { - this._minNode(root); - } - } - else { - if(this._cursor.right === null) { - // no greater node in subtree, go up to parent - // if coming from a right child, continue up the stack - var save; - do { - save = this._cursor; - if(this._ancestors.length) { - this._cursor = this._ancestors.pop(); - } - else { - this._cursor = null; - break; - } - } while(this._cursor.right === save); - } - else { - // get the next node from the subtree - this._ancestors.push(this._cursor); - this._minNode(this._cursor.right); - } - } - return this._cursor !== null ? this._cursor.data : null; -}; - -// if null-iterator, returns last node -// otherwise, returns previous node -Iterator.prototype.prev = function() { - if(this._cursor === null) { - var root = this._tree._root; - if(root !== null) { - this._maxNode(root); - } - } - else { - if(this._cursor.left === null) { - var save; - do { - save = this._cursor; - if(this._ancestors.length) { - this._cursor = this._ancestors.pop(); - } - else { - this._cursor = null; - break; - } - } while(this._cursor.left === save); - } - else { - this._ancestors.push(this._cursor); - this._maxNode(this._cursor.left); - } - } - return this._cursor !== null ? this._cursor.data : null; -}; - -Iterator.prototype._minNode = function(start) { - while(start.left !== null) { - this._ancestors.push(start); - start = start.left; - } - this._cursor = start; -}; - -Iterator.prototype._maxNode = function(start) { - while(start.right !== null) { - this._ancestors.push(start); - start = start.right; - } - this._cursor = start; -}; - -module.exports = TreeBase; - diff --git a/node_modules/bintrees/package.json b/node_modules/bintrees/package.json deleted file mode 100644 index 1c8344dc..00000000 --- a/node_modules/bintrees/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "author": "Vadim Graboys ", - "name": "bintrees", - "description": "Binary Search Trees", - "version": "1.0.2", - "keywords": [ - "binary tree", - "red black tree", - "red-black tree", - "redblack tree" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/vadimg/js_bintrees.git" - }, - "directories": { - "lib": "lib" - }, - "main": "./index.js", - "scripts": { - "test": "nodeunit ./test/test_*.js && jshint lib/*.js index.js" - }, - "dependencies": { - }, - "devDependencies": { - "nodeunit": "0.9.1", - "jshint": "0.5.9", - "underscore": "1.3.1", - "reunion": "0.0.0" - } -} diff --git a/node_modules/bintrees/test/arrtree.js b/node_modules/bintrees/test/arrtree.js deleted file mode 100644 index 0d80900a..00000000 --- a/node_modules/bintrees/test/arrtree.js +++ /dev/null @@ -1,68 +0,0 @@ -// Not to be used in production! -// Only here to show how much faster bintrees are in the perf benchmarks. -function ArrTree(comparator) { - this._arr = []; - this._comparator = comparator; -} - -// returns true if inserted, false if duplicate -ArrTree.prototype.insert = function(data) { - var elem_index = this._find_index(data); - if(elem_index >= 0) { - return false; - } - - // recover the index data should have been inserted at and splice data in - this._arr.splice(~elem_index, 0, data); - return true; -}; - -// returns true if removed, false if not found -ArrTree.prototype.remove = function(data) { - var elem_index = this._find_index(data); - if(elem_index < 0) { - return false; - } - - // array remains sorted after element has been removed - this._arr.splice(elem_index, 1); - return true; -}; - -ArrTree.prototype.find = function(data) { - var elem_index = this._find_index(data); - if(elem_index < 0) { - return null; - } - - return this._arr[elem_index]; -}; - -// returns the index if found, -// and the ones-complement of the index it should be inserted at if not -// NOTE: the ones-complement will always be < 0 -ArrTree.prototype._find_index = function(data) { - var min_index = 0; - var max_index = this._arr.length - 1; - var current_index; - var current_element; - - while(min_index <= max_index) { - current_index = (min_index + max_index) / 2 | 0; - current_element = this._arr[current_index]; - - if (this._comparator(current_element, data) < 0) { - min_index = current_index + 1; - } - else if(this._comparator(current_element, data) > 0) { - max_index = current_index - 1; - } - else { - return current_index; - } - } - - return ~min_index; -} - -module.exports = ArrTree; diff --git a/node_modules/bintrees/test/loader.js b/node_modules/bintrees/test/loader.js deleted file mode 100644 index d366c53c..00000000 --- a/node_modules/bintrees/test/loader.js +++ /dev/null @@ -1,52 +0,0 @@ -var fs = require('fs'); -var _ = require('underscore'); - -function load(filename) { - var ret = []; - var nums = fs.readFileSync(filename, 'ascii').split('\n'); - nums.forEach(function(s) { - if(s.length) { - var n = s*1; - ret.push(n); - } - }); - - return ret; -} - -function get_inserts(tests) { - return _.select(tests, function(n) { return n > 0; }); -} - -function get_removes(tests) { - return _.select(tests, function(n) { return n < 0; }); -} - -function new_tree(tree_type) { - return new tree_type(function(a,b) { return a - b }); -} - -function build_tree(tree_type, inserts) { - var tree = new_tree(tree_type); - - inserts.forEach(function(n) { - tree.insert(n); - }); - - return tree; -} - -function load_tree(tree_type, filename) { - var tests = load(filename); - var inserts = get_inserts(tests); - return build_tree(tree_type, inserts); -} - -module.exports = { - load: load, - get_inserts: get_inserts, - get_removes: get_removes, - new_tree: new_tree, - build_tree: build_tree, - load_tree: load_tree -}; diff --git a/node_modules/bintrees/test/perf/100k b/node_modules/bintrees/test/perf/100k deleted file mode 100644 index 6f6a0ad2..00000000 --- a/node_modules/bintrees/test/perf/100k +++ /dev/null @@ -1,200000 +0,0 @@ -882568781 --882568781 -320889155 -341160286 -279080224 --320889155 -705997162 -449684024 -621580100 --621580100 -836380172 -634702601 --634702601 -832088832 -71193065 -377704624 -92751110 --92751110 -337276570 -142261453 -782401951 -962210792 --71193065 -583851649 -186781450 -107226967 -407446692 -898542613 --186781450 -321031783 -627954056 -743454887 --341160286 -15969370 --15969370 -328705229 -276651017 -93963610 -580819980 --279080224 -507297720 --836380172 -858118786 -343390048 -608331609 -791128489 -669258649 -52073371 --337276570 -696979504 -300935339 -873366504 --873366504 -126047714 --52073371 -175142366 --962210792 -16902621 -840681315 -64591580 -975049127 -515368158 -450991359 --696979504 -868347794 -507026110 --705997162 -302146343 -996037141 -721218026 -670110390 -595352065 -404908679 --449684024 -669618129 --583851649 -651915773 --898542613 -701097975 -731604183 -696142565 --721218026 -929672184 -859245822 -492680245 --670110390 -894014365 --142261453 -559290195 --669258649 -927941622 -318827068 -259245083 --16902621 -11858034 -43535523 -442477051 --442477051 -232769632 -198707510 -344179141 -901252234 -63025441 -395794996 --259245083 -281275153 -887765817 -557618443 -750667458 -767923748 -194090152 -622322010 -97042827 -448661611 -774734746 -526018163 -358451481 -851980078 --651915773 -996233746 -281145039 --93963610 -960929086 -608159307 --851980078 -619072011 -202698639 -90346035 --840681315 -179553597 -871812341 -478650939 --281145039 -54742766 -212079737 -57628824 --179553597 -35024549 --595352065 -604959908 -453909755 -520427135 -404909074 -218513739 --731604183 -465138023 -935384446 -234020533 -662109971 -868235203 -571519118 -247920540 -50661047 --281275153 -599848982 -755312173 -183147838 -343779173 --608331609 -26232866 -840774844 --35024549 -590848227 --54742766 -798855211 -864477229 --302146343 -14660035 -169910918 -78673634 -574514806 --774734746 -351128039 -508846731 -861111056 -631326560 -372910909 --901252234 -330740531 --701097975 -82537152 -626326595 -574917424 -891508879 --43535523 -365860792 -316976721 -397225988 -891256008 --358451481 -559556707 -765103368 -613307491 -769714511 -28120413 -668461334 -851502716 -930647952 -965010082 -430954420 --755312173 -107707259 -552707528 -686966260 -37490254 -462104679 -908805926 -826277866 -759266130 -595494758 -825100198 --107707259 -996125802 --507297720 -721493100 -9657590 -779991902 -884673589 -824109083 --202698639 -980391113 -404077172 -575479363 -432284860 -154977366 --721493100 -418940494 -365874352 --330740531 -861000895 -987738288 -693114024 -965155522 -341022460 -509152408 -498446489 -40389299 -385978693 -693744124 --868235203 -226434376 -615189950 -104354741 -505199264 -602175258 --154977366 -716706020 -779349610 -985038405 --935384446 -80552984 --82537152 -556580194 -915697986 -346391833 --668461334 -519115586 --693744124 -876489050 --798855211 -762907040 -104507015 -408414400 -91819841 -399727055 -264889359 -623493899 --574514806 -383298066 -550026460 --515368158 -98531505 -402275287 -465487250 -188390325 -339364777 --891256008 -426265660 -842581038 -489417076 --300935339 -199426639 -2192939 -441313887 -21473775 --505199264 -31433596 -338169451 -321111537 -886707467 -633172249 -309002676 -903415017 -8297902 -347789784 -725267848 -61768198 -91405033 -579260929 -411801317 -442273805 -393218300 -53306168 -883105809 -143658761 -6069207 -376004964 -24752753 --884673589 -451957767 -601596745 -248000798 --599848982 -255688115 -392862759 -28123778 -324883093 -777253967 -804939289 -892105015 --64591580 -615795798 -835647207 --383298066 -357304992 -10761536 -417839730 -739799707 -915837632 -728751805 -68385150 -347581170 --669618129 -171507255 --338169451 -394753461 -382467176 -916918390 -393318665 -920148915 -213348610 -715304293 -418095887 -783470944 --247920540 -354893645 --11858034 -877700503 --404077172 -917101075 -324446645 --996037141 -950815383 -218641058 -157270592 --50661047 -438874165 -763671604 --877700503 -654586949 -549664886 -960511515 -247980366 -717209545 -615666789 -787617706 -758946712 -101850362 --347581170 -515829699 -650820789 -658657995 -299080489 -120801462 -147039011 --686966260 -389454264 -557856940 -635987784 --372910909 -323560590 -582262277 -641127348 -59828063 -374365797 --759266130 -653541991 -606358438 -734256355 -234869475 --641127348 -99771394 -937081948 --965010082 -456831797 -480713877 -587954926 -656053727 -68295279 -890025475 -414935813 -622401594 -719152893 -59531555 -576023117 -829216505 --430954420 -560859760 -922984219 -351278309 -594632801 -366180313 --728751805 -151687718 --394753461 -838559126 -892080253 -849998279 -567178826 --929672184 -103078644 -838641726 -90111468 -857215217 -472207944 -729041699 --316976721 -522452164 -718683722 -407692312 --80552984 -149944903 --462104679 -600339947 -757553749 -366986827 -697855506 --576023117 -461691279 -579708297 --309002676 -384132288 --840774844 -774920037 --757553749 -986176605 -826247199 --887765817 -611291908 -432828620 --857215217 -661393953 -256804310 -617228420 --697855506 -685546590 -926251807 -556593356 -196819104 --594632801 -65682017 -873190241 -801101553 -531132347 -741113436 -384244961 -220925662 -367109723 -374344745 -893542997 -286675625 --492680245 -594122337 -901053895 -397480467 -570908004 --9657590 -52475438 --849998279 -742134356 --343779173 -284932228 -401797692 --873190241 -721286719 -518710760 -50319140 --886707467 -607122985 -297042327 --804939289 -766554559 -700133641 --782401951 -239211774 -804890091 -112592056 --14660035 -244317267 -10612877 -452321996 --255688115 -687116718 -58780599 -459153881 -473969352 -588153778 -983213456 --858118786 -401475169 --635987784 -814901657 --367109723 -664046408 --570908004 -32915747 --183147838 -820859023 -848057964 --426265660 -116500149 -24852370 -739826710 -830540019 -351069555 -2497447 -70593583 -329387992 --868347794 -880191442 -940090479 --465487250 -929608478 -820358292 --765103368 -246004230 -303263425 --91819841 -619367897 --814901657 -425550553 --256804310 -302820392 --365860792 -822064298 -90270486 -205196662 --78673634 -528468029 -24802631 --393318665 -110303855 -661514568 -837894713 -870806787 --901053895 -550467162 -709224588 --59531555 -533959683 --627954056 -928142046 --465138023 -841158537 -18390822 --344179141 -642172128 --401797692 -12456997 -577073216 --851502716 -832677016 --985038405 -348990980 -305669967 -107780727 -764697110 --587954926 -403521162 --579260929 -856520227 -959777582 -779995299 -680952178 -692737571 --607122985 -769322993 -399319924 --354893645 -990809810 --928142046 -356826359 -111650328 -529258347 -135906932 --507026110 -920093831 -395312896 -590695013 -145221521 -934544488 -721465166 -597904027 --996233746 -613236378 -685383727 --90111468 -766838442 -886050070 -795655066 -171796676 --473969352 -558151066 --826277866 -297275221 -399589432 -977134079 -941054145 -767821973 -164281471 -210679518 -329541302 -678404386 -309216443 -906360224 -707145827 -876058578 --188390325 -566507100 --489417076 -293358929 --631326560 -969358661 -372157230 -688257340 --906360224 -13813603 --194090152 -572339291 -82054331 -215576075 --21473775 -363878020 -94379627 --70593583 -144696037 --619072011 -856163341 --825100198 -529533653 --617228420 -425890322 --248000798 -791165784 -27285438 -20337621 -964307290 -608724025 -881950113 --26232866 -952119203 -872373580 -368861965 -810726706 -262637914 -490180259 -338286768 -962245261 -405299124 -348569032 -325647926 --244317267 -960021294 -211642787 -232579841 -762589185 -780282728 --6069207 -933170178 -618169977 --718683722 -657316441 --688257340 -799132250 --769322993 -987693294 --215576075 -590638062 -467025674 -280083785 --99771394 -589100388 -958841540 -967255130 -708549572 -285628567 --452321996 -383189546 --247980366 -839286034 -767077320 --743454887 -803948188 -841713788 -693051295 --395312896 -444061027 -522653335 -991103293 --892080253 -856399192 -945750264 -261907699 -184066734 -218456913 -662061183 -326773159 -730204112 -797882604 -413264459 -776053252 --779995299 -417814013 --143658761 -48524671 --346391833 -620614207 --199426639 -492624155 -774701704 -236507115 -480041497 -851249158 -306535216 -693832991 -476634678 -72028022 -221548371 -542105519 --962245261 -951128100 -314286499 --856520227 -626847859 --329387992 -143187627 -662173832 -374525549 -830080187 -810649356 -50700756 -197041710 -893350582 --425890322 -222985534 -518613716 -509886849 -985836458 -238595171 -377725487 --338286768 -73680794 -324857516 -575352761 -339023773 -512575119 -812623247 --59828063 -230853319 -757683599 -201967978 -936930151 -874401280 -657376661 -359969419 -551537050 -908455277 -210301670 -890457362 -942891145 --856163341 -585215591 -410212002 --184066734 -941059885 -829279734 -840495638 --432284860 -868615854 -961568884 -353457779 --840495638 -245503365 -230811202 -672887916 --372157230 -18904737 -144715654 -379592500 -577704620 -957397465 --61768198 -152283203 -114572671 -352401785 -548089657 --830080187 -525252015 --567178826 -697913684 --94379627 -780755323 -137247690 -359474564 -159630942 -437285643 -791941777 -233482249 -93090336 -788177795 -77751274 --983213456 -987397189 -573742769 -953455895 --393218300 -243923277 -155158588 -729341565 -501121073 -924661087 --851249158 -187531397 --762589185 -499879214 -989578090 -189439822 -298047190 -851451722 --492624155 -470942857 -769685911 -7639589 -993808038 --762907040 -546769801 -370386655 -9404948 -981509922 -173371506 -256828447 -917856510 -534287324 --27285438 -398951516 -383124303 -473858343 --957397465 -838454014 -324351762 --838559126 -864634125 -320954056 -191058796 -788102889 -993895974 --351069555 -977980868 -866488777 -321787960 --779349610 -397343692 -395374937 -309360460 -72846551 -103454621 -342131461 --518613716 -511368982 --709224588 -206257780 --739799707 -788517897 -452693793 -649989407 -869112493 -993866505 -729009033 -57645632 --65682017 -484498764 -719291835 -442816175 -825234960 --515829699 -349632577 -134472356 --374525549 -587012632 -319803774 -470068615 --961568884 -50997734 -421194941 -152869813 -872199589 --395794996 -616067211 --717209545 -478449434 -536826368 --797882604 -475143394 -462500212 --626847859 -308316197 --730204112 -578884367 -871555276 -317092478 -935313772 -412534093 -571734492 -97306844 -472300872 -920347581 --696142565 -826635220 -294815908 -232830590 --697913684 -968797293 -472876496 --324446645 -721193784 -563862956 -760094268 --451957767 -561543651 -761646868 -5892590 --550467162 -292264535 -792423029 --859245822 -576274022 -737889512 -73682263 -408521634 -883482559 --611291908 -81375569 -749437083 --68385150 -565586052 --339023773 -704519911 -946892096 -234589974 -571006380 -276704638 -749331527 -283822394 -813035707 -244331976 -891518269 -667633301 --234869475 -46798453 -674964360 -75778253 -200809450 --653541991 -434305954 -484979649 --135906932 -111651412 -401010309 --615189950 -597515650 --719152893 -718183755 --597904027 -744172869 -226289290 -888890 --93090336 -352280491 -356223951 -86869096 -236516563 -980303157 --10612877 -539246606 -622353694 -689401862 -117347230 --309360460 -751345158 -786442024 -692104736 --392862759 -750037076 -12969948 -200035177 --200809450 -256097849 -122239345 -440469949 -667398111 --915837632 -343843190 -870814579 --935313772 -590763727 --376004964 -199941560 -637341813 -981933740 -284377292 -855361154 -564114898 -837332017 -484340725 -466366544 -624132995 -967732399 -20722526 -259841766 -718011206 --213348610 -816641123 -683547292 -393404175 --520427135 -552941101 -814272665 -562451078 -718366340 --741113436 -275915037 --708549572 -759361098 -893491986 -465876522 -137700424 -207076639 -80809255 --326773159 -69244683 --77751274 -877050757 -498346028 -294005908 -836671957 -540629726 -553127769 -611477337 -282166300 -296864658 -604305678 -349059780 --50700756 -904520898 --384132288 -636758351 --244331976 -423062263 --98531505 -70197940 -630416795 -25928858 -504534043 -911738678 -745724091 -887663221 -399196320 --151687718 -490453874 -750317678 -107114140 -634282609 -144322 -625423010 --977134079 -947955479 --298047190 -398613681 -854909643 --604305678 -315402016 -266750412 -192207214 -168899603 -495065782 -972552961 -222397649 --552707528 -749587257 --580819980 -927621551 -679504567 --945750264 -919678178 -240141328 -679934439 -208570869 -922433227 -842121611 -949691704 -872466292 --421194941 -198789668 -779331535 -195874127 --604959908 -876200870 -342793583 --758946712 -416783043 --275915037 -853934643 -805849603 -337499449 --368861965 -138925118 -723215019 -390871118 -30307390 -644221112 --825234960 -186228148 -804835154 -608648630 -818887303 -42373331 --630416795 -165091208 -617771269 -590941413 --397343692 -634363480 -106406176 -164145651 -282937797 -110684244 -807424879 -481114927 -714845783 -212056729 -463587245 -125147430 -753121386 --221548371 -599967212 --48524671 -142381127 -82204273 -88927329 --413264459 -518925547 --553127769 -79824507 -652413723 -754457739 -554015287 -660798402 --509152408 -134795258 -56116432 -604945518 --616067211 -988291399 --967255130 -53377210 -273752715 --357304992 -73206672 --374365797 -227895285 -359593847 --356826359 -866604733 --220925662 -220796639 -721613386 -910677153 -591957121 -248938703 -65020663 --644221112 -533480471 -463393889 --114572671 -566296323 --795655066 -584116788 --836671957 -648060097 -558964864 -714059794 -403342707 -651506934 -169239747 -996218205 -649316313 -18211494 --917101075 -727571011 -650878313 --556593356 -194476405 -965349191 --941059885 -271874241 -617167901 --753121386 -134932460 -811561319 -470174890 -86441957 --853934643 -5836914 -926650818 -205933949 -159173219 -260760506 --107780727 -833232800 -276173281 --232769632 -769191717 -27692220 -739808639 -23578795 -96915375 --934544488 -110060773 -741335437 -940580101 --539246606 -875253287 -306214802 -157891301 --32915747 -69958530 --116500149 -484672073 -151762141 -562125654 --512575119 -789433614 -325651780 -366230043 -526769029 --484979649 -236957274 -919875381 -966947018 -291925834 -540593049 --18390822 -29346580 -479309463 --667398111 -45888341 -316483052 -372918042 -612172936 -1711334 -400832938 --56116432 -603368377 --529533653 -69027617 -406835719 -192077245 -15691489 --788517897 -147567466 --88927329 -271140524 --704519911 -355413031 -342981212 -947971470 -900512039 -125796556 -405091959 -348245953 --18211494 -304369354 -411182524 --940580101 -492163665 --933170178 -934443318 --97306844 -706477101 -687811393 -570703667 -386592609 -812976632 --749331527 -534495762 -179922821 -236180145 -220544234 -885835001 -587932011 --189439822 -57829233 -168942313 -29646951 -175624022 -593811619 -591434549 --81375569 -742289769 -657854260 -845030895 -843186368 --472207944 -139166355 -59677421 -684498631 -632081108 -187364970 -722401440 -53054085 --917856510 -633640586 --309216443 -211367840 --401475169 -996228146 --661514568 -853939389 --53054085 -10627923 --246004230 -245777344 --980391113 -33257393 --980303157 -546445580 -399739466 --518710760 -496682849 -750256980 --147567466 -523311975 -515471228 --321787960 -849347329 -674977405 --107114140 -360605297 --284932228 -405762875 -543131435 --226289290 -640099546 -517952265 -923418770 -598165779 -852144694 -368597894 -344790163 -814333938 -703717844 -126974619 --975049127 -287919418 --508846731 -797405085 -555329151 -250876078 -22328994 -278048225 -504677380 -19031918 -148199384 -752302164 -376037913 --924661087 -580457401 -642256303 -914400006 -960668669 --320954056 -408793338 -471964687 --585215591 -276967686 --744172869 -854477586 -520426159 -125570694 -114223223 -129087563 --920148915 -950671009 -194182284 -381509257 -474066744 --393404175 -824342015 -761861277 --73682263 -24017447 --339364777 -532525788 -334650128 -555462644 -137901818 --151762141 -308103368 --707145827 -472294997 --608724025 -785563302 --557618443 -192998031 -165830113 -28475661 -889961979 --990809810 -471593550 -412022644 --383124303 -200599757 -191044983 --890025475 -488721062 --53377210 -869682619 -146194857 -982314842 --966947018 -910919806 --774701704 -792885411 --810649356 -759290227 -275845015 -570766526 -483562208 -201195393 --801101553 -839190945 --488721062 -514159191 -829041686 -586877538 --5836914 -566904535 -576991092 -250035861 -656174975 -252238142 -425700029 -295092977 -72741570 -721945470 -929898823 --649989407 -437837212 -795067857 -861406898 -363736535 -976072686 -436474041 -224841336 -190544499 --248938703 -344071834 -236186981 -841546645 --372918042 -446982771 -3410806 --661393953 -460981685 -782069984 --63025441 -752789751 -618752576 -334030126 -636454647 -487257693 -672962073 -947160711 --922433227 -933097404 -19027733 -13853171 --12969948 -11030285 -760008269 -798549523 -181633419 -210620595 -766427369 --484340725 -245274963 -427920379 --291925834 -589346825 -877142328 --642172128 -72367199 --275845015 -16629393 -167450745 -865531014 --964307290 -351250932 --456831797 -849506568 -470133684 --403342707 -907876889 -759362073 -24588684 --466366544 -220605448 -956528678 --366180313 -200866896 -89190712 -160375706 --920093831 -979968819 -360890348 -976553748 -616090257 -207871363 --144696037 -437326346 -904766624 --169910918 -367927485 -882972009 -736347834 --342793583 -191560420 --723215019 -424033162 --218456913 -462353881 -889384456 -180336844 -182231265 -538861551 --877050757 -31808632 -789334104 -266856808 -982357313 -716981579 -496785494 -672548034 -513688444 -573628529 -328273146 -749510626 -635774169 --573742769 -399778979 --410212002 -659153309 --826247199 -624701372 -802464684 -929969178 -627442810 -881157542 -228965811 -139154206 -606917389 -475158459 --826635220 -908248996 -606713637 -587190630 --498346028 -567747739 -323686430 -418799865 -472321516 -428858037 -794050946 --674964360 -327535468 -63367286 -277618999 -833664380 --987397189 -304504181 -687654298 -687275540 -543861828 --29346580 -836536161 --949691704 -826693372 --462353881 -996159331 -244502246 -809108080 -226098125 -823538540 -858372278 -346643772 -787446615 -480790380 -409199186 -618600467 --782069984 -447327966 -541653598 -245566445 --414935813 -312106709 --9404948 -968047596 -535001730 --404908679 -770427369 -780066240 -534191339 --679504567 -421867210 --462500212 -277754772 --608159307 -661118198 -760865577 -509168338 -198541447 -783984155 -815261871 -827321741 -635059655 -598929352 -519382032 -820453022 -758939790 --226098125 -105974844 --575352761 -893061174 -32057847 -329895630 -766556655 --861406898 -32547399 -128479841 --814333938 -571203418 --519382032 -581420529 -288434537 -830257075 -291214138 -820641269 --470942857 -29400317 -512071878 --65020663 -647937936 -934214528 --282166300 -94004747 --452693793 -31834841 -968024943 --719291835 -63112065 -872539928 -859039259 -980704356 -687105227 -286059624 -218688529 -364904646 --384244961 -479153199 -258227234 -541399357 --767821973 -71332134 -918336192 -483427055 -592732160 -56378790 --742134356 -172272696 -794239654 -126464435 --69244683 -716361783 --152283203 -765232700 -305509783 -649037805 -845184374 -815288614 -397626703 -208485406 -510541033 --887663221 -357468933 -214156418 -584921829 --523311975 -653279374 -873503192 --117347230 -178743168 --829216505 -82763601 --473858343 -954819027 -541059011 -242513746 -533551873 -154968490 -897340179 -507371083 -709305068 -744447103 -888176087 --606358438 -239133853 --875253287 -53893312 --876489050 -851011842 -336836729 -27913600 -633065726 -741916602 -409917212 --809108080 -414622960 --587932011 -965662519 -222181717 -236740670 -404977314 -241120324 --892105015 -792426171 --693114024 -210888706 -582366426 -726395123 -605761365 -918818883 -13416316 --624132995 -505469748 -625913484 -319563753 -985351654 -535307591 -232210756 -133217414 --370386655 -985682501 -927621593 --2192939 -153916917 --168942313 -475584042 -18590109 -408121177 -954452745 -754291761 -25745526 -963922564 -583570892 -796467299 -221627776 -522049737 -552989421 -117561756 --822064298 -373546442 -509988387 -887470838 --409917212 -461768956 -96349816 -773121866 -797381146 -44650306 --186228148 -892632994 -818866508 -181438742 -827866158 -601333937 --916918390 -481869719 -96376727 -942978706 --328273146 -599099347 --224841336 -370837859 -240116582 --968797293 -618527571 --13853171 -498725410 -87946185 --977980868 -221433201 -102216008 -138275771 -735021982 --561543651 -126166764 --414622960 -738821947 -191341376 -550904075 -394019874 -820438469 --839286034 -442986495 -619237985 -74178447 -669734169 --804835154 -308940663 --483427055 -671078755 --813035707 -305919922 -958567695 --18590109 -28567668 -874215143 -394598128 --687811393 -483796234 -714865280 --576991092 -473531708 --650878313 -961074183 -472438129 -328739303 -971595723 -270286603 -731657974 -377664785 -65956407 -281705104 --394019874 -701984480 --45888341 -25207351 -612777382 -48601577 -437781910 -743033934 -462135907 -886813214 -556203233 -274019267 -937728972 --377664785 -857997512 -651758077 -809845793 -544431271 -744775366 -733246670 -315920241 -110810642 -963418850 -87811003 --557856940 -872084129 -757711135 -786923741 -472987756 -113899633 --442816175 -607688855 -661652029 -195880508 -831088570 -984339098 --349632577 -523961084 -953628708 -284535124 -332031046 -405897842 -526774271 --31834841 -39169579 -188265047 --284377292 -376268081 -970561125 -739206444 -553886985 -217123563 --590763727 -382486659 --470174890 -122152590 -532163973 -79943923 -438331983 -714612844 -365436456 -335686504 --425700029 -259772849 -52841521 -520713310 -76598838 -645942837 -137418592 --874401280 -271056171 -170770613 --651506934 -547170672 -810582474 -496347965 -936817086 --565586052 -886082924 -99315873 -580968758 -98916494 --725267848 -297590459 --548089657 -983633130 -891201562 -915918300 -420962194 -10180709 -884109939 --815261871 -785016631 --314286499 -77466751 -953234075 -298644366 --142381127 -13257846 -138085491 --271140524 -488165356 --171796676 -772371842 -157871657 -276950443 -801528910 -384721090 --757683599 -413301360 -94130844 -985901009 --820641269 -560099701 -101166644 --212056729 -747538007 -841533924 -23728920 -872100602 -224786744 --758939790 -379463895 -713409317 -203319122 -357541440 -668947403 -52295786 -912581450 --191058796 -741618937 -529404613 -121665113 --829279734 -354549755 --981509922 -876263633 -794276506 -310091217 -741615415 --617771269 -117301405 -719912748 -877271727 -707314264 -455531101 -908483583 -593291369 -838910469 -796342682 --286675625 -159708859 -603639864 -893602930 -23106069 -103333381 -125747374 -855281972 -335736862 -271858990 -89611125 -315104312 --749510626 -933241236 -555228912 -454730639 --721613386 -802528712 -589918447 -344155025 --39169579 -736396208 --492163665 -957407857 -147316764 --989578090 -30445059 -233939171 -271494664 -721838792 -666659870 --159173219 -312252029 -419963340 -44666071 -553214409 -241441285 --580968758 -994456467 --409199186 -216571515 -899023972 --27692220 -262117549 -547454769 -987576945 -440299148 -210392357 --707314264 -756561450 -866363228 -962764707 -176030459 -595169692 --737889512 -373942690 --981933740 -955895073 -683190584 -160662726 -863376395 -832785480 --769685911 -851620027 --525252015 -399491969 -381494980 -199004564 -783718970 -895688361 -956314930 --233939171 -911783323 -901291989 -422900174 --19027733 -835016103 -965629383 -993981027 -87643494 -693218173 -604765115 -560717985 -744282390 -563807632 --864634125 -839716110 --777253967 -405661673 -441575919 -532446548 -420453451 -661530609 -569597023 -460760860 -81814907 -695247757 -839014789 -614784722 -40424353 -514042849 -906673976 -590366358 -701405995 -409979354 -165975667 --805849603 -349906951 -847310086 -672907217 -877890876 -192412922 --146194857 -699945827 --226434376 -677602134 --786923741 -223520830 -319868568 -437877127 --210301670 -336755311 -233300874 -779479926 -325741695 --288434537 -779136681 --297042327 -3381876 -470084801 -682777826 -494935062 -160655137 --230853319 -15002420 -273923031 -37513021 -383187871 --182231265 -344961021 --2497447 -718712932 -844974809 --28475661 -563381325 -945351165 -259364940 -571185462 --490453874 -122345310 --743033934 -694995462 -914688105 -544460814 --606713637 -319215546 -221733151 --908248996 -470164845 -406924567 -825857930 -406352433 --859039259 -56493858 -14099748 -479212759 -578547088 -877993668 -15449121 --700133641 -356239856 -723958143 --531132347 -783681804 -11501784 --10627923 -750289950 -968279209 -324390041 -346702505 -136289350 --192998031 -853024185 -191315529 -854461228 -801783305 --208570869 -375835117 --715304293 -947814577 --908805926 -321184822 -955285634 --496682849 -541732355 --960668669 -875260695 -807781976 -869378898 --480713877 -38622136 -693598285 -603698152 -494957541 -65527000 -923048702 -650979914 --153916917 -478742422 -25245394 -390304030 -251084811 -224994051 --472438129 -964971788 --517952265 -232829998 -276328104 -809188385 -209481441 -186088170 -888974741 --577704620 -785962994 -958508883 --138275771 -606825456 -941439467 -778932228 -16939211 -921826014 -500044923 --947814577 -166864403 --586877538 -15397070 -73353575 -838591835 -989047717 -827966817 --134795258 -125195306 --941439467 -782558216 -17372908 --447327966 -357187001 -795006044 -556965541 -628877250 -320984218 -113584767 -500755560 -546896777 -939950317 -840360381 -953301493 -474738071 -918951984 -599649689 -811189839 --271874241 -797101972 -557415758 --741618937 -395309031 --384721090 -7771696 -938096617 -868473060 -698306532 --297275221 -57530093 -756638933 -463715653 -72324643 -310137426 -568382863 -638275029 --914400006 -393998289 -69560306 -456757873 --58780599 -772474935 --904766624 -86049900 --522653335 -388065197 -209765239 -864129601 --96915375 -273747769 --553886985 -669677536 --996125802 -25350295 -732335573 --236740670 -439165977 -304118732 --245503365 -255355406 -584767207 -392817369 -401322571 --498446489 -29864572 -940569393 -674905352 -497413279 -822750358 -969043422 -941245596 -582572697 -497517544 -414370870 --334650128 -101066129 -459009658 -568170172 -990390209 --861000895 -521817737 -868040041 -17012927 -223586462 -828827633 --366986827 -207999579 -493377151 -475636811 -504193050 -40421362 -7488775 -574813605 --872373580 -259998218 -638169098 -3227636 -64873309 -285225882 -536046093 --287919418 -29035406 --5892590 -888397855 -903513930 -2182601 --86441957 -336069557 --72846551 -97676748 -646013148 -135402565 -953187211 -107225387 -383809621 --672907217 -178323926 -931859403 --262637914 -714685795 -942972052 -149353593 -829093610 --504193050 -144562713 -33949708 --420453451 -440624160 -979654751 -686914315 -807545660 -242015220 -396893266 -845047531 -297739285 -262471119 --53306168 -833486840 -855058188 --562451078 -103288669 -940921325 --953455895 -165443911 --277618999 -130383377 --573628529 -371026239 -556830767 -96971919 --832088832 -75262112 --50997734 -797405655 -398810410 -790802900 -813150148 -474316450 -581071529 --812623247 -308610652 --871812341 -582494491 --87946185 -214483313 -495532035 -319543123 --479153199 -765839776 -108434668 -936555977 -632210636 -474170164 -659539475 -356955984 -422534833 -116188811 -975670821 -767244906 -317642527 --200035177 -49928153 -492307322 --591957121 -323691063 -605730616 -22603418 -866953316 -427095026 -716447115 -954255424 --797381146 -390047281 -42091167 -887250151 -591072183 -760975706 -851746400 -519490069 --383187871 -410121414 -4643049 -849747800 -894003889 -949201933 -178866923 -179960367 -820118507 -479335218 -928386979 --891508879 -268404537 -623880770 --888397855 -501863983 -645959237 -297315287 -287869223 -86350629 -694912399 --754457739 -478685088 -715196339 -598510478 --851620027 -903909626 -696541018 -866188811 --137247690 -350194930 --7771696 -944259184 --767923748 -510322503 -650927625 -149017431 -127430394 -482353738 -415865907 --814272665 -833141806 --983633130 -725569637 -705407576 --911738678 -914329396 -266265787 -421191439 --412022644 -717485526 -458685615 -940380958 -332413643 -716394685 --210679518 -364750358 -221709179 --234020533 -747751676 --441575919 -83887741 -501007338 -515865661 --169239747 -951790014 -725908362 -758536388 -779143351 -573070702 -660001544 -126132639 --223520830 -789189384 -65524001 -429017269 -429273275 -121244107 --849347329 -202615690 -720135418 -574227419 -309935608 -129008737 -704471113 -636517153 -17058739 --613307491 -703051142 --600339947 -472409598 --541399357 -343880333 -862834479 --424033162 -788298235 -871517047 -340455211 -147117066 -982125390 -184824958 -934247333 --236180145 -84249435 -698351750 -891053197 -255058654 -494198546 -694979498 --532525788 -416837357 -291169813 -583312409 -910986675 --980704356 -662998400 -539623975 --718183755 -370982863 -963325619 --346702505 -674707768 -320252693 -396662339 --822750358 -709672802 -187178719 -658045132 --584767207 -659419338 --559290195 -780797887 --526774271 -919191281 -521657930 -667193282 -719317081 -849547741 -997699575 --607688855 -617728054 -786779918 -373396508 --556203233 -190076106 -830117859 -269761537 --667193282 -127698459 -662603322 --910677153 -109960511 --90270486 -746143758 --521817737 -262227290 -440797371 --86869096 -875986045 --454730639 -175913252 -987372145 --27913600 -647720558 -214474260 -327249181 --985901009 -265844442 --818866508 -230902026 -711743572 --844974809 -688232391 --559556707 -301697884 -979349942 -874100705 -855903294 --825857930 -164228576 --760975706 -247233774 --519490069 -337593985 -249206776 -747866655 -705104940 --455531101 -341086171 -967860928 -10987453 -553871138 --682777826 -522662150 -971458288 -216973095 -930548175 -179313028 --685383727 -426643637 -231241978 -242965547 -214482781 -901171853 -389545961 -57648958 -151512537 --623880770 -946406036 -820591058 -238587085 -346810677 -597640977 -624114111 -254660548 -560286857 --772371842 -414353913 -988637604 --560717985 -835696123 --792426171 -197917679 -221581874 -721674307 -339816975 -578684008 -697651392 -967637966 -189862108 --192412922 -988374711 -697020284 -856277234 -234632095 --48601577 -997667814 --841713788 -395987679 --766554559 -464947906 --195874127 -208146971 --951790014 -814735400 --414370870 -493709024 -253242138 -517348295 -995860543 -590717905 -10709155 -448034589 -647669420 -92171961 -884140293 --636454647 -496028421 -984776076 -265478083 -497821593 --772474935 -739003683 -19973952 -404091398 -768017777 -332744747 -333081813 -100485780 -983770781 --394598128 -9967119 -398391093 -738460407 --293358929 -302141783 -815071486 -419617024 --581420529 -752638759 --638169098 -290589257 --833232800 -653150872 --198707510 -669552267 --265478083 -189533426 --649316313 -503322474 --128479841 -674965125 -437917601 -282862071 --10761536 -517671509 -195586327 -301947683 -22857791 -437301229 --591434549 -233538793 -291318865 -864006205 -652536822 -917305817 -622733850 --402275287 -786539695 --571734492 -357502854 -61500467 -814304777 --144715654 -602449125 -314733409 -158985456 -95095538 -106728231 -525461895 -606538082 -686475389 --606538082 -828833635 -814592253 -873436593 --555329151 -853114040 -773797193 -166804174 -568619982 -742666786 -759324911 -637954119 -707334526 --211367840 -314579170 -646078431 --195586327 -571867008 -81343658 -740871923 -177979750 -821177799 --968047596 -473804936 --795067857 -48505070 -285385033 -48999078 -218942955 --635774169 -935855540 -21322315 -307477916 -21430469 -126891626 -435561654 --744447103 -887231808 --608648630 -942594282 -648745139 -119447698 --889961979 -401666658 --317642527 -249973029 -485085626 --716981579 -783772410 -843484304 -485139794 -391025497 -735417632 -825419500 --75262112 -677114030 -113168919 -636802862 --77466751 -728266006 --406352433 -372241254 -64864079 -656934571 --987693294 -355441950 --901171853 -232765057 -20312798 --165091208 -739785139 -623654109 -737507131 --830257075 -75052243 -439413142 -151975653 -872630358 --718366340 -843010668 --597515650 -452668985 -261055277 --195880508 -579805787 --929608478 -343311213 -634991110 -435310758 --296864658 -528887048 -80913800 --472321516 -940134907 -922545148 -483228673 --888974741 -938783696 --220544234 -602119976 -194743764 -944743916 --687654298 -977138209 -72930853 --697651392 -968342820 -597527932 --389545961 -984810135 -384784512 -464854030 -82773863 --79824507 -469295058 --692737571 -959652333 --657376661 -745585070 --703717844 -54685147 -457295406 -391660778 --853024185 -869393712 -806664869 -387408539 -619833306 -154998626 -884356591 --721286719 -591262845 -655532634 --622353694 -192857919 -139350983 -698168775 -676737594 -574660063 -289381776 -13615189 -580762443 --221733151 -883092357 --401322571 -567430378 -559188447 -713662420 -727621403 -708028473 --194182284 -781012106 --283822394 -415355814 -901550970 -381296713 -104095588 -430768594 -810137036 -62808809 --302141783 -828478969 -815081113 -795860516 -746883048 -489938677 -241107524 -223435500 -318833558 --24752753 -26939631 -151932800 --721674307 -159874291 -433955401 -992577480 -540574804 -282561289 -698561864 --7488775 -627900091 --884109939 -464713073 --50319140 -22798708 -299652288 --588153778 -37749944 --597640977 -864748367 --864477229 -648383986 -523692783 -463100644 --484672073 -78049275 -286556391 -146766345 -342727775 -634749397 -692278534 --301947683 -220857010 -552278799 --713409317 -382609062 -123159940 --727571011 -63107803 -222402513 --693218173 -605592725 -99827145 -502500528 -801757482 --255058654 -169262968 -160153257 -769270212 -589291142 -830038779 -63094784 -331750830 -279465681 -394666844 -828656163 -151073776 -603101885 --927621551 -957874617 -908346345 -132815241 -551891090 -832549448 -793807741 -270214099 -930811578 --996218205 -57520067 --674905352 -123449510 -813801713 -207466061 -783906755 -782102279 -685367861 -758879747 -536659864 -279524697 -497823055 --942972052 -916300255 -754424237 --335686504 -735259690 -41473167 -921316796 -45918140 -675819091 -395237442 -104219035 --573070702 -1116947 -87418602 --869378898 -725808236 -628830307 -265886649 -233507736 -878530296 -144919701 -962277238 -892891461 --634363480 -977679506 -401369290 -261652588 --232210756 -277744058 --662061183 -226838488 --594122337 -391795120 -350992356 --119447698 -850669063 -258476592 -76975408 -127582492 -998551520 -258231833 -894201306 -941060587 -417499846 -808920768 --760865577 -486416962 --540593049 -697186002 -880929435 -899491843 -547703057 --216571515 -722787956 -210056298 -994638666 -589165450 --701984480 -174813368 -903030147 -690913226 -505084739 -832891945 -667069512 --655532634 -864339043 --512071878 -754400975 -696279761 -295447127 -330897264 -394562360 --799132250 -105904172 -522916727 -429715642 --810726706 -336591904 --73680794 -115205340 --406924567 -319982796 -217369247 -585364725 -134692451 -853361534 -871151181 -501474596 -872696953 --871151181 -863415789 -212159105 -845755071 -505894532 -10053980 -528859735 -873886609 --993895974 -307876486 -163019717 -1250123 -795677840 -303473784 --21322315 -652788745 -51870512 -270948038 -729200098 -62387855 -896903824 -208931326 --463393889 -489974202 -444100439 -381569389 -819345722 --486416962 -158001188 --472294997 -36007833 -48671074 -67810358 --628877250 -892376685 --31433596 -457266367 -886895198 -126550274 -316915478 --343311213 -611124690 -170823266 -620346027 -905610881 -58311972 -602101627 -689420312 -134973294 -973754824 -222614136 --560099701 -661176260 -633640663 -501630137 -193031996 --409979354 -701715734 -967987448 -35771255 -872400360 -444836218 --157871657 -756877821 -276196622 -367460770 -526130876 -77261552 -547012946 -803304811 -849134044 -389969836 --214474260 -20512210 -432582534 --503322474 -474772138 -167049910 -459594567 -422921657 --110303855 -512852860 -198999883 -67355321 -2858777 -342733574 -996116331 -624878293 -418683085 --744775366 -438848702 -661882208 -846859885 -928796263 -560722698 -50121041 -830153924 -293290629 --386592609 -111276504 -483704896 -83952447 -320857039 -833189398 -418990276 -860059595 -448336002 -517111344 --344790163 -31793461 --739785139 -391091489 -287058420 --915697986 -221198011 --933097404 -436117206 -46354403 -599931030 --526130876 -447638030 --98916494 -760344904 -302768906 -339163854 -151733813 -835879606 -11686376 --783681804 -534824596 --154968490 -355017148 -235448853 -198195036 -937096654 -152580025 -115988877 --293290629 -657651709 -940355966 -649111350 --849747800 -381903184 -427541211 -985035860 --444061027 -18158412 -719310567 -585954609 -903980019 -446775655 -518452624 -193922417 --689420312 -24066629 --319543123 -901033349 -646720802 -834518682 -324697122 -210775957 -517267590 -785094462 --854477586 -303063939 -330040380 -226823084 -650708550 -266572473 -448244738 --540629726 -128233322 --7639589 -117488027 --212079737 -416799819 -992613079 -209451759 --788177795 -954424915 --321184822 -813728339 -978071840 --560859760 -61649340 --729041699 -206756499 --41473167 -648991984 -394486449 --576274022 -539694252 -898718352 -174811574 -75720070 -412497727 -522420959 -280304125 -622900940 --905610881 -52350163 -70625350 -888834858 -823114739 -217680961 --940921325 -108689458 -280439180 -585727116 -437843593 -46865633 -877419956 -149800301 --709672802 -754487026 -323289479 --116188811 -578678648 -496402255 -880501977 --89611125 -119597866 --287869223 -885482166 --767077320 -786684854 -87006140 --192857919 -993562342 -934584277 -517938653 -355657383 -600914107 --807545660 -312245067 -469181621 -153491099 -561125008 --872100602 -248544969 -464276938 -990701917 --779479926 -137871982 -950563747 -565678950 -271006875 -692656823 -831106853 -842713604 -976123866 -411008254 -43561628 --334030126 -456586159 --333081813 -319392871 -240694077 -943263694 -496439059 -620537711 -484672015 --558964864 -635393588 -514724908 -229640275 -119763903 --656174975 -770969730 -435136728 --209451759 -342735679 -299964226 -102668689 -401112579 -126242256 -242361638 -192648836 --40389299 -423324775 -702878390 -659394298 -589089749 --846859885 -941345403 --509886849 -444196785 --218641058 -223952354 -798418573 --509168338 -16659715 -198350873 --22603418 -590061128 --405299124 -894877551 -494769600 --22857791 -394933769 -4665425 -583732070 -49311238 --686475389 -773596532 --786539695 -364584408 -654156849 -334463359 -964272215 --364584408 -757104249 -257327118 -392105816 -786774679 -962608535 -983554068 -58427500 --971595723 -150965261 -933967097 --993866505 -908432858 -540593670 -471088600 -372914550 -298676313 --666659870 -143867496 -577996830 -300971814 -838931543 -66917747 --330040380 -679779013 -570279734 -819297642 -34667272 -161720074 -203744140 --130383377 -528841538 -426791651 -304969644 -186766293 --826693372 -307114575 -74020072 -160054361 --40421362 -264287234 -621547257 -481430758 -207639402 --226838488 -834317156 -678706857 --133217414 -462093571 -211447469 --206257780 -53164821 -916921975 -89168138 -782582259 -534879708 -463908161 --479212759 -5511622 -594641846 -397332338 -506510891 -173825110 -844366564 -715750172 -180318521 -91507414 --397332338 -851275767 --954255424 -771309865 -112638206 -628579293 --838910469 -955066319 -52225545 -929262304 -361789731 --568170172 -450279780 -833289684 -755955040 --139166355 -379524786 -663184804 --25245394 -145927721 -189928955 -906305068 -862069388 -801785108 --662603322 -165455639 -915671117 -36249237 --353457779 -648558907 --319868568 -96110792 -413362818 --746883048 -773413067 -756365701 --37513021 -422817312 -649092695 -742181725 -404443537 -591192431 --938096617 -13850716 -419495902 -753837895 -584017573 -357593114 --10709155 -504341989 --399778979 -248074560 -632678100 -207927468 -427205175 -18340514 -167452174 -711137227 -464823483 -903939548 -177567957 -74542386 --792885411 -902378019 --467025674 -755332972 -511288411 -833202096 -273604571 -392169102 -877684862 -38232188 -802662595 -638174004 -875915384 -938900846 --473804936 -598891301 --668947403 -582787540 -687744347 -855235838 --226823084 -854316236 -316477872 -287895684 -307797161 -796930463 -994321230 --663184804 -188815906 -10417004 --474772138 -415953138 -969522101 --187364970 -59098836 -574334994 -253477539 -124409163 -30865267 -840077313 --618600467 -698444387 -911252219 --404443537 -381482860 --48999078 -91685920 -961449098 -137027690 --210620595 -19638461 --285225882 -741503345 -524614328 -222147573 -312636748 -978472024 -283854721 -322015979 -498698415 -246820392 -381602715 -821001301 -623907094 -136023655 -983279611 --952119203 -237809722 -760222791 -211823163 --242361638 -48708691 --417814013 -377361650 -358930744 -382394576 -216861953 -595189525 -395120556 --158985456 -712130579 --634991110 -922341830 --69958530 -318556296 -145980231 -457237324 -859580722 -872844461 --394486449 -23544930 -759422610 -189703943 --651758077 -529469434 -862786705 -368934109 --759422610 -957214842 -185594661 -421690080 -921893680 -813809431 -624001170 -308043686 -201106076 -989617476 -293789432 -169910973 -666372501 -521328996 -531602229 --821177799 -258448453 -771890938 --580762443 -520577672 -747138034 -168213145 --14099748 -640256171 -709090371 --497823055 -790023220 --250035861 -33502789 -35546357 -661283745 --671078755 -175548664 -31303052 -521895364 -509480513 --873436593 -299622755 --675819091 -234882433 -602979175 -944531384 --192648836 -532688834 -87490476 --719310567 -716074370 -694697408 --210392357 -182360828 -337963813 --898718352 -708563787 --381482860 -612332727 -437774774 -905519211 --947955479 -961389326 -251204431 -155821380 -54543513 --297739285 -62131845 -989844293 -565082919 -221019866 -408931097 -464274598 -470238865 -792694777 -181765234 -543996675 --168899603 -981708871 -739970523 -725431981 -318489373 --540593670 -166225818 --2182601 -419698714 -879699250 -814794915 --208485406 -698432226 --550026460 -355561482 -669167440 -466056357 -14693940 --237809722 -3744722 -700974635 -454149609 -441487170 -515598496 -76661091 --714685795 -665272057 -180759752 -469021306 --201967978 -773920045 -186369391 -494689047 --497413279 -290623583 --893542997 -944196968 -82713608 -514815950 --251204431 -414556893 --399727055 -532063693 -513121820 -72660784 -555148194 -577271369 -979283165 --227895285 -871822193 --339816975 -672208171 -616580731 -407842069 -596869358 -700477664 --750667458 -510534178 -474276392 -15286435 --18904737 -691064415 -397928607 --125195306 -652602328 -629860545 -471803008 --908455277 -472374399 -805691272 -897919903 -876910874 -66438894 -255532197 -740686015 -405049161 -347133281 -632459755 -704089104 -868388700 -812777510 -286809893 --995860543 -590537720 -85267457 -623007276 --877271727 -45844402 -467148113 -944727862 -391841444 -711728847 -557774662 -860773083 -50600460 --11686376 -603568934 -70991318 -591559641 -657033783 -142541683 -162875364 -792689790 -705583497 --863376395 -314819994 -336758368 -199757249 --713662420 -603758394 --342727775 -563505402 --517267590 -585968597 --280439180 -140338994 -425137308 -426044812 -734885876 --392169102 -99682701 --21430469 -416630993 -834849368 -765800151 -563321339 -177897799 -829589837 -753640028 -822800242 -19066545 -785984183 -665558330 --965629383 -510840693 --934443318 -84729771 --877890876 -379635027 -969482711 --61649340 -318628570 -65150276 -615807101 -406182314 --923048702 -915394566 -636657348 --983770781 -435889008 -53917240 --304504181 -901726386 -437471405 --336836729 -900483387 --587012632 -979029258 -259251852 -855553936 -333000402 -319317230 -336676494 -885951317 -376212165 -355796489 -139265316 --674707768 -58501279 -276087116 -807176670 -845691043 -382901081 -949456038 -782963667 -559378710 -580864477 --969043422 -962072320 -339806811 -101784897 -189532972 --754400975 -935468788 --505894532 -534058057 -558033972 -536928103 -666538436 -130555320 -130542720 -706094451 -617465315 --271056171 -59932283 -740551268 --792423029 -395942219 -59347138 --53917240 -907360426 -554793891 -651146903 -665026834 -311437270 -160329098 -747908472 --885951317 -240019496 -434943724 -364641432 -627594913 -460952376 -955747836 --955066319 -481575907 -103919735 -37043624 -776003364 --336591904 -709825422 -147317381 -48907432 --421690080 -771485612 -114408883 -927045926 -18633480 --679934439 -385647622 -611261270 -838841831 -668935300 -893201350 -817134728 -135908912 --465876522 -664572997 -517845871 --457266367 -131419074 -959883506 -549971021 -624400673 -468052875 -19356455 -508674300 --478685088 -533331706 -383213992 -3202625 --926650818 -573438685 --464713073 -709859184 -914104724 -216931738 -849469755 -275832193 --19638461 -469821300 --705407576 -148187760 --86049900 -611919718 -425045926 -45790742 -137990447 -474534198 -439184425 --520426159 -907776105 -520040575 -945789519 --199757249 -598328043 --54543513 -882870319 -64823660 -913209967 -339646880 -657591548 -51737158 -937908465 -749070569 -971873876 --801528910 -648566496 -704181040 --567747739 -185964890 -236644331 -195467725 -815969702 -495343681 --507371083 -641596291 -926712576 --814735400 -796949846 --914688105 -104510449 -295584914 -98585966 -299941624 --82713608 -917287514 -786344014 --852144694 -114396495 --619367897 -55286149 -677959250 -959440838 -481408584 --691064415 -721182603 -979248944 --302820392 -855928609 -565357721 -857631334 -24271561 -874148293 -633245910 -368964177 --201106076 -785846305 -537793627 -754781573 -463298241 -41526347 --814304777 -918283423 -851417454 -805032575 --914329396 -372083992 -893189924 -517112449 --397626703 -912613277 -962259090 -267908734 -449875569 -776314220 -935031677 -363395718 -658384440 -871496973 -916972444 -686801164 -375688515 --244502246 -849435607 -28196024 --482353738 -962242436 --9967119 -852367638 --372083992 -191382020 -966190351 --963418850 -849291318 -644452569 -758350537 -103332605 -379621437 -957774806 --228965811 -91451515 -30862368 --323560590 -807928142 --658384440 -418486042 --69027617 -209434031 -338509121 --450991359 -563276228 --406835719 -763104357 -459872562 -198088286 -116048356 -258651240 -971665129 -909385294 -402460770 -781637533 -227013998 -401361912 -283526714 --988637604 -765398295 --718712932 -328011920 --510322503 -132392520 -679141022 --565082919 -429059111 -885320677 -583454337 -21884214 -615518609 --37043624 -270600621 -785571546 -370042054 -785113708 --802528712 -271499601 -878492426 -190642171 -163137453 --364641432 -214022252 -386840349 -759104907 -929106849 -963076093 -790237335 -627013933 --796930463 -185599825 -165366023 -541164426 --87811003 -916020709 -532995252 --585727116 -147803194 -844788773 --684498631 -219274507 --504534043 -884417905 --764697110 -976460691 -945029564 -971736433 --383189546 -559258139 -649970984 --241441285 -112670022 -756558060 --855928609 -964352461 --747751676 -862767569 -83113430 -213099757 -274584966 -960770975 --137901818 -875080241 -293297558 --319215546 -899183769 -721708208 -414836028 --127582492 -923797383 -452592859 --667633301 -578919279 --540574804 -556543755 -112906163 --151073776 -852088606 -456456841 --590717905 -34070328 -958217262 --958508883 -375082116 -764763638 -470456072 --669552267 -198134267 -403809636 -593324366 -720112255 --418486042 -227681021 -961453985 -983301952 -406956946 --506510891 -820176430 -706558157 -976447019 --394562360 -555717058 -277548080 -523719168 -487770295 -778455206 -17427651 -793008590 -225613736 -470447721 --894014365 -743279312 -547910796 -622624971 --85267457 -909298366 -669364224 -608945994 --91451515 -870047185 --599967212 -425846142 --756638933 -710415839 --640099546 -177115609 -596265664 --64873309 -932821317 -231265135 -750550009 -999862012 -624250971 -947341559 --293789432 -379016541 --579805787 -170708955 -636510143 -115902778 -203107045 -843937958 -997198410 -573123682 --222397649 -770300383 --336069557 -627684238 -210822062 -299256166 -586326557 --795006044 -365744281 --944531384 -114422448 --417499846 -860196483 -344599976 -953544627 -806335800 -539105270 --770427369 -889052973 -168429314 --571006380 -730259560 -440950437 -250943308 --109960511 -368616870 --67355321 -226921900 --426791651 -827414480 -85770379 -835512166 --962259090 -444853178 -820304878 --807176670 -628247247 -387546906 -745132736 --415953138 -503409376 -547211369 --128233322 -710815794 -643974816 --514159191 -153179555 -763985503 -231177621 -858758416 -216696559 --291318865 -150703916 -511367686 -201227811 --459009658 -448929521 -389472626 -641969222 --70991318 -863999230 -60887655 --194476405 -989503523 -379002183 -784907079 --531602229 -563140440 -429486634 -612002590 -823772372 -469551197 --98585966 -725483994 -646467005 --190076106 -316955764 -978646629 -636381695 --648383986 -759804952 --181765234 -956430305 -581080254 -230625815 --282937797 -182770470 -618485864 --444853178 -198825135 -424829378 -428799312 --260760506 -485849037 --126242256 -450524302 -958869272 -913422060 -347309136 -200019758 -683975837 --851451722 -32307288 --539694252 -487496981 -625795094 --91507414 -469364701 --781012106 -814494201 -998780244 -937351648 --918951984 -366511684 -555585898 --245777344 -867988513 -169384047 -690148034 --661652029 -739728479 -552709189 -21684037 -95149287 -217544022 --33502789 -929985835 -812358480 --456757873 -872315424 -445384891 -59522151 --893602930 -450153247 -208622735 -865445934 -112422135 --994456467 -976570771 -70560866 -428990586 -969382353 --835647207 -575556082 -801949767 --521895364 -384445279 -627253144 --501007338 -126952332 --468052875 -246534487 --146766345 -234310329 --446982771 -467833838 -60686885 -419976996 -382465232 -384901340 --680952178 -718903859 --25350295 -275730525 -90083394 --532446548 -389798341 --907876889 -434579493 -431006035 --721182603 -597397205 -986689858 -661405609 -821226117 -829663561 -986885575 -61763545 --694995462 -273535894 -915794826 -570684636 -605941214 --57628824 -163943158 -509956480 -577421527 -695332052 -471669776 -664246358 -457737299 -120611130 -891874809 -382614535 --841158537 -963623975 --31303052 -356101390 -434560406 -76793783 -71998239 -811601727 -58973873 --574660063 -142266209 -684551032 -181133098 -757188138 -204099154 --714865280 -754993141 -365033216 -701722598 -644443678 -736278713 -125098873 -52876910 --698168775 -346814618 --429273275 -933313497 -640302950 --833664380 -347564015 -716979113 -23545445 -964770552 -800858815 -798918980 -964565398 --711728847 -463704751 -262846700 --71332134 -232570525 -217850500 --568619982 -648574044 -676511653 -228575745 --756365701 -215695424 -865614486 -899969007 --158001188 -731600493 -187488812 -501531100 --841546645 -329165193 -931196692 -976033876 --788298235 -596865651 -422006720 --661118198 -280268919 -4347277 -469961678 --273747769 -214165445 -546634492 -113023127 -534187907 -263968941 -106294632 -805881027 --611919718 -545330524 -144637051 -805645775 -739176383 -679972383 -410736896 --961074183 -831690922 -455103837 -624505005 -496394679 --435136728 -739041904 -480098052 -741376060 -550672087 -726272992 --411801317 -598475144 -935915580 --15397070 -970379612 -221166076 -342598577 -693098898 -777266686 -752207883 -695820128 -575702593 -440311177 --547170672 -254722899 -484029066 --405897842 -671666620 -563147355 --475636811 -290108389 -626982394 -201910432 -967284844 -612160284 -681721850 -310472167 --514724908 -992102758 --866604733 -960876718 -677311535 -695517119 -526226215 --747908472 -247720972 --864339043 -61963263 -686793292 --123159940 -268673063 -139964883 --875260695 -103836085 -804312402 -558676565 -648891782 --613236378 -126751000 -392886880 -22510751 -795207057 -502601110 -824522855 -163331575 -51536174 -636715885 -39630730 --965155522 -849468356 -207975416 -335922756 -625986622 --19973952 -196244482 --438874165 -27002181 -17448068 --667069512 -222533892 -648041705 -397100784 -797622514 --636657348 -397480885 -384790766 -566272927 -483272186 --160662726 -82342762 --203107045 -995344707 -333591914 -36843442 --897340179 -315098588 -668820048 -719821203 -603047742 --721465166 -161174241 --312636748 -180383432 -315885186 -925736789 -317304369 -730275293 -626112478 -901754667 --459153881 -638153437 -593153478 --831106853 -70929772 -878355985 -839438695 --818887303 -617819121 --293297558 -110552745 -692978855 -956832640 --824342015 -111610368 -141320676 -805802750 --410121414 -98572227 -47233619 --611261270 -332754701 -756325273 -432983245 -633375172 --598929352 -527377587 -460944808 -574086307 -127953770 -498902220 --715750172 -313753377 -165625826 --891053197 -715530016 --328011920 -20372228 -202575447 -940795477 --23728920 -795744253 -537820642 -261213566 -258501056 -534804006 --385978693 -990972679 --236507115 -724831427 --555228912 -55326034 --151733813 -290995662 -657393768 --781637533 -665179261 -186143930 -933375159 -142993697 -984726354 -818263852 -169196738 -352050610 -353424732 --979248944 -648152664 -780397031 -519555249 -712935672 -624347176 -389184689 -149265984 -46636037 --586326557 -708231699 -662895466 -22617637 -310318221 -832273033 --523719168 -47921737 -802353170 -847113541 --435561654 -396565479 -230870987 --400832938 -662558589 -451572340 -547467475 --197041710 -360050733 -803203809 -208307951 -531160487 -738449486 --179922821 -276423350 -879046119 -526332583 --838591835 -548974207 -286602167 -867449187 -824918740 -197591371 -808672594 --269761537 -13066821 --931196692 -834110043 -121700234 --746143758 -969267924 -121775087 -559474778 --295092977 -56971819 -60461041 -560322479 -299022485 -924544992 --534804006 -138694585 -522448735 -277393892 --474170164 -997309411 -989007806 -340183451 -490086260 --161720074 -879621409 -122040863 --151975653 -257080807 --719317081 -907002772 --962764707 -985904485 -839685278 -819571179 -237208140 -405409758 --695517119 -15056413 -938375653 --750317678 -179619465 --425550553 -11691418 --101166644 -783313717 -458646832 -248094033 -268905551 --191044983 -724673517 -602680559 -299191617 -792242244 -457915343 -246409526 -180437068 -878071407 -42286050 -831442312 -785746311 --53893312 -797599953 -262348471 -743198832 -480674488 --452668985 -621563570 -853068088 -919044962 -277537467 --101784897 -557681129 --217544022 -720240096 -645288148 -910171143 -437498809 -197665648 -883392602 -533293840 --374344745 -810562085 --683975837 -871725504 --660798402 -144637961 -39673666 --978472024 -483362093 -56301929 --657033783 -182727443 -499772109 -452779866 -722231607 -932237026 --783313717 -43706139 --894003889 -225263536 -140130012 -914245853 -926319953 -150569467 --912581450 -792996514 -909227417 -648492797 --355017148 -753623049 -713286500 -341193845 -870876367 -201293614 --827321741 -979638882 --255532197 -338900031 --891874809 -37871809 --166225818 -232508288 -935959523 -122630984 -285040121 -526010954 --117488027 -125015164 -238493318 -42054026 --696541018 -917543080 -317383904 -723118106 --395942219 -502516182 -221236131 -160842340 -296563569 -452568483 --584017573 -891111224 -519071311 --979029258 -132209759 -233852039 -739342921 -93530761 -213504459 -60709774 --650820789 -77674692 --574917424 -526081576 -923509030 -970454216 -762839190 -956016557 -463026423 -808222149 --657393768 -151823764 -193788687 -736538911 -339795107 -38751420 -565467612 -730543703 -784126932 -997214714 -691439800 --349906951 -44270887 -60012864 -547423653 -316147714 --82204273 -16637862 -600594137 -374869440 -708062251 -415067862 -122266885 -176870436 -100927875 -582314104 -416821776 -303634724 --519071311 -784785725 -317186445 -627733180 -126429592 --768017777 -317651728 --220857010 -101527870 --590537720 -863563649 --52876910 -7310246 -370950928 -626811120 -133258762 -58801539 -37112460 -190856639 -455431091 --122630984 -977183705 -303719740 --469181621 -79521029 -612531023 -405143696 -770653898 -89497884 -878148106 -790586125 -344108264 -306514219 -827562708 -47723626 --512852860 -681935200 -420763885 -353981000 --372241254 -694514472 -920914195 -302478199 -30659525 -849606004 -429264869 -15020003 -737697301 -292141298 --208931326 -616602630 --126429592 -747465780 --875915384 -220643629 --217850500 -822256298 --434579493 -535082412 -792969669 -146330060 -169921042 -285287427 -473761052 -326353941 -444459793 -157257209 --455431091 -231574204 -69846515 --190856639 -341558513 -53738645 -736978715 --496402255 -949907386 -90460227 --12456997 -730710810 --754487026 -911348201 -850420390 -387310318 -926626256 -408645881 -603009608 -969479155 -277935260 -109782563 -815240032 -33292052 -155547911 --652602328 -750063291 -438892635 -465842334 -679437702 --385647622 -941154585 -1187302 -877388255 -768523801 --916020709 -422347617 -272871526 -393888092 -695747657 --723118106 -597392535 --964770552 -748553291 -252070792 -122605622 -505267488 -934389284 -354245367 --633172249 -591867167 -195255631 -482442096 -28825608 -96643383 -55874135 -320942752 --74020072 -615242260 -143699444 -730408767 -775524015 -940211087 -799456994 --280083785 -162276503 -894198195 -968314163 -729000695 -783719428 --793008590 -354806011 -714513539 --366511684 -643924372 -117916512 --363736535 -22245896 -551250209 -123443087 --756325273 -602617110 -94138176 --442273805 -668597110 --101527870 -310779471 -390429967 --341022460 -655674571 -49902715 -851632152 --934584277 -722266852 -9374531 -783371430 -805735391 -523532305 -282004117 -454839519 --998551520 -691135164 -12479177 --741335437 -486167139 -968300980 -896961909 -485477341 -583462558 --291169813 -737288843 -685088865 -494697876 -903899198 --342735679 -259686710 --729000695 -475627717 -483135066 -222441564 -62521666 -486974196 -70265234 -509492231 -986054929 -739944703 -892341746 -94014205 -951041197 -219879592 -254577787 -41220584 --437498809 -371484529 -15093263 --200599757 -816022817 --360890348 -410267562 --738460407 -592082912 -525715718 -468180231 -85730346 -31297111 -85633622 -870394437 --298676313 -472596384 -197563277 -910895426 --383809621 -692667664 --31793461 -650939396 -922913412 -358059441 -821214555 -953143583 --174813368 -634383407 --541164426 -663997067 -597099175 --28567668 -337438832 -916326271 -187384178 -729944591 -659836074 -560578222 -768682260 -705127806 -39879449 -367653645 -546311830 -436609742 --761646868 -375216251 -716247555 -30362433 -701158390 --883092357 -714342827 -539071321 -817118477 --944196968 -190859518 --736978715 -648811132 --310091217 -6863009 -710838102 -43518037 -81310663 -123304354 -518325523 -556396463 --814592253 -620237882 --926251807 -369097919 --165975667 -503373435 -967908196 -973875769 -475777477 --379016541 -604280536 -340932195 --828478969 -233502276 --374869440 -55463983 -916730142 -481376310 -657343013 -332466082 -701953430 -244152900 --945351165 -848968215 --598510478 -953306951 -499816929 --638153437 -645658301 -586456955 -641324889 --919875381 -493055383 -218107382 -561358557 --31297111 -560455822 --953628708 -7242360 -503594741 -685182954 -10991983 -223694128 --221166076 -816349383 -975185323 -967306366 -147201050 -374456343 -225974245 --484672015 -899975005 --837332017 -999573941 --889384456 -706006586 -450119058 --328739303 -404948967 --624505005 -953268931 -675878352 -414923043 -273705061 -550379687 -107511671 -506381488 -474313297 -13341921 -378279148 -946768398 --619237985 -804123562 -331893267 -273276178 -952380231 -462176731 -270618924 -596294920 -839480816 -887428305 -486787510 --714845783 -58871207 -767310381 -185383678 -882934548 --317186445 -545034370 -161868408 -363669032 -424113098 -805496699 -713206275 -488307364 --500044923 -129985499 --814494201 -112901269 --579708297 -149554318 -243752798 -768008144 -673694909 --223952354 -565032052 -845913852 -672559312 -236254655 -842967171 -156481772 --946892096 -269080710 -987029159 --180318521 -246453921 --662109971 -993705099 --735417632 -827080824 --110810642 -268469343 -717008845 --22510751 -333946698 -859311258 -949240226 -773140919 -632508633 -706652254 -31035140 --765839776 -125227847 --248094033 -940140648 -209506553 -492246456 -108330933 -858487690 -857067404 -156516249 -590348059 -518001498 --676737594 -538792751 -747919344 -297426657 -989282298 -173985307 -317518424 --771890938 -881311587 --32547399 -71379858 -978465447 -866847839 -14998958 --944727862 -904520606 --144637051 -270591386 -32948128 --850420390 -412942898 --315920241 -748225607 -912371244 -877326865 --545034370 -339907608 -281690878 -322900868 -892239457 -351526145 -563920749 -191400789 --408931097 -790534970 -411588969 -59863866 -126619445 --718011206 -970375851 -455942703 -649694038 -322064945 -403373639 --926319953 -62303922 -991150057 --697020284 -758044426 --367927485 -209635057 -945719533 -576158882 --899491843 -263101843 -520121351 --522452164 -869903256 -287674199 -687003963 -954863105 -607495001 --647937936 -936179247 -439274951 -872541260 -419145135 -190248321 -602766599 -967031666 --107225387 -818691368 -617007364 -743706373 --261652588 -222993476 --53738645 -332332097 --773413067 -444562002 -895388456 --63094784 -707243405 -839632214 -557112092 -191431632 --857067404 -522868446 --37871809 -226129981 -616955936 --368597894 -752353875 -534710223 -387210005 --160655137 -317859776 -718674025 --125098873 -601688458 --469821300 -222360105 -652087595 --821214555 -813467653 -628774384 --800858815 -896543008 --638174004 -512782146 -392732605 -493198609 --464274598 -473859289 -165818011 -872049012 -727838266 -191071949 --790534970 -848675227 -381624842 -788627426 -38364674 -800249881 -177163037 -340484299 --992102758 -122130518 -711236274 -480664796 -970453331 -118089179 --389184689 -495704521 -692954936 --161868408 -629552341 --268404537 -782340153 --863999230 -515466760 -461561099 --740871923 -846343708 --636715885 -317595786 --337438832 -801658228 -407225290 -136876185 -401664463 --441487170 -299223181 -737792188 -894128914 -583903414 -959119920 -93478646 -361799667 -886241600 --332332097 -54655117 -938457738 -843441687 --228575745 -769846009 -318684939 -703868009 --352050610 -796489228 -540144522 -962465026 -863328695 -471079535 -103870316 --669734169 -826319044 -826516036 -217748983 --986689858 -53278858 -345562629 --739176383 -342112168 -562261060 -179372124 --193922417 -451997654 --792969669 -601225419 -962755084 -686434668 -440258336 --717485526 -838570528 -319631736 -185367737 --720135418 -982500048 --15449121 -109923578 -872792060 --165443911 -286265272 -142787142 -369892856 -341873478 --405143696 -403261832 -135820809 -579240843 --535082412 -807412185 -163449318 -955849035 -881044997 -403765210 --729009033 -933037716 --471964687 -773901457 --810582474 -600471198 -526512831 -560410602 --452779866 -9434798 --585968597 -311967593 -37432828 -893665412 -649784195 -727893013 -182969393 -932860700 -122381499 -978726789 -311784402 -60249522 -383652771 -718332976 -997161223 --460952376 -949065688 -694108131 -881294009 -733227360 -190923143 -788914583 -741070855 -637454832 --855235838 -653089141 -935722007 -888590884 -669175085 -173494279 -241963058 --758350537 -163518097 --67810358 -276188516 -194271792 -548895026 -146244094 -555190790 -41064774 -116899262 -507461219 --686801164 -775735839 --536826368 -231816624 -287630621 -807804555 --99315873 -295212170 -709831537 -248458681 --622624971 -755915169 -56235087 -83942938 -696863041 -845426804 --256097849 -773293230 -61389641 -913312264 --283854721 -833721024 -810889662 -151728802 -332048130 -734833679 -224864551 -464445656 --51737158 -36860132 -311656531 -442648028 -317018801 -153240066 --608945994 -472415923 -677243824 --614784722 -126868327 --673694909 -487247123 -110076892 --820859023 -343169543 --738449486 -633330328 -703397886 -378815858 -757391111 --434943724 -854697497 -728452487 -541793157 -728264290 --847310086 -1611809 -837500331 -612897188 --142541683 -485064926 -2638785 -505420352 -901728681 --379621437 -917235937 --620614207 -210440315 -181186219 -808187354 -560122623 -198276620 --591262845 -146024800 --790237335 -328670228 -709509959 -888980631 --475584042 -525506919 --591559641 -392756509 -484399352 -97702718 -326314197 -759365771 -508801604 -32914947 --17058739 -971088006 --363669032 -708672397 --729341565 -750323897 -791669012 --855361154 -724001800 -650254304 -789009410 -524646409 --636758351 -784290355 -408102337 --653089141 -341168223 -583627006 --49928153 -951169669 -652525856 -266274178 --568382863 -143404780 -194041571 -277297033 --701715734 -31515631 --818263852 -507845102 -674259551 --191341376 -941172395 -301804120 -44495335 -757627005 -645818919 -484014944 -542058411 -89062144 -733440660 -199996996 -449323973 --66438894 -883936607 --603009608 -137610536 -397112886 --189703943 -381286512 -253029578 --55326034 -600769121 --958841540 -988723719 -234834563 -648707886 --407692312 -322928748 --938900846 -767018841 --449323973 -571583958 --954452745 -16704346 --885482166 -453139399 -310987946 -255510634 -31703609 -995887956 --542058411 -381581122 --665272057 -842187770 -762264186 --882934548 -50434806 -750045298 -644590327 -92514836 -424641767 -145511991 -373000911 --299080489 -81974127 -857259040 --452592859 -797168067 -584325778 --319631736 -779036833 --789334104 -469715396 -345911429 --481869719 -696856181 --823538540 -226524719 --122040863 -701280202 --977138209 -402328387 -13448238 --505469748 -930724014 -127194667 --598475144 -541014493 -801507351 -581417503 -929898279 --759290227 -417907238 --32914947 -465099920 -21735779 -537937864 --933967097 -912381153 -960008534 -776296062 --434560406 -157628403 -433411579 --305669967 -657651493 --612531023 -229074093 -340675063 -228839624 --624878293 -80193499 -209313988 --381581122 -662574702 --953306951 -209302875 -715218510 -582985665 -773724901 -776672257 -677879891 -751486883 -531362062 --858487690 -749191631 -157197698 -253316087 -502202537 --892239457 -62304295 -16374569 -247835720 -638797195 -4514395 -671637667 --759804952 -642063469 -601592488 --307876486 -303625420 -75409482 --392105816 -977819898 --52295786 -721897774 -925265992 -125119800 -164356104 --273923031 -533015671 -947076988 -622062938 --508674300 -285415826 -703103538 --290589257 -556604314 -571736348 -197427202 -935740278 -79625914 -153727806 --890457362 -4296671 -475639469 -39180743 -673943736 --170708955 -409099045 -591332383 --780282728 -587870584 -828356316 -191162769 -171799992 -673550021 -243472830 -675892011 -676979273 --578884367 -507438741 --229640275 -543125845 -539401182 -547197144 -550599298 -608511966 --910895426 -286562287 -666618162 --765232700 -285456325 -731429106 --989282298 -136076424 -292382964 --947160711 -485971551 -797128324 --227013998 -287915148 -167029655 --225263536 -127880250 -389989552 -485017422 -454978405 -170590161 --2858777 -465841348 -962434162 -733100522 --605730616 -971638283 -817482027 -576818532 -313441319 -600256698 -545643054 --586456955 -197254315 -351719378 -354645846 -523814720 -815729325 -902752110 -103360541 --949201933 -759404162 -289973432 -269764493 --396893266 -978130827 --571736348 -772406763 -40703209 -159130093 -580877357 -565654393 -994139080 --547454769 -81695509 -52112635 -238620567 -957585681 -327219287 -651766614 -918948689 -498609570 --755332972 -803672842 -300238161 -686737784 -299040085 -426066601 -922303421 -114652981 -306680476 -874467716 -403703670 -850045091 -417574244 -326470480 --708231699 -901910920 -744887429 -403309976 --813150148 -3933671 --689401862 -96622571 -953526752 --467148113 -833121817 -938833472 -454795284 -369823949 -82736020 --103870316 -275700395 -470892467 -96695257 --853114040 -992451301 -150643538 -50173403 -644464728 -968627273 -447203362 -30914616 --592082912 -620611360 -667569399 --418940494 -117852507 -385265560 -556515314 -344550506 -505095212 -955599039 -130372456 --804312402 -310753675 -115649943 -513594599 -729686784 -774682708 -299131156 -853155035 --674977405 -986627054 -188662106 -548594517 --704181040 -795859765 --167450745 -414680149 --561358557 -609342269 -555134789 --146244094 -684431088 -341276442 -844637298 -280778406 -814795466 --31035140 -193316575 --970375851 -410434352 -418704188 -252640917 --533551873 -942438189 -76834902 -897960705 -207491420 --778932228 -552017455 -961075805 -610130182 -297441783 -949658728 -875461815 --725569637 -783870892 -630581496 -25179934 --933375159 -545075397 --645658301 -531786333 -172181441 -535995663 -258375068 -535959380 -72442546 -442460525 -365970838 -496525371 --993981027 -70863824 -993410351 -694545229 -118163980 --644452569 -59293205 -960083653 -367376644 -7956538 -560069483 -290448072 -582274669 -791042317 --65956407 -86526734 -649725503 -679625273 -998968046 --645818919 -935672288 --335922756 -515512797 --485849037 -578563702 -381492649 -866545683 --448336002 -835234997 -714976565 -484127220 -23146134 -177138938 -550248216 -45395097 -220661466 -644906952 -194285634 -173870341 -55547841 -449201050 -652456501 -991362174 -417083676 -442660723 --415355814 -237220813 -781771628 -142993386 -835736910 --397100784 -139895435 --820591058 -748217196 -603514506 -896187678 --297590459 -141655967 -472942205 --593811619 -139656365 -521739503 --200866896 -719180538 -114915075 -822632558 --11501784 -348109334 -170909926 -545021078 -823188323 -318619659 -887355449 -975909044 -664802833 --534879708 -845201108 -465589993 --270214099 -65129161 -965139176 -250249619 -434941422 -438321455 --756558060 -555847345 -635615417 -898952439 -571900079 -70908819 -69668790 -690523650 --560455822 -385419127 -49712598 -346358747 -520462333 --454149609 -375328600 -942482747 -387634027 --369823949 -159654427 -147997730 -272085099 -387600595 --351128039 -12517017 -813008703 --165455639 -564290345 -412736373 -320552893 -682857918 -939715739 -621304883 -842821037 -330984881 --306680476 -989788257 -825351393 -475399136 -295053786 --117916512 -989831281 --496439059 -367140144 -808676744 --197591371 -510228222 -522810668 -993885022 --28196024 -541504578 --743279312 -825163947 --93530761 -884429230 -310976855 -724453769 --391025497 -571940462 -428728687 --519555249 -275662074 -491716664 -849350290 --211642787 -517441916 --591867167 -735912896 -339728344 -71098690 -974782692 -964032811 -150853346 -651811378 --731429106 -224878656 -852612507 --975185323 -893704777 -418434177 --570684636 -37098429 -490601203 -881933980 --197665648 -96021394 -856097066 -448033870 -961162627 --61763545 -807742247 -566883043 -798423277 -531568624 -850277720 -24088713 -690872886 --245274963 -793058537 --34070328 -354699310 -331430473 -448648000 --470164845 -685618276 -223567563 -52605385 -364318729 -988217138 --401666658 -652532175 -433574049 -535570486 -999822022 -674878015 -880898152 -89311913 --188815906 -201173380 -770403974 --2638785 -791069113 --515466760 -984635276 -749940194 -917216089 -40681609 --582787540 -938804017 -718248476 --573123682 -55345852 -997243955 --242015220 -962288808 -653536476 -38380948 --243752798 -587651188 --893665412 -342813425 -332007959 --197427202 -400888334 -364556346 -120922169 --369892856 -993553438 -384677341 -793963453 --36249237 -81191461 --552989421 -688284101 --357187001 -817624566 -373567362 -605986971 -354143364 -955153613 -337646838 -576900115 -568125579 -731908690 --623907094 -239166183 -867444888 -660521943 -821996137 -323922133 --546896777 -412937863 -159482439 -963812514 -788095474 --138925118 -646317352 -115264450 --726272992 -716846353 -934902825 --535570486 -264928923 -521315040 --602766599 -591824267 --564114898 -802993547 -392607604 -42368719 -344332557 -788764455 --885320677 -53265092 --851011842 -625466212 -233930467 --419145135 -133484717 --481408584 -159306806 -486629290 --960021294 -736001954 -263177253 -466574976 -266093774 -808721712 -646139094 --60709774 -759029854 -4462230 --339795107 -989936027 --693598285 -580310131 -853112484 -233346865 -423233222 -780912192 -913852114 -223622745 --209635057 -773124366 -56367515 --545021078 -604096123 -357700129 -384462083 -842218232 -758043971 -592345358 --958869272 -691592472 -13275438 --759404162 -734994135 --840360381 -301655988 -147959364 --624701372 -599336461 -136007768 -478282951 -823384883 -9383752 -703214800 --694514472 -519514409 -810526948 -574115112 -590705172 -593276581 -417316932 --246534487 -202815565 -324235085 --81695509 -758623555 -43975058 -185616863 --436117206 -228464007 -771080726 -247461371 --326470480 -204384566 --767018841 -107967852 -817157440 -803291905 -351566644 -904576839 -552272951 -702442501 -707292239 -313910943 -128628068 -936173519 -719365372 -243294288 --916730142 -523988881 -970202882 -914028843 -677705403 -397277492 -259102411 -638124561 --718332976 -995809876 -322451099 -546140587 --545330524 -293063078 -716843189 --321111537 -79585238 -921796101 -164498022 -823337478 --214022252 -792970439 -509742308 -423021904 --612002590 -913234182 --340484299 -749375602 --155547911 -45720004 -116906664 -70070654 -659266622 -410289640 -952899539 --275832193 -404200420 -335966228 --918818883 -104363365 -597760208 -986084905 -558051826 -138658299 -373432350 -837653889 --886895198 -163830437 -517909049 -973671491 -46762822 -776488306 -363955229 -629269766 --521328996 -398490108 -563690997 -843523904 -824137176 -506100788 -700902493 -525643301 -893685060 -869843516 -833658958 -662318649 --367376644 -339196492 -603140587 -986472665 --617728054 -121140388 -310365381 --783470944 -650790303 -444860900 -574536029 -47431734 -650472150 -431233193 -259438349 --693051295 -65984803 --269080710 -863626644 -910817165 --515598496 -117223914 -586831094 -750724087 -74264788 -302538186 -377728251 -359061189 --80809255 -237838451 --326314197 -235958837 --107226967 -201911567 --590848227 -138408216 -836791310 --285415826 -508046875 --565357721 -572082739 -461007602 -952434765 -57984124 -905057040 --653279374 -795495284 -694330990 -146053089 -688829945 -735723874 --862834479 -588947043 -824557745 -736842038 --15286435 -692425255 --844366564 -14241924 -45449413 --147997730 -243895269 -46228632 -488052347 -793303565 -561399043 --533015671 -243707109 -759139431 -953635389 -512798203 -602829186 -124186078 -200814649 --354699310 -976900228 -333776315 -253956595 -512494060 --403309976 -132204546 -616288248 --115988877 -101542123 -909931324 -910070606 -244699086 --869112493 -964504349 -560345862 --968279209 -190987918 -45668011 --100927875 -820980179 -212732860 -130769835 -697291048 --801785108 -773131687 -933591078 -70205483 -646741661 --440624160 -94946140 -900329477 --960770975 -754762487 --139265316 -552728321 -36371398 -823749801 -915039765 -636059918 --977819898 -50302452 -34657771 -211815684 -642930499 -137676209 -750300667 -118099435 --874100705 -456824946 --616090257 -954304612 -369521464 -833377129 -640423622 -423565648 -503811372 -531911704 --993885022 -695608884 --967306366 -193205309 -480682673 -306271000 -161209682 -603912398 -761280872 -379231918 --96971919 -39505417 -494250838 --358930744 -571020837 --401010309 -680656027 -129031708 -570762786 -948424938 --270591386 -519725936 -530704794 -379142604 -451102792 -767942485 --853068088 -769229831 -26814039 -229942631 -955177009 --513688444 -425069821 --258375068 -357826710 -107254081 -407616168 --351278309 -94156377 -116628844 -226613694 -899830133 --481575907 -238822836 --785563302 -759147258 -794681829 -657494592 --602175258 -784390683 -117397164 --57648958 -260974103 -19202143 --637954119 -951745895 -411052252 --771080726 -476180476 -117220062 -247079425 -306709558 -334002133 --553214409 -325045084 -629242957 -514193548 -198771389 -334915708 -864470709 -168436668 -612624033 --527377587 -951798771 -271775864 -373421032 -904404523 -909366060 -936646277 --1711334 -960964520 -657124967 -438658317 -313029517 --812976632 -262024204 -434599330 -587366141 -40212125 -571176359 -121789052 -464612323 --142993386 -674259309 --602979175 -986098065 -510567365 --916326271 -305189754 -263612068 -105803250 -334033949 -215865664 -88076800 --996228146 -916676377 -786515412 -368683997 -557775823 -560988895 -447885427 --646741661 -370983218 -568259470 --593276581 -525921023 -376941766 -686841631 -473279459 -560275593 --469715396 -734349745 -44151786 --583627006 -37014394 -344146291 -80848468 -75108137 -478530591 -659614457 -821803831 --992577480 -285525892 -785352789 -171766161 -715838708 --949907386 -999526133 -401826411 --138658299 -473721459 --460981685 -607088993 -433945819 -687212347 -646882938 --478650939 -643225391 --312106709 -577339556 -288707566 --612897188 -707588119 -912379578 -978356166 --747138034 -430978967 -813874181 -677092817 --324857516 -642979790 --657343013 -176250488 -489921272 --333591914 -379597856 -98792262 --698561864 -431368392 -55129750 -525213709 -19145369 -707213390 -144639337 -731801692 --776314220 -65500194 -744616873 -398291511 -668950144 -2514717 -133162036 -463776586 -497616482 -783653737 -446862366 --923797383 -735580249 -661268390 --519115586 -522346874 -490773861 -804639035 -57216869 --857997512 -607728443 --757711135 -516799605 --222360105 -910945459 -494766278 -421847369 -714557686 -875562006 -583489101 -688402856 --283526714 -361729873 -130128405 --583732070 -235135061 -813065050 -857492665 -367385562 -524491951 --248544969 -637438434 -934577721 -541185460 --832891945 -989047116 --802662595 -155478203 -296348253 -861660887 -978327161 -734866613 -526141955 --264889359 -994356283 --668950144 -239664757 -305799254 -946776591 -346890267 -18636738 --344146291 -568127698 --856277234 -82473611 -724538593 -316980484 -937258907 -794117625 -295761793 -153508097 --201227811 -205884188 --202615690 -442465291 -341739475 -16842953 -837940918 --701405995 -388212129 -310517711 -464354264 -990128135 -87658772 -321027707 -750002134 --410434352 -557661502 --243472830 -625473943 -210214801 -749639934 -847719579 -516581842 -50406541 -375753976 --375753976 -512629540 -197478101 -486482425 -661216473 -148497984 -116978847 -429967219 -172669110 -205382069 -226202322 -495712938 -552709890 --152869813 -212557370 -530852924 --499772109 -476436062 -978940328 --750037076 -80755404 --759361098 -351995776 -76882394 -469851311 --913234182 -487217627 --931859403 -287889227 --813065050 -688321775 -89848370 -979046810 -619677691 -453078757 -130843992 --505095212 -676495561 -808139229 --932860700 -649880714 -378772403 --94946140 -747863720 -249124610 -39295550 --587870584 -701591952 --304118732 -573478430 -72997692 -950541491 -318706591 --993553438 -834714047 -353646755 -405785251 -133844350 --657494592 -669718682 -557869752 --483704896 -216513484 --662895466 -220817614 -266912683 -854969114 -879550459 --390429967 -439734662 -846539512 -486957506 -824713298 -518961097 -969038069 --58801539 -931650051 --173870341 -126346268 --308610652 -203054566 -893224186 -817476508 -854895649 -129647377 --754993141 -314279011 -368326947 -192174660 -296975832 -477245133 -874886424 -94135624 --709090371 -65678742 --371484529 -53463648 -788717530 --419617024 -569258107 -666151553 -125737052 -952328490 -318394878 -285841184 --725908362 -235007840 -623119845 --45844402 -5935895 -755265833 -945373919 -150337570 --433574049 -167001986 --957874617 -898261583 -154512177 -432980939 -252214299 -643986714 -680905790 --921826014 -894676948 --867444888 -503836546 -115629880 -923513693 -509338780 -441523892 -893862616 -181511025 -273516803 -392352441 --440797371 -85568399 --111610368 -915712681 --977679506 -241801671 -61117611 -579174049 -929564585 -657273502 --314733409 -443311804 -879670469 -784902656 --364318729 -617746740 -948737789 -587762103 --565678950 -45229369 --938783696 -181311942 -824885534 --976447019 -57834656 --750550009 -855394020 --563920749 -422148269 --70560866 -293262580 -991856209 --42091167 -878272817 -707805504 -890338775 --434599330 -542141760 -805529122 -920908610 --210822062 -661301907 -298664305 -484380200 --724538593 -240589161 -347512362 --277393892 -246024413 -822297253 -395669885 -440084972 -618091515 -953499794 -413543358 --693098898 -413441814 -344753398 --893491986 -249699038 --222614136 -378375358 --897960705 -361315423 -413430165 --397480467 -730091425 -344954302 -850045467 --10991983 -98913627 -725575988 --774682708 -610343058 -396363148 -821930611 -481552042 --971873876 -202740890 -501164203 -977892753 --893862616 -630286263 -64280849 --849506568 -392828683 -547045114 -467556602 --936817086 -260950382 -152311102 -656288971 -794300927 -407075431 -602579418 -451405921 --341558513 -124093655 -951485600 -728887434 -428655903 -756211593 -994056099 -830242830 --853112484 -149064584 --736001954 -498034187 --517111344 -750757809 -588227446 -294305757 --354549755 -718875030 --745585070 -85845946 --820438469 -613251180 -465213502 -761311470 --464854030 -819583399 --389798341 -105757152 -482345699 --664802833 -844197317 -81134014 -877528807 --974782692 -591984328 -68020861 -822652648 -36542537 -640078797 -785902392 -141731696 -905307399 -699421884 --348245953 -881501965 --646078431 -866601014 --118163980 -144769646 --62387855 -64915590 -245182683 -690052095 -346586733 -456337548 -988026286 -801826000 -947083249 --365970838 -389830885 -513154093 --329165193 -156443261 -153178879 -785843395 --703214800 -314842861 -931494960 -614725907 -559250837 -948545088 -446389956 -828635489 -368643055 -371403848 -860803402 --395120556 -394073975 -203878079 -105417897 --733440660 -869522142 -60460199 -126219750 -278392124 -695532214 -713678109 -790091657 --537820642 -504736843 -498089627 -978255311 --612160284 -217047344 --515865661 -68152017 -104954728 --487496981 -159768900 -950966085 --17448068 -364999864 -292479713 -895797975 --229074093 -919560260 -301598921 -304909654 -497412690 -799123055 --150853346 -767200786 -562285935 --961453985 -167607931 -854499096 -73667267 -107104225 -683914945 --854895649 -596076803 -499765492 -927405272 -254748310 -914223141 --555847345 -501989872 --805735391 -322421896 -494116977 --356101390 -778187762 -748430782 --396565479 -237220112 -496872928 -630722512 -295505693 -125647244 --417083676 -119277644 -798935921 --541793157 -57283822 --705127806 -799901632 -407266639 --32057847 -673368315 -961066198 -219093893 -130846152 -520467861 --752207883 -944333638 -99806573 -806912841 -539872535 -897059311 -800754895 --552941101 -723092559 -825631441 -85231235 -971552774 -919736337 -427976009 -147063002 -15352937 -807482193 --198771389 -859288736 -578328337 --341873478 -11867908 -450530022 -215520346 -719915472 -900577434 -207669994 --426066601 -722305122 -464777464 -277070386 --347309136 -102500721 -613015516 -78189859 -538819414 -586656827 -521047213 -223993391 -1583130 -626759852 -896375401 --255355406 -351382353 --181133098 -951693611 -502653483 --578328337 -439125166 --736396208 -58678391 --706094451 -846487186 -200506528 -427076457 -663531346 --992451301 -725605834 --805881027 -188134337 --238620567 -858913200 --89168138 -931444263 -712922740 -828588540 --121775087 -162062080 --858758416 -207321535 -483006866 -669950371 --137610536 -907927696 --105417897 -24330745 -841225992 -670361876 -112991105 -478984240 -202980638 --797101972 -144559556 -675194137 -369730772 -17763708 -13519049 -861014494 -101128745 -650165022 -820128377 -1604936 -621846914 --85231235 -193976464 -919119522 -109940501 -936833327 --899969007 -615936787 -403085457 -258374997 -457939720 -470235406 -794718463 -736298090 -937934924 -668023246 --972552961 -112632779 -174424099 -774476865 -182347268 -883797565 --994638666 -461801313 --821226117 -509235103 --414923043 -41770865 --280304125 -774580285 --398810410 -918281675 -677403222 --376268081 -105464411 -480190151 --351995776 -859831500 --220796639 -186607364 -196381040 --985682501 -674243679 --986176605 -749089178 -758071448 --465842334 -253569729 --357826710 -189931184 -520850109 -279676056 --130372456 -926277556 -838473924 -170509960 -744214860 -553108818 --411182524 -346825075 -310422294 -897512691 -624454591 -928205890 -532862473 -393601283 --462093571 -169693196 -363051168 -783179966 -971082672 -479465432 -178343052 -254523899 -661873031 -708241122 -980748942 --4347277 -587102365 -929277090 -966092396 -610791426 --440299148 -374763378 -353945041 --188265047 -421347844 -375252530 -243511393 -281717786 -552166803 -850560870 -999454781 --320552893 -886364282 -730780936 -629032808 -230332177 -447761698 -499881006 --471669776 -247321795 --289973432 -373298964 -323303658 -655777897 -69359480 --546311830 -177984022 --180437068 -384636965 -534260424 --494198546 -321877855 --353945041 -217299039 -36019027 -494853784 --456337548 -884965175 -889832426 -742619025 --652456501 -584922071 --538819414 -317305684 -346014756 -916842895 --469295058 -115492901 --817118477 -239879642 --703868009 -380837902 --894128914 -342467545 -872444657 -430797828 -680079468 --817134728 -19663207 -606098937 --657854260 -31531189 -287497821 -559084157 -520576132 -691806845 -863830278 -546583663 -397358790 --626811120 -673219507 -187430322 --167607931 -316533996 --79521029 -933064892 -767432357 --30307390 -829553088 -251222671 -253686155 -128851750 -262624313 --963623975 -349899861 -333349883 -91390933 -824831562 -758065994 -96234897 -394030714 --934902825 -573128489 --312245067 -571076016 --579240843 -878472082 --137990447 -333706409 -583563749 -538115874 -520376235 -270897522 --54655117 -191008245 --271775864 -29926509 -178894844 -949161924 -383387315 -816485734 -335531359 -790884292 --11867908 -776139556 -294393394 -279961094 -391321890 -838520532 -867416686 -236364138 -276148224 -955772145 --838473924 -939643642 -402873363 -279378414 -344984150 -999417011 -401069361 --138085491 -745972034 -141047966 -938287010 -875581767 -42900212 --474534198 -874815106 -858300271 -58053494 --989617476 -151237067 --285628567 -779853112 --538861551 -365593069 -427208083 -179858654 --737507131 -566874016 -177833870 -40095698 --955772145 -796286449 --431006035 -298873260 -918088894 -10974001 --996159331 -369516784 -301796812 --951485600 -857058315 --319563753 -872057118 --615807101 -851992792 -367087233 -467392615 -122851261 -149707710 -112809246 -835131596 -691878845 -114868954 -116615098 -593454481 --464777464 -503606290 --958217262 -643103570 -827002000 -37937936 -924958637 --491716664 -207612484 -24915879 -810172921 -109805483 -508483901 -197845706 -793298636 -182328117 -240037247 --827866158 -731808669 -32072820 -488415448 --627013933 -819113307 -877226921 --497616482 -382604389 -811266320 --555585898 -739492024 -23799913 -535782975 -156755834 -257620595 -941127884 -282857085 --255510634 -985896251 -54024260 --299022485 -820464875 -14154138 --301655988 -736143108 -532777023 -392172626 --94004747 -281000232 --874215143 -127700457 -854550257 -490112096 -153782218 -459463077 -337570406 --717008845 -410545947 -551969727 -502311510 -565614052 -44739232 -272903116 -856607659 -24131760 -337837548 -128458119 -999362349 -184571792 -134272001 -127028511 --861014494 -804401528 -651100767 -433667222 --201195393 -186085791 --287915148 -292460539 -652911600 -267916252 --237838451 -505030055 -142933238 --260974103 -16070662 -971608347 -151529922 -372725852 --309935608 -318040273 -443574738 -997820619 -337002902 -686177011 -861981671 -373367965 --845426804 -992324954 -364454280 -196229523 -506604656 -862498437 -932740921 -378082989 -398909573 --967284844 -837479040 --855903294 -208982109 -771707073 --110060773 -308121005 -944182446 -520075637 -612086457 --556396463 -660908465 --342733574 -535253227 -821442143 --903899198 -612601442 -901340048 -490532127 -312944742 -240573746 -240357730 --378815858 -101984388 --170823266 -599229038 --832549448 -258379753 --178866923 -686333579 -467621736 -59659568 -504997466 -687191864 -15434171 -531825808 -813051366 --936646277 -157029256 -918478313 -919147967 --783906755 -776939934 -219353490 --9383752 -595596660 --671637667 -844571847 -274661768 -505492647 --473761052 -816020904 -989580060 -585899512 -808714349 --769191717 -974399930 -614376370 -610303769 --680656027 -675312767 -152192767 -422405250 -59563039 --43518037 -247839409 -461178020 --742289769 -144482423 -518340846 -253163912 -544907945 -619372237 -248341022 --373396508 -724316376 -769605509 -624492190 -512008641 -844756854 -772931745 --276173281 -617614830 -562786330 -815495119 --220643629 -74614810 --160054361 -743124057 -636638144 -31830692 --565032052 -863645683 -719350096 --4514395 -214840950 -137392936 -913831615 --893685060 -818282603 -641692752 -676358760 --149017431 -441369282 -716512617 -686801961 -495372203 -11265899 -581573580 -648335708 -457404939 -469135768 -14548119 --561399043 -475417093 -47521811 -386911120 -861483873 -188635456 -855957857 -603162046 --79943923 -614531657 --786344014 -748503173 --179313028 -527136160 -948788444 -493046677 -287543529 --169693196 -477930479 -121769949 -43892478 -1596235 --769270212 -580098918 -516600957 --748217196 -432544073 -90158039 --24588684 -129651836 -902214708 --316483052 -74634110 --826319044 -764351180 -935104002 -565822248 -556156636 -266976315 -176335761 -142385278 -161807625 --47723626 -921588073 -535936521 --703103538 -259242570 -20526945 --929564585 -80254447 --941154585 -270145584 --872199589 -757935298 --344332557 -93914591 -337646028 -385465657 --104095588 -818798791 -593674967 --343390048 -209687014 -864616733 --469551197 -910782459 -79477063 -958346922 --81134014 -250862868 -4852976 -962478197 -988303133 -616754868 -223946907 --652536822 -972584013 -255447818 -352315644 --58053494 -773930663 -954711116 -727570270 -311094796 -51282799 -519710693 --626326595 -904893472 -485985853 -924712249 -149567290 -273677689 -12831612 --373567362 -34573088 --136007768 -472604073 -220773385 -230325918 --712130579 -71697527 -518893194 --164356104 -319469634 -477394350 -737704205 -608541952 --934214528 -55070367 -905301581 --595596660 -560276176 --247233774 -571706021 -903706653 --629860545 -889878213 --48671074 -8855995 -842661818 --8297902 -785268624 -971284596 -430396596 -181383068 -956027676 -471217419 -383534560 -910228081 -760837184 -366080863 -241495680 -653152795 -782119244 --207639402 -566957982 -500442751 -118270463 --963076093 -845084556 -812707080 --783371430 -892235502 --36019027 -951363044 --222147573 -977575802 -91065416 --340675063 -604264404 -664703462 -102459941 -474818693 -560598745 -729602636 --405762875 -815961773 -925827771 -640859239 -670767745 -304095197 -415185285 -184534721 --3227636 -296922579 -424842558 --324697122 -148436505 --318827068 -76952664 -357025957 --397277492 -430314861 -379701278 -278558411 -491453589 -852071801 -112529468 -861143911 -85552045 -876459812 -882622673 -860788624 -546872004 --728266006 -697669809 --469021306 -610711883 --822652648 -352359538 -128838212 --749070569 -547983283 --296922579 -679607948 -113018631 --550379687 -371666735 --870814579 -235279112 -750128113 -992835760 -885367615 --815071486 -473850599 -119856893 -839862673 --869682619 -777175545 -979458169 -48378103 -166340030 -745031433 --625423010 -338180722 --991103293 -640781949 -773653894 -240786995 -10511394 -939189649 -995713675 -819249385 --462135907 -382841028 -553651996 -303326158 -6468282 -853566628 -127849412 -238912015 -841769691 -487633724 --121700234 -103543734 -604566793 --452568483 -825942029 -568472493 --877684862 -765994648 --314279011 -526782900 -811048210 -952398792 -963003828 --823384883 -111396122 -79523951 -949123087 --405091959 -534813472 --401664463 -745447050 -179249991 -441144049 -617800367 -176362179 --268905551 -77410481 -378045222 --936833327 -587615737 -985206854 --353981000 -995342532 -364861800 -574444310 -822961489 --886082924 -371652879 -534105464 -468887734 -763036967 -845615223 -736758211 -220736617 -185018638 --244699086 -678463663 --441144049 -976173932 -565174583 --286809893 -364409693 -525604366 -697641338 -471689218 --552709189 -332713181 -10239877 --135908912 -982741764 -50720716 -786630774 -858038729 --194743764 -878946872 -712712842 -468992751 -754300389 -123690811 --470068615 -409898688 -449145207 -903882892 -112146512 -117723402 -616620973 -433095079 --620611360 -481759760 --962478197 -241405552 -555731694 -493985481 --56301929 -138360878 -283583226 -113044230 -516672894 -709655768 -768198021 -445445350 -134135542 -850560546 -668974169 --838931543 -592430240 -476908642 -533273019 -592239859 -594194269 --472942205 -113143771 -560532173 -120112783 -108443560 -606213665 --241120324 -88210451 -137649202 -141124249 --218688529 -60964802 -43466441 -334070741 -947125828 --296563569 -223403669 -261205789 -590641437 -367330770 --156481772 -426862685 -945939590 -54950419 -730787040 -530674512 -310631533 -540768907 -519497774 --547012946 -551922411 -318431176 --266912683 -467558846 --34573088 -981700996 -589284502 -450146704 --816485734 -448605761 -316109563 --596865651 -435384805 -174594753 -511542024 -45909199 --677243824 -902380786 --327219287 -971756676 --812777510 -336834765 --534105464 -462106087 -752380388 --59863866 -132478920 -976174103 -875063736 -485226518 --342813425 -355307202 -110591465 -746169404 -170039688 --76882394 -393265730 --520850109 -440063785 --736278713 -251736910 --315885186 -786190356 -969470604 -303140339 -100760801 --969358661 -384964627 -326161041 --97702718 -44783391 -142969400 -149766870 -575909306 -765509816 -243686271 -293815023 --768682260 -589734964 -955420121 --721897774 -89351794 --751486883 -923168920 -532921345 -619470623 --98913627 -718835465 -796672857 --932237026 -841119405 --408645881 -626418209 -230259680 -238780565 -506594698 -889064513 -509749250 -36773150 -190945825 -420139549 -558829134 -485316482 -825644478 --549971021 -427136998 -816606623 -476917989 --672962073 -121771901 -874258946 -760795651 -380759236 -149608367 -885329146 -72782932 -283016209 -295001491 --424641767 -17188441 -252875379 -332593086 -969539083 -321975169 -822850857 -455637444 --894676948 -931975744 --65129161 -47117155 -32960271 -790793287 --354143364 -933087825 --416837357 -406066824 -346274528 -364247529 -464045356 -789264134 -562501717 -181344479 -77638228 -538824573 -381704565 -867598757 --197254315 -518521440 --133162036 -577735008 -596155965 --246024413 -227965681 -165264286 -515064524 -480853249 -505143150 --926277556 -443618045 --831088570 -695125978 -167952124 -968396225 -92335589 -852629232 -332848605 --574227419 -979237298 -286754671 -576849805 -126007623 -204581953 -926549500 -942704813 --699945827 -206402175 --155478203 -949690829 --496028421 -465662248 -292923184 -331097352 --761280872 -934301145 -491603737 -921012716 --770300383 -150573644 --111276504 -806820951 --43892478 -208974224 -223119742 -694900562 --955153613 -780627557 --535253227 -852911903 -5236479 -110574298 -781933942 -72366313 --648060097 -642433968 -442782194 -721454599 -518369581 -203059602 -632980013 -625603191 -688223549 --295584914 -602445750 -608577167 -102785896 --566957982 -800349678 --737288843 -75580048 --869522142 -341360512 -39125134 -434569797 -845632555 -33287889 -980844294 -277444405 -158205423 --280778406 -241230194 --715530016 -202979246 -987983357 --122152590 -594717177 -259825326 -364423905 --52112635 -107174732 --790091657 -101406309 -879962236 -375295824 -711696158 -130390532 -828028046 -586853362 -316807391 --111396122 -602875771 --985896251 -428639561 -95985157 -321075366 -755301028 -45664708 --525213709 -899886739 -615892332 --518452624 -338845925 -252647836 --862069388 -862615919 -666370195 -748641808 --590941413 -571163528 -964725240 -689691132 --193788687 -471177538 --587762103 -385601973 --692425255 -919812096 -96499749 -396780613 -820889136 -709018091 -687099385 -633517584 -572115744 -430443194 --867449187 -901443941 -823537741 -116843060 -228820067 --969482711 -240015602 -623833749 -820490070 -905217217 --195467725 -934898605 --634383407 -623935251 -341247255 --463587245 -961690286 -168840228 --307797161 -235736822 -646253136 -405338627 --727838266 -291469857 --756561450 -170598842 -26035100 -815351537 -673464245 -928807149 --939189649 -31053304 -902865479 --121140388 -603337772 -212507700 --701158390 -329366120 -277424530 --227965681 -385523227 -843372308 -864883336 -211574401 -562575436 -862932748 --967732399 -991128269 -232928553 -787139972 --835016103 -158783502 --815729325 -362225341 -845459262 -493992644 -882960618 --514042849 -133818898 -544964574 -724487013 -269679329 -264555688 --150643538 -858891341 -727451635 -735919480 --819297642 -85201069 -623944429 -32918582 --651100767 -757319915 -697908788 --589346825 -700594290 --476634678 -182201073 -913109348 -344262128 --574536029 -618911968 -145762397 -727622954 -367372829 -804486620 -556528979 -608946244 -397220825 --850560546 -73372084 -535457178 -422003633 -263904094 -746148457 -691923962 -635039103 -12145484 -141668809 -219838654 -448977042 -962845702 -989420862 -818407289 --75580048 -236002154 -518952019 -147813713 -651957546 --763036967 -655624984 --544907945 -479815122 -842817965 --442465291 -267023709 -749686272 --910945459 -27227085 -508515572 -63742822 -147483048 -98209433 -881159681 -839199386 --776488306 -48173196 --72442546 -996607056 -958348215 -455706237 --649111350 -119403891 --277424530 -727363762 --35546357 -810337236 -88374869 -77264005 -28860811 --716979113 -756560555 -965863068 --107254081 -109574719 --190923143 -258681794 -146764442 --525643301 -258710136 --902380786 -992951918 -434146568 -5170620 -288445605 -606021296 --311967593 -581604782 -542886765 -358071921 -361642645 -340974044 -633410713 -206141829 -194190583 -178613362 -434365390 --295761793 -888760673 -564424361 -742916523 -298744406 -30500761 --392732605 -279696395 --351382353 -449630584 --461691279 -927396493 -101438274 -471599774 -660514046 -894701519 -645972486 -570068953 -823918482 -708583069 -28177701 -333608147 -667440403 -977338812 --44783391 -448249624 -647931587 --95149287 -869490042 -954901013 --845201108 -43645115 -596939182 -884836453 -563007677 -139004679 -874534646 -982451444 --313753377 -406566745 --60461041 -933915738 --130390532 -963921945 -404277267 -623663746 -369613342 -725011240 --735580249 -754376640 -695179723 --555148194 -414811288 --381903184 -389275835 -759248072 --954304612 -673143840 -616852826 -660320072 -566877657 -944585136 -31890815 -845862997 -558131240 -708686225 -873563442 -888165874 -489259383 -234186040 -90256519 --13416316 -624471710 -610244444 --741503345 -102322298 -96969683 --287630621 -112942355 --976123866 -375991189 -811419054 -775309116 -684074658 -732613761 -927536223 -148595874 -838397823 -116109459 -71381711 -699141688 --518925547 -473260613 -916696428 -353655709 -163411692 --463100644 -902173178 --119856893 -673626094 -191346248 --143187627 -228464048 -237722009 -93764549 --349059780 -759754369 --948424938 -40318525 -3748299 -601518589 -959238492 --589165450 -430904602 -196652146 --988217138 -905042755 -526446154 -366126856 --801507351 -120186808 --715196339 -433040100 -763524260 -405906714 --75778253 -24599854 -158566518 -812850522 --105464411 -227765904 --303063939 -330309457 --243511393 -998726290 --995342532 -269491610 --237722009 -192281327 -651720556 -833629013 -124197210 -851913567 -694031056 --686801961 -749510797 -765985102 -413825041 -647469169 -943083506 -567974503 -80711836 -462638909 -96186380 -188179467 -210091122 --232829998 -689571836 -121771585 -356552412 -846994503 -51091310 -234572249 -493105184 --3202625 -173573227 -255666737 --121789052 -911158510 -216088618 -568057269 -250341164 --203059602 -69193078 --389472626 -494583294 -985374624 --397220825 -31148377 -918246887 --401112579 -832607260 -280390199 -296812836 -995989246 --46865633 -188802920 -291655183 --359474564 -735965319 -856309668 --165366023 -749016748 --387546906 -635348334 --434305954 -265990371 -845178884 -641971827 --870047185 -679511811 -157698989 -886835031 -152778787 --603140587 -374469002 -621568604 --385419127 -364460779 -951253569 --450119058 -132907379 -828796394 --650165022 -659000970 -554302098 --702878390 -418640211 -804003754 -310236925 --661405609 -402092250 -204514635 --486629290 -761966321 -984749347 --879699250 -253903506 --972584013 -49703195 -367447765 -987415005 -994445632 -826783831 -38980051 --176250488 -420274393 -328023531 -806569293 -908703893 -805290756 -715226630 -643859248 -13359363 -521575249 --71697527 -631938135 --879550459 -613036184 --375216251 -334586744 -128921960 --782558216 -414642842 -593055374 -925443583 -707386198 -228590304 -805457958 --406566745 -333815564 -628192471 -508251884 -833415533 -687687819 --110574298 -244132523 -302088947 -71342826 -330890830 -957669357 --601225419 -605121129 -216010974 -662071158 -287466501 -974456058 -644310089 -148355741 -765212304 -846190254 -227173287 -672258714 --676979273 -600155365 --565174583 -550888240 --529258347 -616256216 -941403153 -896205852 -432707334 -251273314 -796192250 -896414439 -464030051 -602810470 --651720556 -603603147 -731794103 -345390998 -302332636 --370982863 -694659535 -498331600 -282983959 -908407161 --731600493 -661549895 -504860907 -352178513 -129732704 -601778597 --363878020 -618045358 -594587198 --505492647 -357975235 -501932505 -776823486 --605761365 -63364317 --364247529 -350073943 --136876185 -117958033 -302626708 -49650628 -632336979 -904449778 -690925568 --470084801 -761558247 -48829077 -165854155 -463594816 -598103719 -450079757 --927621593 -668799032 -591283238 -427708582 -960019606 --253242138 -784134261 -653885715 -628006290 --339646880 -521241525 -603979721 -345660329 --955177009 -992270295 -934885766 -485818330 --976174103 -827838344 -422542698 -777661563 -170774617 --821442143 -867689874 -910907470 -295256274 --285841184 -43639046 --85730346 -4013164 -960817866 -907809908 --645972486 -934287666 -15611496 -275230657 --405409758 -46046019 --681935200 -907076309 -207533557 --771309865 -46263598 -53205866 -799447501 --843010668 -303021607 --103333381 -205052408 -462550577 -827700441 -424269141 -504167406 -390087012 --98572227 -643113699 -966966462 -571999214 -438613175 -200672811 -652376987 --302088947 -764508484 --786779918 -185010567 --884836453 -102739994 -939188951 -354269799 --712935672 -892701924 -773865047 --77638228 -485300665 --18340514 -238818184 -34346671 -513070961 -89626547 -911606998 -529817886 -196892896 --615242260 -131080112 -230701427 --247461371 -664594348 --591192431 -58380855 -484087674 -417435870 -482876659 --59677421 -861430287 -361341248 -346814465 --691439800 -383362256 -428022041 -511080070 -408537700 -951393876 --878148106 -448261438 -845917610 --186143930 -941693937 --600594137 -654303761 -601408790 -249789820 -688903416 -981548127 -965731523 -607566195 --791669012 -414345962 -415203415 -240867516 -167397262 -821720178 -838182406 -372408195 -287150055 -140558054 -991696531 -538919961 -498587184 --575702593 -912185949 -58031043 -398520847 --257080807 -362917068 -619253577 -210138840 -977700684 -408937806 --36371398 -819576583 -927712955 -221698662 --522810668 -266213514 -953929233 -569388658 -708052914 -451102500 --27227085 -678120541 -567582566 -388124448 -816360521 -64998162 -530219523 -379972567 --363051168 -649531364 -890519436 -146383953 -468983982 --207466061 -520475409 --38980051 -660654531 -298101837 -967843220 -537481066 --570766526 -220663349 -726506911 -298896745 -250208194 --113023127 -143773489 --232579841 -998234622 -727753652 -702449626 -222122227 --276196622 -65728770 -531548947 -276690683 -608039876 -46731659 -36786709 -794568156 -617669716 -181435066 -577631295 -650218805 -168861382 -229610341 -860950533 -572733900 -647386894 -561061420 -427349576 -404469501 --797128324 -556056019 -63680227 -127692614 -747810350 -809457727 -790203459 --491453589 -424452058 -123225487 -161171800 --383362256 -290614507 -423440753 -461139727 -467335044 --486167139 -503181889 --270286603 -913872581 -677027251 --63107803 -96995326 -297096183 -465592278 -912319466 -835696410 --186085791 -143928959 --205933949 -411971257 -830814110 -683849807 --566507100 -876627167 -502629353 -849922615 --259841766 -437493372 -775039740 -753449904 -460598861 -650336630 -970229439 --485085626 -482827751 -543502940 -922093441 --359593847 -860843402 -577466490 --859831500 -278635761 -979763064 -66658592 -793064757 -115333128 --401069361 -607079541 --404909074 -464073217 --894201306 -889662448 -154903434 -48900759 -882300629 -474853411 -785847268 --32948128 -400481785 --938457738 -133499004 --533331706 -935633030 --534710223 -678992237 -955227931 -365861374 -747447738 -383489600 --661549895 -421740876 -372341424 --251222671 -413010299 -182349645 -88230346 -922565947 -476235280 --159768900 -336104789 -694441014 -20821644 -173338831 --221236131 -134928597 --225613736 -310299696 --37937936 -865380263 -197011871 -692586118 --808676744 -158625910 --246820392 -212006153 -355865981 -112710265 -96827334 -243718786 --193976464 -449029777 --730780936 -297214188 -219033801 -695749666 --391841444 -663340252 -96993565 -442127274 -34981253 --346814465 -354497212 -770072140 -845255623 -209458162 -280433582 -172344739 --304095197 -617769669 -176762754 -23990270 -31338616 --939188951 -386626953 --602119976 -286340299 -123490806 -209366087 -32037853 --592239859 -889937321 --474066744 -864989162 --734349745 -817746587 --669718682 -764040009 --569597023 -51991737 -337935940 --40681609 -454953308 --547467475 -160128685 -477373670 -257838436 -917575992 --176362179 -602352 -860290199 -29450927 --558033972 -28958459 --986472665 -879439597 -834476380 --38380948 -667215508 --629032808 -483542857 --220661466 -47159262 -529551463 -175140890 --1596235 -646250188 --34657771 -690950225 --993562342 -415829098 -811972929 -564691107 --316980484 -764665521 --502516182 -137782895 -398131979 --640256171 -506784794 --72028022 -165642530 -33334076 --839862673 -524160973 -938497567 -231236294 -136626908 -491552273 -342462678 -823860605 --770653898 -43620810 -269884464 -677372111 -845775325 -898323855 --901910920 -402166399 -796735318 -283586653 --672887916 -929109308 --659419338 -543340904 -366993072 -884385261 --959238492 -253262633 -632228512 -485835762 -556321837 --493198609 -514471602 -789429019 -684064523 --632228512 -255458604 --601778597 -421068633 -495827436 -985893806 -851933469 --899886739 -201419986 -20451921 --155158588 -424747736 -666130339 --478282951 -59581258 -634087018 -9134665 -834182606 -170181760 -972045551 -177276478 -832281114 -606987906 -681379897 -644395367 --711236274 -573450546 -46931377 --970561125 -234821931 --662998400 -420804888 -664693879 --947083249 -648037487 --693832991 -185804076 -245239705 -739756385 -648545645 -658469885 --577996830 -345577101 -852412151 -951559348 -374267631 -890906662 -298837550 -914473662 --763985503 -797762317 -563423105 --845255623 -748080776 --674259551 -345092852 --898323855 -187054277 -712637157 -134161805 -284963793 --77264005 -279406031 -881475964 -459084347 -57598028 -663185056 --193031996 -999428059 -982115511 -228508486 -107824654 -563152849 -702639337 -105788665 -250846920 -870150107 -59593185 --561125008 -844910000 -256195905 -128833127 --694545229 -840546393 -539988097 -133022781 -621990345 -35219817 --617746740 -257497283 -78706403 -19405199 -689829236 --578678648 -660333643 -99389819 -533901320 -722285570 --85770379 -613028956 -833249492 -278104767 --200506528 -746138825 -757822531 --503606290 -576483685 --555717058 -357645188 -724631762 -306440945 -22636768 --624400673 -916935489 --645288148 -124889788 -536370516 --302768906 -530428357 -646819929 -673139183 -421919209 -247613301 --22798708 -93815858 --127880250 -514148215 -143626476 -805888559 -687829446 -527910568 -309348192 -524426446 --182360828 -372266125 -594977448 --687212347 -922881471 -294661613 --823749801 -957983610 -366085121 -954560452 -703360613 -663152094 --433955401 -891337459 -565083270 -684976567 -849176534 -84494753 -620683613 -289826443 -451816525 -216644287 -869997917 -559477113 -469766694 --433411579 -42164077 -693174313 -622461613 -300630043 -567349881 --379142604 -945591118 -52662980 --849922615 -746431750 --649784195 -738898499 -177180052 -74675228 -177815606 -513580472 --430768594 -48196045 -115918026 --28123778 -690515051 -586429016 -772967803 --473721459 -248357450 -763890256 -8813478 -190925905 -634166291 -707719443 -865356762 -954169929 -874083213 -442451495 --394666844 -652324510 -227557806 -673895631 -779719972 --125147430 -676384633 -381948949 -225810722 -462738231 -966637034 -786806823 -579946653 --926626256 -268595670 -650207079 --666372501 -170564462 -104433256 --56378790 -668820603 --985035860 -265943942 --745132736 -30345659 -334633212 --347512362 -301030516 -452556508 -442689499 --760008269 -990231650 -572732638 --215695424 -678554834 --519710693 -225434230 -473983665 -513275425 -276721309 --872792060 -425408873 -12736194 -623902090 -799538162 --285456325 -959451294 -877174336 -687531679 -577876416 -288913704 -343436956 -224752604 --898261583 -556655701 -498454189 -142302638 -42122313 --559250837 -632750727 -536492122 -460818631 -763693251 -560301517 -346747988 --773121866 -470516881 --147063002 -831743939 --262024204 -49764093 -467194530 --29400317 -582875859 --803672842 -603605384 -892451663 -95452840 -592987966 -522014366 -850288096 --461768956 -527422002 --294815908 -238270447 -583759538 --381602715 -858917103 -948915386 -76651350 -761558677 -831362904 -578465506 -133368029 -420125847 -961740203 -90056659 --541014493 -10498963 -124526486 --211574401 -37002212 -845140374 -594483573 -498141501 --953301493 -689816193 -813795941 -280998920 -377123585 --56971819 -379306967 -786840029 -447346249 --828833635 -968861291 -296213639 -788079789 -274665215 --795677840 -744245304 -813845425 -938309944 -336735219 -423423492 -757415905 -572367837 -23770720 -21550452 -271205612 --364750358 -187749599 -162430964 -416869183 -725253309 --382394576 -841561310 -231059829 -799082488 -209210511 --19066545 -191056644 --298644366 -229781973 -711486221 -515057025 --940355966 -879698808 --646013148 -915571591 -405359919 -86041254 -388901735 -432680670 --150573644 -657274877 --330890830 -757777900 -340952185 -307457177 -573891907 --310631533 -368785532 -370525847 -698678261 -326965292 -508363834 -137152528 -625544457 -539565665 --385601973 -242823905 --533273019 -964584233 -221208291 --10053980 -603275299 -354268192 --231059829 -471322930 -200525509 --865380263 -280705738 -164817326 --398291511 -429925448 -449795587 -572786653 -51796416 -929450020 --894198195 -453186699 --346643772 -876177346 -433914532 -307009374 --85633622 -227949709 -82809225 --792970439 -569156723 -287150632 -816938323 --804003754 -811515422 --258448453 -428699789 -995908320 -444094169 -430959002 -641037745 -8605160 --602680559 -28997981 -477906362 --448034589 -82022549 --64864079 -459138907 -927440545 -121764647 -726614297 --126550274 -67156012 -711547908 -693118580 --470516881 -329300944 -174477821 --709831537 -866305854 -396576486 -599377425 --163411692 -256975511 -977712095 --259102411 -296620386 -118832153 --127692614 -967960340 -164020289 --548895026 -883319543 -612014440 -29113983 -80727970 -317894410 --901340048 -914665716 -583169400 --659153309 -217593567 --767432357 -264822896 -473013516 -912543828 --580877357 -925864114 -155545960 --517671509 -339856634 -248744121 -425766861 -788072829 -481950897 -952066348 -515072108 -373813196 -164727467 -786919185 -832621489 --597392535 -221039715 -488750093 -669425957 --931444263 -136578496 --913209967 -758878994 -1126234 -858401229 -216530006 -484750623 -814935480 -882723784 -431438795 -659784086 -586478898 -673665833 -767144910 -772610681 -112605732 -554498028 -251533028 -273163215 --272085099 -196495278 --953187211 -461058320 -941601556 -663099091 --457237324 -463763548 -495074640 -797227332 --352280491 -874441703 --239133853 -165320150 -182238826 -734326363 --144562713 -621487784 -161069605 -339095518 -328244374 -190969936 --69193078 -641043305 -952025307 -653760677 -916313385 --924958637 -182612949 -385065029 -917675626 -43573315 -312062738 -24803527 --763671604 -789419520 -731674406 -983706259 -68955241 -20574854 -990755030 -697033634 -841078180 -894651423 --261213566 -243412976 -220579090 -187981052 -581192201 -549596299 --74634110 -127070224 -336166575 --270600621 -548131383 -210699497 -283032052 -151868295 --914473662 -93094562 --286556391 -801822337 -976893910 -559001975 -399722683 -722409320 -442405596 -163036051 --715838708 -516953936 -687943115 -494413635 -613361908 -711285636 -414468076 -505173201 -157649078 --132209759 -535590586 --938309944 -878135002 --716447115 -568674049 --503373435 -933123068 -558059830 -49693771 -902170992 -316885507 -563723757 -478345757 -554547178 --674878015 -970056406 -830323287 -142130579 -606941880 -368392394 --182969393 -128085730 -551247910 -953642010 --30500761 -129485390 -409798590 --933241236 -775990258 -502504542 --979283165 -100272984 -829465223 -864994704 --632508633 -540756925 -626911506 -676981855 --839480816 -38227650 -552259528 --118832153 -63534380 -320269550 -835751153 -145921032 -520741138 -918802974 --428799312 -207374816 -83084044 --499881006 -582826889 -461650166 -906352611 -690831341 -550619122 --791941777 -173116384 -283423819 --437301229 -285927632 --19405199 -827275922 -879881321 -385506276 -200554324 -565263377 -181125279 --325045084 -658859883 -277198391 -903385404 -84125449 --64823660 -661286731 --15002420 -40712020 --740686015 -581261266 -725689858 -285122211 -193511616 -781220678 -688184660 --125747374 -522994926 --49712598 -938145013 -698170022 -426494076 --978255311 -944075445 -113236837 -27949851 --619470623 -86892395 -268896588 -386340575 -192765412 -958577600 -644696560 -700847840 -223746367 -617989671 -76786668 -789434874 -396645943 -793531005 --435310758 -180120869 -723252022 -554025400 -528062539 --758623555 -417711447 -835838496 --707213390 -126188475 -535724302 -826281713 --295256274 -985637937 --739826710 -950911389 -133118058 -238220393 --956314930 -656393844 --89626547 -566240329 -69400872 -911963360 -266447688 --139964883 -521850400 -245295352 -844583941 -776089478 -387070822 --989788257 -138200144 -222737018 -705158971 --999862012 -267689710 --951798771 -360516581 -311264596 -930290740 -705880176 -247035538 -658450050 -280082691 -634593695 --348569032 -781749156 --423233222 -553062132 --929109308 -998239565 --567974503 -275086714 --21884214 -302938076 --804123562 -454923979 -133522093 -117739367 -712383943 --290623583 -15485773 --240694077 -661995980 --151529922 -746740426 -256769232 -596605482 --142993697 -427513780 -352955727 -439919169 -417174390 --471322930 -125379620 --560410602 -946965030 -984945889 -287199388 --765509816 -316401392 --772931745 -668073452 -379158332 -692752305 -713307429 -342842220 -643920952 -892633521 -77564354 -308446053 --711743572 -897574875 --864989162 -49174787 --854499096 -696778010 -944092067 -316753599 -207690448 -540636257 -49137215 -797964707 --883105809 -431266266 --449029777 -437104283 -534606977 -113986917 --149944903 -883633639 -534348255 -131378144 -927633691 -680582324 -753843969 -536448418 -611573927 -633426575 -448776719 --759139431 -708678220 -351085740 -188572717 -583735090 -151209916 --803291905 -316780575 --319317230 -791998528 -721060359 -513956254 -865539512 -234953680 -440826186 -482034342 -951540348 -724193729 -288547619 -302384972 --207871363 -248793145 --328244374 -551976345 -404415914 -545825115 -414493552 -958259678 --951169669 -471618249 -703144295 -552306021 --414642842 -503462898 -323767095 -378198154 -483007958 -32395375 -331266704 -685796320 -814713687 --913312264 -21183225 --794300927 -721093366 --208622735 -389181060 -537586126 --253569729 -748834974 -277030742 -88255691 -86417428 -181239467 -350665234 -561718103 --134472356 -949622546 -13853628 -165778343 -481218616 -512833735 --719915472 -863518684 -885729131 -892076862 -28930841 -431231126 -690616984 -528649286 -948340629 -860254832 -957950332 -318507592 -798301989 -921449568 -741456775 --539565665 -775337858 -137777687 -214535920 --953234075 -328879398 --989007806 -945928914 --855394020 -888764340 --457404939 -560722155 -484349369 -914675419 --276651017 -566455552 --55345852 -670344334 -176816389 -491219634 -251701929 -592658676 -924882607 -766075689 --240589161 -121737964 -690783640 -238760853 --80913800 -384014069 --999417011 -93303538 --600155365 -626847268 -267957330 -488936201 -341755946 -412323503 -837323203 -580609282 -6344354 -480516000 -774479931 -493883047 -388002602 -413655929 -887878192 -611610142 -993040430 -364908520 --303719740 -844904339 --50600460 -537456014 -355882229 --520576132 -725377256 -777217645 -645878310 -35375693 --518521440 -859328768 -602867990 -228942437 -503149883 -3349037 --750256980 -626636724 --112146512 -655701186 --200814649 -679033033 -911093416 --774479931 -680287588 -795836482 --614725907 -523241482 -731988713 --89848370 -445968172 -821598264 -746777885 -454676549 -719411310 --865445934 -292055986 --591824267 -59705737 --181125279 -233037434 -221016062 -669746257 -326746027 -474594710 -507397022 -878686170 -974456573 -618574332 -252750426 --437781910 -322505028 -19159983 --475627717 -456714280 -864082005 --172669110 -135367805 -90044539 --184534721 -640180369 -573106725 -745685869 -692286735 -852546248 --355882229 -757493551 --213504459 -561512344 -891385459 -233883532 --909366060 -292384219 --381296713 -57373501 --950671009 -218045506 -443846735 -908967475 -621882062 -237886561 -221873481 -551491870 -824141423 -113173961 -453926875 -913628629 -955935786 -889658755 -50522222 --989844293 -732459837 --604765115 -166343786 -136533434 --23545445 -367730207 -246698639 --116109459 -885049479 -307132498 -646936883 -607576677 -272917631 -246894784 -924276002 -711694606 -590806450 -414840458 --743198832 -534122946 --701722598 -593458548 --34346671 -186517797 -503138157 -145034850 --133118058 -578713299 -180905936 -209409241 -50620682 -16157972 --902173178 -340258976 -721387047 -850699157 -283696694 --485477341 -949911192 --258710136 -73817389 -529044431 -130612452 -369628705 -836571379 --220663349 -32862345 -19095847 --930290740 -728295327 -857744254 --935468788 -592042805 -838989997 -222883215 -543471050 -551119114 -15943524 --930647952 -629224971 -628812265 --747538007 -378794973 -538710851 --469851311 -432160345 -863927859 -518217708 -268657866 --590638062 -980943581 -285457257 -368401358 -576196253 -109159314 --410267562 -470376838 --191315529 -992133498 -149826695 -328784411 -57851365 --707243405 -486697054 -304723511 -54342306 --673368315 -116803816 -451216481 --874258946 -394272607 --420763885 -305625509 -80171931 --13066821 -526258598 -836893502 --168861382 -109583115 --43620810 -163220503 --404415914 -271562662 -336053408 -889261238 --148497984 -428423784 -482538812 -196685309 --633245910 -29604887 -439670119 -239714637 -41264931 -928230878 -168172836 -262660574 --814795466 -174530620 -317546072 --788717530 -342405212 --390087012 -837743053 -426661685 -335376429 -225735602 --879698808 -77791540 --190642171 -955764795 -723296392 -190860798 --668974169 -987208213 --124526486 -424415016 -458952221 -85849331 --589089749 -234389894 -754711431 -351334692 -147905769 -817173146 --883392602 -944926296 -718239684 -412153994 -724538472 -364604819 --979638882 -796646870 -900732120 --985904485 -193329211 -381952262 --648811132 -384226877 --221433201 -37560644 -885266722 --603605384 -122868454 -129630894 -216378459 --552017455 -948524813 -535746519 --993705099 -371896255 -17231930 --661286731 -168293654 --239714637 -747593643 --989047717 -586799695 --881311587 -268439311 -436079837 -466025942 -609529217 -731109300 -455155365 -441585714 -992701626 -294373207 -374727197 -398384778 -584258481 -881893226 -739914137 --298837550 -262466218 --147905769 -815367515 -937910219 -469910040 --939715739 -59999226 -769460873 --563723757 -397690116 -770180262 -898685571 -664217288 -224532554 -468133154 -380094443 -586484851 -470756592 -434215763 -928794253 -869537564 --967031666 -140170805 --429017269 -875688548 -382901687 --872057118 -73101677 -825852868 --24330745 -543885032 --138360878 -192778801 -373094220 --383387315 -203026145 -711295138 --521315040 -826478181 --238595171 -296494769 --854909643 -737679150 -237229552 -527488358 -610041287 -659517245 --470456072 -567738063 -892014163 --811048210 -223151039 -233273013 -852411954 -482374513 -68813927 --242823905 -293483275 -835413599 -457837067 -293727513 -684897559 --162062080 -787245417 -226371056 -237114052 -185106298 -240687003 -469852556 -75780078 -874882837 -835308435 -331214915 -144255268 -675458657 --560301517 -191535088 --336758368 -281196764 -45628230 -489964429 -24451043 --757319915 -685507545 -137967449 -963912146 -939015968 -719114457 -308490425 -535592491 -776668048 -732620209 -619318076 -252981299 -817639137 --918478313 -653739602 --660654531 -341642590 --463594816 -184244077 -119086534 -336814858 -351525521 -464530089 -228448085 -119923835 -952886500 -785717843 -598846796 --190969936 -108523869 -435601475 -998286118 -803565340 --855281972 -2868139 -269837464 -78195427 -70776513 -505385401 -373754877 -764061899 -750822216 -142891045 -214295739 -385141493 -849807774 -742737694 -940819184 --517938653 -833439245 -332486736 -125230352 -459639526 -122022171 -844204590 -671557350 -996361474 -672398828 --285040121 -751177455 -311711674 -106924782 --835696410 -675249558 -517680872 --865531014 -955801421 -210216902 -232962818 -94185263 -568674424 -462740124 --897574875 -743832134 -706543698 -433359488 -145364407 --921588073 -387353266 --279406031 -853518370 --43645115 -415468785 -9006769 --731808669 -646750926 -61841868 --844788773 -774362166 --369097919 -541871483 -367306688 -390784750 --842121611 -585429843 -423438160 --780627557 -954083302 -654944329 -968281942 -787350200 -509678381 -559528145 --341276442 -687075205 -909654283 -838489464 --793807741 -903360451 --438658317 -486792021 --970379612 -941919632 -515217303 --887428305 -780912111 --310987946 -444125579 -250824980 --879621409 -630827937 -491103789 -854637417 --645959237 -726218889 -271626800 -542984901 --457295406 -139270951 -549170913 -299487147 -275091241 --225810722 -45509750 -573643126 --427076457 -386856134 --625473943 -708143342 --666618162 -253423249 -839192235 -155320733 --551119114 -948240308 -33898092 --953929233 -591515348 -875652748 --707805504 -760137678 -156476584 -609964773 -631542198 -343279010 -657956651 --790023220 -264815210 -289079816 --76786668 -591938218 -828179386 --991856209 -16381356 -789040140 --729602636 -219467635 -178996794 -680545538 --371652879 -290056975 -307443744 -308011590 -357695062 -571392767 -509495136 -11338074 -145885828 --484498764 -535762248 --725431981 -777783620 -142842048 -289157372 --669175085 -193428572 -371207211 -969604444 -394559702 -901501582 -779035299 -672097223 -790232099 --845691043 -632841850 --681379897 -956229695 --592987966 -776051590 --522049737 -518328667 --94130844 -475691955 -361414853 -973896304 -770736354 --45628230 -671929300 -999848371 -620336323 -902162746 --305189754 -429086164 -348788152 -178304776 -461103924 -501920839 -172001915 -26560439 -169856829 -55745750 -211368235 -619299578 -530580456 -850948340 -106688368 -445967542 -533914364 -647524731 -95584381 -622425093 -152167016 -915194164 --355796489 -839461998 -174868643 -47966443 -782861293 -914491753 --23770720 -795971278 -569440531 -799780168 --515064524 -390223738 --380094443 -455316694 -903356849 -627021380 -883867690 -837028812 --831442312 -147978508 --370837859 -742551483 -368930936 -915902310 -109152001 -201922062 --264555688 -503557847 -378120404 -812299678 -515252229 -98979122 --608511966 -855261418 --849435607 -648176700 --967843220 -815502314 -528921150 -76562703 -185058073 --838182406 -182265283 --711137227 -854452455 --228508486 -240029646 -499878347 -245321552 -899592774 -947953504 -167825935 --707334526 -836257301 --411052252 -935476988 -843330361 --71098690 -607681492 -275612020 --860059595 -856826376 -58591671 -702092018 -191417862 -142563763 -265715559 --379306967 -241257845 -713221322 -531101446 -666484583 --941172395 -897211200 -817225482 --727621403 -365296128 -752449618 -388671591 -181556931 -949778215 -907226800 -10537453 -992105524 --929262304 -358766894 --286059624 -875346428 -408573419 -651445034 -815114595 --440063785 -335778245 -562692598 --690616984 -766184401 --290995662 -725546354 -802543965 -162265605 -121089764 -770126881 --663152094 -169334176 -574979338 --560276176 -16939623 -458067830 --588227446 -410256551 -930013607 -322334741 -935776857 --562261060 -84332553 -472205608 -703460685 --907776105 -498217932 -854523664 --725253309 -864880888 -31909462 -198021150 -575639163 --481376310 -910285505 --45395097 -758386102 -102561204 -757428671 -265518769 --70205483 -668306656 -997052111 --198195036 -804731747 -25211570 -468000322 --860254832 -696455861 --936179247 -444671762 --185058073 -280226741 -241932707 --998726290 -405407740 -908878621 -655050440 -918360596 -702014518 --262660574 -501982737 -160231960 -179585056 --299487147 -223219128 --839014789 -846663602 -994863396 -500603532 -136096250 -958179955 --212557370 -557868267 -318182525 --578713299 -238114239 -100152036 -174697627 --509749250 -633357244 -906967296 -973521649 --973671491 -937959219 -128511091 --212732860 -470807064 --258231833 -14006644 -998351058 -852319006 -648415174 --671666620 -987992538 --584258481 -454183419 --346586733 -79766399 -22804390 --443574738 -539806779 --779035299 -316717460 --117397164 -581180069 -153564026 --129630894 -545740143 -470930210 -607124802 -473703206 -870150896 -625094881 -136185453 -747059982 -360809371 -794170307 -965784001 --449145207 -978862084 -154308545 -23130987 -195273929 -307100832 -960409542 -841155194 -133076643 -800381844 --294373207 -708781227 --526512831 -261716032 --367460770 -861830442 -394192748 -868962170 -209871374 --583489101 -605511581 -854803635 -185821672 -54792791 -629286448 -253744793 -938276304 --367385562 -767219248 -218990977 -287080411 -562751442 --126751000 -134120500 --455103837 -741431501 -421263078 -451309435 -592378504 --305919922 -328525308 --323289479 -548888164 -247537618 --585899512 -965938254 -91106300 --218990977 -21454021 -276447611 --949690829 -983771253 --759029854 -827571311 -919801600 --245321552 -997692815 -29314222 --728887434 -193777050 -523904586 -132658934 -743055808 --402328387 -402292921 --341642590 -325679276 --408102337 -107524866 -243181295 -865568463 --823114739 -833061968 --51536174 -318620851 --221627776 -662413148 --537481066 -959416362 -415260870 -157547130 -988515799 -512843410 -178241317 -909157311 -753951185 -845154029 -403831496 -498578906 -596051084 -403751783 -577755210 -74662356 -898480893 -409288305 -913815372 -936171014 --591072183 -968506630 -39725133 -361243846 -229475283 -423514130 -9276653 -468071803 -562270510 --811515422 -501866639 -32198927 -795133955 --475691955 -341397489 --14006644 -137448390 -246191025 -665481131 -737306136 -930884604 --538710851 -924136290 -270145011 -503331304 -523636467 -945087854 --777217645 -560012616 --266856808 -514194151 --685796320 -189142200 -118482196 -272101919 -573212672 -30579860 -845536230 -323462723 -659542059 -746131603 -454237598 -266797503 --895388456 -890242010 --130843992 -501525971 --805290756 -64807660 --641692752 -886791366 -354123802 -212248381 -340588061 -756773703 --902214708 -558543947 -501355822 -627542665 -441707106 -392957589 -427287991 -355339617 -904215921 -384974079 --979654751 -357356198 -438233087 -748529174 --15020003 -896509117 -226961843 -78105314 -823308951 --412534093 -534959415 -715265802 -152654043 -554849123 --207374816 -474714998 -275611416 --268673063 -724083898 -703388953 -173747740 --739808639 -787431784 -789949929 -756884531 -179645656 -933676533 --590348059 -820442846 -774626861 --270897522 -899581433 -958826896 -855948743 -720967185 -748609630 --413655929 -3621634 --705104940 -589722743 -755963965 --933123068 -45136335 --102500721 -650041233 -555944229 -830337305 -297566849 -374771730 -456601291 -594063354 --509480513 -344621384 -262031596 -123015253 -434187237 -362887630 -596925858 --763524260 -767341468 -946655539 -291941508 -147976138 -738183828 -36047483 -767009635 -569700839 --951393876 -179882509 --857259040 -606628566 -376522670 -556122650 -759782784 -231674670 --442460525 -713295772 -306188072 -976828 -346812560 --70070654 -739034535 -252464735 -673101256 -409278732 -312268411 --974456058 -996172859 -28353218 -924754861 --319982796 -421350827 -221194222 -827661502 -10528722 -629526231 -509390884 -159722773 --563690997 -634460868 -931708935 -412012560 -987160971 -368533650 -479943541 -93153312 -621733755 -612374468 -473723902 --866847839 -517322616 -190573781 -348347993 --593458548 -646098125 -961586370 -4152237 -797322787 -973040638 -944656363 -205788092 -144073369 --577735008 -148341914 -724738739 --976900228 -283678066 -198974690 --343843190 -860674917 --297096183 -786582332 -512471902 -659567054 -740595971 --297426657 -739050283 -111358520 -325117065 --257497283 -13637248 --965863068 -56765968 -702835684 -971282023 --214483313 -682779711 -990864969 -755983882 --390223738 -879366692 -656645940 -462089986 -492817141 -679505642 -260471488 -873348120 -652506658 -686823201 --866488777 -787225677 -248956830 -943750335 -877661345 -999461114 -541264741 -220005522 -113596120 -515154559 -498711724 --414353913 -717120020 --42122313 -287110881 -634042365 -898529631 --515252229 -747588343 -98993918 -449132781 --765985102 -788660576 --462738231 -9839059 -115275378 -484659849 -545941910 -214193033 -257419244 -125134758 --323922133 -59576636 -431140414 -910208631 -620747392 -768109782 --628247247 -474287147 -971018786 -970202615 -736935032 -655305590 -156804844 -911929795 -424654969 --485971551 -282717010 -392726353 -918782912 -601888347 -149078390 -173340430 -803072453 -786961727 -814299359 -443291104 --496525371 -166069808 -776993552 -108951678 --606628566 -273572018 -211332422 -229750903 -603668395 --120112783 -485917854 --911093416 -695211432 -301302373 --76834902 -182124102 -287743603 -656740090 -515035442 -691953568 -709920357 --112592056 -395301145 -668181417 -432571124 -381535212 --458646832 -626841066 -648992886 -477272012 -259935721 -129062864 -391709250 -313676753 -575277279 -491744719 --173340430 -579171234 -695349884 -20778788 --714557686 -716023298 -512601733 -973420593 -510360923 -215745998 --884356591 -396191973 -58679253 --192765412 -356069567 -770395679 -182393763 --51282799 -627447660 --830242830 -55168133 -556427270 -728264068 -196009314 --648037487 -630045036 --145885828 -807976758 --30579860 -523522599 -902414992 --100152036 -387972318 -901116526 --577073216 -821478062 --563862956 -673042227 -445459556 --933037716 -984560158 -957273709 --514815950 -788505078 --391321890 -834163489 --435889008 -937637026 --558059830 -377683467 -455369845 -851460626 -815622466 -862040 --976570771 -692624419 -305958189 -326812882 -812677645 -53373459 --252214299 -565209123 --221016062 -748747295 -206714604 --760344904 -552732479 -733180203 -314492959 -879111720 -393952067 -772482512 -615816116 -460553800 --96234897 -72859320 -160885157 -616015176 -48552034 -135566555 -924573642 -788221884 -172829568 -11341842 -254330460 --754300389 -797541875 --11265899 -316261543 -770607264 -952705793 -595540467 -983192533 -149837172 -947010862 --20372228 -190732720 -751972357 --306271000 -275698109 -143946946 -480412485 -644454747 -554898478 -982801741 --240687003 -186115497 -903643990 --153727806 -63719361 -283649920 --361243846 -214334877 -738507071 -623453639 -977008612 --695125978 -865027905 -608407455 --436609742 -919071673 --472876496 -24185611 --266093774 -260321680 -48878003 --878530296 -693796963 -373900844 -914001194 -810884704 -180748105 --498725410 -823649679 --602617110 -818491094 -215209238 -432189585 -229396902 -502101979 --181633419 -664663906 -201715600 --494583294 -430031467 -142429325 -648531683 -495459132 -101789221 --610041287 -436523343 -867651020 -17419095 -320815952 --614376370 -700086740 -309680180 -4531175 -122220517 --384014069 -332673447 --788764455 -440532682 -175020345 -182327061 -428226755 --683190584 -665659021 -82142510 -281964045 -314503565 --231816624 -279424104 --356223951 -635466490 --907002772 -765209213 -771286702 --85201069 -577262585 -148473595 --938804017 -373880826 -496457799 -599251554 -832097200 --710415839 -986502546 -507669249 --891201562 -566240469 -747359512 -735136506 --142842048 -363718371 -39902500 -448701494 --984726354 -901806551 -57614726 -139677370 -881618932 -945516374 -485038298 -78361722 --59522151 -718047726 --449132781 -55243481 -836424402 -148849317 -427831581 -532906898 --407266639 -789639771 --55070367 -528139894 --574979338 -838474471 -474792558 --914675419 -332650332 -831370641 --617465315 -406027718 -67141481 --740551268 -840387200 --827562708 -18709474 -760436277 -32622208 -435210922 --172272696 -739879648 --793298636 -751742985 -517348187 -227103525 -927381513 -950298462 -706638894 -686627305 -159052453 --502202537 -662733596 --453078757 -461051119 -295672486 -526972599 -430444622 --192207214 -503880970 -109876793 -446927753 -571465186 -745486559 --821001301 -616923016 -277300988 -83192760 -919549145 --826516036 -857341203 -26305531 -798955728 -152582185 -860144909 -975024411 --988291399 -192827222 -478541412 --305509783 -330948173 -395749859 -929212038 -631088491 --235958837 -33491937 -996267734 --104219035 -622818276 --646936883 -334285382 --427095026 -297113841 -457529039 -811170918 -75154458 -716273424 -970051965 --702835684 -5592812 -310875781 --524491951 -305557106 -714925913 -881438187 -277699171 -94816024 -27853542 --395301145 -721502831 -828789211 -69576602 --660333643 -488277020 --627253144 -290781207 -223765121 -783354750 -197703573 -731963643 -518791729 -102900679 -84519756 --88374869 -326341167 -983804233 -442630212 -283250778 -395205150 -50947368 -378171960 -717059392 --736842038 -301084258 -437994652 --238780565 -945604249 -935639622 -251023643 -180253019 --369521464 -203504488 --945373919 -820181523 -659553146 -784011232 --623935251 -141023108 -649253344 -663066216 -688512177 -33697805 --764061899 -264083513 -50495631 --673665833 -568371852 --633375172 -979426140 --621304883 -294585477 --136096250 -380015114 -139739708 -104525958 -990692553 --571465186 -871326908 -17590096 --621882062 -943057531 --418434177 -328868695 -268735464 -873919699 --846343708 -489174336 --845030895 -558968308 --686793292 -267797489 --84519756 -411882899 -69006486 --630045036 -404562658 -8163021 -836423029 -200647831 -761788860 -772431717 -170655259 --637438434 -255203720 -557695480 -625944677 -980819662 -228864259 -724675620 -645304984 -73795685 --552259528 -131594080 --844204590 -20573352 -245035925 -757234109 -565141059 --58678391 -192981635 -327285955 -576956783 -975172983 --228448085 -473557028 -949336876 -283220742 -165560158 -17875456 --340455211 -872290488 -196490702 --415067862 -846582563 --448648000 -950946284 -802183932 -99320317 --220817614 -831970365 -100925040 --55243481 -332364728 --606098937 -133300477 -877173965 -177256915 -796701036 -773281937 --332031046 -965258416 -298870538 -865195285 -984811807 -747645678 -47373539 -531547019 -128683227 -855810607 -957353805 -601298045 -432661524 -840130998 -146679017 -247351313 -667143638 -623776351 --592430240 -212402972 -667792488 -845360122 --305625509 -519819146 --329895630 -378027368 --188802920 -321863820 -977145786 -358311508 -85658298 -186479110 --815351537 -323453619 -858900622 -932402271 -506386966 -702952003 -358893935 -716623587 --901443941 -923689245 -92734729 -963954250 --396191973 -517301311 --506100788 -131954694 --177979750 -832016784 -600887327 --141655967 -963030791 -379233310 -807387174 --24802631 -631553895 -981072162 -160975483 -529613586 -33161618 -44442514 --56367515 -220497581 -316574662 -647505791 -454652074 --233883532 -443611507 --591283238 -773326323 --427205175 -419638532 -660452490 -569949364 -359591435 -25346278 -309341355 -873012179 -841057912 -910940056 -260373583 -306476453 -520852957 -157773944 -78105022 -702665600 -767690680 -52613612 -273371820 --727451635 -977901888 -937242118 -390515761 -663297276 -262248358 -561621386 -218535437 -970002697 -559336133 --101438274 -819291828 -8596315 -723346927 -643551632 -427924703 -627392358 --59293205 -515704175 --190860798 -153321416 -866907153 -626068475 -417744230 -653674896 -805499458 -20164253 -95829491 -978157110 -71082117 --960019606 -680824755 -884553436 --202575447 -891421295 -297814497 --273677689 -92853193 -671063017 -389399101 -715845738 --278048225 -76016183 -816798865 --419638532 -58985725 -422646460 -59906973 --525604366 -333254383 -308217941 -212953592 -943768565 --399319924 -659232850 -476623840 -248077111 --617007364 -773004924 --948737789 -723729727 -392203972 -645062567 --128921960 -564666379 -550230606 -143619132 -783221452 --446775655 -463375134 --523636467 -872644162 -32104633 -418006937 --82342762 -745945995 -911994478 -341792613 -814886312 -953797911 -453185808 -757037807 --497412690 -863412235 -322266199 --379972567 -950220539 -235739681 --161174241 -653444550 --357356198 -198047368 -445303434 -796009885 -835115050 -39210510 -287386211 -888545526 -306067395 --63534380 -450673759 --389399101 -874446115 -273708155 -907762463 -580000669 -795838482 -866363753 -232318928 --877388255 -311308420 -293324398 -294511227 --618045358 -937018099 -663171363 -326188593 -996781861 --225735602 -342760466 -811642424 -646084634 --85845946 -615734782 -67487399 -705361599 -122586083 -739696007 -522504681 -89665 --287543529 -272282311 --59932283 -23404270 -452117618 --439670119 -599167368 --566877657 -606618544 --686627305 -54513575 -684352533 -444860261 --43975058 -69909967 -440027297 --240573746 -319752576 --241230194 -145176311 --283583226 -201157763 -142270803 -295143442 --421350827 -353695594 -639650642 -165092015 -134696814 -472303689 -589580306 --561061420 -600443175 -677267949 --854637417 -125323740 -443894398 -108159954 -326013545 -455245963 -624490351 -664641405 --429715642 -696686202 -550495600 -577265648 -533667575 -982861178 --863518684 -312373624 --819345722 -685240291 --623776351 -918961274 -426063123 --643924372 -695137933 -99821592 --721502831 -729336745 -361942861 --949240226 -648845221 -701255890 -832360879 -706618586 -119910773 --785962994 -421063135 -163537311 -913222125 -747423568 -346045986 --842218232 -204213422 -792081645 -951458810 --508251884 -433777392 -997159631 -975784176 -327271261 --154308545 -585948459 --828028046 -223824400 -752374624 -257396257 -130700259 -308231782 -216298228 -728597346 -218485279 --927396493 -503285341 --709859184 -654949629 -689757664 -481475414 -32117869 --755955040 -672065628 -471107233 -180548459 -521355065 --754291761 -815545826 -752256236 --79523951 -301277538 -248276594 --185599825 -324391358 -711964787 -231059695 --661283745 -689272086 -780456630 --708672397 -667346356 --88076800 -741581979 -402833649 -851904223 --886050070 -667679681 -6719545 -556466944 -33651045 -265922909 -129045974 --833202096 -882874521 --792996514 -457061752 -137251147 -976616482 -685353525 --628812265 -509627444 -791774278 -347005254 -125312091 -177648927 -491370267 -799277905 -153539268 -411431824 --697291048 -57056823 -739653541 -546579627 -829388422 -606520273 --695608884 -806902194 -441850141 -403094969 -959417794 -829864013 --546872004 -358997166 -588725520 -570075211 --481114927 -403786146 --741070855 -129776243 -666246028 -942895382 --57598028 -865030466 -171601491 --629526231 -947499429 -472282937 -964691666 --277754772 -773027337 --773865047 -989704081 -902081539 -792789122 --15691489 -161460810 -404251574 --651146903 -134587375 -217143292 -675009359 -292505148 -459248296 --335778245 -894535692 -366061719 --301804120 -936364269 -237994992 -891151905 -477906959 --263612068 -731726549 --413825041 -784447739 --62808809 -946391946 -384704183 --918088894 -189720213 -497701587 -210220111 -618702942 -453355475 -138710987 --133300477 -364269538 -595662823 --505420352 -646947322 -288289388 --971665129 -99414953 --266274178 -795968108 --874882837 -935308566 -638827336 --968281942 -764985447 --545825115 -968677023 -794461357 --892891461 -960995189 -576254541 -127760195 --191417862 -343117234 -530081440 -841607187 -922729866 -426029146 --364861800 -976213610 -810367581 -435847434 -17175055 --152582185 -282053928 -46574264 -363213325 -927746357 -629275488 --383213992 -671691563 -242338576 -144636475 -262356586 --32395375 -472301628 -509529033 -626070601 -569597424 -919115030 --806912841 -8151262 -325293293 -855078043 -82003875 -127517102 --98993918 -729619577 -293345491 -20734390 -360034920 --980748942 -524688794 -257835191 -147753501 -347082952 -465774108 -469900548 --102900679 -360852510 -705794496 --947076988 -86859276 --258379753 -98913388 -343042710 --596051084 -815812862 --516581842 -875245525 --382614535 -177122581 -313605945 -720402957 -128307638 -958341110 -189575690 -701950596 -194938951 -61768132 -291717813 --336814858 -961423786 -905428196 --823772372 -781390933 --727363762 -373747297 -111163333 -678486249 -142787640 -734225301 -574337615 -229959876 -145214655 --750045298 -243585509 -830963470 -894079863 --383489600 -859624340 -725233799 --445459556 -542398574 --937351648 -501645093 -975603214 -510420810 -94787680 -40575590 --120922169 -915729814 -345394016 -814471750 -676059325 -908999415 -899106337 --856399192 -348503943 -926358976 -102486512 -808423769 -570319408 --502504542 -267456004 -191152280 -909105502 --737679150 -196585540 -937157362 -479919024 --438613175 -186016110 -598274251 -959378162 --663297276 -251970700 -743353971 --623007276 -495030120 -620080829 -662109952 -579041317 --963954250 -316652512 -825344085 --791774278 -450682336 -15589232 --42373331 -606282120 -842271986 --118482196 -12427871 -887475644 --868473060 -296171287 -789932226 -295832292 -97046196 --689816193 -473254829 --208146971 -85309624 -550825115 --581573580 -961843421 -453630009 -90313471 -624918461 -81052970 --419495902 -357635783 -137103197 -955499233 -284167888 -447373374 -525058742 -963822761 --702092018 -959317636 --104363365 -95178608 -476152779 --148849317 -727548284 -310325343 -491578506 -546913957 -748931089 --243718786 -742248082 -983103096 -746048900 -370904326 --990701917 -730810235 --773004924 -906907554 -538613688 --882723784 -152807308 -821621397 --77410481 -185045191 --837028812 -612315793 -18398851 --64807660 -765296784 -35272797 -919883896 -98208132 -522278118 -716787115 --57283822 -399526714 --72997692 -583214718 -206168568 --454183419 -969928678 -710614227 -103656083 --502500528 -872189171 -964084811 -199354098 -197666666 -527881750 -668451921 -481405845 -518126888 -2367019 -524193496 -168885913 --952398792 -739040607 -584582664 -622647024 -748281250 --954560452 -611891587 -656047356 -844369971 -388063416 -180570674 -530048659 -776268099 -674092661 -616506401 -710237049 --711964787 -901314816 -766671330 --434146568 -857334460 -612559794 -861804274 -552430312 -106780100 -301757623 -286939802 -504673002 -580319668 -464912065 -712940696 -99993744 --134272001 -246128705 --788914583 -463928414 --736143108 -39940149 -547369241 -263316294 -928461688 --177180052 -356732576 -99702453 -507933301 -504823034 --289826443 -846181471 -357763050 -757885078 --377123585 -805036066 --864129601 -314168855 -399040609 --872049012 -267234070 --698444387 -775345478 -493298462 -79363249 -651898035 -758629633 -815286283 -191114130 --999362349 -703835320 --660521943 -507770866 -393174888 -204031765 --129031708 -323666515 -428859606 -951805669 --369516784 -985880122 -455809548 -774783240 -480417938 -338504705 --930548175 -753551877 -202450871 -541684395 --477930479 -280999379 --901291989 -22986223 -228848990 --627900091 -322242288 -777156430 -419729223 --591938218 -356969876 --650927625 -131422916 --708028473 -824099243 --199941560 -81048973 -508239245 --267456004 -284090902 --185821672 -879140268 --240867516 -642800200 -472421058 --127849412 -888428877 -563217273 -63807253 --411882899 -962486216 -481799043 -227093859 -272005910 -950766851 --699141688 -250400345 --293727513 -990631051 -58436872 --142933238 -916421369 --325741695 -247333535 -124750175 -330362151 --356552412 -511573516 -816237576 --275230657 -92298655 --911158510 -183376232 --256975511 -655798005 -873221335 --117739367 -208904443 -939235515 -229160054 --603101885 -307216509 --560322479 -98632548 -108670564 -997273407 -323944128 --563147355 -3253428 --573643126 -422506371 -626270042 -867730003 -147793735 -275329384 -299271814 -323865131 --426044812 -967904778 --82473611 -812325391 -207576299 -401212093 -778713048 --938276304 -641699710 --399491969 -120117711 -640724833 --171601491 -832661655 --615666789 -861624581 --601592488 -723774557 --243585509 -394580216 -846613552 -491550156 --896509117 -13659185 -537388304 -437912613 -642212857 --260950382 -804378310 -712971173 --111650328 -970786382 -912961761 --337837548 -599532900 -983134414 -924301793 -910713515 -171817500 -866674819 -580493551 -61302345 --364269538 -787979491 -999955422 -294898793 --610130182 -58645901 --539105270 -426279422 -269238978 -728442038 -950311161 --693118580 -694781022 -913727809 -517156686 --750323897 -35358428 --182393763 -758898275 --15056413 -438783454 -440835321 --223403669 -673104289 -995789055 -385930372 -249630506 -408170208 -63780063 -480561036 --439165977 -678422978 -85384824 -112588334 --759365771 -808834460 -775712736 -140981793 --45668011 -280400010 --531825808 -769547693 -366417955 --835308435 -934710988 -485238673 -868335075 -314982430 -263345767 -721709563 -235183066 -277772353 --910070606 -640874068 -40793470 --142787142 -938428068 -927980814 -864657594 -518391546 -941220593 -20489776 -972146897 --677267949 -990424906 --148199384 -687797160 -646240518 -534347216 -790044577 -125514152 --355561482 -234617132 --629275488 -378410204 -785129076 -14407291 -292403934 -604911360 --703835320 -510612777 --510541033 -107733144 -737890237 --747866655 -227007 -1238924 --641043305 -523247508 --192281327 -763004493 -925528794 --441523892 -223839038 --119086534 -393930845 --457529039 -707218274 -514213055 -239712877 --481799043 -117002798 -898700377 --978356166 -114784925 -592916067 -141019978 --577262585 -127904818 -436372158 -768151770 -822293845 -890273081 --32307288 -407075160 --310976855 -125954731 --28353218 -95310980 -749876698 --230870987 -54873190 -732319573 -481824633 --343279010 -620043656 -48984522 --566240469 -489518854 -59423679 -267652365 -462707790 -560779945 -944713197 -790032973 -472884069 --773797193 -361882556 -67984308 --919812096 -152733848 -460372448 --292479713 -455889977 -130874057 --43706139 -39123020 -921208586 -173438347 -639650442 -446645080 --81310663 -902502195 -726005105 -878199599 --622818276 -643088883 -937648673 -763763363 -597992670 -736427060 -852726204 -819009047 --472415923 -807569183 -514110921 --16939211 -689078464 -226249881 --338504705 -152384389 -863616772 -541782260 -856854937 -665996072 --848675227 -673466218 -165095019 --786806823 -884808124 -822304272 -292343038 -665978023 -465469902 --766556655 -506064452 -580907132 -824125924 -286546848 -499761870 -514399264 -701066736 --709825422 -634558063 -976993388 -940422471 -514031923 --882874521 -924682153 -20368620 -246824226 -784964525 -325655801 -558340104 --456601291 -753526783 -386087186 --716843189 -81612120 --227103525 -684248829 -797307790 --266572473 -590172520 -233944068 -600290193 --259251852 -925531498 -298536413 -78649622 -540131623 -497937470 --75154458 -822873557 -878840213 -471854411 --547211369 -703850281 -718627099 -824599643 -351089936 -513953397 -252154163 --562270510 -318096001 -391501898 -590562395 -236367400 -149248341 -553483908 --24599854 -179637391 -180023888 -722002620 --402833649 -326508933 --353655709 -161868315 -390953094 --473850599 -188618647 --48552034 -242352477 -866250966 -196610889 -862805284 -205300356 -65020724 --971284596 -403605586 -79451461 --218107382 -978666043 -347586977 --624490351 -851729902 -235140023 --69400872 -622193927 --322242288 -997627918 -907841250 --875652748 -796514333 -845088364 -425697017 -884217095 --833189398 -303340839 -148928016 --827966817 -555613192 --453139399 -811176754 -806034534 -624818488 --60012864 -233473165 -980323695 -916644058 -984495031 -202969131 -792897110 -761453456 --308231782 -39654551 --27949851 -677794742 --985836458 -187569679 -106982497 -176811277 -189213870 --51991737 -661312182 -860957735 -78362105 --13615189 -807346742 -206397897 -925463270 -737097988 -111546645 --560578222 -548396435 -272988919 --7956538 -902296866 -953148010 --923513693 -567369705 --986054929 -206548021 -992524795 --203054566 -254830286 -73636649 --57984124 -107466272 -737134001 -851828456 -389112679 -452201274 -314335884 -564653683 --562692598 -808512782 -611047347 --914245853 -25606940 -688798514 -15970527 -51309400 -241529228 --844197317 -276540257 -528835260 -109900620 -578392684 -280679023 -324115496 -352178349 -26836867 --596939182 -317129094 --670361876 -733044152 -805466922 -334786717 -553562554 -698510742 -588051953 -803157380 -71929593 --659539475 -54732050 -84176064 --20489776 -368863955 -423772856 -147327689 -320742645 -569640373 -860500671 -845336947 -379348612 --937242118 -585867135 --89497884 -388068433 -875657059 -126032566 --3410806 -398247279 -262428387 -898638611 --142385278 -929657879 -940843671 -597303434 -838385047 --876459812 -504297346 --216530006 -761959655 -716608985 -189108264 --918782912 -415967208 -391352362 --294393394 -723076121 -808822566 --787245417 -573670324 -313320296 -947593070 -77175629 --554025400 -649578382 --424842558 -543895138 --498578906 -209044095 --409898688 -905010320 --174868643 -826800620 -868819499 --323944128 -936888295 -711940127 -894105998 -797244411 -256489426 --490601203 -850477926 -300462932 --824557745 -644369047 -397396945 --978862084 -890078306 -639324536 --174424099 -4458454 -362427532 --919119522 -864713483 -812141857 -407570331 -211525531 -196523611 -915230970 --420139549 -588895783 -468513532 -146894443 -970711411 --996116331 -944396668 -893671551 --677794742 -88591532 --425408873 -437486459 -151093561 --785902392 -562606232 -761442153 -643712811 -476472735 -346186458 -648122359 -585313877 -749709784 -940133169 -891097185 -349760280 -906806147 -982055347 -594540221 -531568480 --611047347 -685559898 -911378114 -642357613 -14352528 -352226326 -570568749 --14407291 -825525906 --739728479 -217891305 -98986568 -85156808 --843330361 -309091385 -972225339 --206402175 -9834850 -965220800 --761311470 -34162788 -411754185 --14352528 -18686073 --317383904 -161344432 -773374256 -164226177 --276447611 -406897617 -747778145 -861924615 -565426789 -464608818 -416856418 --346825075 -258502119 -358652080 --94185263 -420705984 --845755071 -307470312 -154700995 --757822531 -167761416 --805691272 -763369162 -199869799 --910171143 -117616215 --640302950 -561822608 -809255983 -620362500 -235037882 --444100439 -253723927 -272252222 --770126881 -636891274 -192845619 -739556920 -812941407 -986111161 -496178389 --621547257 -80554391 -635705272 -548009062 -244744078 -883620500 -433075825 -560770229 --468133154 -898631116 -955294970 -526829073 -388041424 -568237148 -735591487 --99414953 -692442967 -85488085 -801871576 -132435717 --449201050 -592856187 --455637444 -998051092 --437994652 -870367487 -340630698 -629589200 -242704125 --53278858 -781942115 -426319652 -861631865 -573361455 -106129424 -454773989 -696572684 -809929771 -446748683 --147976138 -111509553 -54171830 -652224430 -126665224 -947276625 -997467335 -27076138 --796286449 -470735060 -244943453 -870968174 -423988564 -303380125 -690139758 -911318139 -442289273 -96861809 -416329016 -556195409 -883277369 --846994503 -380456006 --308490425 -609802711 --990390209 -232472931 --872539928 -387230061 --933313497 -904452900 -748359088 --194271792 -377926130 --451997654 -612812668 --438331983 -164397738 --538792751 -540989963 -437725958 -726329908 -475498900 -145218763 --892701924 -734645156 --287889227 -591072298 --642979790 -46147420 --508046875 -485038107 -188538240 --745447050 -884075245 --116899262 -658226052 -836999845 --351525521 -76807967 -132182384 -316751191 -487751707 --150965261 -927265637 --410256551 -138457343 -551840637 --964725240 -553891354 -398727388 -908307587 -770248711 -925649843 -429681562 -886081676 -168599593 --567430378 -951563243 --462707790 -228855853 -310175710 --776823486 -184343316 --505084739 -51642507 -824208421 -784484244 -407643819 --869843516 -945882870 -935398473 -225688632 -550142723 -966063831 --872844461 -906194751 -255053742 -822712715 -259125086 --590061128 -231103847 -760932977 -970847886 -893921478 -333981098 -679005527 -909414741 --247839409 -198677240 -500064628 --606618544 -706331871 -506710401 -270968739 -879689063 -152055420 -841763953 -885398972 -510081137 --557415758 -255259625 -135129689 -965463225 --983134414 -518952975 -814844471 -255025870 -236372088 --43466441 -592868919 -80552573 -60738693 -307225117 -331430923 -756978224 -299357253 --945928914 -659148230 -784526509 --137649202 -800489367 --238760853 -922184061 -918594867 -677770464 -261103478 -820030563 -338345543 -3324208 -935524449 -952456942 -575657694 -463127289 -840615346 -458360751 -965919978 --326341167 -328437742 --791128489 -241705140 -844576516 --342598577 -966757399 -598127884 --602101627 -883377965 -122962705 -482291033 --470447721 -939084881 -538734456 -263971034 -27938148 -894929841 -940886532 -898319684 --463776586 -512464587 --308940663 -521518001 -296325572 -223125211 -798609856 -633927423 --521355065 -240347238 -298079882 -410554670 --322015979 -403777332 -874060261 -355925434 -588464855 --182124102 -111158421 -976381006 -961625051 -726206111 --503285341 -692223322 -262695621 --42164077 -728800666 -103681361 --335376429 -302855192 --905428196 -922089073 --578465506 -785788416 -214592635 -416273230 -953222944 --106924782 -708932938 -359114888 -743230166 -116578921 --283678066 -63993721 -479179074 -16284793 -639753035 -494781230 -36743295 -440911856 --44666071 -478208088 -540621250 -884811493 -837319232 -446698500 --333349883 -860827977 --829864013 -168898137 -736999070 --36860132 -624268125 -653723 --568237148 -462849189 -531362102 -300009961 -236652662 -213746058 -929963090 --765209213 -39519412 -819326999 -436990385 -33371257 -304275372 -154029210 -357788388 -501508313 -181387775 --552732479 -761987140 --256828447 -830259216 -561320796 --826783831 -832767229 -758347360 -75626327 --96993565 -608220257 -177997515 -728626872 -366798443 --279961094 -387158070 -663448997 -221397975 --249789820 -606513617 --392352441 -155649539 --662413148 -527646207 -53707092 -892728753 --477373670 -320555811 -964881831 -450064884 -418655265 --128458119 -519078331 -167773119 -535727100 -494177149 -783830632 -941255889 -671775014 -740865233 -255064113 --292384219 -666222840 -359213183 -436096428 -437177336 -994441452 -84729826 --359969419 -610161149 -324626069 --506381488 -944195283 -592642024 -987229919 --282004117 -975100419 -972519531 -898669436 -378892070 -578314094 -20764723 -327254464 --625913484 -839365299 --403373639 -956582981 -34103455 --633517584 -622206053 --503409376 -520531412 -439089826 -47975729 -207013463 --363955229 -955550873 -656972037 -559195045 --824599643 -703099255 --599377425 -85215421 --312252029 -294163590 -119800472 --266265787 -889316059 --758879747 -616279644 --366417955 -682381623 --275730525 -599690713 -417942812 --20722526 -96057967 --576483685 -774747756 -680788204 --881044997 -499097172 -337719413 --991150057 -727687029 -317748403 -675455750 -24292882 -794096945 -120761896 -690345411 -863171964 -424673748 -886507872 -996453789 -743477018 -397944138 -129797040 -979784451 -528913359 -748802551 -770347331 -282226400 -451502617 -394230727 -108068656 --439413142 -357896230 --229942631 -752004319 -915309837 --119910773 -214851917 --439734662 -10521218 -726983746 --325655801 -497955600 -628834453 -214796582 -517058528 -139922320 -136090299 --851417454 -871260988 --648574044 -238967078 -366700844 --535724302 -212496762 --358059441 -944294851 -824925768 -8127980 -682241461 -310628393 -279514049 -933330842 --495532035 -318916634 -313684114 -774645910 --784526509 -759932332 -865481360 -503117579 -493719733 -828548745 -711149447 --269491610 -466657793 -912783131 -208014532 -81774137 --209687014 -842882232 -893581690 -22565260 --534347216 -53972195 -498642596 -211735271 -276273811 -577176371 -902890846 -541026088 --337593985 -439142389 -751584758 --20526945 -478050949 --94014205 -101887120 -630611415 --234589974 -880197797 -120052254 --344984150 -114434106 -925058918 -640326570 --450682336 -165817456 -386144598 -256253437 --95310980 -913025837 --950298462 -232157799 -882290377 -847811787 -790048328 -434703573 -696903765 -831815387 -869114750 -506698550 -86344007 --706006586 -938653337 -45214962 -616914576 --761788860 -310628496 -537220815 -666046152 -387642992 -276271854 -245717334 --557695480 -706591596 -210559380 --228864259 -290801255 -585846306 -626675480 -139016935 --728442038 -948605635 --803304811 -765419919 -981433165 -789390816 --603047742 -952109754 -193449380 -741172752 -435225634 -693975963 -92641584 --515512797 -651967077 -45534644 -112843510 -323276594 -373091489 -297251335 --151093561 -316033318 -7820453 --978465447 -303336109 -44652077 --310299696 -932936183 -307712803 -45884432 -543636214 -185531693 -839874460 -871311805 -910936525 -34433318 --13341921 -690495337 -417901424 -990361331 -230229563 -11165142 -911061217 --142266209 -495553519 -615561451 -92089447 -798288321 --983771253 -868555969 -908618870 -974830977 -427366735 --36843442 -340291409 --961423786 -376308067 -499310082 --437104283 -191975333 -22893061 -132415089 -230932690 -960176874 --597303434 -774099165 -103613030 -37628316 -699845460 -860231791 -887784671 --739756385 -174445698 --301302373 -161479081 -635727125 -188950273 -936716328 -183364683 -654475271 --799123055 -919760647 -272514466 -906465201 -475027712 --86859276 -608747348 -733867362 -378981954 --552306021 -251348037 --722266852 -803794496 -418955075 --165642530 -986452692 -443749510 -945725671 -687735253 --509742308 -978511246 -773339048 -706256642 -943693470 -62783602 -653539249 -522516218 --728597346 -556183556 -31890259 -736721154 -365231815 -146311303 -677474882 -601182923 -177087992 -84868330 -783701746 -763659837 -459491369 -738565627 -882120996 --162875364 -147698409 --864616733 -367036073 --230701427 -206219232 -998913065 -570880624 --989503523 -83075703 --768008144 -602444903 -584484886 -570002515 -208941167 -336546301 -714463997 --539071321 -422718690 -713866460 -385995937 -528094218 -2581751 -267475002 -112427727 -99669233 -377184101 -768841450 --302478199 -625903407 --983279611 -708591237 -223821581 -363810918 -545249654 -372195600 -111213794 -943334680 --423988564 -885971619 -12813449 -395907132 -770269426 --611124690 -397381514 -469893951 --714513539 -156596366 -576826700 -127291839 --439089826 -264754904 -464281920 -612130138 -583362735 -980522685 -15246762 --233473165 -257721827 --974830977 -8057587 -199364821 --97046196 -975168803 --902752110 -266134621 -927823045 -251319232 --820128377 -768270583 --151823764 -596186510 --69560306 -294468684 --503836546 -295730084 -410189765 -270329989 -616450462 -48394398 --939235515 -958902981 -905041145 -113644763 --918948689 -353040849 --504341989 -281195444 -46966396 -309997864 -102278531 --795836482 -619328053 --385141493 -191478920 -191671386 --692656823 -388191662 -146318807 -450595934 -92614707 -8497946 --242704125 -280355384 -599890708 -914078797 -263063191 -184278648 -220960810 -754235711 --888760673 -389130495 --783701746 -289830332 --843186368 -525153815 --766184401 -968912730 -988718036 -96430465 --432680670 -181099345 --872541260 -48381732 -326094151 --228590304 -250888084 --983554068 -809238010 -131594037 --2514717 -306397168 -624907624 -201610265 -718425418 --873563442 -383665623 -921472655 -574927790 -228910268 -244428397 --875346428 -740960552 -376114891 -9319952 -656123081 --112991105 -115453796 --714342827 -783370705 --29113983 -401867591 -700270995 --334002133 -367605495 -797665730 -142445506 -863594215 --864006205 -690253818 -215488366 -103821277 -890843242 -868714833 -416443414 -56262572 -585841511 -361371710 -267546680 -825411415 -672412446 -614747311 --10528722 -89235670 --538919961 -401862437 -342227628 -783759141 --138457343 -204653606 --115629880 -676505357 -466856237 --37749944 -687481408 --471803008 -858517978 --394559702 -281987064 -595105428 -270422371 -195452866 -39246760 -501511056 -38849610 -445095701 -5533374 -220299179 --437326346 -956011375 -597838042 -481772279 -256315816 -78841615 -32421199 -930645059 -529392530 -877415913 --118099435 -795910759 -685942227 -655845903 -37530354 -209079795 -74177986 -721344579 -236454320 -115616924 -383352124 --336104789 -499258211 --386840349 -575819956 --801826000 -741193636 -369116912 --383352124 -953619582 -879137678 --937934924 -759988615 -226327665 --568127698 -192890415 --950815383 -751285467 --483362093 -354327753 --185804076 -448178436 -110299912 -763616504 --265844442 -855394407 --390304030 -285298168 --165320150 -43270065 -650937409 -742746613 -971884746 -250651465 --286340299 -505327825 -113800500 -411454495 --666246028 -338133735 -847158179 -385219992 --810526948 -923298486 -996807065 -696007064 -166064182 -898940508 -539837152 --650790303 -522918730 -577930052 -225660407 -705289423 -663875647 -816894550 --228839624 -173056 -93402762 --14154138 -569164351 --913852114 -820875302 -549769083 -761764626 -612006158 -255182215 -201130522 -424615483 -938018295 -850130355 -821616231 -913390193 -980671553 -815741750 -938844198 --626675480 -125134345 --467558846 -166127271 -846672678 -536707528 -6394984 -473516028 -303044194 -134880622 -452276788 --897211200 -875289238 -124108722 --606917389 -555582910 -134318974 -978782242 -763028769 -908215934 -343908900 --51870512 -925618202 --948915386 -253986691 -225248456 --814886312 -739627988 -658109122 -768555610 -998088771 -12319092 -737716808 -33328692 -620759765 --317651728 -281533992 -650885565 -90276442 -212997866 -692331966 -10274111 --157891301 -881362166 -175178190 --262428387 -145561953 -428998246 -90122 --906806147 -783302751 --926358976 -511648222 -407232969 -512534825 --864748367 -326818528 -209994301 -484156145 -508640239 --72930853 -518032830 -529092493 --520531412 -165374104 -100885052 -578030801 --422003633 -38843805 -819114733 --678486249 -973625939 --427831581 -181891790 -678977099 --984945889 -68180271 -685836690 -269934468 --735723874 -792788266 -814505717 -8417108 --424269141 -329920796 -243976686 -372274049 -238738294 -778908926 -114956968 -122532539 --910782459 -414701476 -340488911 -580487439 --792694777 -668534760 --694330990 -581593712 -816865774 --416799819 -325870638 --376941766 -754924517 -103257264 -863191536 -984303799 -250665418 --55168133 -828558717 --771286702 -225208453 --734885876 -460114301 --301277538 -992510040 -752816879 -301254105 -991377729 --815741750 -994143817 -254586698 --452276788 -212292309 -803153092 -665521024 -869805427 -210603670 --86892395 -78974420 -876173455 --815495119 -52513784 -457569716 -465627056 --323303658 -476305728 -713075846 -761222484 -610710530 -996159196 --655798005 -180586031 --462550577 -148197768 -472100956 --522278118 -316928142 -105260826 -734618300 -928577351 -550183685 -622771774 --13448238 -776954112 --673104289 -243721784 -924235370 -63735607 --936173519 -343543399 -261140564 --605121129 -54191747 -71377755 -52150818 -700181810 -178832869 -666101018 --826281713 -251591100 --621568604 -489890637 -897389391 -381794356 -64564656 --930884604 -307635511 --922341830 -731345297 -850171561 --486957506 -553643296 -68288079 -278296378 -350288841 -869654492 -405432217 -603697101 -884489805 -405971447 --130769835 -694519954 -472363967 -91323283 --685353525 -241936870 --676981855 -429176352 --297113841 -877220232 --313320296 -772848979 -161461142 --368964177 -292985800 -641731018 --608747348 -246737052 --15246762 -500583712 -603507005 --713866460 -17116967 -345635130 -964609323 -855972298 -279980301 -910211092 -35712735 -344360568 -633781198 -678851720 -213568156 -132898646 --792689790 -515299171 -577456635 -163127375 -362655283 -135249784 --119763903 -759764182 --455942703 -614840521 --757234109 -96688225 -373073328 --107511671 -412317218 -880344198 -785673770 -251753526 -146602866 -934158823 -569375578 --226202322 -383064772 -487493843 --660514046 -237752857 -350934666 -286965500 -807930732 -31770231 -972723890 -553444667 -813596817 -622653255 --211815684 -99597015 --787139972 -749541976 -717041223 -492040138 -883497650 -505449410 --467621736 -26568538 -750100320 -337980025 -614239742 -458286116 -653255289 --267797489 -509827114 --240116582 -780943792 --716273424 -794093779 -887424008 -384202040 -605624699 -272781836 -645129476 --501355822 -579746373 -432446582 --345394016 -760329609 -210020582 --369613342 -857012182 --592732160 -36775937 -289666429 -531598336 -901077610 --202980638 -842292130 -945629151 -458885241 -983055865 -510723857 -572711569 -221672542 --801783305 -524285039 --846487186 -953025173 -785319346 --904215921 -854645730 -949975880 -593988561 --210091122 -931820886 -338463859 -741712040 --189575690 -76255462 --202969131 -847760183 -635358013 -112818909 -198678484 --804890091 -885118441 -810067918 -647920099 --747810350 -879085291 -91272639 -991613398 -945708387 -562015935 -509050568 -458926705 --609342269 -335060631 -145045648 --976993388 -446817176 -546487868 --36542537 -965997067 -600858982 --123015253 -353568653 --885266722 -278124346 --426494076 -969756635 -374825939 --494116977 -21812192 -594150219 --190859518 -405701144 -575607228 -111080072 --668073452 -69520034 -593470200 -877259925 -678523944 -962143468 -268641498 -192365680 -716153336 --466025942 -520008577 -103770137 --692442967 -863880494 --322505028 -959978285 -87542492 -7029671 -443576052 -21191052 -486312988 -536319544 -956280288 -524882756 -134371845 -289723941 -651164985 --635615417 -327403663 -940079859 --189533426 -65585608 -996905058 -900683725 -566724349 --853361534 -444686881 --736758211 -599653920 -99077678 -981517108 -558390110 --185383678 -38564108 -595670680 --222737018 -331237107 --485064926 -750768371 --636059918 -612124657 -968307970 -424276743 --243721784 -470417472 --622461613 -746032791 -590364333 -529633877 --76651350 -673680738 -958954347 -289595461 -420177254 -912080305 --4643049 -831292266 -115936296 -463347700 --105260826 -81158540 -521563887 -760186741 -185935586 -775359841 --809255983 -759548826 -484786956 -786816533 -651097483 -655569013 -37781914 --235448853 -908438728 -53756495 --343169543 -965960164 -656919681 -972653314 -270276018 -848315721 -767095175 -920791275 -757216030 -211356131 -916209 --868040041 -722031578 -463919303 -727207590 -808739428 --404091398 -516324015 -712370905 -724029014 -630739897 -563149861 --614840521 -281073790 -688988035 --708143342 -619616893 -609531478 --444562002 -286882304 -704924487 --283032052 -918402601 -325695246 -197040102 -713137719 --240029646 -542828823 -979551227 -835727887 -717194228 --432983245 -216105384 -944324649 --3933671 -82391329 -565903311 --129776243 -956230148 --279424104 -176469002 --272282311 -427400892 -319807571 -770702452 --463347700 -152378719 -709436117 --422900174 -181652720 --956430305 -107267932 --643551632 -925010584 -192050112 --149826695 -11203097 -47410091 -875730166 -342984887 -838948097 -771518059 -41849327 -845116878 -262863648 -276982003 --955747836 -867504549 -581077533 -922312496 --212997866 -978403222 -147553103 -767805979 -57128590 -396101987 -58815947 --381948949 -968572854 --690345411 -709611863 --284963793 -825705785 -41222679 -75687373 -312303264 -233788036 --563007677 -212467104 -406498548 --786190356 -557807790 -761793229 -338604840 -43835239 -549893879 -32171569 -925767419 -163686764 -331349348 -446878131 -565365592 -729406667 -801947773 -391133533 -686007247 -761730999 --577631295 -585857924 -550435805 --808822566 -750159350 -118839119 -484528631 -634720019 -448595884 -629878030 -849018200 -873056637 --954863105 -110596685 -325326812 --26560439 -438211536 --837894713 -319668799 -298733259 -639188435 --869490042 -420451671 -967117811 -708117920 -510683387 -807440735 -469569850 -409227328 -131734896 -192732295 -523425292 -760324087 -439937927 -993004338 -929037695 -377735586 -886210345 -849961812 -777425682 -729417305 --243412976 -734665020 --747919344 -49720757 -874817717 -117704577 --768523801 -132539937 -846253741 -461469082 -954457920 -469730904 -939225602 -489352605 --919883896 -154768112 -918893795 -299030836 --430031467 -327844921 --265886649 -431750074 -953043749 -899664748 -277741917 -250800735 -403807583 --115902778 -583684667 --110076892 -401410168 -318432977 -53550367 -262210529 --232765057 -625981367 -51038498 -33957078 -671012229 -924184817 -50003956 -803118952 -585633236 -132690937 -284274332 -988753276 --979784451 -511497383 -679041044 -958810933 --443291104 -138732446 -548988660 -498668524 --737704205 -854098746 --437493372 -428825265 --358766894 -891162216 -409796729 -285531740 -212951665 --31808632 -320329750 --210888706 -45395269 --145045648 -438468594 --721060359 -48940731 -145485682 -21112326 -899956049 -61811404 -64783625 --437177336 -255370301 -535168568 -619509283 -506037327 -110471738 --309680180 -161876286 -876115042 --645878310 -12328238 -633534964 --560779945 -211667740 --129797040 -865038266 --148595874 -74015965 --287497821 -488801799 -899873216 -899085317 -880471595 --291469857 -798884352 -429628547 -285364529 -328745056 --639753035 -953298552 -287134164 --187054277 -198109719 --532995252 -679567060 -77034633 --948545088 -674918726 -893540588 -790636599 -307082847 --281533992 -284146421 -399389964 --442451495 -119842394 --411431824 -755763550 -814986225 --584921829 -890887643 --679005527 -744065234 -245409246 -38296754 -307675987 -725667547 --389130495 -1134420 --619833306 -221027518 --924682153 -687759104 -293783275 --893921478 -948591665 -805382983 --864713483 -798756853 -360136194 -749994013 -870115686 --912185949 -412604398 -140488814 --531911704 -622129815 --789040140 -446767874 -516069663 -447644028 --34667272 -538960905 -80367202 -251226035 -605168622 -884599148 --24017447 -855544888 --568674049 -913657717 --97042827 -392800073 --8417108 -709624891 --847113541 -718046100 --652525856 -363374082 -982668025 -437454717 -719599436 -974894587 -320583140 -699934439 -707835640 --251084811 -573071098 -926902310 -301197420 --190925905 -906680229 --512601733 -711469030 --98792262 -420296415 -677850675 -316541899 --405359919 -197209192 -732811449 -581711557 -263732688 -490632765 -237856408 -813245181 -5391801 -400175236 -716279903 -927804879 -779979215 --644443678 -86248281 -371571496 -345986530 -814742954 --404562658 -62669527 --863645683 -418921444 --681721850 -630769382 -844049835 -556828643 -168029734 -76253178 --371403848 -93060289 --106406176 -690953491 -987489392 -510265089 --177984022 -398865191 -562544368 -479842061 --72367199 -662438396 -389367953 -80815170 -950232833 -220547605 --655845903 -850518703 --339806811 -923591323 --151209916 -839051507 --373942690 -941821076 --531362102 -297199171 -539345728 --411454495 -101455608 -347748327 --310753675 -733047785 --316751191 -799332377 -990172014 -309822435 -689491030 --987415005 -12329199 --602579418 -484854577 -541770323 -29949792 --343543399 -725395081 -502011379 -241847807 -577436849 --920791275 -758249890 -968554782 -831043756 --982125390 -907278048 -178570324 -929306523 -398557779 --20778788 -506852427 --754781573 -396733284 -871406238 --523961084 -553897248 -288393034 --333254383 -810191627 -842204939 -715940898 -956367015 -695306659 -521340014 -969511054 -92246084 -374850482 -263613008 -200660049 -49279269 -803072560 --177997515 -870827004 -958002747 -374362238 -827805785 -783802496 -119089482 -667392971 --198350873 -221513380 --841225992 -556270642 -992165194 -960758566 -687329860 -295279357 --642357613 -138161447 -389545301 -772508561 --22636768 -476700408 -925203401 -573203115 --73353575 -84495407 -522770386 -976804316 --585841511 -747336245 -843576079 --934287666 -625513594 -391140749 -812500624 -206289592 -101880397 --769605509 -344775201 --565209123 -913734174 -568011691 --783759141 -496198047 -331587158 -405112285 -930361644 -683994483 -978388980 --345635130 -661572948 -97814138 -457430464 -390573330 --344071834 -614904940 --295212170 -393879764 -34900212 --212467104 -975643383 -20330826 -94470210 -853632496 --891518269 -262505109 --675878352 -756908157 -20629709 -663428933 -826511958 -995421483 -63830881 -680350812 --191431632 -212666355 --864657594 -991136816 -566793734 -807675332 --367140144 -784390250 -754585090 -337276376 -97883694 -581074758 -536699329 -542597701 --357896230 -286138193 -276004299 -571597959 -509437178 -761370616 --835234997 -749895819 -808842197 -59723112 --236652662 -41892130 -102084441 -432619283 -176456543 -390927564 --680788204 -953157068 -340483486 --86248281 -11596771 --965960164 -974971704 -92461585 -606764219 --761987140 -739593044 -33912335 -481435964 -796337580 -175731880 -853588234 --913422060 -698584392 -142247170 --135820809 -904705151 -773169387 -13590281 -281466671 -784163182 -761448112 --568472493 -299263211 -107330793 --813596817 -17643755 -711838812 --870806787 -236766343 -245993422 --109152001 -92678210 --800249881 -407669556 --427349576 -357476629 -778764477 -276220177 -140928326 -443306770 -974325125 --557774662 -45417560 -926987963 --121771901 -796163049 -233926178 -698422651 --845862997 -58302846 --141047966 -7667648 -712420102 -181800013 --963812514 -837104736 -733654785 -862933548 -693333295 --783719428 -342347214 -467152053 --57829233 -963821546 -863436424 -164389968 -31129398 -786900498 -615429371 -281922699 -65220723 -617716292 --766838442 -895207787 -49801987 --978403222 -744222143 -612371301 -606334895 -864355539 -654598748 -454034675 --99827145 -703500380 -437342469 -247472192 --517348295 -316632077 --538960905 -608171319 -754179956 --557661502 -209835454 --649531364 -557873221 -472575804 -760940820 -669845437 -62338928 -457482583 -87647616 -240024234 -964954923 -143762855 -10383492 --768555610 -935081677 --257721827 -223600033 --918336192 -621534204 --897512691 -804711549 --569949364 -483974835 --164727467 -847076157 -957265533 --235140023 -303915668 -385016342 -350404856 -774696517 -443490061 -571025863 --802464684 -417939113 -215770264 -792371883 --165374104 -23687803 -526270560 -530665496 --959777582 -285222176 --685240291 -378409730 -173055545 -641019823 -289197783 -462389717 --724675620 -849492231 --163220503 -213524190 -150989332 --499097172 -374080615 -430422943 -308338428 --247079425 -27899308 -211940935 --19356455 -720752977 -369451697 --663066216 -97168223 -834539064 --739970523 -422366713 -740239807 -33894989 -444400491 --122266885 -128237026 -76818231 --922089073 -117742924 --425766861 -571765292 -456655334 -377615484 --568674424 -840291180 -938640076 -691606414 -125709709 --186607364 -465606831 --283423819 -873400747 -647843298 -195682111 -125855795 -918717517 -324486344 -363878066 -905812746 --734225301 -749382538 --619616893 -715198233 -30114657 --698584392 -599652563 -270513612 -415017214 -237115558 --522662150 -736307508 --276540257 -315411335 -858953180 -620743097 -641747443 -751767738 --247537618 -973690683 --80552573 -571365369 --115453796 -309677289 -893932252 -45363172 --997159631 -966057564 --122381499 -509549572 --963921945 -46785167 -31940752 --39210510 -42641827 -88144676 -574418926 -864305486 -206447228 --55547841 -844507295 -81948582 -188666019 -675394330 -669521390 -492227992 --398557779 -241448512 -922507699 --966757399 -581392947 -843696937 -839071425 -706989956 --825705785 -566159637 -283200176 -585286014 -676440750 -420238196 -169065827 --591332383 -486569386 -616378752 -688236130 -345427799 -862570766 -853952318 -974185515 -524239098 -632885408 --626847268 -575368150 -660076182 -412146419 -984987373 --220605448 -625075698 -867938920 --733246670 -267775408 -589692102 -901979045 -389410259 --820889136 -929607991 -25195120 -819418816 --257396257 -933626402 -76460153 -492702695 -468745008 -136981445 -192864643 -58397893 -562099675 --680582324 -570787709 -125096345 -329737650 --792789122 -420494379 -663623201 -359577815 -244055402 -535828699 --422366713 -900699909 -165012772 -261926848 --936555977 -897129907 -432666508 -433728577 -337470019 -269888849 -439890498 -366650199 -374502413 --228848990 -991741984 -567661158 --424829378 -418083418 -827431203 -376297408 -580961298 -394065874 --49279269 -302757734 -122224065 -941698341 --749686272 -152863367 -870449724 -505298762 -836501397 -334445324 --238912015 -996999203 --312268411 -60749037 --961690286 -376517288 -226329431 --584116788 -216382445 -301976650 --99669233 -413837913 -887308481 -812755315 -284054877 --547983283 -598375460 -299493329 -222617528 --283649920 -428089569 --191975333 -46909827 -833390361 -960705254 -173682672 -436046251 --713286500 -799200733 -104115273 --948240308 -794934837 -709923682 -238790932 -88358314 -470174230 --113044230 -387322481 -684450942 -851902274 --999454781 -182954288 -519106624 --65020724 -859732284 -365848733 --758043971 -842086525 -482746745 -428873315 --423514130 -946194731 -309065495 -770341277 --798609856 -998015448 -292137641 --973690683 -30669945 -329178758 -343443419 -790504126 --631088491 -67624313 -40336007 -242309137 -300126349 -151901973 --267475002 -912347319 -650162118 --847158179 -673019709 -37422060 -652537584 -843054814 -118799661 --968024943 -361050871 --739653541 -273334295 --416273230 -968355543 -199769764 -740510074 --790203459 -698750703 --403085457 -279653147 -478498424 -721381949 -337280545 -489795303 --542597701 -449575938 -56576974 -505939244 --739879648 -622734152 -378240133 -431330685 -582853715 -35505194 -216211694 -661434883 -73657035 -341458175 --24088713 -118493890 -5191583 --136578496 -230383350 --741431501 -325640862 -546483194 --301598921 -560240340 --935639622 -144802663 --967908196 -357694011 --286882304 -6763954 -147092432 -451857593 -984637119 --965258416 -305156349 --249699038 -595410032 -16733454 -201549957 -397075279 -3434968 --508483901 -87594166 --360516581 -530387151 -301026822 --738183828 -263007927 --449630584 -164106897 -128608028 -980545006 -744469170 --817173146 -581658936 -883749361 --234632095 -521560194 --16374569 -821310724 -80328633 -892454653 --556156636 -377610500 --108689458 -125399395 -792448346 -267537795 -895346419 -290496019 --413543358 -439680523 --288445605 -984481056 -786575031 -805422560 --780912192 -392975168 --813245181 -947968537 -279859927 --1126234 -105392576 -686558893 -861160049 -435439699 -918366687 -249239437 -132459686 -367370783 -934041212 -481883466 -354570790 -341600005 -761289870 --145034850 -368127314 --25207351 -745499235 -744485977 -272488674 -907653251 -54930717 -347146817 -613720577 -510675399 --112588334 -853412340 --12329199 -565838629 -330277884 -152690653 -19921303 -152725937 -538199451 -440606474 -355710242 --389367953 -116231125 --65150276 -958001772 --912319466 -71829353 -874140006 -672659301 -305641620 -314413069 -136700901 -832038984 -400689163 --747588343 -884038072 --935959523 -45689926 --560012616 -384102389 -833935097 -551577045 -987151783 -484522818 -134886557 -631871481 -519163549 -964213536 --20821644 -57292307 -291234560 -447285997 --205884188 -416428954 --724487013 -523231783 --226371056 -101130101 -143542390 -956286813 -838577719 -433259587 -387281235 --87647616 -498578088 --720112255 -850620035 -4813655 -515820751 -330267500 -14725784 -40403002 -33026415 --760137678 -67932552 -45743621 --938428068 -374111192 -377380618 -862522161 -824654001 -521674546 -320562320 --472987756 -270119413 -927672699 --758629633 -250269447 --662574702 -622308722 -943016397 -388541397 --520040575 -291338191 -716085155 --845154029 -279298931 -883979540 -628272237 -434522090 -581836582 --263968941 -173267023 -59934638 -841571495 --142891045 -486990047 -591547014 -335943056 -476991817 --634460868 -602637900 --845140374 -783041189 -587630532 -517387446 -665324684 --37014394 -531600629 -983034703 -787362900 --292137641 -518462614 --636891274 -316536465 --526782900 -165654938 --427513780 -790497059 --494781230 -205952951 --664246358 -663698636 --644696560 -555172896 --119923835 -819054892 -394509213 -103182439 -652358201 -266366362 -111515855 -300161483 -249449286 -502968558 -375329293 -199867119 -577585521 -380002791 -564701662 -921546759 -605511894 --52605385 -317209871 -930109644 --374080615 -88195405 -575778699 --185616863 -308610296 --221039715 -900470948 -465744181 -917725638 -758259741 --54171830 -700803055 -909150368 -695483014 -528023519 -590407912 -164462427 --684551032 -605590339 -95056809 --584582664 -957830127 --837104736 -641651739 -295460218 --801658228 -789124838 --580907132 -495348497 -898143664 -518322187 -119819140 -228048828 -310029563 -304372288 -590115970 -924973922 -500716700 -823160763 -859979728 -317005062 -934306962 --117704577 -5759719 --684897559 -8354284 -674414252 -619287164 -337210496 -386096435 -764435267 -898540381 --991377729 -15499604 --843576079 -235028798 -111386819 -169291012 -335812982 -200957323 -190989629 -983348814 -952645945 --896961909 -291254164 --241448512 -125164510 -806377648 -154475482 -758667902 -642926914 --552430312 -597989314 --80254447 -915934939 --810367581 -906192708 --127028511 -335538658 --386340575 -737535966 --653885715 -828198701 -558044708 -401929405 -514144720 -410421104 -800022153 -134782252 -411705038 -884721058 -178039979 --668820048 -616809235 -840276882 -770695689 -462577640 --34162788 -288341110 -41953996 --8354284 -296216332 -374464103 -401431903 -79563401 -515661324 -838844340 -439652923 -462124421 --507770866 -530765284 --687797160 -108373063 -915833540 -419481598 --405049161 -199416846 -939137132 --107330793 -410820870 -774050368 --112670022 -191004651 -339776823 -796821666 -843309552 -511717515 -506532670 --838844340 -482713772 -222676758 -36628931 --48900759 -640534141 --938375653 -739355193 --695247757 -59105020 -858999920 -520906761 -892598705 -384262293 --121764647 -739757069 -931333756 -435284726 -95063533 -852440157 --956832640 -149351843 -33854368 -744149490 -328935782 -630258143 --458286116 -952741640 -539993284 -844199128 -181556461 -743017 -676792029 -85933563 -285312915 --622401594 -468606819 -326347448 -87127734 -216737715 -435869510 --205382069 -50666099 -3276013 --30114657 -412666697 --866250966 -864310590 -927091667 -275798619 -926241140 -761930903 -924999713 --813728339 -529457936 --377683467 -396259191 -953743266 -565267634 -429297857 -425706837 -487303954 -664456782 --645304984 -553901981 --925618202 -697759921 -861811709 -246562956 -191464807 -740583815 -50564762 --218513739 -567495448 -922045898 --50564762 -757862668 -149914672 --644395367 -950457796 -212517411 -745478158 -662796617 --23799913 -728995759 --521241525 -61773781 -195624395 --631542198 -432402509 --238790932 -955647600 -290529487 -115252646 --304372288 -326770246 -932970732 -183938171 -593851912 --657273502 -120999710 -300628595 -325838867 -482559687 -889444145 --39630730 -787000821 --251023643 -291669266 -712951582 -635735722 -392178100 -929442059 --518391546 -887080408 -154560922 --177256915 -994976006 --929106849 -90629719 --152725937 -58999081 -485477654 -205138962 -151376854 --334786717 -960860647 -364203675 -833202244 -635984226 -602043776 -597559323 -431050028 -512097464 -633558722 -207723061 -76292720 --388065197 -234615277 --988515799 -70029676 -116462267 -865923587 -240250157 --630739897 -690275647 -959034756 -186446508 -472679478 -175118214 -971655131 -767652220 --433359488 -93035884 -830780236 -148866423 -862262200 --688184660 -620832657 -7983564 --193777050 -237794078 -100801055 -220245167 --464281920 -899706312 -107106925 -553220069 -800142635 -17155104 -917938934 -502834426 --399389964 -621896542 --17175055 -473690958 -15695973 -922877963 -554871158 -21077977 --226961843 -967661049 -355117524 --653444550 -360954241 --176456543 -505094404 -570486209 -973747388 -690214193 -99136386 --140558054 -997199977 -345820557 -618102472 -826361156 -883430259 -173498944 --675312767 -858220150 -521065921 --877415913 -750192843 -449216191 --915712681 -902724848 -189886849 -185476735 --131080112 -72801873 -616054673 -634132457 -757170509 -925787054 -816645282 -935629908 -186215329 -363484781 -641019977 -260804083 --223821581 -171647785 --823860605 -832605659 -21164491 -148177133 -395902386 --865038266 -875988852 -20351883 --737792188 -91914342 -726034270 -26374986 -750756074 -434756399 -432024034 -914771915 -172635517 -202266390 -275968258 --824831562 -193071382 -909639536 -825386660 -263583933 -589812290 -904744581 -851398396 -798132582 --3276013 -177707049 --606282120 -262626687 --518325523 -182432630 -104137567 -110779333 -423283864 -476773726 -479780430 -195268913 -178227646 -769547704 -411616739 --598127884 -347530582 -71432065 --996361474 -602185633 --773027337 -646066509 -634571137 -445671405 --820181523 -93945887 -310148436 -356376810 --550904075 -558089051 -378978620 -615769592 -282608990 --103919735 -40563135 -985482287 --29035406 -719804764 -10471930 --534495762 -479637168 -977271441 -224742218 -575207881 -768478300 -877101884 -96020629 -653084967 -934163211 -823730222 --879137678 -561085310 --508239245 -171542257 --884429230 -498388732 -182522732 -956724312 --531548947 -190251120 -95220820 --186369391 -530231467 --995789055 -987955024 -460930263 --841533924 -454416919 -692483341 -425424782 -662248100 -555667473 -958297499 --732613761 -757485182 -878846403 --95095538 -574013535 -979175203 --878946872 -746366944 --653739602 -191110641 --773124366 -960457157 -490690178 -241068873 -61404370 -279267787 -658636461 --990864969 -205427889 --593055374 -814421430 --627542665 -634282829 -103184514 -622736699 --76975408 -813730781 -215626050 -952258559 --420804888 -10160636 -47171023 -748233873 -811895476 --8163021 -326308509 --298536413 -740195813 -175541156 -286745858 -572243839 -463357803 -394222281 --849492231 -641115139 -186468123 -648823050 -862452460 -487041877 -465375251 -254641824 -222866207 --29949792 -489139199 -600017946 -214633482 --696686202 -414859243 --631553895 -828758327 -892061465 -457298100 --60686885 -266005984 -495778375 -265950685 --667143638 -261856010 -625859237 -445010838 -566191360 -103715407 -226858245 -339448261 -949411322 -569254171 -249759221 -431514383 -381346448 -809280165 --692752305 -914648949 -985282220 --692223322 -512565031 --228464007 -148921703 --739593044 -382576563 -711276941 -646347339 --104115273 -903209408 -384913408 -397591158 -921998917 -757160731 -23538871 --796192250 -599078581 -454597806 -231146770 -731003735 -956785515 -44045647 --644454747 -448219300 --951458810 -526431153 -453504985 -316805398 --149064584 -153242668 -935573864 --258374997 -748081926 -323250457 -761317300 -173373564 -895608732 -815154366 -859392735 --112809246 -677186974 --110684244 -894160437 -431682378 -912183995 -731279426 -261084409 --38232188 -447858875 -61274922 --978726789 -632854674 -928982031 -742114396 -947130709 -313638393 -25698067 -900288578 -229680935 -684844485 -292363157 -432299732 -143821572 --170564462 -725924683 -208024540 -145854125 --126047714 -158286334 -898717067 -26616597 --850477926 -893536510 --899183769 -132786899 -615983180 -328338115 --747447738 -490629426 -845387588 -645676057 --122130518 -374543627 -42889819 -730667351 --341360512 -791967062 --423772856 -940137870 -72108094 -300310852 -641511947 -764056145 -34447637 -367093582 -415918997 --127700457 -446232879 -872465846 --354497212 -669679942 -260764678 --85156808 -127789527 --33026415 -424043122 -958984103 -754978070 --794681829 -155792407 -661307037 -219620110 -721915123 -929803185 -783074733 -783374893 -138750346 -569427241 --168172836 -850813230 -851615239 -419093103 --785717843 -19811562 -100729037 -84391294 --798756853 -263520293 -545212869 --216088618 -122795928 -234438451 --707386198 -117027589 -160105166 -225014581 -160992708 -561145314 --941821076 -670243659 -488826162 -137358197 -905480483 -952162641 -423804339 -684962843 -121607316 -901562560 -259777814 -513916571 -76062570 -769125413 -768419175 --72660784 -932369688 -541229750 -332690999 -632667462 --296812836 -187157608 -594265436 -963687132 -115070156 --907809908 -438808898 --589722743 -232927456 -917410507 -678789255 -370455442 -964194964 -329537944 -966557211 -781115397 -994330236 -269034670 -51719548 --864994704 -616218576 -194383839 -375101454 --893932252 -893580581 -147770941 --146330060 -71107867 -147357629 -621690607 -689771372 --813845425 -692685958 -475882361 --724831427 -837559081 -532433674 -515987220 -818048300 -555463026 -450870273 -345380408 --898669436 -9586459 -13564873 -615153573 -388335617 --571583958 -820522806 -422106025 --496198047 -54267233 -121849037 -796810223 --497517544 -337956726 -93999908 -558088548 -913693324 --985206854 -22116974 -330825789 --685088865 -519036884 --784290355 -581020257 -675452167 -206798114 --234186040 -208907423 -969600998 --197666666 -497486148 -106237772 -477069457 --541684395 -379393156 -633124337 --808834460 -857361083 --81774137 -430263893 -129410557 -857968257 -535479954 -440618834 -213922563 -855384811 -338039449 -244175280 --838577719 -81988923 -752850406 -580490625 -207984390 --281922699 -845599568 -57803591 --593470200 -39033563 -87668779 --165092015 -145999892 -526207330 -259589720 -665374032 --71082117 -735302950 -688884532 --427708582 -89437876 -808545494 -894783611 -57205696 --476991817 -146834356 -664519825 --284146421 -203296093 --83113430 -825791825 -216479496 -370164280 -574485597 --796163049 -120641087 --678120541 -536582551 -587556488 -566821951 --346014756 -470191449 -921073701 --200672811 -118347512 -210107241 -468416691 --703144295 -145765687 -554443689 -273144864 -58272910 --347005254 -918533613 -66300085 -386772928 -743581828 -815598288 --295143442 -803780611 --984749347 -838600265 --746032791 -347673311 -259327785 --486787510 -92588583 -500518930 -949765620 -613737278 --154998626 -676860017 -266666769 -162573588 --654598748 -139264608 -912069805 -530979782 -278272588 -940701571 -695263125 --266976315 -753640607 --245566445 -520754146 -557878447 -865117357 -343454193 --526446154 -266157382 --59105020 -602559056 -279417427 -504338134 -105658642 -716194580 -21399749 -566153171 --741456775 -96937235 -530150403 -174448513 -193256759 -916103433 --299223181 -444769367 -133871330 --656740090 -628637348 --889052973 -935569801 -633451677 --76255462 -710089082 -900060193 -266097928 --340258976 -965491558 --122224065 -267286551 -732334188 -574649606 -55385530 -738960309 -376720227 -87548072 -645624230 --20764723 -372232250 --781942115 -182331851 -439707549 -385101093 -329643327 -964242482 --833721024 -5061002 -494255102 -65874556 -565341857 --573071098 -635992592 --414840458 -210133419 -694530593 -674412834 -976867718 --618091515 -306349076 --496872928 -190171438 -195115230 -994732738 --690950225 -302768611 --487770295 -341957899 -792663190 -607161679 --394580216 -910473384 --949336876 -959634055 -368763260 --279696395 -541828127 -640988523 -85686207 -282628132 -908491771 -462247967 -263624609 -124859285 --238220393 -454106702 -308685096 -693101632 -502743171 -82661689 --562751442 -413728849 -633932806 -207900686 -532630990 --712712842 -428167221 -115749803 --805466922 -58068427 -883932262 -28671386 --728995759 -25475574 --955499233 -786221911 -758014605 -906642079 -500202661 --622425093 -441859108 --524193496 -603710138 -917218419 -120752307 --864883336 -198499425 --35358428 -499760994 -490767995 --103656083 -162612942 --412937863 -331569805 -712299631 --687099385 -379254000 -793284572 -248184636 -689809376 -756265017 -826193173 -836652149 --839071425 -379329769 -841848775 -619241893 -949223744 --827700441 -994256071 -59235283 --933591078 -956677041 --906192708 -30806237 -225623576 -375742275 -529209159 -976859843 -75030407 --622647024 -603512181 --33894989 -410141455 -513521956 -806187843 --17427651 -833769953 --805032575 -50300077 -839780642 -331064092 --658657995 -95514316 -804683440 -394101435 --421740876 -338104606 -969870467 --514148215 -844477118 -185242284 -786559081 --940886532 -827726930 --95063533 -332650071 -291516096 --484522818 -288452111 -682360804 -13165584 -942361201 --773169387 -612615540 --883979540 -138833176 -470265336 -919965431 -186032047 -117133794 -390586815 -53210851 -791145227 -965564575 --432544073 -385078895 -989773413 -46051325 --14241924 -308064261 -845488666 -354109159 --616602630 -842225815 --523241482 -915504605 --217680961 -489067937 --460553800 -448714221 -91158093 --511080070 -700998121 --116578921 -592578810 -762029183 -751871619 -300541376 --478449434 -420458017 -164253955 -388248985 --938287010 -227863782 -335841027 -860192884 -879944758 -778789089 --938640076 -528049481 -969404404 -652783880 -784104085 -238241442 -907005967 --489795303 -933931375 -810451786 -926701241 -690927801 -471921260 -921691127 -988906050 -692868048 -477994487 -889125775 --950966085 -945111367 -211966791 --527646207 -347310955 -966662504 -494856567 -654042042 -27273200 --84125449 -453320784 -932302634 -591960161 --626982394 -237620812 --718047726 -864122155 --616288248 -635570947 --365296128 -904914079 -720282188 -269405695 -782333885 -715245828 -636700737 --439680523 -495565498 -693667966 -402493444 -287533617 -117611424 -426540573 -935853948 --352955727 -893005663 -534926785 -157948982 -2833512 -910196362 --24451043 -71161428 -817122188 --456586159 -880264695 -662027354 -695361479 -906314953 -999727985 -887505182 --572367837 -116223630 -207758079 -78546279 -154049031 --268469343 -543564077 --190945825 -390978373 --767244906 -849279659 -944882671 -36368894 -957349430 --173373564 -275690553 --734326363 -776184541 --898952439 -793523923 -942475571 -179596103 -821969464 -987766212 -764729010 -5238521 -289194997 -103233646 -793078315 -360125350 -597952457 -8790220 -610588200 -171008554 -11254160 -469786023 -405114131 -6703164 --110552745 -846648390 --363810918 -815400176 -26217164 -793141936 -503043330 --572082739 -812600806 -539424392 --205788092 -705856929 --794239654 -552816851 -879063355 -561999101 -478954978 -618245187 -16236778 -195039271 -859328125 -89448251 --48196045 -554007798 --990231650 -431479961 -490467393 --198677240 -830943504 --824141423 -532357823 -987097 -962544165 -737819142 --612006158 -280083491 -631612582 --783802496 -182367798 --123225487 -48026754 -733240332 --455889977 -222603639 -830704404 -941221933 -689020742 -991125318 -534031969 -326907191 -853932336 -472716740 -227697342 -748297380 --39673666 -759823224 -670644668 --82003875 -157140388 -25060068 -410894670 -707685752 --482538812 -242024299 -226148655 --646098125 -194446079 -41289779 --445095701 -878150887 -969507766 -325180086 -723280581 -716292389 -285216762 -135441921 -652546294 --6763954 -973158966 -198305066 -587441392 --650218805 -741840345 --338509121 -305985248 --603162046 -307888014 --386911120 -545915613 --69520034 -658542501 -192779838 -405852305 -212041253 --66300085 -179907771 -196180951 --687531679 -167284439 -953378778 -92033573 -505318778 -3334929 -988274838 -441970958 -5625806 -339727615 -892567212 -951428034 --283016209 -897679196 -36395187 -134125443 -722344325 -446644481 --53550367 -908019422 -320237557 --452556508 -268662914 -962012429 -886086045 -326621193 --13850716 -323695832 -737480331 -215364027 --887470838 -934240656 -918239326 -46316571 --216382445 -695834752 -682901841 --554015287 -810032974 -689244436 --123490806 -901063467 -287911785 -654325002 -581279434 -704385213 --988718036 -539659200 --655674571 -701556523 -733569867 -575940347 -97842470 -965330468 --129410557 -456972645 --149800301 -277641223 -877281661 -560766620 -880486658 -292825838 -71424201 -441098411 -307554137 -22731001 -411695258 -341796390 -97037260 -528067602 --245717334 -395410615 -69428094 --478050949 -953794163 -647166466 --909385294 -218744481 -444453025 -894967659 --716394685 -785569493 -91650493 -426144682 -550505769 -38108618 -844177072 -903357836 --33371257 -872099760 -247531245 --559336133 -770458911 -152971318 -709901382 -460131419 -954927271 --372195600 -367032887 -443772603 --867988513 -118338869 -100271426 --258651240 -415462610 -827082244 -273528499 -261221085 -369597373 -277549416 -781500854 -635448241 -7099844 -909032752 --194285634 -759295424 -648441336 -793480201 --855394407 -808076939 --175913252 -851051210 --690495337 -750471262 --391352362 -568796432 -888683032 -301485437 -914226967 --355865981 -520874161 -206080022 -617832671 -355084550 --853518370 -799876289 -566040890 --412146419 -517193783 --319668799 -890015127 -825070167 -291166921 --949778215 -699887728 -754578468 -309596397 -62693555 -431821315 -940228507 -9453360 -508984119 -20607188 -325462467 --988026286 -572482056 --774476865 -971350419 -66360415 --159722773 -254175007 -359838783 -972927237 --49174787 -856679851 -235794844 -737175408 -246943024 --789390816 -630814789 -895424608 --320237557 -488256608 -360089293 --10160636 -173746711 -857349037 -318849848 -981918358 -196346127 -602144857 --376720227 -67075654 -736127758 -367813600 --510228222 -8665546 -390125184 -939294389 -248480568 -104566546 -483405941 --235037882 -64639392 -525644774 -150059345 -782533423 -60478382 --574115112 -390014491 --735021982 -831964302 -762497884 --857968257 -988895778 -458754844 -139418992 --581417503 -203882713 --562606232 -748931903 -739286014 -274725643 -939447015 -547701950 --50434806 -488302624 -507511270 -527989390 -185353455 -120776488 --911348201 -448791111 -255603066 -252256897 -588031397 --247351313 -302107173 -415939813 --490467393 -749632890 --228048828 -191593115 -714168229 -354681282 -854264579 -929729989 --164389968 -338520468 --221019866 -501232054 -880389266 -332713676 -267016634 -234349359 -673330966 -81318415 -110945253 --234821931 -534032910 -924802872 -754370369 -692077746 -63234342 --87542492 -428547601 --840077313 -393637451 --695137933 -202332541 -567121374 -99149790 -278603356 -809582713 -628016860 -535463153 -507189323 -164163196 --33292052 -657937197 --494177149 -857772836 -12082274 -534236011 --113236837 -745521838 --837319232 -431545416 -275029462 -262562438 -46481821 -569853504 -479241471 --667440403 -968893027 --27853542 -12457027 -606256896 -785608439 --174477821 -867768401 -701360423 -92857558 --388068433 -890339177 --958297499 -254412215 -482297838 --318628570 -804136202 -564196266 --309348192 -923501131 -38172199 --587556488 -573583840 --381704565 -141047024 --867651020 -350023739 --477994487 -17604291 -344510535 --528468029 -793958122 -848674939 -954573205 -708895117 --473859289 -525399296 --556830767 -434075354 --314819994 -459781488 -833936389 -838481169 -170964248 -233873001 -97190242 -465918294 -779710158 -118517609 -49391127 -647873814 -860959207 -595452252 -711171822 -649504729 --209506553 -100796135 -364595075 --937908465 -300471318 -353965276 -662936769 -1942752 -387548362 -972708377 --562786330 -617472567 --600290193 -341830673 -926553152 -660372096 -973327548 -633504879 --350934666 -801534162 --603568934 -775534661 -500106219 --579746373 -913305257 --217047344 -184005959 -368786628 -808106222 --937728972 -951009820 -82840975 -844149733 -277004867 -449071660 -821166521 -318595318 --905217217 -183522529 -779013058 -273332601 --394101435 -583464505 --137871982 -469682895 -529480662 -74823166 --112422135 -701866086 --873886609 -892669506 -924316646 -101260485 -400718561 --25195120 -182668772 -145656751 -119433238 -515168556 -995234470 -568353599 -819971204 -758579052 --451405921 -959690529 -828641611 --734256355 -394427713 -261464481 --594483573 -695630479 -148047052 --224994051 -737111713 --13275438 -134777610 --47966443 -838480677 -814030723 --786515412 -803203054 -828680072 -250562583 -274239051 -552005307 --285364529 -15362853 -548822328 -525251571 -402507291 -730376482 -618161948 -95246068 -960789477 -321226749 --899023972 -888416360 -430712253 -311346595 --847760183 -27468050 -276682829 -982754158 -594656912 -261909880 -513410963 --6344354 -895062522 -726262871 --233538793 -811239487 -315775237 -438875639 --33161618 -622497512 -46705249 -343136649 -672295719 -175033783 -602354900 --380015114 -805827435 -106986447 --498698415 -411210422 --296348253 -944177081 --488165356 -693387762 -329824763 --96110792 -468167426 --213524190 -621899355 --412153994 -147968591 -997095062 -524915485 -671053452 --277444405 -107923509 -970478040 -15175686 --553108818 -767029147 -728848788 -472834075 --233788036 -742197461 -75931704 --560598745 -605834666 -348682917 -383608252 -782317155 -429034871 --448595884 -797386454 -764539986 --896414439 -68871632 --143699444 -280473523 -59330247 -630595492 -112434940 -920334675 --976893910 -304049977 -439538950 --127789527 -642846712 -655643601 -327157154 -576197004 -774483977 -953914414 -17117129 -354816794 -523962602 -107110586 -146814053 -580699006 -307036341 -410329354 -700809351 -536951432 -957752178 --284167888 -875059914 -470234497 -176774895 -295164502 -970556054 -992504606 -102809652 -113843398 -918932717 -536312762 -644348454 --214193033 -95073728 -344430461 --192779838 -623887060 -18986076 --207723061 -402468723 --40575590 -998670074 -853076512 -720839026 -315438054 -551431964 -752878720 --900470948 -674784632 --292403934 -947488196 -721225446 --536448418 -492700665 -315120242 -444829383 --49311238 -992232918 -832474918 -753532299 -538391216 --114396495 -750340363 --185476735 -542392044 --542828823 -123337242 --522516218 -277597500 -296432038 -665742599 --583462558 -73284392 -889708761 -357771079 --474792558 -328693200 -451132989 --113644763 -722229053 -830824305 -583789109 --954424915 -766895551 --556183556 -104425458 -737101703 -138098379 -960137841 -891993466 -736238425 -70619725 -785610026 -229925538 --759248072 -825180181 --965731523 -945149556 --938497567 -12642654 -691717738 --762839190 -946993435 -600918578 --823337478 -478934847 -998212461 -312364254 --354816794 -534485097 -893034085 -52361599 -471178815 -923536732 -753868961 -271803948 -529129705 -976306783 --833486840 -790716583 -322799605 -528950325 -404312859 -10004241 -985839991 -967691740 -859543789 -667635984 --168898137 -387832158 -793044536 -168924099 --523962602 -720742926 -961440342 --554871158 -807623863 --38564108 -273286146 -449130184 --648152664 -698550691 -838115816 --873012179 -106702427 -431388737 --524160973 -646462166 -313983366 --825419500 -531109940 --239712877 -9134030 -756757636 -4548023 -531592171 -648617541 -506499204 -733545379 -685959374 -93868234 --913815372 -570863768 -617401282 -887421269 -818480209 --993040430 -392551029 -263760726 -566635734 -695784311 --407669556 -225309386 -321466751 --357700129 -735164474 --711838812 -163078405 --52350163 -824203516 --535762248 -132918124 -290203772 -870438886 -453714371 --833202244 -412571632 -420376558 -908007215 -191718346 -552728586 -213172457 -69361470 -644258736 -472461956 -325045394 -698504210 -280747037 --924184817 -296583654 -261559918 -443495101 -395720651 --560532173 -862899020 --969470604 -800342554 -658947001 -635790813 -362744249 -171014127 --803072560 -300504560 -264175879 -803525199 -419316788 -654211613 -504491072 -983286966 --469961678 -244750494 -273595858 -263187191 --708781227 -841364158 -620390947 -788940245 --279524697 -22602466 -282489250 -556932871 -123304018 --650708550 -390321753 -148781549 -21405959 --238738294 -586780941 -665374765 -816877674 --726218889 -830945471 --499878347 -614615915 -532596957 -432612748 -748205720 -438051116 -594345497 -960871189 -992861584 --461058320 -532261738 --799332377 -455576963 --314579170 -614879432 --837500331 -487933354 -546981243 --422106025 -124141165 -698813903 -203005431 --444860261 -205851340 --628016860 -343789491 -712813955 -943126391 -672154179 --763104357 -946886369 -10307500 --254641824 -624883544 -157443462 -761929458 -846831398 -672730548 -780548456 --552005307 -289610844 -505844309 -184984961 --921796101 -962752580 -374055362 -961402692 --516600957 -586760061 -802949994 -901171669 -518525531 -429423153 -874650345 --786575031 -927094318 --707218274 -601191405 -379864688 -470890407 -964288323 -291095446 -654901176 --32622208 -861314316 --938653337 -854449581 -779018800 -661421450 -404727400 -954512812 --563276228 -844551915 -809830174 --971756676 -797898473 -869327906 -711018783 -819232891 -142334095 --953298552 -48241511 -987220562 -233865865 -573782578 -904007294 -601227924 --881294009 -765675669 --15434171 -303203132 -943372072 -56552669 -471071150 -331013649 -24560707 -172223084 -560695294 -637975802 -196595104 --896205852 -354774873 -108304927 -92860467 -796190479 -247940906 -868748130 -928096512 -833702161 -281584208 -990106627 --503149883 -833429545 -86789829 -187798774 -779384197 --933064892 -565941939 --328338115 -316110753 -167124778 --870968174 -379587041 -419942101 --721225446 -577621251 --803118952 -637521082 -61749919 -68009068 -253710831 -459374219 -908576126 --780397031 -717559203 -379447085 --787225677 -163202772 -877556870 --367036073 -656617750 -348972590 -312553928 -335787616 --563321339 -345741301 -336325431 -96076120 -29707100 --50121041 -361778823 -220816579 -680505079 -962223809 -631674873 -601497179 -580558049 -283167193 -71144232 --210775957 -695768238 -663845231 -643702366 -5866297 --231674670 -143409011 -882907023 -613782660 -302113757 --305958189 -510493150 -304998994 -672984623 -753376290 -767145829 -186422577 -464691008 --395237442 -34363283 -778294688 -546145095 -56576705 -504136256 -471549975 -141777595 -117161169 -284391093 -687424408 -628324318 -395859477 -204859390 -693067711 -909150603 -364616105 -983576893 -405212299 --332593086 -209577363 -616597989 --585633236 -588108467 --29604887 -248233841 --614239742 -971145981 -478764034 -791589448 -951631751 -845381955 -683709082 --720752977 -660740327 --126132639 -33029730 -178853530 --917305817 -711937798 -725875560 -908445939 --114652981 -41073123 --906305068 -394369450 --770395679 -141983354 --522868446 -863381058 --959378162 -134279248 -398061937 -814909655 -859004427 -680144232 -641703497 --311094796 -150729352 -819074115 --265715559 -959443495 -518401066 -863066598 -471379153 -661173646 -581243264 --374825939 -982357037 -278598147 -239253284 --595105428 -884231378 -63219834 -711772701 -569031630 -327103252 --956677041 -385404579 --307216509 -697426844 --301757623 -811598311 -334705699 --40563135 -817279815 -298000216 -359037454 --378120404 -977133508 -405475240 --313605945 -754163618 -78920542 -715643643 -791950864 -217237759 --973625939 -650707703 -957480776 -222265798 -639839481 -246568538 -47124154 --354645846 -357086924 --912080305 -9067328 -530997614 -723430972 -655575861 -453957262 -449810027 -872833549 --317748403 -690679685 -725612834 --712370905 -433281868 --87594166 -751676905 -252440781 -492856634 --962434162 -39036834 --411754185 -621404218 -585019285 -58325912 -280739151 -657325479 -814425415 -952162481 -116155436 --206141829 -734458953 --655050440 -441673020 --529457936 -380667933 --431821315 -99113991 -123401370 --814742954 -909758890 -416674009 -353804132 -905192727 -512135294 -173735439 -877976577 --408414400 -293626661 --664572997 -777458698 -447941526 --573478430 -919329480 -910070681 -600677761 -293164043 -653264578 -243108738 -91537531 -654514572 -244240127 -304133575 -32860204 -25127638 -733885224 --125312091 -893790225 -257913979 -48144071 --273516803 -50223134 -653895913 -476285911 -120504245 --484786956 -247583137 -858374876 -752139431 --830704404 -816904501 --789639771 -225545473 --127291839 -840285527 -900572413 -47700047 -208449384 --490773861 -978539617 -489311559 -934609279 -669882802 -329271686 --308043686 -173016940 -947635676 -650478763 -613541742 --237220112 -900824691 -726491664 -698483142 --238818184 -75356660 -587592233 -129793596 -54220994 -628714281 --273595858 -431379265 -635281997 -392487168 --340588061 -158874068 --82054331 -391322214 -82142661 -308119889 -50805400 -19794701 -682041717 -648584834 -659116180 -738186514 -853013690 -261912824 -441044233 --451216481 -956809808 --894967659 -83696253 -851889291 -80332117 -589488852 -106026704 -781547275 --930811578 -922596621 -537047069 -411275937 -317060477 -325006841 -55602629 -272963986 -897925268 -565180239 --20512210 -357102074 -182708867 -590987897 --798132582 -746440097 --263971034 -340659465 -90989201 --446748683 -728392589 -647423111 -13202416 -844397705 -720207415 -423342930 -786527995 --573212672 -581034427 --684962843 -171636524 -263298298 -49301719 --786527995 -443570175 -674584462 -287021589 --618245187 -432938125 -634490169 -271439475 --573450546 -695814554 --207533557 -684530190 -17159834 --407842069 -457961882 -107207186 -616323481 -69911954 -126066388 -624989321 --322266199 -198401586 -887126478 --704471113 -652439971 -165102670 --85215421 -732602872 -426624466 --182327061 -629142508 -462808891 -64520565 -154364753 -223413097 -474612908 --100801055 -834485852 --685959374 -768706193 -553775313 -323329796 --378027368 -726065548 -333206849 -704619441 --793064757 -799999159 -862595251 -901963775 --51038498 -265482939 -81414329 -331552406 --212402972 -384723008 --251591100 -603974405 -964055467 -585779103 -881110435 -681360090 -453290134 -681464208 --377610500 -635299541 --492040138 -292323386 -603202343 --615983180 -689665095 --750822216 -361174501 -280795069 --90460227 -834987103 -770448319 -926178778 -206034708 -482881196 -914135258 -59730877 -948138915 -668013633 -845542748 -707743607 -251770381 --357635783 -636751075 -146165251 -38640372 -3687402 -634208194 -794300074 -527853730 -926296299 --695306659 -138266061 -238169075 -520715669 -511378168 --823649679 -986485595 -441156737 --125737052 -297521225 --841561310 -94600021 --200019758 -229326560 -566182615 -253879032 -480516384 -485983732 -596234333 -234385096 --981708871 -600367655 -219229664 -769123462 --623944429 -396748447 -828759766 -921076173 --132478920 -982912903 -211348063 --778764477 -510551567 -141254353 -379642102 --472884069 -490022203 -483736969 -793835804 --677092817 -101811280 -677344871 -972864909 --785847268 -582345798 -518150131 -816437149 --307712803 -794413802 -918374534 -302003515 -94699131 -249466551 -609788165 -764146127 --515072108 -154076988 -421063952 -663638187 --208907423 -86489038 -309938473 -59379916 --22245896 -291313499 -385799509 -207379253 -774050710 -847246988 -187441919 -192483073 -802609657 -459512959 -85145230 --853155035 -660679429 -254536024 --207984390 -744310528 -937202437 -717900041 --739003683 -409507463 -927219336 -248415573 -602076258 -972090797 -320615260 -800127177 -879463505 -66245257 --759754369 -308508095 --910228081 -725955839 -489189200 --622129815 -319838774 -590747602 -262020924 -618637909 -252725136 --327271261 -239197582 --740865233 -826532357 --392203972 -726520003 -361057257 --561718103 -52555048 --316652512 -195479456 -123884448 -848189678 -438771951 --521560194 -197186706 -219672647 --430797828 -133864125 -345831653 --351719378 -85604669 -132332174 -477181528 -454476464 -60084072 --963687132 -139206245 -878980884 -214215948 -58762552 -556354659 --227863782 -296176121 -815350977 -58908290 -628215764 -802194656 --212006153 -713367950 -55013438 -418262183 --754376640 -182265702 -363690841 --793303565 -894088997 -768632989 -948717810 -187337714 -264615993 -930098526 -842800359 -901325408 --117958033 -805508791 -541892046 --559258139 -879443253 --432938125 -977546466 --794093779 -15051830 -172593198 -638439664 -89846927 -775316109 --820442846 -968826905 -653832830 -95150756 -603488644 -505679189 -935017135 -710499762 -586055759 -871379008 --130612452 -447672136 -794166659 -685023820 -420647334 -58318771 -494760735 --465627056 -370151875 -96512857 --191152280 -409269125 --846831398 -33308619 -136618630 -881298368 -44739378 -812161362 -727034676 -397256932 --357086924 -478263800 --442127274 -487206581 -571611728 --526332583 -421328278 --273334295 -659985932 -629104985 -202992893 -69075206 -614302675 -476208889 --569156723 -161839331 --975172983 -473798977 -275769328 -159868025 -434606217 --569031630 -147694538 -352879162 -181070229 --40212125 -243029776 -788757994 -755209622 -999968509 -367795398 -260685474 -592110334 -339564229 -360591585 -805249530 --80815170 -164614433 -837771897 --613720577 -929027109 --464691008 -416839501 --580490625 -993068902 -26559967 -553554942 -94414249 -17878932 -451664992 -514702228 --144639337 -14045025 --189532972 -313290182 -826905152 --451502617 -550809111 -316924437 --469900548 -340635794 -890427003 -871144693 -657979874 -449769316 --543131435 -154724031 -357917497 -821599806 -976631292 -439340841 -841971263 --338845925 -462137863 -707394391 -436495718 --585286014 -114856450 -823129925 --383665623 -436342583 -670734373 -237649609 -708355721 --46316571 -541442269 -804491582 -211222765 -873949837 --330984881 -326157113 -958360932 --93764549 -692696379 --889064513 -524574290 -657979613 --904893472 -23442366 -868998301 -465298347 -192851323 -300407501 -405950362 -772274292 --352879162 -413812036 -273241238 -240540320 -523842208 --27938148 -535357982 -971796185 -48961039 -619793871 --431231126 -647588006 -346494353 -362580989 -500238552 --700086740 -755156527 --129732704 -43652125 -934176045 -635674260 -810861257 -134493444 -734048246 -442637124 -814415991 -398503247 -293925510 -783552743 --951041197 -957263573 --674092661 -186306369 -760435292 --676440750 -754590583 -492158627 -78124360 --423062263 -890580407 -45127177 -601874023 -653890148 -551235603 -241938261 --688402856 -46902370 -113187168 --480190151 -928452991 --875986045 -64938056 --305799254 -644088046 -340629486 -962604214 -288581161 -526357773 --479179074 -257877870 -589577975 --368934109 -217796768 -212979048 -954805983 -708303900 --489964429 -66400508 -97481028 -161226230 -250264589 --105974844 -825787944 --255053742 -604170253 -843129783 -303906309 --654042042 -519935611 -454727697 --652324510 -644899330 -19484473 --543895138 -312600734 -649788467 --733044152 -719000850 -25301144 -277094018 -3630973 --138266061 -156503020 -293932144 -938823969 -621097000 -825792975 -750347600 -662491078 --92853193 -577390669 -342127405 -527910450 -278012667 -571871763 -761568921 -305607245 -446512533 -227963914 -522218595 --384636965 -566759769 -945463429 -721254950 -448927210 --986485595 -409955786 -674443807 -695334672 -444081660 -926988963 --28930841 -133496511 --537220815 -9922079 --255447818 -520749167 --988303133 -379520938 -175339150 -909525714 --474738071 -589125926 -258355962 -676184009 -207072634 -365077465 -889940710 -186291300 -163116616 -997984691 -477037348 -686425571 -962997015 -625383615 --976173932 -220020204 -458549537 -351653699 -174105813 -715163069 -611869817 -744546466 --647720558 -508562233 -902386412 -190173966 -39299311 -152159448 --689491030 -420647064 --353646755 -77568070 -621577254 -479741029 -606097049 --887250151 -942827771 -266732588 -901806885 -487379107 -508452579 -441893810 -547425033 -438560490 -929691081 -15785311 -245972813 -888691354 --731794103 -159996399 -838886996 --635393588 -719814064 -830653412 --48144071 -260924010 --906907554 -155012766 -537119048 -209208935 --952645945 -253259808 -505850492 --559378710 -371431729 -198384237 --164253955 -722325511 -203628877 -282088333 --234572249 -806495152 --533293840 -5511894 -523087930 -182441303 -215028415 -257674722 -970636094 -97221452 --804731747 -133551587 --550248216 -897358683 -649916748 -585523567 -304910054 -698977208 -429033815 --832621489 -962866761 --669521390 -91149557 -902661888 -189191840 --900699909 -242706057 -330075465 -23180592 --664594348 -468128920 --644590327 -668936088 -357425657 -151170833 --901033349 -416614363 -883003419 -655145123 --307036341 -998715298 -523373191 -104049347 -640580213 -316582437 -156817842 -607514737 -686529532 -299625483 -580655760 -268228001 -972704277 -180366563 -335227858 --998286118 -215096587 -638473207 -61900444 -256590236 -745296379 -67371552 -731731900 -579728583 --285385033 -219031560 --285222176 -686453195 -241616632 -639458918 --446698500 -520891561 --444196785 -594586329 -672479994 --774783240 -617152278 -516670707 -862211815 --103182439 -473697075 -51298478 --62783602 -446916602 -243158411 --128307638 -2328945 --781933942 -276699892 --902414992 -932145970 -969077065 -162883351 -46434312 -744175433 -860149464 -692751847 -397212383 -824927365 -265057579 -382530178 -190351068 --476700408 -590357484 -462390765 -221704523 --535746519 -271650185 -374031205 -172735034 -638101498 --553897248 -188997808 -712433504 --993410351 -484778050 -821278384 --387158070 -923884216 --579174049 -17565676 -614638066 --70625350 -406656880 -322469790 -633708333 -373432083 -557184885 -917771748 -458347590 -933442739 -122222099 -291290613 -397755689 -353695658 -844025456 --779853112 -766744005 -234580219 -610567309 --173985307 -995433456 -898444303 -203720065 --890843242 -496112273 --599649689 -676282324 --964584233 -292440136 --235007840 -715034298 -609476657 -64030924 -382626490 --893189924 -228032109 --661873031 -457669294 --370525847 -137657855 -26874516 -991144239 -359484642 --181186219 -707609125 --353965276 -684573977 -17543058 -513323 -979211946 -870524795 -302261846 -670382872 -210229696 -350748311 -352065190 -646771878 -23085457 --903882892 -2151755 -34457752 --570486209 -263650265 --854461228 -409198117 -88418009 -390367507 -301429461 -22754050 -461660979 --831690922 -976286835 -245771117 -448029386 -234934578 -432302212 -480968201 -914247220 --496112273 -48533500 -427203969 -717966994 -11165147 -863682842 -932645500 -248062721 --569388658 -551790375 --146894443 -565382865 -948551621 --578547088 -695328970 -505114250 -469258438 --229475283 -24535342 -429909840 -190236 --72741570 -653619592 -847401671 -180564166 -15716515 -120029651 -979870 -194344835 -862064963 -361014143 -649984592 -125764532 -800358673 -282275739 -65278248 -482892935 -274500529 --581074758 -41639800 --923884216 -565103516 -228554214 -15720526 --648531683 -595287359 --229396902 -286455493 --826532357 -325553961 -730901325 -954228487 --38640372 -898553353 -614128214 -734097466 -263115309 -217280721 -239791097 -864921302 -403034757 -181060305 -652736324 -858050934 -261907727 -747135237 --571365369 -266262704 -549451387 -427046131 --347146817 -72400878 -130001916 -178939538 --768270583 -47902176 --570319408 -336260484 -794234073 -402976990 -847802461 -541519120 --287150632 -438647278 -210051493 --919760647 -208304908 -427418666 -123648798 --838454014 -36837588 -591293991 -796473289 -552494078 -66510099 -738177693 -956122659 --862452460 -362511613 -850084710 --3253428 -588705302 -333691614 -718624966 -339488643 -794932279 -839959910 -536803005 -562876926 --672295719 -640514154 --239791097 -653324938 --505844309 -144281239 --847076157 -650716411 -224945024 -595173882 --744149490 -489512824 -716388363 -570765219 -257243880 -69969333 -964258442 -471247396 -864837746 -12399257 -151686320 -563075678 --664046408 -980235124 -580452414 -635899287 -591002304 -82812750 -436003991 -103576409 -753976434 -889181432 -823684616 -221495522 --194344835 -198651070 --471599774 -92073210 -52687211 -444368243 --627733180 -830134753 -162357376 -461542646 -472638493 -986936056 --275662074 -602155839 -680421385 -464725410 -857737655 -669816650 -459521177 -941368704 -444384194 -441415660 -1202524 -657735899 -913702505 -4916685 --376212165 -545770871 --548888164 -29163349 --932302634 -712498852 -769732948 -703342884 --334445324 -576510588 -111883345 --65728770 -988907450 --549451387 -589366989 -449342047 -203984475 -129366805 -952265522 -759652079 -724803104 --48878003 -97727344 -752994804 -764368549 -738956851 -573207388 --131734896 -191576423 -116086745 -565153757 -499779078 -780143307 --475639469 -41791628 -623232637 -260930774 -340805911 -154420368 -267051871 -229968498 --21812192 -395484204 -792939239 -971121541 -227903532 --676495561 -480511245 -509365989 -218284432 -536665752 -995924268 -39626050 -878358574 -948711842 -799999988 --279267787 -487814196 --915230970 -726454375 --177897799 -3601878 --607514737 -566185226 -664030636 -32273191 --603668395 -603627413 -402448375 -510084589 -330067521 --878840213 -252322664 -954864875 -857579418 -304604457 --934710988 -514442708 -329882589 -17371625 --940380958 -77059515 -357659298 -575820922 --694108131 -668129435 -123766839 -994836315 --606097049 -882885876 -587900416 --574813605 -439176224 -133573469 -2474582 -851154984 -309172912 -337203221 -64636244 --863066598 -26531582 -940054790 --564290345 -522498935 --187749599 -634073418 -590749693 -58145206 -657406068 -766344874 --694900562 -69638412 --26217164 -918767845 --409278732 -196867053 -297131937 -280012435 -475311716 --379158332 -142397274 -69487062 -793140641 -196049234 --471178815 -614090527 -992876348 --892235502 -613136939 -168685105 --149837172 -915337392 --574444310 -594205168 -620747288 -895629675 -854267257 -546545708 --689809376 -368756968 -629757926 -320057101 --731674406 -81771790 -746799593 -224652308 --193428572 -423865684 -62839429 -561969560 -763634719 -358418957 -236560759 -347596620 -744474624 -283380621 --650207079 -805239129 --250824980 -119441337 -106620247 -274330378 -801070817 -101014402 -653338999 -840834095 -509856023 -39088080 --606825456 -825389995 -813266496 -541673285 -497991869 -785597130 -329930283 --422148269 -828329743 -97599298 --949456038 -795294060 --918246887 -949811043 --244132523 -177392667 -718766879 -520246292 -196157635 -829066388 -649287967 -93732499 --206548021 -435475205 --245972813 -438507322 -75357653 -967219793 --54342306 -809886721 -392273380 --669364224 -973644270 --540621250 -612784582 --904404523 -904757913 -74598137 -916621324 -345653543 -363474169 --236560759 -908476934 -986502005 --411210422 -113649973 -373857708 -375363408 -732757650 -651855971 -423129728 --3748299 -83703702 --1604936 -278788942 --598165779 -6381088 -111105754 -916953509 -312707218 -620066891 --748205720 -297404814 -479329602 -408337625 -134845180 -784301404 -44937385 -728844996 -599393461 -751732069 -706518427 -459741949 --567661158 -57830929 -228758282 -343038304 -169158472 -284953709 -561072203 --374464103 -458207919 -595793068 -596439824 --863626644 -334851542 -528013468 --516799605 -748505016 -48087482 -159946322 -259945596 -564686165 --134125443 -534492376 -741560445 -861638228 --569440531 -391151020 -209410024 -440644545 -495238784 --815961773 -949662822 --825389995 -385091042 -581171717 -86450969 -667415737 -126305431 -904568713 -591713870 --529044431 -471866051 -47612269 --962604214 -116283499 -219690524 -689632951 --350194930 -890567077 --247472192 -734706533 -584949958 --62304295 -564713348 -935073324 -226959073 --845542748 -144607795 -965870518 -765550436 -796159051 -536149540 --951563243 -72132812 -634593254 -502759834 --863381058 -136968552 -541748184 -295798033 -183878241 -369851491 --211525531 -223768114 -554080372 -649606472 -816702477 -596891339 -839963970 -285543966 --423440753 -253527546 -252086038 -286073469 --42054026 -487597005 -96551000 -628390907 --883936607 -315640709 -907552769 -809007946 -934132151 -963405488 --63735607 -443927236 -614902436 -663987750 --954927271 -793573397 -736644134 --621563570 -437015560 -632112031 --611869817 -843878034 -844240008 --251770381 -262020681 -873117436 -791806343 --392800073 -168410389 -330537400 --633065726 -714177039 --352065190 -299211964 --844369971 -870275252 -816555568 -102429432 -550078024 -931550929 -195432963 -34635799 -545608534 -311014380 --585364725 -165215076 -155378243 --953914414 -882616563 -989038589 -535163413 -79021164 -113516374 -768350551 --457569716 -271298477 -62485170 --979763064 -749308567 -730609687 -70230885 --745945995 -785119165 --32421199 -974834352 -791384596 -781710309 -839046480 -356531015 -930345219 --464045356 -971241140 -65035828 -968184779 -734299985 -12624981 -420291425 --503811372 -862929195 --952258559 -875720707 -473020871 --582314104 -417686424 --505318778 -451117401 -701177544 -89137734 -346277144 -953586215 --433281868 -344804585 -463250195 -315913015 --654514572 -699302580 -426725476 -98757566 --308119889 -330250607 -305026084 -130766233 --809007946 -128238584 --814909655 -414467739 -550657583 --820118507 -629232917 -485458352 -944101465 -516813897 -421701612 --914226967 -672818289 -9705511 --809929771 -476957719 -487946421 --421919209 -597410747 -250814431 -132482398 -927733472 --331064092 -383481339 -13693178 -661351513 -716568108 --862932748 -995788853 -780296233 -497562337 -391619982 --395749859 -612490465 -388350046 -896337063 -971759568 -694077475 -430238113 -891387130 -180970090 -626103694 -518370224 -666009133 -795952576 -48851493 --10521218 -54597872 -320784914 -592601757 --834163489 -862982946 -932366897 -687823046 -966959982 -535412324 -444633844 -209262765 -260427297 -408845786 -487141544 -133173492 --967904778 -953852790 -669077698 --239664757 -496936741 --107967852 -975304193 -810938969 -158016386 -943990422 -338822068 --753526783 -458378309 -234553367 -72240433 -741950868 --627442810 -794041208 -736018710 -904941991 --182668772 -217358735 -365045049 -18137679 -232383110 -543861031 --936364269 -557297394 -32600156 -57359203 -90534756 --521850400 -684427081 -759095471 --850948340 -389710991 -747839352 -886524518 --238587085 -46715451 -494313488 -86213956 -703345601 -576534069 --80193499 -243371203 -625435634 -405044737 -160929051 -465666816 -136509465 -51953554 -804813111 -135263777 -398229220 --269679329 -73587954 --678977099 -648019045 -784947275 -599017981 -120713319 -917385898 -674369049 -893409860 -638779268 -990388507 -613625111 --817122188 -193367143 -423079258 -15006118 -907949023 --708052914 -1684663 --633640586 -542141919 -126377822 -931367931 -527269222 --487217627 -61253692 -690204649 --725667547 -471900550 -425208492 -195718604 -608318260 -245064617 -575504364 --642800200 -926343820 -373557695 --217796768 -369542661 -620081853 -402249481 -461890138 -392747963 -993298748 -526894628 -24929395 -795390799 -610529749 -250034259 -70230453 -849164364 -721904460 -638731834 -250039761 -665460349 -109518978 -785640394 -639008012 -394431434 -251780759 --108373063 -974596646 --188950273 -727393844 --515704175 -600757728 -376312871 --698351750 -850842397 -111558847 -361435135 --360954241 -442175671 -121992586 -351378906 --154724031 -975034780 --94816024 -443088000 -284181007 --107104225 -704400960 -351717472 -454944849 --748802551 -315383872 --177392667 -981288065 -774255361 -941124974 -497156419 --833935097 -371560810 --269034670 -810173937 -291965250 -683224276 --945111367 -428254585 -125205954 -794669963 -312203734 -747817887 -936805161 --437342469 -754917454 -123913360 -840475929 -939600769 --821996137 -234303572 -314295652 -425539262 -397456496 -874072046 -651167801 -60472288 --111546645 -878576059 --236372088 -165161574 --159482439 -394305297 --127760195 -566363358 --760324087 -660368848 --344155025 -265048376 -316773403 --624918461 -824300888 -473914225 --342984887 -228735285 --501164203 -523071745 -922005439 -17029200 -140696503 -963394204 --663531346 -976081044 -585979508 --296171287 -987888608 -752385084 -425174436 -529833733 -819154821 -60528827 -69980945 -698146670 -328618648 -549200956 -627176854 --918717517 -667879574 --135263777 -129737309 -341021939 -694120003 -143149892 --81158540 -344314246 -251614436 -118587439 --907226800 -331104049 -938288957 -103730860 --956016557 -439374057 -636743934 -182530052 --534606977 -180632344 -217527832 -698271243 --120801462 -441273760 --684573977 -309641318 --783074733 -399619492 -540845418 -63252385 -844730333 -811169421 --779331535 -962241775 -84942905 --57520067 -948737318 -287631905 -323918716 --265990371 -822016291 -952893563 -369005061 --621487784 -686212717 -144972144 --970636094 -587920819 -182592379 -705431442 --974971704 -275958761 --337935940 -85809819 --536149540 -409268898 -991629600 -649269918 -627113099 -73305619 -721470242 --576818532 -1691134 --517680872 -47695389 --554302098 -148013283 -58750292 -973212210 -943170961 --566296323 -425407750 -737041321 -553976906 --118799661 -228651944 -413604840 --971552774 -182159067 -594577648 --875289238 -827219529 -429417906 --436990385 -595536915 -934279467 --367370783 -646340390 -117550656 -485868222 -762864894 -358123716 -89846671 -136703853 --943083506 -310499531 -469438305 -498190427 -79015005 -598007001 -121977353 --832605659 -649511403 -84672896 -233415266 -503483460 -530250848 -740789826 -303298723 -161868087 --115275378 -357037984 --845913852 -957849548 -630862498 -342940542 -93013836 -649387473 -713340379 -774813132 --818491094 -743806334 -522609203 -538666484 --517909049 -62664913 -258058294 --94600021 -592971713 -680437993 --367330770 -31079183 -179924317 -339833919 -537417189 -919299304 --773293230 -361027549 -543470098 -806968504 -24014864 -762431620 -112739624 -248220939 -429744395 --324626069 -767626033 -776363465 --758667902 -714198271 --408521634 -858362904 -780431584 -855070038 --130542720 -952803970 -365097070 -675698681 -202804133 -743710467 --561072203 -891905426 -608866650 --690523650 -523019593 --747465780 -814808084 -752766162 --919115030 -546229006 -65930022 --399589432 -969166304 -727385087 -904558173 -896171296 -202444087 -898660693 -136105204 -525795708 --949123087 -720762830 -547160709 -29993181 -223321930 --47171023 -103363626 -349492063 -54604493 -269949663 -769939392 -50176119 -45712063 -854819487 -509274751 -583628464 --779013058 -534263863 -471396061 --52841521 -341959625 -178815205 -807047486 -234159249 -862871922 -750968482 -21547592 -681476691 -644094827 -445157456 --515471228 -491813969 -441822099 -713058757 -105517803 --89311913 -584085285 -436967802 -691379908 -650630471 --832661655 -651629507 --453290134 -234653768 --559474778 -166777327 --253744793 -634257720 -775474104 -446752326 --137448390 -941356084 -201967283 -346596964 -53489097 -915244381 -883356872 -246372163 -152850759 -730568338 -269167436 --774626861 -499328051 -528876699 -93615701 -839435264 --404312859 -439140946 -228132936 -647698608 -9649042 --310517711 -99948993 -415658760 -472923322 -276681966 -11276317 --319392871 -54457575 -780450574 -451465470 -757026796 -748395112 --632678100 -736679589 -355680730 -691733412 -340935478 --364556346 -651741738 --439374057 -764808777 -906232532 -631708201 -447749587 -234737485 -440709698 -19132774 -796547246 -924661423 -503024295 -114507917 -157891448 -38564484 --748430782 -628156454 -22090847 -530514743 -796967042 -157558400 -766464161 --757160731 -80488131 -596949645 -349115575 -546029676 --409796729 -985923074 -692198579 -499211464 -163795964 -953726737 -478808258 --151237067 -378260045 -68118670 -691581620 --216644287 -740154179 -96246615 --416428954 -751630624 -425637938 -532566375 -848389219 -595622680 -69063208 -722106644 --465666816 -118713018 -997842518 --333776315 -543163080 -129672240 --267916252 -259143001 --595540467 -47436032 -578520669 --837323203 -110883883 -345146156 -41393123 -551627161 --494856567 -898154409 --373813196 -995082918 -664048269 -638116528 -113905811 -736170986 -862503790 --353424732 -52751245 --946391946 -160581267 -133615471 -268699010 -112224280 -198966419 -760227766 --89351794 -80288718 -278738255 -696734418 --118517609 -10952853 -751955331 -232626300 --499258211 -858401063 -805603257 -900562858 --308011590 -140353783 -826875319 --594977448 -215650605 --143821572 -154618665 -588200209 --635348334 -632455351 --569375578 -847510482 -408648140 -214637805 --641511947 -243518428 -370141033 -646069635 -451112253 -216874304 -331378275 --520852957 -625614163 -418231010 -935104522 --604566793 -667509910 -638112590 -215369002 --118338869 -984191021 -696991987 -384884885 -485531414 -56786475 --415939813 -270092486 --11691418 -310599451 -191352339 --973420593 -914459576 -800676850 -435361033 -892811459 -718778688 -472721004 --202804133 -363363728 -704484938 -440323283 -492479471 -414510318 --785746311 -142386637 -831387965 -584204875 -547466350 --221027518 -627073634 --969870467 -110188797 -502913823 --935853948 -775406266 -862721804 --747645678 -145252165 -493511495 -234099648 -201234854 -22504994 -479445842 -211062 -778626147 -122169143 -673833544 -508762974 -649849857 -72681546 --856607659 -987207361 -432367211 -312680565 --362655283 -557068753 -453097351 -876625148 --806377648 -915791899 --517301311 -180204305 -159513369 -423842700 --901171669 -599223419 -728809190 -702398274 --699845460 -23081200 --927633691 -411238561 -827866264 -190287163 -573989688 -766890902 --56262572 -527515572 -17918879 -939148897 -637636853 --44151786 -796889567 -711420417 -309551351 -951456071 -448933770 -594544056 --617989671 -643240434 -928750036 --473531708 -375633183 -967752574 -423279764 -966070694 -857895557 -689963716 -759665772 --512798203 -970453681 -253998324 --843484304 -652113768 -560063105 --91106300 -937671022 -403877352 --901077610 -172273560 --528950325 -780421666 -787296240 -862635952 -261729331 -483154011 -331951688 -857392234 -217296567 --69006486 -110141004 -909663219 -475072309 --263115309 -506738269 -394020628 -179014572 -719691332 -114454241 -244688636 -421910607 -854695903 -825984099 -780096921 -655915779 -938624363 --932369688 -334992233 -606603393 -836556467 -657970334 -153090484 -666924120 -134783061 -461949554 --276188516 -242687820 -122337164 -255488979 --388002602 -370146786 -423266250 -290329043 -657886222 -123000456 --198384237 -592502846 -960159550 -478525352 -103162418 -529597768 -743848531 --988374711 -222097776 -701221273 -636103731 --669077698 -249614047 --851828456 -232283025 --317018801 -951811072 --882885876 -821365864 -525537301 -76793891 -148896252 --454944849 -594552317 --116843060 -371199104 -401530255 --808545494 -354101067 -97919991 -404182708 --908007215 -274033828 --166069808 -110399853 -484768089 --379520938 -968500901 -222568029 -270481227 -140495373 -747082423 -473194670 -473964484 --132539937 -553143529 --357468933 -466552807 --968300980 -101450930 --187178719 -24355740 -799993473 -657974827 --267537795 -211930613 --953268931 -516918882 -865835192 --958954347 -527653079 -297685317 -818375455 -747578691 -433600237 -325877575 -147049973 -326607035 -534923512 -497949930 -574674882 -607294113 --282275739 -934394829 -479180425 -398747457 -156310897 -332267039 -428566979 -633815757 -959783286 -558969677 -357142190 --652376987 -131387714 --630611415 -242084899 -808447516 -745514951 -669147885 -486574307 -517813670 --76292720 -420232029 -884005900 --635899287 -100762641 --937910219 -377487971 -635006143 -578300035 --879085291 -501139647 -729247019 -454019362 -910312795 -578084240 --432367211 -826381146 -757508239 -692761279 -503505064 --325553961 -270358653 --188635456 -709695570 -514904257 -306766987 -970083397 -616154507 -690612738 --765550436 -210111342 -717358966 -508875300 -626263232 -319520122 -552602470 --520906761 -188845691 -806063653 -924801192 -857156483 -678591813 -562961747 -816691720 --240015602 -272813051 -852902762 -227076602 -232796358 -965692079 -991066893 -257243291 --476208889 -786241684 -623563286 -952084695 -165620841 --157649078 -961971360 -622381368 --631612582 -37805156 -413396874 --225623576 -525359256 -324714809 -13980068 --314413069 -398462436 -973999261 --830780236 -23507259 --759665772 -88655723 -409257181 -427218709 -319819550 -781955682 --779143351 -825821570 -804275246 --518001498 -824235003 --730543703 -358810165 -680090471 --93732499 -241547834 --674443807 -531161031 -174256003 -186803771 --328437742 -731282253 -107354078 -240884577 -72743065 -878580720 --146318807 -790935717 -446314269 -72649979 --123401370 -553497798 -191460339 --400888334 -949040816 --925827771 -96242038 -696970573 -278848486 -12120889 --874446115 -166347349 -592858083 -248150368 -687787391 -498239343 -782110243 -700675212 -690027051 -811077273 -390946277 --182238826 -820944292 -784759827 --221397975 -747312952 --740789826 -915075528 -573993787 --616279644 -692282327 --21077977 -683023179 -751068653 -637746817 --706558157 -751006742 -514026641 --320942752 -789158721 -847462966 -584564511 --803072453 -401591399 --554547178 -585786730 --769460873 -726832327 --332413643 -410197657 --474316450 -226641491 -932054552 -53694650 -985579958 -330866901 -882363566 --101130101 -53220099 -45342214 --557807790 -236690234 --594577648 -76494860 -238534329 --403751783 -315521159 --196381040 -706575014 -438533546 -888857808 -23635451 -331589797 -191262943 -494341755 -336772634 --244175280 -221746212 -229154896 -112515022 -486695673 -21166070 -245094470 --811972929 -419009124 -917826194 -441216149 -747106166 -321649021 --219838654 -805230565 -956978009 -656404623 -631738698 -924378724 -142281804 --434365390 -683114027 -824178787 -148263139 --442630212 -381242872 -26795224 -508532416 --252981299 -649594694 -427734213 -633798206 -359101995 --451857593 -685960090 -64232638 -455810085 -676209022 --19145369 -448049490 -25966107 --276271854 -609131461 --579728583 -104529531 -69385315 -441514361 -262654173 --337646028 -619974916 -385349780 --384784512 -536287691 -149478645 -456354890 -978424621 -401773027 --646347339 -326803712 -523460930 -244968670 -916680671 -855595417 -539381106 -911247906 -596023238 --448714221 -525635744 -639885437 -182288167 -838470273 --85488085 -180440244 -850406569 -890084136 -866978429 -268773634 -473941979 --249449286 -229565864 -700484301 --940079859 -905566876 --913702505 -602705027 -637141553 -453824355 --917543080 -615503480 --276681966 -19236749 -849107152 -49052953 -913390717 -878059946 --47975729 -520642170 -409796802 -56954379 -399374393 -439951056 -875143622 --824654001 -437941529 --748503173 -208685714 -148502644 --22986223 -999026638 --849350290 -297623198 -170162605 -49390184 -517713257 -616055966 -457703089 --246737052 -49281194 -211978247 -889630274 -813865784 -23548417 -885947526 -400244691 -356614932 --490086260 -690102261 --471396061 -779879008 -316924508 --185045191 -278380396 --757777900 -250370641 -577757115 --75030407 -476596260 -330890687 -651185472 --303625420 -834218356 --618702942 -593961647 -618609271 -584933532 -387854243 -891404014 -381866463 -814748441 -700927242 -693715959 -186628843 -707229418 -109116782 --995082918 -679162917 --860788624 -855102899 -86796095 -796291927 --88358314 -813617321 -385664040 -509781964 -199631576 -794899767 -972530786 -731103 -981947597 -207520289 --948788444 -652476985 --952025307 -330182018 --437454717 -577655811 -183197553 -541066333 --232962818 -951781273 --96995326 -580464865 --78974420 -728942501 --874886424 -152081566 -86860519 -269269103 -167836323 -895363655 -586532188 -704618224 -582464588 -934962902 -285605448 -70252077 -797766438 -638889422 -121537972 --324351762 -90509376 -828073789 --961586370 -347507806 --290448072 -998658489 -141453749 -554583090 -990631236 -226490071 -781352416 -961178940 -522782983 --287743603 -396788196 -208810191 -335621494 -683890885 -490992160 -286675253 --971282023 -733950163 -117913323 --941368704 -305289252 -133998625 -289478415 -779874237 --964272215 -310604981 -833113889 --556195409 -575223466 --72108094 -791371388 -127776705 -957504158 -420228933 -884358712 --499765492 -125311089 -569973493 --485917854 -464609336 --72132812 -910755564 --156476584 -135350112 -107040675 -223734558 --191718346 -155857463 --206289592 -754328041 -355216792 --902724848 -555861397 -582807966 -287723499 --223694128 -870412197 --945604249 -461801928 --970711411 -965015511 -369949704 --458207919 -372100023 --599653920 -755088410 -761080201 -485422408 -256483336 -175162387 -976088107 -654923482 -616767873 --602445750 -444954256 -703076492 -43263729 -212362195 -889342503 --312364254 -152556424 -220165046 -911376769 --125230352 -5642765 -480945136 --132332174 -162143960 -947393729 -13276950 -854868172 -564361066 -580697865 -253052122 -691943583 -219317357 --344360568 -800435283 -466032728 -301620203 -495279923 -130442818 -550462349 --418921444 -334880384 --956978009 -203127860 -886868248 -841829819 -990251509 --441044233 -415612249 -467525389 --680421385 -410183674 --591515348 -368881803 -249485235 --196819104 -264904216 -769503055 --974894587 -828747313 -163350466 --24014864 -909211126 --931650051 -856536099 -794412866 -69322390 --525058742 -176408097 -513580504 --159996399 -585330064 -524031291 -304694178 -137115296 -393776023 -360793403 -127465135 -495230937 --131422916 -543560981 -365131125 -441718191 --587102365 -41868125 -960604064 -189419397 -449902572 -706645826 -738033894 -535300296 -802701861 -892268091 -750508434 -178015037 --632885408 -291559066 -70655551 --501121073 -579786313 -977520102 -503474514 --254660548 -688947883 --467392615 -823262591 --953544627 -98314028 -553722051 -608249370 -996953812 -422347389 -995150960 -769397861 --388212129 -864863959 -876108483 -828196988 -319513995 --585330064 -605266616 --34900212 -144602666 -215398683 -805964393 -313991999 -130858526 -83309175 -898556975 -693295207 -560473806 --752878720 -357155402 -231966266 -286270347 -683284235 --798423277 -548279958 -247315134 --364999864 -980927821 -527913477 -584922253 --34103455 -985992291 -559033181 -8964581 -270099983 -805018215 -796495296 -220227886 -697314971 --994445632 -17722668 --666101018 -416610868 --138408216 -407961963 -103478423 -322311005 -916048611 -965066801 -839348350 -503005317 -13424152 --52361599 -553065309 -457642483 -290654013 -332382978 --530428357 -601745494 -992103717 --895062522 -269406030 -673664369 -895004143 -803195795 -160359325 -593422369 --511542024 -1423437 -626313227 -828210519 --970002697 -269833658 --612172936 -201563708 --52475438 -542860933 -242066913 --417839730 -138347303 --747336245 -95734653 -989332016 -188262270 -732670635 --997984691 -196300555 --445157456 -973271279 --234553367 -253152250 -374489730 -346145196 -951386350 --261084409 -630782218 --76460153 -19055292 -745221273 -732618993 --518401066 -672613355 --182349645 -109759553 -247641150 --278603356 -270553063 -820453044 -238516772 -880619660 -10243521 --794166659 -629193608 -671483194 --495279923 -294756655 -773486920 --365744281 -762263228 -615094952 -3405401 --969404404 -44075250 -600949835 -791901225 -704027738 -457295456 -695220886 -376962276 -137894426 -787857151 -22363141 -764673206 --136968552 -389010392 -252235095 --975909044 -286623565 --54930717 -39222939 --580699006 -424760571 -461601760 -59152537 -881102729 -202647351 -869490091 -439721404 --865568463 -842805925 -197433467 -269602995 --260764678 -329616853 -633112894 -242286173 --390321753 -540693370 -360546783 --233346865 -500206090 -130047662 -257855762 -154360909 -91539346 -217929903 -179399048 -137123514 -888628785 -557136091 -622949786 --134928597 -359074681 -827645668 --310236925 -263396103 --576197004 -384936788 --92033573 -385462944 --370164280 -67135746 -322990597 -570725443 -486279271 --494341755 -568053265 -362111607 -1175336 -514634798 --296494769 -407985456 -753039540 -903040457 -629224239 -111307891 -656520180 -396685288 -364473869 -117561934 --721093366 -579112846 --101880397 -164386361 -30778959 --408170208 -286039618 -357128337 -779578840 --448791111 -293385520 -539592094 --181311942 -976377461 -773357736 --629269766 -306754184 --195115230 -993228398 -382423237 --510567365 -463164281 --624250971 -140852984 -419971132 --342405212 -995304957 -395814459 --392817369 -12610963 -264231480 -827476941 --300407501 -262132779 --369597373 -260540718 -457379447 -619475892 -570858542 -223751820 -846738812 --541770323 -836489611 -281571521 -245621226 -915495886 -828409835 -708924480 -438052684 -207770034 --677602134 -731440138 --744469170 -565500479 -755256645 -929710011 -27463809 --185367737 -324202433 -439403800 -185105342 -17858601 --270329989 -208016736 --471107233 -507468358 -706821862 -48001348 -963381915 -19656714 -400698531 -821492478 --883377965 -965140680 -741448106 -303703011 -848515078 -19000715 -989448806 --779879008 -575318597 -953950770 -594655890 --515820751 -871654433 --111558847 -232168176 -379135835 -715720922 -494661924 -655442814 --743055808 -173811003 -909733530 -26872437 -709294548 --975784176 -616375450 -50411475 -193442527 -995224666 -133581970 -830823391 -583072975 -591079131 -577033453 -367314717 --789429019 -250443051 -198207408 -97369052 -238172301 -519263451 -627425780 --148502644 -344902552 -375473953 -714511955 -355072817 --696863041 -80268821 --711149447 -543067440 -314209472 -936662257 -512270845 -355849309 --194938951 -445960876 -336002727 -934952055 -867001012 --476152779 -533213176 --838841831 -520881852 --667569399 -312025925 -359306159 -884895568 -534157069 -934169687 --49281194 -994355951 -975683894 --167124778 -474854391 --689665095 -659392164 -448935050 --648584834 -602352110 -894155150 --338900031 -684737624 -242972857 -969619625 -172406844 -236498558 -714422574 -83620448 -315447429 -332110456 --562285935 -976623029 -593271988 -783662736 -379630700 -584836317 -133739426 --308103368 -11928105 -145825588 -110854962 --29163349 -235039795 -739064680 -250635528 -124671674 --779874237 -252448709 --16842953 -229008178 --90989201 -861403748 --376312871 -544722291 -516946367 --454106702 -945846401 -153256458 -477544948 -767770356 -851497271 -480875036 -587477058 -861906706 -550657522 --726395123 -374890399 -137676785 -953941576 -834515785 -983653313 -302454761 -336113436 -630971304 -83309979 -744660386 -990312344 --264822896 -887300136 -46087643 -590186336 -643032614 -636049946 --507845102 -714098728 -5361279 --825386660 -91071426 -899178004 -636953206 -414504486 -496643122 -977066508 -791757724 -24021074 --901726386 -15949331 -97826760 -651057976 -983240102 -334074660 --44650306 -333482399 -765827889 -611778746 --820875302 -174012082 -64068602 --420494379 -43526657 --394933769 -41835976 --110591465 -875098304 -509045168 -731411188 -630809277 --966190351 -323785253 -497099524 --378375358 -937993132 -77816196 -128608248 -876502638 -352873985 --68118670 -13752269 -782854862 -244257523 -933251536 -998147331 -370224598 --282862071 -365291429 --908576126 -277000903 -884967170 -151502601 -169488369 -918914898 -239819719 -650230344 -812868163 --709920357 -918028817 -458738748 -700400846 --797964707 -104658970 -64095424 -685338383 -66872819 --872833549 -70669492 -763050379 -699519656 -768412832 --828747313 -423701074 -111589286 -836651737 --285312915 -63821453 -178572659 -270688882 -439396408 -8180591 -708341352 -335469748 --721915123 -816108217 -747000520 --139739708 -627005114 -282945372 -811538982 --619509283 -758406604 -137166682 -79847557 -47793787 --710614227 -397795614 -767031756 -233714402 --490022203 -692156189 -39531615 -550206988 -345543873 -311636017 -254988849 -973031626 --258501056 -840485298 -321836012 --229160054 -659657548 -988452981 -775091099 -221189861 -819600671 --861830442 -883160848 -464317674 --711295138 -309164098 -546805941 -29735027 -879293242 -70583205 -647350666 -297382924 --686558893 -68686564 -29084896 -596118785 --982055347 -961946541 -634799256 --944195283 -862861734 --5759719 -779654839 --270422371 -358431755 --105757152 -594880339 --394192748 -693025442 -272790516 -569326907 -124588842 --356239856 -612849801 --19921303 -605748875 --770702452 -749221124 -583182600 -640833857 --161807625 -906143174 -29765126 -31263689 -927199323 -333251517 -607111680 -309083944 -132715437 -553101165 -830671137 --90629719 -359118936 -292077341 -914312471 -940510516 -561032181 -347186656 -773573757 -282813580 -707557813 -789610728 --391133533 -540912765 --525635744 -898511881 --370042054 -67256402 --539424392 -61996993 -77448050 --356955984 -185435925 -668840738 -637513033 -291192537 --281717786 -585888729 -423153006 -896765043 -391144531 -901096997 -130084409 -550459184 -396548177 --379233310 -617767748 -438770474 --316110753 -150210338 -739863820 -215393854 -907136331 --220547605 -79968420 --303906309 -773599862 -531061220 -514403248 -64547912 -969665885 -882762438 -935164945 --793058537 -232397375 -762635170 --510723857 -620918193 -535897928 -745959673 -378339860 -938567208 -996977693 --660679429 -720066829 -241414522 -805379773 -8558212 --828588540 -238734905 -762985349 --414467739 -228279262 -886319877 --176762754 -990047647 -717305471 -549932438 -632508286 -807925087 -601638639 -529231779 --703460685 -478112557 --449216191 -289129950 -727860088 -928866606 -175268727 -698462240 -969385103 --630581496 -498139754 -492063546 --344599976 -659066736 -172910095 --498217932 -910904830 -554423544 -201879021 --783179966 -497152872 --827571311 -936138114 -684933940 -223497448 -264454195 -308286266 --526431153 -216445262 -106756236 -783393971 -994362123 -495829298 --263396103 -674644411 --38108618 -296498193 -873178447 -96477030 -656816011 --768198021 -619481930 -642883617 --426540573 -250345991 --653084967 -63824870 -101549096 -945751905 --883160848 -320897403 -575216211 -495943987 -879119219 -163306802 -872393627 -883542218 -302958932 --470234497 -411580286 -79812491 -486410250 -548031677 -849790604 -199104778 -242315353 -47801692 --205138962 -129492443 -218362044 -187531130 --537586126 -17724717 --381242872 -423453782 -522870882 --723958143 -948272784 -952499201 -568350781 -921668563 --648745139 -735094023 -936413543 --172273560 -6940366 -347134910 --923168920 -592566283 -91148859 -342341089 --708932938 -269861106 -115579105 -97190369 --824235003 -263589794 -153276843 -371868651 -423611630 -971959228 -614611971 -815818496 --17565676 -508333165 -851882058 --317005062 -605176830 -170956295 --312373624 -810276913 --139206245 -13497204 --824178787 -114811046 -710191407 -670506981 --725395081 -344011798 --45229369 -976107381 -455107375 -57835412 -484581343 -468128204 -743094418 -998886761 --129793596 -490757829 --947593070 -421420615 -964787071 -379739475 -612129310 -735197865 -479989990 -305252519 --32072820 -843903359 -133559736 --250876078 -48898256 -427736755 --600949835 -871691334 --101260485 -291413759 -148212300 -71291555 -72108168 -712229610 -619994328 -187897831 -246250002 -16348198 -994004151 -775018919 -907036445 -93541074 --314982430 -363222598 --501989872 -949900649 -110140913 --292077341 -760348187 -922076632 -659561374 -484008792 -947950758 -286891921 --434941422 -363466016 --907927696 -894538446 --447672136 -823711570 -161912191 --15499604 -449331885 -215783753 --490767995 -576047863 -996622698 --700998121 -954510958 --49902715 -461956618 -499097221 --175178190 -320821998 -218138162 --563217273 -535309973 --429297857 -520407650 --958902981 -611155937 -993082920 -39658369 --455809548 -603028509 -197294675 -352314471 -201473092 -463789935 -197112130 -680435912 -936175333 -255810838 -760752627 -931234911 -606646084 -355625754 --471900550 -315190957 -111637649 --511497383 -384787582 --515154559 -843080045 -783460818 -190106605 --558089051 -882663049 -743611821 -429037584 --832677016 -787487806 --202647351 -338134805 --381346448 -339929459 -195047939 -831936285 -831047842 --566759769 -861367156 --359101995 -627127695 -621589900 -848614278 -496527683 --967860928 -620520892 -662697211 -696608101 -684622275 -285566499 --456714280 -859372539 -462694804 -36500755 -52414007 --299622755 -424060278 --277549416 -63114324 -509406884 --291941508 -405268362 --133559736 -398154989 -591831556 -445415907 -725390619 --472596384 -614362968 -552923071 -764658036 -495924935 -905588246 -32120264 -689583677 -918126747 --752638759 -360955731 -437828850 --902296866 -397653947 -384106543 --881475964 -487133166 -721887525 -344983156 -310935170 -22281152 --959883506 -793042449 -817434850 -234524987 --385016342 -202506511 -664684621 -564921491 -971898282 --551491870 -935649667 -430173913 --142445506 -404943365 -217183560 --363222598 -910462598 -195455873 -217561217 -163034370 --198999883 -418988553 --374763378 -235027591 -429547073 -890704644 -663016298 --580319668 -317662064 -852772605 -60797531 -608569057 -819532527 --657970334 -974179967 -126938705 --41222679 -468315421 --748233873 -876768075 --81052970 -999592099 --476596260 -986339255 --145511991 -351827693 -311662065 --73667267 -778806228 -764377488 -705131716 -810471479 -872660646 -967838268 --151170833 -538906414 -384840967 --839685278 -175709316 -824777207 --509390884 -128438022 --722031578 -262676008 -461840011 --546145095 -18971973 -46622391 -701429060 --319803774 -604552554 --357425657 -844570159 -888176435 --157558400 -823011223 -4990347 -541902644 --943057531 -83049679 --954512812 -330093633 -759592747 -188332337 -379168583 -763236848 --505267488 -389953197 -586680127 -279807024 -529586709 --342981212 -160983995 --757428671 -101326555 -240630013 -576673909 --505385401 -530951058 -435471376 -725016443 -487874030 -440358281 -460201493 --713206275 -736460403 -982121143 -441732720 -751550821 -66137861 -976879599 --228735285 -683039716 -298398123 --949065688 -412694663 -33193972 -188860054 --489921272 -179043235 -826302648 -141419044 -862520452 -699212210 --157270592 -680667338 -89823071 -112938740 --781955682 -831577436 -213966752 -470028005 --99948993 -606706408 -220201586 -688645398 --307132498 -482204358 -467343386 -725847825 -913947749 -960503379 -826309864 -98560398 -370337160 --922184061 -441674427 --269833658 -839126065 -303237429 --366085121 -128902604 --261464481 -212929355 -892352172 -227561224 -746764899 --313991999 -439482060 --789434874 -738213070 -137474417 -577757123 -354667487 -971290484 -627902495 -936245463 -379757581 --316541899 -205986674 --405950362 -850970716 -996606482 -800986259 -431248518 --718778688 -807800857 --814748441 -167759479 --323865131 -209722220 --817624566 -226448750 -451631273 -703394047 -917248040 -63422213 -809964120 -647602080 -329986830 -968550346 --716153336 -476008619 -923028233 -639345847 --169065827 -343846779 -814207907 -398147263 -820201002 --512464587 -531371276 --176335761 -73832830 --626313227 -66919081 --650230344 -706481451 -554756956 --39940149 -173912356 -320641421 -369069036 -866867472 -530429226 -259822743 --639885437 -770217898 -980691727 --656919681 -762622725 -518126066 -179160197 -886820838 -713311170 -287670164 -169415368 --988907450 -146495044 -214974233 -799620430 -426618939 -530241453 -520006089 --338520468 -459329718 -361743752 -492965842 -486749671 -459657593 -504052044 --216973095 -418250358 --334070741 -442191195 --318595318 -122382921 -492193412 -637649023 --439125166 -721781614 --126219750 -380104324 -140170182 -941956742 -547996025 -134770668 -599075172 -158678568 -790617290 --785016631 -520401672 -531459027 -901797801 -823246812 -673270106 -242316539 --898638611 -352794410 -62986904 --822800242 -892315481 -77392360 -789609579 --311784402 -108280567 -677856722 --660001544 -270118148 -466179007 -331823373 --667392971 -733048706 -660873822 --186291300 -98466625 -219835787 -576463951 -801698639 --987151783 -230216384 -464496627 -380756419 --320742645 -693215691 -149399476 -126240105 --901501582 -670216581 --143542390 -2277437 -298962947 --139016935 -972502545 --910196362 -688354984 --534122946 -617942446 -870801998 -272243329 -757371253 -928115685 --540756925 -291894563 -423962220 -764408038 -186262035 -316786531 --127698459 -792838075 --124750175 -261367184 --335943056 -784707275 -959086711 -424028460 --47793787 -112931201 -205812119 -298958076 -30712182 --659266622 -947799036 -772173753 -850819977 --45884432 -602749786 -932779953 --779719972 -258928417 -648237135 -893294409 -275490840 -749950438 -142215568 -234858935 -808294850 -379465860 -197452680 -833249204 -280160406 --321649021 -238000148 -985335873 -458655707 --104566546 -136875979 -67347714 -484141659 --509274751 -357194956 -161709123 --221198011 -543175264 -14590927 -687812513 -650825406 -841265257 -963470693 --641971827 -876251691 --671775014 -246854402 -171157374 -701780877 -220313535 -893901608 -407097028 --963822761 -881042591 -48216759 --320583140 -42446659 --620066891 -923396902 --357541440 -6418792 -748724524 -117331886 -325490535 -507622529 --803525199 -551568709 --915309837 -503560051 --627392358 -647890163 --107524866 -46287414 --327535468 -969036943 -831606776 --56552669 -660775999 --13813603 -393517545 -846725844 -145551047 -6637091 -763941058 -149541808 -167670052 -305398116 -495869343 -1693870 --728295327 -658012535 -910537318 -445705808 --418250358 -743517679 -199823193 --606603393 -726291440 -111518384 -811274578 --313983366 -744371774 -266110593 -177267330 -876775751 -989232560 --865195285 -70829327 --780755323 -587742022 --548594517 -894401891 -249830941 --964352461 -335136688 -844786637 -101434460 -161256689 -912419380 -371197142 -191797079 -708517987 --243976686 -815485825 -906006117 -370760198 -239376173 -890566349 -846979720 -761482333 -468461274 -116234221 --367314717 -679951459 -448113876 --526769029 -505733900 --74178447 -743734921 -165180364 -69471187 -338807546 -921831103 -869036021 -809978216 -662784125 -197220403 -764527913 --721945470 -808176794 --905041145 -438435841 -743939698 -404429477 --56765968 -159074608 -39059671 --965997067 -471990957 --803948188 -676612281 -370844613 -808839183 --335812982 -728863339 --680824755 -25032397 -389605905 -234608913 -47501141 --321836012 -384317232 --414493552 -74327884 -69573776 --185964890 -760879873 --129737309 -389925933 -590726360 -271884975 -502250399 -87288986 --672154179 -484846700 --764435267 -884285331 --578084240 -109576319 -335836857 -843260688 --911318139 -827656476 -294296596 --402448375 -18312252 -180235965 -772888268 -144534640 -456332612 --427920379 -66685757 --444400491 -319478278 -284564101 -353708865 --17029200 -935689130 -251376820 -309499957 -150380526 -501259253 --616323481 -8302241 --692685958 -684994620 -810231917 -520469624 --256483336 -455833582 -746018017 --293063078 -354979264 -923288703 --268662914 -654942755 -734273124 -629693725 --848968215 -204441159 -630463925 --674584462 -106733033 -425674158 -685874511 --646084634 -755375135 -309598800 -959881558 -679334792 --74542386 -920448808 -575343207 -480180980 --395205150 -108671177 --46715451 -856920421 -281349962 -737888069 --835838496 -629890875 -449849349 -600601329 -854383380 -207276646 --654303761 -266138787 -440988165 -917398053 -838759732 -503036373 -753944259 -23707409 -310194071 -295273405 --882120996 -744467518 --528876699 -433283160 --727034676 -481315114 -299720450 -794660783 -175124123 --280268919 -487342436 -676172135 --926241140 -232294018 -62601776 -232118350 -687215779 -960949659 --128851750 -987902632 -306482107 -854106706 --351089936 -259791896 --767942485 -945263941 --925864114 -175344373 --764673206 -845307775 -280773353 -188001168 --971290484 -840163600 --520475409 -257494119 -520244668 -172660681 --781547275 -821767363 --173811003 -283806104 --491550156 -5157160 -558078694 -836105883 -359961094 -296103122 -741075195 --141019978 -196395159 --279298931 -891623780 -874345659 -136561050 -495915213 -56799678 -212028114 -587485109 -51330784 --179858654 -546557845 -675203805 -716505717 -929935209 -680417187 -912030543 -780810534 --128237026 -46803310 -887376169 -921095532 -909273046 -351378418 -307163962 -742493709 -350563129 --198825135 -747901317 -756320461 -866949649 -707097884 -789269189 -172878617 --561999101 -583442895 -165454024 -124717480 -330734841 -253466150 -309090721 -898762034 -927401050 -181044983 -314905177 -260394463 -74090968 --679505642 -610192005 --831964302 -136385130 -68585318 --382576563 -745608250 -173434706 -483828769 --290529487 -289032236 -20375451 -821890364 -733942336 --907360426 -515689050 -869307263 --388541397 -813303746 -972165316 --551790375 -298939069 -790054606 -498257465 --468992751 -778904033 --172635517 -120438441 -175546930 -794287343 --426029146 -271845098 -929892482 -900106024 --333946698 -881363768 --315104312 -995214354 -769358693 -369035114 --276699892 -351077391 --393888092 -523505641 --541871483 -355151119 -311379681 -882153154 --840485298 -124561695 --171636524 -196620427 -63006171 -249195858 -198797010 -662539900 -742509207 --25127638 -897743731 -947563371 -313262142 -514945420 --171507255 -683714550 -110600631 --389925933 -987759388 -491004743 --439140946 -546908883 --811077273 -760636122 -956751222 --740195813 -604024664 -537350961 --273144864 -855491259 -258307420 -388213231 -510531473 --276950443 -509101125 -166109803 --286039618 -205186975 -90245673 -726270160 -246096044 --228651944 -778522320 -502638902 -877848409 --551969727 -885833932 -230374259 -347001065 -361151297 -293990591 --696279761 -582952058 -226494725 -165514895 --477272012 -926538923 --328879398 -717025127 -600893141 -889344847 -823915493 -810802397 -344097468 -995644848 --638473207 -207305985 -390706715 --788072829 -54157745 --652532175 -628178872 --862933548 -524122981 --124186078 -127067267 -241626584 -116622709 -134977544 -495262231 -883661995 -37825996 -626734943 -569222921 -690339018 -429201642 -233934105 -505547385 -528462585 -609909280 --412012560 -514517627 --2581751 -158427948 -658964031 --336755311 -801795751 -956606906 -363198856 --531786333 -269191733 -884937202 -823908155 -57409780 -733611403 -216186059 --430978967 -989693239 -666891466 -234743631 -685258044 -732399943 --731003735 -405498975 -182610687 --968342820 -238492337 -842701948 -785984235 -22800314 -64240175 -691842437 -681650853 -899105285 --633357244 -288107023 --915571591 -690919632 -525379067 --522918730 -527052213 -159567053 --102459941 -419476565 --119819140 -354458042 -306071236 --952499201 -371840516 -631045987 -142366689 --394222281 -105238569 -228747424 -803965674 -894597580 -129466801 --960604064 -397403051 -429855603 -271359228 -26868867 -83366535 -24400276 -872832920 -864447602 -954512314 --747059982 -438926998 -206642164 -824048980 --496347965 -155481245 -122225520 -22107578 --653324938 -218627940 -49155633 -143715000 -876358912 -324240507 -81230151 --93402762 -31429562 -305707692 -617152109 -976781976 -789234487 -818116119 --988753276 -819942310 -787361160 -473389500 --446817176 -119800999 --182432630 -197082775 --663623201 -966600244 -532457551 -694547862 -17625791 -269634698 --530997614 -261278588 -57057325 -199553827 --679437702 -65872506 --69969333 -606497270 -706095359 -995273669 -573404077 --945846401 -666729746 -699352109 --227963914 -477231158 -250783640 -515203271 -44848797 --624114111 -741940947 -973258760 -412222245 -196397361 -423859251 --884358712 -815078067 -111663420 -605004771 -172745502 -160943304 -606658320 -713836290 -132157632 -664310275 -905113482 --93868234 -587132580 -307815029 -81746952 --33328692 -575357047 -136875891 --527488358 -91305681 --285122211 -135748552 -117002417 --862767569 -424129184 --728942501 -231644189 --748609630 -242370994 -49516991 -239779439 -680963470 -35604644 -779452255 -524704560 --86213956 -381458841 -152525805 -202652821 --504673002 -607374733 -220573341 -726340744 --501525971 -60784738 --841829819 -655028499 -17951586 -733582110 --871822193 -172791139 -47837436 -129867147 --979968819 -165345052 -26016575 --458067830 -919344133 -842965455 -745825485 -511891736 --580310131 -24140745 -564965043 --35771255 -629270672 --707557813 -974660094 -869193817 --984987373 -695842161 -636022633 --622949786 -366802905 -991753515 --347186656 -846045710 -202222487 -757859319 -638652300 -171447666 -278918959 -241252470 -293365796 -988139051 -412647356 -556389948 --622734152 -538559112 -834403286 -676517670 -341063409 -690441656 -753063723 --625614163 -48544120 -697136262 -18079725 --362917068 -828682369 -944190009 -103274130 --437471405 -249108851 --66872819 -624183318 -821942358 -122395104 -432171315 -372647814 -351518482 -749642161 -102559895 -247380269 -612182431 -921352447 -818328111 -783777075 -356132102 -129594742 -551062965 --145364407 -867288245 -883429764 -585192127 --271884975 -796206879 -80025723 -932959384 -486632021 --125709709 -370316599 -452272488 --276967686 -847064907 --830671137 -599683018 -678525770 -758572747 -84184269 -217231731 -974512363 -349175006 -970984412 -687823485 -507585867 --467525389 -697206248 -202283443 -986087919 --484846700 -774449039 -847499370 -468986327 -139405936 --966637034 -760755564 --161460810 -727976012 -707743312 -901289019 -213650840 --209835454 -89378812 --459248296 -877863411 -249324305 --726614297 -437518617 -306675803 -539657547 -165129139 -801000219 --271359228 -678153458 -358218273 -961108038 -533753553 -468299054 -993251281 -113573910 -990969247 -904370643 -522784589 -192575762 -889967724 -91940651 --339488643 -930893882 -483804074 -22444468 -636662591 -257254078 -23389192 -22771549 -166850286 -672230623 -231067662 -703744054 -531554787 -686431801 -319077437 -43809847 -878232952 -590217266 -701074283 --639188435 -33067878 -718539076 -483054491 -366631508 -953771142 --821942358 -275218901 -752516665 -381885101 --111518384 -859645726 -578192293 --678706857 -911455718 -166663903 -493103576 -899409225 -755841431 -646578613 -557108750 -425771792 -560430493 -530693247 --207900686 -928998411 --310628496 -282097148 -599553036 --698977208 -921252737 --304909654 -378538003 -39513715 -896530297 -240797817 -886595177 -719744329 -627016731 -294698709 -123286927 -614102477 -840715290 -352585780 --389410259 -802128780 --755763550 -698977931 -453509857 --859645726 -39633995 -188095860 -670458206 -848877661 -414871484 -396767840 --694519954 -227427790 -880551318 --443894398 -974129068 -177597031 -964127481 -903645762 --530429226 -342633899 -170713062 --276148224 -901778481 -882517205 -378585225 -117610063 -734177305 -277897543 -474562728 -244119092 --276328104 -449247688 -413622049 -219447787 -363300947 --197452680 -174865582 -135032505 --352585780 -89535276 --499328051 -627870150 --870449724 -62716688 -374514095 -140496297 --505547385 -990003321 -58511999 --466657793 -630918295 --434075354 -196427639 --577176371 -764734950 -319260967 -720609788 --189142200 -590297076 -781979692 -240592103 -477735278 --912783131 -917471896 --238516772 -22909542 --910070681 -537149730 -407629246 -923679524 -87889052 --405785251 -808521011 --162357376 -876761586 --444769367 -82864148 -523068105 --159130093 -307759336 -8090422 --216479496 -165738369 --898762034 -727125744 --880898152 -408691335 -91221179 -65641573 -384322309 -326163771 --633708333 -215770034 -715941311 -132693825 -568264319 --401410168 -177236501 -219438044 -673894613 -705381359 -245854369 -873607259 --560122623 -630246389 --72108168 -978381071 --125855795 -935518584 -568430708 --851632152 -399080742 -902281098 --233273013 -419851054 -968799213 -811457853 -720164725 -385778509 --738177693 -590624599 --47233619 -480010779 --54950419 -132721802 -108602164 --863191536 -736681040 -657419065 --317546072 -970398118 -962257097 -263981251 -521716486 -282063311 -500194821 -136959865 --910907470 -614077674 -811264091 --181099345 -383602361 --893790225 -935491704 -697732085 -615525378 -462300138 -571236807 --320329750 -66372474 -920149883 -600762694 -320291760 -131595293 -937504480 -666660485 -915118662 -504676618 -70088167 --845615223 -221459281 -895772973 --828796394 -948070064 -280064665 --463026423 -517454700 -745017342 -844021559 -797892247 --957504158 -502416584 --29084896 -450004875 -37370952 -976576222 -987946709 -47114468 -696070371 --165817456 -47434182 -526949925 -169507045 -695596598 -584685289 -355829040 -101886448 -237165222 -753385103 -786827146 -535412774 -777421006 -10328367 -730741187 -266055641 --283380621 -641068318 --437941529 -445322784 --518952975 -788159348 --57373501 -856361661 -3144791 -242561430 -513446737 -785787607 -60273630 -989597923 -540411321 -442420052 -71713195 --993808038 -35059418 -821110408 -55807815 -764237505 --392957589 -747626638 -269283143 --524614328 -289988647 --340488911 -172083357 -28940714 -146868524 -82952593 --450064884 -820747370 --481405845 -709413032 -516394625 -737203871 -754012622 --121849037 -63058149 --586478898 -958018719 -110855850 -559280450 -254204501 -410106037 --236766343 -659255373 -890543369 -308349368 --304998994 -390411136 -375613921 -404996336 --436096428 -942362993 --415468785 -421196460 --876173455 -605253296 -100661052 --335621494 -717525194 --309172912 -458520015 --468983982 -812244698 -589803814 -442186071 -646147068 --785843395 -239129119 --155378243 -909026430 -289842188 -406777029 --956582981 -58680981 --590407912 -397669397 -983670403 --523373191 -222549988 -257760691 --262466218 -309156466 -279796572 -263490774 -112430432 -793233765 --672730548 -198091009 -174439995 --561320796 -625222468 -101957450 --506499204 -278460533 -883303932 --18158412 -276138769 -704729058 -105453200 --171817500 -519521487 --349492063 -898635284 -133670966 -720298691 -151905174 --725924683 -509340424 --45395269 -947000835 -570090648 -302097232 -387764155 --634257720 -587483568 -24987064 -989184786 -619559578 -232099607 -404765514 -316665350 -497565821 -676562500 --648441336 -469077615 -869114837 -429481417 -282560487 -397283445 -470994776 -461813589 -241261622 -688851122 --784126932 -144028979 -552538329 --534032910 -551952835 --89137734 -761549988 -848914657 -898745447 -841065049 -939594755 --450146704 -160891326 --980819662 -486538697 -848616448 -8931787 --934306962 -61943190 --384202040 -736026962 -22580353 -384960330 -590425674 -9502539 --828635489 -376325036 -417684862 -652888319 -69593380 -945091019 --620080829 -268244176 -213413882 -380416698 -585056688 --49764093 -520325198 --584564511 -898492875 -314608668 -204675570 -299252654 --505094404 -387678514 -528802521 -55437077 -194119724 -152836819 --929607991 -290926499 -895448542 --979349942 -176138021 -600495976 -135305614 -501446083 -827401293 -407605869 -474284727 -608848814 -122183863 --162573588 -642602793 -557993694 -332703243 -576052497 -928381054 -488639517 -776898769 -80475441 -388678005 --511367686 -290842982 -373378320 -69902735 -156689196 -77050599 -366514680 -709406055 -351509876 --82952593 -682584225 -935301703 -452025481 -923368071 --708591237 -344546195 -99712595 --379739475 -442117200 -23704329 -26118526 -464413540 -936057564 --395374937 -755423548 --747863720 -796883472 -968307318 --320815952 -145352928 --330250607 -649271645 -289838165 --656617750 -967648632 -624834327 -72005982 -323607315 -734897775 -759494653 -609703285 -463037170 -751421125 -867256454 -112023073 -871526290 -16555899 -538877627 -984371505 --249108851 -571793164 --962608535 -387635377 -334389580 --275700395 -463465730 -349834837 -353286015 -337454508 -896400387 --583903414 -129773266 --863436424 -736339877 -373999887 -121483230 --734458953 -548336232 -453010195 --862786705 -58544239 -547506551 --160153257 -529507620 -659252337 -243682891 --336053408 -506408921 -295979292 --961946541 -182442689 -695181656 -842429668 -583808644 -970847041 -764231622 -461724259 -270142671 --981548127 -935859268 -818810563 -932239595 --788159348 -519266955 -601855511 -662118949 -482283488 -850499482 --58973873 -430003193 -718198168 -511506258 -101041900 --787617706 -80347443 -19672232 -198494718 --62669527 -91555784 -438718586 --93013836 -499259006 -196972053 -685430141 -622329532 -22868328 -359672392 -697230410 -933628288 -150295443 --132204546 -687085152 -349609895 -43871315 -169711464 --161868087 -571617464 --751550821 -259564070 -508248427 -322176542 -161202689 -946650437 -388151865 -156001554 --903040457 -352793353 -108629094 --917938934 -858857572 -603040207 -967600334 --402460770 -413733648 --259438349 -315519413 --635039103 -701840547 --102084441 -888726651 --17951586 -528434493 -222160812 -40570708 -470167535 -895231230 -926715772 -704061004 -18645628 --152525805 -421041826 -857779687 -61814413 -664675492 -745783823 -92562444 --709018091 -954581096 -312982637 -875320762 --906194751 -95017394 -414827273 --724001800 -697074382 -984207372 -383646133 --575909306 -687346608 --803195795 -139397120 -987584325 --95829491 -244130832 --820453044 -932057832 -845480885 -255462917 -360574791 --559188447 -411097541 -13852507 -61016090 -706152483 -988769563 -240603794 -649275583 --649970984 -513323826 --750768371 -427342239 -740436128 -998364009 --282489250 -626279911 -640029479 --354774873 -433556718 --916103433 -487695247 -131338812 -777429438 -367692903 -320221691 -370725578 --517845871 -209707997 -951645516 -289599753 -536258760 --354268192 -183257391 -655723751 -153970498 --951781273 -635826512 --329537944 -803183495 -889540418 -79947523 -286480611 -449169364 -705833818 -862923960 -958594501 -18582408 -94625066 -17422534 -243974340 -832013605 -91037883 -208826498 --148355741 -606592368 -960399802 --258476592 -409745033 -3818317 -424896024 -657248994 -730346344 --291313499 -131129826 -4242514 --436523343 -400411153 -948794155 -244778887 -652229208 -559770978 -690639167 --419963340 -997878594 --556466944 -167932483 --422006720 -293113223 -527140658 -169770845 -461135610 -39840094 -749638100 -869725711 --765398295 -85443969 -626321289 -471424021 --950911389 -902575292 -525302257 -809388814 -25955500 -707318959 -708015976 -658985426 -695476549 -139492444 -233984582 -42904895 -845750111 --575277279 -752783645 -844820593 -337427127 --707097884 -568623510 -556888721 -316216046 -244845504 -117254057 --184824958 -523084489 -899045320 -825432478 -95428336 -936432101 --644310089 -636981119 -267529263 --214840950 -63220329 --79451461 -43522731 --309598800 -6719737 -677535557 -134156622 -76540220 --19132774 -189341 --697759921 -541078208 -833997950 -988872305 -489964565 -617793063 --565365592 -838752760 -912915257 -294878508 -868810878 --293365796 -954739921 -106693748 -863318808 --749375602 -929836157 -145575858 -467397413 -69736430 --57835412 -101052747 -672892521 -653163047 -892032486 -535496848 --135748552 -422552044 -580697691 -613764175 -773030785 --733240332 -624477529 --568430708 -872075652 --81612120 -718124818 -390408496 -531053466 -172828504 -544851193 -237906822 -305583972 -918818060 -135898862 -681556243 -707062122 -357759526 --329882589 -446535521 --432299732 -436217702 -904667665 -929119108 -509821864 -735479097 --911963360 -673416448 -234163490 --595494758 -952111420 --70583205 -163749196 -659877104 --178015037 -797391020 -174001043 -75491586 --63821453 -887245334 -557666970 -604925350 -401542585 -105621578 --124859285 -230905537 -814103033 -902072082 --329824763 -447237040 --46731659 -77455179 -55947957 --264454195 -348147403 --108304927 -547592793 -224162761 -284568090 -226909301 -732318720 --647920099 -279253844 -185537640 -837221044 -231240254 -755309531 -199165079 --702952003 -608363534 -871494334 -662008884 -892080794 -335495449 --112906163 -634741441 -112731447 -465044015 -48609252 -954209332 -368750316 -453191167 --812707080 -784466972 -93624435 --344775201 -586900239 -501580331 -929092193 -870144636 --39725133 -623349235 -779199777 --977271441 -609493409 --182442689 -245534889 -484153588 -281030832 -915982457 -805200910 -773961382 -624045502 -955218542 -445806583 --16236778 -999763303 -530227577 -565736590 -191155542 --627870150 -526177341 -335997467 --357645188 -483297705 -991720965 --824522855 -974266807 -256979700 --384445279 -871900801 -675242828 --505449410 -931204890 -301344811 -700664026 -405117411 -5563028 -933246278 -437677294 -851932955 --460201493 -591669851 -370636105 -738344681 -442698604 --219620110 -991625935 -491875563 --557136091 -521872822 -234635884 -45557822 --845536230 -872871396 --271858990 -177038772 -388851836 -387878425 -943977266 --941601556 -5337484 --705158971 -623370377 -443269889 -162654276 -630314853 -368538998 -836752267 -12040365 -888693323 --635826512 -455898144 --366061719 -276744862 -110701678 -743667610 -883827855 -590143696 -207425678 -262013084 -342863822 --179043235 -303832836 -547359524 --5337484 -338179536 --649275583 -700587652 --718835465 -837590359 -297718646 -151083688 -660954274 -527761590 --117254057 -337005791 -412760912 --543470098 -932552500 -255872438 --836257301 -830356649 -968607401 -614207065 -104400363 --622329532 -589866543 --964504349 -740960572 -537893229 -217580173 -437374366 --530765284 -447037882 -257045962 -997355544 --318489373 -24545660 --387634027 -420215720 -60422446 -783276906 -469179026 -866199104 -419584444 -915963443 --715265802 -393110366 -78483532 -467121229 --849134044 -4506003 -427133852 -712826121 -213145603 -387210601 -295653386 --639650642 -908839564 -7575945 --48216759 -339939687 -100114919 -994983228 -237301171 -987415314 --973212210 -425859857 -497735075 -973361356 -635347349 -423923997 --94625066 -206244808 -886666108 -541484461 -845204914 -22447892 --498668524 -433366950 -81779169 --180632344 -513827679 --586680127 -723526508 -61254480 -813921761 --292343038 -80111429 -538400206 --484153588 -504719439 -813792219 -538451525 -99037867 -528238243 -800169298 --688903416 -330574409 -292987929 -965197535 -243554459 --500106219 -473692642 -990907206 --819074115 -216889823 -647524899 -43938255 -118367523 -760660854 --106728231 -934673462 -898036365 -239676439 -992027262 -526172064 --816360521 -53938419 -679797216 -288709325 --393265730 -546633539 -346459403 --375328600 -459429143 -191716824 -935446516 -740545620 -48496311 -387790050 -843774708 -283412822 -560962692 --889832426 -210124653 -329067274 -690545047 -194213380 -553733317 --631938135 -914078835 -36863255 -233968612 -266204088 --843878034 -526631094 --541229750 -164900333 --242965547 -671713987 -779814801 -115593490 -746259172 --59906973 -17080866 -306165634 -675490384 -204213701 -579688384 -282372947 --719912748 -302559646 --538391216 -310428080 -753303697 -146726365 -587336435 --109940501 -427404665 -764140975 -393934850 --658045132 -242968851 --147039011 -458121579 --775091099 -719538434 -2923602 --239819719 -830681438 -631814258 -393013255 -7902295 -649781822 --746169404 -541210427 -133673689 -51658511 --263490774 -903288332 -748175940 -51560547 -558470036 -602836915 -329241863 -35189514 -832406008 --758572747 -788846935 -242057201 -447604644 -307291610 -881645933 -844216544 -558704045 --907076309 -300078932 --335997467 -807217294 --130001916 -282802811 -213227629 --93060289 -680506509 -780137518 --844570159 -888121275 -400196540 --883749361 -579246758 --641019977 -343844811 -45489800 --821621397 -189028878 -534481141 -250610706 -593447046 --819326999 -782282287 --978424621 -505562316 --972045551 -461216638 -191078068 --356132102 -302984385 -59759379 --25966107 -792130047 -95923959 -353270329 -334723674 -431129189 -308510083 --316924437 -162363118 -619011683 --788757994 -415088872 -140462125 -286170095 -220495347 -81586545 --299191617 -10126005 --472421058 -994653964 --948524813 -398226834 --984776076 -700414253 -101724011 -325216041 --495915213 -912565299 -754813461 -866752706 --539988097 -666928464 -751677959 -976875257 --324391358 -618924418 -816905434 --487141544 -761055929 -670944851 -161519242 --941956742 -803158260 --920149883 -9199445 --493298462 -237103853 --643920952 -690984687 -980511335 -511578151 -456816888 -699363827 -165490160 --623833749 -371413672 -430821265 --751676905 -73371729 -847261614 -820013388 --536665752 -81663475 -920074757 -858822682 -541272712 --119403891 -585250782 -850652771 -737228130 -16505987 --261907699 -349033735 --223734558 -699502637 --970556054 -357621369 --889540418 -993960221 --231966266 -18204436 -486364102 -58033374 -916662235 --599683018 -944667082 -160537162 -22622946 -413643338 -723383660 -821070045 --288452111 -628649895 -103988230 --100760801 -636921127 -607865357 -258025319 -669166865 -698939496 -831152603 --133864125 -806630513 -134239423 -724570716 -4014319 -725324805 -217247611 -445738664 --432619283 -747686866 --901325408 -966836540 --635984226 -535910302 --724029014 -40954358 -516529335 -628574659 --586780941 -375663762 -58334609 --883867690 -752303205 -692544928 -963833368 -905786685 --483228673 -963507407 -192410922 --18686073 -435996754 -570983510 -749732333 -274769772 --587483568 -129241763 -152029693 -145628445 -835933465 -944653403 -539360139 -977562001 -535452385 --966600244 -149605419 -649218219 -945647026 -576228464 -751267904 -44730333 -747652664 -336018316 --15051830 -68318420 -529221721 --295730084 -484326746 -635901606 -156766255 -998281817 -728578544 --530674512 -489779896 -541232643 --69385315 -666001873 -534331248 -387955756 -791923285 -761969042 -163056180 --360574791 -845224714 --574674882 -757917038 -596939429 -196664118 -844014147 -773168681 --341168223 -930313270 -16742197 --95584381 -893066278 -314477708 -797972666 --959417794 -318935996 -346378736 -723450800 -653200661 -916575 --87127734 -518701547 -117499791 --796547246 -36798915 -905944902 --480790380 -388163907 -176835826 -311483145 -882474579 -114024330 -102349105 -987863862 -521783096 -763820803 -619279396 -619740485 --845047531 -20985998 -841062495 --214165445 -988618082 --74662356 -838736449 --156516249 -717076640 -597342457 --836752267 -434468908 --520121351 -845014756 -812229528 -928097876 -119272615 -645356096 -661637998 --295279357 -542268141 -733021864 --833121817 -282358973 --651766614 -376871016 --302261846 -30667126 -153901277 -396717431 -541539535 -784238420 --101041900 -585097185 -805206229 -675430315 --258025319 -211500846 --892014163 -590781225 -858595477 --40954358 -671460772 -550277358 -981470718 --695842161 -23568085 -436704054 -571595628 -618725198 -901172178 -493656875 --209722220 -579087328 -564379843 -629697567 --111515855 -841560178 -637276670 -422670505 -701697411 -823312631 -775144980 -69984113 --159052453 -309562901 --677344871 -828147000 -957189846 -498149164 --704618224 -589291395 -37321223 -930868210 -29085918 -263258499 --944075445 -588530903 --582952058 -752650808 -710600603 --68020861 -850015218 -890524060 --9276653 -158524284 -637165351 -472901613 -446794505 --16637862 -64415799 --37805156 -489461686 --465044015 -440804509 -727439678 -701938765 --94135624 -457690761 -18816847 -479155772 -429708239 --695784311 -950641253 -831615212 -165519190 --839348350 -758417088 --428254585 -866358808 -631181907 -14084765 -909066516 -835015004 -814414333 --439403800 -509948402 --455369845 -560010172 -450806945 --939600769 -71470911 --133484717 -465966089 --491813969 -172515892 --609788165 -356177027 -851084229 -948655825 --363878066 -872324004 -623417175 -827231059 -32619807 --636802862 -542514558 --364904646 -89063722 --666924120 -607746701 --24140745 -419274698 -22513988 --680963470 -602761495 -784279220 --536803005 -655978062 --700414253 -723355066 -284526129 -475626252 -564070961 -475534318 --243923277 -324882926 -688294375 -806426275 -823464861 -87825522 -259849282 -722335666 -515762038 --139677370 -863436208 -474833500 --185537640 -565484145 -867607706 -550290838 -398372764 -36591291 -74306471 --1175336 -716549843 --967219793 -285756819 -101179989 --297199171 -607390298 -948724246 --117611424 -155745034 -432617244 -404617575 -363814268 -468649306 -887963770 --799999159 -675283462 -260193144 -980882748 -29096631 -518213245 -68829045 -51523186 -934356636 --284181007 -66217608 --874345659 -596167726 -824261596 --107110586 -261149798 -650127191 -24239661 -270174675 -599723532 --832013605 -792492424 -633066492 -821430102 -545041512 -650404940 -709356931 -493872743 -331783707 -602655213 -322922526 -606045787 -195446041 -48169438 -167065291 --337005791 -850839256 -200970288 -966642208 -167952170 -276465332 -158064699 -25368319 -19088846 --841155194 -743503467 -762491846 -134341374 -674314989 -492946222 -81530963 -703103870 -475842295 -461356018 -185957467 -293213147 --760755564 -860245003 -846837342 --888165874 -381174665 -461266473 -607165167 -664205561 --98466625 -806313253 -486316651 -993918220 -190137560 -82428453 -127884644 --482713772 -410427293 -360887326 --327157154 -512869582 -407713282 -346349209 --164386361 -531571537 --843696937 -289271673 -676798961 -29622270 -469630633 -250493534 -458783570 -652521190 --216874304 -145596823 -68725854 --818810563 -341125747 -536126976 --615153573 -99929942 -219984417 -676756737 -29262828 -457389076 -349886677 --909066516 -414521204 -4146865 -581516341 --196652146 -882980735 --811176754 -414364079 -607662570 -843395174 -236684146 -518855195 -223097512 -675157435 --267234070 -974717811 -306374919 -882505682 --979426140 -675514757 -791389112 --811189839 -87963018 -370051545 -892706808 -492888131 --944294851 -209413468 -631519592 --674259309 -202753335 -926929997 -120576257 -941742251 -49718221 --331266704 -512369539 -94683622 -397500631 --775018919 -444271066 -781236514 -219176891 -391315644 -304946550 -468896971 -609791513 -228194778 -260123217 -512291513 --289838165 -167821979 -132628076 -820819876 --213568156 -442024272 --632081108 -402784294 --512869582 -771343319 -437002859 -429979458 -644827717 -220940138 -818041162 -625024027 -877199555 -612529749 -334745783 -779928673 -658203398 -925490942 --894877551 -925481551 -574438304 -689935850 --240884577 -503865082 -985511778 -620815838 -843489691 -915051621 -706697118 --723526508 -521214841 --303703011 -726710482 -722266931 -518344280 -627492874 --34433318 -96101504 -927093699 --129985499 -220731080 -514297656 -46177409 --691953568 -857917300 --636049946 -518132 --794660783 -351957449 -236806055 -426206020 --854264579 -675256503 -136099680 -755326925 -710068309 --156310897 -92085449 --739696007 -166729440 -745835712 --973327548 -233385009 --906232532 -780118684 --807675332 -41365400 -997890325 --171799992 -81129775 -767890032 -962670733 -162545231 --303340839 -255971448 --199553827 -663682964 --974185515 -570203738 -125454501 -613026722 --242316539 -549290510 --947499429 -418089740 --435847434 -704848095 --499879214 -786282827 -17246122 -758751573 -750456163 -542590541 --91390933 -388582197 -128815184 -522760739 -196720216 -652696557 -625551812 -109919493 -921069689 --371431729 -827642788 --857349037 -14178822 -177678647 -545828926 -183550791 --640180369 -644382050 --819113307 -284051061 -394507549 -330633087 -124763466 -190137152 -571370404 -314291124 -587819341 -627347890 --134156622 -727204984 -858663745 --550459184 -651192289 --203504488 -321551261 -424559866 -949599913 -218253618 -621390765 --554080372 -21991939 --864122155 -213392860 -50462583 -492682798 --905192727 -809312132 -411125461 --889658755 -963918001 --168840228 -283516216 --717194228 -372634907 --283516216 -292847552 -400769300 --822256298 -70268829 -969250451 --473914225 -37599632 -12116953 --714925913 -635910278 --254330460 -844586276 --915118662 -343479977 -618097886 -545058031 -873564182 -61872058 -488115889 --761222484 -230680596 -674080467 --468416691 -802610296 -464986432 --114422448 -561305959 -969383081 --860149464 -428056880 --419093103 -370889507 -481653308 --181060305 -524333603 --664310275 -909835734 -701572431 -96803396 --309938473 -80717929 -227587751 --557108750 -618250513 --153178879 -152756312 -77994971 -625888524 -929583731 -627976656 --887231808 -784918227 -790470596 -625469312 --273572018 -182203370 -396034492 --853013690 -792929442 -603023228 --140928326 -220360064 -35231686 --446535521 -738430941 --27273200 -312525426 -876388372 --953148010 -498107886 --738213070 -916146435 --19672232 -45548161 -529153741 --789433614 -925558882 -682293801 -59516237 -818522202 -928723690 -499307324 --165264286 -739079197 -263913189 -618290965 -661329897 -587274943 -973212144 -139234471 -888246485 -481746099 -151379453 --686177011 -2546541 -751613631 -336807283 -480945710 -442986624 -310860126 --445303434 -434335663 -968060834 --595169692 -457789332 -216063470 -570946683 --592971713 -911633702 --934301145 -913831852 --47410091 -102053162 -750475514 -710845792 --719599436 -248654567 -568158864 -193392820 -263689536 -846252485 -873374219 -932924473 -893572493 -151043739 -138617878 -364823144 -11390748 --122222099 -733318755 -388020366 --436217702 -991401151 -549686923 -786306720 -520730145 --384462083 -519642621 -47569563 -497810954 -418611141 -468654532 -756790125 -127920488 --207576299 -434043724 --653895913 -448956081 -372025851 -502616872 --353040849 -306465123 -206956894 --478345757 -32043794 -562617248 -870155564 -523165281 --429034871 -880452221 -917275483 -138605736 --262562438 -366780872 -831134718 -406007183 -257625917 --482746745 -761434866 -5335229 --44045647 -599629174 -624756057 --8665546 -534743562 -257416112 -508987534 --184571792 -859978300 -322667262 -523203388 -466259087 -676078724 --788940245 -648462254 -545465264 -12302585 -110531167 -207649811 -745581960 -999117965 -755179714 --277198391 -919736386 -790413637 -888879898 --950232833 -222032968 -240167340 -143254485 --792492424 -386573081 -897207608 -636027277 -604087631 -738571494 -659936348 --691733412 -600619863 -41373093 -699763313 -176510749 --294698709 -866415437 -673715209 -311258773 -254005740 -718269038 -27162349 -925062035 -767378412 -101142514 -841728735 -326278942 -167542793 --897925268 -150876030 -786843078 -370794037 --996267734 -954582417 -208842589 -302807887 -491676073 -795947494 -174681869 -183878753 -159872037 -409278965 -906211946 -797415958 -350133652 -879844292 -190797850 --352178349 -248843880 -48139693 -937016666 -972748580 -807818675 -464975323 -373028135 -763604587 -184456090 --161912191 -865940679 --863594215 -417103645 -441036726 -279669108 -688187799 -394645183 -150901437 -396505113 -642195906 --17625791 -236667118 -525407024 --323607315 -513724192 --535910302 -567498296 --647602080 -141527975 -451211894 -798296948 -717496038 -482281746 -334523992 --68318420 -869310641 --878272817 -920962194 --787000821 -778105188 -732393020 --526018163 -614259710 -949130636 -623511363 -642469395 -97532888 -45696985 --283167193 -671336846 -132946353 -490687340 --374469002 -587127830 -160779723 -840806680 --374267631 -330603910 -725633368 -629141377 -464178279 -533537091 --198207408 -501176679 -888374366 --751630624 -708001076 --211823163 -539305621 --652783880 -220268129 --999117965 -996424914 -639113689 -170341914 -677942090 -390912882 -334692408 -436865451 -902105372 -432918248 -47137819 -106118037 --346358747 -843148362 --149265984 -773715159 -220691047 -641322277 --816349383 -606986440 -150664076 -247790439 -580238378 --596439824 -220482553 --382609062 -208684926 -715497190 --571867008 -205138800 --350563129 -759433980 -99006377 -20669616 --260540718 -546538977 -106035892 -484265586 -693722805 --215364027 -691218339 -528767437 --987372145 -988094485 -340521741 -967420851 -789121455 -808456557 --758014605 -279792162 -242746402 --645356096 -764356601 -83887574 --976616482 -962492227 --654586949 -757641933 -73456539 --127194667 -404519697 -217555799 -619166167 -120183148 -237142007 -314925154 -704103155 --659252337 -573808470 -334643257 -710618416 --714059794 -786629548 -710356222 -16393503 -332255358 -623621225 -817184488 -897625898 -572462132 --855102899 -598405893 -290847787 -861115526 --282945372 -621671532 -439545290 -867728698 --149248341 -499075105 -658343338 -28816734 --82864148 -259772406 -690817774 --431379265 -951873527 -162400033 --199631576 -257598014 --833702161 -81326781 -111459137 -435900246 -964816073 -628289154 -961735709 -890992272 --5061002 -864681095 --748553291 -158976811 -990427644 --432707334 -101233522 -637167716 -861288538 -563078855 -638352592 -373126757 --277741917 -703400933 --536287691 -91351039 --197478101 -510133194 --349115575 -168025583 -716957063 -498824609 -699844198 -359756720 --432171315 -591868053 -695794593 -33667986 -455649629 --705856929 -740786218 -511534986 -657949777 -785080740 --896543008 -30265559 -256175070 -207895812 -767888329 --954739921 -645192448 -403748163 -704786673 -423857098 -966899118 --879670469 -237205413 --973747388 -941100679 --832038984 -50035982 -3298810 -273807091 -629539984 -574889985 -945021797 -188933093 -891522060 -773361632 -701755918 -872195451 -278706864 -477571870 -383363642 -605582105 -906129923 --703850281 -537993950 -591584625 -8792129 -202354959 -992883204 -124806949 -420622780 -579074080 --23687803 -711061417 -646459725 -826300651 -291173860 -275484907 -856073635 --310029563 -25454816 --999955422 -260806899 -176808808 -978537519 -841265413 --466056357 -770335846 --222603639 -414712440 -349742733 -82045601 -869544482 -556425724 --547506551 -644160299 --570946683 -225012509 -670475745 --37530354 -943841169 -255985096 -456751063 -495294538 -904904546 --919344133 -604511972 -712237122 -891724014 -563696871 -486697946 -22235534 -54330088 -250834427 -989060347 --573891907 -623700650 --189341 -760048138 -802024965 --496457799 -492301388 -51786088 -735472607 -609284494 -322269152 -148235489 -753799044 --72859320 -93113433 -300442274 -174730846 -611835075 -156454274 -628195756 --128238584 -781961824 -611181375 -735650496 -610983642 -205790238 -790013974 --694530593 -885129605 --559770978 -181260329 -833526705 -728744627 -270772624 --864921302 -206458641 -458153321 -859783035 --473703206 -444193879 --746018017 -466735341 -912912743 -502684109 -758216601 -927396687 -530138646 --955218542 -803729163 -928531304 --101052747 -110682775 -448443579 -177790282 -205919171 --453320784 -786327607 -940387805 -84208938 -613035033 -516649547 --921076173 -208852975 --11596771 -725738793 --583789109 -883785403 -278941412 --556122650 -949435093 -234569251 -368319011 -778351630 --489461686 -617103996 -733926462 -677503537 -778460868 --147813713 -773558367 --128902604 -365383480 -824426604 -557992044 -845534163 --636921127 -806262105 --271205612 -959507903 --743706373 -850200029 -974363806 --188179467 -535876107 -152942782 -741132841 -938519450 --968861291 -773725668 -603033077 -93972354 --906680229 -33678636 --701280202 -641671170 -36581998 -493916194 -695826513 --516394625 -919952171 -502234106 --762622725 -491458115 --596949645 -119899776 -104760517 -523883889 -710595028 --217299039 -326779578 -662744928 -224029994 -648862634 -169393390 -621834996 -695403709 --32104633 -559844185 -353373426 -333181777 -890241448 --808106222 -581636194 -667317175 -9394913 --167836323 -293962837 -785068380 -275281122 -983345747 -698338666 -370214395 -35281121 -362527842 --772406763 -883664057 -734659199 -883443098 --294878508 -179518897 -803643084 -994052087 -701404229 -309130361 -319073000 -370287312 -711622708 -819606263 --323666515 -380898380 -257911977 -565072867 --970202882 -155314749 -23306507 -970313576 -633636374 -288166232 -304476898 -290803013 -218895896 -520115192 --334692408 -264606959 -30099768 -125313981 -766989723 --740545620 -555468347 -633103523 -345296268 -6870778 --165818011 -297025149 -672460554 --985923074 -121510923 -393026195 -791586175 -52559702 -107224141 -637539716 --735912896 -399575306 -593299954 -545239486 -565424363 -335932832 -704876620 -406762298 -367024338 -188891787 -762455637 --944177081 -125568971 -498483173 --947563371 -490560054 -923048489 --78706403 -59599482 -547665644 -880005104 -360241765 -728865065 --664217288 -687681848 -963567166 --418990276 -233286358 --537388304 -875169463 --809388814 -496298920 -384349543 --760094268 -201084468 -581543231 -418276587 -583641753 -211481267 --473020871 -212762126 -359542796 -516997187 -964264073 -177142281 -27251658 -851446719 --832474918 -439124939 --20312798 -32436624 -435201100 --730787040 -581410565 --248744121 -789180192 -703105751 --722305122 -49005997 -119372857 --593422369 -816802147 --123443087 -215911734 -467032086 -935829208 -558043760 --877661345 -592284489 -5893696 --987888608 -502343326 --344621384 -26546205 --951386350 -652265229 -969556496 -460904568 -313670783 --828548745 -330780215 -575461544 -364213440 -261562053 -769770694 -160479212 --935859268 -873860941 --551952835 -66140768 -516475356 -154352131 --175344373 -284143826 -554800041 -529966010 --292987929 -591583328 -801541240 --15611496 -52824626 -966196285 --241068873 -316369653 -106154444 -332763746 --791998528 -47646493 --173498944 -141679627 -234406821 --964264073 -623737259 -983477809 --19811562 -454649651 -648290502 -395177275 -233239779 -89539236 -242518327 -609506073 -553676558 -596755703 -402798281 -615883497 -481609341 -178712338 --86860519 -893425047 --783552743 -845130128 -407061499 -281972745 -41519042 -980136668 -375282225 --135129689 -839677649 --130874057 -230741028 -899490827 -409449796 --783221452 -923818278 -787127872 -993668814 --368863955 -676055257 -720876636 -65456944 -431595993 -423647800 --640078797 -667556949 -735711711 -806125377 -917843696 -34688158 -873979083 -865778931 -415192547 -934171328 --594656912 -587709615 --257620595 -308112188 -8484907 -904965455 -389687136 -439246597 -388936678 -868643496 --509956480 -64859193 -562769776 -37398272 -185956765 -118463604 -979884082 --474833500 -687182901 -929503273 -658345994 -252794888 -916121916 --560473806 -103794129 -944598836 -815005295 -578040467 -620001080 -711219399 -393223885 --368401358 -299435569 -975844435 -325820976 -806793614 -923451068 -230825826 -198139172 --461007602 -853430698 -396522123 -789444572 -356077645 -749685699 --927733472 -66783715 -450714569 -204192074 -530854827 -721014582 --292141298 -945626922 -108000970 -663865860 -947138697 -53195645 -237957710 --292363157 -741908409 -713306418 -469870170 -993107782 -961049207 --836105883 -548082947 -66867051 --859580722 -646978094 -263263853 -225436750 -983346391 -315114538 -704214938 --386573081 -261485934 -378402282 --253152250 -408361838 -822039604 -402246809 -316096723 -673925434 -700300378 --823129925 -43141697 --12517017 -932040550 -588343692 -783085853 -160944489 --303021607 -422279376 --767029147 -392491531 --504676618 -220537358 -369211158 --672659301 -217774471 --89190712 -334333349 -432484707 -740809658 -137176160 --739034535 -825129005 -337371550 --451664992 -433353416 -376485278 -915638178 -557484729 -476025603 --889708761 -671835713 --347507806 -107125558 -24261163 -357522098 --403703670 -136215022 --679141022 -237729274 --482892935 -89343340 --535463153 -754124620 -56880929 -93137922 --576158882 -700587880 -429026818 -711735131 -238279162 -553329795 -275980305 -474046910 --845534163 -780260773 -519224430 --227557806 -272736641 -412934181 --384840967 -370412040 --716568108 -407974591 -569179049 --617152109 -217180455 -447226610 -214832119 --94683622 -837349068 --531459027 -424709496 --213746058 -768522396 --219031560 -701183183 -985779628 -689174174 --367795398 -83926655 -485557967 -458311859 --135305614 -947608772 -448339919 -902796493 -112497120 -16569011 -560153188 -47180513 -681074861 -425087773 -111920108 -302055752 -893797233 -408575627 -440457906 --633558722 -881248605 -987529862 --341247255 -52928841 -403767772 -613841187 --407713282 -595406140 -495061195 --516918882 -902321762 --33334076 -415031222 --326094151 -249498893 -682644704 -443344865 -137303055 --475626252 -318906946 -598042453 --487751707 -719203846 --379587041 -727443449 -570025504 -254871244 -130001981 -537690455 -576809462 -996794421 -884505223 -781217506 -186883443 --169856829 -337656252 -892700900 -309237292 -599540347 -456766753 --327103252 -267582465 -883551468 --222883215 -385591253 --230741028 -956221951 -524456542 -590182116 -649916096 -864073872 -493778058 -361348363 -897730278 -189682895 -221029088 -218746709 -954362609 --652358201 -46389705 --927265637 -71377838 -437163971 --810173937 -614859852 -196113300 -640461324 --298664305 -675863310 -641190472 -345703872 -511669659 -164504343 -285211193 -9247573 -867766188 --224029994 -586957335 -733595938 -235679832 --438808898 -397846457 --810191627 -213660405 -920173057 --725546354 -984453417 -777353500 -186863723 -734790769 -655620317 -407003704 -726831905 --334389580 -102802760 -446583669 --976460691 -926559214 -690554565 --196620427 -486353985 --842204939 -398384800 -818721846 -529211740 -672841837 -884381544 -642227115 --489512824 -306514278 -724664694 --71377838 -180922429 -498007953 -539454296 --928807149 -273829992 -746149047 -842619859 -793316565 --640580213 -502083550 -909594059 --108280567 -143044014 -123201107 -229655285 --381535212 -289255030 --3381876 -984968799 -432261080 -81190626 --96020629 -494414713 -695361883 --305252519 -487953040 --623349235 -887740569 -43481586 -163043230 -764566000 -525221043 -306867062 -572434547 -873348768 -987812397 -181049606 -988014388 -586317424 -855035144 -564965647 -361744769 -41204024 --344510535 -832704729 -431361643 -989868347 -867751274 -235911906 -709447191 -203780973 -951028278 -242787063 -503983741 --134493444 -101761035 -125517654 -816065196 --935031677 -615165886 -531172637 -636608333 -30223660 -571189356 --97221452 -282190241 --764566000 -498719865 -751117427 -441345258 --969077065 -519327842 --270481227 -447393733 -717181125 -23575272 --706477101 -37744319 --61814413 -200870235 -874095874 --32171569 -930585709 -176710302 -545030108 -499213469 -295427262 -965575140 --620043656 -901653628 -226588101 -950454731 -411095900 -309545636 -22700306 -4054450 -189977184 -685228945 -299532271 -590823870 -991110608 -37982584 --433075825 -634395334 -620443526 -570852234 -992665066 --860290199 -741746994 -862100764 --947799036 -103361083 --138732446 -769492181 -450563864 --121607316 -838815926 --211348063 -842995707 -918443890 --689829236 -743841418 -317502874 -465574470 -473184740 --649218219 -170920817 --510531473 -347659703 -940650245 --602449125 -103829817 --646147068 -742488973 --557878447 -852975325 -311837584 -346869833 -494185068 --69075206 -874975672 --464030051 -583286555 -598582043 -289580071 -151542577 -666032132 -537300145 -981053605 -561088362 -547375920 --672892521 -202577570 -408840854 --637649023 -290758646 -25279878 -517210032 -946614004 -547679172 --723092559 -621680761 -459965982 -600183889 --766895551 -347476279 --512629540 -897735081 -739628978 -66703111 --560988895 -573744656 -212890284 -761881740 --249759221 -595022609 -272889727 -8912545 -779240946 --635448241 -435656715 -964040049 -903625240 --671336846 -552086522 -688038712 --850130355 -716701777 -5646264 --733582110 -557806995 -935606316 -518383202 -551755990 -801755961 --302113757 -150544885 -911637222 -880623909 -628399094 -627702532 -208829778 --332744747 -550248877 --58680981 -271049728 -188181473 -289222204 -202187187 -559612518 --925443583 -127086191 -841947106 --72649979 -960198214 -422272863 -229671159 -245193547 -219484750 -572116200 -816623635 --742746613 -907513279 -341596369 -234905521 -927666001 --614207065 -446268904 --34981253 -943308418 -816193854 -759277742 -866300128 --303915668 -562600051 -248028337 -849813533 -76321477 -774314213 -87151213 -281307026 -241827535 -948774306 -485846122 -106510400 -964316163 -954750788 -527674265 -747470537 -78904960 --448219300 -190877111 -424677425 -986041772 -906317804 -880265228 -500837921 -40689657 --440084972 -511020690 -676345437 -285295147 -790609043 --994256071 -619097160 -538687613 -846340464 -108114848 -704799260 -350955941 -459216941 --595662823 -849854086 -904472718 -320616741 -884096016 -847351668 -786975102 --249498893 -803393777 --606592368 -83445750 -790750195 -254659654 -924086467 -973955468 --650162118 -218658828 -717021326 -721430555 -85242263 -166462173 --826875319 -268369197 --937018099 -645784388 --603603147 -726318690 -733296076 --241495680 -559609826 -957150528 -668362300 -766813224 --773715159 -362873656 -475388712 -220650556 -421939920 -320620312 -582056553 -972514853 -343903586 --397846457 -778902840 -882637338 -976663513 --387548362 -303790155 --139154206 -548952961 --142429325 -384113349 -388048519 -863494534 -90591600 -837364276 -794804720 --163202772 -376521205 -659999199 -438510741 -852392187 --870394437 -132895714 -28323201 -671482728 --923818278 -302639441 -314753420 -24934437 --459374219 -425190777 --651629507 -204255413 -872852483 -195152460 -196322769 --433914532 -382349011 -450510635 --630971304 -842533326 -914154677 -134659053 -596830761 --163350466 -739070840 -655526916 --755179714 -587930077 -578319166 -949632631 --540411321 -883601800 -166736345 -646044745 -87808831 --50411475 -528623724 -539070283 -228615521 -772272929 --635281997 -968564758 -553708708 -646226553 -932664253 --454597806 -603561666 -357337536 -987781163 -753504641 --163036051 -832900881 --297251335 -502142337 -470575525 -272145286 --806335800 -99132613 -505955562 -573794811 -710272159 -237888320 -325238163 -91574190 -346370226 -173814694 --785080740 -734046516 --159306806 -562080997 -77617408 --280160406 -716481691 -741130604 -112258735 --876200870 -827567900 --905057040 -456142720 -750113870 --660452490 -865088365 -478068481 -178921960 -475229817 -585384806 --104954728 -254944602 --953797911 -537665459 -793416101 --384936788 -792615130 --960008534 -226107806 -719124261 -392057621 -73040858 --697033634 -560075783 -431169144 --869537564 -599608688 -42216849 -674743568 -499072775 -607070383 -716486253 -925952010 -810044460 -945887542 -747549810 --241547834 -381617147 --436495718 -562224929 -427851322 --36773150 -621171021 --232318928 -429160365 -432988656 --403034757 -755258783 --415918997 -175457258 -321334362 --432024034 -861148758 -307692092 --785571546 -202574847 -537469410 -440365789 -151185785 -198866322 -453161029 --759494653 -984664091 -171124064 -163221426 -557133185 -289029954 --534260424 -912027396 -527921307 -976992614 -330041940 -152411687 -433885504 -232237763 -583657549 --726065548 -710171246 --829589837 -808117592 -48522096 -366326562 -595324673 -81448422 --190173966 -84953313 -568462662 -206402224 -493263181 -90089927 -982874337 -942129991 -432570819 -611908197 -294080853 -885444049 --654475271 -207688173 --375295824 -295926765 -96668165 --209707997 -365432493 -549787207 -234776621 -957942328 --682381623 -732366459 -493561493 -382629499 -678568882 --212159105 -910562535 --786306720 -583900760 -702438015 --942475571 -344241534 -593189957 -700783816 -873205447 -787061193 -298320128 -537990904 -152755538 --944926296 -56912323 -911974061 --23085457 -927214334 --137967449 -463419234 -493883448 -590869624 --912371244 -233913448 --427404665 -616126249 -839633031 -428965873 -384051868 --520008577 -661707552 -282845922 -685319840 -391713743 -130760045 --921449568 -912643782 -780042525 --432261080 -283228347 -932883150 -680267321 -799133991 -794136436 -333173962 -62902398 -119493326 -685558277 -322983926 -961048455 --739863820 -349934150 -505767800 -446435076 -63609586 -975098347 -868162665 -81311306 --429417906 -991289030 --270513612 -371434209 -167756001 --354327753 -606871553 --480041497 -536498932 --942438189 -227072562 -475018341 -171389624 -803677804 -685697386 -269137579 -357812689 --134880622 -730500515 --695768238 -118801543 -660507047 --155792407 -515073198 -302126561 -2933733 -832222866 -200862197 -535231123 -795376962 --375613921 -146491349 -983982852 --36628931 -904644454 -519828576 -995204838 -364998585 -470097263 --976576222 -787916571 -433087846 -690505531 --570568749 -579409794 --486482425 -289161802 -808879539 -7159280 -776991752 -193045084 -12098806 --8912545 -834902659 -856479198 -160092987 -594568651 -375656955 -138217536 --749308567 -390482472 -73223983 -41895727 --346747988 -308311664 -255616786 --312600734 -717074061 -667194742 -176539276 -8673080 -935199796 -638759926 --476008619 -867865184 -199661261 -75469164 -126176300 -789692322 -226719337 -878411464 --21735779 -658542942 -330892687 -805001091 --465606831 -911850594 -16069069 --232626300 -556587194 -68630041 --838948097 -449191585 --603514506 -179033794 -852851957 --842429668 -260033290 -343189729 -362521165 --97532888 -304068706 -392509484 -359469482 -908776361 -166582139 -463628734 --13590281 -224794276 -8817840 -470949110 -472960145 -295930741 -46824784 --873979083 -774035459 -930342193 -941977555 --977338812 -889617888 -275403918 -658316401 --943334680 -94965522 -781052378 --72324643 -387592438 -224392363 -676317124 --534813472 -235569001 -473689711 -169169234 --314905177 -934400555 -711612417 -608539045 -510487275 -792878171 --773558367 -133084333 --900577434 -953878226 -517459381 --912183995 -328496650 --735094023 -55102591 -46685232 -31204438 --552602470 -751811306 -47194379 -113839670 -742683668 --392886880 -569287855 -588612960 -189436055 --700300378 -893240583 -234309880 --723430972 -542615159 -901140488 -876828534 -588004596 -334786570 -627371600 -595767168 --326965292 -64718895 -382991191 -557700505 -756866674 --975100419 -591277774 -164127440 -866287498 --556587194 -775486968 -710225217 -340648931 --91071426 -458070742 -674908476 -722624501 -495784667 -726825357 --130047662 -630272265 -544194361 -37694926 -415739748 -200897340 --902170992 -178060124 -366016944 -732597032 -403490951 -618157660 -713408870 -763788224 -875831188 -835064433 -562060597 -830960693 -216121743 -535752011 -79755275 -522442143 -757671937 -620685854 --137166682 -939856719 -896325270 -112499789 -967335855 -451327863 -39291327 --790504126 -370694859 -517068089 -401314112 --965575140 -654949737 -935180724 --156804844 -938370512 -920225307 -602789645 -988556791 -908360201 --54732050 -69208603 -849220110 -664431452 -536374849 --546538977 -753412431 --178304776 -155390777 -436258134 -222768625 -822057602 -747968399 -302030273 -589461477 -264897553 --263981251 -384451022 --841364158 -120929198 -534373964 -652192072 --210216902 -346822673 -76981974 --788505078 -389572717 --749437083 -299246544 -640276310 -832042096 -758516053 -711809972 -829103246 --606646084 -90080250 -709425858 -671573669 -494241543 -700568706 -411350091 --591868053 -721328798 -450001580 --786282827 -274123480 --975683894 -206193065 --630862498 -126543460 -854279123 --611610142 -119998684 --792081645 -332302200 -273790653 --74264788 -122997979 -178725030 --741916602 -126462087 -257846064 -591404367 -646042591 -929006463 -709024560 --670944851 -550549551 --864837746 -482472706 -715974152 --267908734 -311777615 -925282395 --149914672 -362432560 -670606408 -669964374 -485032005 -643364985 -15060384 -148892625 --252875379 -387633846 -526625705 -967517869 -302003068 -221737299 -598655578 -678208910 --662027354 -889976243 -77770578 -583010480 -745174591 -821358676 -727539529 -903122694 -356693698 -227043670 -106632864 -536621612 -723720533 --910537318 -720179243 -140583911 --103715407 -938795953 --850652771 -466989542 --727439678 -641807796 --286265272 -55206616 -518864982 --994052087 -314936403 --519497774 -908355317 -883223663 -686292687 -658038680 --890015127 -995133602 -14041663 --231067662 -433737733 --74015965 -45647187 -424009158 -393762226 --480010779 -248447756 --920347581 -837377889 -887650063 -732291169 -736835991 --654923482 -959036946 -521065364 -232417853 --463037170 -631265981 -500457232 --727893013 -651116343 -191363757 -469717258 --70619725 -696778548 -868283801 -864945253 -171517186 -360843949 --448033870 -131023418 -113683587 -684277288 --734790769 -264318311 -510303719 -729301513 -59978119 -25636503 -940824046 -804067136 -157283245 -357575210 -369396295 --323695832 -653320065 -616612906 -820859517 --600677761 -989020577 --735479097 -224231759 -743078556 --747578691 -292361419 -150156327 --636751075 -292761949 --769358693 -623256042 --920908610 -283531999 -578853495 -978083098 -225636116 -978973764 --436967802 -147500540 -545270699 --585384806 -102041940 -244787623 -709341081 -584122896 -974116121 --357037984 -970244687 -270352903 -751208674 -483218713 -365626829 -137996384 -191957976 -141224408 --449849349 -947467680 --813801713 -102623518 -657609415 -282353412 -482256450 -844435873 -250808188 --259242570 -603745780 -34817968 --811419054 -462952372 -672200159 -278181517 --222097776 -20771306 --897625898 -582482653 -457203231 -623338653 -388562644 -767554269 -360833942 -234746676 -783968553 -960856934 -774049166 -608167819 --953526752 -348386508 --209577363 -594805301 -192481959 -495458806 -256113150 -185375828 -362462084 --109576319 -306417657 --105453200 -790929901 --483542857 -92821678 -884336991 -861581847 -307900363 -994507383 -805109795 -249184857 -362381339 --586317424 -727211885 -12400663 -690550173 -475775214 --187337714 -662858334 -207596352 -427755576 -882961808 -28280593 -209203422 --231240254 -933637639 -279851873 -81272256 -226230113 -924460310 -171469871 --573794811 -617111603 -898684437 -361844102 -513687007 -226743654 --648122359 -184815770 -293899092 -526062965 -257747972 -772462143 -604588547 --695211432 -607830695 -942671998 -597219759 -910046430 -656467403 --656404623 -543577135 -758075906 -981940136 -750871168 --42446659 -796995888 --862982946 -266451509 -439889141 -265169516 --447373374 -593072369 --115070156 -478224908 --870801998 -164895767 --673626094 -673439211 --981433165 -99825042 -810980752 --602352110 -671527435 -251317221 -56876945 -632484348 -270521530 -162613124 -784535310 -87007163 -408080702 -528973883 -212187867 --339448261 -38824858 -89971307 --253052122 -523529538 -712411361 --174730846 -457591232 -57897761 -759335155 -613243159 --163056180 -855929798 --135249784 -632070304 --856536099 -999233252 -111891710 -643971693 -311986476 --827866264 -401861965 -289097800 -629762555 --280012435 -1393878 -111618142 -452982547 -784191269 -735835624 --726825357 -289321119 -498339454 -241707861 -247071571 -387418601 --513953397 -474218105 -796725499 --653619592 -783435340 --492307322 -377811578 --753640607 -657106460 -991891203 -884318962 --136215022 -607916269 -103046887 -94478125 -804956044 -698484215 --604511972 -692309269 -406165772 -575473082 -21371450 --182265702 -488154393 -57052572 -598724541 -267210918 -858001519 --757415905 -481355940 --91914342 -486901172 --318619659 -7794000 -651638718 -408351966 --423021904 -118274582 -876321134 -42337895 --571617464 -974477682 -146727318 --396548177 -223231109 -6548341 -994228293 -627160427 -266691673 --221189861 -259267184 --857012182 -896801982 -489486969 --649578382 -844184272 -332994758 -15228624 -614071859 -131473943 -522374149 -326280395 -834581465 -113771648 -129143339 --852612507 -605164651 -101421099 --127067267 -286811678 --844507295 -593070060 --596186510 -388053473 -657436706 -861934864 -924222600 -172069915 --611778746 -76117351 --87825522 -237038116 --567738063 -723194313 -29320509 --685182954 -346379875 --819971204 -339418816 --472282937 -172928160 --125227847 -491110882 -3149057 -12301998 -571063743 --607746701 -52855991 -133146903 -758728040 -899604595 -108748636 --114956968 -534978032 -413491357 -171624804 -438226121 -277034311 -265333182 --8605160 -729025061 --317595786 -618327846 -999998104 -749319622 -325168241 -889325683 --59563039 -916382205 -188437028 -476671799 -876556461 -607717505 -347268650 -982992316 --534743562 -678331781 -314438354 -951065604 -629060109 -588282346 -118099560 -174903588 --534191339 -843111357 -708647170 -425822058 -537917532 -766253502 --757216030 -328056210 -547583734 -415133880 -709903410 -822475370 -515827408 --523883889 -990819529 -868631433 -807941428 -71534716 --351717472 -457185172 -617282251 -431698079 -668288526 -513806972 -935407702 --48169438 -599031284 --964881831 -969555931 --814299359 -394125148 -828603960 -297145639 --500583712 -443862937 -60868417 -946543137 -184575878 -213535512 -134332382 --660873822 -599153275 -69943240 -794927212 -479975561 --432570819 -613741087 -16542796 -753687747 --494414713 -89181823 --903980019 -487287333 --607916269 -857483679 -509809 --216445262 -469395511 -513124298 -114948817 -786995947 -684831275 -109105883 -682358996 -243142193 -990931076 -462680426 --508333165 -210062191 -917556790 -732280204 -294691600 --867766188 -857398225 -190730478 -878029270 --190732720 -308042871 -848300069 --200647831 -964531915 -117687562 -125065892 -435090218 --148047052 -102500129 -971464564 -476909128 -579656796 -465129539 -228849072 --89062144 -82211127 -459779290 --877556870 -741646059 -702274610 -966380323 --91685920 -82288054 -465146766 -700734071 -990815418 -511559547 --676078724 -466484102 -246146246 -218178375 --607717505 -742925405 -532758503 -598403902 --268699010 -651008391 --53707092 -344704756 --137676785 -58596313 -70300983 --442660723 -94657315 --257846064 -312853961 -219179653 -765879538 -433214712 -578671401 -813867959 --587819341 -559037495 -379455490 -757345889 -387718802 -691096236 --642063469 -92054912 -571813245 -948894764 -110117509 -39312850 -288107936 --790802900 -683631382 -182480027 -394786775 -740631281 -832077986 -840392754 --915791899 -265091945 -392821125 -145398219 -740648402 --543125845 -405160716 --406498548 -815866692 -546294707 -544445777 -932555640 -258171878 --854695903 -817550674 -630491707 -602797318 -583711029 -753783835 -493575623 -5668168 -38035058 --693215691 -40023364 -753564380 -669627172 -702836880 --398372764 -783499939 -892393752 -948722140 -191348508 --470265336 -2446809 -295407156 -224200741 -542399321 --805206229 -320288042 -719625179 --215770264 -754883915 -53940733 -46190691 -134912738 -264495197 -99157626 --656972037 -339342614 --724803104 -471691847 -320897887 -628339107 -766950279 -11666891 --211978247 -306392144 -583489689 --578919279 -400387294 -904978110 --306067395 -744989866 -565592876 --947953504 -130754053 -741967343 -982682393 -802886854 -54504747 --775039740 -612048340 -426869491 --612332727 -96514397 -208859394 -876335010 --777783620 -150498046 -395512478 --439274951 -218487327 -767642601 -193507420 -966275110 --310194071 -135858642 -855527126 -896227199 --351334692 -908494504 --830153924 -507213898 -60930660 -575373765 --846190254 -261582339 -672878502 -417957351 -450997656 -999387226 -809775057 -288420407 -793083622 -743667918 -806728037 --938795953 -14677400 -530126695 -314350400 --785787607 -916226225 -902535992 --653760677 -974325645 -222860636 --382901687 -631888525 --793416101 -536898271 --307225117 -59289658 -655586412 -921067077 --808672594 -23792203 -898555974 -441346863 -597578095 -321767845 -372297735 --21112326 -429801689 --746259172 -812504672 -361479647 -858913941 --481824633 -711681579 -890888693 -384103104 -936421023 -761298973 -975626011 -12935290 -434586791 -491742072 -175521441 -743825279 -374229221 --881950113 -355609959 -113321451 --142787640 -851263134 -933812095 --972514853 -801185732 --319469634 -689890104 --402873363 -974186176 -738659878 -739498742 -742405319 --791042317 -717821672 --117561934 -999510280 -954328622 -243148049 -862976015 --675458657 -792737123 -924667986 --725612834 -198817815 -317474204 -135353905 -487005736 -930114062 --730810235 -97454616 -15606533 -834070058 -38484136 --429481417 -804737987 -78868828 -53860653 --944092067 -882226039 -91836228 --191535088 -356020582 -975873917 --623654109 -398715050 --954457920 -252051519 --469893951 -515824065 -42682197 --342112168 -98654814 -235764999 -171657032 -49055490 -655593817 -847410709 -128657084 --7099844 -129697762 -570924636 -507234837 -354781827 -339670316 --991125318 -501179427 --673219507 -142655606 -109308773 --553722051 -379345932 -727841044 -752863094 -434835293 -846309651 --765879538 -603652656 -47217973 -832290603 -15233672 -742498477 -715647033 -592622355 -386701203 --358311508 -258340676 -699165050 -871414409 -862473862 --430173913 -650094127 -407423670 -876981319 --887424008 -518587219 -246463274 -604990365 -85117725 --745581960 -814892455 -900693532 -182168037 -624491008 -972428856 --295832292 -473474140 -223392515 -232349386 --66400508 -893880925 -709659686 -327976437 --938145013 -662316420 -143237524 -778697609 -164821734 --647669420 -814885096 -707570441 --764408038 -487036384 -33108908 -75678063 -354972272 --455155365 -731655933 --976859843 -578367635 -699662770 --126305431 -305518341 -177688250 -155297315 -565842421 -683355924 --737888069 -863990671 --288581161 -42603459 --685942227 -282978518 -506127110 -568076772 -50909171 --403605586 -913128356 --718046100 -660865116 -103692070 -741737156 --552816851 -821616777 -608147420 -150909065 -16269087 -42010305 -13983849 -932711507 -120132390 --723296392 -784259453 --844216544 -890476688 -929585444 -912625710 -543752501 --607390298 -978286739 --893066278 -214880983 --761730999 -76882285 --839046480 -543096571 -976497644 --352226326 -235875884 --557681129 -96310923 --176811277 -557140753 -65902091 --686529532 -369335033 -135235175 -574912184 -68150389 -786177210 --438560490 -93005369 -731354446 -9678710 --503880970 -785903576 -579732528 -88125179 -53064566 -622922770 -791491029 --320288042 -137196666 -682582345 --692696379 -897318970 -764953442 -84887757 -653208889 -386241742 -173578037 --549596299 -650605603 -435859020 --434335663 -522321744 -276674703 -830546908 -20464286 -351851118 -211852639 -922045967 -407394390 -983045334 --866199104 -249676025 --505955562 -681733408 -141480050 -909907354 -786871439 -115488829 -640012458 -297823315 -54968291 --881159681 -15383335 -964641018 -959125722 --120183148 -569293696 -434535915 --240024234 -522569651 --6468282 -712226660 --808839183 -103803180 -944824074 -176853416 -165283019 --319478278 -132989323 -547739719 -121033330 -923540038 -324889610 -345705343 -126461643 --202506511 -471151047 --518961097 -305102628 --931494960 -369618462 -46312097 --929935209 -317958390 -266201550 --489486969 -190167722 -20428255 -601589225 --646250188 -1715466 --271049728 -834894390 -794889566 -653984476 -794326806 -302001645 -694982195 -779164505 --689935850 -303406976 --463127289 -140579255 --926701241 -703981305 -481992084 -844074823 -839580265 -589103429 -291998721 -960043561 --636743934 -516242221 --873117436 -526339966 -53902269 -679675535 --780137518 -6926975 -644985426 -297230299 -104000866 -786128473 -204105251 -842846950 --476957719 -552147609 -378752467 -526668973 -55220773 --581034427 -387576415 -180176524 --457737299 -803492379 -351486223 -361365044 -756969359 --438233087 -708290844 -741964330 -371555472 -174803981 -509055585 -990446443 -593824542 -207897055 -428372317 -715241566 --965564575 -78133115 -852437470 -356881698 -311758608 -212734437 -441397521 --789419520 -353684065 -905936622 -137608983 -298369619 --297623198 -840504689 -453413634 --417942812 -225099602 -79927862 --908491771 -122085744 -565037695 --11203097 -208740970 --687481408 -864292729 --153782218 -325724942 -250135953 -628405284 -149841389 --576826700 -601013966 --395512478 -523059508 -566592202 -333124624 --773725668 -849188887 -71130510 -122369504 -402810382 -798422604 --78189859 -180813327 --631871481 -752505924 -667918100 --115593490 -226762223 -548993806 -268802338 -419346557 -160365028 -405900874 --116615098 -679741906 --284535124 -824392508 -368626984 --648492797 -541455614 -109371173 --248654567 -395329561 --480180980 -192562087 -138955452 --658450050 -323780206 -366929371 -837170492 --441514361 -883076739 -378894032 -275584729 --824109083 -445451574 -717032308 --791371388 -350404879 -110168988 --170162605 -216796812 -800077148 -402888330 -163393997 -690036715 --929803185 -493400464 -34643260 -665801786 -198153162 -164359919 -618870819 --488307364 -838421316 --70863824 -960965351 -41469709 -562844256 --330780215 -37090777 --37398272 -357743560 -846029192 --28671386 -66085224 -272409840 -876232907 -456699114 -723244415 -695444061 -418820733 -45048683 -397529714 --424113098 -582980847 --581593712 -683558940 --527910450 -512494608 --360546783 -457267641 -262400693 -142529 -884458450 -2976792 --853932336 -45003692 -543075081 -976761781 -823978402 -677187057 --214295739 -473022370 -247777583 -567725727 --551840637 -415009334 -884265215 -738602423 -13280259 --730568338 -265969659 -671836122 --925490942 -846852218 -232138288 --242787063 -368358667 -722305049 -667252740 --469870170 -502659164 --32918582 -364242885 -903339285 -26136781 --696991987 -59551526 -816186538 -241668103 -957189524 -317251986 -906266750 --106688368 -89095610 -15104101 --658542942 -215669276 -312847583 -291104652 -762265305 --435439699 -612568627 --629104985 -747521303 --401862437 -719418658 -253694962 --834218356 -633427939 -193857845 -505099962 --946965030 -482447716 -6839696 -416333302 -837966006 -382823059 -203631080 --888428877 -830837054 -700028947 -167546694 -675790438 --959783286 -269815986 -310860710 -115162710 -898935976 -746692434 -351741430 -672273129 -750858073 -407529078 -644515357 --513121820 -84269617 --15485773 -329490906 -114412393 --450714569 -382357269 -349788162 -367873303 -64642919 -834943109 --764356601 -967940281 -65507041 --390515761 -386680769 --849291318 -272666895 -974903445 -611417194 -105148572 -868916585 --155745034 -385118271 -657280284 --232118350 -2751888 -54177327 --126176300 -108027360 -578847796 -463247803 -313751379 -392182105 -685410589 -324827920 --667317175 -158486404 --679511811 -113505435 -15388786 --636662591 -356587238 -23545775 -579125714 -739621365 --997467335 -202528706 -89762217 -856090823 -797805218 -528904913 -774505105 -16972127 -407151758 --272243329 -745248969 --381885101 -194363405 -432916165 -722050738 -214482605 -984754399 --716279903 -826776601 -185008760 -239641118 -785615358 -578516022 --181387775 -880335993 -857044414 -343506981 -672582345 -695306383 -371003733 --838641726 -462258724 -801444229 -994323243 --196180951 -540665725 --775144980 -960989459 --647843298 -351277163 -853823293 --635006143 -859403315 --570762786 -443226470 -364268433 -88714002 -38790967 --63058149 -834159043 --68150389 -448096456 -253380931 -79675384 -290052592 -966105898 -622891439 -665296518 --28323201 -469080126 -147275726 -660635254 --858913200 -934238092 -70626841 --317894410 -33904938 -532118358 -378856597 --721193784 -286693484 -383372744 -659759332 -103379269 --945087854 -337340609 -965805112 --715720922 -649506967 -239493755 --649781822 -995269486 --941356084 -428537693 -841976715 -630672353 -242186864 --97826760 -402702375 -6661242 --722050738 -33687806 -441164191 -720041425 --48609252 -95723101 --987738288 -416199292 -838585961 -534131686 --558051826 -842691987 --673019709 -35382997 -203913218 -921103069 -459467783 -852125191 --685258044 -436131730 -436259308 --134886557 -917170317 -524311700 -538693092 -924485063 -657218942 -15775896 --468315421 -527174292 -169305482 --276682829 -270364664 --8817840 -565107312 -383414072 -229981516 -555108877 -166869968 -713229574 -408857739 -103083508 --388048519 -574701700 --977133508 -149867083 -665520538 -80310699 --673042227 -466163195 -558478686 -714857773 --820859517 -702834943 --2474582 -257299297 --315775237 -287796733 -833819266 -474942175 --698678261 -690894967 -786189666 -70669967 -458791816 --575607228 -326975673 -420429927 --232383110 -637123014 -4117329 --662733596 -377005443 -124737809 --32117869 -164115025 --850518703 -345809225 -658963072 --889342503 -645453648 -110588910 -304730624 -314715493 -848037889 -617206920 -458444758 --415658760 -937245087 --634282829 -840491214 --335841027 -572933024 -922929417 --758406604 -121388237 -175854991 --602761495 -434982177 -20887688 --6394984 -928745523 -553381993 --291095446 -745825453 -459829955 -811015225 -116334687 -145442478 -6182415 --672984623 -833991292 -38161599 -130748133 -364899921 -44231640 -385468052 -810290033 --411705038 -586288069 --409278965 -257742872 -819157318 -137246199 -618127275 -637670494 --342462678 -977180699 --217237759 -851979231 -738595984 -587655640 -539448270 --33287889 -239971084 --590297076 -972571482 --166109803 -100365181 -556401804 -193142335 --891337459 -258779698 -101759934 -907602527 --163518097 -663961264 -96809176 --255203720 -119145563 -793650941 -256438311 -247301055 -807040615 -688367745 --995344707 -597541214 --143867496 -363193161 -825717579 --521563887 -321358016 --198021150 -982210055 -877156799 -939969342 -386183328 -919208169 -45622689 -16721511 -550700026 -645274090 --40570708 -245571711 -355737323 --290052592 -17432897 -708221020 --111105754 -634010830 -184046695 --102278531 -235928843 -87290490 --367372829 -902457593 -309246172 -288750174 -219003089 -522211444 -588845803 -896312096 -789591398 -226108390 --732597032 -538271629 -334773001 --382467176 -696906340 -273235264 --789121455 -524110845 --211930613 -436193256 -456933937 -989118192 -519493787 --165854155 -638657907 -242276107 -993338387 -847005616 --469786023 -721783560 -165422276 -486323716 -97920784 -815754066 -366370467 -528105476 --497991869 -498875405 --845480885 -845766925 -54351750 --735650496 -156253163 -219280747 -901951307 -35849367 -165685453 --648462254 -889663666 -453586321 -76403071 --481435964 -669376583 --904576839 -169717171 --892633521 -307007453 -48519798 -751282900 -922084105 -226554083 -38591450 -24726234 -748714796 -89125160 -975443536 -157598664 --554793891 -227509006 -441258538 --616015176 -747486231 -938949578 -377634743 -855978115 -714620085 --778105188 -800710192 -894432813 -186855006 -934859293 -459370226 -960069036 --330633087 -353627606 -365361979 --247940906 -103853562 -18414920 -532770377 -685636008 -864818684 --350404856 -851863890 -727711716 -82299984 -927090721 -996697810 -949769844 -446665752 -593840291 -398048408 -699565895 --30223660 -698100269 --378240133 -803462658 --964641018 -738047823 --662173832 -431775051 -478470039 --886666108 -634806691 --587366141 -838807782 -142569937 -621170592 -54289049 -496744787 --499310082 -539643750 --893061174 -722101011 --48519798 -470838858 -457939841 -500588914 --601182923 -950862103 --81988923 -449201919 --431595993 -529322592 -410741016 -491810205 --880501977 -647915022 -48370229 -928619498 -610816577 -27831140 -975759364 -372069354 --326607035 -649183632 -942814949 --964954923 -60079337 --42682197 -774081938 -245856658 --239779439 -350425873 --447638030 -879938878 --364998585 -35761851 --180120869 -415606299 -553036477 --686914315 -659495353 -717878999 --119597866 -431355606 -47694986 --749191631 -967695237 --218746709 -704003173 -77298662 -929637666 -560001853 -267316887 -857293255 --812299678 -237111910 -833145761 -112268449 -970096289 -990344140 -627166370 -601256664 -941359547 -969945175 --54177327 -635250960 -699651517 -174127388 -500555914 -26408873 -157183633 --525407024 -736570137 --580697691 -861782009 --741376060 -410996808 --708355721 -496309123 --778902840 -832973673 --8855995 -945682727 -767198861 -997092240 -105644063 -91914374 --535876107 -83438484 -688394283 -991850181 -598827520 -161160197 -142590633 -374644160 --157257209 -944936419 --773131687 -340711549 -670667701 -772933479 -887912161 -826070275 -569099784 -569595051 -347487376 --408937806 -721071503 -244740154 -476147879 -404397253 --745174591 -774498557 -856136781 -61233484 -202995797 -845441455 -889122016 --145352928 -806095056 -715885261 -919807291 -940059410 -351669118 -535715692 -302833118 -639498265 -362556948 -779089312 --902535992 -995662618 -747187798 -67069256 -789293958 -170787508 -100724847 --457690761 -193109247 --943768565 -187223426 --640724833 -475659273 -233284110 --823262591 -173723313 -927131185 --407097028 -287125009 --182441303 -608624539 --683547292 -740677729 --658316401 -462361201 -148793995 -218064763 --970244687 -653118679 --200525509 -502641932 --687829446 -752952108 -252032489 -816778392 -828686437 -194947361 -76038026 --373747297 -768798026 -91957370 -732283685 -989351666 -800324764 -516318661 -578666977 -508652156 -803615130 -70753258 -73320924 -146382567 -750719487 -941575355 -364458623 -747564307 -114502583 -331887976 -814209140 -951591806 -163579586 -643845438 -938411396 --792371883 -37533640 -832629552 -455263402 -696048972 -172761064 --583362735 -528559141 --250943308 -791625778 --161461142 -863400100 -466519205 -910671396 -421324604 -730864804 --362556948 -465179113 --648237135 -360839638 -826245956 -712050404 -747970700 --46574264 -147981141 -703251687 -581101424 --712237122 -427225390 --689020742 -975211775 -560445808 --49005997 -398809049 -844123126 -563013780 --807424879 -551684545 --904914079 -388789187 --538906414 -634781116 -676077630 --134770668 -450905989 -315702140 --332650071 -889752349 --997890325 -575255476 -849029143 -875976025 -886329362 -42647465 -265770421 --869327906 -689666749 -476915032 -670655743 -901178118 -876205626 -678689735 -675357720 -727221002 -132644830 --569595051 -654722369 -202868578 --565263377 -439289341 --752783645 -988528031 --431169144 -513562331 -983998300 -73615583 -844935647 -414936309 -32539095 --528139894 -154950580 --604945518 -564334980 -555263739 -607002185 --164115025 -267076580 --519828576 -456047138 -261721390 -687473327 -782861244 -887859674 --588343692 -698114940 -144554255 --522609203 -221352744 --969928678 -720132874 -113739800 --889662448 -98561926 -526265201 -510127009 -213776791 -541863099 --516318661 -958910913 -940063661 -159752020 -248058177 -434315842 -5704771 -654549437 --953794163 -152285648 --427136998 -24238923 -734537447 --988528031 -397602568 -650630357 -983337617 -951020410 -599592593 --585523567 -703140296 -558269105 -67857155 -706981774 -462877137 -586184595 -876025498 --607662570 -333482774 -934165899 -798524333 -711322583 --634749397 -916216117 -887721170 --794234073 -181654963 -400347361 -313919186 -572145433 -171224934 -704197288 -846310029 --252256897 -721408576 -999495092 -478619011 -608166634 -27338988 -515837021 -656444785 --900562858 -218763633 -859142599 -987676172 -854064266 -671511548 -677603863 --139234471 -368419548 --154512177 -383589803 -50423906 --653984476 -906901822 -937630033 --665659021 -882299982 -608809670 -12009945 -430621616 -966174772 -215980696 -537946738 --842271986 -363043887 --147275726 -726194816 -749854707 -460894672 --196972053 -827260631 --835064433 -486154427 -458830886 -914207145 -764378393 -525943183 -818603374 -314241898 -727387064 --687759104 -330633293 --117687562 -335372639 -820987635 --188437028 -756775748 -587656460 --573106725 -418092659 -196700306 -224428206 --250800735 -171092261 -995803042 -822472415 --455107375 -831150441 --124671674 -969455977 --679162917 -53863016 --887355449 -497191839 --529231779 -968061599 --850171561 -814563521 -416656022 --49301719 -580301812 --134161805 -458573640 --458783570 -918534614 -12841859 -807015060 -360567398 --311346595 -519512464 -352166508 -190821236 --762491846 -106450229 -403028241 -934559302 -916881850 --251226035 -244589122 --534058057 -963150508 -755498263 --173746711 -69510226 -866102621 -56176007 -904837095 --504823034 -506095327 -830468545 -450991963 -639321399 -814226187 --632508286 -523722057 -975273747 -963872159 -705420396 -991901157 -176642646 -751624169 -811995151 -211312666 --257625917 -564823137 --814935480 -938004089 --780421666 -209209122 --951456071 -599071927 -671523241 -30938850 -408349611 -272304573 -625173331 --384901340 -44890536 --522014366 -747605670 -670438579 --500603532 -603625692 -328787269 -442716326 -535835729 -674405065 -459952865 --918534614 -750034336 -745136330 --789264134 -793232102 -295065576 -997841731 --284143826 -744902821 --669425957 -801885207 -662214366 -979556714 -672843604 --26035100 -885902651 -737200443 -393171007 --704400960 -585904993 --372266125 -596015456 -696640966 -248977042 --457203231 -444885061 -22532968 --680267321 -664609611 -247543038 -52179569 -237188504 -777119503 -421123287 -738292993 -139911703 -86724909 --783653737 -819329661 -268992413 --836423029 -954071483 --78904960 -196622307 -163590083 --859311258 -484907234 --755915169 -251839246 -142199930 -864104384 -544255683 -285519143 -792121924 -218855732 -768165631 -958591801 -506979720 -376418073 -608761977 --712922740 -676863074 -778732505 --650041233 -876787614 --912915257 -67786694 --926538923 -100890839 -526784142 -813062372 --659116180 -232232386 -609028651 --134587375 -675991848 -421008704 -227293917 -217278532 -954680075 -990805646 --44442514 -713613771 -312248852 -470569982 -505487321 -378144985 -705867071 --266451509 -501476861 --763693251 -651516460 -403810125 -824466615 -875839268 -610652164 --776089478 -515913150 -613707945 -990812380 -37603039 --19088846 -209630044 --633504879 -314763975 -470700096 --935518584 -82992037 -662311490 -696287752 -398381062 --518340846 -289618456 -169968847 -20158110 -428907149 --137474417 -960615453 -288854111 -61820060 -734606760 -363842603 --704848095 -723349402 -287216757 -764672261 --506386966 -606145606 -584258466 --207072634 -929913251 -272947806 -473083793 -401832420 -214319740 --539305621 -951323685 -628759131 -620727553 --126464435 -143802543 --896187678 -417221033 -88164380 --83887574 -676297335 --665801786 -659899933 --61253692 -260030762 --217369247 -796831500 --447037882 -750798695 -641215966 -438897191 -98121033 -423444320 --624818488 -796544478 -258641623 -177221268 -999408248 -217108096 -780453165 -508847564 --502011379 -209896813 -594282327 -571841200 -560307966 --198817815 -36269562 -845354618 --226719337 -526740014 -571419686 -151323818 -916683127 -164160996 --986041772 -27505689 -707872835 -762729432 -259040005 -618416331 --930342193 -175612180 --112434940 -143124835 -260605171 -125047667 -421815388 --582494491 -374116194 -578404256 --91305681 -140888789 -265295286 -562346612 -77011305 --793284572 -708706809 -964432681 -143280783 --408575627 -671693241 --305607245 -462663533 -839479876 -142970564 -835092971 -175972646 -573287081 -128310439 -500218826 -934109919 -861111944 -497983269 -466299152 -857076739 -495674547 -8050897 -783644607 -714415057 -764201863 -895702733 --369618462 -321374849 --984453417 -922301479 -20154752 -783157408 --60273630 -831036484 -429297993 -350999531 -493692324 --999526133 -919245282 --383481339 -935145792 -160363050 -902513647 --444829383 -347167946 --286939802 -492560020 -114162347 --273705061 -326875053 --880486658 -894908438 -255489510 --74823166 -956119940 -233981631 -145953596 -726061242 --749510797 -583196938 --989020577 -408770288 --407232969 -46991291 --214796582 -5082936 --111618142 -585596663 --253879032 -223946894 --599167368 -123775321 -336733060 -909440860 -292923252 -334510188 -509904470 -778169277 -706336069 -792998487 --971082672 -734271108 --230680596 -933850147 -667801208 --647524899 -921707052 -815988975 --76598838 -795558820 -587070494 -264276174 --926296299 -721300985 -766877862 --802886854 -800835958 --916842895 -570616999 -304492097 --966899118 -130635291 -541988742 -542644928 --602076258 -927205941 -139538916 -9739050 --365383480 -371278602 --775406266 -146671926 -480635722 -441326950 --502311510 -13894882 -74159524 -663123619 --813921761 -265278138 -12686693 -597877021 --252154163 -870672263 -751579429 -492481859 -83382586 -570545660 -381502073 --167761416 -796253607 -199880348 -687587863 -430527958 -208707032 -850734130 -848577909 --513410963 -459966081 -501437484 -568930653 --508452579 -308423044 -21926927 --762263228 -806084665 --655643601 -934142449 --659561374 -82334613 -695151931 --44652077 -743937846 -665126121 -172872180 --287021589 -544727383 --785615358 -967313074 -759461291 -226699960 -631622283 --91221179 -617361706 -619748709 --94657315 -985157391 -744437895 --101759934 -301409842 --416674009 -75731267 -147353150 -891093542 -792034856 -326512648 --816022817 -281336041 -917754514 --779199777 -834291235 --449902572 -931609329 -872237617 -454127088 -781436098 --866188811 -640211581 -399936575 -61704514 -678739620 -220597506 -549819422 -413698149 -349271184 --458347590 -425430489 --241252470 -717897971 --483804074 -495606433 -499146786 --429909840 -279754983 -579594832 --669746257 -704201330 -411617845 -901318634 -639279475 -38393222 -467792787 --705880176 -595113380 -651892292 -317724663 --233913448 -746320211 -43437486 -618249529 --732757650 -536737944 -287299113 --603758394 -14911561 --645624230 -128942890 -177564682 -166643786 -868632266 -245751345 --492946222 -456127385 -678329594 -857292694 --410554670 -325584098 -352106567 -765264817 -191692408 -788784330 -281106322 --631674873 -665066734 -691342419 --630314853 -811678084 --360136194 -297266357 -821911826 --10239877 -780974424 -712335837 --978646629 -500048325 --431361643 -363437075 --902281098 -820498461 -737136027 -702501101 --122395104 -73337934 -747270894 --900512039 -535545069 --347487376 -144424793 -36113416 --40318525 -205662580 --233507736 -651615961 -971671111 -350415630 -417071587 -726175856 --805508791 -558724494 -585624519 -126948219 --265295286 -883018046 -226695806 -880891725 -625756317 -973093568 -564713247 --718674025 -372877113 -557790160 --217929903 -578461124 -391327768 --235736822 -687533271 -479935705 -92888932 --755088410 -81568314 -598041157 --495553519 -162820542 --483218713 -579712901 -304773785 -959048691 --580301812 -68468938 -995653641 -392109962 --181260329 -792944807 -252698096 -248579861 -480938619 -918108227 -981999282 -429146055 --956229695 -470205047 -600089591 -339106181 -894013965 --958001772 -573999716 --440835321 -434751922 --921095532 -701818701 -95916179 -239317454 --484768089 -973492623 -679320144 -542549225 -160922373 -875564174 -560443543 --374456343 -485479800 -593841514 -810417471 --581604782 -645864909 -701578994 -247867314 -993442817 -949231897 --332690999 -657424699 --62601776 -891446973 -405532911 -34089908 -979788064 -658643227 -387025570 --634593254 -125407246 --692309269 -803552641 -25451582 -72170699 --992951918 -234435665 -660545967 -74091252 --715034298 -312777254 --534824596 -378413918 --387790050 -602645363 --566240329 -266337633 -23109150 -561985055 --909105502 -883968095 --701755918 -815650528 -999330683 -365609384 --703345601 -25602006 -596142468 -451136433 -75641566 -919482971 -347240286 --20375451 -703525631 -784589509 -942562672 -212772660 --113739800 -511981836 -753835127 -634807796 --336260484 -611829961 -151790808 -23342246 -404075737 -755761382 -999379867 --532163973 -647086916 -675476505 --52555048 -779759484 --883932262 -238652713 -37034754 -340636691 -403634202 --326508933 -305245598 -929351108 -475301061 -403227826 -206622560 -707172884 -633281326 -848165988 --607088993 -643578282 --911061217 -618987260 -323728565 -900883857 --372100023 -812169268 --584204875 -46195991 -798757111 -205863084 -972297534 -11695983 -452007759 --898540381 -147832955 --287150055 -931146555 -132744087 --823915493 -279169705 -884810997 -258441366 -750492586 --10004241 -572385424 -161245829 --983240102 -5907089 -704304594 -765570905 -342282349 -278864588 -661509850 --846648390 -507452364 --820358292 -557345114 -150349589 -76535147 --38843805 -386051635 -936211823 --848037889 -127868386 --191155542 -86241653 --529966010 -169747807 -671864128 --702834943 -673934929 -337489644 -687226583 -172672191 -312861739 --715226630 -142312410 -928612314 --33904938 -842793008 -922066022 -625418129 -651272703 -709738629 -696522981 -397372534 -562249159 -139410715 --332486736 -188850463 -120440232 -664962643 -353343505 -203715155 --593189957 -775345840 --503005317 -22827225 --448049490 -198065675 -101924637 -317640614 -927055097 -920459012 -247026208 -688129248 -986824961 -992970322 -34396134 -179130120 -884890796 -46459492 -269874739 -870403310 --12120889 -976070479 --466519205 -966889507 -72694195 -588987740 --799277905 -402153231 --974325125 -388362630 --900329477 -354038696 -934028318 --668534760 -108500762 -574995932 --427541211 -355279490 --307815029 -41648994 -822921396 -348974740 --821616231 -132218855 --191576423 -372389765 -193391386 -473263369 --603337772 -219767875 --252725136 -843673352 -53044851 --291173860 -393025357 --422272863 -20598785 -51473128 -106774755 -737958290 -277043398 --876910874 -403767447 -644764692 -41849548 --992524795 -986091132 -50872756 -604254588 -372700890 -707081215 --869903256 -285216411 -297261707 -509766422 -213277448 -69994736 --398865191 -727566998 --723349402 -786062901 --826193173 -295396098 -123034084 -152715237 -933378572 --400175236 -717130616 -909190295 -957915180 --479741029 -784563068 -269959934 -908488778 -466275377 -372697933 -912731333 -471904464 -604525217 --829553088 -591124817 -414720063 --869036021 -968213303 -577287777 --151905174 -383400197 --35219817 -140320304 -38372251 -496366344 -50405967 -803627416 -877991521 -221280476 -113733647 -743706288 --86796095 -401146608 --693067711 -767649377 --134659053 -843350345 -223507214 -795905345 --807804555 -751697665 -80051824 -724281914 -794102487 -587725926 -489662875 -622153068 -519558536 -642968256 -240301469 -317159406 -502483748 --176808808 -958861660 --315521159 -354400374 -338225662 -866010210 -400558078 -663770597 -836832071 --379231918 -171541987 -335226668 --399080742 -121071276 -504693153 --152715237 -720908215 -879248039 --726270160 -889493892 -819992603 -933868750 -513199328 -962642503 -262631616 --142366689 -351402473 --213922563 -348683346 -772601891 -218154768 -362001185 --484750623 -947902578 -285878558 -62511179 --763028769 -169224667 --495712938 -532621220 --650825406 -500438492 -906240288 -512031294 -992474122 -158606408 -380652389 -844059602 --827231059 -389022688 -920811655 -835464848 -351638397 -338193222 -254751377 -298306227 --297230299 -360795094 -5900630 --838759732 -858244408 -630230154 -311444285 -464631989 -715354813 -509766411 --110471738 -815952933 --81663475 -496657480 -105387447 --734645156 -845861973 -640844356 -271496684 -440487398 -7837681 -809499906 -391927124 --368616870 -632186683 -823608250 -391294567 -714152754 -748068256 -590916946 -85819160 -154070548 --145218763 -355609094 -903756913 -997776736 --711681579 -262485829 --794117625 -641724279 -517192036 --144802663 -136075179 -760909291 -590798573 -479374965 --960615453 -952048611 -60903212 -812484729 -187730357 -683831351 -13982443 -777145243 --151376854 -664437446 -336503139 -178969133 --398520847 -114561838 -69354832 -467228441 -982017091 -823796684 --778904033 -171826198 --988139051 -179871057 --409745033 -224427708 --611417194 -664055855 -741804922 -196750345 -139237921 -592936296 -888021949 --565838629 -843885463 -262519712 -96846164 -199367349 --777421006 -502634890 -388174741 -636581184 -574043618 -45044971 -519735833 --487041877 -563813013 -989613279 -960742355 -241038484 -239222990 -391899887 -852147392 --761930903 -874721948 -919486312 -199474192 --918283423 -135379831 -236710191 -740259214 -559136649 -964982408 -550471485 -299871832 -41716457 --484581343 -15772702 --274500529 -746646329 -448341130 -227756325 -940228469 --970984412 -569566342 -612911924 -713806032 -133424872 -542152308 -511045405 -8578236 -709014389 -340705608 -796078099 --752994804 -232819652 -506539548 --531568624 -539531622 -340697101 --987220562 -214315082 --437843593 -942614481 -366715103 -19360363 -306855163 -753792184 -249655481 -788179406 -712349826 -482320976 --87418602 -55660722 -715986265 -404587683 -184194790 -342831085 --633124337 -78956452 -226504633 --487597005 -779155420 -683419937 --420962194 -620933541 --210559380 -541774259 -879191892 -244802453 -26834531 -864277015 -902681035 -672976509 -776858219 -980368153 -514991871 -195098794 -431767980 --148896252 -318460003 --859142599 -591201404 --747270894 -907724598 -874655600 -893790184 -132346265 -465899122 --156253163 -214594302 -364874981 --439538950 -909718980 -475563798 --393025357 -399820630 --907036445 -792246787 -766369032 -386841595 -973243568 -552146372 -554230591 -835233246 -891409009 -538000059 -317098099 -105234189 -430126841 --696287752 -149140097 --641699710 -341707434 -765416695 -486414925 -290414435 --229680935 -1976409 --857334460 -225367388 -142902193 --17590096 -550911302 -810998713 -951243765 -35351477 -205307375 -745843148 -728621775 -886952943 -505087428 -725807634 -677676639 --553562554 -366806464 -11502883 --375282225 -200756625 -606101244 --427046131 -194783068 --733048706 -143377525 -756028225 -684223644 -349057746 --148928016 -886761061 -79669278 -137152100 -657418768 -396703633 --803729163 -542033795 -139599086 -369059543 -368252638 -235795175 -118118159 -464611009 --108330933 -309901386 -344117463 -18319091 -589684572 -590147306 --685228945 -138408370 -440469369 -585328131 -626458419 -982461198 -386379094 -604132715 -559707235 -148324297 -330552952 -510700905 --34688158 -56157034 -843326027 -91256406 -54245925 -84804367 --927440545 -655113629 -838541440 --393013255 -252103285 -348809400 -982839562 -437023839 --884005900 -182158585 --486974196 -696917422 --816437149 -197763792 --329490906 -153024028 -206138439 -535750205 -815318116 -981329099 -222436306 -781039959 -764224119 -925797859 --619166167 -460473271 -430318451 -872450037 -329197599 --190287163 -833977063 -795474277 -142122739 -90756564 --308042871 -491417996 -61787203 --387633846 -287887776 -742042339 -764450912 --568076772 -473337273 -88819552 -752395728 -356271668 --647423111 -593659594 --253477539 -180509688 -850763898 -19331128 -582790571 --587485109 -143075680 -942416101 -934184950 -74855765 --254751377 -644422530 -370755454 -609259516 -531005784 -489708647 --569597424 -565325432 -586178003 -15019885 --313638393 -618458485 -660207320 -590561794 -878664902 -16993090 --244688636 -700735207 -764910336 --281196764 -701149072 -507836559 --829103246 -187208332 -390673955 --540693370 -587667065 -136501858 --847005616 -929777371 -115382601 -918538140 -962708461 -601846761 -449315791 -562245216 --575820922 -814270164 --827275922 -403593573 --972530786 -860606114 -31801491 -197951972 --41791628 -368534236 -349205697 -177646313 -646288301 -545494550 -958460382 -866313378 -937240958 --286480611 -826320072 --587127830 -464798992 -530166000 -81731178 -389695543 -118711500 -921249247 -712245358 -430652045 --240141328 -211690283 -381094614 -63694951 --603040207 -124096388 -360403823 -641521253 -631203041 -383478246 -704098962 -296729218 --232570525 -641075880 -395974428 -612497630 -75615694 -518991918 -434252942 --627976656 -11893243 -856396408 --662214366 -602755401 -963234014 -443220908 -931494788 -771111229 --416821776 -307901855 -32804278 -517622096 -836209325 -220403548 -243732871 -147806362 --772431717 -46698357 --335495449 -636811075 -368426757 -115306594 -559932075 --302958932 -771845445 -914110711 -801420438 -485606245 -238591986 -890624205 --579112846 -505776994 --415865907 -576346851 -640015413 --331823373 -172055851 -235174349 --547466350 -584307602 -214711844 -127443267 -153785114 -612992940 -731801645 -584366434 -724630025 -537381084 -699523051 -537127544 --599031284 -224279832 -596782499 -633867140 -649909477 -121045170 -843037665 -795472998 --401591399 -742496964 -840991522 -813032800 -126841839 -293415575 -285604825 -328316368 -839237881 -193996343 -444370062 -396517290 -661225702 -133748001 -266666470 -725928919 -283597108 -586845314 --633427939 -543504076 --747470537 -484904224 -491548441 --831292266 -808899747 -138866024 -731035700 -543709784 -368658936 --804737987 -255374193 -982348948 -771917588 --360843949 -488771183 -793749684 -127751224 -176309872 --370636105 -22757556 -308288805 -445974049 --285519143 -672003123 -697326498 --785788416 -407971144 --364458623 -520883758 -737117583 -557213719 -119640269 -275295838 -758571909 -159249763 --475311716 -378364897 -373157511 -683500944 --250783640 -549557124 -937848314 --340952185 -380553992 --621690607 -977990232 --785673770 -328246180 -862231803 --800324764 -469815816 -632678456 -953264993 -292279137 --802128780 -367342964 -64254035 --177163037 -774603007 --745499235 -345167437 --709294548 -767960914 --74177986 -140358038 -33079935 -509444298 -656609093 --48961039 -136550917 -937850503 --687687819 -353848673 --957349430 -561265426 -839379096 --763820803 -363821657 --320620312 -840268028 -631098856 --64280849 -798774455 -791907892 --840715290 -664366632 -302344287 -642729190 -288760208 -584317943 -676198686 -523484898 -835989492 -882338048 --8302241 -120335124 -71093174 -920996364 -841515783 -886987436 --676172135 -796682461 -918531299 --424760571 -36578052 -495327899 -930810847 --694982195 -667583076 -18460434 -227217216 -133583435 -649839968 -398498045 -225960408 -954048058 -477799073 -886670381 -259800538 -643615441 -475560836 --844014147 -427098275 -814530076 -980173882 --457837067 -745157274 -715508570 -850014690 --596891339 -412000407 --712498852 -838410677 -948663184 --595287359 -706673085 -296406061 --454727697 -918263863 -662006730 -917309198 --864082005 -1050606 -347333863 -289198914 --647931587 -419428725 -68202927 --732459837 -262294141 -161516452 --644899330 -969845811 --711772701 -451334929 --360050733 -668233467 -741947987 -204806091 -818903551 -564711887 -553088354 -966047936 -991443741 -665184877 -6100647 -611124471 -50851245 -212043436 --469910040 -874897972 --84672896 -602950195 --389010392 -812487996 --734097466 -648300567 --152971318 -847747472 --659999199 -813493167 -729781517 -847654754 --896227199 -337908703 -202686133 --277034311 -949718625 --578853495 -885818455 -70658449 --217278532 -476978614 -428151357 -739179940 -17711843 -300231127 --441674427 -293471109 --593824542 -97580828 -261990518 -440238901 --493400464 -732142764 -344168246 -996443877 -910786137 -131190552 --664366632 -905967225 -741846499 -225688275 -400031414 -361354625 -565303789 -580367645 -185983544 -269850868 -282906302 -596418334 --934898605 -455119316 -334097 -912760892 -112450235 --99597015 -907754255 -470276726 -522104540 -733625893 -813892137 -770130258 --204675570 -480341401 -713059957 -5159451 -594165109 --95017394 -349293089 --757188138 -64139970 -729590227 -731539645 -272143456 --165654938 -342193854 -275814046 -832976408 --665978023 -24431974 --386051635 -882640364 -742393699 -379673008 --273241238 -431163287 -716375703 -76488659 -614459587 --83620448 -66379884 --913025837 -786464896 -300878573 --433214712 -652732869 --623663746 -451694845 -930614888 -965305813 -680494791 --815485825 -216215129 --105387447 -326967093 --169770845 -258228545 -179189953 -751276204 -66529844 --314936403 -190402017 -919305510 -553109680 -441646322 -445508437 -207213193 -184854981 -906041504 -724656762 --934165899 -63819014 -918242171 -663860987 --469569850 -993621223 -539007030 -924106412 -505475759 -187774775 --277935260 -623694500 --309997864 -360264279 -469011741 --237752857 -315863079 --213650840 -888516291 -694054142 -507980466 -189540123 --883443098 -708798050 -411518294 -345512176 --56235087 -136800197 --21405959 -447909972 -870297925 --754590583 -623550326 -717204504 -267361464 -693572676 -427001528 -20022917 -897259139 -362842058 --708563787 -962527064 -143166601 -651509219 -754996552 -920443617 --258441366 -919454548 -938125739 -761830901 -725852450 --684994620 -719244505 -254932800 -709137518 -948207651 --215488366 -835777995 -272711764 --721454599 -592768155 -391736573 --675514757 -605609272 --297261707 -37349358 -74985438 -29376820 --360795094 -282603343 -269311925 --835751153 -695618215 -869293461 --291254164 -574591982 --463357803 -632402231 -627504154 -446643363 --176870436 -309820292 -903723741 -975497895 -24029514 --29096631 -397651579 -534241307 -663936874 --612490465 -754874875 -118270278 -314071930 --520462333 -908049939 --407643819 -983139752 -404909755 -985147195 -329057449 -125710864 --782119244 -273388710 -422573000 -802908077 --371207211 -789866514 -694035138 -37708574 -781628903 -908474203 -194963877 -603588774 --249973029 -590528434 -5625965 --851992792 -241532711 --927055097 -371395419 --169291012 -190591830 -547184930 --24560707 -733509349 --772274292 -5593582 -189425238 --125514152 -247625080 -334327854 -42204781 --33697805 -176597743 -240745280 --787127872 -124638147 --429681562 -877087705 -295723939 -148090250 --148341914 -750763100 --71161428 -654607288 --219274507 -994936959 -644590288 -599740929 -725025550 -515847073 -662593992 --417957351 -708660566 -796816174 -46779863 -632260367 -3236670 --597760208 -707333404 --765264817 -215006581 -897484087 --730901325 -27727625 --810451786 -236346899 -656006530 --240301469 -232119985 -908883958 -780546297 -85647608 -105377848 --116622709 -208592765 -306364431 -535871958 -260880302 -177900326 -901495698 -160264201 --557068753 -192593184 -240853290 --21399749 -318164951 -68545982 --414510318 -752173182 --144255268 -419043058 -915994237 -892806792 -303477550 -60466180 --314753420 -962967278 -790017014 --122382921 -184588612 --999379867 -399253038 --652736324 -136727083 -419742709 -757740001 --656123081 -888260847 --12935290 -561306330 -445343914 -316909001 -114110375 -457954030 --590115970 -283192364 -457513498 -60800344 -296478644 -527700653 -121339526 --924485063 -340765102 --89448251 -543305927 -186990349 -800850415 -635474247 --646317352 -754965085 --973754824 -847117850 -562022121 -742271469 -701149451 --829663561 -360203111 --634807796 -233958427 -71844531 -758777198 -103270543 -528630706 --802024965 -256352723 -187101730 -832457179 -239818772 -674468274 -292564802 -786243010 -932529623 --834714047 -84438287 --447909972 -726348153 -758818323 -236902029 -622273800 --8964581 -575336904 -611776613 -755386530 -517377487 -376533334 --850699157 -172313061 -226454451 -183700600 -368069080 --218658828 -956884888 --395814459 -869777368 -472251097 -732988200 --534373964 -5564604 -931487632 --408793338 -62235199 -280874055 -679910618 -982553467 --842713604 -168197562 -593407571 -932594588 --886835031 -970457083 -433951109 -200119561 -302166248 -306345118 -113575893 -556697343 -170863806 -260958071 -54811914 -477194826 -153731578 --58679253 -842063967 --8497946 -542995254 -492063521 --915994237 -93333918 -857514936 -951475015 --986339255 -456299004 --262117549 -811283303 --277699171 -847608437 -686145341 -708010514 -845214428 -745267189 -891865139 -129935756 -826062551 -707065512 -21845493 -919324891 -944715180 -278833661 -712384831 -507678206 -267522138 --555134789 -294866064 -146764292 -288804826 -565328244 -765212908 -177004717 --669950371 -879611682 -565348298 --563140440 -291886809 -914824510 --543471050 -861681318 -344264780 --850045091 -540942858 --995214354 -210046138 --345390998 -969463159 -527385846 -735238552 --385101093 -12500072 --437015560 -783464123 --874083213 -547935264 -964270017 --432160345 -347458651 --705794496 -232331049 --66137861 -54228956 -169010482 -881624006 -654144176 -702466307 -997061012 -909898646 --393879764 -813018773 --316780575 -835940659 -89866568 -704610498 -248071351 --242024299 -211192183 -339369911 -117991905 --314503565 -192774707 -405151485 --237208140 -853585345 -586274401 -37157841 -563474730 --135235175 -251708292 -107437196 --428699789 -991722063 -333822811 -308473914 --379455490 -67259435 -487383953 --806630513 -535193692 -78390186 --505327825 -26137752 -734625948 -12966632 --783085853 -350672054 --800489367 -337179615 --101811280 -550861466 -594911451 -778336094 -241605959 -781792722 --133551587 -866694005 -34700798 --399040609 -115059940 -155061794 -890568590 -691025781 -855008292 -281782956 --962143468 -166344365 -543420705 -777480912 -92649658 -156311871 --24535342 -173557492 -190822298 -99697701 -454834461 --111589286 -223488643 --975643383 -37269441 -207262971 -896016402 -403110143 --656609093 -57700447 -662858386 -312434439 --240167340 -462333734 --425045926 -722191135 -114538213 -285419137 -936637744 -125617510 --344983156 -854492449 --719625179 -168497847 --376037913 -599040823 -708962381 -768805672 --337646838 -575452825 -568790478 -430051632 -24392448 -790098545 --164145651 -850875574 -339714829 -861579996 -897382823 -368046143 -198295213 -273064261 --201157763 -358333471 -510945178 -839505237 -25069937 -923543072 -352129543 --500194821 -509939179 --451102792 -80056186 -10806524 -786200569 --12841859 -637246910 -755788202 -635269244 -441802151 -21754283 -80560115 --113899633 -22117770 -130573730 --695483014 -333465064 -943580991 --775990258 -163273620 --10537453 -815899294 -289282802 -839451397 -861487417 -702099207 -298842814 -557713173 -945405915 -49528840 --334633212 -585573542 --585019285 -396638461 -671714542 -798387298 -889371045 --304476898 -319249830 -524430821 -297121651 -328295461 --17246122 -893780601 --166347349 -801546237 -744495480 -895698217 --437912613 -841484644 -559377162 -653630263 -334361069 -988632686 --500837921 -499844930 -211786780 -976141856 --330277884 -495423450 -677488756 -206729033 -631201432 --192774707 -945451261 -407823075 --63219834 -701070524 -781866553 --674784632 -492483476 -594612466 --223567563 -293340160 -617912337 -642979562 -197860222 -665692993 -279570614 -149135232 --836501397 -234360962 --887721170 -681905303 -470127445 -999460642 -386918263 -27359401 -331166995 --37432828 -78054583 -186886356 -290005251 --242687820 -106644645 -577694894 -433448716 -902451748 -50444473 -980811087 -608576716 -303229417 --528921150 -825897111 --615561451 -437532123 --872465846 -996784978 --813865784 -558368621 -917411857 -317513530 --208684926 -734026114 -297399890 -766174810 --448341130 -887964818 -441173987 -594804883 -629040216 -794325950 -53525563 -170569448 -280052963 -454511624 -523224835 -900344153 -340979903 -199668518 -377249998 -400463332 -823806603 --842817965 -891476750 -743185600 -35882345 -949975709 -81352754 -721824929 --64564656 -35189951 --246562956 -145732689 -969653691 --220227886 -468794951 -401195074 -899382502 --182288167 -107042475 -73483252 -235604933 -928305377 -630424093 -38881765 -572403174 -541762031 --722106644 -196699524 -557678894 --61016090 -5974955 -851003659 --278272588 -672288729 --624001170 -436971520 --601227924 -702281583 -281022132 -688110379 -492088189 --23545775 -255672094 --918263863 -10695705 -944101080 -189903091 -454382473 --903288332 -111252277 --749709784 -958741152 -519550569 -303780803 -466884214 --325180086 -277705234 -609743926 -120653947 -843558376 -73635971 --664684621 -958112700 -558051806 -942442775 -789647118 -937343871 -946888085 -771298309 --202815565 -667116254 -565984373 --831615212 -120296360 --648891782 -606439368 --5191583 -484322038 -765292712 -369238144 -711099187 -798321627 -501988646 -683459296 -28612976 --85568399 -141458456 --91272639 -181402352 --133615471 -707014549 -670358306 -343070538 -708471928 -97572078 -406076977 --948207651 -497157215 -650684474 -640774740 -91567674 -951398889 --951540348 -872951740 -394173701 -597833640 --109574719 -35139493 -131360869 --945021797 -506195055 -865616690 --433087846 -790605774 --297025149 -493559557 -219298769 -229204866 -311913766 -552682044 -825759726 -760906832 -280609096 -678183960 -102320878 -831320704 -768486334 --991753515 -246753111 -358286324 -500153983 -862826961 -719521880 --232508288 -81625392 -214748298 -73773356 -622437649 --743017 -199215393 -379914522 -949316129 --843395174 -810385479 -680168900 --248062721 -565636924 -755540579 --700587880 -789534246 --965220800 -55369501 -448554312 -695184977 -100945447 -114956939 -70034866 --64938056 -360355874 --534481141 -527884142 -951565422 --191716824 -26081675 -29169333 --196892896 -108616201 -410716618 -780814355 --988872305 -163183595 -941088951 -928257562 -372998224 -379456006 -128863233 --475301061 -426287117 -603540936 -355659112 -448756571 -692545568 -215578528 --234617132 -204753256 --164020289 -177075509 -383308513 -273135715 -593322766 --835933465 -440209551 --49390184 -135476125 -399236302 -855960053 --524285039 -766842401 --109782563 -307292426 -662333111 -887897804 --122532539 -776735129 --928750036 -145762471 -476951983 -692559639 --773168681 -262054361 -411457238 -93136730 -694776256 --224279832 -314724071 --316807391 -769280011 --647505791 -903483342 -108903240 -770363924 -448387082 -370824051 --808714349 -556517266 -225607084 -140047655 -832521706 -527067795 --695263125 -625760547 -468617038 -202340914 --535193692 -156375487 -512011994 -321780087 --827661502 -665297417 -247502950 --324714809 -740519774 --201473092 -627299959 -492974295 -130055879 --459329718 -398219161 -539622953 -91251779 -961541214 --77298662 -184411642 -856178774 --273388710 -674458680 -343921583 -513533002 -812802613 -474704302 -205578200 -479427214 -501423230 -654114270 --441369282 -970095319 -100197348 --504491072 -708755069 -613540478 -761607881 -559976504 -214901909 -793532885 --383589803 -187837702 -936835871 -427104913 -93306143 -530894018 -467700675 -70417875 --245035925 -676523030 --442782194 -913211983 -682591439 -646295376 --888683032 -966667391 -963980040 -427536125 -295534989 --918028817 -462062926 -134925562 -658143270 --858038729 -574394483 -719477387 -705675617 --654549437 -324624154 --810172921 -779647406 -508822966 -191518652 -275858880 --504297346 -534036115 -926724895 -10976400 --781792722 -305056696 --562501717 -452748325 -677013864 -756278776 -661962004 -467176158 -346964304 -555303488 -970766636 -358343730 -33157010 -645291692 -604154422 -575274724 -973268154 --195098794 -409791505 --935145792 -596855508 -865866575 --427418666 -398015743 -190837565 -752793773 -771999309 -361709149 -845761780 --241616632 -10288422 -839824126 -516767825 --538693092 -323061012 -986017982 --266201550 -771004572 -372720917 --705131716 -523259214 -845763917 -713283141 -58759616 --896171296 -279736618 -967692447 -149334149 -736387419 -355744756 -593950188 --470756592 -48893681 -142981056 -390417833 -126997724 -460926364 --66085224 -657874514 --575778699 -654079605 -306237194 --323728565 -125454622 -455432343 -582046167 --979556714 -579044805 --272101919 -175460770 --561305959 -514987871 -602071468 --992701626 -525048925 -801121812 -460483287 -32811109 --646459725 -252892075 --287796733 -775066009 -783700737 -248178432 -579097055 -205253227 --591713870 -278725606 --821358676 -203942836 -943935966 -114411694 -966847157 -323274151 -145382235 -814032023 -870035218 -836205058 -993201193 -899146326 -180881787 --231574204 -744269514 -581715649 -798547310 -411280258 -833437027 -301751637 -492258089 --195682111 -402868631 -134368760 --932057832 -366762923 --171014127 -550137900 -725185014 -244495805 -705978624 -813837481 -258156410 -69918605 --846181471 -520758036 -16113786 --112605732 -213068606 -205756835 -507662797 --796489228 -715250865 -229883980 -831378263 -149385257 -909336250 -908645263 -218285104 -565422637 --628289154 -828840701 -126279789 --959978285 -521058587 --813617321 -41623347 -597445108 --138710987 -877432193 -963903694 -191543608 -118591146 -965080113 -74737019 -539910677 -767155062 -859899566 -982339155 --207013463 -773473440 -884896345 -199204091 -631658943 -433360023 --503983741 -67560438 -917431231 -479637379 -663053550 -314472915 -927035176 -38468361 -339497652 --491110882 -803032816 -697624614 -330807316 -21915248 --773930663 -518734689 -94440182 -677904492 -56047578 -919881756 --232472931 -101139293 --881618932 -959756810 --995989246 -270162494 -369918603 --955764795 -113864144 -540015993 -283426794 --736127758 -122750620 -739200293 -728341319 --986936056 -335971323 -249165073 -484032579 --302938076 -173894728 -748977353 -326643613 -323033849 -377746692 --759335155 -844666380 -838248227 -794509978 -332982099 --672097223 -418846034 --92888932 -656542580 --452025481 -724053337 -444893456 --203878079 -211468034 -6650092 -834359603 -23269227 -783760691 --101455608 -239901003 --419729223 -98522828 -363459311 -438116754 --591960161 -510765340 -867154547 -422533932 -574482858 -827018745 -825728290 -968771586 -174712020 -850158532 -906749268 -398690740 --552494078 -164967661 -996163998 --666046152 -409869429 -294891298 -715928771 -521061230 --326280395 -401683576 -639974351 -194240611 -859795586 -154672636 --463763548 -924321975 --491417996 -115975645 -919271365 -371641864 --826302648 -78346227 -930507415 -890038173 -375303195 -323877064 -684718951 --691878845 -593733818 --247613301 -28660768 -926881363 --726206111 -968805071 -301006451 -226113484 -837316616 -607636732 --316909001 -176946473 -872433052 --754370369 -468632976 -932558782 --629060109 -117009244 -40656508 -604330245 -124225151 -413411028 -782840230 --842661818 -339004524 -685253304 --116231125 -465407560 -49253665 -372972076 -655200120 -437524109 -844238732 --860192884 -781438423 --487247123 -601864800 -8011831 -653836531 -250984175 -329049608 -398747725 -160683278 --41204024 -293281887 -563721064 -742252095 -663784614 --547703057 -16504107 -219197804 -616299680 -143378195 -187310447 -468913444 -204782566 -770977468 --586831094 -884790748 -49856898 --985579958 -902731690 --628215764 -201557678 -947507392 --537149730 -222663676 -158020829 --569326907 -591878042 --573207388 -863893775 -603237635 -752538906 -760125178 --628834453 -500145840 -698979177 -14511519 -420523760 -170298361 -282616182 --820819876 -781929011 --658964031 -454835445 --281000232 -132445979 -384607684 -711560267 -308731828 -204283356 --749541976 -484913066 -279125993 -29287255 --659542059 -113687694 -815794482 -896575769 -313326246 -906019201 -756060505 -991873640 -101324824 --346810677 -97632974 --479329602 -375089860 -917468708 --983706259 -451908984 -292014903 -945873633 -434392505 -184790750 -579241259 --369730772 -825418891 -885885810 -976047745 -458322040 -548014187 -12560771 -684632997 -220545124 --848189678 -450761347 -833833233 --576346851 -215440838 --412571632 -394332616 -997574587 -441154633 --249466551 -293075430 -26857592 --514194151 -532808659 -468681779 -709295892 --535959380 -510624775 --907278048 -213212163 -930827822 -48665127 --293990591 -150441665 -12356574 -139647048 -64289742 -731620445 -630563182 --982861178 -438123882 -538406325 --578392684 -893913902 -941374974 -564558585 --81414329 -371736075 -724859798 -290382415 --214637805 -620997910 -618053305 -868915326 --481772279 -386056542 -552189333 --384102389 -142887777 -197189290 -378302564 -583899916 --424747736 -723222483 -129862609 -688969699 -237414909 -970543467 -933927584 -311516078 -89313416 -668358627 -357892234 -25640362 --443611507 -482419135 --756211593 -688635793 -311660799 -141257925 --692077746 -424883645 -940786968 --586900239 -931308323 -864264946 --324390041 -516019685 --112224280 -438400099 -838421678 -224447090 -876128919 -199653301 -318043635 --309596397 -273156390 --912625710 -642990648 --830681438 -612324702 --618290965 -779597827 -877247692 -537765123 --136959865 -394459124 -633788868 -164552748 -206312541 -14184026 -966805877 -292659821 -872823824 -532543040 -366820226 -599645060 -351782912 --791069113 -400667844 --353695594 -646319392 -907818533 --397928607 -418970325 -349678691 --815899294 -858283120 --23635451 -256104020 --566159637 -739701080 --833249204 -160724841 --509948402 -20771247 --882474579 -336130904 -845417868 -366147704 -31865870 -625585270 --177138938 -949086696 -518907040 -759770509 --346274528 -734812168 -81588523 --105234189 -473889963 --429297993 -669032039 -773464344 --86041254 -890920262 -673505680 -340690408 --357128337 -41763455 --797322787 -524706835 -247093303 --497949930 -919777616 --295460218 -488615942 -729004367 -264441425 --891409009 -607136697 -789289707 --967517869 -406111070 -268738496 --587655640 -822361400 --556517266 -264741975 -900087848 -644516187 -325452570 -69592288 -948041817 -817277537 -244868030 -205037242 --172344739 -773875633 --405906714 -385343011 -669738634 --961971360 -874393626 -682795431 --82045601 -30460995 -956938735 -674756459 --708303900 -201217012 -74804784 -541778746 -605551153 -788631488 -603541588 -279156516 -262442606 -340243264 -457717378 --175339150 -543858247 -358363380 -907359744 --554898478 -767106324 --881248605 -550985157 -167742171 -568938608 -761123050 -98925827 -41089703 -282475478 --919245282 -401076929 -217163657 -442972703 --397256932 -853104602 -516038569 -785108784 -709567503 --504677380 -994031798 -461292544 -135394000 -543859505 --330267500 -313622216 --216861953 -81319204 --232119985 -405485198 -987268033 --824261596 -178016547 --257419244 -81107714 -729628124 --751282900 -606494215 -653848975 --860196483 -192923493 -878702752 -369077872 -170548086 --887784671 -329581923 --953586215 -695373376 -572363208 --682857918 -497698867 -860950154 -779329879 --461216638 -644086544 --289157372 -912566293 --583759538 -775755932 -296853370 -287466465 -154446224 -434607540 --943170961 -454761302 --561822608 -347690186 -509251812 -600327638 -571522866 -913050019 -163108470 --28612976 -491925528 --143409011 -771008386 --678554834 -824596130 --5642765 -36068816 --254204501 -37364217 --262676008 -166931063 --405338627 -249506792 -455717325 -992582830 -496841090 -166776455 -34768940 --66917747 -10011700 --932970732 -878389954 -513191642 --681905303 -957698997 --742916523 -925180513 -67367022 -823728127 --957698997 -303487470 -530368213 -898593499 -985670974 -557816424 -329878652 -878626844 --619253577 -836219246 --542549225 -320313662 --121771585 -941290655 -674053905 -716470895 -523309670 --578367635 -539227313 -132460404 -464448046 -682683969 --796831500 -461123625 -63826618 -101503311 -296769866 -434215609 -387845964 --64289742 -373833933 -300722157 -743856952 -297597348 --879439597 -700250950 -387174949 --112710265 -380778438 -119972325 -827553343 -268792713 --578520669 -281540406 -401483947 -113793961 -173613306 --926559214 -531978700 -384496725 -661867170 -69256024 -721605458 --713311170 -286503445 -420312808 -90743541 -216544516 -519987045 --315411335 -43347336 --825411415 -667232396 -461893698 -420858746 -752166823 -850627749 -847766235 -34145225 --142569937 -637245615 -525949852 -533604973 --21547592 -33166242 --236806055 -360011320 --530081440 -492552980 -77991451 -695942068 -611558122 -808812910 -166179840 --226329431 -234440153 --342831085 -215714155 --648545645 -68576393 --562099675 -445854939 -592681002 -983454351 -674379802 --92860467 -924232063 -728833084 --619011683 -915157514 -223934622 -141064314 -674424998 --96430465 -312220761 --446665752 -870411718 -810184241 -947273089 -150774130 -176470401 --371413672 -185903040 -929745354 -299399801 -407681238 -370850160 --709024560 -594066183 --466259087 -66676507 -423430659 -602736087 -70976090 -990880025 --463628734 -212562509 -828324158 -993003567 -38181673 -570645018 --890427003 -73029380 --202444087 -64402755 -41600613 --890241448 -63573055 -793535581 -719756536 -961029939 -734870607 -377800486 -832342234 --48378103 -784935464 --826381146 -889476647 -554663140 -296430765 -74629106 -431724654 -561575611 -9370207 -674101043 -665926049 --131594037 -112652075 -695072271 --274033828 -786866145 -471781540 -537291304 -281507457 --261485934 -24925143 -563135263 -996600017 -113484293 -563777351 --931204890 -592353984 -646677723 --402249481 -535392710 -21766969 -834482678 --600918578 -918139896 -906984146 -186005869 -725440352 -255450705 --444271066 -375659089 --639650442 -231694702 -887735668 -100653779 --279980301 -671483733 --959451294 -180225470 -621968237 -741424486 -69677666 --91650493 -952871491 -493592176 -22566843 --937959219 -58648359 -239141877 --330633293 -474584137 --279465681 -923868886 --124717480 -606899053 -666174269 -663432339 -285140449 --157948982 -446160971 --136289350 -1264134 --479241471 -704994677 -682893030 -684632617 -583163197 --628339107 -487534391 --532758503 -816414981 --396733284 -854468836 -103058969 -509796708 -983185489 -250751076 -208865160 -229626881 -207213868 -463287151 -30998475 --328316368 -730845353 -59701597 --729247019 -658564684 -490043368 -549413378 --221208291 -271747738 --91537531 -47288205 -606289708 -657526055 --736460403 -231697039 -883241823 -501899120 -977166831 --220731080 -326931350 --842533326 -954588583 --835233246 -487171436 -695460137 -535376473 -780830868 -506620646 -209022117 -717088287 -88152506 --251533028 -538967517 -2664529 -191790117 -838277825 -924724473 -754112080 --825792975 -691979490 -115384705 -896252884 -622631195 -687872968 --427001528 -944938289 -131133640 -312158179 --345296268 -706403087 -374234953 --503505064 -552501361 -970585779 -96697758 --280064665 -803550352 -29371066 -328033 --905944902 -149010988 -396078396 -201154881 -408731151 -863525874 -285893240 -969067092 --485818330 -103149712 -201316977 -307511221 -286371988 -216872539 -801955926 --706618586 -715071781 --636581184 -311233977 -444986841 -260615042 -437929371 --970847041 -733303634 -274866336 -221574130 -290207994 -959271818 -505337559 -269799174 --968771586 -589984117 -831377889 -432567900 -643861468 --36500755 -58559838 -372024182 --805457958 -804168375 -380946926 --210440315 -2893092 -753928384 --440487398 -724137146 --262505109 -173749227 --260321680 -639524976 --422670505 -795465012 -305541733 -778826290 -425623055 -65633347 -815062724 -206229933 -133219019 -516040399 -141724679 -32607992 -59427254 -294051400 -326839061 -186625996 -862101815 -206364674 -207811230 -379959656 --76793783 -381279156 --423283864 -697645867 -625432529 -174369638 -494865951 -363764358 --851979231 -917106515 -345666642 -630917839 -368829672 --224162761 -15783270 -992433169 -211950254 -486245752 --102216008 -656912211 --58759616 -841550793 -542982350 --504338134 -181450227 -206141432 -295939500 -121858529 -367533151 --712951582 -517539274 -295665109 -948168276 --124197210 -250404754 --494769600 -435377970 -733142261 -362988938 -194216186 --960043561 -306113353 -303338000 --332754701 -627620608 --130766233 -440501968 -100489678 --991629600 -681258466 --687075205 -303101555 -82823771 -927998159 -770751704 -958710898 -544421632 --847401671 -780325069 -443257987 --117499791 -680754627 -315774414 -283161585 -914778759 --190236 -917128156 --641969222 -491590924 --940824046 -396345656 -776946854 -550400440 --443220908 -972492403 -614483293 -73882904 --193857845 -515697764 -551115055 --401826411 -266432088 --430263893 -661917794 -209311542 --468632976 -650186567 -906830752 --253423249 -960470089 -989891966 --571900079 -164775014 --874897972 -745010858 -733071347 --756757636 -67911878 -948893636 -829302269 -168089752 -274954680 --84887757 -116756734 -235261067 -605807063 --306345118 -116645190 -539702344 --368829672 -986902289 -864444329 --354109159 -701617395 --883482559 -188520944 -569874076 --724631762 -507602514 -862837342 --755256645 -275602638 -807964239 -493680021 -619717817 --94440182 -180082045 -729537948 --764763638 -928886132 -504767977 -773906539 -522339784 -840429497 --370316599 -817856868 -85676106 --671511548 -343150799 --266110593 -268282194 -244400703 -844710467 -301811856 -687294236 -880997812 -573976809 -46111872 -625477959 -699951578 -734436441 -701675474 -403895672 -955860801 -990623427 --320616741 -945296341 -852682832 -637428319 -864410777 -678298210 -849604347 --629232917 -320178913 -800489705 --91555784 -569570602 -434274307 -509516715 -227918013 -164175916 -2353984 --963234014 -18884768 --690919632 -717570916 -358549879 --26081675 -656867072 --4813655 -274084283 -857232404 --355925434 -165447755 --475399136 -724684577 -757742247 -992294376 -260380260 --208826498 -544251061 -826231724 -546486110 --694031056 -261220759 -635848495 -367072380 -760367226 --202574847 -629506399 -779459530 -113503205 --551235603 -434139770 -462302063 -622382947 --510700905 -677915322 -719141721 --238279162 -836485800 -730348520 -701614540 -924529591 -583051597 -337028790 -351406383 --236667118 -172394862 -107213237 -682866243 --99929942 -327295039 -676876291 -959758287 --793233765 -586451965 -600422949 --235279112 -685480173 --293213147 -90133683 -88662391 -697965830 --113505435 -523071867 -323885644 --317159406 -356867200 --96809176 -935165302 --159074608 -973247561 -346676631 -879161533 -944591116 -290173017 --471689218 -382140987 -731308738 --62338928 -887257160 --892811459 -853153099 -856586452 --864264946 -759341287 -543100302 -285312934 --227587751 -649354548 -383969625 -353033375 -649126768 -655287042 --767805979 -163175125 --758071448 -911500678 --804956044 -82586824 -601675403 -75019239 -983306151 -157801364 -508228202 -673401046 -495900292 --423444320 -863952613 -964881007 -399443476 -74834931 -430741545 -332268791 -43410495 -828210991 --614615915 -429034115 --73337934 -953800222 -784689254 --545915613 -982910261 -748727549 -22232854 --26616597 -253033044 --975497895 -752715643 --925062035 -838610301 -732697285 -91504201 -265262531 -977102277 -764170788 -697007234 -778367224 -696321077 -423966729 --522916727 -216263216 --970478040 -216793013 -136993020 --404996336 -755939280 -53851943 --76981974 -40989691 -59015772 -630165555 -465768334 --593733818 -926166695 -834049005 -462733714 -220787586 -372877047 -92938443 -85530605 --913211983 -699807572 -769519293 -935276607 -519024129 -714323098 -771383796 -552760864 -777596981 --368319011 -356118217 -549429561 -800783387 -668011396 -105449888 --818116119 -447835993 --948551621 -519036432 --631708201 -249056393 -536550409 -383770899 -610279674 -20458692 --945725671 -416521849 -428316344 -841444542 --625383615 -174170180 -869715644 -986856542 --259791896 -225873715 --489067937 -7708027 --937081948 -586753502 -397093410 -586333393 --36743295 -596894651 -523761690 --963405488 -308517500 -24120685 -532601478 -535047500 --126066388 -565582159 -737308151 -472207375 --691979490 -13705268 --555613192 -674516732 --935569801 -535186138 -610444722 --839190945 -60316289 -999716142 -372336214 -699164922 -69199348 -511136666 --284953709 -613004112 -501181030 -450268424 -361943235 -538815420 -443756996 -570128834 -43463842 --802543965 -146128983 -493788281 -255828759 -973212404 -425497961 -869523665 -654190902 --701578994 -752381064 --234435665 -903544920 --283597108 -541735427 -720458697 -341108115 --156596366 -568698749 --368127314 -30187307 -786616178 -479956570 -127131022 -741603799 -817754380 -189438336 -576908177 -583070530 --858220150 -21737353 -743508409 -452377836 -631091969 -922830422 --427924703 -21119501 -861957620 --223946907 -202196106 -960491475 -784553923 --767642601 -465331822 -628364990 --329878652 -848925301 -520699327 -918574867 -242710371 --344550506 -244436838 -76338891 -123429146 -979616961 -407793806 -537829851 -9271060 -705853703 -818184410 -858770408 -75279125 --416610868 -130861427 --733545379 -676174142 --368658936 -781169185 --932821317 -696915799 --665066734 -232013202 -755193692 -915428701 -319050702 --407681238 -860086646 -261332286 --178016547 -589777331 -444079015 -726531900 -362594563 -725799130 -488949425 --493105184 -117261839 -49625937 -494055996 -382157394 -690381497 -504539228 -840332791 -360732533 -444202756 -278173469 --298101837 -131392669 --743937846 -161662968 -179039123 -923172694 --573782578 -143333648 -854080522 -123663042 --117223914 -142376744 --687681848 -28047140 --726491664 -415602160 --731103 -467101596 --937016666 -635697772 -347316664 -945192442 --260605171 -338670141 -916192048 -111878671 -769673176 --870672263 -204644452 -919324817 -226443955 -12398209 -998483877 -594593385 -83935363 --954864875 -511019999 --807015060 -847338008 -949180691 -911652591 --778455206 -966066988 -789424838 --669032039 -102495037 -349789918 --681074861 -385139878 -336854129 -438516437 -84737825 -5421631 -63969114 --50223134 -27914086 -144478226 -864278972 -600940113 -47678555 -297172720 --285298168 -871327310 --814713687 -482639754 -640100498 -543357302 -393260876 -211857268 --221459281 -746387566 -846759020 -658527811 -487098902 -722295831 -775433719 -567927683 -888778648 --736018710 -849999793 -54423323 -263658100 -106751804 -782836301 -323775723 -658135649 -23878616 -511808875 -35630723 -28589130 -427898417 --992294376 -868249893 -988960125 -278635161 --484380200 -540179040 -821616103 -936413855 --221029088 -84086960 -134611985 --123304354 -55816390 -58132519 --820987635 -839229688 -998554182 -776030095 -105928301 -379558669 -809605325 -852328545 -405393802 --22565260 -575691838 -642592364 -136548616 --41064774 -869059964 -312842406 -311337510 -898847862 -392914234 -916898062 -982996286 -362281358 --889316059 -871664759 -889331045 -762067485 -176869620 -587011684 -649776233 -918169965 -107820116 -842701941 -168778795 --563777351 -504035400 -797975008 -95456153 -594125350 -863194466 -525679302 -973560817 -606952162 -759994440 --953222944 -138059087 -703865660 --983034703 -303777746 -316547035 -448047289 --827838344 -988926 --668799032 -563265864 -26659049 -946196887 -205591681 -49342551 --321031783 -122103497 -301031587 --428316344 -746605423 -536249392 -596563674 -607341088 -556908609 -970582134 -967097991 -43223100 -232827971 -450262089 -52871554 -195816105 -74057962 -636007587 -748308476 -99296721 -185599438 -163453498 --786840029 -876848871 --895346419 -426524591 -395137579 -428674221 -937393801 -67737548 -330451418 -788024989 -706189966 --209994301 -226818779 -231008091 -553500002 -42446117 --185010567 -467310215 -604266597 -381573470 --933087825 -657618350 --203942836 -158489191 --408691335 -866253421 -529277740 -716955812 --428858037 -214406021 --239676439 -792743780 --844049835 -976628826 -295182334 --341957899 -485948944 --790935717 -339486421 -77974773 -510569189 -715921112 -487909543 -363074155 -651713025 --978130827 -530432291 -623163618 -747037205 --286602167 -271273780 -59617415 -923133783 --98314028 -192305987 --467833838 -904576834 --531101446 -481728833 -276408813 -448024369 -869467947 -448414721 -698298710 -179451961 --821720178 -663617492 -890009186 -453626684 --396645943 -325690820 --232827971 -64404597 --627166370 -302835807 -616337854 -692105524 -331390015 -884939968 -690382258 -554944426 -939315780 -598421443 --939969342 -726964511 -374082019 --880551318 -68032489 --935649667 -786328558 -632724704 -859191701 --841971263 -346292287 -118997478 -543547219 --179585056 -293559322 -3783286 -348066116 -107688417 --962277238 -352944596 -514448413 -404652946 -542924333 -338832772 -439843506 -852864567 -568366113 --472638493 -970945399 -633909057 -617669566 -482395014 -170488294 --494185068 -229457270 -31948875 --204283356 -376006712 -146193625 -892184736 --275403918 -17551591 --610192005 -749525716 --906266750 -42908116 -980719859 -261762138 -511338933 --478470039 -695937203 --695630479 -797590724 -889870484 -584405017 -688834311 -162314144 -967983831 -920094073 --576534069 -363512849 -439175047 -147349668 -634736360 -645316660 -469293532 -663009855 --128942890 -965064277 -501413153 -134667264 -264661107 --660908465 -414722173 -290334614 -19582457 --519521487 -756126520 --498719865 -403431418 -286743161 -560864502 -460360971 --929836157 -265037884 --872951740 -212874372 -460078666 -345123051 -228716061 -649354449 -280911780 -472722650 -822965844 -184888363 --582853715 -264904561 --692105524 -410540063 -315426747 -768481199 -499565278 -195131494 -239475246 -505423289 --575343207 -589396343 -298387181 --956122659 -667675684 --106632864 -451138211 --428873315 -660069860 --580452414 -798359468 -433909408 --618157660 -52317121 --445974049 -807346962 --743710467 -219290090 -765189665 -339719012 -193250141 -357261799 -162972502 -171526395 -184510442 -656674390 -180927831 -723086233 --867689874 -726956477 -141467841 --569640373 -411529676 -924940587 --745608250 -56073092 -471818287 --627447660 -907360362 -771025623 --234776621 -737476968 --556425724 -48866054 -857465116 -265357775 --952109754 -495537821 -218652160 --952899539 -640926304 --838385047 -679979165 --705583497 -846960789 --735164474 -855544230 -192723241 -242479392 -942185862 -763564856 --969522101 -398455243 -393409572 -223944970 --120761896 -691083676 -919555173 -732000036 -348973173 --825163947 -959285923 -862667041 -210316666 -517162494 -629953390 -538674939 -472719794 --37694926 -894823609 --385065029 -76697221 --605609272 -618807106 --838470273 -349737897 -876678366 -375387976 -959381707 -853105313 -100220343 -761463362 -976281038 --847802461 -436580740 -969929474 -685775793 -187396841 --263589794 -240444843 -216119625 -227950054 --694979498 -384316956 -306747509 -290399565 -839005561 -74981301 -382408584 -488040672 -417408659 --547592793 -651233718 -863194412 -265554127 -728582348 -103512614 -702882022 --927746357 -798666066 -173484335 -335519935 -12572713 -244034707 --158020829 -861032037 -698997548 -77872708 -587367962 -38021474 -420767253 -510235797 -14732749 -246112905 -835927651 -428779244 -584239503 -824201744 -161977307 -542543329 -397212182 -598561369 --23081200 -56499080 -93921796 -274113621 -32989777 --712384831 -725443131 --661216473 -434585143 -73690519 -825250596 -296706311 -917826418 --3349037 -213115851 -213744546 -131380593 --182265283 -595173428 -184049880 --851882058 -969968754 -352664351 -253826076 -918562586 --521872822 -203063398 -297773913 -312294542 --233300874 -890368763 -914126175 -393570900 -675439527 --291886809 -196429706 --164127440 -472818753 -146790310 --436971520 -566192616 -485542617 --763604587 -278996642 -69809722 --638124561 -203761311 -332688286 -433681987 -999080980 -591397269 -681715049 --864292729 -993011401 -547077763 --591397269 -254962492 --908432858 -82089585 -166133278 -258717098 -462073168 -93461943 -400954176 -929109719 -100742709 -992962875 -235472949 --635705272 -961198808 -833626580 -716706123 --985670974 -31154357 -687745727 -190531251 -497877003 -230515707 -631717859 --593070060 -766993928 --274725643 -330687242 -241060997 --943750335 -787759964 -791645684 -691637599 -484808144 -124036368 -929211211 -451281830 -234137521 --840392754 -538059495 -898595465 -496040396 --545041512 -793776582 -525863396 -49777838 -888199807 --34817968 -231638458 -682402357 -551978499 --541484461 -838791867 -585774182 -903222820 --635674260 -527723424 --840291180 -255698124 -379102417 --515203271 -898801433 -721554638 --858244408 -574403944 -694882472 -444497913 -793486154 -951535360 --428547601 -988925082 -412289145 -261831609 -380680415 -529202315 --894651423 -917258580 -800253329 -967186425 --470376838 -598979471 -405318668 -949383343 -53194388 -288517199 -327842067 --774505105 -855671440 -954646128 --20607188 -213441568 -123614454 --227093859 -436602753 -149056358 -555957571 -739285890 -739809200 --264897553 -970234769 -217990148 --981470718 -811180821 -365517366 -748831626 -402266544 -244745930 -348140959 -543925661 --661530609 -595171555 -930193393 -199273937 --75720070 -974046308 -742229305 -307670218 --941698341 -810207514 -987415549 -998198229 -42070428 -500409125 -246433410 -152491650 -359329419 --565903311 -303965960 --637245615 -843875474 -254599175 -825589736 -286840713 -429938942 -589992536 --940137870 -575744494 -8429077 -605400258 --879111720 -730857736 -363011236 -89140250 --744495480 -556354716 --266157382 -531911853 --223622745 -517880304 --632724704 -936408340 -800647408 --693715959 -32804447 -312441396 -820905298 --231241978 -490771242 --228279262 -245977300 -20182137 --439396408 -963485388 -958016120 --272666895 -219870441 -83461423 -267508498 -932885289 -326282504 -116194624 -900450313 -752024829 -488766780 --539806779 -498487580 --180023888 -466223233 -885587293 --170488294 -987011225 -173726924 -845879511 -900923881 -277755506 -122198011 -106755281 -66510371 -196919040 --663638187 -962871031 --829388422 -778631127 --876768075 -36981736 --690505531 -307721131 --242710371 -382101072 --587656460 -133528432 -861348446 --226113484 -678014648 -540595713 -446449935 -52527827 --164552748 -993382931 -593673586 -95030776 -441690104 -480204346 -120799745 -993421605 -718751737 -714845408 -772862709 --83696253 -48830931 -377369868 --997841731 -499101652 -751532339 -25522356 -873823189 --39180743 -491312763 --309090721 -14834676 -325739922 --670655743 -397289248 -367408125 -676885577 -946999557 -435486221 -990398037 --990427644 -352369545 -541887867 -579815968 -534019110 -854897535 -902292581 -359274066 --118099560 -768081980 -724932226 --260924010 -840953674 --265554127 -945992788 -978899593 --126841839 -478157250 --815005295 -498872316 --163449318 -280717090 -111459209 -199541984 --139410715 -776798849 -572043978 --565141059 -159995426 -712437268 -290493361 --532261738 -45432386 -703707180 -407815379 -652616722 -435338825 --903356849 -484187526 -128645971 -156173620 -410175031 -798610954 -324576326 -631018997 --336854129 -231058450 --757391111 -792188396 -524544440 --597445108 -46482922 -237309981 -689009951 -38236058 -497151948 --250984175 -871286071 -677383760 -956198480 -672537671 --148921703 -342123844 -220410499 -882882880 --527881750 -535207690 --936408340 -856066521 -447405085 --632854674 -597508212 -72717510 --736170986 -5048399 -581801791 -653189173 -529871846 -97726259 -542629103 -649833540 -526705994 --935073324 -816647399 -39201226 -88148831 -472953000 -814863002 -599741198 -62038565 -21858526 --448249624 -453722984 -341680805 -147970048 -890668428 -504041556 -3510944 --255370301 -919568207 --480516384 -782488760 -32289680 --898700377 -325453953 -816690300 --193256759 -557982799 -860244930 -900723216 -640479859 --436259308 -932291952 -168255661 -214767465 -276995169 -908386596 -832772304 -758843430 -331271529 --457703089 -476966087 -705372073 -697761781 -869592109 -570917310 -440752175 -292208490 -402629384 -975599525 -706916333 --90056659 -714939516 -979338625 -707735235 -457730429 -622851263 -927614022 --524110845 -449590151 --918443890 -781255394 -968449418 -477772714 -372525443 -672166965 -640247699 -806689848 -410397565 -104662142 -117739456 --373091489 -359498308 -346387402 -801934565 -745080567 -192745058 -553137392 --870155564 -28939636 -454760254 -552817901 --320615260 -281531621 -160919718 -743632682 --807040615 -998288346 -391545769 --375659089 -477228123 -453271170 --303326158 -884112912 -300919325 --132445979 -832003702 -655250001 --878071407 -669294911 -719000535 -895846520 -532668858 --295273405 -409736723 -164912100 -898639770 -122384900 -308483025 --951631751 -317555895 -313619441 -730308353 -598388359 -627848846 -73887115 -351742563 -977108247 -739938238 -217326317 -394490928 -69791214 --718248476 -637246186 --57057325 -417292016 -522067381 -585428868 -55542269 -730459534 -13364495 -548581459 -39091419 -227868053 --90080250 -810044690 -793022211 -204844763 -839493177 -303282509 -686659488 --429034115 -186584720 -275086014 -466798908 -19961843 --488949425 -224166302 --652696557 -71301452 -249363594 --195432963 -7307614 -673508884 -523271909 -859611656 --313751379 -430698263 -69193293 --446583669 -616084802 --360839638 -368883508 -577021453 -175012471 --614362968 -881647216 -508656793 -936651900 --269888849 -782979213 -417210197 --138161447 -321226675 --259564070 -290834288 --716292389 -135114584 -441158328 --585846306 -228851603 -371242321 -866972688 -648181363 -982458719 -815366252 --862837342 -583713419 -183249801 -85542661 -54693174 --790793287 -345977410 -708954303 -249734880 -715754599 -514839468 --160944489 -112242203 -772303679 --759104907 -645193578 -236785168 -987039221 -892268686 -416370988 -673922061 -902448511 -804286934 -670728011 -199438381 -547006 -488743708 -795477187 --176408097 -168914635 -984356243 -467702407 -532290838 -596709264 -658055304 -249879354 --216796812 -347302631 -826948346 --601888347 -938548369 -147061393 -217118043 --761123050 -231348453 -595378780 -473563473 --557713173 -973705237 -703576252 -70201482 --997092240 -809218494 -382011024 -605026691 -606145239 -91327005 -882609923 --674644411 -444271750 --752395728 -589312456 -238526095 -662285591 -92496592 -960729128 -943987794 -574518041 --399820630 -792241287 -532700153 -537944510 --54245925 -877483335 -758309514 --385995937 -627376687 --222568029 -288480241 -557071943 -734962210 -674091396 -461344756 -836200858 -198203760 -201570746 --949411322 -518570991 --362225341 -61305329 --842821037 -295828668 --63969114 -40046756 -593294221 -287509703 --861957620 -880949523 -500884321 --447835993 -75454991 --224786744 -112753533 --362521165 -457045813 -581316047 -589025003 -590402300 -980036813 --932145970 -412473533 -348449398 -977405919 -349472494 --495924935 -184966912 -366392688 --972502545 -682079960 -957310657 --278392124 -265183152 -672914079 --542590541 -272341314 -372835724 -966033973 -273002727 -802872446 -74556115 -743869811 -564851540 --480674488 -145214949 --734026114 -686533513 -757045322 --767690680 -92123246 -908169345 --57897761 -116636658 -121242841 --702501101 -820676153 -781881361 -557063358 -956629184 -83445883 -612271440 --640774740 -569013772 -811580623 -960602043 -216009691 -792876262 -734922034 --865088365 -19793537 --369059543 -764418352 -79125867 --103829817 -705914791 -401338166 -495368781 -425580803 -189302833 -86166799 -152749965 --559136649 -215440027 --394427713 -696103013 -828826639 -495837069 --683994483 -174832739 --261909880 -964577670 -201353467 -253686627 -925126185 --321075366 -102548802 -138854164 --199416846 -511512606 --501474596 -522399898 --118997478 -135028160 --64998162 -975640634 --12356574 -967711155 -820102329 -964993059 -861907619 -623166272 -871010081 -811916909 -750481511 -152282712 -329542354 -246620367 -385905319 -952159109 --516529335 -160738774 -870269021 -291546718 --214594302 -461329835 -953375398 -726273699 -154884765 --315640709 -825827562 --586760061 -413326729 --722285570 -975568875 -155548692 -377982348 -962995738 -622285963 -50225502 -441837373 -232957789 -579981653 --622273800 -244349801 -562126040 --963912146 -937331667 -432036603 -683188109 --275769328 -340750228 --527884142 -268067343 -237300621 -89863823 -322455557 -391294276 -278617151 -609470670 -175291218 --850084710 -594611377 --199996996 -173680440 -722254391 --865940679 -787821137 -650694681 -994042106 -157022163 --117027589 -906438766 --277000903 -746753871 -629378657 -702313146 -790435677 -666168686 -21858766 --297266357 -42091954 --383534560 -802115628 --836485800 -180811297 -61654611 --545643054 -780489801 -956417047 -902306550 -315817833 -805747718 -205523467 --220816579 -539935090 -997501980 --358431755 -931200858 -967570995 --819232891 -352515618 --472374399 -59531912 -44176830 -91422949 -801172506 -359221987 -282713166 -989842855 -669777282 --511506258 -435068682 --85530605 -442551778 --182708867 -350078454 -431903495 -951460958 --73832830 -947913043 -112812949 -559446068 --260123217 -269987250 --373000911 -516865788 -756288433 -640628104 -165632192 --397372534 -433210377 -800365358 -106204587 -203144289 --41365400 -798479036 --995788853 -439995812 --746440097 -861682291 -290220240 --315426747 -422316529 -555347142 -983644405 -304496498 --454649651 -59758710 -895396837 -998989144 -880932266 --178853530 -326845941 --68180271 -386977521 -351911586 -845450054 -306591222 -549787071 -239036621 --660076182 -174554397 -869214339 --530227577 -216356542 -974901659 -178965376 --929442059 -714619610 -408667389 --227903532 -449970194 --977546466 -633991763 --996424914 -994660041 -588698836 -522265900 -631695405 --640012458 -597383307 --448414721 -779135443 --439340841 -745317623 -297316494 -541586230 -358967355 --105644063 -888880447 --964270017 -867020845 -788226260 --402702375 -527209416 -99492215 -765072678 -284976874 -274170565 --52527827 -90171832 -824502388 --606439368 -813765083 --8151262 -28205124 -205937461 -642968233 -879878130 --101406309 -802290495 -56736708 -94091763 -679224466 --822039604 -279559968 --111920108 -478867740 -613914313 -16636774 -513122238 --564686165 -983837519 --290803013 -407812459 -164377332 -866434534 -634530288 -619404903 --198494718 -245364304 --701221273 -217925557 --526062965 -637619376 -192088782 --498007953 -825396980 -174459890 -288663579 -535958135 -256754079 --472604073 -906688094 --213535512 -453344940 -104974125 -957806807 --846725844 -424914086 -38290287 -539176928 --146024800 -747195954 -985679740 -46528552 -681672270 -898695770 -919864777 -753743549 -824438363 -139865467 -490542234 --679041044 -130417153 -700555321 -41238908 -621786874 -172024233 -131105530 --967570995 -568844039 -533062877 -76228136 --398147263 -359571526 -182288648 --724738739 -168233859 -522097848 -666028002 --377735586 -90986817 -452789351 -169239691 -488783934 -104094255 --936835871 -975178534 -968062328 --962997015 -338776924 -692913801 --811895476 -521801012 --641075880 -209793142 -443810140 --267051871 -139559984 -398739463 -664743248 --653630263 -786811070 -550238663 --434139770 -260615852 -331029689 --599532900 -535797158 --117133794 -897735253 --964691666 -135056845 -255810226 --16269087 -25827398 -376802129 -304069088 --588051953 -233702524 -660976492 -721086566 --681258466 -342522939 -733732890 -532568116 -518274133 --510675399 -359038852 -255370938 -508680679 -457468118 -771374363 --465146766 -956378300 -420627842 -21915801 --708954303 -643319846 --990106627 -21009814 -667684139 -923897301 -812736266 --228942437 -811838267 -58225547 -561494767 --54873190 -892465586 -212600902 -765343732 --76488659 -672970775 --264615993 -901546006 --950457796 -265406868 -954497900 -932555135 -565552026 --198203760 -695953862 --929963090 -470050966 -744318114 -765606858 -571530855 -354213079 -124630007 -569063178 -66245479 --279169705 -376882584 --25279878 -24554506 --137392936 -186464466 -659188332 -411942738 -967957466 -454703996 -615533525 -145167484 -10078506 -575960854 --519224430 -178856642 --598042453 -872169321 -765738980 -880102002 -609809376 --160842340 -340455508 --384106543 -504256139 -243089750 --928796263 -569974711 -169536124 -462342454 -986721887 --973560817 -84433384 -80774611 --334523992 -861300725 -879015062 -736631132 -636656887 --775474104 -76578324 -558024532 -65125140 --213441568 -336297822 -989975882 -24340857 --288750174 -381905165 -477659163 -307233601 -841751969 --742551483 -709669220 -749828336 --835879606 -875086222 -193262928 -346010729 --927219336 -891645588 -631896417 -803034152 -726472082 --987097 -197156788 -588110480 -617591007 -811156637 -748737311 --437285643 -960079618 -496768719 -810183598 -540199863 -79812147 -335033163 -655229226 -919056858 -191251044 -561180258 --862211815 -339982396 -679105867 -282348887 -219020735 -586707834 --670358306 -430464638 -940026396 -18202658 -472888329 -968547559 --876058578 -202325690 -974826343 -845398987 -149075133 --744269514 -707112571 -769335881 -106312282 -123069842 -459458634 --635347349 -260632028 --535307591 -367493710 -877946259 --241827535 -185620599 --970766636 -453489936 --311837584 -469187639 -203417479 --216105384 -142307614 -875685019 --758347360 -671635481 -259230803 -86137185 -290882676 -579712497 -895845569 -46410084 -771265904 --231265135 -887505993 -964684663 -836180137 -97835986 -317072921 -309041264 --469438305 -70517648 -963631648 -473661930 -941391114 -359722347 -266271318 -512221303 --695403709 -499895904 -181658937 --291559066 -72924983 --458738748 -719785028 -366405925 -321331170 --840615346 -264372693 --874655600 -766285931 --281466671 -204853352 --111878671 -522742363 -281118971 -344285558 --850970716 -392216498 -452632815 -216534064 -996518478 -246044279 -324203516 -415904818 -499139582 -237166337 -13562529 -563776153 --497983269 -166916969 --990969247 -148840984 -351554453 -591438601 -923957333 --361435135 -384826629 -977529971 --229626881 -78208429 -850959321 --276408813 -855885464 -544758554 -119075771 -890704287 -891332820 -248073628 --16939623 -225860261 -66321169 -42441943 --993068902 -114607443 -945812963 -260016806 -513924101 -768294910 -363186316 -291744970 -25736947 -775789921 --191518652 -46191964 --987759388 -26675831 -518785712 --877226921 -648741806 -933472618 --957214842 -693055574 -453953944 -760029964 -440012281 -895223093 -793645638 -691261573 --535835729 -756317422 -23525205 -816118239 -552869437 -215160239 --958710898 -55422925 -74049094 --148013283 -825529078 -728657813 -539484351 -678916297 -208142159 -609327016 --665184877 -469444198 --424129184 -461041649 --955599039 -331125871 --839461998 -106750951 -891936940 -867694690 --538687613 -378988062 -137329149 -885852350 --158566518 -812141060 -923506122 --289097800 -894133680 --992165194 -606754675 --269987250 -789718481 --24803527 -204271580 -968390853 -761908117 --935165302 -356475147 -803473233 -949398068 --860843402 -900761810 --809886721 -182517525 -449954416 -625402300 -645648695 --291166921 -606001115 -650641722 -832258608 -245270239 -912768112 -323155637 -289326552 -639954800 -138565319 -719380660 --651855971 -718495053 --744282390 -41681801 -60094973 -578573974 -903565729 --941742251 -530747153 -440192705 -696857991 --558969677 -344400509 --434274307 -182809951 -373438682 -68835014 -167953233 --531571537 -244833568 -77571562 -799257059 -938708075 -53873137 -502402421 -786034835 -806999079 --413301360 -870013084 -608148387 -790998618 --558368621 -568156490 --191346248 -502275141 -805714689 -104737003 -665279505 -952388124 -134285901 -909025444 -447590641 --605176830 -564672762 -486472633 -546336565 -658520148 -151369797 --756288433 -972406791 --541539535 -163850290 -229191076 --969539083 -232440377 --941919632 -632495986 -825983882 -60535583 --100729037 -235272967 -991260082 --735197865 -636715498 -754634374 -323165625 --519493787 -868599367 -736864280 --631098856 -27352413 -494066058 --492301388 -356833332 -665769218 -841169427 --845088364 -603148661 -945322863 -264431501 -313267488 -988100136 --772508561 -362259464 -755216413 -261910354 -571451212 -940436351 --318620851 -546252664 -631183064 -194198261 -880279999 -481573071 -825651250 --896312096 -160336944 -361214911 -878762654 --876115042 -83500420 -202713287 -585584980 -552488473 -64546500 -305352183 -568726809 -333146608 -51119997 -158793486 -100531945 -579061467 -186451384 --718751737 -17216151 -13732090 -17908275 --4665425 -684042556 --180748105 -775123760 -889142834 -695256682 --515827408 -419610774 -604889439 -610463384 -925974207 --673270106 -202538650 -21420231 -479121684 -47527066 --4014319 -729461427 --919881756 -599028899 -505917931 --445960876 -688138057 -808907764 -289179594 -814605364 -538257704 --75615694 -492466784 --9134030 -257049529 -285721643 --914778759 -34229192 -665713033 --93113433 -88889297 --929745354 -15790726 -40093628 -372916954 --473964484 -968897391 --812868163 -761885724 -124636586 --903625240 -292730848 --857232404 -62792866 -143327733 --701840547 -582399294 -816437804 -706747945 -841099131 -939583284 -744360626 -563651253 -687383382 --797415958 -989083996 -289953966 -334735909 -627485728 -956197943 -58572513 -483081660 --858372278 -91989171 -836130058 -195335351 -968904980 -401754682 -416090431 --690550173 -629101672 --795472998 -62442789 -425898908 --956221951 -493785768 -414133258 --496744787 -338939904 --4242514 -976290507 -276203477 --543096571 -639656129 -115544337 -483105193 -583536565 -691065104 --581801791 -275882156 -347842449 -79373599 --912912743 -614995716 -502584248 -43590942 --934673462 -346656311 -949366789 --615518609 -148794750 -838127794 -94041737 -873641978 --866674819 -330111151 -34513579 -225816914 -58539477 --721381949 -356523765 -959557045 -623267875 -460043858 -219746072 -715074899 --790998618 -851088162 -251319220 --197845706 -28658277 -209883836 -428325318 -14362268 -410499922 -702080937 --461469082 -299703091 -433353238 -247218126 -767087054 --690214193 -454623784 --367093582 -476933864 -839165879 --344117463 -776162955 --973999261 -260025095 --418231010 -879755109 -661256968 --456047138 -455458109 -212159362 -127452685 -590491530 --975759364 -606169843 -75866598 -648821855 -945636798 -422512596 -761181982 --861487417 -64664555 -714054932 --100890839 -444179659 -561347526 -478542419 --853105313 -240290860 -278060232 -815333873 -309878261 --3144791 -982766431 -121656721 -209223414 -305296409 -162346957 -176188270 -60452497 -169966063 -983933795 --728744627 -228713106 --966836540 -384193573 --989975882 -270050957 --703981305 -845934551 -75554721 --412473533 -190214238 --440618834 -213061089 -562545222 -660590463 -976315036 --771265904 -655759505 -348255025 -684140719 --478541412 -831305083 -715054658 -413146114 -709590193 -921370720 -417179666 --887300136 -258758879 -906986062 -90765295 -935481354 -48183351 --797975008 -767660121 -870621973 -401267745 -316631854 -809619573 -792159413 -310511051 --59759379 -704955419 --600089591 -781999673 --315098588 -701370647 -370336219 -46964808 -900312072 -157198929 -17861059 -460612814 --62038565 -233878058 -297894395 -765468316 -827178788 -832195663 -817576731 -927014305 -245872658 -860931772 --331430923 -309853058 -256864361 -504307250 --976623029 -317896487 --589692102 -395521928 -897506424 -794598104 -897394807 -770691067 --836424402 -105078739 -533072744 --759782784 -58708728 --92089447 -573318203 -51791862 -724161816 -314474009 -383605933 -229095387 --730667351 -973990055 -231682158 -695189467 -200210327 --333608147 -547565885 -747837012 --518991918 -60708166 -920118253 -92989309 -822048583 -375716921 -505071485 --844397705 -842634552 --92085449 -227655908 --453722984 -692595915 -530027339 -365434889 -977587386 -580971075 --947507392 -601256296 -677497137 -392672997 -197439239 -151188285 -639739026 --402246809 -401947362 -100085582 -223745439 -236504448 -71530526 --34396134 -491951235 --722101011 -213434110 -696997089 -768866949 --853952318 -15052459 -896324732 --872084129 -769222766 -178450498 --609743926 -193568624 --282097148 -125116302 -804434418 --656645940 -163354408 -737693287 -801158934 --418799865 -560296180 --68630041 -419599712 --510235797 -983491583 --675009359 -215519714 -980506401 -518233549 --680437993 -22276738 --679951459 -833172561 -203348973 -821097769 --13852507 -945568626 -441078134 --169158472 -196200087 -637264281 -952797702 --255064113 -618463378 -636888645 -90212812 --413643338 -536500334 --751613631 -742065551 -219652368 -901372416 --951805669 -342495689 -131650098 -106683180 --853585345 -162590683 -733357728 -545350557 -12781556 -842202457 -5833742 -89009288 -850764019 -147710252 --338807546 -603650306 --121977353 -215201585 -434713853 --302344287 -728939521 --293483275 -250500113 -438733034 --144482423 -341109699 --211062 -682523125 -77836501 --150441665 -434937293 -125976734 -158312960 -707330082 -53822779 -59873732 -535014972 -101658149 -300865250 -536737106 -310951030 -979046359 --144534640 -794085059 -890658805 --881645933 -146027954 -190485444 --918533613 -987573836 -161042771 -404024674 -798675518 --721783560 -980520779 --412323503 -641266853 --432617244 -39928623 --427342239 -538058880 -491032019 --221873481 -336660452 -654474998 -384479866 -911496799 --863682842 -385653235 -157344315 -815580053 --54220994 -27409907 -622063589 -429184202 --650939396 -249388554 --431233193 -240011815 -627404939 -439895878 -149013210 -957221965 -570962635 --20464286 -532488719 -970325779 -795754249 --153539268 -53673741 --146764292 -556187937 -185828964 --887505993 -7581983 -559588078 -174322445 -595971908 -400997244 -526015279 -427383751 -665514970 -463398867 -991163356 --180082045 -252930723 --454623784 -264500245 -695266456 --146814053 -484741268 -155429239 --250493534 -196599070 --565348298 -671064747 -338807860 -21006673 -587158398 -511492720 -857372822 --46622391 -41575093 -26053889 -696012947 -760967364 --970096289 -158932797 -383557831 -534940030 --616126249 -885694296 --12479177 -501161336 -349223763 --211481267 -188303310 -865872925 --42647465 -369533832 --751006742 -402489785 -314711060 -14168415 -477317350 --49342551 -299794760 -465838913 -64919997 --96643383 -898140676 --255458604 -943155638 --965662519 -261752381 -772886897 -161957208 -712700295 -249382001 -21209081 -373235541 -532273954 -714830394 -814428468 -845757629 --642990648 -192826740 --911637222 -239591165 -690722927 -276809105 --124036368 -767781866 -293358868 --693295207 -618834113 -312445226 -27573569 -457019329 -722778916 -128748391 -666822478 -24068829 --452982547 -547559039 -421032334 --761966321 -415224393 -146449282 -469078617 -326454826 -652514608 --15233672 -841869616 --411971257 -531268766 -699063454 -331455426 -733567385 -911319772 -7025105 -852054775 -327143470 -329594525 -857709847 -185515077 --563075678 -355143948 --638779268 -583342030 -962314158 -905944976 -784207074 --78868828 -473805745 -720377409 -87145770 -540420253 -209547763 -255245752 --641019823 -232174734 -387859720 -785398937 -201707641 --354269799 -616465661 -121963713 -522070769 -669533367 -970341875 -114421536 --10307500 -42420646 -474914094 -811877905 -954741524 -777998184 -703303463 -206465021 -230822234 -451293706 -854785650 -359794431 -654220556 -252558324 -20379164 -690832439 -275678530 -224179456 -705769285 -355884533 -433569270 -400517026 --332673447 -753356162 -645464939 -356123300 --202652821 -120617059 -530542165 -98994504 -86904229 --551577045 -431801678 --923133783 -412140322 -157841099 -586811726 --972297534 -446569644 -778915759 -875912081 -578531300 -50229485 -954122827 --465129539 -199824225 -361327016 -728245575 -368515675 -464341874 -268200260 --108434668 -740444297 --209044095 -674288348 -821172011 --19236749 -883832741 --421063135 -278295029 --857737655 -136400832 -340039518 -220788173 -368519969 -441083827 -416812869 --629878030 -502808954 -169473105 --850764019 -585616798 -518276159 --313262142 -509522947 -831183258 --925736789 -559237444 -75099689 --178743168 -293968928 -205945753 -568255920 -886264138 -584276692 -61980981 --747778145 -569371954 --350288841 -248113831 -512967832 -630937015 -344553314 -920581332 --750968482 -272491483 -974667665 -22103142 --706336069 -884443741 -270325801 --586429016 -567976052 --32043794 -679191380 --579074080 -830109846 -452082735 --220788173 -955108064 -323121137 -267943586 -985975372 --744546466 -222065066 -699569983 -863050344 --418955075 -883161688 --340979903 -965770257 -349401019 --198153162 -72943182 -225588513 --311636017 -503327070 -854535815 --134279248 -143316164 --142376744 -968601303 -890439518 -78941530 -547388003 --844730333 -774696708 -59815917 -298324982 --790413637 -66834516 --395902386 -410769124 -210955268 --54693174 -789341184 -277770131 -729690957 --550290838 -307024613 -900653080 -239205959 --916621324 -298902382 -95107690 -28677983 -157276017 -589196920 -897778593 --146128983 -390386764 -181971970 --277548080 -288814697 -399119614 --914001194 -795486235 -118321598 -334761556 -661083356 -1350080 -643890154 -210980975 -867586982 --783041189 -168181017 --347133281 -335683784 -530223644 -970364944 -100917313 -40502045 -676993085 -335819558 --742393699 -559492513 -294547380 -491101995 --678463663 -778545695 -754888451 -383514619 -536583986 -611882395 --965330468 -58229910 -268524515 -625174975 --240019496 -326874113 --437374366 -776483164 -930706957 --201293614 -983115552 -642509175 -234941793 --748505016 -31657418 --817279815 -118402198 --816186538 -590405644 -470491926 -909321173 --653150872 -868765931 --910755564 -212955504 -97833640 -312887884 -370076333 -813277235 -182950038 -322480232 -233498575 -940727614 -794346023 -52330361 -707683397 --919736386 -377460104 -224901750 -265262393 -439586250 --316216046 -934678595 -183891685 --367342964 -999048213 -847990461 -545999978 -848802209 -919222477 --527913477 -895067781 -173338820 --849469755 -474907713 -227486107 -616523781 -924054168 --520741138 -747542307 -794652843 -895204495 --850813230 -721996827 --22444468 -712147549 -439908233 -868922099 --771343319 -404530228 --199769764 -206641727 --810998713 -602758502 -401499820 -636835699 -426778270 -661769727 -812419086 -678253852 -880571932 --776735129 -8977786 --104354741 -756286355 -1067821 --998989144 -250444285 --526270560 -251394925 -404681655 -408386617 --62442789 -256639535 --640029479 -267620141 -573152206 --614638066 -922108160 -507792669 -43774616 --634530288 -600204673 -941358833 -380533292 --941693937 -625798990 --211468034 -895646356 -516044393 -811667631 -286572559 --543577135 -595643594 -88064838 -746819292 -695373926 -329720516 -279133754 -200329372 -812528654 --900824691 -636631792 -649324133 --581171717 -506031753 -681519102 -15960241 -811654099 --836130058 -425002192 -985382649 --793535581 -629087468 -567021063 -231505776 --255872438 -457603468 --294051400 -282162890 -587292117 -758580786 -787792804 --557071943 -854218500 --746387566 -850257854 -187251522 -251132662 --563013780 -670955779 -902923906 -932670385 -990374097 -903400426 -869026329 -431214567 -712551422 --429176352 -787920491 -477942780 --301254105 -695758768 -943354469 -460873196 --120999710 -207178546 -809413195 -37143346 --393637451 -529333402 -147281110 --507602514 -462064561 --652888319 -897378151 --333000402 -675523389 -858236014 --769732948 -944295393 -976510441 -379775003 -15399567 -352160133 --905519211 -912116049 -160849551 -920259733 -73806708 --717120020 -649555896 -997892496 -439830537 --796735318 -250495404 -131527048 --384723008 -84183476 -397136786 -466875931 --562617248 -59431920 -880982476 -124199817 -902592910 --862473862 -843147603 -644419447 -866121917 -416988038 -577097264 -717327906 -229015959 -90091082 -31453868 --79373599 -767363261 -389821033 -335254950 --717032308 -463474300 -275988300 --677403222 -933953461 --949975880 -333666924 -511968159 -263998035 --130417153 -121957852 -457614540 -927480978 -796849670 -251341909 -738247060 --470994776 -482485527 --248074560 -453376779 -214106187 --630491707 -775716485 -369776892 --679797216 -871111907 -764591487 --411350091 -598150811 --788846935 -161407398 -890356823 -327164928 -713229539 -774660151 -985469708 -203221299 --671460772 -704356831 --58302846 -355327192 -845418108 -231831106 -496954207 --629757926 -652999013 -716627292 -180394081 --281307026 -676274146 -577239888 -540293117 --912760892 -539838509 --796682461 -404179366 -577195852 -851030022 -968340857 --600914107 -450778205 -799794687 -686444379 --678298210 -147865224 -66983996 --90743541 -119961533 -96168388 -221616473 -132112174 -961595608 -994158344 --338179536 -283847320 -756466603 -945075081 -541468488 -394003009 -760958551 -369425039 --651638718 -937852616 -47298032 -806231724 -690612184 --980511335 -174640183 -317288116 -188198191 -992490469 --353373426 -679984387 -116202390 -837868135 -27870343 --914110711 -708514480 -543387669 -499711910 --228758282 -527541779 -877818775 -985452439 -8664751 --161344432 -785264940 -865474195 -729083355 -905953667 --730091425 -126197794 --492483476 -797509864 --306214802 -170496275 -334175791 --348809400 -450303901 -750045932 -581772668 -123533243 -942487426 -150201237 -9019395 -955812347 -183278308 -874479501 -732924919 -148712004 -459299226 -498123023 -821146693 --488743708 -403610613 -494696827 -34869851 --623700650 -854042106 --262863648 -814720184 --260930774 -752528508 --99993744 -357868016 --409269125 -893997683 -955663487 -566184398 -536236197 -533643112 -164194339 -863658269 -58805683 -856631740 --703360613 -824234420 --321877855 -975718728 --354681282 -302454873 --474313297 -583160554 -613785888 -871564129 -653769309 -898548589 -7479556 -704769010 -49609260 --147694538 -292482264 -38686868 -803339339 -463911760 --827645668 -233389203 --542860933 -77495381 -100884150 -269374306 -857116763 --990344140 -125922598 -240950684 -151710379 -46585130 -141732752 -114269622 -695995125 --121769949 -966897065 -418241970 --784238420 -46876499 --8578236 -399388537 --169968847 -989052002 -496708828 -770631084 -308863259 -956161771 -36323760 -381707157 -919674764 -844404949 -669755321 -675402073 --96168388 -581859796 -228095765 -469447834 --590186336 -836213837 --9370207 -317414222 -26915898 --854969114 -275978369 -376112541 --235472949 -817786111 -845961242 -210854870 -298867640 --616580731 -801801630 -469354013 -305599172 -415864591 -482673928 -788597735 -961480866 --832607260 -424639971 -124871461 -395707846 --789009410 -763851612 -625015148 -150840141 -68700548 -758019922 -365075994 -298459217 -258215549 --85145230 -615047111 -514169698 --22617637 -989595617 -883567018 -792970825 -22939576 --29371066 -809784709 -908488933 -262925794 -316082683 --14732749 -580945823 --91914374 -726726406 -68115209 -685203553 -836642905 -549546245 -574389853 -173072789 -596430197 -19270294 --99113991 -357944443 -742533008 -858431647 -772882370 -6273924 --214901909 -5306198 --44075250 -590681766 -85653704 -748965676 -684767219 --470807064 -966066254 -505525405 --515837021 -319534665 --259143001 -961938100 -265515267 -897643204 -970235161 -87080081 -118299593 --464725410 -938376705 -175086143 -99577471 -919940354 -612981040 -722704849 -29719679 -664841328 -787735618 --142334095 -100204591 -142114600 -6897940 -556266570 -426529148 -992189363 -57964974 -910111752 -889961770 -43752496 -697163561 -170189545 -946599519 --248073628 -601242214 -419958921 -372831285 --290220240 -623901617 -876774282 -68673205 -120675715 -58496297 -612114765 --396638461 -370054254 -93516083 --368515675 -568131189 -172655800 --716627292 -242617094 -450139578 -498665598 --68835014 -477019328 -783674900 -14256320 --634132457 -291259030 --36591291 -42736366 -926481034 --419428725 -698927135 -174406621 -317661877 -570690451 -18479066 -72013404 -903809784 --770269426 -607988135 -143145137 --19270294 -35288096 -231029059 -54950311 -572999069 -665512826 -947635233 -216963163 -29495038 --327254464 -745828245 -617572751 --227868053 -744979801 --921998917 -310233281 -945800013 --355307202 -921170126 -792718704 -963337700 -211291862 -384317488 -630898657 -436710237 --526949925 -494542362 -975169603 --182530052 -980148192 -199684184 --714845408 -133913235 --858401229 -675844843 --604588547 -510526197 -530642541 -362942764 -603113423 -124847112 --110596685 -998114569 --800022153 -697468979 -221235268 -643840411 --622322010 -676783883 -6804262 -814674505 -135768661 --43463842 -638451912 --61963263 -945875919 -569618299 --130748133 -800528222 -608327490 -46721290 --571813245 -565901714 -455908295 -87381017 -551860484 -143491205 -451188257 --876108483 -849100159 --37422060 -589256773 --542995254 -778812016 --365609384 -28924611 -31911873 -178031588 -566893346 -334768276 --348683346 -405989463 -282188884 -993439342 -260456076 --891162216 -587315787 -396765502 --15228624 -3914126 -212925984 -942604778 -496649169 -136429924 -487751754 --917843696 -849058250 -743590859 -18277218 -841213927 -891848911 --370824051 -521580439 -612252717 -258899455 -342680011 --366080863 -793346760 -758736415 -302284578 -878893612 -10358655 -749755920 --422347617 -618624575 -890947867 -250074347 -115801952 -333876683 -294670222 -144223911 -957927529 -574590544 --844021559 -256994768 -352544734 -569978233 -327432178 -801661739 -560802721 -180077651 --47527066 -135803493 --566793734 -118970096 -197902567 -102718285 --71093174 -485296818 --675490384 -372939247 -288097130 -680581855 -370238205 --786200569 -863359472 -258453901 --565424363 -115860777 -409808588 -630883663 --358071921 -684074255 -326033831 -112215942 -220828683 --339564229 -829636734 --974717811 -197105066 -141196215 --209223414 -240199019 --592658676 -213483569 -636329190 -828578178 -423851782 -791411822 -845954545 --775712736 -54237000 -211541903 -358302406 --482283488 -767612740 --144478226 -120038975 -715977137 --583442895 -924371048 --590143696 -258318999 -940747336 -874572804 -98178833 -884473945 -37548554 --311437270 -192383059 --561265426 -670136799 -822303528 -31914068 --531005784 -373452960 --250249619 -404517059 -936100044 -662393732 --15362853 -819323655 -676005109 --593950188 -825373028 -278199221 -493215364 -945557343 -24864982 -439866808 -925196622 -225948928 -897527105 --365517366 -971400400 -834880509 -785227906 --625859237 -673522935 --500409125 -689891022 -448403052 --443495101 -250001478 -52585755 --674369049 -868661605 -504376666 --21858526 -253682898 -176304335 --702080937 -841242122 --670667701 -702355917 -281943282 --860244930 -407956589 -697344349 -996646536 --270142671 -53232362 -904671974 -869527827 -851487560 --183364683 -775518160 --309853058 -885818047 -787010303 --237414909 -189353078 -942476139 -106900315 -499917145 -651300319 -805600303 --816237576 -310558632 -515445684 -116851434 -558931988 -610227484 --116906664 -726167241 -520710956 -566470748 -577641978 --834581465 -84032508 -127399926 --190106605 -41068222 --164614433 -116052588 --601675403 -890682336 -100122691 -121506729 --886868248 -515645636 -625293662 -253169260 -78268029 -773078727 -102875762 -64746409 -987761637 -389646121 -972346544 -711324862 --760795651 -704359714 --453161029 -278282747 -365050109 -602960503 -294268553 --314291124 -739464099 --572933024 -446894518 --529404613 -705155061 -606442683 -608785594 -181308800 -952436896 -855081280 -572116164 -304053129 -178928724 --444633844 -896923694 --688138057 -63559456 --213744546 -267678746 -741317663 -808859760 -894150678 -777641945 -142958926 -418850369 -18387649 --373438682 -399674776 --113187168 -149223981 -633710993 -909174692 --871654433 -598520144 -245276169 -427650701 -883998418 -430534687 -845085213 -118750403 -159693332 -640172272 -62379596 -357841010 -817355508 --168029734 -266906604 -102705390 -727258839 --654901176 -809970384 -331989588 -67720500 -503349813 -578231431 -393287192 -494024952 -468703087 --833526705 -946018354 -109559190 -765453030 -971878928 -448553898 -256925306 --152282712 -793885486 -637077511 --77568070 -732460691 --765606858 -141435007 --636656887 -899444599 --907005967 -245512699 --225099602 -842113401 --509856023 -378266131 -589882543 --45432386 -907664391 -87497662 -232036112 --781929011 -442991448 -175236672 -876723567 -688697708 -710828920 -878471429 --582056553 -447289815 -819565385 -411382526 -776902092 -882216668 -894628778 -155873404 -45779450 -521482850 -151353329 -658433833 -937067129 -820686647 --623493899 -367230609 -471672578 -410999684 --957189846 -917511296 -112994083 -330002566 --658226052 -662480375 --457789332 -682878678 -780388932 --10974001 -89820601 -67001705 --737203871 -932779171 -324658460 -995377515 --298870538 -525723086 --751677959 -362786216 -644654032 -628736874 -928016276 -756137226 --945636798 -794384684 -917637092 -508299351 --760879873 -866681525 --87497662 -855296102 -543561452 -337482445 -172515309 -441713412 -19678665 -763310767 --229981516 -276566532 -137061907 --203628877 -349690772 -383313318 -301699707 -841887758 -560481362 -382560873 -630222208 --803034152 -141693510 -60162042 --553708708 -593533231 --82823771 -6838038 --150201237 -365711232 -965650894 -420114555 -305049745 --61811404 -930415909 --321551261 -16606745 --523059508 -659877571 -654829421 -691631664 -448114905 -832127126 -828974635 -582253584 -12820113 --561306330 -735209612 --546769801 -389372144 --607728443 -929743875 -822972146 -272226457 -849491320 --95056809 -273691033 -285079469 --214592635 -133851642 -628390138 --306867062 -862700976 -127979488 -439321193 -415769335 -687202890 --731908690 -618886453 -721842308 -133370844 -853802424 --589577975 -833914783 -932980302 -284236373 -653156414 -680406004 -15883361 -576544407 -4105223 --132815241 -790501017 -269180729 -720312177 -496712273 -718090777 --811995151 -794768420 -72390395 -285095927 -521017156 -657865899 -484136649 --776668048 -987627706 -156947433 --551684545 -877689099 -968128148 -881961016 -635615847 --789534246 -556500900 --108114848 -666014076 -24045276 -606783791 -276280973 -490264723 -518115906 -153400283 --903706653 -263470769 -998633394 -468210346 -281780374 -546471527 -316180238 --653163047 -661250699 -73812544 -299603838 --945557343 -473754695 --604132715 -960506177 -260756837 -661943599 -480182814 --543163080 -539438703 -166439329 -456058054 -16774143 --302559646 -436541460 -792256753 --676077630 -911166544 --110682775 -888027891 -644922265 -312628176 -102329543 -971337633 --136400832 -430178984 -788691364 --752505924 -757898173 -510348151 -944420254 --407003704 -404397976 --909298366 -355029756 -226153183 --43526657 -772114157 -194722867 -296266961 --728809190 -743528256 --330574409 -791121568 -965579056 -806060779 --762029183 -769965203 -645157992 --309130361 -865363077 -85733436 -470991830 -397227694 --733021864 -918244360 -239720950 -96110591 --980235124 -791776889 -884674985 --203026145 -706447370 -184887347 -979955765 --272005910 -827066162 -451507603 --240950684 -885562919 -787222790 --881363768 -186894827 -787421187 --512494060 -803585044 -162058844 -348649930 -24461926 -355863586 -154602281 -960699276 -813749738 --372647814 -655389939 --390482472 -850982287 -486011502 -360034607 -219565702 --855058188 -653279871 -627040638 --571871763 -162121035 --535231123 -269302587 --216534064 -751036958 --296975832 -853049583 --974325645 -547397557 -181309463 --92461585 -701123317 -74413257 -148201010 --359213183 -839113730 --884458450 -41228958 --692559639 -170020265 -591474511 --610816577 -120249906 -3369525 -222608996 -552642911 -7982261 -940323032 --253029578 -376818026 -378179260 --326643613 -294634096 -404630271 -569442899 --970582134 -199564903 -937923377 --398498045 -641412744 -708959391 -333887780 -279524277 -453206600 -264212980 -538659455 -975006206 -409851745 --376818026 -257410978 -545135356 -390128706 -865219468 -340423167 -320659194 -447607924 -900951230 --957353805 -212643588 -815502213 -219792022 -84607340 -260925335 -595057751 -448665286 -621536081 -674574007 --739627988 -731301837 -430417544 -812007875 --480875036 -841513617 -117591935 -899815657 -882363128 -10842867 --316665350 -26424912 -98169635 --935276607 -400539123 -210732831 -616683669 -810534229 --112931201 -213637311 -102523626 --599153275 -797568643 -182702011 --555582910 -791650109 -27949282 --3630973 -354901913 --212666355 -74412890 -23585862 -399393544 -370385920 -859057071 -131974380 -809234360 --487005736 -366244409 -489919010 --273691033 -990499388 --995908320 -142503038 --333251517 -580747272 -111613536 --695220886 -445217876 --926343820 -895521415 --573404077 -746948504 --509492231 -476441094 -23669243 --279669108 -939807687 -711194930 --147710252 -603874873 -190120907 -65187088 --254577787 -678597358 -208844945 -303843548 -534914965 -362520735 --205919171 -792341783 -244451167 -998840436 -836095961 -532629629 -841446824 -656139524 -449250593 -104403238 --742197461 -16636192 --640479859 -577111946 -853648326 -728716235 --70252077 -852245469 -365868335 -520516572 --742065551 -352137229 -831669152 --603488644 -426964447 -206241914 -536793186 -382538775 -663393610 --194216186 -739701961 -354473297 -883367806 --890038173 -706940437 -596090864 -135650490 -56806265 --255810838 -461966323 -300162926 -74148330 -673272264 --400517026 -540048281 --23389192 -837729515 --664609611 -40104110 -385283799 -973770960 -662388592 --267529263 -683318651 -478869857 -285014443 -377767051 -167440044 -855136762 -697715052 -472764092 --947488196 -196879979 --38751420 -517926363 -656615111 -900556220 -755055199 -844555205 -904440559 --481950897 -699567231 -319985261 -110351024 -127935205 -259871715 --792998487 -467860980 -460409981 -417533475 --764378393 -933333277 --108670564 -93714629 --795859765 -227976706 -7398978 -351980904 -9053390 -704266869 -705337606 --297399890 -157732257 -202747863 -895309515 --33912335 -609143988 --391545769 -938875086 -742382876 --113018631 -461219288 -808538854 -994766153 -573756825 --745514951 -118305168 -381519717 -198426500 -523362414 -790651493 -294696511 --546486110 -114466395 -69693122 -662245452 -849658013 --592936296 -627281513 --443306770 -325293401 -550551102 --932885289 -804413759 -868420149 -601408421 -305265017 --169473105 -310532342 -724577601 -826293103 --171389624 -194571108 --890519436 -759024514 --952048611 -72758568 --651233718 -417113749 --20734390 -861429330 -410560384 --862861734 -239155228 -636695820 -462484452 -980882927 -689241739 -776248725 -219744619 -459296189 -515623603 --875086222 -362373654 -4226107 --809582713 -997933924 -217573738 --902513647 -62346800 -92705421 -248527498 -506141705 -88592697 -727914232 --212762126 -123975457 --13894882 -9982273 -305068536 -615354263 -938137991 --741950868 -201021024 -197833636 -676126497 -126993101 -738857135 -828503934 --41849327 -109206721 -398449800 -472907418 -476074750 -846519113 -683784828 --107040675 -703799692 -630493470 --793776582 -940242363 -20160184 -660451795 -669452175 --177597031 -167351089 -561254191 --499097221 -233494685 --548082947 -840522346 -183462520 -580666051 -133600372 --824438363 -559659518 --187384178 -992549534 --385219992 -21847997 -464376640 -350934873 -876911229 -554121163 --512833735 -385721010 -487800317 -339815397 -42318027 -595133647 -707008677 -670544843 --968601303 -538301230 -356829377 --696070371 -708480591 -488108760 -23778125 -569099376 -14874500 -599008018 -877908882 -864859829 --105078739 -19664994 --482374513 -453241420 -778270562 -828343513 -869564876 -601641643 -663489897 -669306917 -621347352 -3889545 -859264649 --308349368 -115163440 -717109577 -997717663 -822489466 -676084629 --955294970 -709077939 -683186064 --50176119 -601776003 -218229324 -824752151 --832767229 -321867662 -444674930 -417977271 --404179366 -116382093 -15837753 -252368443 -681554419 -237410025 -679644479 --703799692 -890828590 -491982934 --121244107 -186985066 -989582027 --120029651 -868524259 -532374410 --278848486 -538293806 --459429143 -898663060 -929138891 -200778361 -451700881 --815812862 -48484894 --846029192 -672313083 -130152567 -672630590 -775750397 -188958970 -499660007 -745851692 -758585983 --512011994 -987319737 --704201330 -529610920 --813809431 -272624761 --687943115 -635495531 --922108160 -601812454 -859453222 -703765849 --394173701 -794647952 -711066559 -360488091 -621821758 --513687007 -584916276 --86350629 -534031676 -827927604 -367583078 --575960854 -576145414 -712827831 -388604201 --857709847 -727859949 -570531279 --43752496 -965833984 -674276646 -56075817 -829651383 -292171992 -540511514 -719675774 -437259745 -160723393 -298703102 -430031095 -576448340 --282088333 -156852300 -918849802 -239139066 --572462132 -637268608 -193241658 --359074681 -562525244 -89748568 -615279948 --179014572 -736909046 -826311920 -456372532 -683525979 --168497847 -564953387 -966102453 -211944534 -315138745 --694659535 -177887764 -347174988 -486513675 --917258580 -172201366 -984899337 -305533445 -571287604 -664036422 -41849836 -400052332 --162883351 -385972508 --399236302 -719788528 --935476988 -274058000 -196389910 --984356243 -92481972 -79023994 -930266973 -18409025 -735285623 -60852147 --344400509 -259607259 -54651215 -251933935 -487256066 --96076120 -291875212 -104604008 --287509703 -733646463 -682395036 -115445639 -200479956 -995624957 -755723735 -130634212 -546037666 -417694181 --408857739 -523622745 --837221044 -893058995 -80627398 -470200697 --53851943 -778553320 -858357636 -514780438 --341739475 -1420881 -936462131 -97430087 --302807887 -533892403 -693791114 -494298690 --597397205 -685944177 -574763031 -954549763 -416018837 --591831556 -619290312 -776324185 --391795120 -858037138 -955592559 --260615042 -13011397 --552642911 -606779650 --313267488 -634830484 -142299318 -631861245 --231177621 -229828120 -654465580 --806999079 -426548213 -24695769 -527900787 --17875456 -348560074 -327565577 --201707641 -485748620 --679910618 -604237610 -50885794 -775072854 --956606906 -951495093 -562539244 -323713399 --73371729 -379134661 -214272230 -847087136 -325261177 -236358337 -315178739 --443257987 -823469486 -623508971 -510851775 --131380593 -812448558 -290695634 --327842067 -882899992 -857040956 -317060843 --492702695 -203456617 -978101278 --921893680 -485834673 -338949153 -763866307 -576272023 --810417471 -995205923 -748391467 -848988080 --52330361 -775335954 -35169110 --890356823 -276513760 -473254657 -267412679 -959973855 --929913251 -726487227 -285194244 -915890537 -685439372 -496777850 -323616777 -217089390 -664772933 --636695820 -36291905 -430939256 -501225513 --678789255 -489547354 -27492571 -878544516 -753554127 --801121812 -65506504 --796253607 -414758919 --100884150 -530524127 --244119092 -18695096 -105260701 -511953350 -714719131 --402810382 -327484238 --246753111 -668938115 --571063743 -122893017 --756560555 -575307385 -878093340 --57216869 -439483710 -8999159 -737494240 -328023797 -729963182 -541465555 -159368090 -400757344 --855070038 -364568755 -109317942 -762832468 -405552303 --971638283 -268637625 --434187237 -668895633 --998351058 -93163378 -284860740 --977183705 -387560494 -637567438 --541272712 -693747402 --957273709 -239639243 -269465327 -436341077 -949240406 -777555531 --235261067 -490167760 --695179723 -10285537 --361057257 -221415892 -244792082 -253209899 -117213460 -157603620 --235028798 -3057982 -745769367 -946757688 -622371385 -316483521 --297121651 -782553401 -661707850 -923992022 -445900651 -361212047 -105442431 -612912273 -614278777 -106555764 -590178161 -487659152 -872895919 -250977118 -459867157 -729191637 -60127595 -214526388 --703707180 -248163631 -50815183 -86881218 -181176029 --20771247 -604340514 --18971973 -478285638 -513918469 --347659703 -192312688 -269674709 -568019001 --437837212 -593530199 -440256001 -710492334 --817476508 -999755194 -859880527 --124871461 -37028044 --419976996 -228950097 -287739856 -502464279 -854344039 -648734194 --866300128 -416260461 --501630137 -151563246 -683470093 --716787115 -708490315 -478031385 -251073642 --710272159 -272136745 -88475680 -76394705 -339488343 -796786631 -564614250 --379597856 -544330101 --239879642 -453872705 --967983831 -850333413 --615533525 -215482228 --686212717 -607502357 -757434333 -18735133 -377753252 --891522060 -435000329 -713515681 -329746065 -911145661 --872660646 -235678237 -958117026 --708015976 -243758155 --109159314 -141821577 -237594572 -709603141 -469038252 -224774910 -420718737 -39184568 -164133714 -227373074 --948340629 -747990954 -232865047 -414073275 --779155420 -124443121 -309704025 -216001122 --696572684 -504407298 --770363924 -157414323 -44898142 -692237749 -195166147 --863415789 -274583740 --182331851 -344731983 -851644144 -84437633 -421294912 -223855988 -647236597 -700827166 --715054658 -15901107 -975537092 -618202922 --894401891 -17309250 -549306947 -318731653 -68638043 -461268067 -656652442 -783843966 -9875691 -352788526 -550267209 -904706713 --389022688 -950874548 -844247678 --856066521 -452904283 -111915316 -153822898 -896733044 -547165251 -812273830 --519266955 -632516076 -345261578 --807346742 -667821235 -309604339 -457175207 -36909924 -319581035 -417390592 -879681458 -60744077 -862933749 --935017135 -534536716 --293281887 -1053101 -734848822 -368323340 -85955291 --356020582 -553930522 -866394601 -618339450 -947633599 -38022691 -165422648 -640782865 --717900041 -811335052 --515913150 -435857275 -799676381 --711219399 -801695789 -793540010 -459885201 -726863686 -373074395 -672414589 -973034197 --96242038 -865407260 --715497190 -405671500 -522811984 --476966087 -848813716 -868700685 -301608632 --737097988 -924926318 --963003828 -147063736 -510825816 -913154010 -41190594 -54399640 -839234536 -784108989 --973990055 -370650771 -169298735 --67786694 -586100884 -85733633 -832035887 -787053471 -194382268 -327315094 --166776455 -342863465 --652265229 -516038307 -504088248 -476486338 -409712285 -527842419 -485868159 -762488441 -283389450 -469783650 -148880221 --250444285 -959606364 -982880342 -669404353 -955721014 --56576974 -379871449 -22499383 -583008886 -902135467 --356475147 -993884551 --159708859 -12763802 -761103883 --39312850 -90707468 -41460915 -641868525 -760711392 -110101530 --365231815 -30348591 -515374384 -704273146 -381198308 -41848208 --370694859 -426985384 --65456944 -808486969 --417939113 -764627421 -679748205 --886264138 -673429908 --785108784 -821612570 -449971881 --250562583 -128356637 -281415762 -936921300 -185741201 -682727882 -80431215 -253558550 --463911760 -591856577 -299059675 --145398219 -339818399 -963222425 -300709739 --697163561 -219563143 -395779091 -291440570 -421325534 -33097690 --501988646 -723138947 -233693096 -370974813 -290504816 -654997333 -816577599 --152654043 -416114379 --322799605 -442633949 -566001711 -406044311 --814414333 -943817111 -514128371 -502918446 -241740788 -344928066 --570025504 -277329586 -544042515 -640295476 -991505035 --798918980 -503416638 -942419477 --619559578 -825734888 -269108299 -565020054 -328003804 -279900360 -504163431 --959557045 -893402631 -665861770 --743706288 -71762778 -723290038 --952159109 -279315685 -686353055 -219771112 -265060130 -130648110 --506195055 -382314504 --15388786 -834140604 -96784740 -622249316 --664431452 -886610024 -629997946 -6315708 -533811786 --887126478 -521246602 -398475746 -904605491 -394707607 -609385911 -664226653 -383648061 --596869358 -576659688 --411518294 -907425275 --937637026 -358326614 -768478966 -859352075 -296878577 -542951838 --116283499 -243117167 -791222649 -147178673 --882216668 -517020701 --965064277 -702589965 -319698317 --605511894 -822784493 -10901538 --388604201 -8468105 --756466603 -601835726 --453241420 -53966942 --53972195 -653507839 -432803836 -155045175 --634166291 -84206179 -693845252 -705833213 --905307399 -433081413 -54615001 --871311805 -25108169 --669627172 -746450980 -891125905 -914373718 -8344482 -147120437 -12198433 --758843430 -881485167 --973212144 -451259770 -857076417 -397890388 -641911483 --419599712 -316069311 -569172811 --223321930 -349529094 -952326085 -832327512 -101378432 -915316037 -143691960 -83951291 -441553140 -741948830 -794367043 -607361402 -881907274 -974541419 -735983876 -549640351 -926707337 -840978436 --738430941 -773511907 -954926864 --525537301 -931595346 -362436820 -928600827 -179488758 --855384811 -342658939 -561282222 --178856642 -275020321 -403709965 -160455947 -580603675 -773995637 -568658807 -529100287 -510358373 -534649087 --622771774 -992155937 -30808341 --257410978 -104919340 -245240341 -685277428 --74629106 -352459456 --924371048 -661186626 -253954588 -99301443 --266666470 -785303039 -521812144 --38790967 -335454315 -712599078 -224958079 -421670518 -656221009 --999460642 -842348389 --208842589 -27844346 --96477030 -298978314 -971070920 -859064296 -692963761 -349150090 -105246525 -163528350 -439739218 -28840715 -491587090 -267653375 -59576680 -300955998 --550985157 -580784144 --614859852 -563699722 -641385227 --79927862 -900394948 -946315896 -112450695 --445967542 -188021415 -235315972 -554262132 -421289825 -885663772 --571765292 -291409376 -758977716 -97382783 -449626202 --105377848 -158018872 -763665014 --784134261 -773168090 --547369241 -732766964 -786979643 -756457915 -328702263 -165190691 -276474822 -195778566 -477529302 -501084267 --954209332 -835043743 -835672146 --101724011 -943229187 --368881803 -961875382 -169599872 -435661937 --958179955 -205245355 --693174313 -840072362 --498454189 -110662547 -576619757 -340911056 -401857233 -978966972 -360540789 -488642613 -256743311 -5474724 --30806237 -281063687 -302888053 -564786865 -306459642 -514025990 -51466733 -738701212 -879971229 -708332334 -640564173 -557543880 -957431909 -266319632 -594911903 -141080113 -760215144 -752142981 -707741302 -252571541 -490544457 -917820798 -843195746 -16779660 -254251720 -647875800 -611665328 -272626691 -417524202 -46633357 --726710482 -326440905 --429264869 -949669674 --488936201 -181856897 --626263232 -276458258 --727204984 -922951999 -941457624 -175387529 --890524060 -119939183 --522211444 -165166174 --13202416 -7485493 -322063530 --370146786 -20087404 -714229235 --571419686 -925021670 -332464439 -754849097 --418083418 -670205878 -617858717 -337591669 -717695363 --767888329 -114549536 --843080045 -362630221 --562245216 -86960068 --328023531 -70264501 --476623840 -463735474 -422225055 --968912730 -498700371 --566272927 -989443766 -79478295 --69638412 -986902286 -360647454 -872171555 -223522762 --386379094 -601051490 -200981263 --881501965 -822161298 -324338676 --518132 -18567801 --658542501 -748694339 -668161477 --668023246 -101691174 --668938115 -334602326 --746138825 -484000336 -354248702 -798167230 -28924607 --527067795 -77508034 -466789426 -859924888 -999061549 -754235626 -699194636 -484856797 -232134215 --540420253 -200299378 -294708381 -869230107 -325976400 --627005114 -45453296 --712299631 -816202963 -178451507 --21183225 -273339132 -799170208 -431220404 -628933436 --884336991 -627454746 --657874514 -389016823 -638717515 -910177529 -630271385 -342969520 --531911853 -230300225 -337597890 -326232465 -72802981 -155892413 --758044426 -320791187 --726487227 -574075659 --704619441 -206665544 -619296367 -147466116 -365845057 -322688671 -635094848 -7401437 -235580629 -396401624 -360677899 --768805672 -728363498 --707394391 -118131049 -145753289 -625314186 -753532287 --994321230 -431204176 -756506467 -334145813 --585867135 -743192739 -195736980 --830109846 -313757238 -187833253 -468521696 --317661877 -548691007 --761482333 -438863379 -493649329 -368295066 -606473448 -611473411 -997607895 -210355885 -129738946 -552231278 -373043110 -519538755 --209210511 -941112089 -975928177 --127776705 -210030037 -181615619 --989038589 -283642229 -833220087 --700827166 -919060911 -698197982 --811916909 -618826554 -794127605 -911234478 -550448733 -547724876 -953324980 -822338872 --120675715 -137109500 -513789468 -535049533 -186722057 --704197288 -502661525 --26795224 -236367338 --482419135 -873567003 --345167437 -244229867 -679829634 -975054839 --17643755 -551529945 -397766108 -588439032 -385155702 --446794505 -256706931 --441326950 -908398390 -781317456 -733639202 -342195914 --431355606 -36305647 -626423738 --578231431 -962494148 -825905700 --741646059 -216084888 -773214354 --73587954 -603370092 -957178528 --477019328 -621202525 -512379738 -279485299 -739574740 --869997917 -526908674 --359274066 -874003244 --424709496 -101275272 --174406621 -408433546 -747246359 --325006841 -983742873 -71345248 -177103841 -552639908 --365045049 -21211932 -3835100 -264496240 -800988724 -766117983 -769064806 -669747864 --895846520 -581453730 --859624340 -720930203 -55848592 -441794571 --966897065 -702079196 -718574320 -509517713 -172949401 -51502636 --104400363 -204007261 -787663597 -485668247 -364666064 --174012082 -395217258 -543710635 -194792114 -161925756 --769846009 -772295743 -437263320 -799479049 -430011640 -385530348 -67610696 -26626491 --320269550 -561699692 --695834752 -309835000 --126461643 -238628473 -165761788 --895608732 -563344980 --47695389 -594001533 -114866885 -543544364 --423701074 -258633200 --22566843 -612373540 -89296497 -802064932 -456236283 -37573423 --64404597 -572123881 -863621054 -600880797 --662311490 -756276866 -863183974 --303338000 -912941190 -984795064 -658797612 --232928553 -769079766 -896872179 -768373309 -193437416 -511006199 -790773778 --276203477 -558806536 -533703022 -959829771 -467260917 -124096806 -620580223 -418461932 --582399294 -638253958 -827763630 -753025402 -16635337 -537878896 -820828282 --443846735 -423062102 -243328732 -300484902 -50074516 --792341783 -108704145 --112739624 -768241594 --625477959 -917700355 -602838491 -484483892 --315120242 -923436527 -302503287 --498609570 -720936415 --649725503 -583002586 -465005962 -625409626 -743423954 --192593184 -165434939 -712778292 -176048909 -727352330 -657891482 -154217801 --38181673 -227846151 -779505152 -631906716 -795330695 -817053033 -30867348 --289595461 -765354050 -729786577 -782777727 -807236290 --316082683 -220305860 -907383240 --414073275 -244056753 -630056856 -617150086 -205592775 -847665611 --99821592 -401454031 --938823969 -338610155 --97727344 -559545130 -396846436 --643974816 -374601516 --307292426 -742420685 -962096213 -448773970 -109061372 -266955759 -239700730 -781952632 -481664893 -459273779 -419744964 -499951140 -290768009 -847646759 -590183459 -238055203 -417548900 -809154935 -467602894 -349267023 --287670164 -563410424 -994779173 -257280378 -714187998 --583160554 -788443585 --831970365 -461911934 --729944591 -610754703 -503891851 -571730129 --663016298 -346269988 -338376297 --327976437 -252707783 -233667327 -917744458 --873919699 -474325223 --372720917 -283408256 -95967403 -697298499 -602115519 -751048056 -407049758 -143594658 -455320102 -501162558 -112509049 -179233060 --308610296 -936280853 -670097474 -126492876 --823918482 -114566295 -55813238 --351509876 -770638557 -904131799 --564672762 -516478292 -197643926 -454550303 -733598687 -835371687 -18573473 -885318222 -712097953 -967904247 -272997099 -109975587 -628995604 -89258209 -162272560 --272145286 -971219653 -346180677 --558024532 -671183169 --371736075 -718156402 -459008360 --711099187 -591554084 -243188618 -24487497 --341458175 -94232615 -989497090 -927246953 -735820268 -16840783 -99121857 -243292770 -869669985 -344813611 -902129229 -829087474 -781013735 -813754118 -284154563 --705675617 -822309874 -877028418 -780973552 -830669243 --286754671 -992487513 -432702803 -736753265 -544082826 -5668384 -87707415 --808294850 -461105353 -981678393 -682022455 --221709179 -261747773 --768373309 -980308265 -647781213 -610611457 -705397496 -735451874 --187897831 -796389477 -350058277 -875480500 -425221493 --392487168 -806089906 --799133991 -173299488 -230141196 --502601110 -248680823 --590749693 -410660379 -55031934 -270700034 -600364427 -828276198 -427723203 -557875504 -726388565 --687424408 -149178143 -754666728 --381509257 -337548129 -741469381 --103270543 -239823611 -150635735 --196300555 -705889629 --721430555 -53269917 -91488480 --373880826 -96337278 --179189953 -804338786 -173714768 --293340160 -921873505 -965005743 -510667891 -288457853 -974447253 -823478109 --20330826 -245774916 --622631195 -7125389 -867880933 -627682453 -900504896 -434161606 -247619133 --648558907 -491336427 --823188323 -520782205 --640564173 -749434203 -631304766 --810231917 -37860136 -180464417 -216657956 -906416673 --47431734 -349575761 --820828282 -853884880 -386388532 -459007252 --166340030 -205109649 -892130331 --185105342 -206500226 --300471318 -712662587 -130986974 -33508729 --999461114 -817051038 -370871685 -701722331 -257978255 -993618560 --803627416 -843351412 -71910473 -541285464 -570402623 --145765687 -241099191 -187775609 -70180747 -513221055 -204622290 -633750108 --199823193 -233729461 -116256384 -150864692 -119518027 -107948161 -325118123 --94156377 -161351397 -427944540 -248317557 --752850406 -762424886 --209765239 -693775048 --12457027 -298454056 -413207922 -654177133 -22521527 -29614359 -617976963 -18229713 --355143948 -664865539 -976154751 -970592483 -758740145 -483226503 -414508069 --111459209 -829024961 --908645263 -620681342 -149077615 --205196662 -413977730 --941060587 -282729797 -192816913 -534682690 -164172202 -570089096 -715571865 -431098425 -75527779 --502968558 -44417200 -879125427 -712016958 -723224753 --705431442 -687758322 -710305644 --526177341 -919416565 -193162759 -151013617 -224714987 --22532968 -681592330 -956610736 --882622673 -94348879 -978821691 -358970171 -489537422 -558711081 --17722668 -409554842 -545500039 -935825304 -100453383 -957622345 -427096226 -280629120 -38874441 --724656762 -573169662 -944580889 -619622140 -558649993 -883830186 -668086038 -394692965 --790773778 -263283882 -518397580 -124037007 -163755207 -513560834 -91069349 -180022194 --770695689 -938859531 -739944266 -420154304 --701360423 -280370523 -440472497 -686117541 -941420033 --337210496 -643266294 --87006140 -81438606 -927217873 -815659292 -167470858 --671691563 -959187818 --950454731 -907379401 --808859760 -483838884 --370224598 -540682155 -724581774 -631440959 -795849261 -864470993 -858716226 -184085550 -469728764 -66682005 -562227128 --620537711 -606777559 -251524591 -695721845 -933470745 -463542976 -93419000 -905358031 --183462520 -578317389 --279796572 -91425098 -338576724 -504987108 -109915856 -916057039 -165465831 -479106582 --60094973 -460408953 --346869833 -37091970 --596023238 -397360873 --672630590 -957090807 -470362213 -935819154 -135531129 -242456704 -205584460 -440925451 -544092734 -295060730 -81720683 -509195616 -861114293 -964543273 --46585130 -685814385 --904705151 -242857824 -64398214 -421453726 --316928142 -409444403 -982583738 --589866543 -987778254 -7596970 -706737130 --657106460 -203608515 --531554787 -304230295 -701520034 --760125178 -208486566 -482977536 -544616784 --532568116 -910375951 -386916533 -784815311 -289456581 --530693247 -503747721 -387477106 -839239918 --542886765 -60786858 -575757563 --914126175 -15783648 -682321719 -825709675 -549969738 -674982322 -162888895 --108602164 -694492063 -242688184 -292272938 -156070298 -938529396 -690936983 -633197852 -284542443 --150156327 -144675431 -323016671 -930709569 -594142904 -216736980 -484928976 -692794230 -961744799 -628539907 --453714371 -466831046 -690961083 -547271837 -294060357 --228855853 -763308766 -718591094 -490060672 --387764155 -43199924 --849107152 -50100182 --65902091 -518664866 -811994656 -623368834 -618886574 -535120573 -944936193 -2936095 -855811876 -595010269 -157401353 --432980939 -164869923 -821033511 -540380536 -185054416 --48533500 -360352631 --245856658 -722387391 --659188332 -778685 --707741302 -522908411 -172827275 -60266765 -703362372 -914857729 -906896659 --438468594 -892974202 -889271876 -95124662 --272871526 -308482423 -483790437 -32468609 --695942068 -500545897 -521525045 --726863686 -329263681 -474584278 --853153099 -637680606 -517863263 -113427226 -281467700 -422343376 -222173057 -518119859 -946802329 --939643642 -980785457 --425771792 -224616773 -540844038 -932890604 -120962338 --859979728 -506729025 -981792702 -247526901 -682318375 -952493667 -771320039 --102495037 -504211857 -678378396 --528105476 -462946971 -39267500 -565657596 -121120405 -922537808 -278357936 -346764798 -719711099 -181393530 -796912951 -903041429 -757926892 -589278692 -53207843 -888349199 --423966729 -501255391 --52871554 -807855454 -283734711 -587887299 -989524919 -490113772 -293626550 --550551102 -912251884 -94801539 -42882172 -707273501 -580943394 --631896417 -803062360 -155380457 -687785192 -344972753 -281686027 -39236547 -902060833 -780318855 --182610687 -792903113 -172926277 -282147693 -115549389 -583720064 -185621596 --223855988 -609894104 -685103769 -400475585 --554230591 -869227025 -145039477 --793346760 -879276848 -461860441 -531523088 -950735159 -975780461 -635270203 -521037878 --329178758 -799908840 -950905307 --503474514 -968589178 -578589186 --751267904 -269285542 -767381784 -334825223 -866865333 -566943312 -428591088 -243581263 --633112894 -869355010 -403496588 -951361658 --839959910 -86541608 --715647033 -879885254 -41720419 -647451187 -37132561 -74550084 --287199388 -236064954 -832131146 --381198308 -402173549 --6273924 -728629688 -438025153 -102189497 --340932195 -88595788 --855491259 -695088066 -320225750 -547275230 -193748417 -271378187 -205916495 -538594922 -652280100 -678012547 -848428805 -384349187 -268429687 -339166587 -430255381 -258786133 -304458332 -878704783 -351329898 --169599872 -497375132 -294615232 -387327519 -556499621 --398809049 -954928888 --566893346 -184036534 --733142261 -35142127 -56752098 --520715669 -905791798 -437677147 -333392060 -408025955 -67870348 -70372815 -950026791 --152029693 -915317468 -144113015 -807633589 -616023218 -968321818 -499964972 --548336232 -32590163 -643272640 --317662064 -543338697 -491240412 -646600820 --361414853 -164493084 --795849261 -241363265 -111508021 -231192063 -259676488 -443123584 -896877227 -334949352 -907305996 -598123136 --505143150 -247635433 -14711478 --220201586 -279132104 -865986580 -829583537 -238820766 --907360362 -400435768 -517750508 -115168057 -301212752 -559139688 -165190220 -711369861 -248837439 -131464660 -819373113 -931780585 --252647836 -440915919 -536065784 -432625344 -142904597 -404990524 --849854086 -542652387 -165552424 --537937864 -402521264 -163307149 --609028651 -586114538 --297214188 -101418525 --109919493 -833800024 -482483171 --968340857 -376529035 --594194269 -618498164 -840902056 -408605110 -465204522 --22363141 -341485144 --370871685 -667644609 --120752307 -560467428 -786977917 -650870398 -872226902 -661801781 -606932551 -530434961 -537808094 --269861106 -9841157 -581878804 -564986189 -321790442 --597992670 -462165651 -269949711 -334518921 -975508558 --170598842 -896045097 -791786396 -274041156 --425697017 -603035875 -534216296 -443389577 -753277243 -869009682 -552603113 --832035887 -5413932 --634087018 -739416989 -972648058 -939618960 -665712787 --523522599 -100359092 --269108299 -8962285 -654712759 -823025548 --509444298 -93427019 -570050220 --39059671 -251559409 --916680671 -114576466 -154285342 -473669363 -77992672 -753228458 -938547000 -392462879 -377771206 -85260312 --721709563 -976680202 -868914333 --921316796 -153038509 -922353804 -481662748 -765684645 -239670906 -529211267 -310103293 -482768790 -487072849 -339013074 -167208477 -18420970 -922885758 --812419086 -175853513 --291744970 -992070668 --690953491 -969654612 --94414249 -532337827 --349205697 -303284645 -30556229 -976117556 -115844489 -869465287 -658002183 -897407729 --946196887 -682862670 --537808094 -823513604 -244228064 -476493992 -918434685 -244136409 -151651959 -923880620 -857912977 -879612152 -892223626 -259841047 -510387945 -43118672 -360282224 -882143801 --550657583 -240146093 --407075431 -741734426 --141693510 -160804145 --513918469 -268619456 -664790242 -98238329 --28120413 -641695159 -188814351 -244328170 -708162347 -619776264 -288893396 -758084677 -847996903 -407698025 --18573473 -369503474 --969929474 -959154924 -916853062 -649557244 -655196664 -578940202 --49253665 -278039529 -851190219 -510146580 -940791064 --122220517 -801661135 -982156540 --725185014 -369412183 -317080478 -320613750 -165028413 --77974773 -351431097 --758019922 -852426803 -826952644 -830568363 -938764105 --529507620 -76732637 -746502826 -258779828 -458913261 -135242448 --2976792 -272005091 --167759479 -724091333 --780450574 -690128599 -583484468 -612636335 -687365802 -400855405 --417901424 -232210427 -755839857 -872698042 --46147420 -11588180 --892130331 -102652991 --945939590 -839015427 --674424998 -538362949 --19794701 -419003135 -316705348 -936886676 -616919045 -348976381 -362001301 --745157274 -435148004 -68773960 -118010724 -176407593 -202359166 --190544499 -655453651 --192745058 -499881991 -757855180 -480131673 --142590633 -860940530 --305068536 -740925376 -273667038 -38321470 -489371686 -820982195 -698729136 --794384684 -303163374 --168429314 -741954198 -805010452 -816643362 -58868946 -554132462 -600882739 --502483748 -714549289 --791589448 -795894207 --513724192 -194692645 -272037081 --701404229 -710866265 --353695658 -884211020 --994056099 -380674286 -530019771 -440371072 --214851917 -706816925 -939759922 -339573778 -812753466 -695025930 -501633232 --541863099 -519983778 --818691368 -560008387 -711245311 --99006377 -414361573 -246830546 --27727625 -65225643 -847909323 --498139754 -584089025 -74587682 -481512285 --622371385 -706291965 --197763792 -564452524 --944324649 -298547622 -224969087 --845387588 -278369527 --738701212 -479048078 -143062571 -926878399 -758185366 -28406760 --601846761 -433198115 --465774108 -4706255 -570623339 -972049054 -729663960 -249433473 -12553995 --276721309 -37841465 -60268372 -36261057 -896845709 -670830066 -661890745 -665866587 -744201780 -195611798 -427130435 -940641955 -877275309 --166179840 -527918864 -998731412 -999535044 --428998246 -239443979 --692282327 -437319636 -134160914 -542200906 -236701650 -345157340 -517475450 -378337700 -41518499 -696357312 -321203825 -340210234 -456730029 --587709615 -111319630 -436427315 --459885201 -894373931 --180570674 -263338797 -523358349 -915926628 --349293089 -453232234 -437306212 --747187798 -154659944 -663398435 --912941190 -655137724 --654156849 -47645550 --179249991 -155339197 -892327278 -337241241 -434028370 -229453943 -930895734 -612299642 --207690448 -649341237 -21518872 -200962380 -457360944 --519558536 -254970366 -837214703 --115384705 -543630998 -58162970 --747423568 -457855705 -13347866 -947611447 --75491586 -920735999 -38335964 -804866455 -429579417 --762635170 -300237787 -181917348 -627903960 --625466212 -151364 --151353329 -991353810 -593617221 -677461261 -936826744 --96057967 -500562062 -643169953 -608185455 --710225217 -395615879 -330925812 --248178432 -979973436 -790213332 -738657591 -817099811 -503916177 --415602160 -365909646 -806310080 -361824075 -220907792 -798934517 -536384393 -669488509 -342481853 -143981770 -444747492 -333293791 -301779411 -1874171 --993621223 -317639419 -621735124 -675744783 -523559121 --885947526 -184000683 --417694181 -198317046 -712105014 -892624075 -608795524 --859795586 -831815193 -256109728 --220245167 -364007208 -774304568 --212929355 -313815352 -623999764 -513167370 --630272265 -921403348 -272854401 --471866051 -746154376 --428674221 -701737165 -64272382 -279249650 -378933554 -891830055 -840792666 -22361791 -326387795 -810383517 --636381695 -127003805 --298703102 -771419397 -750488017 -304546446 -435669916 -895890022 -5508843 -594900668 --80268821 -701009509 -763428396 -673586957 --10987453 -781558661 -919730754 -20317470 --403748163 -589715437 --80627398 -779808331 -517840379 -792718823 -807654266 -315642096 -339272360 -200369272 -149128119 -742991141 -818233497 --712826121 -452021788 -263394446 -806359686 --856586452 -258717722 -792605127 --606513617 -368708557 -733105299 --128511091 -647399603 --151710379 -93746023 -289511252 --142281804 -943929832 --538293806 -673597510 --819576583 -210180897 --814530076 -346858952 -734341524 -491769449 -138035981 --796159051 -798724294 --279315685 -561980875 -961982761 -677659656 -824417889 -816276099 -131834643 -260537246 -636771642 --914857729 -467084389 -245105485 -200384371 --103361083 -204964452 -594382574 -87664878 --394507549 -423639174 -688854248 --579712497 -514096489 -581535822 -870265208 -467307836 --941345403 -570131316 --76697221 -78954218 --565984373 -579261566 -381978720 -788625378 -371584872 -324998334 --46410084 -544875013 -706754760 -712524664 -408517623 -10890961 -787614684 -250545228 -928326914 --421347844 -420130724 -353040800 -857211164 -321485795 -804784362 --908445939 -832833797 -319120221 -191213905 --113864144 -79060594 --795910759 -236416470 -421533126 -244151254 --165830113 -186866298 -951555540 -625504001 -236317912 -247220219 -694999098 -203584391 -282834816 -777820150 -833419894 --473697075 -193227450 -636740939 -803911348 --924661423 -529885630 --786961727 -198565051 -349072030 -406463726 --56880929 -715586706 -905255498 --755193692 -923995502 --517713257 -236375668 -448026275 --742991141 -520935308 --352664351 -113827301 --507438741 -324781865 -122039291 -111337151 -501699365 -241638200 -585858411 -499635695 --199541984 -163156719 -506756294 --706989956 -623791032 -976514353 -406156787 --260537246 -988521443 -280873890 -341107917 -283857054 -758230146 --341959625 -15661291 -445273340 -902018988 -722055778 -799605917 -823432068 -939392471 -256682625 --965833984 -564425014 -763185337 -84302317 -550526931 -555195921 --645464939 -300318609 -334194297 -964795864 -917025874 -576965803 --148866423 -778686173 -84126191 -499402866 --304730624 -16077815 -359207943 -235356075 --585250782 -439817743 -468799427 --682727882 -922754812 -354524419 -389284663 -867730363 --507622529 -823073830 -81837522 -974461331 --695361479 -867656121 --29719679 -288069121 -967325119 --470890407 -295604955 -988161183 -818952377 -5162659 --433360023 -796514925 -25259848 -811871508 --240797817 -699199604 -944504872 -669500527 -405247013 -640223923 -474766503 -529452266 -435426255 -512410936 -636471021 -781592311 -165638672 -612823725 -707458507 -462274991 -651091702 --307901855 -816426804 -187059047 -728494672 -852911218 -212275389 -850533248 -522437079 -783925075 --641190472 -881078272 -248528125 -193474583 -243199231 --693845252 -850630194 -711523190 -359633560 --311711674 -547895915 -700426407 -692626297 -226964543 -213332359 -337556387 -334873976 -317278391 -206242196 -861640371 --434215763 -7931185 -546733569 --112652075 -846391085 -487731583 -922918198 -95721611 -542834261 -653337503 -896157616 -814246406 --293626550 -168784870 --522784589 -956724437 -55130679 -605281913 -352124188 -851180659 --93306143 -835117227 -991293665 --482876659 -371046908 -317669958 -489046146 -147895992 -626065892 --261367184 -615873008 -271255088 --511669659 -642752725 -875931133 -36753808 -896874158 -821269609 -219606286 -871508370 --538824573 -247515236 -797077164 --794718463 -576607163 -8821936 --745267189 -196527541 -714411992 -147608152 --403831496 -540628715 --266005984 -404150838 -177601822 --224774910 -23721194 --932936183 -787059663 -892408305 --223231109 -736035059 -200929636 --850875574 -688961034 --679334792 -956240395 -734275472 -327368367 -941945269 -406887995 --939148897 -499527024 --799605917 -742599482 --516242221 -996428463 -106403105 -985156705 -769901468 -954704139 -600652140 -142827038 -276479844 --326157113 -984913750 --13280259 -917289106 -431802369 --73806708 -860505903 -371052012 -272588214 -963477810 -138960940 --295164502 -386046920 -925633416 -732721817 --581180069 -84871737 -801115330 --949632631 -810627480 --143928959 -822787124 -705569332 -848946715 -155247251 -227923252 --421910607 -616043177 -457514989 -107407924 --849790604 -671556660 -175372583 -951407329 -850554218 --592353984 -700358740 -200809270 -807899223 -213011513 -874881804 -142717724 -428415418 -370475723 -942643497 -666143314 -840578599 -429232046 -636524845 -388014690 -770642492 -519648132 -911401858 -238247899 -653481132 -95142657 -270275252 -980941281 --410894670 -934777051 -229182004 -318909348 --281349962 -775457853 -80567763 -943480077 -364201075 -454102064 -259966397 --345809225 -983328393 -380902764 -739030517 -661129203 --328056210 -310925084 -419740217 -580675235 --578563702 -210524785 -31823605 -700697854 -221357947 -527241248 -666749623 -623696576 -420895273 -447592684 --915495886 -419668114 -371931290 -316557668 -569044170 -835519270 -73751398 -821331369 -189032937 -888922831 -306242236 -216032034 --932552500 -186609459 -87970510 -320675633 -364228636 -369616715 -680697649 -334552132 -715312263 --308863259 -499680903 --957752178 -557407709 -754839741 --492965842 -573016061 -836862299 --944333638 -142762638 -701382394 -795639530 --768486334 -174832981 -885457110 -487648218 -612573332 -233912853 -636505571 --735302950 -763991565 -338022952 -720323421 -873886167 --394459124 -284039474 -170372755 -466839218 -303150708 --816276099 -409245638 -364815769 -898292449 --370141033 -390545751 -634633877 --577876416 -382714760 -259025002 -509864841 -714065404 -96804902 --629953390 -87897291 -263384701 -806515846 -587961609 -628002998 -958387133 -120700326 --682523125 -613006733 -378902514 -120887284 --50462583 -697221921 -218875925 -971313121 -946616072 -855506421 --974399930 -835381117 -62162595 --431479961 -961257357 -251395872 -583427861 -793598771 -168461028 --298896745 -642380448 --488108760 -655486470 -994319148 -664675054 -353722814 -175958840 --719114457 -46969879 -349862724 -172883584 -999686199 -471253974 --657865899 -175220767 --104737003 -153127902 --767660121 -105725145 -737466798 -21736456 -563704838 -257960221 -495784429 -422351702 --716074370 -477406369 --770607264 -581025031 -430941038 -552735145 -861593283 -425925125 -497229724 -655236183 -2215190 -360727064 -487371417 -840392320 -795571217 -668798458 -843041260 -794744764 --890273081 -256511490 -537879960 -21953968 -173147625 --636510143 -464199272 -503539512 --600183889 -342508092 --831043756 -560168821 -344424352 -824643452 --155857463 -123223497 -932486463 --796514925 -229109278 -898818714 -60076118 --383652771 -447089386 --372025851 -986173378 -129558015 -288712424 -349790581 -676428728 -386007401 -921356656 -85564458 -677828627 -79823407 --306364431 -775424761 -618769203 -594434940 -68473821 -234632491 -521165018 -258587934 -82004800 -154937590 -914079856 -619001984 -889816148 -769366941 -513045857 -295533635 -783114540 -47059800 -823648369 -781999873 --628364990 -327216991 --452789351 -560001503 --543357302 -750276970 -978938689 --336503139 -99142715 -636992454 -676342249 -929635586 -95880311 -114195106 -204251466 -222492792 -699003175 -873429493 -955522276 --26857592 -876899551 --167001986 -818018986 -846114580 --489189200 -776922283 --61768132 -76942172 -445817353 -724677839 -776789008 --377380618 -981363251 -250722212 --382629499 -520648753 --873564182 -983184022 --334768276 -379853783 --300231127 -377348361 --838397823 -390218323 -634321397 --958460382 -380584621 -787892600 -655235048 -355498007 --1693870 -50141135 -569809048 -96718305 -908141202 -693255615 -22224237 -767667784 -901593397 -279077140 -198428814 -501390936 --87897291 -651324732 --730857736 -973949564 -191754206 --812736266 -208828224 --856679851 -124854155 -771730056 -553357170 -547379369 -424097522 -152683147 -172850573 -227388711 -133982131 --511578151 -593457114 -326257523 --886329362 -923481142 -998541585 --600858982 -898058567 -856281701 -23384213 -148406414 -281055168 -738824038 -661094997 -526961660 --479842061 -14780651 --397944138 -330247930 -571395567 -401204322 -265826014 -932434491 -284242026 -331196518 --45534644 -625536119 -32654425 -58068220 -528530723 --801070817 -427167191 -351968421 -712405372 -880251504 --316753599 -628227477 -566528286 -964934102 -16170912 -580354485 -264080494 -286989926 -854669949 -623650568 -590492139 --806820951 -211364339 -159315978 -257227347 -546721339 -349258001 -955990386 -647199853 --929450020 -203556362 --329271686 -742816299 --487659152 -212351878 -874831467 -764828665 -105045898 -323603442 -764482482 --141023108 -190613872 -957282267 -770810447 --330866901 -940581121 --181049606 -134767820 -551689951 -891526883 --825852868 -665762102 -980093886 --94699131 -14272236 -812772587 --855506421 -397509114 -968229973 -686425194 -427331990 -140360131 --421939920 -113498253 --458754844 -251238063 --482768790 -369186698 -131508696 -74356172 -312986210 -983164444 -694681219 -581137936 --311777615 -830998484 -922188648 --545350557 -380677502 -940784812 --35761851 -326040342 -606674228 -459477845 -67255613 --898847862 -288219858 --286270347 -222208671 -569571813 -382255330 -813708871 --335469748 -827117532 -969539709 -246780715 -456589486 -181139134 --981792702 -929954539 -531210134 -696907569 -9508137 -211066824 --367730207 -116423654 -101206317 -865507559 -136797930 -472713605 -429609025 --137329149 -33772732 -177724832 -214206879 --390953094 -506769826 -375448977 --460483287 -787972256 -428338141 --9875691 -50905945 -942735763 --930345219 -291694163 -380594363 --14256320 -196749130 --500218826 -658476053 --329067274 -658671030 -415125142 -834952037 -972841924 --777998184 -878032766 --648741806 -742132932 --757885078 -271341095 -897439103 -694661790 --101887120 -420797631 -612656586 -102744340 -228060298 --97481028 -455851413 --440606474 -757543842 -874528203 -13749111 -606412463 -307399738 --474284727 -368315990 -900311588 -848495990 -749596516 -710966030 -999939948 --854064266 -198177171 -51778601 --226153183 -444254579 -102874007 --862262200 -478746877 -325093554 -524971797 -815271901 -53733084 -64215000 --175853513 -712233824 -874278382 --918802974 -834119472 --712383943 -699490018 --406044311 -100441937 -891766524 -567087442 -920492140 -781068108 -986573132 -890150028 --458322040 -840558374 -409261591 --32960271 -788340860 -423384057 --171647785 -917692415 -830035180 -418818360 -558428581 -425450911 -119804560 --721328798 -47106202 -34412322 -674757561 -230683090 -782059591 --892341746 -961855620 -61219459 -864946018 -296178499 -846751192 -543408555 --769965203 -930332576 -632498720 --3057982 -82407653 -491210145 -190345716 -214374909 -81500451 --790213332 -944662735 -877880488 --661173646 -277882304 --145762397 -865695628 -492648553 --142312410 -844768855 --796949846 -127800013 -549623116 --675402073 -101217153 --946599519 -353869720 -851629449 -865198379 -879913545 -908660106 --662558589 -723769444 -651358635 --186990349 -564712556 --586811726 -291658899 -248769114 -833645318 --284090902 -97615036 -89265505 -245913745 --982121143 -19812607 -179437883 -421108718 -831813934 -741891002 -678647713 -615490739 --7902295 -353231650 -259072084 -281957399 -572478965 -94324779 --468649306 -862111671 -12438149 --56786475 -460478145 --397653947 -927565209 -218756741 -701296604 -590564198 -751857893 -29655865 --867416686 -763967449 -124466525 -533832225 -490041765 -776474332 -572674200 --972748580 -702281126 -49506808 --411097541 -252076620 --668013633 -170712289 -24773049 -168249625 -265556545 --160891326 -35246496 -154082642 --896530297 -265102383 -113744557 --815659292 -563268921 -40953661 -717077755 -98230184 -833401098 -907558274 -136692473 -933886295 --564965647 -29189874 -507245458 -430516099 -376523123 -605605890 -996441430 --531568480 -834410272 -11444355 -760559960 -33098592 -742081703 -638500294 -167070045 -282596841 -991697440 -870446656 -11555827 -508577529 -62221527 --136727083 -471022650 --301006451 -490594096 -408965402 -476947 --415260870 -787281202 -368773540 --556888721 -118958018 -861982823 -288913260 --576463951 -816663358 -589306640 --455245963 -866669198 -438281624 --509516715 -382022088 --764368549 -196412081 -487385693 --574403944 -47504924 -424809259 -499278412 -155580952 --807964239 -680235378 -524217961 --12624981 -696798660 -984831339 --826070275 -272665337 --509101125 -480622475 -698504075 --116851434 -825164022 -710739384 -284000528 -278522808 -855203668 --99389819 -108714998 -42551015 --181556931 -18098219 --996697810 -200112110 -626394976 -340359562 -177001788 -526739749 --56493858 -822994391 -108882387 -693378018 -479174104 -556973286 -628132158 -54532560 -58244534 -604616375 -562100705 --608407455 -791112462 -124908944 --860086646 -311865971 -521167780 --274330378 -803051779 -279641137 --671183169 -480021342 --805827435 -275164760 -549555353 -579485939 --31830692 -512099285 -562709901 -610324968 --785569493 -973384770 -913106434 -697357213 --694697408 -337730367 --755983882 -878274712 -67699918 -173016286 --562600051 -822229348 -593461922 --316547035 -454765116 -785903684 -706952666 --563505402 -504244881 -891129528 -904681166 --537350961 -506528908 -244375884 -664980870 -995063356 -928116048 -577224904 -481193977 -387133247 --701070524 -404513516 -183809087 -37354519 --144554255 -409369793 --466484102 -27313571 --212734437 -96020508 -216805639 --254659654 -882674236 -411947452 --36753808 -99191953 --640534141 -214935671 --897743731 -602480213 --78920542 -646468972 -622958944 -234549534 --861811709 -579095701 -111619632 -303343087 --207596352 -116066915 -812319434 --184575878 -621053894 -816023835 -933936086 -738738205 --387133247 -678491534 -501555771 -675719144 -496018295 -778188740 -132197377 -116602903 -386067123 -483534940 -436129569 -822363457 --175958840 -830931411 -219126974 -74329775 --691637599 -230779038 -773619853 -104928820 --539448270 -199503205 -486779455 -206589303 -610207902 -655307926 -25530435 -91819462 -981130434 -537257153 -256144041 -490977879 -794231264 -730477205 --518462614 -8877180 -341276851 -304187042 -537221391 -27079333 --96376727 -852197826 -158957395 -23972512 -205281618 --186886356 -47674133 -36209225 -482645273 --46803310 -276795958 --700587652 -966372315 -725128865 -849657573 -264898748 --777145243 -993691050 -154889848 --983653313 -456563967 -59533614 -649721191 --77770578 -355015506 -259011473 -826356011 -189680692 --859328125 -713091692 -136996000 -495129661 -705339304 -325061647 -938693773 -459181459 -736418009 -457717442 --173016940 -918778172 -609086966 -919864286 -400144515 -333218948 -681437799 --270325801 -292171843 -412885381 -933915495 --201715600 -288443192 -872591734 -289041564 -297794518 -669573987 -720918850 -665190406 -877191627 -654290136 -251718241 -686730070 -724714860 -743546305 -222827291 -126706411 --818952377 -134575743 -15424891 -215203954 --603874873 -682083330 -733026972 --930706957 -570874998 -151432424 -892646923 --580971075 -105785095 -295311555 -486422485 -409117236 -652208929 -169518115 --415133880 -257375129 --868249893 -739012824 -302856454 -361818149 -914316964 --989332016 -138804894 --99077678 -696010442 -404946215 -730057026 -880690360 --159946322 -933091827 -844219710 -556806124 -863529997 -102679011 -868089394 -808554775 -186156427 -367041049 -556956399 -854461627 -775501999 -573953624 -900151465 -666504685 -826248690 -752841622 --332703243 -499776343 --94232615 -166072028 -333678941 -763002617 -130559249 -487753369 --660635254 -936771209 -715886174 -947264569 -730414770 -728890602 -939513288 -207991245 --195718604 -929510604 --214156418 -178369149 -259674303 -522388964 --210355885 -567883385 --968062328 -57049627 --863952613 -395976939 -637227062 -693932219 --960511515 -325565656 -704550164 -739079767 --89748568 -801995948 --803153092 -790359330 -282778919 --149399476 -865580078 -501285658 --201570746 -687325046 -288995732 --131419074 -133350819 -954486803 -982463409 -408884709 --690679685 -358468384 --357812689 -789890176 -70847430 -258609699 -974850816 --502101979 -298990582 --357944443 -39971062 -923750192 --327484238 -571597025 -687504015 -295073524 -335885611 --934169687 -175699133 --107407924 -11558341 -607320762 --392756509 -596802285 --621404218 -51515109 -91072008 -669573005 -663112246 -433591184 -825464905 -659743600 -378198919 -708127544 -407495131 -980228221 -980178228 -223211472 --180548459 -117502926 -971807719 -62931108 -730900327 -617675784 -927557214 -885371022 -463678723 -912953592 --195335351 -157253721 -562532781 -612608842 --374890399 -816406837 -538929821 --994863396 -335618655 -176218541 -700933997 -372263024 -739601731 --671713987 -270167787 -160345428 -885970986 -26693946 -915853188 -940574251 --410427293 -394813964 -841970919 --886524518 -442358287 -236285930 -866279917 -67079516 --650336630 -585112724 -520773329 -535814652 -180101241 -934189033 -339154057 -578003167 -589942808 -519511138 -682091516 -989953185 -520448634 -532862644 -957280028 -290422029 -549198105 -650510775 -68438931 -619112951 --984635276 -687201084 -748097633 -633063646 -898021139 --167825935 -76500322 -660400581 -863177921 --675242828 -168812419 -558808275 --286073469 -645438557 --908618870 -258308746 --719418658 -811821398 --328618648 -902755464 -262846199 --526010954 -103538016 -687656774 --223746367 -558835714 --840806680 -297934005 -466243529 -715532999 -310264998 --340039518 -274831762 -65276574 -781749213 -604646438 -534408553 --446643363 -70846280 -323773331 -807121101 -287396091 -428540076 -559955912 --942891145 -517294756 -839765329 --665026834 -829686258 -147238116 -562296527 -693089421 -343767784 --339013074 -845402953 --982017091 -572623967 -337958705 -268313625 -876483650 -520083387 -231286784 -711624937 --843129783 -475943946 --534914965 -670246787 -181399541 -40159983 -679250260 --656542580 -676088348 -929446787 -807782579 -302502072 -726784843 -16091785 -809904892 --360887326 -558334769 -973153192 -52369724 --722387391 -707686245 -951757339 -907059318 -245755511 --649271645 -953958815 -646058966 -17481542 --371555472 -96534521 -212617446 -384851893 -637650147 -805786047 -47268385 -679917747 --483054491 -956142736 -886796645 --373235541 -388456657 -634450744 --337241241 -18129808 -479870567 --177075509 -110011034 -677617283 --815545826 -652137583 -837212929 -780317028 -270603742 --157598664 -137437415 --941221933 -694515577 --155380457 -793581871 -849039641 -813078389 -619415139 --422552044 -995013096 -489662363 -84269960 --870150107 -418087377 -828080695 -344821339 --702438015 -892414490 -379994779 --584836317 -412966731 --720179243 -287216730 -997953713 --691135164 -423612660 --282358973 -51812294 -70485799 -736976932 -506438901 --147466116 -270840297 -902671452 --574337615 -928544221 -974865272 -252735316 -641110612 --508652156 -561155370 --725605834 -413153745 -343925345 -868877175 -964753887 --779991902 -241121055 -701571662 -349055721 -266120178 --262348471 -318163147 --579041317 -652706187 -712544360 --712662587 -936029548 --941127884 -52147804 -655417876 --266955759 -660000191 -715377481 -29494097 --652537584 -350114710 -826695009 --742229305 -368911061 --733639202 -653381596 -308057580 --453626684 -841779744 -637091073 -108791749 -345451273 --424452058 -23397466 -171346324 -589670323 -599295381 -608547084 --324576326 -229397371 -473755214 -47608035 -659730680 -277260885 --682582345 -906088030 --463678723 -562139485 --781255394 -950813052 -516918132 -344081740 -822879893 --690554565 -134802612 -599973377 --303229417 -997520310 -295352749 --413977730 -3603118 -549689785 -808062353 -956211522 -582984942 --692751847 -982913494 -288127957 -839557919 -401750261 -490782818 -799611172 -553847551 --309551351 -238469817 -237315568 -44739532 --625094881 -964239749 -163726438 -176481448 --102548802 -863637934 --700594290 -793451885 -144853368 -377188907 -999686065 -606766845 -170267070 -899848709 -107579138 --499278412 -993021627 --291546718 -883905112 --966667391 -389414507 --677013864 -82276348 --783830632 -236547718 -650751408 -194506789 --474276392 -396478028 --259998218 -201346734 -976721335 -567113333 -688358860 --918531299 -725121151 --193996343 -300166810 -251008936 -450826292 -409974228 -389702980 --666729746 -412467956 -861277502 -217731372 -727148039 -77656727 --661186626 -638058980 -759147094 -200276480 -78543905 -925650604 -971295691 -736808055 --389454264 -602236078 -545221296 -64212191 --972049054 -807112785 --18409025 -445282470 --606674228 -450763964 -108458249 -305747559 --646139094 -841070356 -644989044 -830626945 -23681476 --541059011 -708572472 --258318999 -460886101 -834081610 --257598014 -462817933 --841446824 -524084848 --711940127 -428759035 -144069803 --219792022 -112924019 -478216384 -233046671 --732393020 -543219203 -16410241 -583992653 -107678514 -864053886 --441673020 -659341105 --648335708 -883774743 --583182600 -534901744 -998633058 -545541333 --341397489 -42092409 -975574277 -976805906 --237888320 -283516759 -203230101 -40568652 -179684071 -208997494 -748770783 --397112886 -746847793 --219033801 -901622252 -669292000 --434392505 -941106047 -660332440 --827414480 -801065696 --239493755 -361099827 -978024266 -665020693 --147281110 -97893874 --290329043 -113776822 --405498975 -303518032 -48314411 -350471883 -4839982 --438848702 -422920091 -605997389 --369451697 -93902895 -114052195 -309255011 -74153547 -516529602 -119658043 -438825807 -920804289 --268619456 -453734054 --169262968 -55937590 -302132112 -389008730 -617169461 -836537819 -771633438 --157801364 -332430407 -676469346 -949125566 --297315287 -552899603 -473727524 -382513275 --817051038 -678068521 -984609893 --713340379 -977869984 -277668250 -275796759 -802198186 -595582394 --863183974 -926061079 -372021164 --835989492 -793179502 -346017666 --997243955 -91462952 --731801645 -902152627 -745558710 -947057917 -159855 --36047483 -57384969 --775789921 -554728375 -497364334 -322485152 -901363225 -108186031 -270546607 -614180635 -765026563 --918594867 -702005554 --875059914 -333282121 -605476620 -239502760 -91520280 -325588665 -429149507 --437259745 -365164587 --654942755 -329616446 -226898149 -618684344 -283022904 --248480568 -669469860 -952592854 -84535712 -60547895 -17791629 -816722535 -16900061 -95806986 -572193206 -48053394 -571708313 -998261450 --101434460 -354622211 -790691265 --606289708 -38295705 -797857381 --209208935 -967380346 --635466490 -453044176 --564713247 -861743745 --17711843 -606189671 -176623830 -491033496 --90765295 -643972439 --804486620 -8169576 -649438137 --68295279 -28758503 -791363714 -346378890 -769057388 --238652713 -427326406 --435377970 -842716967 -766893156 -520630605 -691493371 -141545310 --121737964 -638957941 --171766161 -365955617 -901240334 --221581874 -503763579 --434535915 -169251393 -881727087 --534241307 -366482115 -16851772 -804429978 -852116646 -686214878 -751352894 -940786113 --334145813 -880868985 -61279037 -818465520 -62868418 -383840628 --102739994 -302722945 --623737259 -762892468 --572478965 -255108671 --2868139 -111936617 -479347139 --627127695 -683495084 --708583069 -821293284 --336660452 -709152140 -873633960 -277317773 --959606364 -589602074 -809572150 --456127385 -242110116 -870265964 -730471524 --382314504 -17057426 -558496155 --206397897 -786270363 -578775648 -203282282 -667925850 -538753889 --233284110 -38832350 -550000388 -317260724 -674906838 -852242333 -953081083 -211677843 -975124446 -567945579 --723729727 -308219414 -933017314 -402902927 --582482653 -583060452 --447749587 -468336646 -453394128 -216830652 --856826376 -330965726 -226270093 -928532671 --721904460 -962837043 --21166070 -38213993 -182663853 --832629552 -958564644 --926178778 -248754979 --405160716 -771475391 -928780849 --685814385 -983752852 -971842447 --42904895 -549581733 -399296830 -232467662 -297772737 --444954256 -370048103 --720298691 -616961765 -281685694 -321529019 -423232818 --214406021 -922044435 -458390447 -401572296 -438934399 -827955138 -816005792 -570250813 -181564522 -653356270 --562539244 -192530987 -678877136 -656445151 -399417731 -188753900 --370048103 -206423258 -277021826 --895448542 -752834023 -877136062 -738754365 --247071571 -246916796 --553444667 -427656243 -122033728 -697273195 -21791847 -760636781 -162708575 --130754053 -711470685 --752863094 -191093247 -67729249 -402225537 --545135356 -980974980 --702442501 -121788491 --861640371 -898976596 -978705629 -658338856 --672479994 -693381430 -454059775 --801695789 -503942386 -732337510 -366533452 -623213031 -877483034 -19720199 --256438311 -951585770 -320725371 --123884448 -486809101 -845778824 -875461638 --885444049 -481979145 --95916179 -997703990 --623338653 -308275323 -895514549 -543327344 --810534229 -697573963 -240480115 -910110718 -69221821 -450577043 -179582961 -808208494 -238501495 --947010862 -357974875 -537192461 -540497050 --196346127 -479118651 -439480956 -326548053 -22342054 --837590359 -795804956 -144458462 -111034442 -937359146 --499635695 -91858387 -579509254 -513827094 -854549872 -431670949 -719636886 -830834913 --776139556 -175181738 -23431730 -156126629 -893953888 -714246368 -455412517 --517020701 -610142107 -839597619 -115221180 --333392060 -487077908 --188262270 -780222311 -673906615 --135242448 -118543561 -542181389 -640720107 --744467518 -14273882 -785847448 --367447765 -367429727 --604911360 -909685243 --479427214 -213097692 --484528631 -387425642 -508833598 -237428671 -776075391 -187109781 -580977487 -176820518 -501925380 -520187635 --715218510 -335043708 --723769444 -501449806 -984669211 -544372188 -471464787 -589109433 -575484696 -354353263 --705339304 -390789925 --53860653 -715562315 -329774391 -855942994 -513517705 --68871632 -711811550 -453765201 --951020410 -407879539 -56234252 --289179594 -324881977 -113144096 --36291905 -544854259 -925873292 --450997656 -598930298 -33187702 -689083145 -779146664 -526158700 -175749787 --806515846 -765032250 -177167887 -491062650 -755040994 --534926785 -719031176 -231899760 --773078727 -469938528 --652706187 -656551085 --594568651 -727567653 --20379164 -761184023 --708117920 -983792017 -80995359 -929598945 -997975013 --575940347 -788266297 --878544516 -347136104 --870367487 -797766207 -360361211 --135803493 -147730392 -761971871 -216837283 --139922320 -31607068 -495604261 -339015652 --976879599 -90714284 -517571158 --867938920 -513287953 -227978503 -720568286 --368419548 -663508252 --973093568 -139521820 -747289061 -66121619 -684981823 -643720299 -292393482 -914855749 --571451212 -871553611 -778277977 -554561237 -583490054 -330328297 --622497512 -425526977 --970457083 -191080193 --246698639 -153160952 -856439276 -23925206 -514510551 -145172878 --450595934 -52480137 --613625111 -283035131 --190137560 -50738255 -518338600 -330990945 --825728290 -978458381 -93876367 -646691883 -552222903 --195152460 -408381247 -682825562 --845761780 -741379275 -510376381 -459229697 -43703548 -311485057 -522461435 --642979562 -55079665 --625432529 -999079736 -743561957 --581410565 -770551154 -324217462 -12301975 --408667389 -795079540 -357977982 --529221721 -398579633 --310137426 -146478274 -189654558 -217467288 -189081855 --229397371 -192119277 -272522129 --936100044 -836705421 -691516939 -600508461 --49052953 -932839699 --523484898 -716504725 -677621401 -642783620 --758585983 -698855953 -154362441 -839438350 -542144807 -697290708 --687202890 -727306042 -850499771 -649116425 --787361160 -806092221 -951559735 -323268616 -472366583 --653836531 -792910250 -693885142 --937245087 -148525007 -962603521 -881605684 --518274133 -733044746 -775211840 --542141760 -903638660 --723224753 -664323212 -46068876 -500708944 -622880336 -284122429 -444028749 -447003929 -841921932 -770717173 -370692435 --734625948 -505016995 -518489170 --941945269 -305493958 -945395523 -365157731 --134845180 -431466019 -993702874 -138968668 -552045233 -788684884 -958571375 -708846813 --708924480 -430443642 -500025647 -753596668 -177454361 -733037360 -345656248 -184548525 -14834033 -96088063 -170155459 -876160731 --601256296 -737546932 -972072462 -78934622 --149567290 -664914803 -175017975 --828343513 -519217384 --55102591 -856195986 -928362275 -372527069 -647791129 -330687186 -574781071 --162708575 -176382833 --651516460 -70207178 -96911941 --849164364 -324099939 -600279247 -66275402 --838610301 -838914524 --406656880 -368151754 --612374468 -969486458 -190984980 -959032168 -58004156 -888509937 -104864362 -911249347 --192851323 -764489795 --891125905 -379019706 --808187354 -891561738 -247630437 -863034515 -884275349 -740677732 -99781026 -751364368 -463380646 -648238560 -373263277 -147371519 -330296485 -141216970 -12222356 --246824226 -954929377 -263181424 -546147448 -933175668 -306328393 -386138226 -320651784 -473162452 -200670176 -655846493 --437518617 -354549612 --421263078 -234461578 -914009741 --745317623 -37080721 --803473233 -933385880 -973747600 -228910879 -298968647 -972091057 --184244077 -291683983 -295551400 -664237822 --64254035 -7229558 --177142281 -777108349 -108354032 --189108264 -558534153 -327895304 -756504242 -184235870 --694515577 -590862775 -597117856 -392015232 -558913713 -535778079 -687313002 -531103222 -59332739 -227369549 -554686595 -649127519 -469488099 -986803640 -543143907 -241923386 -686051270 -363479736 -384652257 -231122895 --309878261 -626071633 -723810108 -164859015 -584313664 -210701128 -901353464 -550721444 -701075795 --281415762 -938099595 -556889134 -545132716 --288166232 -151874735 -14332022 --81588523 -878376722 -61630526 -267388523 --445445350 -594733115 -220139898 -416930584 --754424237 -908088635 -2989623 -630251782 -433729992 -614515158 -42851547 -806816987 --180101241 -456660590 -579927535 -493565408 -515946649 -819199979 --214633482 -787462233 -578486531 --941100679 -125604806 -471006391 -692260694 -779507075 -833893013 -148939860 -572712828 -503140891 -907098890 -984199592 -608699535 --120653947 -304558448 --920459012 -835351524 --381905165 -479939796 --636992454 -715444621 -568064590 -609519101 -716370528 -77578097 -189667073 -902770655 -906149671 -600873419 -403097065 --85647608 -719640721 -956105738 -888450621 --208142159 -530737578 --189425238 -563792456 -194861881 --453394128 -124512896 -464425365 -714100990 -822697410 -349089769 --514144720 -51767607 -809421301 -926184990 --375252530 -221937807 -629110260 -289126523 -421400346 -576990345 -406785033 -361077893 -233445611 -422148458 --344731983 -615465795 -666705092 -616601722 --117561756 -317676450 --648019045 -865327768 -169638281 -496680452 -646087218 --162820542 -429848056 --693667966 -891856651 -277607486 --541586230 -403736881 -279071560 -813127233 -748888766 -782564777 --317305684 -608798208 -943587397 --492479471 -998150857 -938065945 -54289774 -497153539 -191552038 -225032791 --309835000 -961306385 -569790727 -663409372 -275667257 -526132243 -692917071 -422813646 --35505194 -761140958 -847894504 -584776634 -469212377 -406708963 -105342056 -175564886 --889142834 -717533689 -308128937 -549498523 --667821235 -664516528 -360426684 -346629004 -878177743 -612799051 -997455356 --593299954 -492609339 --589396343 -495128437 -320659314 --271378187 -945171412 --338939904 -458452118 -364286051 -941217229 -718443498 --840429497 -834418406 -989907296 -97168819 -907126225 -390204017 -280690133 --816877674 -234206843 --281685694 -27044075 --851487560 -263915143 -800107448 --94478125 -263782411 -791577474 -885239559 -963739307 -40288911 -828219175 -116744468 -20763339 -791024186 -897526263 -564891392 -152866187 -228836928 --594265436 -17183349 -103980608 -367003078 -161613988 -274731640 -499336924 --852851957 -679747384 -605276217 -278937941 --518791729 -323151213 -935005662 --692545568 -479212001 -808918576 -884281002 --856361661 -874357668 -86653747 -652588617 -732787394 -405218376 -267641021 -724798046 --77872708 -429883992 --462247967 -104309791 -511415020 -451425499 -542778202 --5668168 -586094919 -549441841 -144463158 -450425310 --65678742 -169702869 -700307885 -299998215 -588519725 --891865139 -6374313 -706456133 --296216332 -966973053 -805592140 --481573071 -227856777 -113149760 --933470745 -398743417 -568152540 --1350080 -718328818 --193474583 -527571444 -508240074 -298041096 -979453228 -671571384 -238690342 -469280460 -163860889 -634596970 -66602453 -551738582 -892254799 -464787670 -574084477 -383143331 -538456068 --735472607 -581427563 -127524634 -952369851 --739342921 -292126985 --469258438 -974691973 -156711639 -357214671 -562449127 -693517474 -528951824 -504627427 -952297356 -547561818 --865539512 -846288038 -443919799 --54228956 -233027530 -393954709 -108903698 --951591806 -861008563 -564830858 -79613455 --744310528 -357805732 -924909818 -343780350 --280739151 -355234219 -701326674 -177020227 -703820659 -564611772 --740519774 -79518776 -406348064 -112578657 -379091729 -830644630 -813110447 --184049880 -296401561 -641017577 -139484118 -698379930 -89817220 -825254465 -804384005 -590871621 --176774895 -970360849 --374111192 -438997562 -392437877 -380885026 -804763651 -163987387 -539156239 -732007402 --228095765 -756639745 -283737769 -165001359 --153564026 -586797386 --622382947 -911968085 -911445096 --316369653 -714203562 -617281876 -846950886 -21326245 -409408079 --975443536 -503207326 --323250457 -21997140 --74675228 -106889032 -788484581 -963910938 -883229406 -925040453 -835502520 -116259797 -4774967 --772482512 -114441689 -478609045 --457061752 -159902885 -953808668 --104403238 -254280839 -639335869 -548099405 -515879394 -170601110 --762455637 -685307555 --163860889 -410327723 -56246473 -986833908 -592484786 -824892878 -905056117 --8673080 -78866993 -953029793 -269678472 -982095678 --13752269 -611010812 -484341100 -389142859 --167070045 -362751611 -950023887 -112167641 --349742733 -71362368 --54792791 -539728910 -459873616 -837863026 --657325479 -945755776 -257066826 -276556228 --945405915 -192007091 -96607192 -141980415 -497042154 -447546985 -422009573 --405900874 -617502955 -235666374 --243117167 -382389518 -270136969 -696077633 -375694776 --583490054 -613987004 -297762149 -157862601 -528540278 -45434286 -850883853 -595650742 -577843912 -497609223 --664675054 -550435634 -608562823 -16750484 --27162349 -453805423 -213396982 -624448228 -866454263 -79854791 -930147242 -555162052 --929212038 -768300695 --316557668 -368945506 -337791330 --438863379 -64145608 -154036154 --484014944 -282107773 --329643327 -155792381 -405101616 --126891626 -847191587 -720772829 --72743065 -196608688 --663617492 -314644498 --550000388 -25861838 --716846353 -254033318 --898319684 -112580321 --64212191 -287096485 --625174975 -357619235 -900832899 -822241840 -627078393 -669121251 -125162811 --935407702 -865179956 -490865527 --320897887 -712181345 -667383490 -517561588 -612517470 -142785858 -316052537 --501181030 -884199787 -861530324 --618458485 -76161755 -664071398 --720930203 -199139909 --188933093 -638598161 -578036714 -156750813 -888471408 -273920915 -777982223 --297172720 -776792601 --363718371 -972256996 -138590792 -33787116 -343814104 -718587375 -6194291 -444990355 -538486066 -775289140 -160123579 -383088286 -96167416 -352866874 --744616873 -930900463 --771485612 -764487088 --461135610 -815317124 -989430625 --103543734 -434396768 -606285857 -957761834 -782407324 -834863004 --715071781 -982561874 -487314240 -389978239 --547935264 -10915845 -296216420 -430179869 -663547369 -813343557 -616941142 -509936695 --588895783 -61256649 -588168842 --865580078 -962596039 -226240533 -753803582 -770415875 --312441396 -947830303 -541462251 -239284096 --150544885 -148827340 -674543467 --347748327 -338309779 -528431191 -454690186 -548285061 -933159515 --958117026 -107026481 --391294567 -390202243 -744284526 -534567856 -186465529 -269188721 -698849750 -838023119 -783452147 -473755572 -634619006 -989057132 --288663579 -577798240 -897580407 -696571681 -634172619 -127367094 --16636192 -249724577 -192391453 -601888470 -46234957 -654885548 -564139590 -429762054 -684977709 -259103183 -274397636 --528887048 -11582899 --561155370 -325064054 -526837244 -129684114 --829024961 -180315738 -217499509 -302547938 --149013210 -447556522 --423079258 -540663807 -370302761 -878460591 -473425680 -412694437 -235659458 -915125477 --234440153 -288935878 -479653117 -543539359 --871327310 -901169471 -208377988 -277202443 -568770068 -324400817 -625709489 -814815330 --384826629 -85643494 --417533475 -940665848 -846905935 --68638043 -358983733 -419499374 -169972552 -150430481 -971741852 -919571915 -469816543 -427744944 --416856418 -102545191 -753492996 -44122367 -68420496 -23100151 -478988298 -535991621 --285605448 -484106301 -96031353 -684812557 -371674954 -678321702 --854535815 -675707018 -776828226 -649421682 -145344734 -353210904 --560001503 -583095106 -417314503 -339460090 -331276604 -649245926 -879949874 --612271440 -574980337 -674575236 --967335855 -870872970 --748834974 -647553633 -713018874 -335189843 -753725361 -247156444 --260373583 -828948695 -289665703 -653618725 -629891931 -827197930 -315868606 -783033462 -962235543 --795486235 -398570934 -358632743 -239898497 -121173347 -892793643 --705397496 -57545077 -680816595 -539184516 --387025570 -930975822 -362831767 -450616827 -132862698 --459477845 -671462600 --168410389 -247150628 -166490318 -902864494 --390218323 -796059066 -353500469 -508006595 -398516872 --687201084 -522172737 -610659801 -453499123 -242015109 -9229334 --436046251 -782753383 -225069654 -81921409 -853206282 --940574251 -784844205 --42204781 -439865293 -486011696 -52980224 -314087826 -228567407 --351669118 -279504181 -671139659 -341273577 -412965230 --441397521 -830719760 --79125867 -299263699 -230909175 -839992960 -744574590 --497153539 -639708852 -632446422 --926988963 -659276476 -659868456 --169518115 -122356801 -645965674 -749442066 -411681009 --285211193 -973331057 --334949352 -51900479 --71345248 -340588079 --220650556 -532862726 --698379930 -10366713 -914021662 -602477402 -499045963 -245410590 -479829691 --377487971 -379856897 -830854606 -778907474 -627394852 --749642161 -41841850 -177525392 -989202159 -127239656 -22151397 --816702477 -347623452 -68094342 -408072887 --676993085 -967435723 --96827334 -500418783 -467112062 -577791251 -230768023 -455350865 -909362647 -51917914 -243939672 --46087643 -170750792 -185810957 -813539140 -641631357 -351042088 -238774282 -383350260 --613741087 -843260099 --508847564 -10778289 -298941723 -433969279 -79845402 -644336307 -653310116 -793481693 --79669278 -25642386 --254412215 -317259303 -809712583 -525796950 --838481169 -124823584 -903525792 -984842794 -541521650 -696995871 -611873847 --790013974 -279629670 -736285268 -341791873 -18074697 -180543251 -623430565 -431323618 -602784264 -395281440 -670586177 -944816625 --470205047 -584163114 -230783236 -746559238 -272292383 --262227290 -729127368 --234159249 -901809027 -492647911 -22615442 -383560740 --644906952 -641662746 -806633154 -211331429 -464460825 -378818221 -504686995 --716701777 -270168063 -698426968 -766242750 --250400345 -354284988 -753176148 -801272993 -854216199 --913050019 -931331075 -413918735 --240853290 -335020198 --335136688 -493915659 -364711519 -206534055 -509601173 -115729337 -487220242 --91425098 -28393537 -869433822 -147326302 -631260171 --14272236 -634758662 -342644827 --917398053 -543319700 -700245963 -764866487 -187612052 -877003839 --389008730 -782325730 --111651412 -517304213 --133739426 -741222506 --901372416 -896438479 --409257181 -620750418 -800556294 -660163593 -556898615 -8327880 -774991539 -162150139 -307893718 -615508626 -844050682 -177073089 --412966731 -687321563 -824924588 --909026430 -107146445 -424675907 -445309891 -385968358 -581303987 -161281220 --365075994 -341689176 -505213980 -533263574 -945478376 -600455876 --482485527 -657493984 --736631132 -691999272 -404601645 -704636561 -194634891 -16538450 --216378459 -27592505 -452212809 --848165988 -65732439 -962306307 -39756165 -180468875 --317060843 -219452525 -908979892 -82493794 -303557789 --601638639 -892430972 --300162926 -552434765 --678068521 -272768359 -322467612 -197018679 -127684341 --267023709 -662867976 --903809784 -563963314 --974447253 -747612243 -481533643 -790887914 -179424658 -77101885 -623634606 --217326317 -737618060 --995924268 -22232121 --346010729 -47740818 -464812747 -681767834 -219348833 --126007623 -582913426 -38584071 --49516991 -991499496 -906567704 -467899870 --664743248 -942339429 -796528559 --902755464 -863741283 --306349076 -790564165 --858300271 -231070776 --395720651 -694767313 -241739338 -649429746 -25053720 -812395040 -77424867 -153018074 --558390110 -407305065 -160603622 -973461761 -67516834 --135394000 -51280707 -60931634 -780935457 -166588383 -512204203 -581077326 -663244030 -636137814 --164228576 -859265853 -619788815 --109308773 -999976410 --258058294 -702066716 -433807675 -533898067 -563263643 -940657598 --602736087 -339656239 -429509870 -376783736 --484326746 -481271879 --141080113 -174535869 -927387683 -15019770 -225467224 -371375795 -532883341 -727299922 -652100083 -680908124 -271855408 --701296604 -198557765 -788571467 -122207133 -751155 --126197794 -474602128 -172754796 -235969508 -143022528 -140282348 --564653683 -836277690 --766993928 -347330822 -209118587 -355648069 -971345516 --70847430 -418125027 --816904501 -791053719 -283521794 --423857098 -83002333 -600355283 --320291760 -64074940 -320862300 -477265386 --22328994 -211678471 --460818631 -49410645 -37444684 --4990347 -454877907 --532630990 -356914315 -855348289 -262264400 -31106781 -711020642 --612371301 -690715992 -831329335 --729537948 -42238217 -669702035 -522966618 -354890126 --399119614 -128962093 -389297434 -277447580 -260972084 -727701591 --882299982 -939628321 --611891587 -241315313 -756477519 -801502891 -149266401 -814842480 -744129558 --455316694 -350047286 -259497725 -596416289 -291534432 --115252646 -442946747 -380835699 -795211956 -592414315 -387425010 --26868867 -134669613 -526607738 -323458731 -480291149 -222280227 -156614361 -708292748 -836504628 --119145563 -603685238 -548715454 -422063349 -817291652 -495076580 -390194210 --502402421 -566207901 -741149836 -948383616 -949808144 -803293441 -327109174 --307470312 -504004630 -274143463 -516615792 -323691707 -343680101 -638018569 --270275252 -56730482 --883797565 -228322797 -33825230 -315299129 --1715466 -50624909 -889441883 -969530302 -164494116 -617485954 -788692165 --935740278 -247940308 --524426446 -222710376 --299703091 -646304357 -710023448 --524704560 -405172782 -386770478 -865208003 --502634890 -815036944 --567021063 -602485708 -559378295 -580434376 --470491926 -845235023 -329663327 --398747725 -141479771 -317845943 -188214923 --440365789 -835978530 --2446809 -395061367 -97260751 --987766212 -225691238 --891129528 -867827803 -420317632 -914297982 -162669372 -226027413 -411797802 -362037093 -757608641 -609186108 --430464638 -868675679 --516615792 -538063376 -612908579 -68341335 -486976656 --946993435 -685177285 --61943190 -265151386 --428415418 -504563328 -190541226 -355658076 --442698604 -836411346 -843625113 -481040906 -918238639 -686910909 -838270644 -991990937 --442175671 -760322345 --476908642 -95722633 -857511168 --769547693 -506513960 -724081996 -232803956 -516284971 -215500120 -856118068 -926118754 --238534329 -464558267 --97260751 -801156849 --243939672 -975760031 --780317028 -446636637 -872575017 -655532448 --668935300 -744854237 --572403174 -502735757 -903456716 -796124704 -450803922 -438991514 --535049533 -576280239 -173348147 -207576658 -632803125 -424112155 -11767988 -303716865 --774991539 -505720408 --600601329 -905525867 --322667262 -53757801 -963995530 --811156637 -650673925 -652882845 -67768920 -869409996 --112430432 -475101571 --78941530 -610207338 -91134465 -940932003 -18704614 -149704858 -245226067 --581535822 -519649443 -703504169 -167921828 -379231900 --165465831 -32168521 -130769257 -466115069 --832222866 -102908785 -171309056 -482787304 --529480662 -569931686 -887355220 -711855336 -608660845 -266630372 --922885758 -428388131 --501179427 -167051927 -3958626 -94636173 -366585767 -785416442 --487287333 -885955329 -560644386 -95878338 -269734631 -153013726 -604315438 --430003193 -921557205 --244257523 -351073206 -646688548 -428955680 -259387395 -932120319 -102504554 -74191776 -814444644 -524984067 --785608439 -508041715 -57568543 -152504237 -65076343 -631766083 -75109225 --123201107 -533144124 -557182681 -141113910 --764237505 -280152908 --356118217 -193070006 -776568833 -812588483 -13376370 -357440272 --439321193 -658032792 -94676794 --265060130 -720281390 -346290992 -43354133 --332688286 -213643645 -85081739 --498339454 -881276417 --887897804 -270067894 -962686817 -70494632 -556926435 --633927423 -752489309 -378258348 -393329598 -647128641 -959717549 --706291965 -489674579 --355015506 -926428559 -76057144 -409067937 -772886602 -491814927 --944585136 -72015774 --687823485 -532397440 -35885605 -472009336 -764013703 -535407375 -821512059 -551872834 --758216601 -866687245 -60716755 -60994084 --298320128 -29361232 -924039207 -837174197 -65874269 -224140382 -523979458 -962645578 --219280747 -871221873 --556266570 -678451270 -214941774 --913831852 -949794085 -566729206 -300052696 -196513993 --996453789 -451674143 -61720629 -662294040 -358508098 -332674345 --730308353 -714074697 -795540295 -925268480 --543858247 -644384968 -122539711 -685398737 -440851251 -172381735 --513580504 -931471537 --64859193 -692838103 -869724755 -852710475 --774660151 -410643257 -411610006 --378856597 -617262742 -672240997 -334959254 --793958122 -694648650 -844747361 -593177802 --947000835 -491200624 --79613455 -394344607 -103591550 -148582660 -675193676 -496648116 -186034998 -788322352 -49651424 --71762778 -173597870 -464932853 --168181017 -656791741 --995377515 -200329364 -934213023 --3783286 -189894036 --435201100 -104208763 -327619960 -272895742 -58514375 --739492024 -352998429 -840545100 --160943304 -8362978 -534201212 -484657497 -414611628 -862136690 --586656827 -310502584 -560862605 -657943344 -900864281 --670458206 -370491142 -603185733 -998926082 --550861466 -285524413 -832217463 -300288083 -264167793 -638538994 -373132248 --312680565 -861872748 -40793100 --128310439 -964781517 -215919463 -673100562 -457731261 -388645131 --805249530 -52451539 -722311958 -318758306 -606651829 --508875300 -673642725 -723365883 --285295147 -58456528 -793325218 -821072544 --198177171 -114885085 -817828439 -678241455 --987029159 -122279634 --438934399 -152924523 -959082795 -781544121 --995204838 -966187878 --104507015 -896577915 -800223153 -771886355 -51944804 -10266290 -44365305 --693089421 -405680334 -440665274 --484341100 -660336245 --676274146 -171125076 --694035138 -161320182 --990251509 -981279602 --929691081 -734163469 -327505013 -247848972 --266797503 -210295453 -478341790 --927823045 -520582677 --712778292 -271004229 -206102171 -273975651 -797275311 -786536747 -297564297 -476811195 -176643662 -38482652 -346857008 -406255339 --833819266 -658059572 -274498827 --196867053 -390212379 -953605225 -722864476 -647352311 -907712368 --872195451 -35686932 --433951109 -389760782 --134120500 -137191592 -42603170 --357194956 -344981819 -542415708 -603790027 --79023994 -848274484 --342495689 -504103659 --321485795 -81774455 -212404534 -437955075 -743688218 -892136803 -229355630 -657485002 --95721611 -792291399 -924581711 -679183084 -160856873 -742572435 -614827038 -742439669 --736808055 -543054780 -887019745 --486422485 -66540303 -601660962 --1420881 -735084558 -93939515 -645304943 -20727988 --509627444 -994312487 -517827873 -708658246 -131578851 -753406405 -942078050 --38227650 -741694551 -75290689 -440036798 -46744254 -43581240 --946406036 -275120067 -930254045 -731825466 -211228296 -7560538 -531708486 -250021724 -311602434 -490477605 -370373987 --351742563 -413756532 --705361599 -8350357 -885430682 -819356784 -311169483 -850558989 -567928100 -970705981 --348990980 -980071387 -662611567 -66627134 -924204735 -578296785 -804494460 -85754213 -589634296 -985473848 --530048659 -768237301 -562984884 --663009855 -362610926 -237762949 --801934565 -808507970 -125092485 --181239467 -60541631 -704358488 -411622156 -245793089 -220120634 -800121546 -512333549 -836567346 --337427127 -600719457 -779689455 -737669242 -836418747 -481992667 -537631148 -253670857 --570880624 -753047992 --365077465 -774522899 -297735187 --165625826 -667322035 -96865634 -684650501 -259470761 -543165808 --130861427 -949618546 -338017994 -78084586 -538115053 -445198790 -904633943 -365409841 -387617725 -658555620 -639159946 -876843888 --41648994 -708651977 -82965863 --564139590 -486031289 -470945257 --611155937 -952837831 -497320780 -61625846 --46459492 -248351587 --135350112 -756588610 --21371450 -924935866 -626861952 -21481279 --182663853 -644121813 -133366505 -798324271 --898717067 -180216699 --109900620 -611501715 -511808381 -446932307 --689009951 -198904735 -561954503 --525943183 -173401364 -78172476 -240842217 -176642956 --286811678 -323213202 --728844996 -276933795 --847410709 -458907256 --624989321 -663682649 -533783756 -202033700 --338822068 -79207565 -432692962 --667918100 -5874820 -862965346 --606045787 -589980156 -776625549 -388496789 -819975786 -193860890 -401044928 --890338775 -918184745 -509649644 --862595251 -333641015 --148793995 -539315376 -434172660 -554525421 -990795964 -235899513 -164020810 -195568542 --497955600 -787940504 --389989552 -708157611 -234116416 --859924888 -978962556 -665979779 -797285600 -458640948 -935972789 -328124944 -843114059 --755386530 -267065338 --870876367 -630259390 -747840614 --909211126 -66225601 -514350812 -649621044 --878059946 -751422771 -516115459 -665014465 -351103976 -224829625 --316574662 -340999491 --59551526 -158190889 -567639935 -889580809 --570690451 -464994127 -151732781 --727387064 -728922745 -758143207 -358923272 --298744406 -261649110 -1088872 -142823585 --782564777 -836004701 -380222252 -557663862 -145624592 -272927086 -850176721 -696041043 -268637069 -933841738 -184999411 -531008740 -685206414 -475017121 -606146783 -909835111 -676398070 -871808541 -801775354 --550462349 -600576726 -321060231 -292304513 -233727600 -759256673 -636101642 --709567503 -422509041 -38759756 --513446737 -624352837 -234396366 -349953872 -904940238 -129124044 -177333791 -793536129 -225305384 -15640061 -961728195 --397225988 -565870727 --466115069 -914186347 --663340252 -354993602 -601995469 --191162769 -542584297 -347731236 -889164930 -67992496 -279677115 --408337625 -487701321 -109918241 -767714203 -987484684 --163795964 -14173442 -631839964 -696926790 -427880598 -104111626 --235679832 -411088306 -828293019 -862735872 -85087265 -591409932 -566242368 -17100941 --625888524 -457686956 -54885490 --795968108 -887568345 --588698836 -952504194 -374627239 -558324061 -192842312 -556139444 --107106925 -870059606 --597989314 -230628081 -2680704 --182517525 -105293824 -733576754 -295579473 -716291979 -496253149 -101494609 -996122768 -501118037 -29118474 -944414673 -111422035 -285476885 -290093155 -607441038 -682821404 -502567420 -475616603 -105458006 -964412351 -253035291 --836791310 -51240307 --430698263 -479389029 -814376148 -983067353 --343506981 -544979927 --787281202 -15838227 -227469962 -350360130 -722209507 --570545660 -748687806 -49269683 --330897264 -361144196 -264783885 -312179887 -629117804 -699586325 --481992084 -10992921 -251218726 --190573781 -366344003 --681650853 -450835722 -546215692 -181227381 -927538626 -176119343 --94138176 -684698980 -144769955 -469540286 -380757477 -770885199 -701064163 -511904898 -371883620 --112638206 -398379523 -747945328 -346741786 --253954588 -826260693 --876678366 -303680751 --535828699 -637327558 -590806808 --727352330 -659345175 -568937864 -379176542 -603993421 --39291327 -541138291 -623360574 --968449418 -593127656 -857633511 -55533754 --447237040 -825394034 --441098411 -651009698 -572376191 -461340188 -890917494 -183056530 --678253852 -597914176 --763788224 -713527914 --744574590 -760770865 -455210660 -722148059 --811678084 -420258564 -857176428 -845064275 -25055885 -434591622 -282756761 --256979700 -489796448 -754536118 -849103715 -240446443 -296417487 -278497869 -392962615 -47956660 -261749612 --160919718 -672028332 -928489628 -642307705 -759012321 -662288689 --528767437 -905735403 --317278391 -542232129 -283868421 -660726295 -309721471 -153170391 -370209743 -419811227 --4852976 -493309635 -255045976 -556305890 -812457932 -767732160 -310967722 --659341105 -486938678 --125764532 -355158816 -594052606 -478027491 -489323399 -228000337 -300242917 -721985023 -296741418 --512565031 -889985902 -323652281 --493309635 -698356599 -193234926 -604051903 -148350430 -609708644 --209630044 -429448308 -155087310 --598328043 -571250138 -750178543 --42603170 -73930020 -948632750 --392273380 -595159945 -709766061 -901779507 --844904339 -324110622 -757220244 -250016503 -81394117 --405971447 -438804056 -93734983 -364618110 -341662097 --387418601 -359163423 --553500002 -612734710 -529537 -142888452 -862641740 --762892468 -365172493 --242315353 -247588353 -197097378 -152908800 --610711883 -16187465 -9221416 --388789187 -990036894 -918884803 -62825182 -398506047 -133354932 --174256003 -303932379 -69545516 --618485864 -834676653 -856150952 --30659525 -467014627 -547154542 --709901382 -179822005 -652112627 -784110029 -982042566 -590180001 -879709676 -316763421 -877130691 -66208314 --265057579 -67654171 -504050203 -964978716 --192088782 -205771475 -595298111 -374446533 -575791256 -636689506 --478609045 -523961269 -252681863 -620814830 -101664434 -20438145 -740227193 -917865550 -730240381 -369887299 --135898862 -588253864 -589939973 -593170460 -632457456 --845235023 -250058392 -538781091 --904644454 -231486688 -292108618 --702099207 -627296604 -723618006 -30142192 -336973412 -873097194 -119004726 -893989457 --766893156 -600059 -166618441 -434440504 -399923805 --830931411 -672139429 -926888984 --482320976 -396102643 --583628464 -434900239 -228504028 -313511477 -600074259 --75626327 -983637813 -174855029 -906089789 --49269683 -314227036 --654290136 -375734806 -572082124 --51778601 -553212349 --236516563 -729298154 --29765126 -371505445 -880562556 -376803295 -153046456 --272947806 -133916167 -643029442 -508404482 -596113972 -855652261 --728392589 -615573391 --484187526 -794380603 -588093137 -783883643 --423859251 -420988468 --192119277 -696658579 --143691960 -229223133 -196148580 --364595075 -614087580 -144497524 -5182268 -880319150 -19067734 -679593698 -410671656 --80171931 -422471470 -49425462 -198809468 -38419697 -807860979 -726158527 -837485526 -935894799 --885329146 -64784436 -429780244 -91772711 --321203825 -262928330 -340057937 -246306521 -429526985 --14548119 -673410388 --592856187 -279171230 -174198435 -252453249 --941112089 -194248020 -917879264 --359221987 -699107309 --489537422 -863011233 -487978413 -825892437 -98532877 -40403345 -394269550 -566986409 --349057746 -214860457 -981603901 -247467318 --314168855 -49918319 --622285963 -570213626 -646735495 --642195906 -320549690 -992559060 -485255364 -567908250 --480098052 -848946353 -83777992 --349886677 -23397002 --448553898 -191397746 -878216739 -139552396 --328935782 -35575243 --304946550 -889179778 --148235489 -237140764 -109065652 --670586177 -616491503 -312021672 -22569687 -272681182 -384789239 -562602165 -682936570 -785860030 -915049487 -172106391 -283119218 -319408479 --663682964 -806505705 -612291362 --15785311 -549747631 -139960115 -481414811 -615287349 -48948571 -16594377 -947268739 -285628398 --28660768 -951209771 -527636713 --147357629 -821742106 -85863391 -981413483 -176538234 -394551097 --554443689 -299880673 -480121014 -656297786 --134239423 -326875019 -839972125 -834323138 -483243121 -353647966 --750178543 -59535446 --229671159 -723521212 -235519956 -73133311 -724235828 --607576677 -384182283 -717504142 -110463433 -554504037 -841956720 --66372474 -481121820 -723635381 --109975587 -417390438 -955716125 -874375065 --974116121 -344068276 -459458379 --779808331 -286983565 -301692462 --809605325 -29601692 --778188740 -633056196 -141582501 -55023007 --558151066 -717041709 --819373113 -809116360 -6385007 --254005740 -484448491 -238346019 -122136251 -136982204 --150840141 -316198199 -928555165 -710244247 --621170592 -356667889 -646813859 --307291610 -468858723 -254196337 -538153434 --7242360 -309616851 --975760031 -639200209 -212271723 -948778359 -261224892 --776898769 -234416476 -235770681 -325695426 -581910288 -741947582 -690526275 --609809376 -680253081 -367563835 -349684518 --268637625 -231507925 -207539278 -606377461 -383759061 -283656055 -946933635 --359469482 -218628135 -2167700 -834270790 --784907079 -184673310 -853288452 -773666097 -91630484 -34117708 --529537 -497998620 -752795297 -493450898 --154700995 -650237280 --863359472 -7374537 -673832115 --218284432 -928177683 -63626302 --632459755 -690809859 --704103155 -632258467 -181747297 -360974354 -256956501 -877369231 -429375041 -227206484 -568894880 -426587137 -226887496 -770604264 -80425934 --809218494 -601643039 -637651122 -475780674 -833181205 --76661091 -738555639 --170713062 -35122630 --693796963 -452571699 -106904996 -200221795 -756749244 -822128003 --946614004 -824089263 -138525757 -454301650 --644985426 -843408356 -324333851 -580324631 --80347443 -112391175 -554736743 -97368307 -368626100 --916683127 -121168599 --729963182 -597474226 -505652597 -94029674 --765072678 -895702997 --661434883 -355377718 --526829073 -723326950 --830943504 -817394766 -744026057 --714857773 -234440695 --324998334 -246903393 --542644928 -619914563 -259392447 -698444177 -370595326 -751003133 -913269332 --997199977 -465182958 -253486908 --513521956 -464446038 -884667366 -925841069 --579656796 -120517835 -310100484 -687767180 -789503642 -500766242 --791384596 -349138563 -904816651 -757782732 -718727351 -746400696 --168914635 -95315360 -905962774 -975947448 -681273138 -897676619 -488889300 -566684344 -371052229 -803304118 -360077365 --167049910 -713258559 -212480973 -982656205 -71906628 -437775291 -83408949 -108700870 -203980821 --617281876 -324887062 -469813392 -941761982 --857579418 -700556434 -839742228 -406828672 -514833053 --240540320 -545883409 -104989542 -712074169 -358195432 --873178447 -36984826 --161042771 -530616016 -414935035 -5674974 -34126473 -691543896 --86344007 -803631176 --562769776 -869730863 -594452279 -237175010 -23351984 --951407329 -759983790 --184888363 -480294798 --172660681 -736488334 --748175940 -82790850 -290647411 -581170001 -87571566 -8601465 -801693008 -788523257 --162669372 -897146109 -72057723 --795495284 -631590945 -464291125 -636750554 --45918140 -855084081 --241801671 -709139755 --461724259 -366670711 -986353740 -288035354 --817754380 -794455199 -336819303 -20247754 -79385775 -53586430 -134499795 -421439261 --795971278 -384480428 -838543994 --424112155 -927524739 --944295393 -422598701 --524217961 -870781083 --918849802 -17548293 --518701547 -793065113 -91442800 -702939628 -913656699 --845214428 -798536782 -734390689 --48496311 -894833539 -584911957 -902830013 -339936425 -899221751 -216595401 --53966942 -959967103 --19360363 -915913492 -451299445 --906688094 -708247668 --664071398 -210895257 -657868917 --911445096 -966359316 -168757145 -972401058 -625858607 -435873144 --679979165 -554532326 -610062508 -380073215 -394013697 -868239790 -364922505 -231655146 --656467403 -559463968 --240446443 -968452829 -520928824 -51748900 --55745750 -141316386 --647386894 -712880116 -316358077 --416930584 -221250462 -882873962 --612908579 -522668286 -712010308 -823513671 -558414412 --941290655 -974744043 --281106322 -815106897 -138841414 --45453296 -986364340 --923481142 -493367514 -878287795 -508371603 -289138508 --215500120 -581680840 -849216214 -993795934 -664916342 --788443585 -623330629 --473557028 -11626416 -663887739 --60452497 -663465117 -924014074 --933915495 -487958388 -753352342 -79102596 -4087856 -29396133 -760360642 -665554317 -916979515 --579688384 -521748818 -253900206 -619610979 --806089906 -485708647 -674220910 --667322035 -197106237 --532770377 -324757303 --808521011 -291581436 -840218652 --980228221 -846768812 --561347526 -105758030 -633389350 -391417474 --987983357 -63735342 -606692313 --35849367 -900632414 --933931375 -980739022 -535875357 --701675474 -57859606 -241124722 -740323136 -961484599 --815114595 -686860869 -13902429 --369005061 -730284476 -500650541 -500434867 -11128248 -351013617 -994940894 --685559898 -667661885 -238496966 --571236807 -886812189 -533359336 --840130998 -755138626 -929290321 -252524771 -304932648 -367104869 -17564024 -740629319 --410106037 -565152396 -168238101 -384181182 -862731317 --794413802 -890317778 -814395316 -184361994 -670859851 --700181810 -908357288 --44739378 -773360755 -462309895 --16070662 -574548266 --812007875 -160610217 -741836551 --800835958 -24164293 --355680730 -584588266 -240137094 -582763114 -278992798 -245224119 --992559060 -288006154 -972222535 --479653117 -518280387 -271328751 -774502822 -986513943 -667977196 -927973616 --587615737 -420505108 -401958997 -49723660 -890755442 --204441159 -811761980 -409725337 --380222252 -474522851 -62641746 --545249654 -185829401 -624310004 --724577601 -418014534 --617150086 -599244514 -110561934 -128724718 -457267937 --45214962 -105240774 -656428543 -203255930 --879366692 -326902748 -496235804 -930196512 -509513101 --76117351 -704148567 -758821062 -599674096 -200114524 -834538224 -538508427 -408077766 -42756012 -80803532 -497726918 -904984977 -82167100 -571368790 --550137900 -554637557 -586584166 -807839981 -996153391 -259292970 --180586031 -105349724 -529449031 --378171960 -577716807 -516816844 -844033804 --345653543 -327463345 -112929572 -581452222 --261752381 -979810156 -949416375 -260298684 -970683186 --549819422 -634810983 --464787670 -715716141 -77286602 -566935815 -807368883 -666569716 -794704414 -258959645 -823136574 -58506075 --739416989 -803394533 --410197657 -46976257 -321631977 -350099707 -197532944 -12309379 --725738793 -793969513 --272681182 -253544131 -638524416 -672989963 --844050682 -589122846 -912169458 -727840240 -295348279 -615922131 --570787709 -419255427 -636725371 --325168241 -825417519 -162616048 --212507700 -924560843 --740239807 -554671688 --118711500 -655311202 --195166147 -172297918 -1956989 -11162481 -295995093 -760564449 -670365377 --275798619 -858736784 -826249442 -800822075 -150634272 -144659487 --259674303 -323433494 --901778481 -950921892 -805675699 -893542022 -48830086 -295443717 -154929514 -713357484 --187730357 -739044066 -430415189 -142881358 --912169458 -596900409 --82211127 -332820175 -984977993 -482000804 -621886316 --27338988 -730237898 -207556257 -2595220 --882899992 -583226458 -750904613 -107188216 -74685306 -42962070 -191081667 -313792620 -4146528 --346459403 -204572399 -254305121 -947167855 -896250358 -464455490 -865015523 -753079946 -283601973 -65395201 -765953868 -469096084 -9660631 -400108710 -3481189 -950910854 --444674930 -86228480 --662796617 -654342556 -831782841 -666325568 -827410388 -988274739 -363178465 -370985941 -267055900 -207748213 --874528203 -432075030 -151402916 -24883853 -842490685 --937648673 -497749263 --74855765 -685923782 -442393476 -148972482 -934043279 -607265558 --767770356 -898313675 -84912025 -178164100 -895997133 -386733085 -347363149 -22514080 -641384157 --750508434 -604893047 -255964408 -338403480 -156579908 -256441300 -79249280 -924360130 -583671453 -78083002 -532260990 -260427507 -125263933 --664516528 -109857522 -587976479 -387483280 --171526395 -10282870 --787431784 -307636472 -123799692 --192383059 -827289236 -714338630 --760186741 -368840775 -39136946 -953100211 -323827001 -527098325 --650478763 -999098464 -94219558 -798293302 --643840411 -62834447 -296448671 -530316804 --987573836 -140289789 -111149925 -823112198 -578228311 -879961997 -998060230 --743477018 -582336660 -341431328 -868761633 -41031822 --72240433 -518317726 -687447110 --289041564 -306883565 --104525958 -105743870 -77372704 --841869616 -27856473 -967389967 -21379089 -895128018 --214334877 -312298350 -99393901 -221250049 --736909046 -855102949 -181998552 -937298214 -303253167 -380025792 -356831321 -27441844 -433540883 -458319293 -136817700 --751579429 -846630180 -735366437 -164921811 --634073418 -177504324 -105210131 -137908636 -197812312 -95255027 -348996600 -841622867 --877848409 -740025014 --883567018 -1555683 -888494884 -327940595 -555578331 --719124261 -114113387 -279353020 -943079864 -851450992 --102041940 -617135581 -301554047 --510526197 -377400688 -485990212 --747082423 -307774489 --98757566 -60171940 -176931104 --103988230 -530002141 -228339727 -445457943 --428591088 -810987050 -935455039 -848555004 -17227107 -89995601 --804401528 -895959905 -443098136 -874526311 --957585681 -821358857 -90980405 -39239513 -827963344 --343436956 -447571336 -13893215 -841048599 -718831548 -83611622 --121992586 -315740536 -342904130 -992727179 -62826397 -788549579 --959125722 -284407454 --997520310 -883816961 -630425557 -474473140 -242951550 --227655908 -492773162 -546989857 -214771241 --294615232 -681690046 -930142954 -463583740 --91149557 -902938271 -500606650 -290267981 -437950942 -260655166 --925558882 -442387121 -667797811 -306034794 --45696985 -48283735 --710595028 -433172733 -475674654 -645020279 -315097799 --561699692 -564489618 -271252095 -769576696 -550341380 -778743442 -404166145 -59189515 -867215232 -209957311 -247054429 -283744794 -732162095 --845014756 -195928303 -974563538 --703388953 -367500172 -260846273 --169702869 -4670941 --916921975 -71672954 -563447076 -154343526 --686823201 -363912471 -811715969 --841484644 -289610657 -537129498 --949086696 -635362924 -640665941 -593368169 --130700259 -91752994 --803552641 -772813766 -810663996 --987761637 -110175704 --711486221 -794102553 --514517627 -130279838 -906498730 -37742119 --350672054 -97722310 -495223390 -616688490 -510303557 -681609529 --431545416 -79604707 -83415730 -953123286 -489234540 -179953660 -950813348 -745853561 -349408708 --42551015 -94933541 -316026524 -369288952 --806728037 -737288149 -683508298 -546829882 --633063646 -717897828 -62174031 -461720130 -97093224 -219094452 -387362651 -380053963 -407027914 --892728753 -995530924 -873963587 -237188076 -237516306 -241955542 -114706144 -684321344 -187021523 --647698608 -413717693 -139109743 -777518926 --336018316 -408114125 -314667963 -579738407 --337340609 -511017570 --352359538 -214574286 -6919805 -906660752 --170548086 -521342996 -872103218 -800839551 -110420863 --74598137 -541936315 -361657347 --420429927 -203250499 --126952332 -506106298 --65930022 -390271734 -382951710 -71427292 -683291377 --813539140 -164741210 -796319568 --622193927 -294547156 -628785906 --840991522 -712998597 --289580071 -54522938 -292518947 --30808341 -397337977 --789424838 -164216801 --425069821 -432549143 -509667038 -801930383 -121132991 -853945810 -773563988 --501413153 -203810558 -794205556 --843489691 -22927072 -717642199 -543788338 --897378151 -781903903 --316069311 -922296651 -662248152 -172046485 -334578348 -524123891 -954625407 -140304771 --853049583 -283587687 --991289030 -184122065 -880348275 -401341627 -10535655 -763202855 -841753133 --504211857 -37241488 -691221645 -934775678 -299453696 -362737031 --288393034 -427771670 --326440905 -733923073 -551863032 -781276864 -954204178 --993884551 -942475782 -999167475 -424991305 -275555897 -4211454 --834518682 -957494678 -401038348 -791029249 -815322791 -140719656 -684423339 -733102789 -516413691 -587031423 -27601353 -6089873 --982880342 -397678545 --701953430 -700854661 -92757032 --505071485 -788168569 -650767839 -742206247 -605785292 --538877627 -414762747 --162150139 -277382380 -700820337 -48688101 -622877178 --736864280 -264077948 -360836386 -517907246 -635510530 --35281121 -567376382 --233385009 -518186631 -482556339 -695423881 --206141432 -732402600 --644121813 -404692090 --948722140 -704349260 --976072686 -410750649 -64875750 --627594913 -800400237 -656723059 -422894295 --163137453 -805935367 --500755560 -472785032 --209547763 -579149717 -688444961 --656912211 -605259901 --960742355 -461409476 -603115001 -840386061 --165514895 -132190306 --297894395 -457230473 -419195573 -943765153 -687404426 -957587197 --649341237 -85538586 --275218901 -902392672 -569291762 -181279764 -517884874 --502808954 -408138249 -757513617 -80289785 --298079882 -250545942 --363186316 -59506800 -269039179 --387210005 -542750808 -829856316 --211541903 -967912078 --749854707 -172206139 --782979213 -36289799 -76744634 -573448497 -638693179 --662867976 -886853626 --333822811 -371615257 -838657591 -153927653 -513720439 -883995168 -252591329 -375293768 -529346210 -359798845 -15491581 -887207251 -434491184 -358712799 --909414741 -179382061 --855527126 -258935907 -30111412 --457717442 -308774982 --774255361 -120279155 -877524207 --92298655 -821251817 -831695205 -834661135 -373160780 -221399636 -948406337 -440007559 -688008540 --463419234 -480125688 -123836016 --513806972 -943119247 --421420615 -696848120 -403022000 -191132492 --47436032 -296680196 --426725476 -820014794 --206168568 -287866497 -370717184 -302574011 -407019385 -401333008 -543773657 -442742657 -485209611 -740838048 --78841615 -422074459 -116714971 --577843912 -517446475 -118047069 -673411829 --477571870 -148148309 --46177409 -230418427 --5306198 -132451517 -156503429 -680872225 -171145521 --667232396 -243922647 -329523220 --954741524 -512682729 -41463553 --993021627 -281769417 --535958135 -608931761 -639975828 --838570528 -553447143 --485032005 -533400853 --479935705 -535149685 -380661185 --912613277 -818596336 -835955050 -867283371 -315931237 -8988526 -605216822 -230650164 -89463189 -443771638 --778806228 -284348581 --419316788 -411305995 -218718102 -698529109 -66084790 --122384900 -449456845 -433088830 -605565395 -765387796 -928377262 -640091100 -84614583 -935237249 -794110097 -644205034 -18247095 -411260063 -516956513 -298864879 -760645451 -571579628 -810820555 --55031934 -650724626 -121438574 -108191562 -580525674 -53525457 -38081563 -820825287 --153242668 -807124741 -626782155 --841099131 -244461542 -833667175 --493215364 -792343701 -689520510 -415774731 --863990671 -199579851 --235666374 -865607726 -542203977 -55881496 --141545310 -993500889 --669376583 -630004455 -679202677 -87624034 -809153410 -727751642 -360218514 -323658865 -814839593 -438805014 -7926539 -672072539 -75020833 -154852149 -655203729 -665381360 -157352855 -311724006 --939315780 -592293366 -140619130 -476505843 --831370641 -112969220 --227697342 -142238392 --536126976 -268906777 -756720300 --657218942 -321109190 --271626800 -982698781 -160046198 -282159944 --673522935 -220095736 --534649087 -810053343 -356341485 -842064924 -563678177 -681971623 -567468297 -579405067 --101886448 -901462750 --740677732 -703008086 -350018244 -637543958 -518916090 -988431546 -369491010 -506897288 -986533805 --72390395 -933926839 --165095019 -643618367 -672804614 -586904936 -726558234 --676612281 -480639451 -326108047 -519586501 -299344350 -927338320 -369721291 -471399638 --86137185 -318385287 -708580757 -132495213 -502012281 -832222853 -47312663 -258010644 -622694052 --971671111 -198007616 --936637744 -752781630 -610834004 -62751684 --378266131 -346426328 --717496038 -344098783 -585352414 -382973953 -488676452 -235162512 -576110793 --395615879 -303841729 -482695162 -304885226 --470735060 -503324830 --670606408 -272814506 -157890444 --821512059 -496927783 --969968754 -590306225 --936211823 -980099431 --247848972 -623128771 -588247155 --173723313 -525017652 -851289489 -904377213 --302888053 -176677198 -391784669 --6548341 -14965551 --18420970 -976753487 -557129806 -623827334 -513126695 --172910095 -777245827 -236790324 --615873008 -926395824 --576809462 -171869240 -642309656 -292344132 --734163469 -52639780 --740436128 -3539706 -834676886 --902575292 -643473661 -121768047 -587538742 -289852123 -664237224 --659614457 -802209844 -565900169 -303330013 --733950163 -17512237 --973040638 -933617166 -304443214 -459470809 --545740143 -935977523 --412666697 -794104508 --158205423 -70071794 -618880705 --977990232 -264383183 -381293115 -412053885 --234406821 -842365318 -693022863 --487077908 -836136991 -20372034 -975214406 -766312278 --235764999 -195509967 -70584593 --234635884 -584892084 -437078344 -179743960 -924434409 -482745872 -46967354 -776471492 -762958402 -305835032 -613977229 --111663420 -525557505 --27949282 -681258395 -17152354 --191957976 -861707481 --682321719 -397447277 -900785026 -175059259 -382371658 -52483233 --849176534 -545606965 --16704346 -565260648 -559155386 -717612330 -11513421 -839217396 -658342658 -432089088 --194190583 -608809768 -763975383 --147349668 -837852296 -20282311 --806084665 -683534667 -928768717 -891420745 --729025061 -627833597 --698939496 -976859568 -795094342 -116611576 -696528983 -705768267 -170744638 --147553103 -457505423 -986693084 -739442618 -189400480 --292171843 -386766706 -403413966 --625418129 -339113885 -962933565 -857468272 --278460533 -95316939 -730805117 -93154338 -910723117 -648666804 -725828256 --189191840 -434334679 -994742911 -668481093 --710305644 -534869589 -329557901 -328716751 --950311161 -121670121 -615423499 -45889080 -470033386 -650116222 -784855231 -300421246 -160395524 -309000416 -524604704 --480938619 -128041168 -772784671 -888836302 --426985384 -829818812 -263127644 -380771704 --783644607 -11595608 -559191206 -933273679 -226695734 -828087733 -14540756 -536600450 -650427696 -478027117 --136618630 -303470379 --516040399 -147343768 -177659970 --806793614 -922160721 --269465327 -372934244 --951209771 -250302558 -410303021 -938424171 -669745280 -227320758 -745662233 -664223554 -332395323 --317251986 -435894473 -183855633 --15720526 -640915626 --648415174 -179320837 -105345532 -688426902 --235580629 -712716591 -81128262 --76228136 -733876122 -417411622 -478969972 -606400556 -816819107 --587887299 -210362432 --797590724 -534146810 -666683153 -821931057 --48001348 -17116105 -611091903 -255733188 --750063291 -388276516 --410421104 -267982660 -231066680 -189385203 -992333519 -828511091 -817404245 -420440143 --50444473 -134863094 -797707342 -485465437 --236002154 -733231594 -289222430 -176672207 -908856255 -299804488 --802115628 -852346194 -902549137 -806794632 -4888658 -622548364 --799876289 -839317403 -612523008 -870794538 -222676179 --813730781 -574210494 -737897486 -894842329 -725375431 -575530339 -952071668 -975757437 --655417876 -546487174 --2328945 -921597211 --361348363 -634155250 -4681640 --668798458 -827010200 -526169540 -493877249 -306576885 -611664347 --696778010 -720992366 -50524901 --845775325 -673979342 -408782584 --644094827 -482253738 --822297253 -157654247 -413538983 -619802912 -278149393 -544101646 --731655933 -828016355 -423207332 -90660116 -698110241 -991969539 --324110622 -620373424 -922544787 -996545989 --178570324 -487727015 -31284557 -256183976 --215201585 -990230690 -204888783 -22042691 -373226889 -366967557 -242894803 -426330328 -962157732 -877496331 -255084257 --621536081 -149036793 -545716852 --844219710 -374694316 --119961533 -87275191 -139121993 --733026972 -962069573 --495262231 -826174475 -595495743 --373367965 -386188306 -15178118 --8558212 -914597652 -159260195 --879913545 -159321080 --266120178 -714689695 -881766913 -11228630 --524430821 -561287674 --927980814 -113547670 -792967004 --490043368 -765404246 --55807815 -192838447 -12106326 -576903702 -288421591 -435892319 -750045798 -919696990 -608883563 -506452864 -723776593 -752541607 -354894228 --477245133 -188470617 --85309624 -426172135 -807193644 -903817707 --784207074 -293284746 -180058391 -469565891 -226886580 -361143640 --156001554 -236160886 -881322926 -936185737 -583073667 -919803793 -503032074 -680153133 -9435774 -852727627 -690704747 --568726809 -661854908 -6458093 -342374038 --686431801 -311814182 -800640275 -687556302 -46044207 --708127544 -204543233 -994822225 -494487046 -237031775 --974266807 -955693188 --520699327 -918689159 --965491558 -338058226 --990755030 -727580443 -36563834 -971481871 --882609923 -614661002 -128077227 -641289131 -234121389 -271274262 -231725252 -208144066 -324920902 -452450381 -627607665 -538857749 --366514680 -485607651 --557992044 -614936572 -973654623 --986502546 -673479386 -281081109 --630222208 -734660854 -858854798 -231469097 -788138469 -376859125 -571724736 -390706121 --352124188 -379776727 -998966346 -490081457 -821137947 --571706021 -394663375 -710238257 --187837702 -436285511 --654079605 -496100511 -269215181 -518828104 -691987187 --936886676 -980421893 --887878192 -127612911 -439920511 -108856316 -637076995 --624883544 -918339843 --148201010 -224996248 --289599753 -863480453 --351554453 -143047549 --590178161 -29055309 -183871396 -675633773 -183484917 --847665611 -893406295 -129254672 --434835293 -485809800 --991293665 -424726449 -94041803 -695527500 -47820614 -294188487 -277428459 -533186859 --713058757 -10784564 -790042827 --273752715 -237538570 -662678279 -871040811 -656704957 -637719952 -568778393 -644275792 -535138067 --699194636 -907839937 --855081280 -840809419 --370054254 -333435861 --814720184 -762793392 -869757290 -226293176 -901755485 --934777051 -350055536 -440407658 -776301821 -465309207 --111915316 -792559514 -897089098 -342342281 -555949797 -903928404 -832986614 -429800761 -27490059 --936245463 -340332200 -14310322 --889164930 -333469585 -664704167 -871072505 -191263740 -957789202 -755391649 --577339556 -200992010 -590606644 -799982574 -973513235 --378413918 -747084722 -889719070 --272917631 -70661465 -940919650 --303237429 -226265371 -58367208 --722002620 -172831931 --915244381 -413822531 -961127504 --992510040 -261563511 -445537396 -716231986 -88184303 --921356656 -537194597 -29262818 -868655180 -242822352 -651864141 -830193976 -502925521 -934713051 -205454281 -157377053 -683599321 --56799678 -684469700 --23384213 -719520265 --397212383 -992581823 -497423674 -603334022 -242061355 -141083325 --249614047 -950118050 -829318153 --462663533 -497187146 -372001462 -915238552 -498639061 --917235937 -425006642 -958594332 -38925309 -295126949 -461461502 -674213745 -269090432 --590183459 -209067248 --434585143 -939949401 --51502636 -930020198 -988933022 -815167964 --217108096 -582638554 -728624390 -624628986 -226708251 -426005052 -91197863 -858253246 -925364418 -602528771 --836004701 -338244099 -832476931 --281540406 -753666758 -669556913 --62162595 -222233250 --163850290 -237474301 -710991041 -180036908 -111109166 -534929363 --468896971 -330146553 --697641338 -795926332 --26305531 -892105480 -495279741 -28002680 -872698290 --986087919 -55039952 -109981881 --706645826 -866015366 -6504456 -958588819 -734237410 -369954862 --93153312 -8213607 -528722040 -30137234 -674467405 --325453953 -132983209 -779927413 --524239098 -951370468 -41272672 -856270325 -112589555 --643473661 -419867680 -149956186 -119164131 -850769651 -163781572 -715605261 --995803042 -397643312 --632260367 -265352500 --15949331 -711048650 -150275098 -809911372 -717866788 --800850415 -593659936 --730346344 -220226793 -141241868 -66355364 --92734729 -617055756 -353041265 -288304647 -510286224 -442880435 --532862644 -821310983 --453271170 -163041305 -456327262 -746612198 -101299107 -11540134 -214193661 -920567920 -449017622 -799729017 -488374312 -507208245 --664693879 -371497354 -627825061 -498477759 --388124448 -166499268 -325407618 --215783753 -57920424 -777331157 -833437012 -839443155 --638352592 -281125377 -807592879 --918339843 -495501936 -750034531 --155087310 -62916752 -78630427 -864925856 -319544758 --994031798 -113868333 -893435435 -178775902 -654532244 -589944519 -524079456 -578767699 -430701190 -374354123 -92904099 -883182404 -868161203 -645724112 --469212377 -496390427 --630722512 -475080418 -862979232 -132689797 -912655380 -394334073 -261246295 --367041049 -283580252 -89597500 --310422294 -249648230 -839515096 --345831653 -642739377 --77455179 -957580078 -169731748 -153153087 -334546797 -405166862 -179332441 -284560743 -856522319 --663865860 -734102082 --676384633 -569421412 -971006296 --917248040 -947245827 -136189672 -335550375 --188332337 -648661745 --40953661 -821313135 --473254829 -965453167 -73001995 -95369436 --326278942 -734302773 -170134577 -391660176 --147968591 -856351099 --397529714 -412130304 --990499388 -400606991 -601819000 -252743573 -259489345 -638522604 -517258666 -394539577 -787019248 -12726882 -880957508 -563736584 -857031356 -972836844 -706478715 -710172848 -442755197 --815240032 -157263713 -328205506 -912180109 -119899825 -622205094 --89343340 -344962700 -299754750 -381138098 -893064058 -3234126 -70554953 --625409626 -635534373 --64875750 -32045980 --302166248 -409337302 -27920305 --310925084 -561877058 -537781085 -369118457 -519054430 -395498501 -491692869 -11716421 -394558257 -364103830 -633269671 -844893707 -864025678 --527842419 -748364750 --456456841 -110814946 -151544564 -511219429 -972010145 --515824065 -485337893 -179868180 -577194252 -132149480 -499364386 --84206179 -804844081 -696281959 -114367159 -848373783 -920640187 -18497122 -395242302 -70791649 -850268501 -795298672 -515442320 -942211501 -697760430 -122968889 -534782908 -261482158 -204553434 --429232046 -825306470 --212043436 -986745170 --376485278 -20167067 -26267999 --492063521 -786843790 -730930479 --859064296 -382658893 -923295782 -354439789 --178815205 -436275564 -107328264 -71744926 --883161688 -586844231 --397227694 -369625417 -114969894 -185078088 --570131316 -665797195 -916159200 -419990261 -191131300 -650807294 -213631334 -531108571 -25318474 --621202525 -756324752 -536590249 --599223419 -228290696 -85117419 -100371747 -937624388 -187592692 --208982109 -266161592 -363579334 --886241600 -674790369 -911015233 -172001329 -975279888 --697290708 -985042390 --670438579 -248384963 -531441862 -326264802 --898036365 -859845496 -295947375 -65068767 -296174718 -687087040 -187615625 --2664529 -956864483 -575254006 -492820159 --669816650 -638505979 --324883093 -852605890 -512400099 -956036614 -620986645 --474907713 -124942743 --888691354 -340323672 -876012064 --902306550 -427926573 --475498900 -866069102 -144867312 -189061392 -576264466 --657891482 -517004748 -924080425 --531600629 -527146256 --331783707 -974779025 -607241856 -997931479 -754465594 -713618160 -484622204 -649393610 --549787071 -47445508 --985157391 -382505868 -19956215 -917901422 -109377569 --986173378 -727270373 -623290370 --176030459 -588916005 -703238702 --750756074 -396148354 -844530996 -789177313 --471691847 -335702671 -586551100 -962291166 -959468162 -602675621 --378258348 -608816400 -968546255 --472818753 -516786559 -436100696 --898635284 -897458042 -637611444 --173747740 -265896398 -494800531 -113663046 --259103183 -786525009 --523979458 -621010328 -674957620 -414417756 -186640462 --64139970 -810332184 -381432241 -871620883 -623242540 -564917268 -765488387 -800085073 -643823879 -608277159 -711913661 -490419850 -339574116 -708530487 -707553626 -630463796 --98979122 -221343868 -730731359 -143029838 -757334769 -405068313 --631203041 -682616761 -861703285 --779654839 -750992939 -280014676 --300421246 -485701778 -660614011 --738555639 -881088393 -869402564 --312853961 -362855144 -394165819 --795894207 -84931866 --714098728 -712863336 -686527539 -218123162 -773973407 -300699609 -134581296 --513275425 -549450949 --543504076 -433871133 -168270472 -97255596 -323170482 -889424209 --191263740 -56142105 -290974618 -206075883 -387902197 --408114125 -102224048 -174100389 --101217153 -856543408 -489072528 -468881902 -110684244 -677916760 -204730524 --241038484 -777020155 -527902420 -426901945 -127213542 --305747559 -583102778 --460478145 -225138949 --26939631 -279049147 -779271233 --791806343 -624188172 -10487697 -269490981 --794927212 -176084420 -677945660 -363447291 --504307250 -430971182 -912984884 -863258154 -6124793 -38604548 -381522802 -784617135 -171284957 -266504786 --588725520 -115023370 --488766780 -502833729 --815078067 -288620659 --466839218 -242206090 -740619775 --983301952 -504674493 --697206248 -373448337 --372700890 -470063221 --137196666 -206269493 -44607570 -529754955 -973702923 -501278117 -56821123 -324087443 -841529959 -643684313 -867786655 --816414981 -296278465 -886657630 -376715885 --496178389 -337001628 --495604261 -473574627 -268312365 -979281101 -389597461 -915810987 -830297733 -122532439 --343042710 -364044723 -168644657 -615620825 --841779744 -597757943 -783144139 -459142222 --235519956 -472740283 -882794102 --346494353 -750437393 -97838134 -417995320 -570906136 -402971188 -308080708 -181425925 --602797318 -735703948 -659978023 -890260357 -491229156 -139093450 --853566628 -848175355 --980093886 -441015850 --594612466 -703368731 -689039989 -31317233 --546215692 -757550661 -70101820 --345977410 -990059880 -441563845 -241273008 -706476282 -249993354 --8213607 -870321842 --210316666 -228203459 -398118877 --811642424 -557977024 -376194196 -270782492 -717861260 -540106490 -192590198 -448551492 -2599573 -198137544 --258928417 -354366551 -857919314 --620237882 -844023666 --636631792 -714636570 -235378149 -681955073 --468617038 -37390909 -319403540 -205992476 -850160833 -153203462 -368556641 -584268988 -671785027 -519190699 -962716359 -342342067 --792246787 -940181412 -749559613 -688325466 --335618655 -11894099 -291312560 -759652209 -718168944 -382906304 --461266473 -131031870 --386626953 -784333838 --972225339 -707196327 -861246777 -342206273 -323936850 -366591818 -989910449 -793711670 -504067720 --276087116 -924689555 -44506001 --151542577 -86962950 --956240395 -475122666 -245045068 -512031507 --989060347 -130817041 --100371747 -388720652 --729628124 -712013434 -107781253 -868144281 -584116117 --588845803 -352795735 -370435980 -944297478 -208460133 -333911795 -455912997 -268362249 --276474822 -366374541 -296195189 --156817842 -342671752 --546471527 -168109835 --77495381 -710764365 --362594563 -825750761 --226554083 -357010462 -776476160 -853655229 --717612330 -978163163 -686399494 -222292308 --538058880 -902033600 --205584460 -519289329 -781326178 -958042638 --579946653 -896399909 -459441623 --581636194 -43537946 -60038313 -353714016 -718787378 --869214339 -763902403 --875461638 -186780066 --516813897 -40724007 --602559056 -995541548 -437366588 -289370609 -885709988 -18210659 -871521419 -863647366 -464200147 --841560178 -458524438 -799013173 --119899825 -69620199 -706196803 -96549256 -784999360 -44771001 -682418006 -616043650 --886507872 -154195080 -590915443 -907273891 --779018800 -367265584 -963206838 -526003873 --606145606 -332127547 -584031040 -116405878 --687758322 -88565775 -807031472 --354458042 -388037228 -672330547 --536500334 -133175001 --289079816 -776769765 --949040816 -134547621 -694861207 -44029168 -56723967 --626841066 -465310201 -11067593 -200394571 -431106626 -14613939 -793852097 -124222416 -436611307 --76062570 -742409067 -753383779 -169778196 -307602869 --153785114 -713327647 -352471680 -103190322 -420495200 -610158557 --806359686 -575447732 -46117554 --534940030 -45962896 -681087616 -846909936 -326443940 -765019462 --879140268 -213565920 --152778787 -220226179 --758571909 -878492007 -808646145 --123449510 -355358712 -974234902 -300971103 -919947350 -734968221 -802544377 -928499122 -91251179 -338130618 -436822970 -354603575 -927963681 --47646493 -855936393 -483300571 -263360814 --436865451 -116752703 --134611985 -646617172 -730600682 -473036165 -920178768 -393148709 -437007075 -101280424 -484805101 -277706548 -270336494 -102399647 -168959539 --980882927 -943348772 -509375006 -919155779 --290654013 -724281550 -797024509 --924316646 -558605823 -756465859 -72640113 -795257891 --972222535 -194785396 --896337063 -643060495 --50405967 -180991570 --53232362 -605996483 --282162890 -652865964 --520749167 -972613905 -46452868 -117043965 -93664237 -104655379 --862700976 -280362049 -603238083 --425407750 -692361530 -858887135 -546101890 -359596537 --708221020 -197511438 --479637168 -948493697 -568077462 -311199808 -290833398 --943817111 -867816472 -961519858 -807304333 -190520090 --875080241 -77412648 -333207263 -67497032 -719668837 -776468290 --117502926 -920132829 -868122502 -985022594 -416248422 -763275844 -924450702 -829615161 --192483073 -120553957 -797437263 --524706835 -636725572 --378902514 -105402432 -272289152 --1116947 -105780858 -178456346 -90868544 -603981623 -942170196 -86392417 -956804125 -299827853 --20158110 -612544568 --529100287 -282208130 -879267375 -681211409 -726546320 -11675316 -933856366 --739621365 -114870929 -453815287 -578321614 -820711949 --808646145 -781107514 -108509781 -731276204 -783749005 --178456346 -693244141 -138398432 -901444586 -842733283 -210184217 --160738774 -753484019 -406596821 -576221898 -851798761 --159567053 -707264400 -42641856 -598228305 -876726020 --648661745 -170418089 -392428403 -789813761 -600373461 -551331271 -245936002 -217230253 --994822225 -588838915 --405212299 -210452485 --74556115 -117978818 -183814536 -41751530 -905148842 -297125409 -927074187 -835613565 -65766287 -248840827 -735334981 -144720069 --269959934 -817831208 -577437332 --971481871 -89617363 -909089226 -836647114 -704477015 -320604372 -977985595 -51301112 -546833281 --584276692 -444616413 --792967004 -642594166 -680991403 -572800455 --114441689 -241190608 -887790367 -629588933 -216507393 --487731583 -237832348 -940899103 -146876108 --286623565 -676334226 -703541784 -209495844 -637857739 --345451273 -216553504 --725128865 -528638858 --610567309 -292348633 -631983659 -872852896 -394358242 --595495743 -428035556 --39505417 -762933993 -825825506 --538406325 -785024060 -604789453 -121277383 -970754378 --287466465 -974829717 -253653845 -210195122 -946181175 --46721290 -152344413 -76198309 -279477459 -132787431 -39935754 -395337716 --20669616 -846544996 --192723241 -244166187 -944398658 -232321269 -262862756 -335226279 --302384972 -62154328 -941491325 --206447228 -629710514 -830107785 -212027241 -766788709 -107145536 -241167399 --739701080 -876984077 -917068235 -265033693 -217112738 --146027954 -176034618 -795406782 -258065965 -393248630 -204655500 --672841837 -182875302 -348357566 --354894228 -51631169 -390644329 --273135715 -701994941 -143898021 -287507130 -24999991 --621390765 -383122683 -967422238 -636174502 -850813289 -770494235 -570122963 -374077950 -736588357 --769714511 -464870306 -483433679 --398455243 -243472489 --250264589 -490849101 --564953387 -445886883 --861782009 -516823432 -75851114 -303798584 --47288205 -390440689 --288935878 -854166582 -307541283 -277862689 -802265007 --107688417 -108521170 --836136991 -850529674 -131260199 -80683276 -178173004 -897353122 --43639046 -185090912 -652872178 --221250049 -858992927 --520648753 -237559070 -893286051 -532406147 -567247501 -837137139 --106751804 -967568368 --520935308 -113137963 -97389128 -478279477 -282749853 --147865224 -522104734 -507395248 -980601428 -630574336 --113503205 -232680588 -522032419 -168108103 --676783883 -500969260 -630768517 --924935866 -388680018 -903529757 -192781380 --601874023 -237534408 -889741553 --47902176 -456513420 -848276967 --651615961 -202910696 --764539986 -411498997 --996807065 -895967765 --546633539 -377193974 --106154444 -901779377 --51917914 -191671629 --516672894 -225110907 -135196519 -247336062 -839080648 -785648179 -623832343 -820423682 -373264460 -611978056 --138590792 -431342984 -922225203 -815037152 --394030714 -824109179 --840475929 -6078886 -319506940 --72717510 -74704831 -26082594 -722311577 --238055203 -876238844 -546001194 --990631051 -885685242 -683463697 --816118239 -796632104 --185435925 -148971449 -341811673 -2492949 --239443979 -393567922 -23149050 --715845738 -348252718 -27699901 --47569563 -344000773 -672451180 -132864583 -895893612 -333967802 -744121478 --618102472 -692046680 -650772439 -190961655 -706049986 -758616100 -955181902 -899968044 --218627940 -344117637 -634429890 --612086457 -719918252 -370683688 -492458073 -846902602 --583073667 -528286287 -417967721 -556180615 --164912100 -917048721 -483376918 -251872068 -333670693 -482582684 -334045769 -94666181 --77392360 -281928186 -119550098 -644850339 --22521527 -341032478 -588829537 -346452442 --761184023 -675260847 -799301836 -611164634 -821503526 -69512705 -842038306 --764808777 -768604466 -829627117 -582167826 -560833693 -251279117 -260353982 -815514789 -486672798 --693255615 -886731860 -870731201 --707735235 -220129274 --866681525 -465638614 -864487240 -782354313 -237917287 --114466395 -370751339 -686475623 --932779953 -991354278 -627351459 -259265706 --264495197 -247002907 -873259405 --781771628 -556466365 -475253099 -834108523 -96086189 -477496688 -558418618 --382841028 -471008146 --50947368 -229191690 -465439853 -536654851 -80972879 -699728060 -720078394 -233869043 -725856458 --781628903 -613566209 -580767109 -615536637 -430490796 -246038528 --751955331 -625749178 -624019038 --990047647 -28178950 -28355684 -954666551 --143898021 -487724195 -45434973 -80175353 --913269332 -368220945 -416361554 -168755447 -922569663 -197489011 -35858705 --248233841 -860829009 -178833594 -720858672 -643111759 --462106087 -99468478 -213471827 --701255890 -562266734 --97572078 -538230694 -306605378 --961728195 -850796243 --421191439 -493026671 --684064523 -287014491 --461650166 -267268945 -399262657 -469554570 -525941523 -170138120 --146790310 -981184296 --841213927 -321769300 -499361805 --264606959 -98835761 -160396819 -198266213 -500843872 -744235153 --892061465 -936879163 -850823365 --429037584 -333564784 -509777854 -472599514 -399566531 -264496703 -87280981 -513375447 --419971132 -133750874 -523365595 -181391880 -391277074 --184548525 -97677608 --761558677 -57318796 -11209467 -18743959 --171624804 -736846693 --878135002 -74138661 -850366161 --697624614 -203509750 -70107893 -452246806 -963566857 --281964045 -712719761 --578940202 -633560326 -318592090 --784259453 -730179326 --114784925 -566991226 -499501382 -783202151 -674540903 --278598147 -708292008 -383293961 --526908674 -901325669 -883781789 -102700284 -733458060 --157862601 -504039935 -979171059 -758891851 -361667752 -519849524 --909440860 -802631929 -795941781 --682358996 -860192819 -347172582 -178673451 -37969588 -976794928 -258247168 --640091100 -417531647 --331097352 -81306325 -492481691 -541245095 -698207944 --180564166 -944921226 -642240709 -364478396 -470726201 -230654791 --164817326 -478938775 -436029004 -899310962 -128252266 -515414004 -863831049 -376565282 --5082936 -783522181 -703619536 -439781168 --701617395 -365401325 -582635465 --530665496 -364657720 --982741764 -651802114 --920118253 -165540209 -664051096 -846860793 -748619633 -174554989 --712050404 -116921648 -183350101 -552419674 -786831801 --366374541 -108878520 -948087153 -263090808 --565842421 -154906856 -126921032 -484508164 -122596629 -415525704 -20456917 --834880509 -392891462 -916914271 -455746840 --605997389 -974331730 --193142335 -722796462 --84208938 -653037840 --200221795 -114367401 -796425771 --698729136 -342901670 -66986609 -449741020 -974878651 -564893290 --934213023 -555677615 -343235461 -850364484 --752516665 -260397040 -362250880 --357805732 -561466390 --3889545 -698278861 -244232836 -791841743 -580129621 --875143622 -814897654 --156311871 -371175244 --579509254 -976924984 -551659884 -92297784 -565062338 -477010016 -836649384 --196395159 -84168338 -848027058 -658335147 --704484938 -913386262 -777916072 -312684949 --857468272 -827190675 -658651714 -941847158 --37533640 -1782302 -777779371 -469149277 -819921370 -317377921 --163987387 -951260971 --32198927 -220238625 -951017119 --907558274 -802039399 -304121763 -351065652 -278498029 -800298968 -129734701 -244855542 -41816612 --729083355 -456247589 --714168229 -395019158 --398379523 -617001188 -271834381 -320912553 -773455872 --940436351 -192900907 --327619960 -75383340 --125604806 -529022546 -378098353 -972500049 --946616072 -87227666 -771106203 -989343329 -739952979 -532324721 -747451773 --478341790 -350320968 --722311577 -701176528 --334915708 -459455947 --248528125 -679686524 --523692783 -312393121 -168272967 -260828328 -724134287 -477371511 --813892137 -332465794 -445151983 --477772714 -804592521 -328580733 -638900558 --796495296 -734435205 -132889747 -246368797 --63006171 -703452050 -502820513 -212274816 -359042138 -876888981 -862485043 --658135649 -794235248 -668214105 -187325410 --122539711 -313729452 -678713120 -267267459 -906238206 -642106073 -939452959 -187534808 --959440838 -623313128 --889441883 -710301078 -81634110 -286234250 -756712713 -174699185 -973523696 --289032236 -983200688 --17012927 -141181966 --603185733 -151396514 -189247819 -41867091 -545876376 -857991332 --805592140 -814893328 -875457055 -425213524 -43635357 --582875859 -433425512 -403115474 -845083413 --837364276 -528902581 --813277235 -707093248 -863920627 --372916954 -771274303 -89783362 -90651103 --940843671 -543150219 -529380458 -540478237 -950537799 -288950461 --667644609 -171367332 --325293293 -544109174 -747060366 -258624647 --683709082 -112253021 -328108433 -372133799 -576047754 -893460953 -623448567 --803565340 -539246319 -36625962 --969463159 -447724881 --420317632 -364596390 --469354013 -500256645 -336038647 --229109278 -99233297 -138192093 -309814526 --791650109 -47742293 -926969813 --116714971 -163178958 --184278648 -860384203 -342780684 -749596562 -943551562 --597099175 -93263002 -672734286 -671893551 -34210421 -994439704 -262263054 -645616961 --844820593 -50255037 -546467121 -471383114 -173479055 -799955678 -825472118 --732000036 -795456140 -793726574 --763866307 -613445168 -591432866 -183808416 -676771013 -704177672 -975999202 -937526398 -566959492 --796786631 -816521172 --788138469 -372922933 -322500964 -113905690 -17396817 -457431497 -310315675 --939583284 -515256661 -742061015 --811538982 -521888775 -73888927 -997557354 -932310332 -259007820 -523003835 -967535227 --684844485 -752831304 --566528286 -108875725 -438151556 -790654623 -190323607 -15212383 --571163528 -279553901 -198786083 -784348419 -699232126 -856636284 --254523899 -264965602 --180970090 -925536519 -681770508 -627649750 -802558324 -944909875 -597617966 -918334902 -273183603 -14852218 --818018986 -967759147 -712862701 --241273008 -514365652 -883347602 -12991451 -197742587 -918636975 -878743962 -864694394 -926603771 -763619708 --423129728 -376102717 --888890 -747066000 -527050882 -718197381 -894171185 -96437125 -243145871 -425242260 -962162312 -350573741 -132974858 -590805756 -975052183 --30867348 -963187696 --250500113 -830998978 -331203961 --90083394 -870035738 -721660635 --211677843 -687284377 --912419380 -556829247 -816582711 --584031040 -319232257 --981918358 -707635506 -800028859 --862641740 -101556953 -349613410 --563651253 -189792472 -269644508 -648997918 -500866719 -654091056 --28406760 -57785260 -297251810 --144636475 -715653261 --739952979 -737752248 -305003609 -108877486 --660320072 -738188989 -246715277 -658337998 --623563286 -250714190 -183377167 --463398867 -354490255 --600769121 -676429124 -261691493 -744205711 -911988860 -85922497 -923824503 -10258958 -580202798 -156882 --322688671 -122955624 -327324608 --231286784 -258604174 --794768420 -863941689 --61720629 -829647932 --867768401 -361158997 --878472082 -603347114 -785511537 -833467398 -500249083 -51631831 -518420859 -167094077 -955278530 -593914593 -476925140 --431342984 -669256392 --44506001 -93935596 --902796493 -796371208 -687112674 -620204829 -722771447 --296213639 -71171231 --422534833 -964014439 --226708251 -806400175 --244428397 -86045122 --972723890 -853650879 --21119501 -89675195 -743126111 -216666394 --953029793 -805798647 -465362510 -679165073 --292761949 -887146290 --548031677 -329906606 --776946854 -280137123 -858721510 -706022347 -381727120 -319322203 -782736515 --117213460 -845434211 --117591935 -157964496 -551416814 -580103315 -718045141 -266999761 -102499289 -889403879 --197097378 -7381009 -287254980 -373207205 --865923587 -464727394 -482379193 --41681801 -913815473 -778562828 -962192721 -427524094 --311379681 -28900065 --83049679 -319183888 --239141877 -513080557 --525302257 -928394491 -655207662 -536911282 -807216073 -871866627 --769492181 -171936101 -57604385 -525103835 -581009357 -819501389 --722266931 -425316175 -382610722 -150614541 -59447027 -91496849 -595879550 --115306594 -735315691 -599205006 --345820557 -201032957 -123710882 -236102762 -603888620 --625469312 -578381947 -712261633 -358335329 --508640239 -161573183 -685737730 --561575611 -205966536 -460610688 -636550039 --405680334 -432267679 -476182395 -128472776 -420190134 -238843228 -215458285 -54795697 --512204203 -21328433 -972781234 -729751137 --269949711 -272508620 -58365217 --396505113 -69960139 --21737353 -482890096 -403105946 -12106994 -377172491 -500153141 -215802754 -125206871 -764323536 -753937769 -258113733 --31204438 -291659701 -382753476 --847894504 -766630885 -419040493 -475633638 --460408953 -933499383 -1192993 --42736366 -857005241 -955047998 -320868206 --364815769 -207633246 --288289388 -66631129 -782497450 --37599632 -725672630 --678012547 -568639548 --770347331 -750765787 --227427790 -606668968 -527632572 -965353060 -96750791 -88677387 -681421239 -760729235 -365133425 -855187720 -264720523 -730843688 -68206479 --842965455 -339836948 -799092169 -229163184 --584317943 -604174356 -9664742 -297944109 -219516173 -28088732 -980912513 -924818599 -409033018 -191125248 -500449477 --750798695 -280585548 -158726297 -234550592 --965305813 -632858579 -910104717 -601802668 -161603437 -876529307 -327939281 -226054775 -618933162 -693161614 -524384008 -157723919 -171598166 -128389358 -257329147 -107626593 -115212650 -412060557 --634736360 -320856444 -60325738 --46705249 -672817252 --400463332 -317940456 -27230443 -428587256 -204934271 --530979782 -175163143 -651370413 -838019227 -91784178 -550302143 --665797195 -824329447 --195509967 -42785401 -31803312 -43981855 --979884082 -106320289 -154172729 -284182784 --450673759 -362789846 -35286771 -544387369 --536737106 -157317796 -455728213 -337504354 --945296341 -51452736 -273326973 -321761412 -901478347 --746431750 -393816914 -735812368 -38655228 --884965175 -757299318 -31588687 -686192378 --348560074 -711150117 -519866827 -431551273 --854897535 -783454109 -16369780 --314227036 -828815585 -215378639 -742717005 -328069839 -556749041 -501740601 --649909477 -479562088 -298968553 -862087170 -496062701 -978612610 -948192419 -570270688 -948869240 -842992346 -92157488 --857772836 -360764077 --403022000 -523000316 --271252095 -402788529 --518489170 -532247595 -789797738 -408607911 -800329058 -307959250 --735259690 -487439200 -385464748 --530002141 -152087706 -498176761 -221407207 -117061343 -286532347 -547875904 -754776493 -485728468 -328518573 --501508313 -100259894 --347333863 -199539997 --398462436 -740335816 --634593695 -23277808 -594818664 --123337242 -383145166 --836649384 -969734717 -819475291 -531026084 -235472451 -390713819 -954565729 -145875813 -210689883 --411275937 -188776390 -397621561 -154068031 --913734174 -750078683 -123755218 --511808875 -895185715 -532059429 --58456528 -609639427 --237031775 -470684809 -141884683 -170158161 -132475561 --217358735 -878244777 -659047276 -743934725 -919361761 --61233484 -864590730 -4208405 -884136746 -997389928 --356271668 -456308169 --264231480 -307733218 -316673996 --200870235 -632677291 -649233776 -218627638 -474123932 -960715447 -491170839 -599187051 -301820677 --384193573 -158324223 -553045878 -393134364 -16647515 -419668527 --653674896 -136222425 -696970867 -331867284 -985194558 -485175943 -565563453 --925040453 -852730683 -974577552 --841607187 -7910627 --532247595 -928750047 --991697440 -121620735 -316514625 -246288489 -630946486 -470839822 --46798453 -539392407 -446583770 -538280117 -618070929 -800583844 -811613260 -391886341 -410943864 --909835734 -317502912 -397334336 -866887142 --769079766 -816823011 -810644024 -29266358 -187329206 --614459587 -689484274 -650210596 -957067521 --383145166 -915723327 -94459240 --983804233 -308712982 -291479865 -69069446 -948406952 -214319133 --628002998 -37340720 -26540834 -952999233 --625024027 -226341801 -575348912 -802980344 -952834920 --575473082 -932119778 -152648790 --774099165 -61966290 -575708197 -208742464 --255616786 -904595884 -640898936 -275208049 -710294384 -564988795 -771422138 -630551158 -545216535 --672613355 -764452255 --572623967 -331941357 -625135366 -720373577 -133674851 -360191167 --159249763 -166070426 -724186156 -497741089 -543780874 -862453592 -81282354 -331447143 -306225485 -54801973 --463474300 -487023810 -535926722 -664999650 -769514570 --617793063 -80135173 -345156616 --751003133 -42710711 -500504385 -273307309 -30247799 -644752238 -803023906 -711183593 --580961298 -850737698 -826144145 -186549564 -985827876 -599208490 -160860700 --754711431 -692235511 --573808470 -494112959 -99870227 -989705093 -30887034 --667252740 -588438619 -467144004 -703669195 --371052229 -180605504 --230628081 -891946549 -823240635 --538271629 -903386823 -38711565 -910738488 --37744319 -19881623 -172993647 -620262770 -310496192 -748128416 -633969793 --746149047 -391597124 -175195371 -50152691 --582635465 -211517590 --331552406 -581779088 -695836467 -660214618 -723077497 --951428034 -108270830 -973132998 -988466811 --69512705 -13786490 -522397729 -100770899 -912028762 -392616318 -47804460 --339856634 -35769857 -627588657 --341689176 -541154841 -449991906 -521168376 --761370616 -665429440 --92481972 -643990926 -728583278 --862040 -916198599 -684591062 -445105084 --815400176 -626126028 -534517364 --508801604 -626980623 -317285517 -419677016 -573963212 --683039716 -735237920 -33231109 -697043187 --997061012 -558716558 -636752092 --695953862 -685146970 --664865539 -753377685 -968030772 --178613362 -339254092 -941879753 -973714319 -280737820 -988658654 -848556391 --196389910 -726970715 -683411256 --677916760 -909089287 -650972933 --662316420 -106289396 --198088286 -944523749 -175338984 -236644091 -378335102 -608199621 -591170942 -701946155 --815598288 -277506810 -159569087 -30697387 -156113601 -840371803 -70577006 -593983892 --902938271 -862187582 -395691788 -28340400 -762750631 --976088107 -580388154 -472095453 -831468801 --755841431 -906837444 -260677935 -608587290 --104208763 -560983782 --670506981 -758806537 -725131871 -191185426 -135634319 --277607486 -688231733 --944420254 -790677597 -357350005 -381899948 -166847790 -186479701 --407815379 -512483678 --297382924 -476649408 --141316386 -714035464 -462811173 -245916991 -179650140 -578200815 --600367655 -22154990 -277869326 -37077852 -672694423 -231470603 -635674119 --91462952 -139994785 -681021152 -749869709 --78054583 -370152242 --62834447 -445926140 -614979449 -437279410 -971166457 --417390438 -205011189 --68813927 -267170226 -819241101 -318428119 --983139752 -744662032 -71269194 -458215162 -852901658 -892606615 -302956104 --549769083 -566485544 -873725741 -808015961 -613079540 -294918938 -90487250 -59588677 --527541779 -42252144 -117121425 -920205046 --696048972 -397021543 -669178837 --981184296 -932026078 -641933334 -426751351 -22370659 --357476629 -170234662 --149353593 -769527716 --971608347 -366738065 -292244744 --835955050 -627684227 -255239750 --34635799 -988524398 -419643091 -708788760 -465420943 -648952306 --539838509 -572476366 -533610063 --652100083 -442381002 -804465903 --264496240 -138879493 --187569679 -57889063 -501296636 --194041571 -650978105 -14600862 -938857992 -517388827 --591584625 -815403093 -544317240 --645157992 -756674898 -872033163 --45909199 -386899715 -247644675 --658337998 -885188199 -712585520 -172310212 -523327291 -252557943 -710946482 --244152900 -295327436 -431828298 -488183699 -593818165 -952199670 --519935611 -127165107 -922886330 -72362556 --760729235 -881710297 --917218419 -521491508 -117851566 --205812119 -535832970 --951559348 -850246358 -341444683 -203637545 --353041265 -151252267 -626234818 --135402565 -968788474 -755342904 -973079493 -299269425 -384536514 -532135906 -841273879 --745851692 -170597854 --816819107 -103625812 -229373933 -801891555 --518150131 -299627692 -249832725 -255727171 --215578528 -854053700 -952039419 -772037473 -312820912 --336973412 -881039369 --461956618 -634229946 -805998792 -307646589 --280083491 -202414467 -679866266 --16851772 -754919803 -455671339 -598287026 --812588483 -516478821 -197953370 -997327323 -614454196 -505128911 -297779315 -790145323 -272538509 -644655504 -628521510 -566163136 -168900315 -825105469 -835615911 -428266123 -639634094 -748835063 -94117170 -647058270 --321767845 -551010848 -220068057 -334750232 -16605679 --888922831 -371689278 -327942021 -879798050 -21623479 -227022796 --468913444 -765260280 --53733084 -247375101 --156852300 -187077315 --784466972 -170999293 -595717329 -929688223 --882616563 -816106777 -829838243 -45920869 -804210137 -330439604 --157198929 -469006529 -839073568 -300261638 --707229418 -627114529 -234908901 --129867147 -638560856 -520826173 -541223322 -578703107 -819628718 --644464728 -587499882 --925787054 -147421976 -111247421 -16214533 -380020085 -93776228 -955349455 -530537974 -774848329 -940596611 -617995391 -362160862 -674367358 -665754737 --626071633 -3232466 -963896171 --511045405 -933374148 -479248115 -224286524 -238751477 --532921345 -317795813 -984434385 -6880166 --774449039 -79721557 --831468801 -648866818 -303466160 -439177565 -690455320 -18375307 -588682622 -133362646 -83556161 -179422426 --852116646 -982983419 -838939352 -246344321 -53210038 --691717738 -912290742 --935398473 -491834701 --579594832 -372524004 -525645850 -537959118 -643166380 -687677844 -937170341 -186263726 -396582732 -957793090 -480327555 -194043739 -861071044 --245571711 -429857415 -663556103 -890375617 -824866689 -145537363 --574389853 -557432352 -966261111 -992939853 --25602006 -415082117 -311624832 -415619401 -840117969 -217817726 -211289523 -236276133 -112693669 -977749024 --917901422 -995589951 -588885398 -949547276 --104655379 -995431582 -502497835 -241937764 --142397274 -638570578 --656297786 -431238701 -356588805 -205488466 -509027573 --922830422 -645947954 -238972969 -624376713 --722787956 -465665350 -936612158 -667840602 -367104556 -556269348 -940457215 -924738338 -556603074 --180905936 -61648345 --193437416 -769614283 --722229053 -823962664 --884811493 -196241470 -330141299 --412130304 -658282407 -539199240 -140810921 -932158155 -221787983 -158232675 -920658345 -237461877 --857031356 -837830166 --794326806 -100892912 --788684884 -544350187 --498257465 -942522749 --630782218 -957867241 --726340744 -698225698 -666315872 -20458639 -617116041 --170744638 -294672624 -297277959 -979496221 --646304357 -487458572 --661707850 -857525289 -232535130 -495219401 -412061445 -399617378 -955103542 --304969644 -85988641 -568293308 --749016748 -46487046 -736434451 -829010675 --916662235 -927995911 --42091954 -792946534 -153226935 -870681499 -83353394 -133281200 --678523944 -867306769 --299357253 -719369632 --33097690 -844623500 --460886101 -363181059 -444963311 --563268921 -86449182 --861924615 -495862777 --118270278 -96479962 -40574885 --611010812 -890660441 --303518032 -216681371 -335256128 --29396133 -955560002 --845336947 -965402019 -372797038 -877603005 -768855673 -469654324 -576781565 -633799202 --217230253 -260402458 -610052361 -515083777 --671483733 -74703351 -821917760 -984282648 -739767924 -220110972 -519986994 --252103285 -602889660 -648939196 -758991155 -290021907 -765026838 --451674143 -105177433 --223211472 -924661913 -883183535 -299742353 --491552273 -451181580 -141075811 -583078444 -80765322 --208144066 -75264276 -563817101 -909029982 -16398759 --285140449 -218516957 --737890237 -599695998 -59825819 -167967542 -876689226 --195816105 -617225936 --49410645 -300498675 -494348336 -447958279 -237923166 -267382376 --507980466 -442852279 -745762883 -233496618 --501740601 -983738889 --724137146 -929295476 --330552952 -108643902 -43717581 -318540855 -873607818 -761883472 -227022850 --607361402 -826578456 -291859274 --619299578 -16661576 -458130325 -440864193 -619487860 -202673459 -478077180 -901900331 --940457215 -599530600 --725324805 -913601970 -369397780 --68115209 -211157194 -390745603 --959086711 -562705425 -277026713 -346027355 -234086905 --685558277 -569161425 --223944970 -993805458 --940228507 -982297280 --452082735 -892366455 --627682453 -81417351 -741245358 -483452133 -639259394 -286396742 --530150403 -867338253 --206642164 -311896103 -934040358 -356867327 --818184410 -300967781 -716779747 -391212143 -817083220 -333715427 -740656496 --697908788 -41126763 --395987679 -297005767 -790773474 -460903143 -158845882 -837389139 -322765612 -557452986 -710674781 -405924650 -595658486 --450616827 -838597006 -206706462 -538469683 -485536232 --630672353 -459795147 -148015132 -212087363 --184122065 -932403987 -717555073 --921208586 -521029252 -90996192 --238972969 -709010759 -26414233 -353848220 -137919172 -319223225 -504510795 --200862197 -305677335 -907654773 --115205340 -851486859 -849453763 -290853161 -611608506 -225739001 -468491216 --730275293 -36665279 -995232255 -99981444 -195916784 -730431096 -143551613 -266233964 -628964293 -151905040 --599973377 -117052439 -895149728 -482777485 --270136969 -198803066 -635759520 -803669516 --798757111 -791038957 -90064605 -465341630 -330973379 -403052448 -291165347 -884183858 -795671376 -747686264 --908355317 -795090253 -425253716 -432836517 -716202654 -798971942 --541653598 -61092277 --113516374 -437204811 -431143275 --272491483 -330765691 -561090329 -295392691 -260115141 -508631071 -601857850 --608147420 -432592911 -948074643 -645945931 -929779609 -100467328 -355350207 --644348454 -281769785 -598987646 -150624648 -458712892 --852071801 -668125472 -561028331 -911193394 -262303997 -138319041 --467702407 -476305565 -274346565 -194948502 --233286358 -520693640 -431143294 --177564682 -872548846 -689113088 -373355844 -36513907 -590388627 --112969220 -452803308 -468950128 -676558089 -5048136 -988957031 -22085374 -480130570 -580993201 -104658922 --176309872 -889105008 -184005558 --851486859 -911338551 -935508866 -813385473 -137949939 -852840453 -79263994 -138942642 -813409130 -28518202 --387362651 -209605595 --904558173 -432099717 -797637890 -231025488 -83904717 -896272569 -153382782 -143705998 -91708693 -293178509 -539114378 -546856242 -729133863 -298646632 -916413669 -483203765 -103295930 -449368109 -159477173 -274369710 -781010399 -380801735 -370682429 --301031587 -359298158 -877896775 -831972483 -377135110 --324486344 -12345872 -251517574 -312215934 --831134718 -900951782 --245410590 -294720598 -998842265 -783285610 --436100696 -477491493 -976914824 -506421308 -443579169 -790617030 -1185851 -728056316 -196257404 --733732890 -515705756 --74685306 -837239189 --546445580 -172220955 -905862598 -543068966 -541752885 -707002398 -544858991 -292783976 -120303382 -303663827 --711811550 -541666183 -281416571 -884297096 -170373397 -463858352 -120308198 -948103484 -270654406 -828288741 -852841757 -615013898 -921893855 -681932086 -367314335 -657216212 -250273449 --954083302 -821301807 --918932717 -469544813 -426955033 -164896133 --67497032 -747179980 -13347344 -198736895 --907664391 -4070795 -709591661 -382890777 -462202796 -725352917 -828222321 -654166308 --359596537 -989526973 -404662832 -792805346 -98228670 -940781873 -556728720 -446781861 -985989850 -663827659 --523071867 -713487980 --69736430 -339899432 -151436146 -252797134 -97804250 -548692762 -310166033 --159513369 -587793011 -128090787 -31194848 -59544675 -25077720 --521525045 -37223912 --862979232 -729413559 -956928937 -669302261 -230137182 --329581923 -695393511 --687735253 -556418534 --620743097 -960657095 --397766108 -886217519 -862001332 -748941637 -456086446 -657212126 -97102612 -907047332 -744512654 --147698409 -642459233 --544101646 -490830379 -20922957 -885186695 -456759670 --418704188 -12967551 -880392949 -175137532 -880724095 -273792597 --218895896 -342414380 -304210661 -650634455 -984133792 -866453367 -209307938 --469783650 -560143885 --222181717 -542315779 -594118274 -224618142 -107229296 -50900891 -990456697 --469447834 -298911918 -949293533 --458907256 -342892476 -593121180 -773440854 -315543640 -371104413 --923591323 -612073051 -156373331 --729781517 -571149767 -434400713 --183550791 -238644122 --55286149 -61621505 -807573895 -414730635 --494241543 -642728073 -60505905 --823246812 -538397852 -945813976 -973296904 -42978619 -51752717 -275520052 -984890432 -572458704 --459299226 -858188003 -58735248 -454625749 --475018341 -704848180 --928326914 -807109995 --465204522 -229023362 --390673955 -172935292 --91784178 -446918294 -341046520 -90229424 --438051116 -122392360 -997448057 -32469284 --714411992 -135313458 -581306301 --93615701 -726330470 -886217881 -250560647 -578087697 -29796538 -774722017 -594856396 -991059015 -515938487 -988287961 --314209472 -760321322 --682318375 -430457166 -814107933 -127203913 -895059862 -27773086 --67069256 -583193533 --589777331 -326114828 -971045493 -688651727 -9488507 -319508080 --170956295 -926999914 -267968593 -311922660 -27531747 --179960367 -637405464 --940228469 -563218356 -988299564 -998232390 --48241511 -955166877 --611835075 -737117394 --738292993 -848325600 -772911646 -339581485 -166963059 -505801530 -352173619 -488411094 --458549537 -734638736 -726271146 -64071384 -718922312 -408535769 --360282224 -226024411 -53560094 -325175225 --971959228 -775452696 -672203019 -818450492 --77424867 -36723734 -336376557 -126750059 -951220548 -922352965 -88957319 -880545380 -214889322 --282147693 -377133615 --428167221 -636185673 --50909171 -708043857 -47827150 --857912977 -329109640 -494443236 --644160299 -814355416 -567528534 --75264276 -104278232 --530852924 -599574856 --185903040 -539497377 -594101870 -675843346 -724445905 --623634606 -568102419 -409026335 --427130435 -737443684 -8356827 --751352894 -301959860 -158709274 -564345977 --297944109 -426513225 -605709893 -22070925 -552078479 -226340128 -653124174 -277374245 -643729706 -790302630 -708998318 -224077335 -528344461 --27844346 -645701223 -391693108 -644988370 --351486223 -899411351 --693387762 -779234463 --865778931 -115336346 -457334790 --149223981 -630786841 -207603767 --717041223 -511380171 -702549673 -886765137 --15661291 -888426509 --438052684 -808849182 --762264186 -820642873 --485809800 -55892388 --20164253 -111623085 -153238523 -830424902 --617361706 -673280374 -336041406 --68206479 -802314462 --247093303 -30303403 --849029143 -601310215 -35874736 -79937630 --952834920 -596229091 --578228311 -336499831 --300498675 -117216494 -568092960 -147062611 -219289460 --996977693 -252429411 --522067381 -920144180 -344335339 -758632155 --843774708 -928466005 --20727988 -227382424 --698110241 -909947582 --105743870 -408678113 -850071462 -669155828 -507880635 --130635291 -732420802 -218234712 --605004771 -628376354 -778184510 -595007882 --462300138 -621040154 --758065994 -670508019 -793249324 -860939805 --57700447 -932137234 --964213536 -186927810 -686016011 --168900315 -702258827 --910375951 -364706467 -597748 -344862307 --155892413 -459455177 -195059587 --788625378 -992047029 -843069577 -969367485 -580112917 -700776593 --988161183 -581529102 -586861083 -487958941 -599467400 -376142373 -765745139 -981401729 -946392255 --612252717 -236327238 -169007546 -496921417 -338204888 --50100182 -621651016 -429721384 -812602225 --828578178 -81169990 -127386418 -108116359 -420101066 -317541549 -321426793 --959717549 -580403961 --880949523 -338502793 -976375075 -745290154 -69755900 -478000980 -408927808 -469274635 -90609519 --69208603 -755074730 --498578088 -809654406 -971290294 -63668793 -319658015 -567421843 --113771648 -237577761 -550879373 -448306684 -671354204 --986693084 -775043328 -207925538 -681714869 -323394044 --181176029 -807822682 -237550340 --309604339 -496642054 --464608818 -883627923 -352935181 -340110722 -203253876 --102679011 -580568253 -471522808 -149636406 -446220441 -725007328 --396717431 -689154773 -970509073 -373975185 -404598772 -473827589 -581673205 -251406684 -98059839 -636884238 -85506958 --974129068 -581685858 -345452595 -248903695 --690052095 -435251397 -335675531 -51080019 --50815183 -879755452 -888973390 -234429493 -810820621 -508676413 -967106133 --485479800 -946623010 -188609279 -553362266 -120223856 --275086014 -702194508 -941199558 -598417150 -629794850 --721824929 -321585470 -290664199 -665631066 -721372948 --255985096 -882670259 --543054780 -26473211 -178565097 -11690035 -535599613 -180126142 --657526055 -934391755 -407545292 -885938169 --670246787 -9646015 -417253040 -366057234 -853756427 -212181591 --532566375 -13454612 --788523257 -998259450 -778290722 -158555263 --240137094 -478843621 -434914187 -210373548 -439652635 -869867703 --6838038 -888075323 --774498557 -613141449 --436029004 -415080389 --648866818 -287128906 --455706237 -67023344 -228039140 --367265584 -641962013 -801620938 -103674860 -908620201 --806125377 -336472722 --662611567 -366598201 --822229348 -710135732 --962306307 -24572516 -253368290 -585888037 -902911114 -406796451 -384256866 -786903824 --568259470 -715653801 -583523441 -242300148 -967517525 -946719277 -601740063 -811945997 -258950036 --45712063 -28549782 -770303924 -656671088 -695373788 -560251817 -115308266 -454187103 -334014426 --932403987 -305609619 -854694659 --343925345 -340974785 -888393987 --615423499 -96269338 -69211130 -720070687 --666168686 -319807592 -621918567 --104433256 -165986405 -494783002 -772000833 --928780849 -911447782 -376112348 --132197377 -687320637 -263656197 --953642010 -604459662 -524707807 --16779660 -740152196 -296489777 -502849723 -439115477 -922139677 -141212466 -422195344 -137109689 -513522466 -524234585 -45082477 -312740705 -850199693 --709611863 -563672960 --558324061 -354884272 -718326574 --238690342 -612122710 -833341126 -37853429 -625029971 -84709136 -725136767 -804108623 -956414304 -165655983 --96534521 -592267221 -65199804 --508656793 -770617213 --263187191 -733857880 --924204735 -985343503 -495276564 -565725696 -561239695 -71559225 -517577621 --363479736 -57554226 -630698261 -217000378 -857548126 -490713429 -10859423 --340483486 -3345653 -652164160 --593153478 -817654386 -629616931 --781866553 -397885153 --797405655 -62648507 -941825714 -7099421 -733301241 -788724844 --125922598 -751310243 --901178118 -837025550 --840332791 -927132550 --196244482 -677293508 -719984873 --724235828 -473880900 --549429561 -629307243 --220403548 -530797947 --906438766 -776822890 --929503273 -130737108 -205050533 -682315843 -156671903 --816193854 -841056158 -654721905 -177569863 -927679472 -739567455 --713018874 -464504563 --320868206 -289374523 --374489730 -369377561 -326744743 -842367765 -412354659 -833862417 -435354942 -973641145 -790946057 -124138504 --589125926 -463246688 -217352194 -495060668 -433150428 --318043635 -414452093 -339591786 -791911663 --840522346 -94156361 -594736792 -490858060 -749470096 -696431635 -460241563 -832452713 -162756404 --581878804 -204940650 --457267937 -165896625 -211559771 -274773775 -172519998 -663515598 -786170214 --142215568 -489787987 -744841572 -857877855 -973351252 --91957370 -260885146 -872637568 -188723442 --958002747 -517017022 -789767196 --334602326 -308880038 -816898490 -529999361 -101658815 -405025866 --345452595 -556042640 -943342298 --420312808 -315611203 -956933461 -337466106 --666151553 -693330907 -552466035 --847990461 -117757863 -976133653 -51287263 --51523186 -830096315 -752264924 -148501275 --770217898 -452115730 -281783473 --24987064 -440474330 -362291372 -337851765 --842793008 -940658117 -635595933 -445134292 -319310852 -344385426 -795368442 --476493992 -548113889 -219194300 -107865201 -86857796 -217586150 -897793460 -134254651 --74981301 -235931880 -95611666 -696896280 -428206890 --768632989 -204599153 -484246956 --208997494 -310106001 -414026925 --310628393 -781658011 -933644136 --429448308 -326415048 --662318649 -868275561 --835117227 -621813789 --317859776 -304307661 -558524278 -613887569 -843991383 -30255127 --342127405 -761183048 -716325706 --283228347 -121062929 --839015427 -326507499 -274162659 -526443018 -378824088 -89178986 --716623587 -717593557 -977420861 -538412916 -159358654 --696007064 -868686792 -555999767 -929125554 -644468970 --373754877 -500539571 -659189424 -746592674 -610681250 --270553063 -635667220 --967313074 -220648462 --692838103 -386258761 -562073635 -814686247 -66920539 -351460908 -239368716 --254871244 -848666186 -415887647 -392054410 -837513866 -666845924 -821567197 -598219002 -504603157 -244490978 -718315139 -268914389 -578605919 -316444699 -625440877 -308161969 -8149771 -299706747 -789370555 -250699347 -424309057 -558989658 --932529623 -147402203 -326604950 -868146450 --287895684 -940673803 --269215181 -690867131 -882318198 -663751247 --485748620 -928983350 -973478838 --127868386 -896763550 -235429980 -239454584 -715452380 --300261638 -355516818 -724688631 --744026057 -538252795 -518673002 -427382982 -605365269 --699003175 -586542804 -999274825 -500902249 --300955998 -541237096 --398015743 -801278401 -184818267 -190341694 -390116170 -517886526 -757659109 -816061272 --77011305 -986035153 -260346393 --38874441 -426940570 -102352883 -681847140 --194382268 -473032540 -842752120 -227511583 --933644136 -591779731 -396065418 --908660106 -404260079 --622381368 -525815103 -615784734 --918360596 -402524614 -803628139 --940784812 -711779883 --690984687 -782402829 -17365054 --921472655 -649941580 -688253800 --571020837 -457479189 -402250691 -342029542 -48371481 -782068950 --434703573 -494203317 --200897340 -374379007 -199053613 -420500711 -941911569 -537633851 --997975013 -365806248 -625505635 -132120648 -142737729 -8625195 --190984980 -666452369 --518420859 -425626415 --200957323 -12032767 -708877177 --107437196 -785983690 --164859015 -416374154 --275882156 -472345571 --451211894 -748604238 --674243679 -647138701 -580226806 -652233335 --444125579 -912747751 -515898048 --1956989 -208588408 -970106325 -296316090 -840402750 -271236133 -654809037 -124268450 -291561990 -587415263 -178475953 --372998224 -735807812 -316211098 -450899372 -345920711 -953136492 -67793540 -450400447 --168757145 -895574100 -126761476 -368311309 -644319081 -893525859 -327628618 -201903742 -41468940 --733047785 -582045230 --594552317 -702019822 -93387754 -417876535 -226349699 --727306042 -881639010 -120634086 -129129297 -27172467 -539873547 -78773399 -368806079 -296587050 -147764696 -938961985 -468559414 --149036793 -214349318 -109689674 --524971797 -655595234 --374082019 -174009517 -847743871 --102874007 -151700803 --204888783 -626460572 -130081146 -180882113 -888647478 -927854427 -355031144 --227373074 -759188316 -717781217 -333977061 -318226435 -413388891 -141199897 -824033994 -932628306 -235044063 --505801530 -318733962 -628074688 -936317395 -256189168 --893435435 -135983900 --982698781 -996311686 -460079499 -367349074 -36850319 -824112719 -491233593 -259429218 -795317252 -167642065 -280016837 --884505223 -425574805 --554944426 -461580196 -942450024 -315436994 -245534154 --505128911 -765557146 --66321169 -892464450 -669170637 -955960752 -829379445 -657703390 -426593452 --710618416 -134810130 -63583833 -679778960 -981190432 -403487090 -446342484 -205183432 -465007754 -40170964 --500650541 -901626805 -618670292 -633048078 -858981831 -874073884 -366895729 -750752082 -581503975 -896175703 -665538023 -8543265 -222567510 --258502119 -590461098 -805418820 -266349743 -647919735 --126993101 -169957703 -61731429 -984038084 -992572371 -821160630 -908953772 -939671760 -767564582 -113818595 -887520906 -758572872 -485794190 -178153110 -656655472 -889701578 -360159063 -182629513 -651055266 -523638568 -428662528 --498190427 -445589020 --133528432 -198738642 --553212349 -645154394 -63787286 -78420479 --998633394 -946527000 --719785028 -444407044 --649984592 -474317 -138084606 -900623029 -238361516 --736570137 -832488667 -854981894 -704867049 -543362082 --823312631 -694580702 --538362949 -362332926 -768512865 -342001024 -102069152 -196409657 -575150761 --182158585 -847100805 -493264397 -114360427 -228537608 -695632364 -218124543 --862826961 -125068858 -309944705 -779512749 -30508712 --206102171 -132872019 --110662547 -907333044 --75383340 -344933957 --976514353 -984180079 -800717296 -233708139 --850842397 -777275131 -542389538 --667415737 -696409392 --704799260 -257381251 -736710937 -724764652 --751742985 -705540400 --253826076 -204575057 --930895734 -803432371 --274123480 -437317582 -621205331 -237970038 -380616714 --938018295 -202972139 --962492227 -366923237 -191413472 -814640747 -138137193 -320102774 --366923237 -386211644 -730930532 --85686207 -558313488 --971796185 -200867131 -754982337 --446916602 -515239911 -351920134 --695328970 -483922052 --59427254 -53774525 --528902581 -316323461 -143614103 -953618187 -136010831 --38236058 -983638286 --380533292 -387847490 --212248381 -683786971 -216217760 -438076033 --553930522 -935695654 -407894473 -886575143 -174773488 --616597989 -330459934 -984149620 -109047439 --91251179 -43054680 -28390057 -356940017 -332754626 -319254538 -112489914 -552683537 --249056393 -78449705 -522430522 -65780103 -452381749 -270820646 -565432094 -14327372 -427963189 --524122981 -955127726 --305265017 -454433295 -951567693 -37399981 -331796925 -486253902 -827291412 --389275835 -812940180 --317724663 -765928781 -12437096 -110884854 -567632172 -659407459 -229752290 -309225589 --518213245 -529826673 -402615118 -243167482 -733499692 -33998934 --177646313 -323567215 --16214533 -570043359 --970754378 -998126872 --277869326 -174873257 --330948173 -744622948 -427979917 -258692843 -545701617 --711937798 -347109526 -84953531 -726408105 -784438605 -889082537 -288546099 -86980 --941217229 -116977670 -557247481 -649682153 --146165251 -572516919 --430179869 -40549281 --963566857 -19814529 -864502090 --681955073 -26717527 -202689271 -2699339 -219936464 -773385860 -350734170 --387408539 -761556250 -871014655 -759983602 -352604894 -434325050 -26994700 --95107690 -701515691 -950292384 -603629776 -455284770 -887288697 --40793470 -166053853 -692730283 -71041393 --82790850 -889746387 --677676639 -753611312 --370373987 -341995666 -996088713 -782225490 -266905751 --160345428 -636686287 -780213319 -978617807 -841994601 -794246452 -53390385 -992929841 -418808193 --270336494 -192555863 -905757117 --31284557 -598615827 --876775751 -987010268 -875795025 -967817911 --427650701 -442199320 -852831545 -493948319 -821394235 --734660854 -412825399 -522312328 -22358076 -121367791 -741982774 -509693245 -750172039 -846390414 -901490417 -626044576 --837479040 -686129424 -811276820 -794127045 --898444303 -799220175 --216121743 -644764934 -21133103 -911374035 -830775860 -214543716 -716161486 --747451773 -729565138 -325138897 --634830484 -448974143 -331700381 -469577112 --253903506 -592158986 --377348361 -121967188 --727860088 -376577758 -683125034 -163494712 --775486968 -28179598 -386250483 -565794811 -381001425 -973927266 --33508729 -901638201 -185199664 -697953389 --119493326 -547437153 -361350704 --684352533 -429453420 --774050368 -830518669 --624491008 -432567531 -797787807 --1187302 -665413647 -673111565 -496175020 --983576893 -832906240 -299490490 -604927508 -345634406 -247642906 -643602199 -274295206 -755733181 -744131129 -37400239 --148712004 -364762199 --371242321 -486002672 -915939846 -313906731 --616218576 -812618869 -679615401 -338321662 -403665293 --497486148 -389428373 -179592176 --630165555 -965800855 -273466906 -600311901 --84729771 -908620373 -573929366 -966918228 -212627323 -357061875 -421541607 --334643257 -110150499 -577661660 -589438416 --96021394 -752692437 --312303264 -721251865 -855270791 -129139690 -138590117 -708385999 --712719761 -991599904 -541604262 -673892555 -704105727 --539114378 -206504995 -102780214 -762342470 -869943631 --427771670 -760704854 -642866897 -952406102 -215087730 -625466320 -462069796 -887348728 -640326551 --754328041 -850634759 --469717258 -28719416 -994004548 -258262713 -738548599 -221629119 -474743277 -817791501 -209964644 -900540209 -792621592 -939568171 --125068858 -278938142 -225398766 -984877843 -793510631 -719124977 --784279220 -74801631 -697956699 -756854196 -747346145 -578476044 --923451068 -652839767 -66787433 -654627300 --800583844 -404041056 -346211301 --292279137 -652296300 -919063017 -474240082 --917025874 -60932372 -345789268 -102719721 -716632305 --814897654 -544533056 --366598201 -241976236 --728582348 -800779999 -533119042 --49609260 -304399468 -27698658 --821033511 -604443959 -812824544 -497099143 --136509465 -424094929 --15772702 -787275967 -737713140 -354771009 -184807464 --247315134 -349920180 --318684939 -5840737 -682537193 -216363443 -513572244 -612818888 --476951983 -856828123 -321578469 --491676073 -257436741 --191400789 -428496294 -585951658 -206234391 -800468472 -363964151 --858374876 -824766739 -864893704 --872103218 -501240555 -778430421 --510127009 -939719525 -543455910 -953501696 --420797631 -215261671 --945075081 -555098922 --669556913 -15772576 --589882543 -230102986 --420647334 -127845692 --530951058 -734320633 --690925568 -574032148 --101691174 -114156174 -181861157 --698422651 -34844849 -841609253 -921220700 -10121058 -249512217 -336861 -85349440 -653108199 -62510872 --328033 -420559683 -147150632 -905395323 -163937015 -542573478 -701028465 -720624397 -830373566 --890992272 -864939361 -724522797 --362001301 -930207243 --198541447 -796142270 --431140414 -580864915 -821444875 --861071044 -680710472 -750818587 --147371519 -951269336 -672927099 --777108349 -683599875 --528951824 -377638092 -396813324 -532898202 --459521177 -922986745 -147584780 -229258138 --949622546 -929873158 -179899822 -423289381 -73442445 --24461926 -934778394 -378203339 -348418972 -720693896 -600792449 -502131297 --45417560 -839041493 -566011733 --793969513 -760728859 -819310072 -299515049 -426513224 -913446387 --602838491 -856900681 -133133227 --708678220 -730680302 --171598166 -563883526 -488551180 --288127957 -962540233 -426465172 -860189744 -623630487 --365626829 -843765976 -876433607 -787922055 -448177116 -259797155 -48757877 -289921934 -282185425 --67720500 -351966581 -20878378 --87280981 -508717684 --19720199 -480016277 -118300375 -311503547 -282436836 -712152102 -825814672 -940988414 -189336046 -605294849 --867586982 -206450305 --848428805 -613977363 --395976939 -406062196 -184625956 -219897388 -161212320 --825821570 -226394647 --892268091 -884604916 -41267587 -540896955 -978146605 --706673085 -281473556 -320420477 -566025998 -552130451 -439878027 -249852512 --652192072 -809731219 -793485224 -771545390 -591499139 -324251081 -403989622 -412022173 -454266499 -114756896 -902160198 -903641897 --968060834 -293288465 --713091692 -144741894 -878635396 -479008290 -458387321 --542105519 -847419258 -632393078 --897484087 -486803615 -484288193 -761935448 -701423903 -321868548 --927045926 -441897370 -59202227 -869669349 -371181770 --90346035 -677603055 --733923073 -539367846 -679688599 -599587905 --952886500 -647168666 -140454320 -452951959 --719365372 -436437974 -567273063 -747390598 -90526049 -108285902 -258460437 -634681513 -414629679 -982734074 -95771953 -956473708 --713367950 -8113965 -397696422 -696862038 -257082132 --614454196 -274358797 --339272360 -671182871 -430196369 --318394878 -392872262 -581349842 --416199292 -990945959 --186628843 -546034199 -590412503 -862258895 -576406992 --716608985 -667871191 --375835117 -47642720 --204255413 -167874962 -174086177 -898524581 -132484742 -206171874 --478027491 -176819282 --416370988 -420710507 --708877177 -688325983 --328205506 -936561592 -273083777 -340948014 -302591676 -900419635 -830747660 -298210821 -614030103 -208393308 --803157380 -573052484 -683882517 -886834453 -184545354 -323888881 -673107363 --929306523 -346960948 -76447303 -440067463 -453382653 --632858579 -122293276 --563792456 -752932638 -899511168 --1250123 -233154586 -272774098 --351966581 -145902134 -801718621 --801822337 -806019379 -695149069 --324889610 -665543784 -306772831 --504627427 -83956262 --647915022 -979274199 -459410395 -59719656 -321609705 --16077815 -299037849 --596416289 -986035609 -306905561 --244968670 -282543905 --190531251 -973466944 -53442562 -653914844 -178762512 -493392188 --957265533 -932038172 -228658942 -862262404 --84868330 -347028192 -865054083 -985767881 --609703285 -107447897 --595670680 -139032993 -241840275 -807995389 -563620096 -531019284 --606169843 -759246425 -496046789 --100259894 -175786913 -638241427 --757104249 -141719533 -238186154 -505179504 --643720299 -436045211 --955895073 -473981201 --243181295 -105940970 --274239051 -489501873 -302950720 --352471680 -230934155 -216926650 -29375074 --986902286 -765397100 --288893396 -252326530 -773690921 -194139867 -537064110 -895574584 -485047432 --539199240 -968417302 -319688780 -437339197 --825750761 -983445614 -363853937 --541828127 -43415181 -383897499 -555005284 -416249512 -575991050 --512008641 -937906682 --416869183 -795228786 -505007143 -747019693 -94803060 --870731201 -823538738 -601409115 -997382374 --138617878 -441476326 -228427838 --509522947 -45916402 -161400967 -324058419 -507108455 --267968593 -209922403 -916083512 -31108246 --331196518 -796222961 -171889047 -699386534 -667754708 -662077843 -493490240 -437127589 --20351883 -261975845 -414138038 --912643782 -829127908 -497524101 --303663827 -168526330 -518701667 -272211069 -141581556 --734275472 -368750941 -221208568 --691025781 -535964514 -204981009 --466798908 -338343662 --801541240 -945943445 -210711985 --988723719 -421212134 -583765768 --798675518 -704359763 --606400556 -574648279 -796775867 --722771447 -437205337 --174170180 -902246281 --193392820 -838381802 --544317240 -694963296 -531588662 -415113105 --958112700 -440294560 -31883232 -821581966 -429485038 -770397180 -8471520 -224649679 -409996053 -246718780 -584594506 -927889379 -461054266 -655169526 --4888658 -58864048 --345705343 -397088205 -996719463 --375293768 -965940078 -87620489 -676488217 --329542354 -336656826 --997557354 -238134344 -624355366 -535018020 --668895633 -289072291 -196166037 -317480190 --905962774 -984269860 -327798471 -709699124 -356921988 -962756534 --97842470 -414464400 --624019038 -122990808 --805010452 -231013736 -865530280 -802292505 -187142784 -994089527 -321676665 --839435264 -210343076 --894538446 -491669765 -824425404 --129045974 -984499647 -992717939 -742266096 --820304878 -167562698 -981149239 --438516437 -93269350 --704273146 -880572189 --596090864 -84920401 -238180711 -688275559 -782684460 -72167857 -69747818 -976872770 --149867083 -693801711 -831485505 -147847609 -368448665 -174281235 -308933630 --86241653 -619840239 -897131254 --290926499 -764879809 -510153974 --269634698 -770789869 --992474122 -478048343 --426005052 -959862185 -815005799 --508515572 -799960629 -972728238 -195910448 -394210077 -669971635 -215359093 -881331219 -455613649 -157621738 --962257097 -154098482 -254030456 -824201257 -319645901 --847246988 -792514555 -999198844 -656843583 -459025183 -883775450 -662916294 --971121541 -279044952 -878617309 --34869851 -684818008 --720132874 -869106286 -623316363 -826823725 -550931123 -123454456 -845034235 -979091797 -992170995 -905112834 --55881496 -548328982 -912256412 --60786858 -51923328 -248489911 -379711917 -765741823 -134121126 --288457853 -478175907 -330201760 -711070562 -337993011 --228504028 -433797023 -544358390 -293691749 -715188047 -203702214 -508610629 --51466733 -967802438 -19163744 --913727809 -115003552 --154420368 -590540577 -552259840 --126921032 -805792878 -823456737 -652116572 -408384192 -273876374 -983290167 --788168569 -588092832 -318101335 --405068313 -927430908 -353429431 --743688218 -52939628 -662828740 --285756819 -366994183 -68178812 -560442961 --345543873 -863619267 --264904561 -517721904 -170936769 -802058476 --53373459 -761644862 --833172561 -163177657 -968091394 -228956775 -206138027 --339418816 -410634384 -109130096 -642757682 -827597051 -141284399 -607522274 -204287177 -745386273 --588439032 -738785527 -865434971 -450611262 -721773456 -622752378 -826371846 -329054666 -378046582 -651433522 --293262580 -116573771 --680090471 -187376441 -445166836 -801234835 -766102705 -578323061 -78995646 -282535237 -279353762 --446435076 -538763886 -238900299 -394096666 -79583413 --293164043 -570553037 -284164641 -556730624 -196813433 --645947954 -321716763 --770885199 -369066636 -634146644 -543852738 -394387211 --580993201 -501774424 -450622789 -579132614 --879881321 -756838492 -105900773 --422148458 -431466714 -859411495 -487033829 -517614747 -195272452 --22514080 -479395096 -786794936 --765296784 -747950009 -276564735 --3434968 -909095933 --693022863 -464189701 --930313270 -827031241 -581180593 -665755430 --673895631 -928764542 --20438145 -893251046 -427162722 --876263633 -994379039 -282675137 -147335758 -347896303 -700224046 --768081980 -220634268 -56280891 -857886568 -396945218 -204026389 --696906340 -41659009 --117723402 -285640625 -918377796 -176604290 -342351122 -770122217 -292962728 -793731774 -633825381 --457505423 -493584067 -342841831 -667171397 -978030433 -449282039 -766633855 --131378144 -969309267 --879612152 -79033368 -407024367 -579629664 --150295443 -68818108 --760322345 -113905375 -195115182 -682378215 --15589232 -425419108 --751345158 -392069593 --100122691 -265136326 -928625037 -870572646 -81068395 --385265560 -653543652 -432229470 --940569393 -259794035 -612029519 --677603055 -824209141 -271746469 -348247320 --152081566 -854736263 -473567464 --831305083 -144270806 -405881366 -286685678 -834190842 -846515507 -608619384 --253368290 -569224746 -326122776 -377679082 -152943949 --859899566 -43390934 --511904898 -734424261 --621040154 -321389760 -831204450 -835377999 -489188601 -718997491 -638893944 -66402458 -302290176 --696862038 -291237262 --634681513 -134016468 -396090261 --718727351 -733816711 -88490319 -136602105 --299603838 -220847870 -493932817 -13945021 --581543231 -825749002 --633867140 -512688562 -249986486 -141406119 --370983218 -741875201 --878199599 -85834156 --333482774 -586461537 -306593660 -186441134 -400875761 -949403623 -538538949 -499775516 --431724654 -635023601 -718161812 --534869589 -907895221 -589336290 -119311387 -813675650 --733296076 -208880366 --138525757 -249721430 -115573652 --663547369 -710216862 -990422663 -140591634 --838277825 -946426538 -899927521 -188096058 -620240936 --625551812 -209645026 -697882453 -547516896 -445315894 --231899760 -419285368 -831035866 -222842193 -164629445 -775689510 -428774866 -255605787 -79117751 --296325572 -837507698 -359804675 -388847733 -259371514 -944861177 -281251269 -569097838 -287335051 --871564129 -878917703 -18372024 -612206533 -995560514 --777275131 -477178329 --668597110 -467436988 --277004867 -957496899 -65022294 -679304184 --949130636 -992222651 -341604088 -427550363 --13257846 -542572355 -322735792 -260035174 -443973686 -677476025 -208638147 -4834781 -92897462 -833781229 -163455964 --76403071 -363243392 -264154481 -108968231 -200691885 -308256013 -234140864 -235914919 -170113186 -918406054 -653894703 -218420260 --726472082 -730492927 -166477783 -512347864 --56730482 -296638100 -690909391 -792053433 -431664240 --24239661 -807331893 --977712095 -793256542 -563728509 -126886708 -564762529 -113924959 --89313416 -656234294 --953043749 -644007159 --869564876 -203063064 -143847499 --608883563 -517843286 -589277626 -570112123 -3727422 -313257208 -896152022 --919071673 -472354893 -153337276 -730222308 -344888480 --203780973 -632680327 -162622198 -246540694 -504671020 -373578779 -501747118 --314724071 -573239845 -736199649 -114147137 -836073187 -656334624 --689583677 -861129343 -877941022 -172674310 -386955987 -847357852 -68127345 -276692314 --151901973 -144378271 --277026713 -374352790 -938335697 --193391386 -571441183 -134825457 --20087404 -174171550 --783276906 -748167654 -455911292 -164161023 -631955721 -822228316 --324338676 -485579193 --564713348 -348967575 -463783036 -988439382 -460667918 -421806304 -36333676 -338101708 --319807571 -59393877 -377695552 -341705913 --464496627 -948330756 -649016224 --386856134 -508055291 -906079712 -78793582 -840719458 -67315178 -967564052 --303798584 -825442928 --679593698 -790675274 -970874302 -639266684 -726295803 -882750175 --117261839 -706960132 -431854741 -766167888 -522341107 -509562996 -57260194 --725852450 -715583502 -829330805 -12904323 --274346565 -818991351 -934316845 -940710251 -213014051 --308685096 -325144444 -644973246 --443756996 -595790912 -601194650 -815177795 --70230453 -533609815 -844772532 -916641574 -112431301 -531489262 -949467671 --110854962 -108051288 -405459029 -417409217 -712996845 -647062850 --810980752 -378442021 -379672755 --319310852 -776071950 -7712323 -227245321 -31177665 -148285604 -251503906 -454993174 -850431812 -28901967 -176866056 -922210831 -963087799 --188198191 -324498626 -195158082 -171605690 --420858746 -810228704 -571304580 -608002308 -530205681 --173016286 -944686667 -918477879 -529796550 -633855185 -169576660 --971290294 -211731622 --274113621 -967694979 -968184262 -838913085 --892464450 -314830752 --156454274 -788844928 -276003287 -391259914 -410389157 -157960176 --815005799 -427426345 -173894918 -281201478 -139156794 -502192308 -349056460 --784935464 -931192854 --924378724 -968052282 -548150007 -443547243 -743772742 -228390459 --260655166 -410781286 --884281002 -545222540 -477990388 -636300767 -116491189 -357687505 -189863465 -855257304 -446820385 --521017156 -541376152 --556269348 -609333511 -425528439 -327893950 -447750086 -384006124 -481027053 --920811655 -403746267 -796158309 -407375143 --655486470 -935764140 -258207415 -236298059 -955129605 -884686925 -888695384 -5724792 -830832287 --275612020 -139886105 --229258138 -437562976 -407288628 -962219374 -888238623 --479943541 -445490574 --874526311 -813733942 -487223202 --36068816 -971462106 -423736953 -659684551 --338017994 -175445597 -727549365 -111285146 -437835774 -642940979 -702172000 -377671956 -72068305 -770510519 --60171940 -710378980 --109559190 -425340471 -376187732 --76744634 -475260926 -806800701 -252636710 -763497630 -870245225 -148388576 -864935982 -645145858 -499079502 -89197713 -89809588 --614995716 -601344263 --825717579 -26486895 -195658039 -252560212 -431908033 -594578825 -79443672 --196750345 -833072627 -34682124 --686399494 -495446884 -91818558 -990695302 --922507699 -803276011 --139492444 -345636575 -844713241 -745621798 --284000528 -674849567 -473574229 -480272823 -924671044 -821319096 -310088861 -696192313 -199397103 -511770316 -194742124 -303542670 -136035504 --326744743 -898339945 -508807498 -889448232 -224790154 --568064590 -604216485 --126761476 -481128871 --814395316 -270079006 -472926716 -202692588 --821616103 -923102199 --450153247 -121896209 --94801539 -506400748 --156711639 -905235199 -490654316 --815318116 -224120850 --793523923 -249442375 -307632739 --975052183 -620376701 --959443495 -852506235 -482268279 -118633447 -787823636 --956230148 -972192185 -965543580 --967661049 -209009580 -50959423 -288183905 --588916005 -795637507 -323272748 -449702999 -664471052 -581353032 --386250483 -559018951 -535197785 -774727159 -439292146 -159303997 -949317990 -193871557 --830824305 -974662688 --485948944 -42463968 -674572913 --755540579 -962129042 --275814046 -365153820 --22107578 -42424035 -193811217 -163857216 -430338209 --574086307 -307055755 -366924534 -421027726 --517840379 -922515075 -922865051 --832488667 -92382039 -113322851 -951911512 --505939244 -853834699 -532937907 -213547541 -252942746 --653481132 -23840506 -25983281 -568754526 --51080019 -489095040 -693980835 -13043300 --267268945 -946017479 -28533547 -331433933 -733242272 --647469169 -517668177 --575691838 -822411372 -727845162 --879755109 -923790193 -479386963 -943455082 -535759502 -541260221 --344424352 -487963111 -895527773 --543925661 -193582740 -429739218 --287134164 -995823717 -317436603 -42775722 -809867199 -330585105 -191748620 -570824748 --63993721 -197054600 -806146045 -644833609 -781066392 --469364701 -521079089 -126235855 -928681311 -659735427 -297357572 --180543251 -285330469 -582204501 -722249980 --752932638 -365086105 --934240656 -703675402 --442024272 -515968847 -41252822 --943693470 -819616623 --190837565 -420250667 --786270363 -99659144 -708603759 -100877240 -65906839 -736583018 -216833099 -268121483 --624183318 -437312335 -354984565 -387159343 -223489141 --299652288 -908131355 -369974637 -323286498 -429330752 -580984793 -952510668 -452504714 -213627856 -177379713 -470193571 -814903866 --356881698 -406857805 -591447335 -60229424 -293325853 --916644058 -180649547 -679308463 -164329471 --305557106 -422962356 -433131353 --452904283 -394594415 --463246688 -686839189 -518283217 -964143909 -805117208 -717124178 -673002712 --816647399 -462142367 -653026467 -760405198 -472422486 -400454151 -489107518 --406596821 -521492180 --244750494 -233705096 -339315065 -795211776 -272264415 -467199377 --983670403 -876909935 -121231817 --695088066 -557931619 --968546255 -656022638 -731014099 -79958368 -880012475 --724083898 -798722134 -373912688 -561756997 -198917838 -87215466 -833972037 --876128919 -294625687 -167189041 -329037559 --910211092 -782415435 -159556184 -607678481 --800717296 -174872924 --494760735 -692944412 --509338780 -945844648 -777959358 -965801350 -787464517 -830782985 -632048397 --215393854 -420156389 -39305532 -612826309 --677535557 -949120888 -614892192 --756790125 -450676693 -152893237 -398040137 --569222921 -421671320 -351496837 -59450192 -418775533 -754939255 -82549874 -881224937 -837668115 -192478637 --545770871 -514633759 -736309484 -991555091 -77652151 --741075195 -184638338 -955344172 -966453314 -988166712 -976276337 --509781964 -667962096 -178809740 -60963785 -985619354 -336488820 -525777920 -328016101 -303561953 -313254266 -440446178 --42216849 -161290572 -250746914 -224498628 -293293904 -629791631 --552130451 -375644901 -632126327 -679528196 -39975580 -571156811 --956378300 -280391376 -473919906 --533610063 -361159992 -904276265 --69909967 -113029392 -874717817 -740423337 -271498711 -976188938 -141820460 --524688794 -524274086 -975422012 -998732707 -206895373 --429801689 -445038804 -152928933 -832471933 -273061779 -410863861 -627422642 --251238063 -691170386 -544794578 -648834923 --572516919 -1317032 --541245095 -698145419 -628230132 --610463384 -87347501 --177020227 -241628778 -34436518 --812802613 -28600537 -390585120 -898616787 -587678434 -41515992 -548204532 -622074076 -587622702 --627016731 -971097107 --795133955 -263249799 -995904370 -131202149 -340731565 -70706292 -196231439 -268052666 --455119316 -412149585 -87430170 --176623830 -814278719 --306397168 -414512148 -466668541 -610556166 -737318627 -421073491 -497774087 -8481589 -506662994 -37363412 -859267030 -102726184 --868089394 -928770599 -277752933 --184815770 -600007691 -598907814 -248485514 --794276506 -576693357 -108986 -735094622 -137472813 -399254827 -97280002 -728993462 -965549754 -404356682 -653487014 -253982681 -944651527 -280103779 --58999081 -102080939 -432421772 -287360226 -255818083 -545150364 -68510772 -822326989 -878223080 -947347334 -162744169 -670549065 -744614974 --796342682 -602764465 --300318609 -591118642 --616852826 -559450367 --831936285 -152749350 -167641993 -948655891 --908488933 -679505359 -308277789 --334045769 -534989485 -110160911 -125706112 -471755822 -599692490 -765526735 -851505718 -313306494 -960427210 -670879292 -99973431 -84116283 -487200200 -692850856 --258262713 -420835114 -649889158 --776902092 -194694734 -501771751 -453865412 -772784757 -271019972 --79755275 -599821149 -43359570 -180884060 -220655424 --329523220 -487573884 --775735839 -377059844 -674562627 -780905701 --462577640 -996344537 -236000725 -445744985 --291658899 -653742878 --155061794 -341243431 --601740063 -5717926 -503277153 -168548343 -100462457 -853324238 -24685100 -485447610 -127914751 --724688631 -378041767 --800342554 -238785700 -500008925 -437825453 -675055139 --678647713 -242660705 -231655835 -161269857 -965660920 -706109082 --39239513 -543062648 -156371226 -656561652 -225267595 --729786577 -487927590 --629101672 -138533337 --935104522 -868349144 --196113300 -388345920 -690768780 --220655424 -882212121 -556772973 -202498109 -221026141 -265959286 --781169185 -353573213 --676488217 -876868137 --616054673 -618209387 --68955241 -588058601 -434695912 -432454219 -817967089 -881746473 -867900858 -891787241 -898836673 -88557279 -417491614 --929598945 -869940573 -747198029 -997963349 -262886429 -180376769 -187033420 -500872355 -257371324 --555957571 -315506950 --560240340 -436226702 -485809784 --190171438 -162681347 --538257704 -345247277 -920712770 -166838421 -510734330 -506377857 --228716061 -836174952 -971023136 -329739691 -827863939 -817133460 -680680471 --542200906 -344174869 -483979439 -745189559 -373592899 -431813389 -275876386 -929428517 -537367918 -746747405 -564153154 --45082477 -924227633 --465213502 -747930536 --629710514 -372600295 -217104520 -213317441 -124371557 -457132039 -183883897 -91061118 --457855705 -857076334 -10995521 -175574655 -284115597 -225409512 --715163069 -119452368 -607911417 -975021102 --594804883 -253229080 -359774028 -82301738 -82301012 -519705886 --332382978 -771559515 -911837856 -723335891 --558716558 -616597697 -468162534 -48919217 --200114524 -869655603 -943850188 --83904717 -368635763 --457389076 -659547386 -758187750 -308738339 -178258815 -528368760 -776427513 -68622510 -38811710 --729619577 -474260642 -38579706 -314730297 -62279879 -538206366 -158408755 -132478996 -107693092 --752541607 -568301438 -118379834 -71804779 -645314 --330002566 -13343632 -921422859 --633855185 -376621101 -552903081 -90104875 -169051473 -753215988 -363208269 -549685133 -296525572 -769952569 -913541399 -530489965 -176003758 -591345650 -290709558 --671182871 -51702419 -831278177 -839102624 -169233710 -8848824 -881168612 --807304333 -62128264 -857110004 -978036797 --945719533 -693740943 -854778254 -61736421 --951370468 -142548868 -534003863 -365467896 --313029517 -613701981 -149945829 --67367022 -454256413 -420414814 -455618699 -877593814 -478176754 -894319712 -263729171 -671902084 -316242862 --511136666 -780599299 --231469097 -243283914 -907863731 -642375650 --568255920 -140210855 --97632974 -202269496 -897532103 -923183022 --630251782 -432890725 -79533379 -574652374 --5413932 -755923776 -93369035 --278498029 -736112236 -611625464 --201563708 -562333979 --221407207 -648101818 --868615854 -328169704 -41972169 -469579282 --781999873 -714273181 --791841743 -261698323 -895311741 --20922957 -123121965 -667137845 -235295523 -165097871 -979339787 -2386231 --612912273 -25746733 -707228712 -128099446 -688795036 --818991351 -422183409 --927666001 -755873259 -591254423 --623791032 -633151740 --333876683 -806865650 -559688797 --721605458 -831920187 --280679023 -68002062 -148241793 -656555587 -150927279 -832587242 --175445597 -341624890 -637031095 -320471027 -576539822 -752027688 -234167394 -595057420 -596572045 -192825557 -470321328 --514399264 -581925684 --259800538 -609928462 -996727418 --60744077 -178494898 -853277464 -354158911 -857411222 -30731290 -979485577 -128130149 --830297733 -944952875 --556604314 -30874200 --365164587 -403453311 --316358077 -638731794 --677476025 -906013364 -468053241 -349854549 --863831049 -753817288 --604315438 -717949186 -302539616 --596709264 -892505884 --660507047 -666730292 --642240709 -79488632 -842435295 --658797612 -944507666 -976000379 --902292581 -154603570 -246742468 -550184853 -904821360 -546546871 -273824214 --365874352 -235311837 --437532123 -332584006 -150860357 -932299105 -253629141 --807592879 -656100316 -505179497 --383400197 -582728391 -566061514 -731674820 -33740467 -976199912 -823018710 --372389765 -20586125 --711048650 -845640936 -29725458 --58750292 -857316616 --698750703 -631689275 -2540179 --51631831 -182858344 --730057026 -669682516 -795579918 --510146580 -154121453 -989523970 -688643497 -325751369 -550293376 --70207178 -979635249 -569865651 --795317252 -185802636 --227561224 -653193168 -684310946 -471289962 --421670518 -658137304 -175367604 --62379596 -741599625 --743528256 -593035000 --174554397 -2097342 -575945420 -751405503 -889153997 --707719443 -181077653 --728922745 -197247387 --732007402 -579456052 --774813132 -716111836 --236317912 -864644549 --739914137 -481656079 -914247648 --134783061 -328753258 -38684153 -652419752 -60787270 -76013502 --213483569 -345960836 -691246034 -806332217 --976081044 -562062424 -116013386 -441279490 -108810794 -500501377 --219176891 -247370588 -40872937 --385523227 -874245976 -577517217 -337597519 -331446344 --60460199 -234675138 -71908678 --321676665 -271209798 -309613074 --783870892 -24479247 -146001810 -61700414 --233852039 -400008890 -600196713 -220210696 -818928517 -761694596 --183855633 -379246482 -607421313 -507144295 -187886209 --522388964 -127828927 -511262155 --426279422 -678612841 -757487419 -622718542 --233934105 -836349751 --976914824 -944635555 -35885561 -9461623 -441736909 -101826107 -65776245 -148357554 -197165028 --716486253 -476242594 -540476246 -517085559 --971241140 -72210673 -874969449 -97543230 -542403280 --947913043 -319181434 -343486009 --658002183 -994829595 --398579633 -416755343 --863880494 -829874560 -536146361 -571929588 -645953539 -252667334 -75714980 -519222172 -320075320 --12500072 -219458903 --898511881 -964310170 -858863928 -652167217 -778484374 -979623980 -863390280 --290056975 -252880248 -825787499 --376006712 -505641253 -184168470 -265938261 -751133190 -197880765 -15926067 -40476230 -498879506 --801502891 -7398944 -992780881 -460884417 -423296927 --955181902 -632318701 -169259097 --560286857 -905234722 -757584999 -393589850 -334062376 --967568368 -141731115 -673280437 -330331825 --492609339 -98908680 -750254139 --810644024 -527080606 -381636016 -405102494 --170155459 -639889913 --998780244 -219441274 -883574226 -202415817 --552259840 -762393274 -600816546 -576994589 -407551767 --472722650 -761898343 -904820147 -89964983 -317233232 --501255391 -383114673 --965349191 -257126330 -691507454 -149816604 -121323398 -183969914 --592414315 -752378218 -844809256 -300707407 --35686932 -837090975 -279753603 -312395338 -857997107 --790017014 -781355391 -551712902 -705542063 -749100945 -175362387 --272588214 -816959186 -629982905 -438697663 -366429242 -961746610 --404260079 -370440494 --473574229 -284227612 --773666097 -281498736 -82033233 --286693484 -369711593 -135271380 --934316845 -962114145 -315046451 -537968159 -802916908 -868643549 --215378639 -335060568 --738960309 -432303699 -687841042 -824318407 -888529132 -323224725 -122239276 --903385404 -222283797 -604190910 -408172238 -246141669 -17146482 -268445688 --260880302 -99781233 -494230036 --852125191 -757310020 --741875201 -821211313 -273691075 -950331843 -412394310 -312363128 --476917989 -414392965 -993729124 -38584552 --478285638 -921505767 --573361455 -683329923 -931637395 -611369692 -352928705 -955341090 --180922429 -464856404 --789503642 -985241230 -289465438 --912180109 -829976302 -450899917 -956926158 -517302359 --904452900 -912039011 --213627856 -862028868 -92069419 -450916660 --224120850 -838865044 --714415057 -538696693 -321827037 -498254344 -768400118 --817083220 -110000031 -329929648 -280251189 -940499428 --10383492 -176944580 -678754081 -289783321 --885186695 -460030051 --833800024 -940896188 --914459576 -549406424 -985846161 -200383351 --175140890 -388041855 --840268028 -491056932 -286662568 -352089926 -828924926 -608050972 --975928177 -200648061 -735516082 --23840506 -483102246 --44771001 -171156011 -649334602 --626782155 -804201037 -994863476 -115035985 -489798980 -420980538 --463858352 -99034733 -580746433 -751604561 --445744985 -983247524 --602789645 -906735061 -720395696 -936924105 --456655334 -428224055 --162681347 -570726925 -74038416 -441751398 -70100442 --703397886 -816725275 --402524614 -529735477 -404177413 -960288437 -570130927 -382751386 -684555997 -700957681 -816705162 -953980389 --872169321 -297738069 --420414814 -215775217 -236463628 -809706737 -819067442 -426996044 -690148892 --844747361 -32924920 --694054142 -377597181 -379008542 -381331392 --515239911 -844944858 --220773385 -782612565 --209922403 -308680770 -308558351 --303473784 -205171710 -912472169 --59815917 -983501744 -709743555 -307447894 -663619675 -520473672 --639008012 -913946373 -423292893 -276418121 --444986841 -224390786 -321502598 --691592472 -830981523 -456814955 -852827410 --797665730 -266777230 --115729337 -190403694 --826361156 -820314975 --476305728 -409518775 -655156902 -740101160 -213441032 --278199221 -175725449 -265136144 -955399506 -809408468 --270174675 -176333425 -511022552 -280146545 -195706834 -446038698 -487916620 --108051288 -98652733 -633507678 --193582740 -693422231 -452539658 -385524441 -510795988 -425659242 -328494320 -818557151 -439479575 --905301581 -391259557 --372939247 -983992693 --412354659 -63148489 -964596930 --429938942 -739955315 --530241453 -108995528 -893781383 --672028332 -994981235 -411555699 -773867054 -628897304 -514963954 -14989945 -50293206 -195334652 -844875114 -118406228 -568957602 -528327947 -990638801 --792448346 -56468967 --152504237 -83915130 -754601182 -251825806 -480045729 --652839767 -374713252 --395669885 -461534169 -659626272 -69156011 -373105650 -661505028 --744222143 -179067975 -361748021 -674864389 -767681869 -728132420 --394334073 -730595264 -830763200 -818411413 -748261984 -578349560 --475775214 -27812260 --147895992 -755493209 --823478109 -992586970 --628736874 -559250862 --779512749 -237701828 --894105998 -543236513 -366037094 --484000336 -558801560 -742591501 -424436550 -753663250 -536248099 -671244049 --194785396 -785841148 -834760207 --679644479 -756859804 -161126059 -281609532 -342892090 -670250837 -162296070 --499211464 -213106876 -341006838 -608390385 -221273971 -933243342 -697760016 -330946329 -20057566 -459737334 --80175353 -329664124 -254156351 -633677253 -907972951 -290782993 -269431333 -155739313 -146608416 --788179406 -564532231 -720178804 --683329923 -15514730 -555209074 -959092547 --718766879 -665231984 -869386136 -857185703 -550303234 --567498296 -840031429 --471383114 -212207068 -800448348 -145729309 -961740358 -295704454 --104111626 -748773560 -845896257 -429967588 -428558664 -862424507 -539337206 --798479036 -70241043 -838077778 --751857893 -370543313 -966147952 -582856113 -819298649 -799893564 --676771013 -385417459 -818064392 -51972988 -776008410 -169132925 -306255639 -96628316 -914987717 --452381749 -119329847 -123714792 -874201725 -766681449 -394002744 -18030670 -16615536 --476285911 -857254520 -536330099 -338575462 -328553007 -939027581 --903817707 -393925776 -367948577 -710772824 -563656853 -452837557 --298324982 -39594758 -340414769 -605073168 -587230517 --791577474 -932140079 --716194580 -124924849 -649724484 -938277510 --900087848 -983684268 -178485313 -877955523 --444370062 -269427675 -649401912 -59584154 -782377442 -655159854 -249999646 --471079535 -597194985 --251279117 -730356230 -61701822 --231066680 -154832369 -538690696 -695579237 --921707052 -505267434 -199107005 -378903331 -148057959 -396343504 -853296649 -906816690 --398048408 -519454046 -385501551 -994413480 -38672104 -159167197 -461259684 -169594349 -205084743 -681162016 --667116254 -993545519 --874357668 -206366511 -108224591 -938146042 -181088529 -832252432 -685947576 -618644082 -17230401 -743054675 -861580550 -463312272 -996384896 -523710602 -248481737 -696372454 --162622198 -316680313 -374786305 --754163618 -211282176 -383892323 --854080522 -279762836 -887820705 --198047368 -597820331 -94654745 -17874480 -143902056 -108761072 -756796558 --906673976 -485643395 -358938128 -900891050 --976141856 -616166427 --541465555 -725195576 -925570590 -835125632 -246491936 -38151625 -770687136 -369357027 -414315200 --617769669 -409646313 -78987574 -267181177 --18497122 -542594449 -988920391 --998150857 -939171524 -983014124 -996229663 -266112099 -235186781 -289304376 -334589863 --4834781 -499295673 -678468944 -266462473 -415595090 --911247906 -701756521 --532862726 -197920395 -39504510 -961896949 --94324779 -716467485 --675430315 -993741373 -449409911 --456086446 -407378456 -708305879 --384451022 -541696279 -796993749 --620997910 -141947887 -322507042 -474053022 -310895416 --657937197 -640328736 --940786113 -163618862 -766805561 --58864048 -175760977 -102765849 --371674954 -270458940 -522989193 -619378832 -947624880 -744439989 -822198391 -215240698 -285102806 --812500624 -629749054 --496527683 -26873219 -770572548 -115110855 --159368090 -375819295 -247667891 --460667918 -777765665 -197983313 -997706468 --914491753 -730256750 -800191069 -565082655 -146581544 --613764175 -241162097 --881039369 -526127898 -406132274 -419908032 -779370984 -271498300 -439789615 --535309973 -771095765 -114629364 -18143320 --952071668 -848304129 --617111603 -99479494 -92219452 --599821149 -577035526 -924620210 --200660049 -735529298 -324985631 -67075515 -280645086 --635674119 -127919964 -575783361 --41720419 -464455514 -326150194 -840372480 -715351595 --73690519 -939328879 -764454872 -650848585 -663057177 -893137906 -261412962 -406676172 -988659323 -82638504 -254027999 --200809270 -693499306 --61274922 -135288253 -731927500 -604358717 -374386096 -476864363 --215911734 -134346467 -779654513 --689039989 -579554057 -900571077 --154070548 -737981168 -45035830 -975758788 --631045987 -11295814 -965373541 -395173595 -105379846 --488415448 -701541104 --344108264 -570589353 --441083827 -785880153 --89783362 -435554761 --656704957 -456860586 -778925075 --582763114 -166656467 -863382631 -497543723 --614879432 -617156381 --589918447 -820216274 --333815564 -668934682 -666665514 --846837342 -417793785 -766443347 -87288363 -846096570 -697240114 -77360034 -899642045 -130988632 -493415806 --270067894 -204139429 -551724801 -239650233 -169265063 -85225924 -413807778 -456464545 -341507354 -870120718 -857790602 -946538495 -510219535 -892787211 --665543784 -546128374 -454066769 --288035354 -584255367 -167031554 -380005638 -345596094 --125206871 -240665424 -533168259 -183399989 --969653691 -294150402 -205558701 --517068089 -633945920 -885949586 -946973212 -8649596 -862260468 --222208671 -564167730 -217653034 -202938641 -896842089 -444878349 -722398427 -852759751 -76615107 -151094778 --579261566 -345298010 -81152468 --969555931 -761010989 -27245138 -238301258 -397094341 --899106337 -3642540 -583488465 -332071613 -943956643 -344551192 -255569438 -504951564 -879895286 -808268795 -277392736 -301193186 -286568792 --792910250 -752292826 -610036778 -762869159 -926099774 -38703495 --340805911 -535670514 -816668451 -336602444 --256104020 -733344668 --65506504 -122372413 -636464361 -647330211 -279700532 --348967575 -205844678 --403105946 -875772827 -223229792 -495987676 -319251119 -785074532 --568131189 -915927261 --671139659 -482353807 --983644405 -608772504 -350709312 -538160717 --245771117 -882760775 -816832055 --453630009 -739974608 -170264107 -80348109 -36518260 --41716457 -860402007 --131387714 -967014923 -377524897 -219051675 --522420959 -706490229 -989784508 -440851043 -638319233 -694030206 -709202858 -100462981 -367664205 -680910219 -158565250 --225588513 -467032255 -679201890 -517521215 -124820387 -951243675 -677756482 --522782983 -483674744 --314438354 -302889791 -590368081 -372167941 -345350190 --485255364 -894829643 --272626691 -997989273 -848083696 --156614361 -840202321 -382473728 -945457585 -875896181 -418347575 -262562803 --827117532 -293065715 -664840801 -200980197 --925203401 -102507745 --825525906 -986494604 --679191380 -835677553 -627048421 -386058467 --457482583 -802034140 -851672400 -567480724 -184194226 -682176229 -908721842 --916914271 -940997683 --503207326 -391472469 -799271690 -694856441 -485365141 --428955680 -48060399 -520179746 -558110586 -494750439 -729358753 -699434764 -477931033 -47392144 -593058885 -336840188 --690832439 -435074001 -846607020 -339291082 --744854237 -318432 -418294058 --141075811 -944933154 -465136997 -752323472 -962933491 -163853502 -431479531 -254796678 -305483751 -615513871 --114856450 -724131224 --253900206 -67276515 -228800201 -168493644 --467228441 -878633397 -101496030 --457915343 -80589781 --726832327 -349859606 -174900502 --649555896 -450511116 -411425555 -350689344 -187374612 -673880730 -561713891 --625986622 -754144169 -75714418 -877722095 -250750643 --969166304 -716552990 -61311669 -501945693 -114510579 -747978025 -731644107 -11329798 -161951920 -697955881 -988815561 -584474756 -203795112 --279851873 -97246121 --137109689 -363885855 -957854698 -315913540 --55129750 -683196805 -627067846 --462484452 -966125495 --880891725 -155246703 -795007390 -230036130 --561239695 -923789307 -141245816 -213276488 -199762902 --110175704 -845245792 -84171329 -591985207 -171415353 -128718291 -928371964 -859761966 -822411460 -877016990 -421960344 -761356856 -230118637 -138485197 -396047480 -848773429 -29363520 -641424457 -773249180 -246043130 -604983015 -521152803 -142683999 -314748832 --239650233 -510397594 --84176064 -373484949 --33257393 -815824651 -236466893 -997488677 --520246292 -72093786 -631766467 --659936348 -920745856 --5563028 -614145287 --748941637 -15298813 -246384402 -344929019 --754235711 -885237977 -271070847 --138408370 -139014374 --828073789 -626487245 -623008760 --668451921 -792569988 --620001080 -713754880 -822208746 -760210014 -803639935 -381916253 -796054498 -566725499 -858488922 -984050303 --38711565 -777941393 --645192448 -24682244 -235942490 -560269016 -871648852 -364523949 -965167099 -996562540 -338558190 --644516187 -554874342 --925531498 -306415714 -100868321 --1192993 -510417227 -398298035 -209621798 -107921688 -508109035 -405786664 -886135831 -568766094 -717729744 -713385100 -416516835 -825015574 -69684412 -887123161 --276566532 -359456823 -770044383 -154625165 -919003501 -428714987 --9394913 -158086087 --965463225 -133700577 -159056256 --632210636 -542665312 -723142331 -695582446 --265151386 -618392982 -431459689 -243602217 -781352242 -237783323 -572060240 -612187112 --102726184 -743479134 -423152738 -120782829 --206080022 -675705599 --116803816 -699531532 -144543072 -40508812 -113475218 -219730779 -672828447 -408870732 -369091973 -391729354 --613079540 -909602715 --819329661 -475378219 --767681869 -408167522 -852773704 -163487456 --302097232 -330175283 --973461761 -459236329 -858423250 --1238924 -49758121 --234309880 -604782488 -715698819 -432695005 -840595181 --481609341 -254774457 -696494800 -195638870 -809204691 -792715434 --799301836 -409188049 -630050374 --223839038 -291068600 -27801970 -606080195 -683238183 -830881348 -831639419 --314295652 -784107714 -348716199 -919937701 -529105246 -52747327 -417794695 -502196069 -552302144 -261164203 --32862345 -571151898 -912941105 -238714341 --264276174 -156957106 -970940438 -990879813 --890084136 -982311476 -995592361 -397123860 -608781892 -739702966 --883076739 -819500461 -80530902 --981401729 -795219254 -559255358 --711612417 -695364341 -805007233 --199579851 -139897001 --417686424 -41145213 -845016795 -298484154 -118669458 -386128518 -604553581 --85955291 -584716990 -721418781 --31911873 -312289902 --80475441 -404663785 --518587219 -848657641 -840678211 --771025623 -555498376 -610304373 --747486231 -514962225 -917614994 --821269609 -608971602 --28280593 -953308503 --70201482 -658354467 -513003642 -459042855 --473689711 -740729289 -828653423 -398613264 -265185548 -463112130 -185933264 --922093441 -267157242 -885477556 --363208269 -691987254 -580741975 -981723644 -977350163 -433885602 -281365226 -394541875 -482083252 --769952569 -997515979 -111606626 --886575143 -641116725 -212247419 -310402558 --474743277 -419104120 --662744928 -98504817 -889703163 -825739305 -219709721 --595717329 -930888122 --533604973 -97006677 --967389967 -257109298 -299145324 --709923682 -631167123 -109527161 -884651959 -527237110 -247934171 --264080494 -348598699 --5674974 -216395151 -584679372 --696357312 -608268619 --646813859 -199819990 -1433770 -445578962 -771447533 -32155240 -916396242 --65732439 -875397370 -418294814 --346277144 -272387484 -78853523 --137109500 -654613218 -360986005 --458130325 -317325504 -600616288 -930071973 --101378432 -946333642 -333193809 --634282609 -651217887 -142869964 --6839696 -464811211 -484412480 --641068318 -322398115 -630143431 --98121033 -231047494 -148272329 -223384234 --671523241 -103650483 -401820665 -512657270 -119492243 -943483838 --421041826 -140419912 --512471902 -428884239 --286138193 -358123277 --799447501 -743366240 -793504968 --511338933 -196829228 -966627918 --217925557 -659069707 -730934569 --978821691 -881981779 --697240114 -111629199 -140852303 --320856444 -735650249 -378948528 --156371226 -594196413 --220787586 -149043402 -831295275 --732602872 -188079251 -729778391 --628324318 -530767046 -354669409 -664078283 -892553595 --407605869 -735085052 --101664434 -621134083 -330844068 --678992237 -265893603 -59640518 -166800988 -897792741 -392360012 --637746817 -154715765 -611094032 -306621639 -394935712 --602655213 -614744142 --277094018 -163733207 -940122123 -621927493 -199092709 -897985663 -413860229 -543041719 -4005293 --693161614 -883428740 -120538700 --577661660 -250123334 --286685678 -567063854 --907602527 -876333661 --334723674 -755781520 --920492140 -789049277 -248804195 --732335573 -31279449 -226565326 --462740124 -841801377 -489155090 -181756901 -912773300 --391713743 -57189557 -445301417 -105134378 --651802114 -626171363 -251589234 -258345164 -183947433 -884813567 -655613896 -761633746 --386241742 -786247667 -579259431 -48690774 -848925230 -802802085 -843869416 -964075028 --684976567 -712172490 -816555997 --414392965 -713399998 --448244738 -340911814 -48289748 --601745494 -985153743 --79488632 -974834342 -837789389 -537587414 --27313571 -347657458 -45467658 -462712829 -251473030 -356877549 -648290262 -346070853 --292825838 -300757587 -975811694 -661997947 -338174733 -502445606 --756969359 -659866232 --490419850 -760781555 -622539423 -748634320 --749685699 -831591632 --391709250 -210068807 --19095847 -822949844 --414345962 -911437535 -656982797 --586114538 -982802046 --639889913 -384264663 -464755563 -990137885 -241364496 --944667082 -578866269 -968689018 --908019422 -431863438 -850659443 -511870378 --351911586 -681423994 -117719279 -996913403 -154975995 -509932207 -19417775 -811000886 -510903606 -755225822 --824752151 -76475802 --620346027 -561403547 -176787951 -243789916 -243278340 -112240159 -742251242 -149981078 -165860157 -793676482 -227130495 --379002183 -307502134 -819570101 -130418915 -75780558 -21030091 -862875800 -874677101 -879141324 --907818533 -21260291 --611573927 -593164471 -298875873 --390212379 -376330775 -241497548 -137080025 -465141248 --102523626 -253198349 -412864414 --952162641 -505478565 --110011034 -584866584 -282530658 -215001410 -822102861 -655818643 -579302801 -362428203 -207032251 --654325002 -5378380 -883289550 -73653821 -844797086 -878292176 -102001485 -835659918 -614365136 -328996015 -672933684 --401820665 -222346087 --499075105 -634126338 --98522828 -274211202 --964577670 -751543632 --204753256 -995005087 --743590859 -11779002 --536621612 -636782492 -402433971 --499259006 -642906991 -324594747 -7337582 --454102064 -894605382 -465096351 --733816711 -311795107 -770195142 -421116544 -714858726 --15837753 -474297178 -336470641 -71094723 -334804445 --445738664 -5845631 --523638568 -720111272 --75019239 -37241689 -593325402 -387724705 -121327120 -847250775 --493709024 -327466205 -14462645 -480832823 -508595277 -991814939 -88620659 -384688127 -818288772 -220135313 -765877083 -791892378 -222218331 -626753470 --41252822 -28525894 -276692507 -865404764 --289161802 -26330871 --952380231 -539327501 --712940696 -525749852 --131595293 -135345137 --726061242 -556343647 -893486704 --224829625 -236306611 --833769953 -486234678 --370440494 -713964767 -841647689 --497152872 -977965201 --898555974 -284317646 --8813478 -684084626 -517328250 --180927831 -25282768 -157086990 --135379831 -256604619 --163034370 -529753041 --94219558 -29369363 -843228662 --694661790 -884380339 -483513529 --765397100 -103755987 -524032073 -478330447 -721010409 --928362275 -368072738 -36907843 -549781576 -827816272 -67900109 --266999761 -214349652 -494943726 -831737853 -716991345 --720402957 -378809117 -139255210 -270724495 -291540605 --133133227 -578425169 -533150876 --233667327 -154532296 --141458456 -528286285 --177504324 -306833425 -342453419 -414524500 -654171309 -241656450 --545883409 -624224087 --522760739 -942655749 -641492474 --580675235 -54287028 -598028332 -804432228 -624448704 -968978394 --584922071 -981025369 --422195344 -242600547 --797405085 -575333866 -953385907 -924060783 -803530160 --844149733 -788732449 -482104162 --781558661 -871133385 -826086339 -981437072 -681988639 -678470728 -907208270 -218475039 -418155887 -109289830 -404520268 -543502629 -958185913 --799908840 -184383541 -119582097 -643700915 -928573159 -410790043 -759301913 -594282448 -596233883 --636185673 -8734423 --714203562 -250362097 -381863073 --272624761 -551637897 -984370122 --917744458 -542287357 -127283272 -489208820 -826661713 --917820798 -37881872 -10206362 --880264695 -622260784 --824417889 -629618725 -679832478 -546706091 --426319652 -387413520 --585056688 -514969900 --65641573 -20796228 -768898718 -680564097 -416413587 -779486876 --727566998 -362335367 -937642224 -561186938 -690818295 -958262703 --729301513 -549993474 -61505624 -964756599 -202327748 -636710423 -881204586 --784104085 -578955448 --933812095 -731232340 --884599148 -521705799 -711225628 --700270995 -735658764 -272101879 -92138083 --41190594 -419697495 -724965334 -547437564 --995560514 -270979405 -310627685 -510981930 -631833934 --490060672 -409508845 --569931686 -581388088 --892598705 -603804813 -170923635 -741104662 -460069573 -555721743 --773511907 -225496607 -598132369 -681039697 -67613618 -814244648 --589461477 -701777832 -143974803 -420472985 -87621044 -548287988 -216305638 -801461963 --175521441 -249022043 -145794025 -700719682 --536600450 -347040665 -354401338 --530166000 -155886858 --560445808 -126907870 -434167358 -555581449 -917029202 -987265473 -650425138 -684381616 -157968971 --22361791 -701869378 -668738855 -799161310 --994089527 -481057157 -261126227 -436899636 -380511785 -767186099 --314925154 -531068549 --849657573 -606424110 -523682333 -461977624 --93263002 -130598841 --47827150 -775757585 -272392972 --151094778 -894007667 -152227650 -575722288 --199438381 -775990110 -112112439 -579825460 -921952876 --688426902 -198262549 -475514132 -689347366 -522991295 -77796515 --907047332 -11139759 --153337276 -109418873 --381174665 -246319531 -756508210 -463319045 -63362465 -841906455 -99206566 -758617565 --389953197 -205521456 --226524719 -254236566 -924752029 --289129950 -665265619 -711822624 -764127190 --997501980 -336853123 -974488675 --89665 -281747698 -988511506 -80824306 -127096500 -998098793 -384106463 --201549957 -711124493 -413741049 -660217525 -891092904 -864866928 --366585767 -758280381 -994536565 -381722285 --342341089 -72091846 -579969439 -995341517 -999527969 --944507666 -838350842 -333529013 -716573164 --525723086 -485799284 -360314068 -831377690 -484613183 -105640832 -762552390 -718049719 -98503635 -496115059 --902060833 -639339210 -907796011 -319697819 -365246212 -877973479 -501445413 -489172281 -262467364 -214272579 -445018455 -874668710 -10143680 --374644160 -834088780 --309237292 -11757906 -992538968 -265947351 -611592426 -797763781 -409433584 -94592613 --764487088 -368813203 -86499195 -927030936 -53160835 -774867949 --549640351 -794608691 -552055492 --707835640 -205255599 -248488098 -901594876 -618502385 -99679956 --999233252 -828444696 -404795981 -593720293 -446753307 --885118441 -949089317 -415548211 -219680811 -618726039 -923084379 -759027803 -158105175 -269613759 -365827823 --14041663 -542863076 --158976811 -909744904 -448599543 -859918891 --897259139 -133658513 --931609329 -212513685 -543509143 --464073217 -345617086 -452469093 -822893940 -670559427 --256956501 -395297800 --965015511 -507168943 --420296415 -957032990 -37955734 --5845631 -344232579 --383478246 -324051898 --125647244 -759224511 -30900592 -79288902 -393281169 -698811906 -409280575 -164692187 -562581095 --30345659 -20931001 -436704916 --60930660 -226650485 -388955725 -670053771 --893704777 -923986318 -657965359 -487524663 -830794781 --206241914 -46682192 -28726076 --684321344 -143097143 -809532963 -927476767 --503032074 -595714667 -362034306 -859502713 -382336920 -505246253 -608447755 -604977461 -792407096 -969600683 --607441038 -264871014 --486697946 -147187499 -274981815 -848067503 --759988615 -761896254 --407971144 -189498589 --520826173 -560578169 -99272963 -472781191 -713834192 -695480132 -418558621 -444487233 --222218331 -50220747 --787940504 -504450622 --250302558 -655111181 --513323 -141357403 -915638804 -739474857 -937878667 -135066835 --346890267 -835797812 --865616690 -283967207 --923102199 -58178436 -266681216 -963024312 -215261414 --622062938 -234436879 -442821913 -358873848 -239886873 -813410485 -486851308 -383454564 -618529899 --869310641 -255628530 --868810878 -311977243 --612784582 -358655607 -900207318 -209116985 -891746311 --261205789 -523933177 --444271750 -219283913 -394726158 -852477452 -610547537 -462665663 -277378987 -144861295 --724522797 -518140657 --295392691 -708470877 -277993778 --391259914 -800408721 -541304503 --448114905 -532341007 --403736881 -167389207 -28151822 -258589903 -720825085 -818199241 --258786133 -693670379 -226479184 -957348595 --560578169 -691427007 -243244483 -604869038 -201722407 -198944973 --65766287 -600865109 -193641966 -498134365 -419839583 --285287427 -686946528 -45634331 -567952923 -860677768 -5847388 -171259814 --372972076 -906212645 -133796640 -653596552 --734237410 -523047783 -507016720 -264548771 -654073499 -409602596 -450831742 -519936223 -381022050 -780116476 --760728859 -356665386 -179936428 -323035636 --660069860 -229111580 --908721842 -535987709 --83935363 -356607496 -679708373 --972648058 -232198652 --540478237 -833556933 -658167970 -94432414 --758821062 -480992775 --534517364 -56756502 -458522659 -619843289 -875987590 --4706255 -763215015 -543094744 -950759224 -444827099 --973492623 -569003786 -356923281 --251753526 -471383362 -488331932 --569097838 -109863718 --832290603 -583163920 --885938169 -629639120 -775683293 -66477361 -460690982 --961108038 -478460036 --579044805 -558964213 -303975716 -383556143 -403963025 -499008122 -370981850 -241579974 --815350977 -846562452 -285122196 -711252620 --502142337 -250032120 -664838133 --578323061 -812599353 --312684949 -378979805 -611225932 -151910160 -61784545 -763698518 --701177544 -600245722 --102349105 -343263821 --191671629 -49925844 -268371721 -849206587 -263108541 --299246544 -763522582 -155231273 --33108908 -495011232 --693572676 -948702041 -978010276 -783072793 -551731756 --40574885 -402734012 -411151135 --494661924 -310584813 -870634802 -966178361 -784711319 -753250786 -440203038 --192900907 -780428995 --976276337 -632968901 -623502664 --669178837 -73289263 -480985414 -334228597 -485925954 --629539984 -974607713 -192002335 -656134113 -914950038 --438771951 -446184166 --584892084 -277982044 -447056896 -35542201 --423923997 -557436855 -33669871 -917829906 --568770068 -678169569 -424958186 -151496295 -427630360 -258346548 -903745000 -450160662 -849764844 --925633416 -577782647 --651509219 -317323054 -94157519 -779129917 --917106515 -325583752 -144931876 --957983610 -994595239 -233139824 -660717045 -505310494 --314335884 -254325294 -605990992 --613841187 -389038646 -974904919 -28026852 -44210100 -211937822 --556187937 -799570494 --518397580 -356236452 -665906641 -762611376 --959468162 -226862726 -411328337 -707071824 -741579086 -835684483 -584449742 -904692016 -90389796 -989698258 -150914946 -98704052 -238278596 -802332709 -822011387 --879293242 -911800535 --750757809 -833056380 --869669985 -218420390 -972100312 -887824461 --603698152 -238269207 -96950720 --39935754 -441705917 -979532359 --462176731 -918381457 -988930965 -408604042 -461501019 --167967542 -256114934 -570970122 -774760232 -669889953 --976199912 -301405222 -614251805 -979488819 -181765173 -132162492 --85260312 -77589847 --820102329 -173224102 -765160721 -214956720 -999167441 -91739126 -984824394 --618502385 -343197854 -378708512 -62552450 -374827982 --964040049 -779367891 --259327785 -406290015 -283434609 -911257651 -473671369 --847100805 -29889233 --589196920 -913593352 -700274414 -67184903 --249648230 -725469518 --583078444 -938942261 -479953153 -352824866 -670280500 -489218670 --643319846 -839008415 -51667949 --420440143 -123888719 -290988816 -173340702 -83369157 --890150028 -782723897 -889120392 -91902064 -396092177 --433885504 -871627302 -34277614 -213025396 --300166810 -716522377 -391899386 --496642054 -730444868 --775316109 -795430691 --47521811 -494848521 -974855301 -271751816 -138577433 -772111160 -623710012 --623650568 -140028168 -397999892 -255492450 --6650092 -619511985 -354584197 --148827340 -784145915 --839874460 -66681458 --881647216 -793566827 -433801534 --140210855 -659179379 --105449888 -625669281 --517750508 -169660276 --785068380 -341661149 -218475860 -652062429 -496272204 -232410132 -917737077 -426859212 -330528669 --637276670 -776388941 --194692645 -974807367 -256358093 --16157972 -939270090 -813851494 -652055740 --690612738 -250502191 -335255732 --523722057 -296715538 --1053101 -65272046 -165319603 --28840715 -110468248 -809425392 -870682979 -62592200 -385319026 -655682238 -883164417 --392015232 -57331188 -116680913 -821561576 --409507463 -166124080 -670760186 --892465586 -264519339 -200606035 --279378414 -779995072 --267210918 -794078522 --152866187 -847379079 -896786990 --4105223 -959187300 -250378156 -244330916 -728689163 --843147603 -864561719 -391141094 --722311958 -812281414 --787922055 -912761987 -977327657 --470133684 -111199511 -764891374 --25983281 -877309772 -223837889 --247583137 -918325188 -505881787 -235448651 -270502451 --807217294 -948351782 -748196878 --147753501 -616859761 -900305478 -856187128 -776023363 -851434305 -74503183 -313492767 -56026593 --219126974 -338813150 -327370593 -758119393 --269613759 -811493074 -338840628 -913881197 -242039618 --320821998 -573170789 -720330520 -691898896 --218362044 -44252403 --294188487 -670791299 -394693320 --101066129 -384165345 -964334002 -861821964 -362263484 -362852030 --169972552 -993790643 -694000643 -957003481 -363104412 -2805480 -290638211 -64879362 -408766405 -680757220 --280795069 -566441028 -865307736 -577634371 -136734939 --150624648 -26696611 --550825115 -971038515 -910950145 -504367514 --113905811 -274362513 -521740827 --453010195 -729274807 --363198856 -597348389 --250058392 -68465699 -603530772 -650302365 -73958160 -506383583 -650020001 -683757165 -801708937 -58250150 -894796384 -588544972 -643936542 --647781213 -810939774 -340966497 --652087595 -556191092 -376732733 -99055431 -829541801 -818792515 -361846890 --485868222 -927308126 -657809584 -118110126 -101529617 -253889267 -176050237 -805653497 --322928748 -596243250 -97548520 -108412606 -576538314 -875385582 --649116425 -527964717 -751391663 --911496799 -286425242 --602444903 -155839398 --332364728 -574958636 -441509227 -685584756 -626212396 -646541706 -880348188 -655257178 --37400239 -309466432 --733885224 -537077121 -333308514 --577194252 -420504202 -366322277 -977284211 -459372162 -345655336 -466903114 -67961727 --515442320 -968473655 -304328942 -794733218 -332184520 -577070620 -410944173 --108856316 -613259648 -610105140 -500802730 -479020972 --94965522 -95661031 -475719061 -684743543 -732060008 -396147661 --807216073 -455623888 -257395559 -354657133 -576186647 -820281066 -979976901 -711772447 -412753897 --870682979 -619879203 -563841942 -202552716 --517388827 -129924969 --633640663 -2712055 -415482589 -505647117 -119735267 --393589850 -449128717 -835145682 -250206493 -14715772 -410376210 --584866584 -389623519 -980491116 -227418161 -800735616 -481788168 -235161311 -373157080 -711305369 -646095053 -326807815 -449977194 --437205337 -534799374 --982156540 -841299514 --509365989 -725907549 --744065234 -57452499 -931669374 -168883299 -981618243 -2428749 -719964826 -83503826 --662858334 -737290713 --803393777 -46124241 -848900995 --295001491 -449025616 -513028054 --79117751 -765179609 -919448532 --261698323 -155661400 -628096603 --999535044 -167706707 -509319083 --696997089 -127825637 -26581910 --871494334 -845570664 -838835005 -886262935 -533684672 -484131137 -598272907 -658057451 -44252146 -247534328 --583992653 -34865655 -640775798 -85029094 -32126637 -100591443 --455746840 -340424573 -510734196 -303859251 --292985800 -100317427 -967170542 -126942220 -303645677 -412181943 -261493770 -313946397 --536236197 -82722407 --830747660 -735404425 -660919186 --180440244 -790544980 -197099353 -421305820 -202494640 -579716462 -792486110 -506328893 -249047473 -987858805 -415924409 -296532593 -974249589 --236064954 -703972651 --379091729 -654746922 -306769607 -71542878 --963206838 -829611253 --421453726 -48258023 --384884885 -341933800 -384360772 -486827355 -316137246 --177103841 -760465067 -595950112 -365674064 -703106482 --715698819 -953333799 -564624428 --665742599 -898256012 -79173984 -353832220 -944901597 -929096790 -782321616 --567421843 -386829695 --718787378 -383724531 -372395140 -763110516 -493104554 -51487016 -266102013 -78230319 --51953554 -17415071 -15821807 -859116885 --811180821 -132063370 --76038026 -791765790 -192444098 -570819573 --86045122 -928474445 -602090771 -496652308 -872671690 --649916748 -111371061 -449090677 -519525621 -284460580 --656234294 -412955067 -699495456 --501437484 -440236886 --927094318 -968063670 -98817420 -199963973 --93094562 -960742494 -474992682 --935237249 -626716715 --417314503 -264055819 --702466307 -701631760 -503827631 -2941045 -466926600 --912027396 -278121354 -989754485 --230683090 -54179492 -289065256 -884362636 --99233297 -223550150 -573554418 -354766518 --331276604 -253349692 --256754079 -956301885 -572985655 -195247375 --676005109 -996932857 -296831701 -534613132 --30460995 -62464353 --636750554 -691960863 -792552190 -686968922 -828364656 -752663662 -850360942 --408845786 -727557918 --383724531 -532698186 -137168010 -438314665 -212498880 -866333082 -874200906 -18216157 --39928623 -727968795 -500974904 -172139487 -614790891 --992232918 -788480814 -522760571 --349271184 -671290604 -102530272 -579977744 -524135897 -256553361 -361491021 -437535751 -898943877 --945844648 -744978862 --415082117 -656127279 --314608668 -467476746 -392026270 -120868012 -586989939 -964071043 -833132954 -947333754 -689884764 -37493521 -651857008 -222276714 -185512421 --439289341 -388027381 -378631592 -252001085 -387538818 -71276387 -185293906 --517843286 -691894623 --945171412 -454928773 -961270892 --293415575 -395171206 -356578591 -345154006 --235931880 -377142405 -781144098 -272650902 -623318277 -674730509 --70908819 -914120493 -215864627 --237220813 -638745263 -710583336 -316189681 -333964451 -125178450 -491314276 --239898497 -47039938 -771487540 -729050336 -525563239 -253465674 -740859611 -939092854 -696810326 -199148307 -819654899 -89372737 --402266544 -208286781 --178039979 -94231192 -580793192 --89125160 -582461375 --373432350 -502763133 -241896154 -713342528 -30729571 -996373751 --998198229 -128752328 -775161887 --176835826 -952633191 -110888494 -685944840 --203637545 -820236650 -622299134 -52259473 -879364508 -811692189 -155199714 -960959755 -849995868 -764861715 --292171992 -587652012 --643986714 -905756146 -829686842 -190785655 -199231765 --409188049 -244820537 -35703703 -174096962 -190444153 --215650605 -17110972 -586873777 --691516939 -690785768 -342458410 -126007273 -873510731 -903232269 --732280204 -234618430 --706916333 -448261999 -229713711 -732061795 -139889385 -963750510 -236711537 -890867212 --329057449 -867709076 -733824409 -683102068 -194414729 -97431483 --668362300 -692820926 -988657529 -924526291 -963113610 -224324770 --282628132 -803506940 -181695479 --714035464 -188082052 -757775615 --300504560 -522624959 -817694908 -757423980 --887568345 -455337474 --897919903 -423765443 -708445249 -514332496 -764777093 --196699524 -134869198 -312553076 -280325566 -859342816 -897301309 -902530541 -462423535 -604966163 --688236130 -3376869 -828728531 -560349161 -938211670 -72773984 -24234247 --413538983 -663052914 -57201873 -918001968 -908306346 --727753652 -331330570 -34202288 -27196180 -332775222 --880265228 -308916990 -368186472 -16209241 -564515789 -248808694 --209481441 -896577239 -774446954 -110308298 -3006038 -352914030 -411229771 -284201230 -136057782 --392891462 -172286264 --732162095 -482156122 -299811438 -810265342 -996785386 -267149966 --836073187 -221911816 --225110907 -629187206 -107953170 -988693339 -7469147 --678378396 -890562493 --868655180 -47989581 -628904172 -206823329 --267361464 -785394740 --102189497 -191038962 -612134171 -19436654 -23739868 -898978294 -344546078 -306701271 --459372162 -186260145 -669466066 -557743763 -580952729 -163415699 --426862685 -60149641 --272488674 -804891410 -302380028 -766355465 -141665226 -174449388 -970374235 --834902659 -468705386 -451101747 -511960009 -680268574 --486245752 -597445979 --808899747 -848203382 -684125597 -295934341 -385271179 --611908197 -103213721 -730578764 --974865272 -6848502 --893581690 -323394304 --174105813 -840769820 --595767168 -714485010 -230905625 -504705425 -16313114 --82992037 -486290989 -361742750 -216807004 --253956595 -538469360 -646662022 -686843949 --103233646 -763069370 -335019975 --237461877 -387797799 -819860039 -346484124 -57923237 -224030630 -730196835 -263198477 --951495093 -546740075 -804348467 -789888916 -629819375 -360996687 -845490803 -798815044 -282279015 -681163000 -720527252 -293545584 -656316548 -584379194 -309475495 -482267526 --474260642 -907147812 -860722004 --756674898 -904343456 --905756146 -622917865 -405126706 -422828231 -251083992 -459881549 --308286266 -720555720 --12222356 -415521136 -812913867 -797278004 -45019051 -62730016 -206402535 --730237898 -907469226 --687656774 -185074310 -197886906 -689139748 -137062617 --338502793 -157058190 --254932800 -597134848 --503747721 -456632057 --283389450 -727872731 -345075734 -273627016 -51804899 -524339403 -638539409 -787374636 -407533460 --71342826 -696003598 -920013728 --703368731 -386224325 -771091253 -932960853 -99064954 -119362575 -946744344 --947608772 -415989001 -651643650 -701867561 -817700438 -296698752 -458681074 --649393610 -748918625 --389605905 -553742410 -711917491 -607056468 -373288194 --510795988 -509239303 -125611455 -330834969 -89583980 -596101919 -627978730 -559975325 -470436507 -141827968 --405786664 -642420613 -777792658 -555922329 -785035424 --792903113 -755177305 -879509934 -176593822 -109488865 -836631826 -764308152 -106758641 -423656161 --102329543 -790519160 -606276003 -51514965 -629209751 --769123462 -301192212 -58090205 --782533423 -530761234 --680235378 -802135178 --722398427 -377828114 --533959683 -968775618 --971898282 -973883333 -898028351 -805769596 --730845353 -620917202 -870783910 --965770257 -866078963 --189247819 -689047225 -475657942 -946884139 --301692462 -345147585 -840133239 -581484247 --141406119 -995457818 -500078202 -139935646 --975999202 -408612160 -179839761 -524663473 -4473320 -656635708 --264519339 -776685297 -18843137 -361891092 -603701158 -561747574 --559450367 -425460849 -666390710 -666179678 -505115493 --368519969 -558507051 -326381536 -930357584 -156120285 -817733546 -421740848 -429552378 -541367839 -818953780 -464237645 -601408655 -21639540 --154659944 -459827003 -168191718 -226972291 -847669427 -285074281 -882437914 --709591661 -918920544 -727886799 --704955419 -933843380 -261688927 -313174084 -255139129 -187055935 -722323942 --631590945 -777184920 -596890819 -761144962 -767905662 -76986637 -981942029 -519875219 --755055199 -529822439 --540595713 -280073248 -804124313 --978101278 -308336216 --413207922 -260924711 -841781594 -19098841 --569164351 -69048445 -432818909 --697357213 -768756394 -372519773 -65430798 --757641933 -995194230 -856667229 --568894880 -139279214 -515427801 -717682884 --848373783 -132769235 -672819124 -165660572 --752024829 -138751013 -87261020 -385047862 --440012281 -99914691 --506662994 -655797833 -152201931 -633734430 -802408949 --339369911 -818359002 -189805010 --349613410 -121449515 --557297394 -430733202 -73748316 -102012313 -996366734 -423651134 -906752219 -543624621 --540896955 -99869046 -119467745 -435100775 --256109728 -702305573 -788358529 -579677510 --922210831 -55225963 -800715552 -251208487 --113839670 -18610538 -142996214 -89105508 --828080695 -336605587 -782482735 -424458737 --119998684 -967149503 -476823193 --319251119 -778163673 --230383350 -252797583 -589555220 -88049689 --352788526 -569954954 -971277337 --625585270 -903662261 -189043740 -979754277 -912388260 -15370012 -256941092 -721040750 -37924077 --186034998 -911365196 -13640520 --985351654 -481516820 -404641763 -271360465 -675914389 -232216543 -721612417 -35261069 -779922978 --245240341 -73840968 --454993174 -264166411 --69354832 -251946323 --888199807 -925253924 -605779967 --6926975 -65045577 -564719660 --863382631 -691740968 -237143116 --251825806 -19714848 -848560751 -645911600 -448600344 -62216006 --644086544 -811103278 -902036053 --795465012 -707707363 -878386539 -143751835 --293358868 -818847910 --439177565 -437454711 -895370514 -60255216 --11582899 -546627005 --310502584 -254097335 -455716666 -734698570 --277070386 -784416992 -267377089 -338869214 -653805585 -173285589 --679615401 -837877296 -885488164 -142573053 -415660568 -730226413 --17763708 -205785051 -590156138 -807169780 --196664118 -749877626 -145031949 -474082077 -613941820 -168758706 -199606613 -970457685 -402800031 -843459480 -17921259 -580900296 --340110722 -591399867 -734158060 -186914708 --616465661 -341178226 --780797887 -258048709 -183033031 -392752727 -508065876 -906804868 -872500849 -443909284 -164313527 -722072514 --454237598 -48130818 --47801692 -586242189 -910611117 --186780066 -932071917 --882961808 -506254106 -839100011 -684223078 -633598876 -500803970 --253670857 -479586002 --881102729 -831375862 --634126338 -753896621 --966066254 -830188795 -945172125 -588448827 -934192041 -800932318 -750845350 -783389935 -299594293 -325600172 -765319932 --33898092 -595269118 --608562823 -119078600 --82391329 -57657912 --556191092 -479736277 -671705384 -610191531 -640763198 -243820744 --535936521 -297040967 -992022305 -958287109 -591861246 -693895541 --127935205 -881396427 -585907955 -697178911 --177087992 -584032721 --403593573 -114305572 -15318978 -641675212 -982459577 -945636424 -366303096 --624268125 -95171528 -967104516 --52480137 -346950342 -699391370 -501600119 -35987473 -673909015 -460662883 -112959089 -938176270 -740429324 -419611369 -909341031 -524814799 --269238978 -605625354 --257243291 -254865461 -124132685 -59700745 -879946222 --583464505 -188068074 -319863667 --70706292 -152380076 -659552557 --757775615 -702122813 --847766235 -459461167 -978911014 -952931397 -692561695 -481868081 --692917071 -668368929 --510417227 -637784941 -146783234 --5378380 -590634117 --119492243 -468690645 -508141172 -711125593 -307070086 -394525392 --844710467 -386905775 -304686748 -587692238 --546140587 -50269213 --554262132 -264647331 -596942024 -143239505 -913231249 --713399998 -759466780 --108285902 -197739828 -709307572 -690446245 -403810109 -288077447 --731657974 -925967136 -651033812 -558634311 --786243010 -805452045 -533021034 -281639956 --136875979 -151300704 --948794155 -219237065 -928364622 -962449901 --205945753 -792069713 --250495404 -984042360 --750100320 -696328396 -153912539 -786478682 -126826952 -957322551 -348682907 -207985038 --569978233 -335792308 -986090625 --132907379 -931379104 -891878341 --212187867 -497604512 --946776591 -277563854 --164359919 -195524889 --664456782 -995373933 -546006260 -882152089 --112112439 -560078270 -984965418 -34923178 -767407094 --901172178 -853866906 -513440989 -280939065 -623176419 -263659821 -575340856 -768733304 --111606626 -521399493 -963330037 -302220609 -995177756 -621583249 -334393578 --906013364 -618750862 -993830487 --711369861 -765434512 -703902856 --991625935 -698843764 -510173383 -70821732 --386955987 -302803493 -644153879 -263941488 -411188326 --237701828 -604900176 -785951338 --999026638 -331882935 -665305036 -103013438 -170855972 -517099369 -839684748 -747180214 -457931311 --514969900 -558240332 -529019570 --134977544 -350691943 -419701887 -702756496 --993691050 -322800433 -594071666 -880868303 -499612568 -427031602 -482167212 -672063339 -724230625 --622900940 -340491672 -79627181 -52546739 -783491891 -448916344 --509045168 -520195703 -781999457 --678591813 -905015865 -392720968 -974542726 -629978864 --197112130 -642066657 -581837797 --272226457 -948915085 -671533774 -713176339 -644643800 -749953126 --303101555 -256481494 -768207895 --650020001 -933892065 --159569087 -246676975 -556383899 --381573470 -600943962 --244328170 -74888697 -417092634 -584421818 -193015472 -864920207 --938004089 -335425044 -745445261 --803203054 -63174455 -535982292 -663191370 -514320426 -830437410 -400359931 -2275281 -887010367 --800085073 -539165973 -678204014 -784684869 --46966396 -635964621 -186310739 --726964511 -273229153 --175020345 -141671045 --738754365 -547532226 --333173962 -603161733 --508055291 -911174049 --861907619 -716796921 -570124549 -325419177 -298365004 --158555263 -903505191 --352459456 -341987269 -116676971 -99822354 --29189874 -337972164 -635612727 --725352917 -335293954 -740955909 -533162795 -491010116 --853588234 -230974603 -338018541 -306117531 -564095340 --106774755 -558134024 -843402452 -249164930 -97049021 --691218339 -807999548 --571999214 -810720442 -935492366 --479374965 -139505065 --17874480 -524842984 -953084217 -35112744 -857336463 -795551383 --84871737 -72963859 -58817695 --148971449 -517676607 --317640614 -954999282 --40502045 -182137394 -220398089 --881485167 -747843093 -89493253 --456860586 -336306599 -437619275 --944909875 -739353998 -20962768 -248604136 -120124321 --120186808 -311242204 --501771751 -506539031 -915502751 --487379107 -135834147 -877858085 -475040270 --555922329 -118118034 -689556279 --242061355 -849118761 --67001705 -275801897 -286808322 -896111693 --299998215 -986124471 --398490108 -736949202 -931016945 --960995189 -573349479 --857293255 -103937315 -999450460 -915012554 --169415368 -702899572 -588523801 --479347139 -732242146 -887577392 -680837425 --609470670 -806412838 -313692021 --548952961 -149700061 --359207943 -154055450 -227617193 --854216199 -393700920 -48332215 -413162992 -86136203 -131449398 -468773860 --922066022 -394875438 --998633058 -784451588 --944816625 -400036481 -690310165 -736133333 --644336307 -303789514 --36007833 -970882545 --935104002 -871040655 --360677899 -531551835 -945578575 -935767072 -904702599 -925997046 -790327850 -768434663 -345764089 --928230878 -972971456 -639618035 --740444297 -537612581 -540858531 --440407658 -271785999 -393269251 -966264000 -254935825 -742958308 -944952666 -763897803 -311804072 --858362904 -430535604 --435869510 -916137977 -855657458 --968091394 -177473630 -971984571 -1969187 -182078660 -707875750 -156018594 -814766706 --59531912 -339890239 -457195696 -104201186 --573583840 -162363617 --760906832 -611694430 -653634878 -460382445 -60556504 -654930265 --934962902 -995228163 -213516129 --736434451 -831562779 -50348711 --366700844 -35647181 -640251608 -960592044 --843402452 -334795150 -47125139 --647919735 -860367195 -142389979 -109828795 -592155476 --701756521 -681279779 -139431117 -732186138 --326512648 -443682185 -260155637 -256370231 -916683237 -569930899 -994669426 -946087522 --535982292 -959391966 -261156592 --704358488 -234368271 -685286960 --653894703 -966579844 -787718895 -855794460 --142737729 -813909839 -287802406 -241432668 -450527773 -522490584 -327439587 -582741690 -89470811 -293601417 --541748184 -199784114 -294496468 -712664840 -817953710 --896111693 -384522639 -269812183 -562885692 -376002218 -457041655 --299263699 -759871871 -620089590 --144223911 -967881720 -216255163 -277357717 -780762964 -380241929 --915918300 -109531955 --126166764 -201263590 -279894229 -962635120 -341474655 -962770141 --662248152 -211232009 --684140719 -192014542 -98617572 --85863391 -574991644 -814316385 -563384782 -401171488 --31148377 -488380274 -898785738 --961519858 -493318450 -666700143 --258345164 -286796451 -781595847 -238118583 -690058235 -271911473 --210111342 -362460882 -29794082 -745378377 --728865065 -670447711 -514142031 --801534162 -958331662 -578050725 --763763363 -615172900 -94586320 -571772410 -863206913 -426967023 -155358796 -182182337 -231164020 --821503526 -881810696 -500046402 -392367110 -484988272 -790815961 -276197498 -935222048 --916421369 -909080242 -241558848 --918920544 -267360842 --361789731 -412973158 -338814600 -195833463 --604782488 -751823700 -798433968 -105875341 -649792739 --538301230 -479613407 -947491310 -926822379 -190520344 -918824096 --127386418 -976728578 -175500296 --27505689 -355561590 -792299083 -653058893 -958451524 -425119771 --329930283 -245696493 -453267442 --512347864 -886373118 -73820245 -325919141 --600327638 -983991645 -915607028 -324705698 -547232066 -235660618 -608012649 -228063095 -119864184 --981279602 -130080225 -489040970 -369309117 --986885575 -426080179 -818836055 -393641458 -490834881 -257224801 -491194363 -565982380 --660000191 -137891449 -934710866 -257178882 -76378134 -999126248 -622958183 -699580635 -506670569 -943049531 -341865687 -901085494 --361341248 -743481339 -743678095 -705476956 --979175203 -865206388 -492852477 -729437367 -397046926 --523247508 -577431296 -279073480 -841369178 --470362213 -772741972 -831171410 -531966409 --424677425 -190441870 --979623980 -923743565 --817654386 -946066655 -934595605 -298998970 --965549754 -591938400 -161748326 -376210073 -483019182 -967293754 --499816929 -40780549 --745386273 -812933115 -7473062 --360996687 -615393894 -737145003 -142551444 --214935671 -27727593 -956162581 -90282591 -217114443 -216367844 -722161444 -417645809 -86499576 -131078701 --834410272 -749496643 -641288072 -161954447 --807995389 -613758969 -747162036 --141980415 -667994200 --390706121 -737654734 --798288321 -312346201 -774140618 -320205940 -232159804 -776885768 -987201080 --985975372 -41642401 -799915822 -391388882 -928240246 --343197854 -762271451 -562675493 -760145317 -820400195 -966289720 -428692486 --714152754 -764234885 -489725809 -848107504 -279537647 --139014374 -994752136 -702979880 -923433143 -403215114 -849693485 -724376979 -887899752 -841498468 -153924380 -589745895 --226024411 -965308747 -244761523 -20409636 -305441698 -635482221 --682825562 -234825254 -303558309 -713041325 -32462931 --345986530 -145545214 -69594571 -562807167 -479724694 --537077121 -645301028 -481424286 -639230203 -751840550 -889234448 --158783502 -492720091 -537046120 --22580353 -320516306 --939447015 -38297340 -318203623 -988037600 --579241259 -608399771 --816690300 -109123704 --215482228 -716628892 -768295959 -60045340 --935977523 -937410203 -4146415 --407049758 -444714215 -878782663 -21443151 -41736468 --203144289 -180031978 -702924816 --794050946 -365532750 --234461578 -331211686 -295471684 -738349486 --988930965 -714541323 -677113531 --849995868 -581048025 -584387253 -59282586 -473336777 -448402590 --613707945 -221867817 --585954609 -324230868 --830323287 -386287937 --524544440 -870166222 -687840648 -983468714 -222680821 -318450803 -602228922 -347064618 -223823844 -747743594 -711734058 -135539198 -215802221 -330646269 --793325218 -91269657 --397643312 -700329729 -280984337 -501299761 -185239786 --34145225 -655026379 -819255262 -105591395 --787857151 -331002635 -965226387 -114463906 -480835683 -491266110 -33375818 -968132536 --730226413 -311217524 -139265357 --744235153 -136292952 -436058176 -402195154 --876627167 -294964063 --611091903 -852110846 -594325027 -218961896 -390066673 -617863076 -453700030 -846780402 -302643082 -840762111 -460953541 --19664994 -874046160 -425387851 -306614080 --938288957 -417298069 --549406424 -878161616 --197742587 -372628835 -35546432 --62279879 -170554185 -699561335 --460930263 -381680020 -856859632 -54909081 --976753487 -234768183 --323713399 -540669210 --9053390 -89102570 --977892753 -204992553 --432836517 -334860775 -43380217 -446029173 --792034856 -207849825 -890326638 -663437872 --930507415 -117579543 -280493587 -678957061 -493771569 --734046516 -777564899 -728303235 -154607955 --595406140 -734222645 -859130434 --751048056 -67981331 -53946327 -611910279 -401403829 -2666513 -961405514 --51667949 -849280645 -367955034 -772986537 -389305401 -645182412 -810212664 --210214801 -530268029 --78649622 -512200882 --580945823 -402960747 --97168223 -641940767 -288729102 -921150025 -59068288 --535300296 -275981770 -15070167 --430126841 -500671675 -217268488 -686857683 -426152636 -714182996 -30239833 -458408142 --131129826 -978243384 -686492967 -633965615 -153342824 --285524413 -125739371 -697067991 --368556641 -789894750 -119054097 -207180264 --812772587 -795581202 --627607665 -606133795 --198917838 -549973094 -222357040 -193680048 -895419861 -22145752 -961632376 -572250395 -630592739 -5758894 --514365652 -229215130 -852005092 --334795150 -567210946 -310663227 -258294418 -812700192 --299490490 -528602921 --139911703 -611034635 --660740327 -599967392 --796995888 -577615652 -794695123 -540391217 -896913369 -648572445 -318518415 -319527302 -215954580 -493183536 -492626305 -692394924 --998114569 -108823636 -602327497 -573658058 -889834683 -253264796 -840346815 -918007951 -417802607 --172519998 -265680496 --943929832 -908282771 -730011046 --964596930 -193006830 --124138504 -490521430 --429160365 -119879750 -894021258 --973296904 -876204780 -998623447 -823493878 -491519385 -600510104 -455082584 --356614932 -480686487 -412782359 -480020685 -380275661 -281135310 --849220110 -975912451 -256415144 -441109188 -702355912 --847261614 -330478101 -455991228 -581835206 -610987657 -299442103 -749135959 -530122939 -671047396 -640098028 -746393281 -790108113 -534094545 --339982396 -509521850 -88179675 -285200398 -993436576 --398298035 -919296042 -97670365 -709228780 -945091709 --49856898 -623914795 --193316575 -678178838 -86606679 -59470871 -504404749 -378889971 -679413493 -468236125 -766027538 --568057269 -858571872 -243961480 --187376441 -46879276 -195596457 -164452715 -943264361 -594330072 --918281675 -56611889 -779420076 -111024330 -989080719 -850447194 --864025678 -35134871 -251141298 -666150604 -664175141 --64783625 -334595845 -529459976 -411008291 -553876237 --510153974 -969220190 --410716618 -750126776 -436040207 --439707549 -801130968 -180453401 -194030138 -140553907 -94957434 -781068005 -911989697 -960461907 --761140958 -192799225 -550002073 -568055677 -296616105 --458390447 -992547907 -444327905 -805070565 -561641831 -435687908 --484913066 -433354778 -276725481 -760943170 -648651367 --642846712 -639834061 --479106582 -363719966 --411328337 -70218371 -860995349 -804315199 -230293291 -31637524 -995965130 -587606426 -521956786 --825394034 -547410940 -961398422 --677488756 -704341245 -406956972 -640921183 -937881237 --32860204 -660955240 -148326173 -301628923 -70408934 --252930723 -934051530 --956785515 -894411298 -337755457 -44724810 -928555283 -222665516 -925630200 --571185462 -445010084 -546389332 -573808296 -620507168 -851206707 --592110334 -146291668 --41868125 -108461427 -400424620 -184780474 --179743960 -883544247 -328832663 -576577547 -284561740 --620507168 -871549419 -327855427 -325515631 -883108070 -707916629 -388612920 -557931908 --369396295 -148031273 -428552946 --29055309 -790365186 --978938689 -333851546 -615847334 -697456035 --867900858 -334583056 -815350978 -317557394 -106256168 -564594368 -792234111 -166977911 -543255007 -910539544 -643965303 -10505819 -43632956 --326803712 -980572773 -797693153 -428680745 -489136699 --330296485 -350571861 -566874773 -249597241 -616835528 -873302482 -262266309 -25404312 --597383307 -303822629 --113475218 -35981208 -362156213 -594608926 -402811076 -89305765 -785259504 --90313471 -161024701 -950627389 -976531837 -260755935 -645669676 -37747406 -317757568 --567121374 -647661907 -944420979 --630769382 -730523797 -912799341 -298950949 --923743565 -713596615 -777969703 -337532771 -562792368 --178173004 -623955997 --128628068 -506052157 -646802396 -39861654 -283628155 -636218329 -243997210 --662828740 -897017908 -613982680 --680406004 -984974336 -154271398 -973157579 -409759071 --800528222 -594809670 -64888218 -475686600 -349995315 --897778593 -960789380 -451251766 -344364049 -221478345 -742674508 -984851107 -853758835 --660865116 -52036234 -804128219 --574781071 -967731593 --960856934 -559725508 -18722493 -166484445 -943320454 -894867291 -740263905 -193224813 -784673261 -141189962 --368323340 -688888135 --767200786 -684493034 -577841498 --259589720 -538352612 --203744140 -384175633 -513887698 --574013535 -339841761 --483674744 -941296337 -560599554 --911166544 -437421275 -327600044 --215458285 -803769838 -337614025 --102785896 -925065184 -272372356 -368135959 -415692308 -86500363 -593244236 -857818150 -292392424 -560065210 --149605419 -122354267 --271855408 -699220215 -784494736 --574394483 -385121342 -970858813 -550004971 -833980463 -487664326 -87224760 -59649779 -535965750 -447987316 -82035112 -303106197 -789433252 -473861855 -480301688 -203371626 -250316779 -553159207 -240372707 -295866706 -787414070 -89925833 -545227537 -489564555 --406897617 -934954890 --143097143 -67942348 -886843020 --850158532 -549854673 -600981507 -145793089 -499306147 -974850170 -79662454 -844797899 -953299441 -755386270 -77313680 --381978720 -5684576 --122354267 -405403618 -58700103 -599968363 -814425333 -520046562 -767085906 --527921307 -327090555 --369357027 -107318847 -680140696 --442191195 -28106411 -742684544 -179222878 -829891041 --765453030 -969096140 -689744738 -46848435 -872847130 -842878435 --110351024 -175575906 -461713220 --753792184 -500335375 -703668705 -963857761 --400196540 -48303534 -705626846 --521716486 -655503537 -512942665 --547516896 -851407638 -513897010 --260380260 -370210822 -580784110 --352106567 -246348966 --956809808 -936194132 --206450305 -380637203 -60870755 -373638579 --475777477 -764681129 -497161937 -720918690 --28525894 -98551218 -632768589 --792486110 -402593106 -411589399 -924927560 --925797859 -958482452 --368750941 -633450907 --368135959 -975738120 --301192212 -146451552 --85754213 -984097007 --448261438 -597829836 -157819315 -588839972 -793988957 --877199555 -892671807 --620750418 -264088570 --223435500 -390211608 --197040102 -48388774 -800483124 --441273760 -843037047 --858863928 -706454700 --141983354 -856323226 -714974810 --513070961 -239775777 -294851417 -74444841 --310365381 -804892472 -714314402 -510789265 -935111182 -545285341 -170049840 -337973674 -72319242 -947795415 -124481984 -287979568 -249971322 -796067421 --119842394 -218341905 -127853001 -84706912 -596027390 -368429650 -754846345 -606662651 --150729352 -799786703 -16376272 -142035071 --485794190 -409063691 -438091266 -19209672 --56047578 -787326146 -654909031 -197521136 --878846403 -918898750 -458793608 --476147879 -604230337 -865942621 --897394807 -219057822 -187039336 -862001111 -62160946 -89085920 -108398862 -579228496 -281446846 -191238948 -305166740 -693884233 -202960870 -260126974 -161346194 -78314491 --953726737 -136396176 --599674096 -174357772 -51651567 -671472577 -715920894 --189792472 -354120383 -288241579 --833977063 -128385354 --338576724 -735224281 -967286394 -422086931 --312025925 -866502360 -622049099 -154943655 --669682516 -532057753 -822994192 --603745780 -434266832 -564603046 -404491168 -136252028 --482379193 -528120387 --735591487 -231812140 -543399813 -400954521 -58786163 --663987750 -298011449 --88179675 -736429993 --566470748 -593000130 -682526283 -653450839 -717052843 -878306065 --719744329 -822246094 -634113587 -727027557 -319133234 -181490933 -257181867 -300939823 -586613956 -619048780 -131472065 -7978845 -138102558 -422267016 -373564637 --961440342 -462658652 -858937177 --747019693 -329608987 -400213171 -542820729 -877262524 -987863674 -315950480 -779990728 -478180378 --982912903 -986959911 -331112443 -932828710 -993684872 -973484271 --778732505 -736651597 -277918487 --715716141 -197866772 --906837444 -627480845 -111738946 -124346816 --690526275 -717399143 -182956167 -873707730 -660499536 -116486963 -119222988 -199423779 -504077917 -578564770 -895734573 -341850248 -787912593 -356608760 -270181338 --51473128 -315287931 -237013079 --107921688 -940113722 -237820222 -319719118 --52613612 -289312752 -49496138 -960513243 -581367663 -954843997 -293279864 -745836589 -268009767 -704275944 -541429636 --63680227 -242261070 -92436607 --416248422 -105724206 -559203624 -9171428 -93431731 -788290106 --214206879 -669134359 -137921943 -115009261 -117502190 --952510668 -225868638 -375516612 --216367844 -329150754 -754937710 -518027717 -370835854 -698895243 -611781035 -887670277 -614761085 -17022631 -305524860 -769445210 -977165683 --184673310 -213701308 -335055432 -268157179 -267093397 -91266834 --27831140 -493983127 -615029900 --648300567 -76682862 -611579821 -583804020 -382247492 --132983209 -374496426 -888119150 -993842804 -956999494 --463704751 -620833172 --675439527 -569081460 -155766392 -585154635 -931825908 -887404689 -720354042 -254010227 -666984110 -714842611 -968803601 -804369291 --815081113 -433381533 -484527813 -943585589 -546768041 --355216792 -978820571 -921629820 -865006748 -418901967 -13538839 -962846037 -752564468 -424814994 --461890138 -624592872 -800734280 --902770655 -279410065 -731222890 -907483792 -802251688 -539279147 -897863007 -573726512 -736692821 -754246365 --26581910 -985424976 --425637938 -903237100 -161151060 -18756672 -453136742 -819813981 --884721058 -707435387 -963388877 -935398144 -656009527 -589519708 -364022550 -701314988 --104864362 -869991398 -448768391 -801747374 -350678688 -307091788 -71363520 --81048973 -622633768 -231036583 -836521449 -357324333 -692730071 -760332112 -891002368 -307597155 -391117863 -339701377 --689890104 -692865549 -842671241 -430320333 -917831018 --846562452 -174848423 --504077917 -515382037 -42606323 -117497087 -328145033 -609188174 -268983132 -523359495 -657719603 -818551584 --415769335 -169300379 --441802151 -16965978 -600720733 --721408576 -794879981 -320732988 -503607089 -287602910 -452388293 -246904489 -628514271 -511288081 -471184219 -255474051 -107553392 --731539645 -238932881 -726221371 -439369584 --916146435 -226244300 --402173549 -251843302 --906019201 -981311190 --734665020 -474102663 -658909386 -923666928 --143022528 -660360940 --226964543 -557787179 --981288065 -347753462 --469728764 -399970053 -442059581 -753074986 -288020991 -249200160 -173886269 -448351920 --407616168 -704713383 -50889778 -731957068 -983646411 -639491190 -608097684 -476391313 -45131836 -526571083 -223716769 -798330951 -765582067 --737669242 -934794466 -183746224 -601595150 -990153226 -688308394 --182480027 -276400993 -198588347 -716755284 -306735379 --250834427 -115359153 -532198844 --829647932 -65865794 --583196938 -580826333 -923616162 -199696337 -68928261 -617159865 -426889355 -475518380 -637645909 --722778916 -777242419 -568002078 -790318561 -484591496 --955047998 -101138763 --345075734 -400097819 --989595617 -126866529 --958262703 -438367662 --959187818 -496451830 -578087909 --742266096 -360997463 -870324545 --747084722 -666394695 -276580831 -632728489 --172672191 -923905052 --173494279 -685035287 -32022070 -814213062 --430320333 -143926820 --877483034 -5533992 -527429766 -361544259 --85676106 -826206505 --244495805 -672370930 -819533451 --751823700 -254508281 --235161311 -784761086 -999073830 -262045754 -436156837 --146764442 -87747258 -187368852 -414364535 -753304287 --200394571 -526375904 -433299204 -125713013 -239398148 -687840659 -520148143 -867976324 --75454991 -256852427 -483574926 -211033048 -150748540 --602327497 -367545851 --617819121 -378045521 -530016327 -646342022 -146770536 -702936822 -577183269 --535965750 -868933883 -338410112 --272264415 -795319640 -612367582 -271207997 --962770141 -781460604 -186728634 -145559091 --575255476 -906365493 -400844592 -237048324 -578574237 -571777514 --826478181 -667866931 --550809111 -897311755 -154890779 --289842188 -139468435 --125134345 -739436836 -214541990 -895782962 -514950423 --219984417 -207571245 -690318582 -995939033 -367455171 -708018563 -358198614 --887288697 -355668451 --431368392 -475451214 -681426385 -137991045 -782469426 -675016091 -542591327 --46969879 -306991385 -969704235 --118300375 -769938013 -410425782 --315868606 -624710006 -411311992 -109703412 -452522941 -166922378 -171977611 -687369122 -986185759 --192923493 -694849614 -90475485 -51312852 --431828298 -968193806 --938844198 -232570662 -655446093 -848690702 -248475712 -360881676 --595057420 -368415631 --214193661 -180269079 -724583419 -835547702 -1929265 --256253437 -855813667 -628824516 -154154607 --239139066 -974385001 --979496221 -151252720 -346386170 -770238385 --484741268 -467079462 -944490307 --442821913 -232512353 -881368010 -201697098 -226649900 -308689828 -268464325 -228497774 -348709592 -948812756 -437425538 -616592775 --493511495 -221477794 -599261676 --417794695 -281628174 -631306528 -563211716 -124582619 -438729129 -287970676 -163116389 --557182681 -886516270 -844321901 -584242880 -411883697 --369949704 -727973012 -300041646 --233027530 -794085315 -453194551 --940387805 -562306352 -191590414 -457477322 -782218737 -931389689 -763060855 -213258236 --462658652 -960695735 -146287204 --923536732 -441197811 -106566777 -587391904 -783688277 -238839485 -779616279 -373438198 -554146770 --751732069 -842319698 -714056730 --698895243 -857382584 -50443398 -801198766 -893004968 -570348331 --331203961 -294486329 --574084477 -899290925 -847925217 -606594682 -846907101 -324462916 -449192125 -576737749 -720487174 -674512579 -819460335 --209009580 -26155562 -646865213 -708078720 -580334218 -828219903 -195385283 --216926650 -549892104 --140282348 -787228165 -906679365 -806559305 -644988374 -764666904 --476242594 -934446353 -51697307 -298816358 --781010399 -694912571 --100877240 -844846936 --124037007 -542635943 -744248553 -635283524 -676236417 -903100311 -643860997 --917614994 -136396919 -552592567 -602745377 -7533957 -936368126 -515510442 -36762905 -573719873 -479473245 -277161552 -546901889 -297754283 -153544146 -232435359 -13656033 -68337948 -669122067 -565281784 --761463362 -460649174 -338533421 -275694049 --839237881 -441024145 -405218977 -977197286 --368806079 -483456573 -711104146 -278090506 -12033885 -676573074 --567952923 -640103357 --205937461 -727462162 --46481821 -223668186 -56760149 --163078405 -700212515 --96310923 -70138930 -480456186 -313617711 --441078134 -680813245 -81027798 -562536995 -120756226 --690961083 -307970696 -235630220 --615573391 -452544957 -615431324 -144410559 --589580306 -249720783 -23166122 -201787961 --603710138 -484470207 -598001265 -687236280 --865363077 -169825152 --210689883 -236350362 -830603889 -166178998 -593239165 -861382789 -911812597 -803861687 -892763255 -529791543 --657216212 -901787275 -782679339 -219179727 --357593114 -848813658 -162874459 -671166177 --346186458 -17853115 --125954731 -751584570 -323572756 -226058886 -569032504 -732833085 --138866024 -687744368 -17958235 -840203594 -691606910 --956473708 -641285834 -515981192 -68749871 -996249686 -931156270 --723244415 -258824809 -569218269 -255807574 -684880988 -830472096 -16059353 -937291943 -605890581 -101691994 -739869609 -407060987 -594234254 --821930611 -254299423 -277057884 -519164817 -89609865 -334369326 -196415720 -200135680 --376325036 -203732772 -282159519 --487664326 -252406997 -517636010 --889878213 -33782237 -188560780 -136352971 --199215393 -406984983 -76743252 -263510140 -848327298 -205149610 --933499383 -611221564 -71331593 -117442189 -69108886 -235929046 -421186835 -550948289 -569430764 -124300709 -901927648 --781999673 -35816498 --771091253 -21142980 -862932700 --798935921 -634740568 -882435288 -756686784 -751578224 --236160886 -979959026 --317940456 -100751140 -399717981 --71269194 -191457734 --402811076 -971342170 -19685333 --921893855 -869367793 -167417841 --840809419 -64857765 -707528467 -712967824 --569003786 -983136387 -846443409 --913657717 -533172084 -932236956 --216001122 -773907212 -605014725 -754266012 -614234056 -532922338 -231913789 -371628093 --39036834 -460293398 --328494320 -731364459 -543144933 -621035167 -828047141 -729222924 -363119359 -655188064 -224332234 --426152636 -931855390 --779164505 -909959169 -399866655 -288721415 -196707577 --451181580 -235197940 -313642954 --153544146 -357194579 -262296576 -899051782 --998364009 -571994371 --613036184 -149233962 -649416358 -681017178 -721230588 -859787298 -493880794 --889448232 -957931566 --81027798 -368639832 -779592029 -389966860 -714169464 --886610024 -520966725 -579136267 -443942963 --344972753 -551299123 -496645282 -720527180 -166197482 -764368540 --378818221 -87263361 -282692515 --561032181 -2999845 -445358707 -203979000 -939951421 --282983959 -243391953 -74061749 -558414871 -869805439 -626012086 --737117394 -102328300 -844649090 -28076963 --877496331 -569095258 --841848775 -670672527 --987229919 -141764502 -526712866 --897311755 -130858205 -978073028 --88677387 -344214187 -618774919 -356239067 -971839525 --530250848 -335403352 --848389219 -503558049 --661995980 -106403309 -892633940 -151972456 --724081996 -354829095 -969534257 --431098425 -885343616 --722161444 -917960851 -687999517 -428005216 -786254653 -163603873 --707228712 -225431689 -999878873 --450991963 -495361444 --446220441 -229280395 -87204284 --854383380 -264046825 -293447928 -948751027 -62453850 -944122701 -466690475 -509770125 -832596289 -863154399 -155195642 -76069702 -291591028 -585022930 --462142367 -653533615 -435145370 -662600463 -143386557 -238323376 -887437484 -834574766 -302733579 -233950609 --58817695 -887643837 -719003916 -360226867 --730680302 -601347292 --365291429 -880019735 --81814907 -402273013 -36393476 -671132419 --870634802 -738268705 -96747811 -524507624 -479784330 -872410018 --753596668 -294585147 -131862107 -212903875 -769052213 --971038515 -721624918 --233705096 -307244615 -694542542 -760572201 -622445844 --415462610 -341890726 -568030528 -667211101 --709590193 -613347208 -758344327 --232321269 -29795180 -54285442 -60997186 --119452368 -641694418 --153179555 -951088008 -164687213 --315774414 -722827505 -989198341 -793945375 -965439562 -935179418 -590013250 -500617813 -479286750 -484960149 -564561495 -149667156 --124820387 -796767910 -227550768 --505213980 -643652772 -893459515 --659345175 -961579103 -389579129 -613744364 -662217700 -761992841 --656671088 -905691219 -774273069 --965402019 -745366159 -889789460 -684419809 -623600909 --444836218 -131711050 -926230018 --618987260 -889516165 -128847220 -442282450 -843541086 --685035287 -145071052 -172237618 --44122367 -249468680 -836606852 -151022518 --612823725 -26970815 --260806899 -837172058 --11162481 -354378106 --633269671 -519725852 -659316001 --596900409 -262955957 -775154149 -188470981 -218553477 -713378287 -46080365 -986754511 --750300667 -898418944 --872698290 -9677196 --76682862 -48195764 -642912688 -955652645 -112225655 -453748589 -959080607 -94772195 -122629020 --370985941 -123794313 -521662193 --794136436 -218625635 --64636244 -752221227 -945945028 -462931357 --155886858 -15070603 --858721510 -8083969 -188389433 -981293070 -248325278 -96275632 -558923084 -938901011 --302332636 -572368142 -797002737 -283656601 -663571541 -263672342 -665054652 -916692770 -247917078 --802034140 -605313489 -293665013 -944286826 --166490318 -154095598 -403376297 -396466499 -486831940 --834119472 -192334684 --233865865 -891845403 --477037348 -507124249 -478907269 -869706091 -785997429 -450105907 -271812378 -498915991 --277770131 -832373102 --949416375 -931412590 -480782047 --628824516 -981890546 -477817752 -914655467 -365020287 -221590066 --747180214 -730608212 -865789354 -864523986 -705026194 --219289460 -302712508 --999763303 -613102149 -915644013 -528873992 --380594363 -847144089 --241976236 -731007469 -286772365 -375135143 --417711447 -868721872 -707791994 --25301144 -781013626 --359722347 -461960607 -684834650 -624109430 -307115841 --480045729 -526516213 -173102644 -517018738 -475297412 -635020465 --876335010 -592744818 --960789477 -754362087 -794334362 -734890513 --985637937 -948165700 --56468967 -745247166 --40780549 -801356333 -285607906 -736052044 -878736339 --687840659 -687530943 -134770940 -187798292 -265761029 -128477927 -158418412 -631057515 -753350656 -410294934 -91295768 --901806551 -620503354 --129684114 -545798894 -314985013 -521137758 --543780874 -255123782 -563186098 --295723939 -591981449 --782840230 -932928565 -386866877 -989285440 -866762429 -699170783 -763282505 -946845026 --100724847 -591832781 -373226700 -424959563 -70370775 -695680223 -910859529 -53411089 -750728178 -506341249 --440469949 -174101052 -820168118 -104510888 --744979801 -161552741 -746826277 -635178783 --703251687 -210244544 -493008707 -334470211 --261164203 -674111922 -344306951 -255024887 --83369157 -86256690 -412304167 -629970579 --176787951 -87765020 -417389113 -522155069 -641367996 -910254033 --900106024 -801106536 --659552557 -707145648 -175422619 -193263085 -685016543 -577676328 --873097194 -159475597 -95028458 --723252022 -884491290 -401768783 --881961016 -618488849 --979870 -964408089 --97246121 -933963792 --765319932 -394386176 -599089981 -840725223 -665068833 -921108446 -431728625 -284983567 -843101657 -666451846 --317098099 -13216402 -399140265 --240347238 -336648906 --774502822 -478898930 -713112687 --504367514 -682054063 -222780252 --521783096 -699314426 -113466750 --465309207 -405317339 --812229528 -728429135 --605216822 -568531144 --949765620 -71234583 -365330218 -515965974 --350471883 -227397713 -677316781 -107747420 -47463994 -112646290 -972020302 -990425703 --234349359 -476902440 -434533028 --346017666 -533142309 --768798026 -695559298 --37112460 -514263771 -228896136 -468837075 -47472524 --626759852 -614800680 --330175283 -820720095 --251348037 -983785808 -82433875 -930569523 --223507214 -950387198 -337443783 -11435631 --339907608 -984001690 --351968421 -703960720 -663429093 -108093050 -16086949 -317106281 --87621044 -505478375 -861654438 -548191907 --753868961 -142224695 -169176251 -544143686 -236967778 -893819222 -411568672 -916541104 -451998990 --687284377 -135129032 -549517169 -840319486 -426600669 --507880635 -565735631 --30697387 -211204112 --797693153 -759490456 -387413550 -440892604 -290931960 -282794986 -115541469 -429666706 -769766650 -677661841 -776455329 -112543313 -277730833 -551877712 --480130570 -255146698 -662259218 --456354890 -171596524 -649306265 -598809790 -245824029 --416361554 -760102368 -413496535 -197944973 -887404885 -978876307 -785155198 -766171386 -423073577 -610514379 --601518589 -464825585 -756669008 -691809013 -40497183 -728277492 -648154262 -755686633 --973351252 -53917631 -455668561 -424900577 --962967278 -487180185 -856655114 -190056222 --192816913 -858568735 -698649874 -436572494 -663667144 -695753022 --82763601 -934497570 -749898432 -962039097 --968314163 -497687176 -4528129 -171531888 -242816004 -143910639 -146332006 -262065082 -828502036 -166134325 -944933128 -158487798 --566011733 -604400096 -469735858 -857998531 -576482696 --305641620 -920397101 --796054498 -427445523 -710683218 -517656971 -306932730 --431220404 -738304951 -47720966 --299532271 -32730102 -2893371 -874511280 -729215518 -992636417 -284952762 -456827948 -992412994 --554561237 -522825892 --626279911 -655206371 --388041855 -617018920 -616857437 -689355597 -188067712 --242857824 -412149808 -9287432 -46992283 --526226215 -737008807 --629588933 -706473822 -378717263 -344724253 --686839189 -130537577 -694165606 -709857868 -120218046 -977546462 -501806861 -216627235 -831736727 --584239503 -754451119 --178969133 -357223292 -51739104 -188657643 -838838748 --96349816 -675937879 -314585779 -385918546 --657956651 -161235069 -338361833 -406252809 -716479006 -712408416 -33817165 --23306507 -210537748 --886853626 -209380251 -132730381 -849138556 --268773634 -375133172 --920962194 -460276163 -266289305 -699837700 -335791898 -399613758 -642759874 --121277383 -208624194 -430230161 -516595838 -807852443 -744280112 -121596261 --756278776 -315447941 -77699311 -199703435 -960724972 -169571397 --698484215 -929431480 --407956589 -413084296 --449810027 -19505430 --830035180 -460236350 -9004507 --581516341 -727409686 -193081557 -87079075 --161519242 -799200019 -769559497 -365231064 --50220747 -894969937 --660775999 -607831845 -353563295 --53195645 -225301220 --342841831 -620419476 --154049031 -595587013 --106750951 -778327198 -593321945 -372141680 -296382909 -246396835 --842202457 -566802252 -708421445 --432666508 -252959165 --935776857 -855248302 -420608620 -808849366 -165825752 --224166302 -661114867 -897495741 -258400364 -507746991 -542890265 --833419894 -862050542 --829066388 -376279677 -178751767 --781749213 -663191689 -570536437 -348194473 -47820671 -647967292 --687226583 -858967046 --38290287 -926914387 --710991041 -996008128 -84973227 --916683237 -275587379 --769335881 -673530942 -951007077 --696409392 -459966944 -984025028 -431923664 -706999727 --463735474 -528089 -141945086 -117330844 -458747691 -116296550 -185177697 -192399148 --843459480 -742562147 -470392601 --106900315 -551656255 --468986327 -603826576 -833076367 --77791540 -222104368 -418795681 -168032529 --365361979 -935800399 -208601141 -463002516 -59832835 -948495065 -617745573 -26689040 -658013549 --935301703 -880236740 -278361980 -12433995 -736759280 -46024003 -908902840 --53064566 -412761999 --39633995 -693938494 -857647618 -935388926 --132149480 -787641601 --118270463 -46530185 -590898525 -707485576 -44537663 -370837588 -653633818 --838989997 -553060583 -108681842 --272988919 -133226727 --692913801 -892265581 --901550970 -355328668 -131447101 -85289054 --473036165 -55926953 -856259027 --236285930 -534663627 -432227193 --195334652 -206750210 -360194757 -410495673 -257388535 -354547582 -395259730 --550448733 -74422541 -184972896 --234825254 -444477686 --824425404 -307815584 --542863076 -53020368 --324920902 -167836026 -839538704 -26488025 -862003080 -4109243 --21997140 -377403718 --806559305 -391970653 --219194300 -70853343 -256222656 --496309123 -875742418 --983247524 -625162204 -333553295 --294268553 -163086877 -286820640 -273203154 --430527958 -791032009 -630253529 --86450969 -253481553 -169209972 -72889382 -255262949 -485865960 -454743041 -643431184 --46195991 -714363095 --459458379 -846365057 -133233179 -808101576 -186077536 -977880274 -177502432 -690630026 -636374887 --384316956 -759286017 -762441378 --968452829 -56748781 --419851054 -708839249 -426852391 -452884138 -461534042 -774670009 -389026581 --890580407 -638024006 -105819653 -111024722 -986472267 --693499306 -648456527 --486697054 -381672596 -986240628 -384391988 -250268335 --558340104 -948825989 --890317778 -839155532 -585980080 -715295912 -352756047 -828070747 -416859200 --553847551 -791827732 --566485544 -475291883 --176407593 -105670393 -323276230 -657413744 --864355539 -175574907 -210883558 --8734423 -786149776 -325389938 --335226279 -203131068 -506075145 -454069776 --283847320 -13915008 --192050112 -989087828 --249485235 -581476532 -344276596 -976782450 -968779838 -118758198 --864818684 -914481378 -736346739 --523165281 -179985968 -390101038 -509989540 -959136372 --492560020 -350948725 -531641053 -468104452 --913154010 -387718958 -922231366 --508248427 -325338163 -404810139 --217573738 -193640922 -987678635 -925791813 -482269572 -186716029 -681235918 -316446506 -519136359 --355625754 -2364184 --263520293 -972549713 --935481354 -395478951 -642010848 -685015325 -656442479 -525673714 -505498025 --870059606 -451230455 -807663346 -282943846 -683708279 --123614454 -166448934 -568957795 -835204692 -300238484 -742450453 -678150334 -975050268 -944071074 -10550270 -339362315 --906240288 -408038494 -618315063 -464932465 -700860015 --96269338 -985177852 --51330784 -271393536 --188958970 -902545156 -345940954 -811395899 -517253892 -232359190 -444834283 --544445777 -633083377 --666683153 -720806650 -856745724 -332110665 --338039449 -76955250 -21455183 -227220526 -554077707 -161323553 --999079736 -299615437 -797636874 -716965346 -204456575 -734407633 -241973799 -24335469 -978084098 -664416492 --330067521 -480440913 -106132608 -840035983 --59719656 -417405783 -69657273 -619052155 -994216406 --824203516 -190190536 --162296070 -323807773 --80727970 -290629389 -601599054 -292764251 -643988957 -349133178 -556705426 --879046119 -576409010 -95041560 -469566266 -404504993 --607136697 -660012314 -785031197 -753749204 -618830434 -517898469 -936684219 -978070265 --367032887 -247191673 -165479842 -152856954 -265849456 -679483121 -571320806 -232814219 -726624512 -564062048 --382505868 -583921836 -178304376 --445578962 -126839699 -909824361 -427870949 -815440167 -563456534 -636278703 -30095164 -584298265 --438897191 -351490724 --76615107 -758448776 --854106706 -814470552 --173714768 -289497888 -536487880 -879058776 -299580954 -492389861 --352160133 -272293915 -59442216 -916674886 -138830244 -805859557 -307994554 --43774616 -970911239 -944476755 -83329051 -230079499 --486011696 -994188139 -293519148 -490987887 --564334980 -103401088 -992896856 -907805661 -322897304 --15772576 -670730650 -335119502 --917128156 -281212674 --224794276 -904945268 -720257307 --995457818 -429811762 --340359562 -836584235 -631180530 -624487963 -153683179 -509945568 --719691332 -358543276 -27176891 --560962692 -375703630 -968992515 -176136257 -133090520 -139569895 -115857146 -707004362 -715227448 -800038016 -47658540 --943079864 -147357109 -931590679 --308738339 -818185001 -522381611 -888833497 -439382667 -413029235 -452680864 -463059085 -791589255 --199004564 -265042153 -947061436 --148781549 -753218826 -775938655 -326571283 --521246602 -686005021 --915794826 -648410898 -725488009 -748084643 --465899122 -927895142 --510683387 -707714827 --180881787 -321469117 --513045857 -513857676 --218516957 -351936216 -560670916 -268478069 -220651270 --368945506 -161859387 -20134443 -588580200 -501555427 -598467364 --286808322 -718175242 -467808565 -634212112 --338840628 -29657838 -951220221 -129452716 -360861421 -360247200 -244515156 -281698280 --269427675 -451638781 -593872234 --483838884 -151934923 --690058235 -705563511 --159477173 -262463779 -815128180 -411280169 -315340189 --417408659 -514191207 -537302525 -139817945 --394594415 -72833577 -94348540 -787478062 -741903983 -458723873 --659069707 -932382140 -721142279 -235310977 -609478862 -661780689 -336155934 -665938623 -124714554 -510082379 --998239565 -749870441 -302087875 -838758884 --335932832 -943726681 -666835038 --710683218 -631527887 --523309670 -429333929 -67616489 -807560492 --409408079 -17039330 -628052079 -201925750 --895231230 -672815273 --706821862 -975963149 --226650485 -341939282 -591283020 --53873137 -702272003 -255245979 --136700901 -82649147 --235942490 -123660609 -609006336 -665883958 --978010276 -518911171 -140866666 -188494099 -189006678 -480793382 -898781438 --974807367 -154895495 -18061635 -68397946 -71463062 --500449477 -35006645 -59180746 -678268732 -577881587 -867145920 -954101908 -418472554 -59649369 -377968489 --810290033 -502449100 -156581634 -119439767 -255282107 -995074405 --219441274 -145680382 -416650050 -303022690 --82288054 -120747204 -659858311 -947764713 -539062624 --247625080 -361959497 --619287164 -642291418 -905006818 -449735951 -407719105 -887191189 --234834563 -81706542 --822228316 -386271346 --693333295 -818546087 -467516555 -290303625 -764093724 -488769901 -51550738 -158403174 -589780728 -681773417 -684515374 -288840800 -538880796 --114113387 -124229525 -410348476 --964316163 -106009096 -444715316 -872622256 --58325912 -805053197 -542172160 -38301537 --594234254 -208677616 -896105440 -33939917 -178540991 -474112159 -383715053 -402615113 --611124471 -774251371 -992673511 -820288554 -809328502 --952369851 -305822809 --708998318 -562073538 -888961792 -453841681 --14711478 -786963194 -307809451 --432702803 -405768675 -616024031 -555764608 --39201226 -89753440 --691261573 -77808242 -2541875 -155620141 --426967023 -487780237 --373226889 -467053142 -406452288 --596167726 -660276667 -105271919 -547125774 -590712554 --455458109 -139825007 --373073328 -145461950 --665520538 -838992401 -171141357 -741456827 -50800858 --622877178 -952699938 -443581481 -536828278 --330537400 -536854349 -843403301 --121670121 -265074044 -62330754 --393110366 -568283002 -693828425 -391998725 -725360346 -821636018 --827219529 -649847428 --95428336 -638223971 --131954694 -209582603 -810578360 -539345142 --697956699 -224122709 -562933027 -409653781 -444384278 -719086658 --552302144 -245147534 -143759784 -597754440 -423913882 -144996792 -274685448 -958217268 -96857821 -964173722 -549384934 -300221232 -940548623 --558808275 -824308570 -703739706 -864144772 -8624414 --851003659 -686548971 -82987213 --932486463 -285482999 --417995320 -167939988 -328022675 --550471485 -998012346 -657641263 -206537462 -440705449 -540920354 --831036484 -255561592 -816425853 -852146222 --395484204 -116315413 -483685479 -624064180 -228401190 -822562410 -218154010 -796473139 -529886376 -183641801 --953299441 -193225767 -320337586 -626232523 --583286555 -795410132 --316924508 -807344951 -563959094 --639324536 -122005629 --364228636 -378262928 -12313808 --886210345 -640316270 -758799724 -942098397 -639926123 -367373573 -367565027 -65946043 -376272775 -503721089 -414042027 -5989757 -38712667 -394207050 --718443498 -376236291 -919791643 -38245294 --7983564 -850304242 -898179691 --532906898 -787902464 -919631518 -837375142 --397447277 -677363 --926230018 -857693295 --894155150 -87919312 -179879999 --852437470 -181330806 -476360273 -438622650 -33901371 --577841498 -186833137 -300335394 -915988893 -194884664 -354544461 --972256996 -82340089 --327855427 -853268460 -364454291 -991963952 -587633632 -571250061 -613035152 --441216149 -222438857 --862001111 -561052245 --627281513 -503419741 --692595915 -681773404 -683452693 -479620825 --835502520 -497688858 --403376297 -465415799 --862111671 -139712275 --139255210 -855519437 --558724494 -199398899 -206763068 -609797381 -276094702 --307721131 -41755113 -315167537 -784970972 --28939636 -254213061 --485038107 -590226645 --34436518 -650743016 -92052814 --367429727 -770332939 -807205276 -434009870 --98209433 -126757619 --720918690 -44205066 -83006148 -801514742 -80890806 -671891190 -624258376 --313910943 -615802357 -1398873 -831258076 -188416343 --75687373 -468292143 -423001525 -189102215 -633784692 --927091667 -128091981 --160363050 -181707053 -986449726 -484399888 -404518826 -103943456 --884275349 -833447885 -993337318 -764393 -111479821 --933442739 -820041572 --967912078 -492238265 -694400101 -325475463 -39284871 -448992825 -614664299 -252512608 --938942261 -853108584 -22626830 -999968954 -318191818 -960142512 -148955597 -202522861 -319939935 --499844930 -190103091 -984124631 --243089750 -549445710 -401141317 -22902528 -995509141 -587902367 --741737156 -481458444 -739921578 --566182615 -596586562 -597971100 -401698161 --430939256 -342160594 --644419447 -70330692 --621786874 -852220929 -328906764 -217803194 -690841431 -91222934 -601100763 -390477777 -683454139 -573635775 -870570513 --928745523 -764604321 -934317 -235075935 -325556281 -968568960 --246453921 -914705321 -600971149 -222325547 --244833568 -761366881 -462892157 -774030362 --131202149 -661059988 --295065576 -588333447 --325407618 -500811430 -313707737 -284188774 -896199809 -157287249 -75137609 -18330623 --391886341 -374841310 -786303186 --885237977 -175157583 -770360880 -852033053 -769286207 -392156098 -560156411 -992103897 --851644144 -431369112 -308648702 -318976241 --296174718 -960983272 -582742979 --199653301 -900302989 -318610727 -34382286 --710378980 -173711961 --667635984 -515417654 -641026871 --841976715 -138084268 -648445232 -147642512 -32624305 -259426625 -386343407 -606046453 -523056192 -515972662 -989304723 -865828612 -364105147 -38198572 --465574470 -51585492 -443619303 -55060694 -835525188 -180766630 -395769337 -879069133 --616592775 -427655246 --23130987 -162782721 -889499113 --639266684 -159804252 -866285616 -472754388 -949671027 --464448046 -43697165 --754536118 -356132666 -817869743 -567990862 --594578825 -315143102 -976304137 -52473686 -218634008 -282051295 -843175164 -774641804 -170247715 -841806123 -220894980 -420671517 -724766371 --124924849 -471307192 -371092317 -621980013 -159993423 -324563249 -312838394 -952045748 -935731781 --427203969 -191046086 -706096947 -638330522 -707604036 -979617322 -307373137 -414621360 --519036884 -729459011 -924517110 -317793657 -524776245 -569505953 --352928705 -333226512 -717951365 -513761962 --354101067 -149612102 -223481187 --937624388 -742074674 -192867042 --193329211 -744050584 -271129364 -757669340 --415482589 -864639101 -57368700 -624590172 -149677856 -807828408 -722934183 -116567076 -209891815 -30219832 --382714760 -466354583 -776772071 -265610225 -105263235 -787756625 -965575542 --250862868 -984001790 --489136699 -932485812 -901051083 --242561430 -741809010 -547447344 -979569623 --581529102 -9045606 -636536270 --103821277 -651710580 -601674911 -759802427 --497187146 -530855440 -158507401 -253262976 -662144934 --975626011 -57779080 -984592126 -766991103 --110684244 -377069862 -522512028 --181658937 -770556405 -566778396 -820000028 -730190665 --875988852 -190338905 -653684136 -318367085 -26467038 -843103509 -687571783 -724841511 --733071347 -621369777 -360798448 -369333484 -802438411 -773849873 -597839848 -928968005 --93137922 -975591292 -99029050 -727705535 -167352708 -587198322 --102765849 -282263730 --360974354 -372522220 -343793055 -23001026 -744315246 -532449805 --641492474 -689452961 -765483710 -818296116 -932625591 --4506003 -407773585 -213348252 --125164510 -784684611 --592284489 -935697124 -746505507 --460372448 -202346615 --619290312 -377160467 --165761788 -609022496 -196455197 -452684552 -958048366 --527136160 -850156048 -505672919 -225371736 -449843977 -100775227 -803625925 -466174515 --263394446 -746974043 -221390205 --38811710 -599498040 -699530194 --149608367 -733359072 -558665879 --517253892 -930965918 -474131242 -27948390 --354120383 -755387945 -133642525 -571885188 -31734604 -967573008 --50035982 -704533015 -195249483 --197511438 -215597294 -875671535 --209793142 -107753546 -846043346 -312622911 -238859198 --279249650 -155133800 -883216601 -910844125 -245542236 --809154935 -64749064 -965313730 -219658364 -210353927 -387814618 -476692805 --885398972 -530802181 -660385515 --41289779 -317855696 -709076913 --231236294 -521769735 -731580022 -160146210 -481852480 -383847170 -797401269 --788631488 -246833026 --712827831 -887304532 -761542812 -386669182 -353261544 -918746528 --333207263 -128225014 -648169797 --258294418 -802909036 --688512177 -774321788 -92748425 -338254313 -64349433 -130041343 -984311521 -585875591 --428655903 -626126624 -75515511 -692711007 -675094846 --773599862 -837639731 -356733168 -76318519 -592633966 -285072723 --849999793 -647413298 -545677958 -374496456 -123529324 -386480393 -347670240 --83006148 -789868271 -811115992 -678115274 -358780718 --313306494 -508448709 -802036768 -840903989 -177284007 --911988860 -405545645 -932710752 -228263757 -160745097 -663061527 -838711204 -53355480 -381104763 --408077766 -373237288 -895074890 -765397871 -524001418 -385428709 -501093217 --805603257 -808928460 -49555371 --264720523 -232628325 --687191864 -899378734 -666950824 -535738320 --923084379 -759018350 -873760182 -544938184 -478493834 -672468374 --817694908 -601697861 --457939841 -322565388 -752603172 --258340676 -414466092 -302419511 --219094452 -52971737 -97379681 -497399314 -550894163 --583070530 -190954815 -174198808 --271499601 -10806301 -970293230 -216147448 --51280707 -280139620 -12008175 -89425602 --197294675 -729725004 --25698067 -588700705 -339505695 --819418816 -802243631 -997424934 --422225055 -191213260 --357194579 -312311643 --414720063 -872054301 -270394856 --433797023 -788223298 --69657273 -588784074 -152715670 --865015523 -320165498 -248378617 --660276667 -360310629 -287880358 -143254051 --355609094 -648982270 --953157068 -142332407 -299339507 --636505571 -332146234 --66140768 -60680677 --924360130 -78366881 --625505635 -23391825 --757345889 -334441970 -762875848 -670597984 -339380387 -717379654 -969414382 -687235955 -276645525 -172510604 -87631402 -155799196 -576001150 --21953968 -267778701 -824427843 --355328668 -678815852 --727409686 -86115892 -797945704 -639972698 -685487395 -260498564 -304084223 -942817703 --41515992 -897425547 -814013864 -4810794 --60505905 -651995944 -266737935 --85289054 -124176411 --594052606 -512973172 -24201179 -427531223 -330933039 -403869806 -562308854 --899085317 -327245984 -317694452 --262485829 -590832084 --102053162 -229500093 --103257264 -805847723 -828086342 -18266629 -868896217 -927045192 --687530943 -542529225 --571777514 -905540558 --31317233 -234910385 -626369702 --167065291 -183931603 -671961780 -203632710 -693899799 -12400095 -558478879 -740244402 -521159190 -502008084 -926818933 --811945997 -98498175 -806759970 --700974635 -49371414 -5253380 -40198955 --996008128 -292960548 -966708878 -249216548 --717966994 -789402092 -205125036 -643082191 -636353129 -628116678 -662373512 -433470927 -684851010 -399146997 --141777595 -802477678 -560510327 -710714682 -412891836 -942114552 -736860806 --516475356 -73149326 -556553803 -196728638 -169220977 -549210245 -209787051 -713601184 --314071930 -615848216 -799387926 -415171911 -713308711 --147092432 -144119014 -325919464 -83399133 -320481539 --59758710 -722237741 -834844293 -692881824 -879413225 -254185674 --299706747 -295817031 --469006529 -326497981 -325086427 -647020052 --986090625 -185234975 --699569983 -607821749 -837608828 -45357957 -874734880 --338321662 -334741757 --338403480 -295222720 --995273669 -457626789 --623710012 -330173807 -44365080 --94157519 -162748942 -998502253 -755189800 -712281944 -741281506 -353739066 -294277676 -425407918 --384256866 -12933777 --137191592 -542890001 -640212276 --861143911 -318123472 -783764059 -396277199 --260025095 -11810417 -292082106 -678349596 --180882113 -544904592 -140263263 -706848132 --99149790 -902263404 -548622688 -386772250 -529629388 -198660906 -995251420 -194401619 -421491674 --839041493 -346133737 -976536451 -148044319 -716340505 -416371387 -595129180 -267802018 -731600401 -985900462 -105640395 -249321841 --135531129 -717244591 -893925578 -609943287 -642760502 -340150138 -487810715 --140619130 -878125673 -205012207 -605514023 --532374410 -514671909 -985744926 --927565209 -70973114 -938691856 -350679958 -512026484 -841834373 -532276976 --564786865 -554267624 -832337387 --162314144 -791514086 -335130192 -174451671 --459827003 -439247629 -126056799 -802662315 -126342532 -29873535 --861743745 -997630937 -92929102 -473831361 -642075313 --791165784 -373683163 --32155240 -429012447 --392491531 -725780848 --992780881 -250851837 -763644430 -623790229 -639995903 --989773413 -485453647 -698602305 -175239675 -959088958 -942754363 -27286075 -169330288 -110823789 -710253271 -485789474 --251083992 -902613857 -487743394 -7620759 -857341514 --999167441 -856211250 -626835048 -519302645 -488011802 -35884961 -548595008 -365250198 -811732659 -976949932 --412222245 -724747218 --130041343 -655070057 -972984747 --518283217 -985276159 --798610954 -451382797 -922661155 --982357313 -466473878 -298864777 -121221339 -588756080 -724002547 -794981047 -815619280 -696672910 -350721667 -257058067 --226270093 -77657185 --655250001 -524406464 -481955497 -615853740 -924494866 -507750118 -496604505 --77589847 -938702534 -121168488 -953132049 -784938294 --883827855 -198037328 --605476620 -867548233 -18833886 -797803245 -817017529 -597436291 -550526295 -730511772 --258609699 -855371111 --254988849 -769403635 -976359317 --420274393 -733007073 -839788785 --96186380 -307276808 -394882588 -514996361 -193371692 -654019350 -691890445 -151495827 -993578056 -769664391 -413951720 -505092286 -65008106 -334102895 --401683576 -434822215 -17733412 -10525388 --507662797 -729109115 --370491142 -785256805 --607002185 -626661680 -360214302 --519222172 -514335605 -786268401 -971120268 -896688937 -257454723 -454990807 -104946711 -216945660 -857791994 -798046121 -502335081 -889726544 -952352649 -138438574 -671765885 -981214972 -853119631 --344933957 -182072945 --604254588 -952739727 -624362914 --358712799 -575230293 -916995150 -61196199 -201348254 -72382821 -197780800 -885300513 --212351878 -278094010 --548988660 -190682647 --736052044 -2851651 -451363631 -167391182 -903980162 -911329248 -395271522 -21435368 -204802344 --595714667 -643398399 -828291018 --535832970 -74773634 -234292989 -683152532 -905714306 --304443214 -148236549 --219179653 -820657869 -700895574 -361769454 -539717466 -668368546 --619748709 -470393767 -91692694 --59649779 -765159522 -241310218 -214317751 -163185803 -663671181 -80578415 -386009302 -794738573 -694103223 --568366113 -437912908 -826464299 -576659029 -802828807 -814833621 -753113003 --570858542 -21980232 -437297991 --187033420 -343655793 -204160283 -590533929 -267014383 -957038802 -6571833 --752538906 -305848920 --18266629 -405911439 --262626687 -952659820 -289361661 -587605308 --648181363 -573873566 -335017822 --234908901 -313149600 -307094144 --76743252 -682596774 --108116359 -896324754 -471151725 -727901689 -79401867 -30927676 --551891090 -893911188 -765663157 -894144921 -22130910 -797006887 -951833803 -373801511 --176119343 -684981929 -850574880 --190167722 -750052146 -99446170 -271354399 -902551543 -906206817 -850831977 -280927264 -708444319 -285624828 --471593550 -578355630 --584116117 -717808770 -587514061 --136993020 -929971872 -857936164 --892451663 -295390698 -963325262 -737716885 -367788267 --338244099 -193047226 -343935412 -31639140 -977540996 -526716387 --136797930 -521804001 -721346026 -84815626 -212025439 -310982439 -182986070 --141224408 -516237006 -755893463 -247216746 -509290947 -292432603 -628929946 --962494148 -484853416 -744484405 -884027140 -376428885 --822241840 -419049895 -628524166 -155380869 -531625775 -76652207 -507754143 -143799328 -583278291 --938702534 -586950470 -246094681 --467079462 -62963988 --846043346 -7175564 -37811981 --673934929 -249288487 -578209005 --857997107 -981996794 -891957785 --385653235 -582826229 -28761172 --923880620 -950719710 --250651465 -648552096 --326621193 -720273056 -267732947 -126282762 --378948528 -572897282 -23448162 -683740744 -43820711 -83036785 -413785147 --577097264 -738008896 -707968803 --931146555 -171307276 -178493403 -183799978 --199139909 -83545907 -847322792 --632803125 -750924799 -296994050 -920118238 -141403836 -132459451 -589068311 -519618308 -735086422 -838037436 -105279774 -522775117 -47112075 -596884762 -864600065 -605941259 -708033058 -519679052 -657186692 -120227661 -401288597 -89961825 -779896443 --863563649 -311161429 --171605690 -648964506 -296619861 -90860125 --672065628 -864256593 --423292893 -933672132 -621374558 -772508029 --760465067 -986511979 -996902697 -332821547 --780905701 -280273391 -816682028 --797077164 -709192382 --290629389 -943063625 -190616109 -365443838 --439817743 -440274043 -701148985 -813792957 --141254353 -530533587 -341142866 -760656475 -378653308 -245889703 -719218944 -698139006 -580941379 -586835769 -696518346 -111042179 -49014325 --213966752 -899581716 --837852296 -305629531 -716703850 -538881807 --350571861 -864482298 --907839937 -585746411 -751850052 -5546584 -671015122 -46972113 -928254540 --834140604 -98298119 --522775117 -768688720 -977866599 -809961485 -620258207 -720558916 -884944086 --359042138 -508727711 -235804544 -655272295 -482546303 -951607056 -50847168 --703960720 -918220193 -621879162 -542639645 -796001713 -437271168 -176552714 --857779687 -11042525 -468067284 -228376101 -447446942 -9030505 -116328893 -103455038 -317115952 -289556783 -399533922 -524558572 -390072278 -544948128 -769804411 -923072495 -230334363 -199033079 -964656650 -841550465 --256743311 -232532562 -294383436 --859543789 -774729035 -650117182 -763511848 --838019227 -61250152 -785723295 -348094722 -332265847 -912582001 --600576726 -733163045 -789785675 -380153326 -322457211 --940090479 -644281882 --86499576 -77091926 -470380975 --796291927 -524485656 -489764393 --714169464 -697860907 -990042031 --214317751 -33743596 -716728420 -663559428 -691945467 -500921039 -366326103 -57548582 -860961049 -159377373 -784970888 -580977944 -661798836 --952456942 -738389209 -479832892 --610191531 -291211712 -963636541 -219330512 -232209323 -81234528 --69193293 -358917788 --342842220 -565116920 -406849385 -794249464 -329258331 -658725256 -740751518 -451698638 -51307972 --468705386 -51203798 --633798206 -385191106 -557069247 -784403531 -144771632 -56479589 --734048246 -931656779 -205368086 -384421372 -967546631 -274973376 -682332594 --506341249 -398646626 -335092494 --884183858 -154450774 --82301012 -685444071 -40910823 -160749911 -459698861 -16110808 -665464452 --695632364 -65292986 --67981331 -817629660 -785328822 -164796487 -662637542 --513126695 -935482580 -969241764 --793232102 -673892935 --449191585 -104076290 -408838965 --183257391 -328196154 -522271280 --747549810 -610869449 -963347394 -288230933 -294306863 -157680722 --147970048 -479729391 --855084081 -9652712 -547311596 -547048431 --409444403 -949758177 -261371376 -996115353 -185946439 -373539597 -838513729 -451615436 --247336062 -276040236 -566090883 --745521838 -101813651 -242541671 -217732282 -824107942 -762398518 --268121483 -609184262 --242286173 -792167346 -562639280 -24755564 --337280545 -113001164 --969309267 -661750714 -567642646 -720154405 -288471914 -760528500 -972510875 -986000252 -487352238 --386096435 -6823421 --863400100 -533131240 -266065573 -76112879 --506528908 -967745371 -525450113 -750032136 --325144444 -881228359 -126108249 --44205066 -439504231 -84312305 -460896849 --935482580 -883370997 -509437049 -224956882 --672989963 -785433495 -469920415 -69492837 --380275661 -568127266 --186005869 -132597349 -851574808 -562117614 -731089688 -700992939 --316242862 -826443681 -112644299 -303361106 --106256168 -698906139 --218124543 -848498039 -877276385 --748225607 -50595031 --58871207 -776903298 --279762836 -58987790 -989301442 -188741327 -578070077 -23796336 -349813936 -234798819 --961938100 -787446680 -769395145 -487782949 --702639337 -193108103 -935848036 -620900021 --79968420 -431003982 -839185451 -376249922 -96548040 -634895094 -323060688 -275096913 -287284422 -602325034 --313919186 -94278138 --394020628 -601012165 -969641299 -632464608 -924819244 -942663357 -238617604 -681436164 --584594506 -754847053 --188470617 -933795391 -405441944 --450527773 -150637572 -794749423 -477090093 -199546894 --989523970 -406829451 -717180520 -945104089 -920858129 -840041165 --337203221 -768030860 --12400663 -589876085 --770448319 -101378997 -276962979 --879069133 -942373691 -840989318 --589780728 -241763663 --459795147 -491601901 --22090847 -43859247 -374964757 -804454777 -659937216 -387745819 -741183386 --564062048 -81173153 -994548321 -340139253 -941913791 -277866576 -828550919 -399825665 -380310255 --142247170 -406170063 -245888883 --518916090 -804581395 -148498716 -433641524 -28717315 -121908467 --847144089 -344040279 -31502945 -671631902 -794189107 --204456575 -542970109 -522972531 -223622854 -937448519 -211282958 -894179370 -278134713 -45220779 -291274418 -242739165 --641940767 -76818351 --787061193 -52651984 -995892137 -641981476 -967309041 -767352466 -732000597 --878980884 -804511403 -637880365 --792167346 -184534185 --180509688 -259822207 --264167793 -181535056 -526408264 -510825048 -882512017 -706139699 -53457744 -817244595 -862137452 -857177679 -720897367 -794808636 -924254603 -406473195 -233769481 -67495234 -235207783 --12301998 -439117805 -506559897 --709137518 -996503206 -396460420 -178443091 --23001026 -895674884 --635964621 -535807123 -779622670 -314451865 -332394438 -921452059 --277021826 -131937060 -137342972 --82276348 -678278414 --898785738 -50511877 -190549542 -868319106 -951787625 -844810070 --430417544 -876960100 -75517011 -454439280 -163538579 -276023205 -680998023 -240416794 -13266134 -16723018 --48087482 -973751276 --338558190 -806842343 -160398318 -742855525 -534416587 -613446335 -589502364 --322421896 -905906784 --622633768 -606013879 -525575909 -798893849 -749063144 -705102004 --594856396 -194272168 -84061718 --559976504 -616093629 -850080401 -983168005 -56310442 -524543136 --896765043 -80983883 -588915894 -281383811 -528006217 -862850971 -747511595 -172811356 -998638554 -314277214 -929835214 --752692437 -425405940 --303790155 -393901974 -506872754 -264074837 -230163943 -17359595 -584080487 --31883232 -773790244 -471981573 -866446422 -802928544 -338109970 -481860525 --7820453 -387533842 -973283392 -457309393 -425467707 --960409542 -93867760 -800644255 -259900178 --423073577 -418958997 -658911375 -131866556 --833437027 -881177509 -394878201 -930654938 -387120904 -539288632 -463894217 -499993664 -170917976 -206750036 -29111740 -504200727 --316483521 -960170473 -146688218 -930393801 --419668527 -498229058 -668326828 -668891098 -215004733 -162660686 -898254023 -114116687 -691763084 -60168928 -373770160 --135353905 -999385583 --438123882 -247517293 -844307065 --608185455 -44363138 --687840648 -55967447 --58591671 -932896530 --546487174 -515026689 -650931125 -532143806 -612516271 --125454501 -16806198 --747289061 -805657827 -548048969 -424755538 -967160097 -703495472 -375286188 --311865971 -346792877 -794156747 --421400346 -229019941 -464218835 --494066058 -464575793 -213326293 -488126075 -546263669 -268689540 --106566777 -651564549 -350064914 -288429929 -446936071 --806095056 -466189140 -41584335 -9705231 --703500380 -447174188 -30380502 -491614676 -417745986 -191535114 --395521928 -434110848 -722029240 -499410163 -852751107 --966973053 -158433091 -284287097 --505298762 -182964815 -932406441 -105460485 -886771281 --339581485 -614288535 --244451167 -648367665 -300807366 -4389588 --538781091 -119750570 -148154421 -869456849 -727902002 -339237556 -382097541 -189920704 -430744680 --989420862 -500915097 -82195185 -284473544 -828183392 --96514397 -815298341 -82544847 -850838785 -513429959 -333179892 -563824587 -862468761 -547648708 -694186660 -857909907 -48667368 -169200089 --402868631 -7979204 -756448807 --697043187 -596994343 -174440063 --782402829 -572212276 --628524166 -550895133 -891918895 --690894967 -42173501 -746977943 -627971364 -749308219 --408782584 -136693286 -625989292 --238169075 -723196706 -81811098 -160051094 --673280374 -212378460 -745857380 -686281928 -299386178 -760602518 -717317644 -177187558 -873149005 -607128389 -219471020 -458903708 -455441140 -771106884 -936612510 -543677976 --191382020 -438410234 --616683669 -143685703 -520722267 --620258207 -531014076 -932598594 -424224332 --829976302 -219625741 -160469274 -900221417 --158408755 -164785029 --958741152 -607572658 --877863411 -953689023 -422073363 -998104100 -83799972 -537666051 --278173469 -383115418 --556926435 -217138330 -878626696 -242928754 -803971221 -747445988 --105238569 -820825972 -619931638 --329664124 -468272084 -43105674 -14694745 -843123507 --541026088 -800092615 --259797155 -527649109 --812484729 -471264665 -934369225 -789761738 -864418429 -903984423 -778278647 -148450122 -140808202 -131448947 -286351301 -203848616 --351277163 -218535776 -721024516 -896276079 -24935809 --837137139 -254336002 -429705129 --806310080 -303864651 -534886558 -6797678 -944640243 --573438685 -128877829 -292755435 --740595971 -925932748 -847136708 -492026075 -2502070 -992212520 -535445279 -971808507 --891993466 -477141774 --922139677 -341711309 -143616110 -649062993 --647791129 -211223029 -613600 -361483319 --867694690 -248669526 -810703119 --166127271 -280294957 --587070494 -383887277 -655724969 -789003900 -394711465 --811170918 -45101961 -718439073 --796849670 -136308985 -15880800 -960729044 -298418793 -747141123 -269155021 -620333759 -569917084 -489353348 --857631334 -160378549 -687258034 -808946864 --456464545 -809218710 -919967664 -421393633 -271055650 -959528620 -60696347 -679021644 --699531532 -866591104 -464419154 -350426551 -558776212 -920980837 -90640554 --433470927 -228591922 -914557713 --550948289 -440512293 -643766139 --286351301 -184684222 -850547978 --736339877 -575452476 -233331800 --890078306 -998493547 --691763084 -18101642 -72127134 --704304594 -301508612 --180649547 -424193714 -87607477 --590156138 -223618353 -808012855 --655113629 -245172681 -968373228 -880367538 -613999758 --366326103 -928565923 -641031536 --502196069 -872030915 -739694164 -273487055 -571045551 -568798629 -969908929 -331383793 -370511035 -736220810 --702172000 -443850382 --59347138 -99058414 -937982790 --779459530 -163224132 -414564251 -291117189 -590537872 -627258227 -665454793 -669302241 -569430441 -489012233 --73320924 -14080465 --976286835 -695274653 -560999304 -740772532 -578820616 -108685168 -783994994 -558525644 --457334790 -957768427 -951222090 --575461544 -800914620 -894069394 -866843443 -628305712 -513630225 -169497192 -853677477 -109611303 --402629384 -504485409 --146671926 -231184644 -967913595 -292577860 -278031095 -648104847 --644654032 -713606282 --560001853 -53519230 -633038237 -187381897 -964070618 -881398453 -427850979 --428639561 -195613630 --872847130 -250077860 -895499623 -510529621 --362037093 -109817951 --814766706 -282355338 -553075942 -675850377 -671758292 -265823314 -588602336 --666730292 -440595502 -522102435 -691781684 -71720584 -206654307 -938925002 -518826478 --959967103 -704103526 --331433933 -368728809 -260158870 -46161733 -515024344 --494865951 -559761399 -476159361 --232532562 -539478240 -909833112 -119047552 -483256257 -335392445 --406066824 -564967680 -782440500 -504298107 -609576620 -587482087 -824248732 -40694055 --700477664 -473999683 --217748983 -310975608 -908276391 -746866104 --387617725 -589427004 -756152642 -802124652 -428835738 --537631148 -242168136 -248411423 -181665790 -875520770 -44284539 -939711586 -123625969 --608539045 -223041984 -314349066 -294403373 --760909291 -778485077 -270964118 --969908929 -479797006 -921235093 -764341603 -541405539 -759141915 -971343613 -73223082 -891243081 -719149482 -753078604 -107143143 -245540669 -102387071 -381970691 -579397870 -70976852 --935491704 -460670162 -173189254 -565030099 -175759923 -56738614 -39687458 --262294141 -845780512 -45850851 --547423653 -475001412 -910229072 -222211062 -698205308 -445266781 -286397376 -495218124 -922201161 --789234487 -652269445 -219032889 -262575304 -9753680 -39230331 --971842447 -212276920 -849496437 --221415892 -64975021 --113137963 -131014064 -977483344 -658725896 -813897338 --734812168 -234238202 -10416716 --153731578 -325609152 -527784947 -79942327 -978180957 -21599764 -945859366 -63503442 -973856535 -822078503 --250077860 -221010722 --626661680 -523831775 -561881530 --813792957 -311770704 --2364184 -188810926 --351431097 -721055690 -946813142 --274583740 -487880865 -651876134 --799893564 -801189278 --714541323 -987250751 -764382041 -901790656 --783302751 -644706114 -31692404 -2216320 --43590942 -41791891 -875964136 -139259505 -399837231 -727220788 -107896100 --313757238 -645695466 -394369587 -51028694 -958412522 -113008138 --973031626 -961247944 -380676001 -731993708 --14998958 -134156141 -983315281 --589670323 -541323924 -961811826 --616024031 -80763080 -949082968 --351653699 -853490736 -132984214 -575447486 -922198154 --412140322 -597800321 --331893267 -429269427 -900156919 -130696558 -511334577 -145110242 -790041027 --826948346 -930696855 --709413032 -835190713 --804866455 -907356198 --43981855 -581631046 --530489965 -645951747 -323902013 -630835941 -114641323 -645967935 -828816928 -599889743 -579788837 -929104879 -603314236 -571462406 -508353070 -17915219 -483705830 -905235732 -701624480 --570703667 -985877404 -616557268 -822799108 -879885413 -167358223 -761649926 -103716152 -504571543 -963936946 -447643309 -664724142 -413343951 -420758533 -469675337 -326622430 -390849508 -850108567 -81822435 --571076016 -462715267 -213311337 --81272256 -82877107 -846571298 -199507490 -380547165 -664581655 --879191892 -390022925 -947031404 -282896358 -868745647 -675025261 --856281701 -532582660 --525679302 -668018118 --402902927 -298324676 --237188076 -410610907 -211626380 -325196195 -268218973 -468847889 -137530126 -621456268 -641997198 -546034070 --284348581 -204008197 -939702007 --91256406 -199262169 --881204586 -858907274 --42882172 -927226249 -843124308 --373237288 -930631126 -510416920 -145932766 -523018114 -484154434 -843619812 -169731493 --441015850 -389547169 -877802136 --913128356 -517625909 --212404534 -78610629 --146495044 -572782449 -71062831 -27485670 --481860525 -768516713 -906314543 -133583927 -932749530 -122194766 -741858208 -163465428 --668326828 -495572012 -769250836 -726469184 -366872911 --784785725 -382756151 -729925343 -413566307 -69565273 -65921963 -845844165 --894021258 -823630063 --936185737 -417225278 -809506228 -853375298 --230036130 -83547877 -433926406 -93752477 -403006163 -645354871 -108478153 -811249177 -881277163 -753778123 -460031152 -902714883 -924600751 -607246065 -281488352 --901353464 -743925409 -496794257 --120124321 -714607851 -466622343 -608356843 -766407742 -344168629 -487178434 -289884861 -997318435 -50027389 -292706851 -267821022 --234550592 -587538252 -137141245 -951406434 -53390025 -652982163 --796389477 -462275403 -856794460 -591962304 --196622307 -802391734 -875748162 -550500558 -244802374 --400718561 -934420652 -486644877 -590594051 -257407443 -494494272 --42900212 -654925422 -757762800 -432677517 -716721612 -359103648 --7978845 -752357022 --235928843 -524661189 --57920424 -570928616 -942256900 -471744075 -472005242 -447810486 --110468248 -592771867 --5593582 -485198131 -146570238 -140591044 -579525016 -959893321 --974829717 -991965143 --25077720 -521815815 --984371505 -328845589 --27727593 -138216908 --85384824 -225274804 -616882379 --122893017 -439835958 -773410418 -965203903 -429268212 -534445644 --333146608 -767986787 -779260182 -813462688 --719964826 -694160884 -504123853 --151188285 -690017432 -390637822 -411412316 -882529527 -514916927 -500303991 -264821469 -806426212 -33172079 --930810847 -427560869 -899116209 -241836587 -786365734 -75046620 -748362462 --23681476 -472222476 -72048551 -234160530 -301238774 --967648632 -935013049 -844740907 --291165347 -35305328 --384175633 -712235461 --948751027 -262508162 -513098529 -829666846 -789761327 -791879833 -294803953 -474633352 -63937226 --389305401 -559603137 -357250826 -330386533 -968689787 -527509640 -312223005 -372624667 -16220795 -728148896 -591953908 -69672609 -658201580 --27870343 -802619652 --930071973 -737811156 -352361598 -313547339 -11048593 -706919513 --286396742 -579806434 --2599573 -145469897 -749842885 --192825557 -489128947 -641688559 -833689959 -454215947 -769484520 --932749530 -722509505 -669120470 -892957591 -561039656 -307774440 --68465699 -822519492 -827164016 -751577162 -107241340 -862836227 --208904443 -963339331 -966023840 --206402224 -654445595 -601462722 -832992176 -91475944 -701443296 -790997990 --324202433 -447464163 -36673583 -795776641 -615792584 --850277720 -898075399 -998471469 -473835093 -643212230 -342564014 -974286050 --834943109 -428353499 -404376988 -416832511 -749490765 --902457593 -971787015 --927536223 -265048763 -213954551 -875782465 -597733373 --380310255 -346550073 -967939760 -295996902 -477804572 --753215988 -415409280 -322656788 --388248985 -190645956 -826075869 -892911694 -407162080 -784308347 --546483194 -81811029 --581009357 -982307013 --372914550 -527011422 -323706898 -761838904 --793835804 -983717488 -846336585 --419499374 -479338214 -53351380 -174625589 -693628575 -215936749 --790041027 -277623885 -750607786 --80567763 -8526591 --272538509 -376411676 -759385250 --173894918 -315162952 -680473290 -554130416 -990198217 -645613572 -966634982 -889046038 --904821360 -570784295 --541732355 -727885011 -389910460 -964620267 -21406939 --560670916 -436948256 -462072248 -43325551 -312789673 -833068557 -101241464 -45111187 -262633233 --686548971 -747239655 --883905112 -470354933 -502330224 -317448754 -590359195 --797766438 -250959973 -440569404 -927685724 -819584551 -69843573 --193071382 -9584848 -894252071 -58376615 -829984583 -706002281 --942522749 -760260658 --422471470 -32121525 -23888042 --486990047 -141584816 -776872361 -653773353 --895997133 -585264234 -368936384 --260298684 -574458415 --957282267 -223153064 -671339509 -567176085 --298941723 -548587273 -80588434 -544288425 -208767585 -888237369 -642392930 -18448862 --366326562 -713500493 --573349479 -627403961 -105807445 -293892762 --741599625 -880521690 -36301186 -622085476 -283708265 -295896059 -477135909 -284049530 -493595069 --189400480 -755194306 -351580190 -660187473 --737716885 -899224703 -721408907 -458540365 -596418558 -721958747 -574586276 --469293532 -712260577 -58555798 -451546609 --541892046 -417807580 -574716314 -278475603 -380010616 -97091815 -446939410 -817488514 -108685777 -934209724 --781039959 -834318594 -813995932 -306923943 -150566635 -123581765 -353270160 --839742228 -685171797 --839185451 -844406017 -557523161 --58511999 -418785187 -33225241 -260604292 --547077763 -611698939 -269299710 -336176778 --173299488 -994223091 -651026391 -554638295 -662211318 --202415817 -610745640 -46318278 -220860147 --580609282 -791951767 -305522969 -563621809 -993340427 -538307177 -204137466 --216666394 -578285182 -358869459 -998207930 -102061251 --249363594 -166456594 -953952595 -927927922 -814955644 -333433950 -554287407 -686613759 --413822531 -729515715 -269939384 --226027413 -825090491 --627078393 -25084453 --616859761 -903770632 -30936099 -329842661 --278617151 -631724229 --886812189 -892077163 -696808536 -481693021 -351620258 --842800359 -285701371 -653945998 --431466714 -75179650 --946813142 -851077365 -738583918 -166485025 -176438598 --898943877 -450005879 -986919939 --434252942 -173263359 --433198115 -377837376 --984899337 -384039857 -150276342 -376823890 -857499248 -706092917 -335516830 -273068745 --846288038 -330816634 --28026852 -726719767 -758768714 -331401554 -325300683 -263718502 -100844511 --885835001 -735922983 --51812294 -367813880 -335988629 -432533738 -825135601 -117302490 -923103651 --893671551 -62574459 -243545593 --186609459 -34288793 -562149971 -431057363 -790951397 -482195948 -566152732 --930109644 -739663770 -305321939 -368995963 -251670899 -913552603 -174076374 -625067378 --182078660 -516377203 --438410234 -895266086 -388268891 -452549716 -905406220 -102252178 -914769015 --154890779 -912314827 -986198845 -458074592 -263115433 --656982797 -313409678 -213967589 --809506228 -265019316 -742216068 -700913930 -995567355 --701443296 -102224349 -763292564 -293291323 -837043805 -65917616 -938879982 -230223283 -719827000 -367207063 -940231326 -513906771 -988358686 --662144934 -11948706 --491834701 -800436317 -823351759 -242132837 -45528969 --103478423 -420746886 -194562193 -810258519 -309045573 --5893696 -591552400 -572085272 -253098115 --984097007 -840227778 -453877178 -623693269 -236818322 --17958235 -312010151 -824614116 --813467653 -356798252 -985457628 --98178833 -675574495 -552533515 -21506769 -627538624 -871185841 -867932297 -661126548 --815271901 -311151875 -921562718 -584970246 -876632022 --76013502 -548974418 --835015004 -893614016 -538454765 -36838431 -995816712 -525312494 --288760208 -771023933 -519169128 -282216813 -766798765 -113735810 -692398493 -402250130 -878052965 --342001024 -848281552 -504737545 -55938227 -622441408 -905116470 --4109243 -785809665 -913735979 -414557118 --103401088 -443089826 -969929267 -555503164 -761571468 -105686596 -179402882 -605447331 -863711484 -30872487 -514115474 -504145276 -880852371 -129141477 --601674911 -595790959 -466866141 -397275718 -843626112 -40247439 --915504605 -204109718 -127590354 -283550920 -68441566 -543257900 -964263668 -351538827 --469011741 -389430694 -946610641 -416735389 -760283068 -360089768 --950921892 -509961248 -886650824 -868211006 --805998792 -820881312 -965798481 -557508943 -665214255 --882663049 -475157399 -634712484 -209617815 -207580563 -481875755 -20984611 --679202677 -184083335 -9455255 -426781527 -479416368 -41819083 --645301028 -989346138 --405432217 -945219007 -574858063 -718302056 -689735513 --884075245 -182529990 -952957343 -220845605 -10483378 -703567210 --628096603 -43595113 --144463158 -764881424 --622074076 -914906928 -69116129 --270181338 -243539030 -327912741 -239414596 --861111056 -170980808 -794783855 --506539548 -8240778 -624990989 -390614058 -996170608 -2218873 --566455552 -274495281 -829849823 --874534646 -349727930 -128317209 -151251919 -164761155 --840902056 -80476981 -215739797 -237653175 -862349586 --645314 -240572896 --638223971 -65964123 --413860229 -133982414 --161954447 -822469170 --202033700 -715261343 -618323292 -889855413 --68009068 -292595650 -43242221 -575034161 -465745521 -279016329 -392928233 --594544056 -763884311 -696839515 -552769743 -604102648 --601812454 -248823543 -640043422 -295538191 -16862628 -193900836 -70848990 -80736373 -920011626 -495440604 -706378797 --157283245 -811992636 --175017975 -230471993 -988694632 --914855749 -71785230 -44412191 --487814196 -439868888 -646234005 -196370927 -245484058 -274462232 -80490435 --59332739 -991169045 -746367290 -284540154 -186255578 -336020378 -788165014 -164133315 --65865794 -907283133 -859197073 -568774007 -287149296 -73460662 -609571371 --178572659 -405912790 -3317653 -31066663 -519215925 -294179007 -733596853 -649050686 --721660635 -817465167 --837170492 -339084592 -533541681 -153168070 -704650020 --880724095 -670781646 -626429162 --414935035 -137314616 -418597550 -559024533 -580039254 -465724461 --682079960 -850840091 -285910505 -445825120 -716042958 -5049559 -657527647 -807043513 -457232551 -800438300 -821201541 --869106286 -748899005 -12493249 -596960891 -455592004 -626110051 -594695277 --120576257 -347373915 -223370194 -770799013 --390706715 -462085082 -162344900 -92773103 -880146484 -102125297 --591079131 -305062527 -129846469 -424269505 -919534723 --120747204 -571440450 -717649044 -29990479 -842307474 -104361718 --646295376 -847186092 -23510820 --454835445 -445231449 -108036201 --525048925 -779625984 -981383831 -637529800 --237856408 -934709990 --548150007 -316570753 --669573987 -456154516 -422208224 -482673488 -786578582 -406945671 --653914844 -91065103 -949405649 -23054278 -619372759 -973239674 -576116507 -23108103 -77483958 --681464208 -453965130 -494602444 --715295912 -987532231 --857156483 -66026907 -883890270 -992566586 --454066769 -362599151 --277378987 -658296583 -449411212 -754120722 -801659841 -287606147 -920325922 -147265759 -482202329 -414637618 -295550390 -771071671 -602799360 --841529959 -585353838 -486936805 -465322448 -964681409 -737771185 -529145292 --327439587 -309963282 --543062648 -903083953 --875839268 -980575824 --348147403 -39120109 -357159292 -152738032 -44959772 --841062495 -432529537 --471549975 -842071671 -869015485 -809686641 --785303039 -287488309 -9518502 -339372041 -659503975 -205870890 -896287307 --930654938 -479457211 --253349692 -270018401 --665558330 -861840655 --707707363 -476412603 -271983921 --440595502 -157140789 -738060531 -46155528 --876888981 -470629043 -983979875 --229191076 -50247591 -853323968 -897994216 -562024635 -125153055 --320481539 -869449782 --873886167 -848431625 -132473910 --696003598 -890194692 -742437694 -487777753 -459027947 -7929510 --615429371 -912488277 -402389135 -134938743 -827712982 -965725432 -524996583 -374769850 -470988684 --630258143 -344825942 -972532910 -819810781 -212305247 -766433405 --536928103 -220224453 --611034635 -462916250 -372536908 -329131345 -587633908 -964293251 -40935874 --458926705 -867537983 -962909383 -646568522 --765663157 -756168020 --351580190 -256939089 -608824894 -481247997 -795294808 -260747475 -158303022 -799216794 --488154393 -413957723 -10612088 -353628441 -191347337 --475040270 -117759078 -126515055 -549793488 -275325165 --368635763 -789247515 --61773781 -769011931 --236375668 -652349706 -65878924 -173817985 --138751013 -169531339 -361044116 -650144146 --164967661 -188571664 -429942406 -746174342 -385993004 -480992652 --6458093 -905051325 -332412343 -342988844 -3321511 -498140034 --245540669 -230366897 -391522329 --189385203 -62224370 --613785888 -715742831 --16059353 -119409696 -872449437 -993559026 -646724503 -295553383 -231074997 -348920316 --410175031 -518748918 -640218030 --800438300 -58454457 --938567208 -779098555 -910988943 -735104076 -957415314 --509495136 -493686207 --461501019 -956312835 -363243300 -283262339 -904359781 -490934511 --901797801 -717692432 --523365595 -708893778 -824763689 -785007126 --661094997 -863057356 -397753638 -359782625 -156619635 -1186632 -445243652 -653467881 -372442991 --198137544 -647209967 -268759127 -793701049 -106308890 --259607259 -657576971 -174000753 -384280635 -426434178 -628660013 -99939969 -214542832 -332687335 -239552165 -150767153 -378646648 -317657220 -885696760 -844191301 -329897751 --751133190 -39675673 --297762149 -990337691 -156752820 -246423739 --25736947 -873648185 -905502407 --945859366 -40937532 -139249834 -445274377 -444540049 --530737578 -48550596 -675571644 -61459516 -216649652 -695760167 -66239498 --567087442 -829215600 --129594742 -187726724 -420905830 -888788106 -537355626 -437518226 -274257657 --151022518 -539048784 -367104670 -246165659 -437204985 -173256564 -295128346 -872360391 -375420121 -495964646 -727733612 -680776960 -674341115 -156041797 -166699509 -253576375 -510004843 -201143805 --635270203 -796211735 --133583435 -115456765 --735136506 -874596149 -911486479 --486513675 -468888836 -737414014 -13943581 -535854763 -358506082 --268802338 -678906073 --577782647 -43655681 -15528485 -139712099 -478240484 -378359024 -831160727 --518027717 -220556478 --212041253 -575192358 -531751481 -137162861 -79638377 -568952193 -53477824 -803044866 --170999293 -371254604 -619915597 -534987822 -587458275 -181282461 --664078283 -834548121 -180417217 -318113467 --887963770 -337633847 --628132158 -619547814 -350215585 --725131871 -537824309 -464213102 -889377661 -487433927 -736650848 -884238840 -176664964 -434810210 -793609015 -146719861 --973331057 -669643304 -122829678 -223395612 --534901744 -404421717 --811732659 -459467206 --850108567 -401436776 -279065609 -59069217 --925282395 -311535705 -589273917 -666002541 -762219750 -467050700 -74955826 --637227062 -948077737 -184613374 -363645842 -266286547 -881145501 -63126190 --730600682 -717943955 -945113833 -407804791 --317513530 -398445837 --580747272 -316419768 -858505858 -193243725 -391372110 -819496800 --443226470 -680126804 -734036345 -149343415 --339004524 -352686019 --318833558 -655777005 -820550843 -646595211 -459617617 -246678190 -919851014 --803032816 -652932345 --259392447 -113116112 --972864909 -728022857 -308815232 -49891072 -706907899 -643400721 -167370149 -314248354 -116733108 -127774378 -365473099 --93734983 -389149318 -280308337 -211667436 --266681216 -668099721 --430178984 -175799331 --268478069 -542314087 --841622867 -854776209 --468461274 -117198244 -849987175 -300255710 -620744470 -902364694 -135382114 --249324305 -656121599 -653221830 --76818351 -83115578 --279485299 -512136564 --560143885 -420014718 -445461595 -653240611 -409601296 -733146064 -807073344 -689610493 -888526118 -168838995 -163634266 --902613857 -981733632 -765746197 -797243923 -100097788 -829060471 -445799426 -207200734 -697574835 -965444655 -808705719 --791589255 -525658195 --610207338 -676045239 -25740512 -820505574 --37241488 -468349938 -255668902 -510376135 -864953315 -528668857 --337851765 -893377214 -774419345 -935102316 -177994001 -110487742 -563799022 --249200160 -945110922 -100973440 --27773086 -602995496 --12438149 -150232070 -292979216 --465744181 -987971778 -890671158 -533948344 -365344476 -165601524 -709730726 --378772403 -522173719 --693378018 -437489780 -383520538 -741464928 --943049531 -624863094 --987484684 -308439868 -698974534 --306991385 -663288300 -977943617 -485921550 --543144933 -11564160 -685371875 -424836563 --437828850 -928879358 -681917674 --812169268 -642900032 -324145358 -400651977 -279448790 -236611038 -659453177 --221208568 -897333542 -799320935 --244240127 -700092255 -993293492 --296587050 -564478683 --635250960 -815220937 -411176509 -365162958 -334629259 -642227775 -575773542 -564601939 -531051672 -995760387 -288434883 --966805877 -494989816 --203810558 -255742166 -126417351 -163229227 -593744693 --472960145 -417160465 --566184398 -867702519 -81351893 -334465680 -368769949 --588523801 -582786233 --319120221 -937502330 -843703037 -405563463 -5935200 --863616772 -375811397 -690758807 -171035677 -282272022 --105260701 -940023027 -407834571 --15528485 -8123691 -705526294 -45002223 -205643501 -630055424 -358491035 -727553293 -85259693 --912039011 -198415999 -920849163 -168334963 -977883614 -465183528 -789899523 -995466756 --29494097 -258942493 --104662142 -207426236 --721230588 -476213497 -767011839 -599913032 -339780646 -873806270 -402268467 -592892028 -729320673 --313692021 -738697331 --166963059 -263485325 -488549945 --753406405 -526924511 -863874253 -497856860 --44730333 -108074016 --914597652 -457084867 --35630723 -905367962 -288779680 --888176435 -919544231 -631282758 -565966831 -535337508 -155316715 -399457597 -929454148 -962875081 -761609690 -564526383 -345603031 -864671261 -578165717 --564489618 -399338651 -546816113 -92438630 -960598418 --657406068 -493189020 -164211225 -309171033 -82420305 --260126974 -747947523 --691427007 -693769656 -444600502 -154240187 -205561660 --787010303 -991800312 -309131228 -569863726 --910936525 -670731054 -139879984 --438926998 -749958165 --711324862 -656930384 -473712406 --997382374 -988311750 -846145219 --952931397 -344844291 -871027265 -414626345 -968672844 -686724451 -651066367 -559183094 -613404947 --963872159 -444829277 -792327452 -767348907 -128877933 -998624304 --187775609 -338978180 -683474304 -521017341 -148449253 -33336681 -184349957 --745836589 -771410402 -212723059 -850030064 -358010698 -140893035 -680227174 -372623642 -91759511 --216009691 -310266747 --257126330 -738711516 -859164549 -311415955 -569918108 -101798838 -584454571 -163197272 -621531952 --819291828 -448182653 -25664810 -944208997 -237863187 -916111819 -289838062 --33949708 -123013046 --125976734 -607528466 -383678781 --599075172 -949897147 -186853416 -649624370 -521341748 -354191837 -525194694 --786241684 -947908450 --484483892 -572791345 -565770302 --199273937 -36650931 -645504102 -887957435 --690455320 -998793046 --57785260 -75031027 --863920627 -864530064 -213135879 -177210331 -372851572 --554532326 -262713916 -212755296 -721333082 --286455493 -7160207 -166560365 -182458284 --264821469 -876200572 -611688259 -591182848 --612573332 -607754922 -37404568 --114408883 -379759039 -962391039 -851827722 -466664958 --128962093 -121794505 -647720934 -677978367 --792615130 -217469571 -103669416 -9044978 -505816013 -88175854 -81239211 -617242429 -504580247 --83915130 -345686949 -25698140 --618209387 -861139738 -779883469 -322993747 -908687565 --810228704 -261726236 -534909300 --672208171 -214007758 -773475509 -804394264 -669810071 --411589399 -64119413 -809429938 -409438140 -911398167 -475151854 -579036445 -596478139 --440258336 -473607332 -276917277 -395299808 --893780601 -100305548 --220845605 -588072976 -575688008 -126781554 -713364832 -661739283 -862548054 -473176243 --461139727 -82111415 -598446296 -496891893 -617043058 -254414746 -357784797 -461652367 -110771971 --352544734 -767305969 -620274465 --750924799 -671763118 -518382120 -754045369 -815126299 -29339161 -820409292 -876032974 --541154841 -870902 -422764193 -204777409 -181447335 -77196572 -573143542 -953125268 -683193333 -315393893 -130741785 -235265613 -703918606 -715827817 -468364214 -730240632 -804182875 -25202394 -380048759 -62017413 --81774455 -496536687 -55188384 --326161041 -973904154 -912195517 --897439103 -565600588 -963550837 -598725622 -37256597 -575400591 -992719932 -793557264 --966047936 -745236228 -461979028 -286991002 --954901013 -844373515 --296448671 -321832696 -237516818 -320864554 -813272044 -235422127 -507964724 -604346839 --663448997 -761092573 -574254334 -897844917 -847903452 -980475144 --57657912 -236119570 -482295201 -790132472 -399898892 -536608877 --17100941 -446133105 -585470212 -315154180 -774315956 -698860010 -462977792 -809778130 -182971874 -166496544 --561621386 -582818987 -407417825 --148057959 -805632816 -881768558 -677876858 -977740996 -130645208 -393870177 -609486359 -127466200 --829666846 -58175125 -753281379 -52103561 --127466200 -699831160 -47449423 --620933541 -151438389 -487033077 --944504872 -332646478 -630994806 --898663060 -254326036 --212292309 -182766385 -351394880 -919062116 -930276431 -868813793 --522966618 -470644539 -971009640 -997003167 --877003839 -937699263 --133219019 -141526146 --811994656 -722892649 -289497772 -355807234 --903483342 -202918766 -944447933 -546621081 --561180258 -451360694 -142495104 -572778848 --714939516 -178431160 --438825807 -574720623 -25654038 -203743085 --451363631 -958319965 -43233192 -195530972 -249040099 --575373765 -812024230 -190719505 -892466997 -595042764 -515923247 -306279480 -303852884 -544049006 -800159514 -826149397 -726628298 --145172878 -713923736 -762926631 --527052213 -40182821 -935306670 -465145243 -704111836 -131392367 --379914522 -190491226 -608720436 -907942174 -159314740 -560217856 -577106730 -982744576 --262020924 -754604337 -486237687 --257978255 -317675068 -607084631 -650608677 -476190385 -182593599 --998207930 -140103555 -756768030 -427709652 -566159535 --689963716 -675095350 -953141881 --861906706 -214244592 --227245321 -196750007 -61063970 -277857780 --659066736 -981749474 -95160473 --109317942 -637229292 -597178545 --830794781 -402831104 --511020690 -44366640 -409638990 -809279041 -739141133 -887197126 -219308726 -692408474 -12962924 -665449942 -280925235 -42911081 -215467090 -802878630 -770718406 -266085037 --279171230 -294718280 -258616495 -719518266 --566185226 -139631008 -883028430 -242988735 --585888729 -958177675 -209417862 --101658149 -798554076 -964322796 --396517290 -102663591 -430505954 --833415533 -745793534 --521662193 -694590334 -380864432 --607911417 -854882593 --676184009 -929244318 -683431447 --265518769 -135995496 -222303296 --192312688 -744378892 -167207895 -352942141 --519648132 -227447452 --646240518 -48033356 --867976324 -522706564 -721216910 -86349118 -459673833 --519106624 -247365462 -172041056 --965800855 -90097270 -439035339 -175019140 -618689168 -131217267 -663934406 --26626491 -772958875 -14861950 --896801982 -132506818 --635570947 -118098905 -382797251 --160975483 -694760173 --463465730 -226818721 -52397885 --600495976 -561349820 -846874197 -507145238 -235301326 --979091797 -217088423 -971460372 --644319081 -865617763 -684525991 -453231882 -31484580 --190645956 -323099897 -494001763 -696127001 -769338542 -545712201 -657868826 -630138578 -363929148 --462258724 -805625091 --186853416 -913189293 -58260888 --906752219 -42333422 --924818599 -399417104 -217380570 -779699846 -344855440 --800028859 -786715852 -460505307 --910738488 -475072791 --616923016 -200264962 -668741531 -389414113 --839479876 -505728150 --183878241 -784789293 -200675988 -657943383 -386948829 --223522762 -301695641 --525221043 -116426681 --487433927 -783388324 -581405687 -474106522 -975447842 --181227381 -249858980 -296487118 --47956660 -695503761 --591861246 -934004711 --807073344 -193055448 -145423425 --900761810 -523065903 --227397713 -463771841 --356531015 -36813248 -463968010 -377273448 --80711836 -642093124 -555781183 -504599639 -858902411 --526258598 -47662248 -418370604 -929171038 -832283450 -573508625 -110386779 -270178080 -652519301 -676266065 -996924302 -726111462 -647750751 -95154672 --610529749 -251667533 -120441428 -967117894 -702338850 -857876757 -767282201 -334131104 -608372032 --479780430 -645947501 -501569028 -913583670 --669404353 -587706917 -391656119 --551863032 -137306611 --182875302 -211001223 -304540738 -972241810 -477267252 -668584357 -147890594 -267817029 --930332576 -276613317 -173182125 --383840628 -12565899 -223638094 -80143940 --64071384 -815240477 -109310534 --192981635 -637489938 --838489464 -598150105 -495165681 --513199328 -3607244 -609418639 --715074899 -870239280 --928381054 -516674340 -95802485 -85088241 -820331387 --13454612 -347425351 -199400470 -122423582 --554121163 -219561571 --650716411 -883859439 --10471930 -774186859 -53929079 --480327555 -247924263 -207910708 --976805906 -830603220 -349723774 --48940731 -979940227 --667509910 -892985623 -926993143 --538486066 -244401029 -252407427 --642307705 -537211269 --680253081 -147216957 -268014518 -732362945 -417322727 --936413543 -308715601 -367268879 -754893360 -614985450 -235089410 -138706452 --796222961 -458776949 -753669680 -257725243 -248338839 -542203622 -423248269 -937715226 -150710923 -944051593 -103870649 --741948830 -512935917 -608440638 -232369547 -686709038 --264898748 -112217352 -814636915 -519027317 -888806576 --968473655 -171340441 --353714016 -528033312 --80056186 -361535199 -294500588 -821614960 -532008120 -156334672 -99242425 -192447966 -805006023 --989526973 -634979177 -400075138 -830770603 -936082270 -825233630 --987268033 -224277134 -296307275 -296641958 -508819870 -32271659 --485643395 -28592724 -606058182 -814440058 --841609253 -265154467 -744360215 -253604894 -716085402 --382973953 -512907853 -712189144 --417071587 -74185316 --137782895 -362175275 -794061053 -297244237 --843703037 -449288683 -407831993 -504139740 -603698362 -292253335 -94433769 --428266123 -338884103 -844470345 -466100983 --833145761 -310085418 --242600547 -606916727 --573989688 -18546776 -510714131 -524604094 --177333791 -112302501 -690272212 -40658818 --594205168 -209637720 -919951938 -914584237 -401111412 -846179591 -637587731 -234828007 -684828477 --294891298 -83375604 -984082428 -956813378 --149140097 -112992210 -285226857 -73668600 --686613759 -33220460 -849703672 -583727588 --339380387 -836687572 -601991572 -814380930 -639654367 -163143183 --145561953 -581007866 -922158354 -894251198 -723931513 -666120851 -277021467 --101142514 -896002117 --426063123 -456741712 -941740292 -380597196 -411368511 -31617919 --994330236 -487905551 --598028332 -784992994 -117756565 -898255691 -278974991 -557024503 -89014562 -951498523 --748918625 -988537721 --89372737 -558568008 -366892237 -672982517 -107127315 -205267803 -308085495 -853136306 -24807806 --886217519 -280087417 -684216194 -88254194 -907533984 -849131649 -488307108 --670597984 -444448327 --587132580 -881494110 -144846953 -264332293 -830221301 -404701313 -372158178 --912747751 -530070598 --623166272 -984827582 -377528960 -162097858 --53756495 -80788925 -624468386 --958577600 -117217773 -453113625 -242137854 -329666630 -450257133 -153545733 -329855781 -71030140 --626044576 -283007231 -139151605 -988785376 -438130082 -287111163 -690286879 --762864894 -808115212 -739083238 -714598080 -975166383 --821911826 -214188345 -31546993 --422074459 -214401454 -30217079 --248357450 -818217061 -581504798 -467739075 -116804313 --589602074 -580287579 -159684405 -355907773 -752665123 --792241287 -958905347 -450374571 -413658940 -215823777 --291694163 -756878767 -737697188 --457431497 -890158296 -30522099 -134499955 --115857146 -803121413 -225047084 -232539828 -186292918 --801514742 -537471433 -485803096 -278758447 -375745069 -962676288 --328670228 -693735818 -305245265 -646501644 -166543814 --456632057 -452983073 -706948443 --750347600 -167037606 -792782277 -771451669 -627130349 -165951908 -637342036 -593676599 --413733648 -180711577 -107251779 -394920214 --71785230 -885633366 --298842814 -292536462 -380466147 -505385274 -248256240 -713761288 -162645091 -348976089 -592692195 --176946473 -114687503 -962313924 --458378309 -72489137 -795102087 --385501551 -84495830 -564061233 --868319106 -717045002 -383603693 -308082023 -443992448 -867331891 -703044135 -657680079 -272813060 --84032508 -42872203 -259870070 --658859883 -755984786 -633736905 -131643995 -485409664 --210056298 -342551502 -538448322 -104340513 -808388653 -111441392 -911949741 --750034531 -457273853 -58026778 --173711961 -121829544 --681421239 -126667868 -892497384 -480668159 --809408468 -833110435 --337482445 -194697960 -683503610 -904898249 -193224944 -790130931 -251247708 --40549281 -32934158 -948663351 --989052002 -669428978 -147685882 -623644518 -635320804 -909928519 -221475184 -802013025 -515361604 --380680415 -104886538 --207991245 -177107938 --543996675 -735621958 -804418693 -382084688 -406127321 -847050638 -863785580 -313052174 -85105850 -347546086 --741712040 -144610175 --132597349 -344000900 -23744321 --522321744 -923552134 -868430614 --190402017 -658238691 -924414980 -657867795 --119329847 -233522598 -453665664 -625841963 -456279703 -95018518 -672778903 -986978853 -212363533 -456885728 -5708081 -684209341 -704157118 -911159758 -237770315 --347363149 -832768562 -988423667 --811654099 -45721799 --91692694 -574997744 -847991405 --267286551 -788308280 -579910727 --269406030 -648159282 -866177128 -680145539 -240361016 --500249083 -997117267 -440700722 --486237687 -68764137 -951605332 -129265828 --504244881 -584412022 -396341945 --429967219 -607768064 --67610696 -697000565 -359294362 -419827173 -225467670 -90690483 -725561739 -192580803 --800349678 -356065315 -422565984 -343992206 --316582437 -384096129 -250667378 -554550617 -808582932 -822434347 -747384756 --512410936 -671284483 -562661049 --454760254 -982520517 -175806492 -831243407 --921370720 -559594068 -301549017 --577239888 -326276298 -289893108 -489049518 -233654511 -903667810 -772190603 -912873448 --163781572 -863185590 --1782302 -442812575 -182971732 -90623508 -987536924 -341717460 -635602282 -550249526 -403130407 --633534964 -614838610 --698602305 -335631650 -447237763 -576256487 -926999639 --207999579 -729976033 --941457624 -807376246 --521491508 -412581297 -859224424 -538203199 -894299009 -544391146 -185983714 -933490661 -745423548 -67118090 -772161908 --132182384 -732707735 --225974245 -705452451 -382906759 -577259154 --996366734 -399333528 --442282450 -61180478 -317216750 -546399916 -442876350 -226149352 -473331708 -94185669 --665979779 -555608768 -585052080 -394874688 --531019284 -13552160 -101972080 -839260227 -589519822 -209721965 -157645458 --845450054 -452694600 -192724221 -61015989 -501962624 --41518499 -603339970 -856414387 -79843123 -845222775 --424675907 -788097553 --23391825 -266244708 -99799881 -113405720 -657737656 --302538186 -183606404 --467739075 -347275408 -863542707 -672340225 -355982132 -958454029 --249971322 -16913010 -406965891 -411930931 --172928160 -840508115 -843362260 --547388003 -190354065 -866090790 -163669547 -734925646 -903134000 --902731690 -172483093 --854868172 -647054853 -291623993 --585573542 -528160584 -363020841 --889617888 -980844055 -998345557 -181747415 -308906740 --828291018 -716499648 -878633964 -485100604 -770966908 --638731794 -742037329 -708200749 -719814152 -747628915 --582204501 -620318359 -456200273 -989529919 -283498064 -394377796 -178776616 -808078572 -867155870 -696763155 --444477686 -884007637 --243148049 -792245837 -386711412 --881624006 -48323618 --709406055 -790736397 -998155454 --392437877 -913542600 -860553882 -922031091 -982000116 -915077099 -471989576 --902392672 -619897567 -426959516 -325494675 --259470761 -489988551 --379524786 -856993194 -619869695 -480290200 --452212809 -657646507 -49221536 -65220701 --148388576 -778640688 -736340614 -16719564 --207849825 -517551506 -223087956 -983266830 -208616682 --130128405 -272242199 --695680223 -713621867 -354968686 --970235161 -661167182 -686107470 -804103072 -379067953 -651322631 --418461932 -733287721 -522472677 --873503192 -724596932 -626113664 -749721425 -183580576 -29151072 -864040245 -56177456 -725999072 -616274932 -437724373 --914154677 -260119606 -33865087 -122450709 -789518959 -16653274 -551911111 --753025402 -862625122 --487633724 -329164119 -138507738 -492781411 -698920234 -895162011 -394288264 -592207026 --108074016 -228838942 -914007790 -824839525 -525882802 -897254173 -181494461 -671496701 -791668289 --809964120 -241320472 -433726642 --776483164 -727041354 --428540076 -557562300 -94454651 --595171555 -212273581 -57134018 --142785858 -202832576 -797747836 --848495990 -461733024 --307815584 -934270177 -466982640 -956359183 -650914287 -320011159 -543992908 --326746027 -100136227 -64746344 -142474863 -657006351 -374829665 --186215329 -835047430 -918062781 --358983733 -627038252 -970215125 -844446100 --957032990 -688596165 -576183441 -276801261 -404607590 -333160033 -840366009 -969529020 -268209043 -466320406 -561375698 -944229207 -442827016 --558923084 -209677828 -533284165 --182288648 -601641955 --714858726 -149028931 -354422467 -465100837 --686968922 -711002818 -904833200 -590057087 -261784887 --897131254 -745557748 -819777737 --802558324 -381125778 -216495616 --712420102 -234697190 -426646863 -199836917 -758460001 -973405700 --640212276 -282250808 -141072496 -758465355 -208417901 -455444594 -108567053 --629040216 -982539477 --280370523 -488388378 -263111439 --903565729 -448651433 -843868136 --645695466 -766726804 -777812613 -58112569 -582067589 -159948069 --621347352 -969664233 --670250837 -250515631 --226340128 -579991476 -945043348 -491736297 --2097342 -244110453 -62784818 --378981954 -104985171 --218961896 -435834435 -621444494 -919165127 -855639859 -931146344 -871561153 -628395894 --973271279 -510403036 -319617691 --58544239 -571698280 -199895295 --707743607 -968693231 -660482506 -27096612 -514026598 --928573159 -257859254 --500872355 -400566124 -3956041 -297787691 -944352046 --55422925 -830094052 -264446082 -420313624 -738772929 -88128691 --163943158 -520180532 --114463906 -994180314 -433161219 -72029631 -246560229 -54231593 -671772916 --565422637 -260038086 --994836315 -774273060 -468333440 -806300487 --229959876 -62983683 --89583980 -472159611 -74910515 -415578084 -578762529 --465439853 -198628974 --944656363 -177891193 -193989157 -401038899 --92678210 -174226802 -431944483 -869380188 --499951140 -302935040 -7259321 --999573941 -835391018 -74311750 -440680672 -363365444 --904671974 -135925443 --346550073 -714622948 --758751573 -963495679 --987584325 -182058440 -706986887 -532399283 -363548941 --954625407 -466638388 --317436603 -676250510 --643111759 -991825688 -46748037 -169778647 -802680986 --69211130 -316462317 --507468358 -367401202 -321022266 -773412490 -626289733 -549649262 -958314117 --656655472 -574869854 -673703544 -536817373 -825531493 -993837538 -347046358 --392057621 -115284345 -989545850 -749017031 -309747041 -381517814 -349224274 -979587610 -514095969 -201561117 -280913306 -752628815 --730805117 -659718716 --499146786 -876154688 -792716306 -604221184 -961072014 -212165907 -253869387 -620128500 -418074294 -941929108 --900311588 -611099534 --213317441 -499216056 -343707543 -329074788 -907737439 -298043642 --601589225 -230100951 --767087054 -751864794 -70310919 --972532910 -76189672 --255971448 -461132525 -406116139 -4679675 --713601184 -486395775 -278783784 -167161826 --253558550 -36687296 -909001450 -976977290 --429721384 -368649814 -938115723 --501925380 -307991412 --425419108 -748864710 -349551222 -224677540 -937936090 -466586852 -382102757 -756891395 -102332772 --41819083 -214633205 --742081703 -867222616 -220862820 --934270177 -18119569 --46967354 -864322555 -222449381 -928737104 -973683332 --431514383 -894304480 -80382736 -213781098 -574076966 -276922561 -469181835 -663093282 -607774783 --277374245 -586819289 --430314861 -337529460 -88673524 -830964444 --230102986 -623599335 --99702453 -321490989 --82544847 -736771356 --209417862 -84117557 -306901114 --674314989 -25786893 -93881324 -876876504 --113596120 -717562237 -468529735 --208393308 -982955292 -125549369 -126128892 -743451583 -480244401 -441661399 -824384822 -221360025 -593749104 --861703285 -394885236 -690819795 --368728809 -730081472 -89902399 -757390515 --537221391 -513091942 --359794431 -446655321 -466537596 -38046299 -489494010 --652055740 -46760989 -132767352 -261240827 -612930456 -117672688 --525359256 -111455091 -875489929 --308715601 -672258413 --331125871 -770026285 --264815210 -939292998 -184238280 --658909386 -729057788 -392994730 -379296428 -589116121 --907754255 -130679833 --456827948 -553873802 --165161574 -710939791 -740823591 -351680797 --874817717 -720415396 --224390786 -249661656 -302557141 -134566445 -525042513 -617604642 --194139867 -765201825 -431891381 -502433153 -419230839 -940583637 -435951720 -251338827 -557889182 -556371640 -426223360 -90420491 -107798493 --206229933 -137734002 -185635543 -598329253 -747856098 -427672779 -945652231 -585588896 --693025442 -586376846 -268444329 -896838911 -361580943 -606032021 --874095874 -310472433 -22943004 -80298111 -57708155 --120700326 -847766779 --420014718 -130205456 --397337977 -255555083 -941248388 --794932279 -597574503 -684162301 -465144862 --788784330 -912199544 -315380734 --899224703 -66595353 --345156616 -418847214 -379745122 -99470106 --866867472 -299588866 --99577471 -629519425 -641335489 -831356774 -23688461 -969953257 --433600237 -775060069 --83399133 -321318850 -314461509 -319139749 -604058809 -972186955 -449619260 -578880816 -902893160 -269626976 -437171812 --775345478 -62877722 --289456581 -792221110 -244724249 -251659446 -231855415 --237048324 -528137172 -487271706 -510197948 -344627555 -869021794 --455320102 -116198134 -683539221 --805117208 -740723688 --948168276 -41558660 --39088080 -10914724 -841302954 --295126949 -634324161 -136515366 -184333063 -83118028 --924276002 -478105692 --713283141 -533592274 --367493710 -457547513 -800987345 -121521036 --756457915 -505290344 -696946945 -524075577 -49646142 -864948723 -710119376 -262747290 -545979398 -656329830 -550722202 --805496699 -629748931 --119864184 -226658267 -752643325 -227212081 -387794123 -178092967 -383357602 -511533644 -989310866 -585188133 -205736771 --365861374 -791338218 -166000344 -610787361 -720183839 --820747370 -912650310 -831714515 -241502797 -609548140 -23480842 -42264486 -267722698 -780563140 -970175596 -589090346 -205718013 --127131022 -328461134 --818359002 -45046984 -264380699 --828288741 -967539121 -110823397 --587725926 -560575369 -634152737 -515122525 --402153231 -305776074 --191046086 -461324700 --748747295 -228747348 -757210635 --764681129 -936585539 --539657547 -540806210 --305156349 -553772253 -223501293 -852552783 -329816700 --435996754 -152407266 -768372308 --101984388 -876600514 -95331757 --851902274 -531573089 -512746272 -496458590 -931780541 --895967765 -599682667 -503235183 -811846108 --714842611 -422488296 -922119846 --7708027 -380795904 -717972135 -202134206 --167562698 -209452256 --13902429 -311964869 -308578677 -422659050 --650144146 -161348856 -594815478 -785140577 -530692150 --441850141 -770940756 -31082789 -312460996 -858282548 -52221525 -649079449 --591499139 -353438111 --293291323 -431314278 -103766093 --781217506 -690055839 -67749007 -490686703 --956162581 -843933606 -762674260 -393854188 --163307149 -785412239 -219119066 -920510689 -582167520 -406985767 --24021074 -859789509 -444589323 --61996993 -998321452 -883735616 -605638059 --88254194 -163289456 --155133800 -366482240 -628733845 -698989079 -452889069 -795062493 --345603031 -637518246 -494755777 -513429574 -176930341 -997551063 -979733023 -175137798 -724201747 --812933115 -115751429 --663171363 -865183140 -394668408 -112363563 -790198724 -728718137 -581050404 -464790881 -725713904 --231682158 -267367916 -883497006 -453342502 -412090921 -395229191 --711285636 -688646664 -451753679 --538690696 -555230666 -790057519 -836820020 -796475305 -612434253 --592345358 -117467580 -387357647 --533684672 -417524063 -455910666 -757872225 -593415526 --384479866 -43671573 -212089505 -149258656 -444193350 -544021331 -520104870 -811118998 -36143592 --131448947 -537230685 -101449930 -579330473 -28672520 -187931624 -807232276 -83538107 --466586852 -433984598 --488052347 -951921493 -574582429 -565958056 -66171092 -205585618 -28904686 -384691034 -577591703 -313323270 -433518536 --72694195 -883641010 -669385053 --798293302 -649314361 -967171071 -997617794 -623124573 -438579767 -509817363 -117083545 -355210656 --47612269 -357769112 --974596646 -733797155 -9518339 -495837737 -587612674 -675834132 -381983638 -786829088 -178905324 -518296445 --755723735 -600151147 -570581532 --456933937 -22959736 -998166839 --141124249 -191497446 -699142519 --60127595 -267590271 -398499413 --827642788 -309569596 --477141774 -558910985 -380641634 -579242290 -138953528 -491259114 -846980115 --587667065 -767398573 --907653251 -565633925 -145380458 -757956663 --287125009 -355316569 -281149936 --519725852 -398448235 -114130690 --444963311 -474390819 -94777802 --432828620 -672623521 --225816914 -506220469 -585174374 -639525578 -242505518 --9271060 -535561258 --605785292 -636873507 -491952784 --747000520 -370032875 -65424985 -687198643 --976359317 -921742666 --605779967 -234180875 -780180914 -481404624 --265037884 -240119852 -163099681 -331900046 --906006117 -720066626 --571149767 -423797479 --538206366 -930307452 -484064430 -7812381 -659501256 -440889674 -214208742 --281609532 -297737810 --134696814 -558619202 --880197797 -608529268 -767554868 -29825584 -743398451 -935551650 -406662389 --5361279 -955877591 -956461098 -425122314 --699170783 -856239360 -803274999 -983439151 -514642393 -244345168 -973346819 -427330508 --724766371 -86887783 -779941346 -316966552 -948533183 -205933206 -49651396 -993143895 -166470053 -376158547 --594911451 -538344208 -311029724 -598610948 --337466106 -500433237 -598362906 --802391734 -689417750 --61749919 -506029777 -326317302 -810883451 -948958553 -946004743 --14173442 -994146232 -850608090 --461660979 -814202694 --59701597 -848897261 -173807379 -415222365 -549524204 -196952990 --970940438 -266346762 -411113322 -13782440 -939308061 -699623361 --468349938 -221054287 -517398225 -626151330 -366657383 --396780613 -581991344 -547535806 -413166355 -983828014 -517602729 --445166836 -564134590 -656309051 --799538162 -441632922 --440371072 -42990978 -297519290 --163178958 -836764822 -456923925 -826774397 --262013084 -493632463 -667293659 --838711204 -769972320 --56806265 -93254880 -553316187 -934191513 -182256714 -926214235 -945506949 -807464172 -153694894 --743581828 -523910856 -410285550 -952586868 --870239280 -816571036 -78348869 -310522245 -128361682 -644390636 -993610863 -845590536 -456921868 -567562563 --706638894 -627405351 --559250862 -857466183 -469062014 -525544501 --105724206 -465045230 -580059162 --18030670 -358548995 --224428206 -369326421 -369903175 -701092582 -403512116 -855694757 --293962837 -125558605 -850961520 --737288149 -801362210 -199631612 -96592797 --300255710 -760874938 -533665483 -572025482 -494326431 -873041906 -118839236 -360611395 -415285040 --984560158 -650587690 --619279396 -848232276 --593121180 -193265809 -551963327 -447852576 -591597753 -649572669 --352824866 -408615799 -140062565 --598403902 -177627549 -502592233 --994042106 -711632191 --228032109 -573122646 -636873710 -925131691 -355821145 -545161083 -51160654 -863898788 -757754910 -541048230 --767186099 -150623191 -503395337 --39125134 -653364554 -349196406 -34410067 --340648931 -257960704 --140289789 -410551186 -142029699 -312395902 -166108522 --343038304 -145760492 -482228119 -206730921 -635469006 --388851836 -113794895 -509337386 -68665737 -660347939 -769609126 -974889926 --546989857 -370674495 -709236371 -816799873 --817700438 -478199466 -530206510 -803370252 -617196307 --893005663 -334657374 -394743832 -855886819 --965226387 -773907899 -626532132 -61929148 -103281558 --714612844 -351373863 -413987738 -721073245 -822966009 --688645398 -364746512 -41307856 --462952372 -446083230 --377133615 -561917065 -844301652 --120868012 -754862885 -821337162 --497774087 -98106480 --4296671 -648870902 -522491858 -974423831 --484087674 -155773495 -513863263 -727751456 --435554761 -145147651 --465420943 -558671290 -114255473 -733568053 -87614651 -231013857 -297995026 -460127869 --434161606 -942016743 -796276394 -831129 -161101348 -74417386 -362800911 -349047980 --286840713 -862005743 -192114021 -972155989 -658905526 -590956505 -261490951 -468761634 -98149246 -809763006 --307959250 -219934571 -642975779 -860981444 -106569849 --9841157 -857607821 --394305297 -107403433 --878306065 -786300879 --856309668 -734491173 --119550098 -854466308 -227084237 -910161457 -645508129 --117991905 -495357565 -878497755 -818299393 -361485746 --552434765 -781017550 -150638764 -726243773 --510397594 -263784134 --932291952 -866566074 --813462688 -798851337 -195230057 -759746117 --400997244 -822827657 -954595075 -571200175 --914223141 -260591490 -512136342 -73786162 -127416321 -876449555 --655682238 -429788123 -38951881 --70976090 -620975847 -429755643 -322387027 --184545354 -398981209 -225896134 -806554457 -926697324 -615245740 -967017758 -548714893 -524729388 -739887642 --379019706 -423831254 -654640391 -739575408 --55079665 -982370486 --6797678 -416044590 -87051153 --868349144 -326860620 --141083325 -799642975 --767714203 -150095104 -653392588 -386082070 --247380269 -46516451 -295346802 -692702735 --943354469 -491951744 -229168947 --552923071 -817596828 -516685004 -508510746 --84433384 -686236637 -602834448 -460186744 -429556773 --866949649 -468796836 --190954815 -507011943 -570141854 -792587798 -459530238 --361027549 -406021895 --196919040 -951233389 -297082726 -47120278 -838353219 --231644189 -970605585 --192014542 -520712661 -487613955 -411048055 --605313489 -334792744 -653543798 -215047303 -84112745 -211914567 -463620633 -839885078 -459358788 --922045967 -46042310 --364423905 -799647402 -917668302 -862336115 -999663709 -702856607 --777425682 -511067644 -402691772 -356375284 --504571543 -803541932 --263732688 -740790428 --47449423 -82088737 -691335119 --972510875 -68472574 -842936479 -796308542 -615567114 -584822514 --962676288 -33469407 -156810939 --944490307 -40564581 -795912180 --170923635 -906246626 --53489097 -826271105 --641703497 -512002225 -981874738 -543778203 --263656197 -621219013 --951220221 -676100637 -773064109 -294626672 -756545389 -638650550 -69296795 -377954886 -503221359 -593760873 -518028480 --765397871 -828000436 -919100016 -920020019 --810889662 -606857881 -446863549 --826245956 -314495291 -630914584 --763698518 -401021996 -518528726 -173061352 -844955204 --629819375 -381529557 -889888157 --287386211 -197309588 -960283235 --845459262 -669425389 -537736024 -868703760 -504477254 --895674884 -685309728 -297773436 --124636586 -357428831 -977216022 -72897876 --49777838 -885059670 -221608271 -614163891 --937258907 -422646319 -199361574 --587415263 -171981500 -973699879 -499406106 --25069937 -958606551 -623359177 --618463378 -69262095 -277916462 -44488115 -625813157 -510838172 -839724669 -628899689 --96950720 -316602382 -193383382 --202918766 -137735976 --380759236 -453053877 -825166176 -851115216 --149636406 -1526383 -467987564 -816445932 --367533151 -923240428 --983192533 -983909946 -44318490 -571915392 -745916790 -886205822 -386989495 -848468762 --283262339 -106278813 -867648162 --181765173 -203846670 --516767825 -350089803 -546527077 -547623937 -169476222 --783925075 -568686673 -18420611 -181731540 --25664810 -580618209 --336041406 -370076899 -169269527 -303431987 -794921872 --324203516 -534135904 -157297430 --786559081 -85855919 -183910135 -258514625 -516024404 --31338616 -68813085 -588330228 -233297658 --183350101 -336895566 -867064445 -224647401 -514168165 -585211974 -901342206 -202736419 --115264450 -794115225 -48271900 -140384292 --992636417 -120895853 -584626314 -394023508 -106222343 --45046984 -314770402 -155664946 -13761708 -552451585 -471992576 --260685474 -74038411 --158105175 -967274433 -21850816 --729751137 -209150486 -478542656 -440794726 -648396462 -529231650 --203348973 -948201212 --472907418 -685185341 -522759723 -654798727 --5646264 -134677264 -898735974 -56506076 --165180364 -974221680 -221762441 -34356417 --653221830 -749152181 -174125518 -960814523 --191535114 -862385316 -438511906 -153547908 -282313736 -90994911 --125015164 -140994529 -917556912 -662858515 -698251107 -508919292 --984434385 -418424229 -143539700 -110418750 -669387313 --393816914 -234314140 -729419033 --164462427 -403356286 -444260772 --218045506 -412565761 -548911149 -262860795 -822907330 -889360306 -554719622 -187380690 -883137562 -628305688 -482804710 -238598288 -635087921 -133444409 -190493892 -452663958 -937559016 -494205905 -141863073 -909526245 --280629120 -662467075 -46695374 -396156301 -645358058 -198785977 -629811458 -27732611 -671797154 -599632663 -960167757 -373692567 --287802406 -128033905 --169731493 -49933564 --303203132 -935733380 --521804001 -307954292 --680126804 -940034963 -489072264 -317384174 -36985457 --631304766 -7236012 -859457073 -858776394 -820197111 --928983350 -466838597 -891119417 -942207601 -873427696 -144398162 -403821366 -134428152 -549223800 --550721444 -748970231 -994779465 -384306622 -180399751 --89493253 -265642428 -536980970 -589357872 -913249584 -112276673 --307477916 -626477976 -179425015 --15783270 -155838514 -334707708 -732587260 -746771562 -915611308 -327860358 -325952277 --882674236 -154560962 --627485728 -694502367 -38735518 --527011422 -72431252 -149940874 --131392367 -805120587 -176679437 -929431215 -745117528 -870172415 -175171084 --916057039 -796400331 -247239523 -122986927 --367563835 -820963436 --482442096 -436601363 -408623937 -13348051 --795926332 -533117441 -353689235 -844359130 --70408934 -354361759 -492201050 --575757563 -460194441 --14694745 -908467528 -757118585 -250668545 --81921409 -475430822 --720609788 -215424637 --751421125 -906170997 -565100518 -383770992 -538735735 -805566735 -995663333 -542834128 -733179309 -574043065 -453497059 -59712089 -887591074 -971143167 --43671573 -793065351 --745853561 -72555070 --970325779 -666653639 --837212929 -404150186 --614483293 -144535552 -123199402 --93752477 -760990732 -469870629 -966753616 --770195142 -107320457 -451523928 -670832425 --962756534 -41304703 -360561998 -289348723 -602430653 --308256013 -915332879 --864322555 -465531643 -807684075 -187037454 -452475586 -829967204 -494444167 --401832420 -27420116 -377998809 -381834788 -887986433 -107100514 --147959364 -372983956 -98399009 -836574358 --582274669 -781712564 -339120632 --463715653 -35852400 --335683784 -86324592 -321698463 -499374551 -58337901 -905625965 -34672680 -969236117 -245495690 -889814962 -413542616 -105434519 -855936767 --554728375 -989209143 -586248485 -373989882 -63360196 -379881328 -915569107 -423520713 --804683440 -360306946 --335255732 -413051819 --974878651 -175266689 -467483334 --791038957 -114270780 -311643646 -102412015 --299720450 -657987070 -428424373 -428100588 -988625726 -232919577 -161350196 --85087265 -223864985 --688275559 -457132545 -110213835 -257714560 -495822150 --828826639 -624086815 -711197482 -457650381 --830981523 -188150268 -983425052 --838807782 -13342200 --154532296 -87908667 --783491891 -766945384 -321162090 -851561783 -343647802 -339178875 --408607911 -63753550 --220907792 -367071975 -353073820 -303460377 -21795140 --919947350 -268775169 -37898678 -510819149 -32714719 -725793653 -569585110 --753937769 -678346005 --374379007 -129388143 -857711256 -114433963 -566312242 -581828777 -132081190 --192864643 -334266758 --206589303 -176560975 -932890239 -659634845 --692850856 -584548353 --921546759 -471703504 --812618869 -611720728 -71456762 -565823142 -735648618 -918651444 -430806887 -973086635 --872290488 -891891593 -570244756 --877973479 -265722388 -311477350 -487298753 --464504563 -387828859 -844631583 --359838783 -42271943 -494544162 -50409280 -317028844 --311242204 -327313769 -968309780 -684538662 -167442323 --841513617 -71724312 -822035858 -37940221 -439368735 --168334963 -267083351 --80111429 -691267377 --138804894 -907110960 --273829992 -570300594 -309849032 -228122123 -542882387 --957789202 -736217200 --70417875 -373557056 -570344505 -871470297 -791092249 --480682673 -595597712 -704708647 --225367388 -816677215 -12248795 -963676421 --137080025 -127439230 --522070769 -45893420 -218698655 -123791657 -542874118 -963309364 -862760702 --530537974 -998809595 -81517013 -638763309 -914724103 -581467144 -879466366 -89154642 -999606891 -515566460 -434862689 -384691633 -937575153 --795860516 -10238129 -365900588 --9247573 -562184922 -77135823 -50189163 -60384181 -583422542 -206782856 -435027445 -878274590 -14088964 --371104413 -425531240 -714868770 -329027293 --934709990 -367988910 -120186078 --356667889 -811057776 --775211840 -288445504 -200921643 -374333903 --205966536 -711950277 --267508498 -863553322 -629613749 --863050344 -429304292 -891485968 -3234805 -276179141 -262084015 -21255264 -428421339 -710271852 --984795064 -763144568 -746035388 -818933025 --100359092 -487677789 -481122061 -228177981 -708030231 --447056896 -30789794 --460186744 -662879308 --440007559 -324383265 --676209022 -511835956 -243018803 -487540410 -151524038 -803548463 -382884426 -193614008 -11257247 --403765210 -295091088 --282185425 -113816194 --66360415 -904326602 -443597180 -779735817 -547070993 -779051553 -423950789 -101830382 -532970254 --651033812 -384446778 -370820866 -891940187 --222032968 -461746942 -326326276 --260456076 -89855149 -136170242 -399300838 -54353170 -115106816 -746434496 -575212950 -465075389 -299233899 -390334830 -657698516 -333560648 -610394506 -74687761 --716325706 -961478380 --421186835 -37381774 -73613202 -970624327 -61093355 -838339543 -18970204 -970303265 --916209 -289301633 -986887513 -60135459 -768981800 --315046451 -663073772 -823744570 -958198818 -905018361 -564198275 --677372111 -592439341 -773593725 -889248917 -902313120 --246560229 -842417786 -847103613 -877536606 -706601674 -57534342 -549486081 -659863687 --440705449 -238525164 -443192837 -381016066 --489662363 -524256594 --41089703 -145277650 -147415317 --673597510 -525078682 -460725985 -341183082 --676317124 -173522092 -878534580 -508522850 -811261467 -396979304 -996024778 --723776593 -112025522 -975975584 -248858676 -182072110 --968184262 -103334742 -507287164 -392501028 -85073179 --203848616 -594222029 -674412415 -364483698 -372380657 -193926533 -377882186 -630476115 -74048563 -975677246 -894398070 --508109035 -953330549 -208958073 --976721335 -478457772 --721838792 -535147190 -311336932 -849140373 --75179650 -27181782 --161400967 -289356735 -895235527 --921452059 -947605289 -396785952 -696656822 -829792546 -622336796 -518692797 -67317319 -20068987 --479286750 -879786543 -447428434 --18743959 -74744529 -623824724 -613349589 --503324830 -838794398 -458187222 -883438435 --940665848 -393882260 -338543119 -77333993 --252750426 -344279810 -750344929 -773648984 -391964577 -131199828 -550014284 -610041189 -102717528 --179592176 -73327773 -633986132 -234088457 -738390094 -40450642 --326839061 -181745947 -419074604 -265346936 -440352434 --779883469 -211219109 -969673148 --538059495 -393728159 -792984637 --182971732 -803536327 --683914945 -242307702 -613600070 -912723448 -262448098 -469336189 -10403065 -475804730 --964795864 -954433954 --586274401 -873662373 -610331696 --181615619 -380380405 --878471429 -480158606 -916047890 -881305441 --934356636 -721920135 -141355909 -887766888 -225425189 -386184621 -504900837 --900394948 -57333113 -376477444 -523768657 --837172058 -757541058 -609821948 -989096755 --159315978 -144508853 -791345659 --302503287 -573061884 -177840473 -986836587 -776685640 --510358373 -548413988 --996518478 -829413009 -248525986 -913393911 -755437800 -786986722 --247588353 -935739274 -366098348 --264965602 -894390114 -949878183 --227511583 -64367280 -965711012 -433903988 -757784488 --171309056 -525763308 --359672392 -432218505 -748481718 -178133257 -930705053 --242066913 -953387518 -338493686 -475179058 --760329609 -19722660 -39797674 -82059671 -185809798 -197460188 -42141454 -744763511 --175162387 -464798211 --911929795 -840239416 -645010715 -995938727 -495607799 -398389607 -101989892 -444646514 -624007880 -2092207 -753844703 -689232707 -739349932 --4211454 -350153120 -177724198 -419915409 -113064533 -168884506 -813458056 -821795448 -506463609 -611338054 -951038336 -690367576 --500866719 -990233567 -846864022 --549413378 -866657262 -270761353 -339523638 --91475944 -420304005 -834427981 -718798417 -217163096 -161060417 -4230015 -323681315 --102012313 -31620331 --858568735 -45801431 -709430171 -272134985 -210982086 -177863116 -521557711 -926640782 -471792422 --578666977 -446038324 -650724046 -331629743 -626852346 -575163642 -224279058 -980755342 -566334924 -782842296 --891936940 -12516846 -987034054 -993868782 -412727618 --83375604 -819992577 -467201190 --33172079 -364907998 -450778516 -434829009 --946999557 -485968402 -639936073 -290963110 -479192662 -822451077 -95477080 -341133258 -384297539 --982115511 -421877701 -75686331 --227007 -585301301 -589590468 -567418125 --736285268 -830715190 -376809415 --339486421 -217917160 --210046138 -509918625 -406903154 -830925051 -148432361 --400558078 -135245304 -568326242 -616937374 -951481061 -218344756 -636668145 --703099255 -722053988 -884980451 --921562718 -980573289 -275021671 --387847490 -890873650 -17575364 -143316285 -42458762 -674899010 -904175711 -233936076 -114432565 -357162897 --494544162 -101967683 -573192761 -978840200 -633289069 -90481940 -30785051 --245542236 -472110788 -527737590 -453390347 -827786903 -175455218 --338814600 -354340718 --361748021 -97460040 -456979753 -567680919 -966168636 --692761279 -818611553 --850176721 -760440673 -508479214 --559603137 -742156558 -91843523 -750500194 --395299808 -256951114 -672103453 -233153490 -739001399 --589100388 -193200810 --222436306 -21861308 -807954743 -718410266 -920082700 -986901570 -816688272 -41157842 -931213583 -593025661 -553262317 -915145152 -215321028 -725047906 --862424507 -957344580 --842882232 -505078218 -417252803 -829044399 --800779999 -241690506 --379393156 -411412763 -786006419 -553863558 --856667229 -717431688 -383526107 -636599938 -777394713 -394912774 -455494049 -243226260 --783718970 -127763674 --499501382 -550842883 -94600231 --784617135 -278641919 -993029661 -677301831 --562249159 -377630917 -275280329 -59747075 -703708240 -428900721 --35231686 -958267048 -341834056 -694369038 --333293791 -480376255 -277111854 -553124552 -736749955 -87618263 -113003726 -205533334 --401483947 -131360709 -228321047 --946004743 -97174514 -625342364 -7676860 --766117983 -220484443 -612559075 -92742073 -346326927 --502759834 -908787439 -771856626 --953143583 -666749787 --263181424 -281573830 -372643640 -381686510 -712028172 --432036603 -866972056 -83814275 -419004000 -339801737 -75389463 -325422423 -91561508 -335112870 -117725321 -823111758 -268439447 --223395612 -258784179 --202134206 -585647157 -541007901 -877360729 --588839972 -490577118 -960443465 -145053890 -553063353 --234905521 -125465989 --497423674 -118968196 --880146484 -937477962 -994894583 -292250606 -986347073 -872534621 -162226136 -489968124 -723041861 -528161526 -286577672 -503901518 -214650209 -515231028 -12997531 -481229788 -312927411 -232340327 -16096118 -115821668 --207321535 -464756655 -994314547 -180336078 --772161908 -892468862 -484407081 -673097168 -818052558 -395018128 --725689858 -342696701 -971713076 -611825749 -536610361 --581859796 -317588979 -79513459 -801976250 -648594282 -701165318 -842205750 -3743818 -119532151 -532815568 -254427275 --564711887 -360818333 -692292508 -958606809 --260193144 -391013195 --970341875 -976334478 --302768611 -114332925 -671459902 -790620714 -345515718 -361996198 -294747356 -923649099 -944279789 --484008792 -428269702 -375803328 --404469501 -744344171 -612221718 --836095961 -249639129 -578072977 -198368981 -679037993 -982837702 -689592154 -622844015 --162654276 -389643249 -925582696 -763724475 --169330288 -759373813 -746448581 -635182302 --73888927 -893325380 --576116507 -876586789 -379330065 --69545516 -843743371 -185342340 -7782968 --550888240 -635220190 --786975102 -271821312 --641385227 -150825798 -986861440 --796337580 -168189563 -387195213 -874052883 -401271764 -7845986 --93945887 -159378596 --279016329 -966651984 -791845871 -376552820 -115904433 -70832027 --267382376 -730952988 -270235987 -984374302 --327463345 -636673864 -90561911 --744205711 -951371529 -317433293 -298869348 -945759235 --185018638 -976608896 --627404939 -955716161 -548561471 -211257469 -634597734 -527519539 -277186077 -736762104 -792158650 -806385744 -412353008 --842992346 -710047361 -459179350 -377882163 -761058927 -159653493 -103075220 -166148617 -494011627 --658012535 -625603402 -821143188 --589939973 -940997745 -404619066 -335499572 -230915536 -161789157 -793587385 --421032334 -8770827 --167352708 -269139582 --380053963 -588425540 -645074880 -290459977 --772933479 -987098237 -584210083 -54129592 --948138915 -928178094 -886242379 -229738381 -298175978 -774352500 -239469446 -446663728 -178181654 -87291624 -999087973 -186844190 -597137691 --833833233 -38518060 -586248843 -962507378 -808593354 -130499285 -930116351 -479854715 -431121416 -525288647 -532718470 -444746119 -775660117 -19425574 --921352447 -790853177 -985362515 --769519293 -431864207 -258559445 -264245307 -334357503 --72210673 -621666917 -363979839 -543747454 --942562672 -149198561 -227835677 -184081858 --790359330 -350717422 -515870925 -765298556 --509945568 -281337081 -624778665 -131214616 --739887642 -731804652 -276330287 -424891207 -734244514 -172293860 -955585323 --451572340 -467470868 -985589585 -135443079 --296401561 -559637699 --706454700 -480715849 -170573544 --951911512 -346802634 -418704075 --165986405 -468814537 -242977634 -837798700 -564682252 -140087519 -2115654 -529157118 --540844038 -954123269 -589562964 -184409406 -806239739 -357039241 -731633074 -572921114 --879141324 -763321377 -799260440 --113843398 -547601706 --497604512 -988783164 --68152017 -989129570 -947280594 -767081381 -137802613 -854922625 -997502493 -793512632 -304840870 -506481270 --852864567 -113460288 -363970957 -33539646 --849703672 -165752683 -303624463 -941549765 -544831313 --106733033 -612416127 -541498778 -985101884 --27468050 -825046858 --118801543 -399943889 --203221299 -35897290 -661450000 --239155228 -444302685 --742619025 -854592418 --78483532 -169690804 -712596527 --210982086 -724837096 -728387023 -289817629 -178890492 --73786162 -905786487 --843937958 -351565709 -943841671 --625466320 -735643694 -22639616 -173444492 -72204883 -402398699 -651532143 --296525572 -296635582 -102272525 -982921566 -202606444 -689785906 -15966869 -820228427 -617747138 -511299182 -75551575 --255282107 -975635784 -432399197 -902844162 -125502765 -26635182 -662049654 -432521250 -16566162 -149320840 --160469274 -772139295 --580977944 -779178178 -726660925 --310558632 -522278529 -619796152 -121881890 -684608748 -679482078 -978501092 -484703571 --182986070 -10270359 --193568624 -35989893 -446681224 --535047500 -421588203 -12783117 -427947572 -47068805 --666891466 -158614957 -79375875 --383892323 -637924801 -620903088 -802981776 -516896252 --759770509 -412687865 -583221951 -449480369 -24633362 -475844800 -24384185 -46390009 --911968085 -991554432 -26694050 --171125076 -194588878 -732118176 --417435870 -914636289 -365205772 -290194278 -612436024 --559001975 -662663027 -684989731 -909541399 -185496563 -267118511 -843427964 -328658386 --760602518 -492255220 -292285477 -636159977 -991340867 -564899459 --782854862 -109004462 -459218751 -132614676 --862100764 -660478509 -544277639 --127399926 -38358619 -26299316 -4336353 -529725116 -641980036 --948605635 -371875166 -35660533 -462365010 --668161477 -251877366 -606723448 -795439540 --769366941 -676680028 -255075918 --681556243 -54680005 -715413909 --954595075 -390969097 -349507016 -932865137 --378809117 -153810964 -457003234 --116405878 -443412244 -286641119 -315938990 --942442775 -873596693 --560983782 -613299215 -415026600 --965575542 -110004799 --840834095 -533250169 -922086999 -685162622 -549716015 -779266096 -990090321 -491000610 --410820870 -350870224 --58178436 -872280725 -817302427 -727233048 -823190575 -574917830 --549498523 -383319934 --796725499 -764143589 --211667436 -301734606 --355609959 -366218029 -293630244 -464114813 -750668714 -127729930 -178815704 -110583582 -52168213 -149274854 --642759874 -237678457 -572043914 --861624581 -156352306 -40993802 -237155124 -578804770 -457597045 -787364998 -549905001 -704870285 -410988643 -954958206 --625402300 -627498133 -359413929 -733344082 -569486658 -901296375 --989232560 -374367335 -729234314 -502257914 -624858510 -573835288 -45912397 --206895373 -915037361 -108429511 --779927413 -354739266 -262397822 -747435202 -889109252 -128760791 --294747356 -752975082 -610792437 -285522470 -298243615 -944035308 --480793382 -913016014 -142639196 -169646374 -597785641 -503802212 --596942024 -785280970 -202321280 -815445251 -266410914 -381818263 -202269821 -666322008 -235503788 --217163657 -741317048 -459158561 -448107721 -628657535 -825451031 --716042958 -532811310 -279332731 -646759926 -453197336 --373692567 -288971219 -72911717 -718817429 --204271580 -221804324 --154943655 -6900827 -249511853 -180860614 -897273666 -289340773 -220588021 --894133680 -169900143 -379758951 -821045327 -376035729 -868677730 -156802470 --597508212 -504916794 -481089074 --253576375 -171241754 -741053636 --544904592 -989326283 -645049138 -168119560 --201032957 -588926574 -104898499 --581476532 -588571898 --231013736 -580867439 --471992576 -850969877 -378509010 --318226435 -422065674 -560376697 -794790053 -510478715 -293096248 -531345480 -874732881 --983184022 -834270621 -188928987 -806446187 -230261954 -675235118 --744284526 -637311009 -11360895 --535138067 -303158070 -623848477 -45624752 --551922411 -597925045 -661138804 -74802863 -52896407 -68127692 -283612944 -168955770 --89305765 -911444174 -606626348 --580746433 -963834793 -546065960 -475413628 -128854205 -597731124 -611399074 -72618464 -632987470 --508762974 -421598826 -169179160 -824088868 -777831926 -373226255 -115946685 -259332559 --453926875 -936388158 --521557711 -859063537 -486082519 --518186631 -143126148 --85658298 -167586663 --141072496 -676764273 -392280126 --584949958 -584860447 -315447585 --171241754 -770646984 -369515148 -833966686 -193990536 -446055451 -525306196 -989506833 -880187405 -538684832 -798754914 -362096863 -655568199 -709640036 -745001563 --212274816 -391044865 -179970809 -220747857 -162986055 -413557458 -321613904 -799508093 --509290947 -502301731 -473140736 -75778879 -514862602 --852242333 -778980360 --865530280 -75953038 -122044965 --138216908 -450811257 -630384590 -627981855 -50708722 -849524536 -7958880 --187531397 -421721188 --69668790 -179712272 -936027388 -144097617 -764232424 -925990354 -370168964 --50524901 -6099151 -70211396 -817619527 -880250550 --342131461 -39337913 --36723734 -461788499 -35357030 -879831098 -306740461 -511394198 -396847985 --184343316 -892853154 -556780627 --680494791 -377815283 -947844110 -59554355 -227803191 -443331761 -869788397 -18314163 --968992515 -710163259 -186620027 --873205447 -419616674 -252355217 -928469643 -403712182 -411425714 -915209227 -580731716 -997452351 --587336435 -28820291 --39123020 -338796688 -401083624 -947201882 --239775777 -289845792 -841333784 --855078043 -916873102 -316715947 -615415576 -286903387 -919625668 -863339779 -931792411 --581137936 -985302421 -133517908 --939270090 -70587171 -220514502 -755725749 -464728835 -401163825 -596224637 --157183633 -508839255 --638253958 -144126219 --379246482 -935454177 -792452350 -563372419 -920951865 -66790368 -154473446 -865146057 -312756898 -937722437 -285139113 --241124722 -683884569 -544719472 -877228349 -939238774 -233456041 -246712889 -70089166 -441773947 --958314117 -600911238 -814929406 --401361912 -526198020 -565819505 -479183516 -708015323 -95157615 --344855440 -874870242 -946939674 --661890745 -580478223 -793352112 -323632551 -297624727 --56736708 -637751651 -81312870 --715653801 -944323263 -969884904 -572813492 -543779518 --26374986 -19788525 --198803066 -912705524 --17432897 -318470439 -909515887 --804369291 -925079758 -785838007 -221254118 -102924606 -177288029 -24696138 --281686027 -896492232 -265169499 --114607443 -298456929 -668707767 -236504399 --875397370 -865909461 --288517199 -545244090 --688854248 -9686244 -777325324 -771848065 -216324603 -799378868 -694180831 -391837935 --216793013 -376733452 -948061216 -894460779 -692917508 -421324661 -702192332 -566570826 -55184592 -596007202 -905083018 --963507407 -736503424 -732228618 -619827682 -531135906 -843505380 -413036439 -915796838 -338914683 -247656094 -785128080 -756222792 -304028703 -386596273 -939266296 -740046059 -754792255 -596204220 -751699655 -531298369 -634729067 -473826996 -503836572 -245074135 -667939400 --478542656 -806908441 -844171547 --145053890 -37169006 --724316376 -27992902 -590459139 -81049335 -804336330 --659394298 -284918568 -649868691 --717525194 -443299217 -111219840 -898356328 --206622560 -531591010 -931694864 -943077255 -282260384 --749496643 -953036440 --641116725 -335877209 -819735533 -310271340 -497685809 -921994132 -204597540 -893523997 -978404813 -128504535 -621362154 --303780803 -814110532 -902192726 -700882743 --659684551 -964498061 -653984435 --261721390 -548222740 --154121453 -441958633 --526837244 -883401289 -410736525 -289719636 --369425039 -28884471 -54667690 -187287638 --681258395 -486290514 -743858217 -424609915 -631194543 -189511561 -802681782 -747195144 --193241658 -667465402 -331511084 -506345469 -621251724 -135853353 -66122134 -255609488 -232662169 --310100484 -982892165 -544706020 -820848752 -298348049 -820488863 -446001418 -520498996 -27508578 -202030273 --223087956 -173180940 -545877618 -731390546 -212093382 -890974713 -157885468 --357759526 -592939293 --941054145 -797436271 -424691021 -43562289 -888389119 -968623514 --739064680 -832505673 -752808058 --860940530 -292054958 --672734286 -772013295 -652882020 -559727145 -887612471 --329300944 -530949992 -849959796 -45612319 -958557035 -10350770 -343082113 -943507979 -825739026 -909359857 --351957449 -671572305 -702071237 -355946215 --953084217 -976401264 -659409784 --660372096 -851193015 -265034240 --622694052 -227505913 -166447004 -414000153 -440011677 -940904987 -49036036 -824978344 -550130416 -311160969 -413552437 -779394292 -629234372 --180126142 -597056806 -220243649 -996161807 -141238248 -449946285 -997493573 -319476038 -798645534 -999128450 -368147078 -851754768 -129712104 --268313625 -847904797 --189102215 -403571696 -539388292 -75473985 -258734732 --520407650 -78042848 -558722935 -836010250 -24979529 -586635174 --854882593 -497165021 --282749853 -934423293 -865077187 --27508578 -983280281 -854495852 -818039642 -343867084 -697220720 -348914696 --707570441 -500783705 -938356902 --401698161 -948582414 -780135317 -195499741 -762057252 -719151098 -289247009 -613786396 --227293917 -313152933 -82606311 -768094848 -5143570 -861994396 -845851002 -81604943 --65507041 -564533011 --99064954 -938618226 --568301438 -978836808 -757923043 --689355597 -505392127 --873374219 -119062226 --583641753 -727902446 -679808526 -624538993 -724725093 -760084843 --722892649 -2264752 --980927821 -354638104 -446193002 --154055450 -981176166 -32285347 --181425925 -337405655 -145415796 -729366486 -694895598 -347226285 -976229649 -898191038 -327209384 -40822308 -886738122 -170788357 -226864676 --985374624 -317738027 -811858039 --964978716 -712226206 -495849041 -723623733 -105502512 -299092613 -365207403 -913414019 -567761213 -970250682 -50714417 -779393761 -911039678 --43655681 -451222037 -983476052 -134284541 -400760352 -103951476 --537781085 -115446138 -353473675 -485234982 -275513017 -566870526 -398394161 -284483963 -572394281 --9045606 -102179478 -193593814 --584379194 -813500403 -89672139 -130323119 -459805925 -961472077 -619523527 -255352248 --71724312 -703911474 --796142270 -754903119 --45220779 -446103196 --764146127 -694330213 -278209277 -722295009 -897793955 -722502427 -407617518 -885740519 -507902815 -734628711 -711061798 -313840162 --17415071 -944649332 -357142638 --291998721 -107017320 --600204673 -847200017 -290728042 --355234219 -453267690 -667587610 -746800151 -559591689 -734625596 -401390830 -534259661 -161121280 -818587991 --161748326 -232900046 -482084994 -608802666 --922352965 -413891735 --403006163 -883057553 --358010698 -302350363 -923642038 --717570916 -748336094 -296708203 -642521654 -478369165 -785904436 -326026143 -108745224 -899362171 -241662412 -882721648 -451471466 -317508114 --418262183 -361671403 -474939216 -269821747 -907577925 -318693427 -805999033 -819623070 -10637873 -966849319 -199158217 -447072223 --818282603 -783102788 -305550669 -178571333 -778912421 -17069167 -575476498 --636608333 -600026509 -381336646 -480172379 -385194106 -948058723 -419043463 -834735515 -96924006 -477589455 --70101820 -591192491 -977125071 -670342099 -435268299 -490410231 -611672625 --349507016 -456301306 -40335354 --331383793 -466703078 -18329090 -836026921 --952297356 -678930709 -910125294 --765159522 -894125229 --780814355 -62540385 -730871626 -697995757 --511219429 -180496192 -601283170 -217647043 --649050686 -657952461 --261332286 -670116598 -216328494 -443857002 -946342661 -648291451 -654234376 -669001012 --765741823 -835610048 -196151475 -972622722 -275505821 --660207320 -226206858 -655254351 -961592439 --34682124 -504185973 -939779655 -639424789 --495357565 -734297539 --467808565 -330372533 -934123641 -971068860 --919544231 -109988269 -868302457 -937309672 -595064660 --688947883 -276713378 -501472775 -78963195 --254774457 -121558751 --459470809 -339521728 -817506462 -367082964 -694675571 -882381497 -40641245 -698029260 -322064936 -222963882 -231392365 -373038683 -622949193 -326139334 --718049719 -993241883 -342118799 --13519049 -626668134 --560864502 -707589106 -21113203 -330566372 -994968017 --783688277 -990819644 -716468954 -882728844 -715887503 -565380101 -767439366 --285226857 -907668854 -87162303 -806274879 -751603222 --420291425 -812673900 -647938074 -780522045 -301488903 -329957372 -17515320 -231667558 -607685928 -968620985 -803414006 -513251097 -866141140 -888074047 -783429598 -372989673 -792411805 -150585933 -908625543 --445817353 -62613936 -528382994 --949316129 -264090469 --608619384 -345233507 --453231882 -567458160 -106168968 -786732103 -343489784 -848783414 -211113076 -975462476 -378479360 -844679931 -254502292 --869230107 -749994276 -104466285 --408623937 -740587899 --103591550 -505256507 -801905596 -484768605 -58664812 -914583084 -272167687 -240392258 --460894672 -880940723 -510505785 -111867673 -629185218 -285457036 --741183386 -473291701 --204777409 -85254128 --553143529 -822439565 -447515466 -474246272 -75408622 -260304778 -908263190 --69594571 -364118603 --747564307 -628733892 -318142903 --8601465 -410085527 -191675509 -287710985 -708248338 --578564770 -529773332 -337249030 -228547010 -554371758 -40264590 -11055722 -732729405 -14300552 -754703406 -41354479 --912773300 -368050248 -527000837 -433082522 -199561279 -503644954 --525715718 -715473275 --575274724 -437817295 -31557243 -536018782 --943372072 -175373939 -373118218 -707931308 --411568672 -68535992 -119807303 --48919217 -706282310 -285215272 -343751968 -563581587 -141530010 -65910397 -45794074 --788571467 -407290519 -401524566 -125096991 --529597768 -202151757 -669864876 --315642096 -934195785 --840319486 -727131587 -291887926 --530642541 -149895532 -612815737 --129485390 -713847599 -457492902 -683788247 -6979708 --727549365 -112423237 --469540286 -436479631 -517060861 -947763012 -720608943 --93921796 -47990008 --112693669 -127735500 -701724723 --522811984 -809118826 -986760935 -619754335 -788637748 -866635191 -117228239 -535054686 -182749416 --358218273 -485054171 -637839569 -373054223 -250367173 --281943282 -421604689 -125865592 -842230519 -21170547 -196386200 -227462557 -698547078 -459114718 -490592465 -635852260 --994863476 -540840993 -448067220 -341588472 --918893795 -906238662 -597021605 -120623358 -261120480 --348066116 -555103607 -757520659 -76910934 -31841009 -249454551 -487125936 -949811404 -190045140 -963574773 --106278813 -714024595 --317259303 -907357111 --579171234 -670015052 -127482800 -278488711 -158099650 --118010724 -309173369 -878911832 -96291818 -33480950 --763564856 -149095346 --418847214 -280561909 --503181889 -58855507 -526220499 --558568008 -524994697 --380837902 -83272494 -89858490 -368157361 -119426774 -864461615 -190328581 -995009875 --276692507 -371090410 -855440878 --370595326 -300705703 --662480375 -100836998 -395027200 -916803379 -684388174 -401957916 -667917675 -342723066 -477420668 --3607244 -521630731 -618761812 --361050871 -515756507 -503273132 -165349424 -555761817 --519642621 -199079960 -665980343 -517505738 -630651112 -489383773 -498389977 -27524287 -795555779 -707193255 -619475759 --908276391 -177513305 -672300942 --661250699 -287656800 --895702733 -314519164 -473929417 -223866530 -579235372 -749625404 -219422164 -115678344 -869443934 -430534520 -131774299 --468761634 -145635306 -996980403 -62677175 --335033163 -681864967 -598048442 --666179678 -679562635 -467728731 -678631019 -630398337 -151815097 -219303842 -387284708 -247090616 --379558669 -788828614 --135834147 -299797206 -647583540 -398945859 -665068474 -686274356 -592655469 --903134000 -110784802 -13807828 -893553685 -439531197 --719984873 -127347812 -641420564 --458885241 -354474492 --327628618 -377412811 -472911160 --878244777 -89013005 -595224239 -799418756 -455302674 --954123269 -597653471 -651554459 -455263059 -670171001 -330271599 -9005644 -919547521 -732079634 -763929997 -10728148 -857782070 -651952102 --344961021 -814478042 --125096991 -535504210 --874881804 -336972486 -53599906 -47949971 -345419451 -992026748 -598380095 -426217906 -912020365 -31334111 -413134526 -684550866 -643250477 -238768957 -648003293 --315393893 -699088282 -885455780 -274801846 -453839549 -83645187 --537633851 -279490648 -17895958 -77223412 -977588926 -150004324 -738587378 --397696422 -618756869 -536036356 -873036557 -427722744 -224751398 --100917313 -183482890 -975786642 -824222070 -36090404 -827785987 --321022266 -485867336 --532777023 -28145056 --748481718 -360117340 -424895853 -95486657 -157980586 -815287002 -450614467 -415575749 -164663367 -384344651 -422891473 --884136746 -152799870 -401795226 -756707265 -283889353 -932398832 -270556406 -469611178 --879831098 -967163118 -914717002 --822363457 -711486136 -384580587 -308327074 -340743203 -200404264 -68486206 --716111836 -324863758 --361159992 -459205812 -323976561 --680473290 -33654056 -241168060 -627738321 --868675679 -74385710 -100427462 -601202611 --916935489 -876117248 --528067602 -455280164 --449017622 -991163222 --503557847 -75202243 -249223409 --390644329 -15222389 -553844878 --778980360 -474295535 -817831394 -294982289 -732175591 -545280472 -546928174 -680585780 -272093412 -237847796 --800329058 -44772109 -860884989 -107455151 -39338009 -849793374 -597676498 -605465308 -769437113 --455263402 -547266508 -675836910 --545876376 -183713585 -268858941 --682022455 -862372638 --150637572 -436652551 -840565537 --558334769 -694309613 --612187112 -467447044 --186310739 -190990606 -473755595 -788955787 --543067440 -917631017 -889048960 --57189557 -650371725 -916629936 --863553322 -369154184 --151396514 -306062112 --825442928 -650159103 -299153562 -717930264 -11765729 --268009767 -915186825 -244661967 --260498564 -806001427 -493874576 -560721502 -607979064 -357330569 -858179766 -179170279 --314770402 -365492992 -234202056 -559002626 -327704895 -134852602 -422047535 -781981007 -672179423 -922188511 -19109186 -98928680 -225259392 -11754428 -862033841 -595283534 --60852147 -960774937 -954191747 -114620383 --191497446 -510804965 -893060442 -851516637 -752005168 -760715644 --325695426 -995836242 --40170964 -304916575 -253802628 --954362609 -319470543 --597971100 -285313746 --805379773 -250326168 --13786490 -610758297 --557484729 -275784910 --489259383 -675223643 --58090205 -70439516 -544578050 -142626747 -647142968 -15208007 --811335052 -594595848 -858415838 --42889819 -888852180 -947921509 -650479570 -716031913 -590788011 -288498931 -190933368 --494848521 -48283243 --35604644 -788708270 -972436331 -756042348 --812941407 -480128819 -898369554 -793632359 -397017781 -573680661 --117550656 -922893951 --368046143 -367743059 --598724541 -271570552 -500066420 --294718280 -374315894 -326630611 -736796779 -197885023 -584580401 -723846046 -903936144 -951168719 -645392736 -910437690 --645049138 -652682075 -997556944 -602827906 -66553302 -154835543 --765738980 -17962123 --169209972 -322721527 -985916570 -204888510 -792647128 --965725432 -570055031 -737248016 -41390533 --990198217 -775381469 -479975295 --334860775 -841107842 -836839590 -406820864 -618329483 --937502330 -808722234 -945545720 --387955756 -383755333 -120835039 -285171986 -396558649 -881572177 -660553260 -620325828 -333584318 --576001150 -833655310 -197879147 -95514661 --876529307 -921775817 --28958459 -562424029 --771106884 -208774084 -899198794 --479465432 -717083649 -34264232 -464011594 --304187042 -382533893 -196850036 -871699206 -680097372 -398962321 --660590463 -768259475 -519870684 -54439663 -535066678 -173801970 -772825851 -500859482 -888844833 -175362419 --222866207 -751873604 -100030110 --125617510 -302630033 --846768812 -712353891 -816077414 -465770697 --219563143 -404577442 -27224034 -865830191 -121290598 -512934899 -92707376 --167821979 -264966678 --465100837 -856676976 -306232571 -493873602 -47833132 -835698304 --385591253 -690284641 -748615106 -422936975 -706011419 -811656493 --998840436 -163935531 -493102112 --802039399 -518988703 -816586229 --874393626 -748006221 --142981056 -832958458 -818876923 -468003865 --506438901 -992436650 -829844089 -278438481 -428941157 -608628312 -478244987 -974746286 --503827631 -235700337 -144972705 --584922253 -404493214 -502000721 -114502101 -568473260 -197001171 --703541784 -767790880 --37860136 -2857022 -418848160 -224714179 --820944292 -531662642 --698207944 -123675436 -675545404 --185515077 -583712987 -832418697 -298315826 -230329023 -927731093 -78529364 --474612908 -905223734 -949625982 -745155166 -681009984 -118759805 -769430024 --167161826 -316310993 -337632922 -976757096 -692092625 -244284709 --649245926 -123923757 -701893034 -284799201 -42909327 -880892675 -575098213 -863306863 -185369995 --920259733 -789200582 --456921868 -903840408 -777768717 --18709474 -90144244 --415739748 -26182473 -205107476 -309991510 -765261046 -729084447 -934545744 -108321303 --735983876 -710067017 --237917287 -52542764 -657108658 -68266088 -123704368 -619573280 --885562919 -390549363 -389040631 -896750263 --292393482 -939543539 -331699256 -498226304 -742862933 -949619852 -727780403 --412149585 -856790592 -721482143 -487912009 -874121161 -582335447 --188741327 -510281089 -272120452 -256563659 -725078043 --606046453 -817790274 -180516304 -438627646 -206271463 -119568180 -534168108 -660939719 -228335225 -575381071 -927294347 -540235489 -339090782 -425870503 --829686842 -549758534 -56691736 --198305066 -459015687 -94951764 --713385100 -789142651 --754124620 -131947373 -614785490 --846571298 -962070926 --370435980 -850355673 -284698022 -422249292 --524842984 -64194084 -636291167 -311913404 --805769596 -166319639 -79386181 -512038972 -815741374 --808812910 -772183594 -856727748 -216478918 --973770960 -251633551 -171826468 --10952853 -322652737 --671063017 -17593067 -961450282 --459025183 -120630312 -899036315 -797679076 -645286880 -863167272 -245066583 -170943880 -263573428 --608624539 -305316689 --270948038 -591556995 --164493084 -928049139 -191751039 --892497384 -177412918 -413901403 -292434799 -564626413 -120923022 -854275328 -34349914 --164329471 -985740536 -301273557 --120895853 -708125599 -557988222 -659664878 --220313535 -78085258 -823035957 -723437059 --547447344 -167131003 --542834128 -220845720 -360984694 -65047748 -589706467 --168270472 -196096647 -480016230 -351263521 --762424886 -286216320 --568125579 -955721510 -462381280 -209958425 --335538658 -607546634 -410460014 -565213942 -588968576 -961010521 -300454638 -287154108 -174635420 -999242803 --21164491 -619944489 -5830306 -548951586 -64911367 -164857572 --94957434 -690995355 -472010292 -450355457 -295744554 --880929435 -452468821 -209992975 -205517621 -21850545 -330066091 -816014495 -657697673 --171035677 -958287689 --562575436 -904397859 -936774511 -667792569 -179617339 -397895397 -384117373 -868483963 -342046579 -30226792 --715643643 -62838928 --617995391 -527369660 --557873221 -997103307 -360335769 --602827906 -988704903 -517722129 -606437001 -174671001 -160681662 -723437497 -591954489 --706490229 -352726736 --372983956 -663333921 --343844811 -505628657 --441958633 -940423940 -614351321 --635482221 -966651042 --836489611 -59459223 -37562536 -643464157 -398849850 -9460799 -211179287 --495076580 -743201237 -484830648 -646116726 --219458903 -237376289 -401805427 --140338994 -166163083 -388159729 -733758597 -93363626 -989584470 -97250143 -399096409 -522141366 --163183595 -592954815 -600548194 -653621967 -555284075 -14516043 -63885506 -964275252 -48490864 -198254673 --997667814 -463778130 -304523946 -95590133 --888393987 -339237579 -717858429 -290842787 --577615652 -311702193 -782503739 -762458689 -652476286 --554550617 -522093145 --508363834 -942566904 -256025087 -941075223 -429267533 -886629002 --303022690 -379275104 -911999872 -778642420 -773525947 -447253110 -28630131 -178623600 -363470859 -888652177 -927608991 -227204861 -697672884 -436511408 -362794941 -580311951 -594878849 -596003922 -650508755 -503915028 --151043739 -50504606 -317164593 --28820291 -647060959 --600762694 -162813638 --510493150 -659724650 --576196253 -814096016 --993790643 -297777160 -504964460 -866471058 -777987051 -651174804 -329739700 -110431138 -115066896 -130926088 --512097464 -822808382 --162748942 -985903844 --172223084 -75873355 -637800545 -544627470 -810276040 --82299984 -600872761 -637168892 -322947883 -671984487 --473563473 -607200583 -201051403 -628742268 -679321491 --86724909 -363004858 -651317788 -893900594 -363299651 -666755525 -284683056 --212600902 -391071182 -769892415 --186927810 -169562083 -335444500 --509549572 -241270722 --11595608 -878720981 --785031197 -740963125 -349088387 -59667931 -268556751 -134280742 -242990826 --486353985 -217359807 --67942348 -430118345 -362123671 -910318083 -552764503 -930623088 -947644732 --700735207 -900932442 -188941006 -363808958 -618816730 --791950864 -47304180 -672917284 -549979563 --802290495 -297740387 -656065533 --667879574 -10281006 -192146879 -426654599 --133368029 -953199178 -682158653 -92643838 -29515534 -389114405 -80101351 --303106197 -975737713 -141670963 -319525370 -188724881 --256951114 -238491856 -752805796 -335398617 --879971229 -841175776 -25942183 --368220945 -230227052 -501767623 -343250676 -402704224 -234910536 -267222353 -253854225 -298175811 -305141285 -51010550 --377811578 -261023464 -924802267 -882672688 -329360893 -470267755 -122328521 --19714848 -75805205 -701525682 -555443512 -100047800 -558149389 -930908157 -480751239 --941420033 -972023450 -43806130 -451509341 -819222275 --869654492 -115042265 -274546088 -749969556 --498639061 -613945238 -116558760 --486395775 -858709052 -281166158 -218379358 --134767820 -228434286 -799016935 --881768558 -437160481 -439904970 -49129955 --506539031 -84692332 --82195185 -774451624 -131372929 -820984044 -297870832 --903456716 -140230430 -530888163 -954412767 -340410321 -321212756 -235211150 -553845771 -56605919 -780495566 --580059162 -160420696 -118044207 -158482266 --30667126 -661115802 -413613735 -341353847 -617961556 --451631273 -310459682 -551303846 --445322784 -465008767 -17060593 -702324437 -999108723 -179181763 --265102383 -153569705 -820478561 -796456586 -822760582 -499135617 -135301090 --753669680 -423440401 -435350925 -922777640 -202306664 --218652160 -816078421 -165339578 -725773646 --767554269 -279429878 -670927624 -748672590 -627706458 --556749041 -847860782 -358613158 -640617580 --880690360 -261811123 --815240477 -508555285 -597173381 --633932806 -12272256 -247706338 -334237664 -975012949 --598421443 -942084930 -893991907 --667962096 -323473422 -213968385 --601857850 -114646266 -361125926 --335877209 -292336851 -892748568 --856854937 -971872115 -449659793 -421875127 -480423621 --441585714 -906323588 -268979848 -159868428 -462405140 -60205589 -114772819 --42271943 -642767092 -137793249 --348449398 -941088418 --679708373 -223218460 --83309175 -863639399 -648265407 -936933733 -620616791 -852805089 -549563896 -492328641 --246715277 -669294939 -44818134 -170973188 -548227185 --987160971 -462417525 -348208931 --843037047 -857718592 --182770470 -533683670 -698905267 -13619605 -93433506 -68931578 --750126776 -920484297 -587895186 -593801 -950342015 -192942158 -936418365 -712990220 -846130453 -93175744 -976636699 -567909247 -373045895 --29450927 -333461726 -743104712 -137747305 -726400366 -294913449 -149101905 --388151865 -632754677 -554236620 -787226020 -421704046 --32811109 -387713824 -155902433 -993452006 -693149760 -176415935 -489412403 -905288875 -795858506 -336851659 -119100094 --858253246 -177824152 -669748273 --549555353 -768414694 -220293884 --32539095 -9303709 -372080835 -916082852 -293766579 -409616137 --11928105 -117174155 -736827022 -471008820 --57923237 -852205657 -698320947 -485576367 --988287961 -861179707 --655169526 -677783408 --284182784 -105355037 -728922760 -804450633 -816861320 -805519489 --924927560 -387755895 -171897492 --325679276 -887880294 --679528196 -146297259 -764152385 -741109788 -792666657 --671763118 -731306346 -600839170 -968239251 -935993297 --998060230 -727601164 -411844096 -10500356 -173380698 -749240295 -425723756 -728697344 --970360849 -991107468 -779592929 -907196443 -138293901 -314502113 --339488343 -919272458 -811808086 -158403841 -29635700 -589232588 --928750047 -242973749 -303004901 -410023683 -914112598 -672624626 -592682666 --530206510 -138536723 --878911832 -309103586 -441860346 --291117189 -224518730 -776086018 --858431647 -450635564 --737771185 -520896033 --292730848 -101726646 -121208492 -992686082 -489010840 --627971364 -48849984 --446927753 -371397375 -575516487 -384901825 --673892935 -316384590 -292326937 -143834293 -191648844 -211981370 --459512959 -533106070 --598388359 -519680898 -682259625 -164313340 -949318456 -89721447 -753829738 --770969730 -235393347 -393098926 -353086865 --921994132 -888679490 -453791451 -786353641 -427700016 -201020365 -631262063 -962250333 -39875020 -423894319 -830058567 -453681650 --347546086 -990806445 -242278135 -663660570 -175693175 -701812949 -790921224 -537365475 -747430997 -298648606 --957942328 -333416036 -296532688 -894661019 -48389392 --928489628 -621887964 -175547123 -742553601 -613411184 --165490160 -509623976 --955129605 -678676836 -384452772 --720183839 -100344637 --585584980 -838028145 --837349068 -602312277 -495197113 -270719556 -513558959 -624426746 -333711718 -128714802 -652514852 -959932679 --897333542 -338609620 -127374567 -204333620 -311115528 -619513390 -889630810 -968201014 -216189246 -668366297 --900221417 -702566835 -776993 -117203772 --502250399 -960361652 -373267787 -944177751 --627492874 -192626610 -216698675 --293279864 -280225502 -65789145 --96804902 -835157314 -966236319 --209883836 -444052797 --379134661 -275586062 -337218091 -713100377 -29703520 --802609657 -507014276 -837174270 -914562501 -863313008 --565582159 -673436268 --83611622 -960920364 --464460825 -512639830 -985260795 -413278873 -272662133 --453805423 -536452686 -768047320 -561524681 -918751685 -19546476 -721151639 --758309514 -80918965 -593556242 -889532371 --755258783 -849051609 -5249996 -328130785 -194510024 -59278765 -917582275 --752221227 -807765369 -524564932 -210855476 -787074968 -841795144 --666325568 -221735603 --183249801 -114358684 -254798017 -612853823 -180763118 -702008083 -103130314 -764825566 -130367470 -495507045 -269358275 -440271233 -236407344 -341100298 -129698897 -161458105 --12008175 -280191922 -837568323 -527597375 -608486259 --337656252 -540763931 -911459417 -880495417 -692750630 -20582694 -610147292 -22129967 --240290860 -190900901 --8543265 -951494128 --738349486 -378032089 -611079123 -963345218 -570210680 -155692014 -400619395 -780087133 -265275494 -729738666 -108191455 -421157293 -474518359 -270826424 --5511894 -969719728 -512647580 -577158790 --918242171 -857821943 -333522188 --776772071 -223451805 --9922079 -140293539 -503788053 -293289664 -678995351 -306949949 --270352903 -956168423 -681042510 --248475712 -572187953 --352369545 -425135194 -428401867 -715183345 -358063381 -467234488 --764393 -208339209 --949405649 -875690176 -859538139 --99136386 -778624911 -374893766 -141906743 -835114273 -942277355 -368640776 -352996386 -799909563 -408016562 -386188378 -387659958 --102908785 -526655812 -458581791 -634124151 -701395207 -604452164 --915988893 -204689293 -799695248 -947397291 -38556471 --874479501 -233838039 -375118342 -631747490 -399852716 -766436030 -975974391 -268756280 --749721425 -617505824 -153706792 -431989679 --786525009 -697306793 -376646304 --285566499 -462803449 -406642238 -461657089 -608072444 -914261182 -753769175 -669122141 -846179862 -613440702 -53070832 --617858717 -941440070 --229163184 -768645693 -642703434 -325123287 -40208408 -978101569 -362879779 --52369724 -722765478 --145999892 -199188711 -474940466 --249630506 -808827688 -86744236 -623578454 -225297212 -191355969 --803631176 -592925042 -498340215 -810452040 -345389403 -716478109 -948075548 -437263865 -827037230 -401292544 -56372730 --299131156 -647320824 -971348371 -578242944 --74614810 -268021101 -395350650 -28322382 -546541019 --442381002 -217771288 -29701578 --334657374 -340489354 -656427548 -662255366 -605768390 -397479174 -948243874 -150392888 -870672364 -417582300 -935288593 --316477872 -459991666 -786868885 -396057892 -266404755 -538929109 -98888387 -82805161 -140247719 -492905540 -901675893 -449456999 -53437442 -441966355 --326347448 -947568976 --195230057 -859220616 -496377905 -35113643 -165724649 -521071006 --146478274 -402487367 -340177486 -15949607 -830211791 --723846046 -739944829 -146721180 --74057962 -592559335 -488893648 -496826051 -695204046 -572783020 --430443642 -688826745 -799697304 --644382050 -923932446 -892714964 -208146425 --843765976 -411245309 -655827378 -847477073 -235837045 -18893987 -507763849 -557969021 -244096811 -769284227 -295006959 --430031095 -28796231 -639720935 -263281825 -162018266 -811804996 -256055514 --438281624 -265437754 -564838366 -938441522 -418751805 -419979796 --741222506 -695000323 -637277559 -579762088 --522102435 -374661234 -830061595 -95909101 -344463675 -439856334 --468000322 -666544831 --204844763 -844476224 -750674824 -276255579 -952652951 --57545077 -178999184 --274170565 -867984965 -730989521 --491769449 -543108686 -861941512 --421116544 -372304069 -904472454 -621165964 -636265941 -912452313 -273327137 -937982749 --933886295 -621912117 -290183459 -221716997 -437373688 -315368381 -909128247 -654395803 -642071731 -349570690 --591984328 -549720556 -454576367 -939151048 -335639699 -565903144 --180204305 -604854571 -917128670 --177276478 -645335685 --575504364 -351358530 --7473062 -374143037 -656302212 -653380910 -654966905 -179048415 -269848911 -259463452 -32159620 -381737089 -507483939 --439866808 -978568366 -150670896 -359036124 -152875253 -298956788 --472366583 -842065178 --309677289 -416290707 -775919898 --697456035 -987056815 -287661603 -117810143 --32285347 -981191558 --830644630 -911790505 --238751477 -607300361 -173423797 -883522322 -15159415 -43660001 --210184217 -25366693 -453996140 --146727318 -626244036 -700484952 -243004632 -499808498 -957641092 -569581985 --520516572 -639385731 --469870629 -362437143 --231507925 -182024874 -244668402 --691379908 -961371144 -291415055 -890910022 --470276726 -197318188 -455597467 --280493587 -219100277 -645446 --717041709 -835450206 --715742831 -598863991 -342929348 --384226877 -609813006 -400013460 -651338938 -995880684 -844627820 --725807634 -55907847 -19494260 -148855030 --653596552 -948928070 -848672471 -384542211 -439515129 -335660847 -987241250 -240390919 --481404624 -318205609 -494051246 -973235245 -894757544 --93035884 -369106673 --55060694 -875480689 -267948173 --178475953 -138409329 -58809636 -867198808 -583499990 -804839447 -279077853 -328494298 --565062338 -777565684 -58180970 -421792751 -305113523 -237808931 -447509660 -717461964 --483433679 -759095792 --639839481 -584567976 -334042729 --803492379 -559240279 -431083109 -250152605 -723142444 -445451701 --899116209 -953312075 -427014085 --716755284 -604872447 -22368893 -611204068 -24734197 --317676450 -925946370 --562308854 -403047578 -774876547 -88363366 -652644775 -227359011 -118017996 -169349295 -378477608 -445008274 --132721802 -674718408 -263113616 --878492426 -695188682 -803926433 -99210832 -63931442 -512652368 -766786834 -548623684 -745453089 --816938323 -578367872 --550931123 -145917534 --255672094 -109984595 -70835500 -785264747 -86137448 -154400444 --875742418 -357731167 --581772668 -3131306 -5539463 --351358530 -859011495 --154852149 -465396159 -380111078 --824713298 -189405792 -756683879 --756320461 -670104788 -181718546 --964194964 -272935364 --141196215 -672531332 --632680327 -532278904 -45518976 --225431689 -66751595 -811662209 -2852076 -146648472 --202538650 -779148159 -532148676 -307418056 -383478823 -90486351 -624442010 --135634319 -664185447 -744758896 --381522802 -534839255 -2877010 -195971168 --883633639 -845370425 -722459364 -874621847 --916979515 -415514044 -45790323 -730762914 -573672444 -749724642 --420154304 -128978366 --829379445 -871117906 -379265797 -137777079 -595014184 --650931125 -631525542 -75212234 --827785987 -1469030 -649586669 -500087341 -647097195 -445119582 -791632799 --608816400 -987527818 -509058749 -17812857 -969224950 -661104164 -434590661 -744390785 -638911297 -878835156 -549453766 --333584318 -791739089 --255245752 -133253571 -76515227 -70269158 --892468862 -357850781 -154446036 -606158557 -998713250 --889961770 -860072790 -617683846 -981129241 -646050342 -140299126 -802894455 -161523349 --726291440 -789970376 --809499906 -563710077 -400349537 -308065739 --434900239 -21286479 --104340513 -171197582 --981947597 -443673315 -687942823 --205253227 -519465213 -167264958 -257573164 -468313035 --739206444 -818074805 --890947867 -674490487 --756775748 -708107910 -505097629 -223243979 --381794356 -124730044 --467483334 -863593956 -270669979 --291540605 -943385829 --590226645 -545268273 --593988561 -730259590 -620690483 -30430372 --199231765 -3573210 -325132918 -810320030 -227450148 --726111462 -388433767 --841048599 -39844209 --294866064 -751458182 -692896183 -554888600 -443380527 -182595658 -631116614 -753611841 --470097263 -82140863 -54075791 --852975325 -536892169 --584548353 -271123380 -140527080 --956197943 -246781077 -282114366 -149869549 --514987871 -133985159 -537327040 -691492565 -264437219 -190256359 -275260408 --220238625 -807356918 -635837663 -751467869 --706737130 -459498548 --877991521 -940455869 -364626790 --185956765 -432695516 -439595196 -698466526 -151537291 -332775820 --622063589 -506099980 -880825899 --952586868 -239906239 -947580192 -485112681 -672138868 -856200300 -801944826 --117739456 -656232896 -499100056 -646517790 -122633605 -392925650 -430822461 -798536110 -45726283 -551621702 --781952632 -91542811 --141526146 -853926955 -846467593 -30313328 -515682835 --670116598 -545185701 -862815781 -605907676 -865702757 --755387945 -698667018 -189142043 -475745325 -680669693 -384252673 -786542742 -862922531 -551577893 -479563934 -992394827 -329280617 -433974687 --673466218 -213586784 -510587028 -291455290 -809526216 -846755299 -696674 -443366827 -661348108 -453623050 --506872754 -607280939 -506691589 -646977669 -481680909 --242352477 -429969065 -695903843 -761176924 --950813052 -412512264 --799999988 -567374729 --531966409 -727885011 --381502073 -574272589 --112499789 -73586523 --715227448 -678366169 -440887105 --705867071 -335181634 --206730921 -512854411 -571792720 --600196713 -788626787 -217677369 -856056737 -214004056 --985511778 -362722060 -322684795 --73372084 -342779168 --462811173 -712936337 -189155413 -676339102 -799294159 --884231378 -236819328 -776054615 --702338850 -862429204 -677666201 -698974364 --251524591 -304070182 --529735477 -705164802 --156173620 -656012266 --741858208 -224933707 -873085066 -869312531 -730459163 -630144296 --222780252 -137761742 --260397040 -939910912 -533225551 --340521741 -841921015 --842701948 -882151759 -985215669 -403469000 -690271413 -188631215 -160280266 -453589612 -846307075 -289002560 --352314471 -877599415 -575186977 -111016062 --508919292 -427557130 -967985189 -50676932 -552610571 --537327040 -644051637 --219746072 -250076139 -174177657 --97835986 -795129494 -935727585 --138605736 -738656558 --880471595 -305219543 --261749612 -399267025 -236010855 --127853001 -403862705 -983969788 -339261422 -321669182 -84220047 -592976209 -386174125 -606225068 -657453306 --988925082 -236995880 --73289263 -898884281 --502000721 -23014200 --490594096 -620616473 -416407473 --310325343 -597597078 -784720710 -945519265 -563859270 -478983556 -691327564 -940290117 -699455813 --638275029 -61539453 --388720652 -181314077 -564562294 -760436439 -314544648 --365330218 -779848412 -220291273 --824107942 -870549528 -398410949 --26182473 -185204022 --329360893 -82119942 -713408821 --656221009 -80061880 -57806732 --336851659 -316092855 -51928025 --96110591 -108028149 -509751872 --114566295 -766499301 -233016317 --606437001 -618898983 -976525543 --785903684 -71311694 -750487112 -669327748 -157803045 -814579036 -961389330 -785960822 --473574627 -453372107 -463153077 -755958835 --782110243 -848875081 -897771776 -509284616 -646890180 --58365217 -271370358 -350184358 -665293277 --332127547 -401448889 --680754627 -966226405 --813754118 -340968276 --753228458 -350183258 -407330867 -804006832 -826656292 -120453256 --816555997 -740545722 -74467094 --116611576 -110098130 --152924523 -974438352 -271689388 -42652717 -310146367 -819773946 -813583061 -280158367 -530752998 -339718101 -41674922 --292253335 -539525259 --780143307 -209520253 -200960864 -506676556 -70804403 -74522017 -840025642 -630674379 -704343914 -919859166 --440472497 -955453506 --122328521 -57190524 -960370162 -672089367 -918593544 -402974009 -287519605 --282543905 -855538678 -240819379 -10117023 -274707675 -108325368 --355710242 -189663509 --264083513 -238042902 --790617290 -220476301 -539334497 -749068112 --768295959 -369942657 -16303138 -528561197 -981359314 -710820891 -590087526 -903435328 --547910796 -328311375 --768350551 -947358001 -869421036 -748376748 -193401337 -571885276 -975895438 --842064924 -583546870 --713378287 -227115292 -89028763 --80425934 -163890268 -329823056 -19723675 --363814268 -817217004 -544565775 --753835127 -482994379 -665179156 --709192382 -297715278 -817926261 -668152578 -622196329 --132946353 -857136139 -318482190 --138841414 -92151976 -208391076 -336774630 -754340738 -361088636 --292923184 -113512936 -156828638 -50177310 --684622275 -277785296 --955716161 -371054909 -265855243 -565351358 -641041959 -240004284 -529790648 -786644725 -297344149 -872971232 --258717098 -653842008 -241464109 -343937574 -81977003 -544563013 -25206042 -581004556 --424639971 -495731858 -106266421 -576939410 --263338797 -318820436 -36525236 --377828114 -367540711 -696363023 -985368474 -824365244 -210713678 --703918606 -247303197 -885972616 -269906878 -809095778 --797763781 -104035973 -919363185 -750289288 -591233926 -268914854 -114108086 -971573144 -537126865 --569618299 -462910478 -995004668 --346814618 -182686132 -758395314 --696103013 -237671894 -476381147 -457536670 -643664510 --139468435 -684176702 -87639726 -177730321 -724360312 -27410168 -358633052 -575614639 -456108061 --99939969 -223881344 -306194118 -613004712 --845307775 -409939740 -392487530 --124561695 -487915877 -22970008 -898946206 --865481360 -548183573 -144558546 -466715623 --207571245 -287983272 -682422548 -570896333 -226122845 -413508144 --416044590 -690529857 -687328592 -679105890 -928565493 --797386454 -387144257 -836051405 --906317804 -537280549 -566303698 -936430556 -17584881 -590382296 -130944490 --149956186 -531821733 -429380959 -657359482 -12397088 -606922190 -816620994 -104127141 -675580042 -827461811 -941993583 -491719329 -495301549 --575476498 -254215192 -926094949 -964534560 -136668077 -856561570 --844184272 -422321231 -38349573 --427630360 -567516194 -897689071 -983323188 -512091910 -144200966 --63114324 -913587233 --852772605 -241468818 -355308015 -908744616 -222455270 -262402998 -105104856 -138369462 -929466554 -893436829 -692415986 --410944173 -528541447 -509375695 --992487513 -767748987 --281780374 -648782471 -219537929 --219348833 -399518164 -722962445 -831020153 -139338573 --820498461 -287724700 -191373902 -546566901 --253527546 -861778843 -283957601 -163350523 --949911192 -602976895 --715183345 -567492845 --253653845 -182633864 --417491614 -190461067 -915533553 -275338548 -260763581 -366525132 -822544199 --721887525 -380697492 -294563788 -809008246 -3626074 --453681650 -138650966 -899180369 -969610201 -268660628 --513533002 -54265067 --124889788 -91227773 --973523696 -65721128 -39556560 -492508876 -588093917 -471001825 -176896957 -846004025 --179617339 -526764212 -643844670 -989835905 --666665514 -581317454 -995293619 --400075138 -934321788 --109116782 -216041574 -310250869 -516196084 -870578764 -554859101 -422309957 -71376259 -768671748 -305890370 -825230923 --91752994 -340431632 -848203179 -299518791 -160920038 --654171309 -94614364 -699155598 --392280126 -828722463 -147523056 --146721180 -698302080 -712862542 --733596853 -591773339 -193240264 --222276714 -299231690 -978111744 -19441221 --469630633 -176199158 -847891278 -787997610 -344912738 -131382433 --534187907 -948135610 -364923676 -517199427 -965428694 --390713819 -46928214 -182013189 --72963859 -854046615 --150664076 -108133157 -667348175 --209311542 -826640048 -752157707 -455868091 -231859218 --992727179 -242046845 --548581459 -958439425 -654067848 --601012165 -569775796 --690441656 -37149015 --705853703 -348891471 -765629700 -563933207 --539872535 -591009057 -337848268 --97543230 -561473697 --651009698 -333240033 -785260302 --253694962 -812304050 --647330211 -386672447 -532951549 -49259523 -351501591 -406758276 -235552579 -889925212 -916495144 --44252146 -958511695 -730517603 -572903872 -25044373 --915316037 -271774293 -13613107 -919685999 -421098433 -981531516 -388872149 -465907686 -956424577 -655959083 -937110897 --664175141 -158830557 --713059957 -128187761 -543530865 -391977946 --884667366 -570863168 -822697278 -966649219 --475017121 -786441748 --274773775 -453241694 -618171766 -748882477 --274041156 -682336765 --695760167 -343055510 -767378198 --940211087 -898256940 -902116013 -980401624 -258857566 -820465090 --459358788 -199257647 -252128643 -271172936 --538448322 -505036093 --211626380 -212924851 -377946784 -39368112 -334434898 -191421763 --980368153 -521589855 -132687202 --315114538 -682133308 -468070593 --891151905 -15543462 --386829695 -536042442 -38271510 -484724151 -688845430 --61180478 -673556292 --939779655 -564005278 -962363851 -520972329 --936921300 -253429982 -531875910 -239055693 -21049348 --335516830 -906178449 -721355284 -360271373 -154143848 -458442062 --341431328 -393003524 -177085412 -873661355 -987750681 -572072580 -40875602 --782415435 -495224128 --405545645 -555365101 -120843473 -134570921 --109377569 -141777986 -660083485 -72156428 -413159426 -338226690 -513995162 --552709890 -386426478 -593824577 -186418239 --718175242 -489025575 -614808108 --675545404 -447076291 --728657813 -265721251 -368537105 -452452112 -653830582 -690104707 -970047208 -242980347 -504070488 -901298262 -396827467 --172313061 -820116666 -232740388 --885059670 -312543959 -62331103 --180516304 -769775434 -270998949 -956422454 --413508144 -603700110 -835460043 --520469624 -496753397 -166082907 -69512293 --714689695 -47462181 -368968626 -352764532 --172754796 -822937479 -658375087 -639139803 --58068427 -677985905 --880868985 -312638590 --268052666 -296213656 -687362817 -374662091 -834703136 -407540983 -709236072 -691329031 -503439030 -623800771 -698487191 -532142122 -534923266 -387845844 --134770940 -884312486 -744936668 -274187759 -776622948 -208245060 -18845281 --656316548 -191207160 -861840062 -527449542 -887885021 -410401153 -965104806 --972436331 -426867401 --750674824 -295259056 -988918118 -162441533 --975273747 -180706455 --705289423 -984365802 -841194693 -851358227 -770298326 -296230023 --28901967 -651390908 -821040848 -442105201 --906212645 -477274707 -464835145 -250576656 -259863543 -893421074 --417411622 -352101780 -507514764 -809984731 -929726600 --706049986 -379629315 -301133732 -377590423 --495030120 -632301860 -964109899 -470951523 -626559597 -105116757 -958716507 --816823011 -788463417 -839486928 -114911237 --894411298 -94626313 -376283052 -366382491 --255666737 -402216518 --364409693 -622237541 -992473498 -511458578 --193006830 -461007033 --971342170 -451961673 -855900197 -74176788 -461623340 -66200515 -232244886 -314084125 -884865328 -127076384 --771475391 -882804733 -539353981 -444315460 -562672639 -349816811 -672783648 --759286017 -798764879 -566325591 -925564818 -446464441 -826174493 --58244534 -807215481 -844670226 -632886393 --565636924 -905406129 -722636208 --99973431 -179862507 -193001728 --94951764 -825539685 -937628193 --207580563 -985996088 -53079082 --298454056 -80882732 -943788388 -419705887 -394352451 --169910973 -26165959 -299905981 -83029622 -880613111 --779735817 -305161730 -839110217 --376112541 -406060917 -882120324 --707686245 -578609453 -109945956 -790093932 -35751251 -79531563 -955474600 -804100341 -867312652 --870115686 -182381149 --222608996 -850856277 --383363642 -290212289 -323100609 -599144314 -545927684 -913456572 -909389208 --81351893 -38805286 -535040255 --431143275 -117965027 -70742478 -510438374 -115829660 -385818732 -868762959 -964454928 -699855193 --733303634 -670781893 --799257059 -617102628 -306625925 -352928889 -156192937 -484796128 -904533462 -494035426 --783994994 -990419338 --187534808 -611757809 --175457258 -84351891 -240163552 -861620592 -420896269 -521118941 -403067930 --796672857 -458959586 --357010462 -421332779 --404376988 -67357725 -848014693 --599931030 -758781654 --552231278 -567566753 -767095585 -718206714 -850029529 -433193592 -507141406 -954706360 -212866348 -463127689 -942902949 -189224567 -551960246 -320923823 -423333452 --315380734 -524660218 -152816961 -834623074 --157443462 -981187344 -847402281 -228854457 -262197738 -854994964 --390128706 -971467904 -308445471 -739248026 -555568950 -166411215 -197773921 -320216448 --603790027 -160837965 -67394297 -202420392 --65964123 -497728225 -590621362 -341995834 -75190247 -76638493 --99806573 -345759473 --102705390 -176231125 --459205812 -914129026 -316538800 --732420802 -156461278 --641807796 -648330076 -527037591 -17169634 --261990518 -967088510 -561080570 --465396159 -992998407 -56877062 -525338992 -749176007 -809357255 -4655249 -351264487 -73545586 -18579901 --744439989 -248867604 -337579533 -990247701 -316813922 --894823609 -450518969 -374601410 -639137306 --564838366 -66004546 --149541808 -133287978 -112717782 -516787541 --865617763 -986079159 -31771730 -691845415 -267264760 -876430151 -988466700 -917827320 --433729992 -378185115 -342367553 -646824582 -686317238 -734611276 -649670114 -169572856 --901755485 -717596855 -253692198 -278938750 --967117811 -870423391 -524302344 -40715462 -598403092 --278937941 -531961221 -684923070 -939885838 -923251754 -291465229 -793955558 -432039575 -132513820 -181060885 --695721845 -594469902 --720527180 -542293930 --670781893 -26286775 -195688609 -146791666 -672794317 -791026867 -815626199 -800506038 -380476490 -323352160 -20429006 -782075223 --123304018 -832584260 -783870224 -854649054 -357030629 -781968373 -139932837 --370412040 -435984740 -536824640 --35660533 -747217657 --536659864 -353712972 -150945569 -223534393 -847298631 -991858066 -397730299 -314156260 --687003963 -418916024 -880561926 -247980023 -611161690 -669525917 -740155946 -704008540 -180503807 --141731115 -942246317 --841242122 -532850918 -591415388 -465836519 -776862082 --414042027 -476045227 --555230666 -937847169 -263864353 -414291270 -932685849 -972329834 --171346324 -327975332 --340935478 -287825295 --628733845 -414777804 -184755063 -266596450 -745106426 --750719487 -270415378 -162710492 -441489651 -265145749 --787478062 -777453702 --134575743 -860892828 -349023120 -686771756 -448564884 --69262095 -764052154 --191093247 -781799961 -733499363 -779761933 --759592747 -674758197 -490899717 --330451418 -318851839 -598774814 -945291624 -448558010 -983326028 -689854200 -18116817 -552404649 --989310866 -218541983 -878056495 --760440673 -368985375 --730477205 -384583625 -886735837 --203509750 -181458571 -86677634 -319524940 -448178612 -341140564 -259581561 --844756854 -395417720 --206729033 -393851410 --966359316 -437877510 -458348520 -542440397 -131845079 --20582694 -548796444 -630638204 --179048415 -489787573 --373378320 -973686185 --229326560 -708400741 -258029726 --422920091 -33661022 -78952688 --137141245 -615791426 -4662887 --399533922 -689082329 -498037736 --212866348 -697920041 -817630688 --321490989 -888184252 -481826781 -745833306 -639311326 -579696327 -185997825 --193614008 -841263944 --46111872 -666736504 -308848280 -897813184 -489863253 -129220187 --208616682 -494006764 --744437895 -697357034 --631181907 -561308489 -223904283 -859158605 --622085476 -368801267 --273876374 -20905488 --208391076 -632100449 -241541386 -329904649 --77796515 -267781894 -925241917 -51301165 -856846218 -868090296 -825647760 -427012014 --265770421 -909032755 -821212088 -888924950 -102441220 --254236566 -84275276 -152301030 -500795638 --447607924 -490385711 -795475984 --521674546 -241438815 --999428059 -237334083 -223351889 --517577621 -706269807 -414725525 -620146419 --553060583 -558196008 -600842054 -555213460 -499343250 --238900299 -244254067 -370375697 -967598845 --886813214 -916447264 -363646632 -828946125 --489208820 -86593996 -929472923 -972375318 -273964027 --211364339 -101028688 --151252267 -359253714 -906741783 -447074991 -23499133 --949317990 -193836723 --5143570 -209697060 -646122127 -683037650 --671835713 -124320905 -483771214 -355337815 -208391090 -288514574 --105517803 -408626801 --674730509 -904735485 --235472451 -625261647 -775038878 --600816546 -6190381 -726021221 -654564334 -560471356 -589438307 -540290327 --752357022 -34927419 -976433921 -118750253 -443335316 -747349608 -448798317 -383865814 -533784818 -358137404 -50332469 -902092321 -747881074 -223876347 -809610694 -755920107 --152893237 -916575192 -367245794 -265570536 --690284641 -665867875 -405806890 --856195986 -971495449 -805716812 -330842362 -434657081 -613515739 --871014655 -618403626 -741007429 -76268636 -695133789 -557286058 -123229086 -8451953 --217089390 -723525940 -364910793 -402607550 --798422604 -184244046 --241763663 -991509442 --753113003 -629587152 --419255427 -873094201 -783669184 -633774548 --765745139 -988595568 -829996208 -853131812 -237424602 --214349318 -635335818 -285168695 -201275937 -43097900 -218010707 -133769855 --577881587 -965626844 -813751561 -52500366 -568230585 --575516487 -245990666 -666168927 -483070266 -303090530 --34844849 -260617074 -181872972 -259128901 --427287991 -22252002 -820270889 -444199878 -45814203 -359414457 -576568508 -98605346 -550471353 -44330875 -693411432 --761883472 -561189913 -678839886 --833689959 -592451513 --909336250 -283501993 -195194978 -178132808 -240888690 --276220177 -809662902 -496520923 -701267161 -489668123 --56372730 -589751073 -267854660 -624249778 -923194173 -630497979 --869788397 -345288820 --581025031 -949802044 -424416037 --969067092 -809834689 -52435732 -550347502 -980638579 -459823954 -706047444 -862400149 -218958434 -596668780 -634128319 --797599953 -486398277 -445353997 --345960836 -794323920 --784390683 -479396612 -900788508 -112187474 -998450970 -646307692 -709705377 --729976033 -817549736 -129154517 --46636037 -874135365 -910227103 --531053466 -666309541 -535802425 -550627340 -777169256 -558778735 -351268411 -481041773 -813241635 -666998949 -542174646 -423457858 -889323591 -5273508 -776866924 --369412183 -443006070 --326114828 -714049330 -621091653 -249707970 -641126563 -525935427 --701614540 -386081448 --365955617 -91430912 -504104344 -338763977 --620362500 -274906766 -3460896 --139895435 -205569199 -741593282 --882672688 -767936918 --996163998 -923788368 -124180127 -738401239 -673057911 -519569486 -319076706 -398032998 -688996536 -440743595 --412060557 -694058139 -712034736 -863656448 -288805827 --535987709 -262384965 --161245829 -6860860 -223457551 -921982072 --474390819 -318516699 -344796608 -738881180 -443645268 --204553434 -560225575 -989245117 -206053064 -360284773 --113143771 -571848107 -827276549 -632248521 -308459899 -50381464 -629330048 -32323823 --756884531 -27976250 --657186692 -846957229 -900924517 --669466066 -393259687 -903151899 -449940948 -462475024 --849959796 -14597379 -13340256 -149152799 -345568524 -972488712 -540774121 -357537072 --479212001 -817547061 -647729905 -263282890 -595376838 -682996489 -244923934 -736331100 -936065018 --418125027 -737997565 --893137906 -175134169 -827898098 -779574891 -761897574 -675124788 -935195330 -42700945 -412018014 -530441154 -875297574 -188786278 -912238364 -114362077 -917698115 -808910173 -596143979 -422133672 -220422183 -692402416 -833123958 -705023637 --731600401 -119130848 -262504648 -136133879 -189133374 -481171093 -24737949 -173954409 --5533374 -516971528 -629197431 --180464417 -551800950 --166847790 -866434646 --2751888 -548476839 --672313083 -69627717 --614180635 -185575397 --653984435 -887605347 -491958852 -318273106 --522498935 -74268603 -693990367 --277785296 -680913273 --748391467 -297758490 -923296074 -173036300 --339106181 -716367828 --306747509 -793366308 --810183598 -233961246 --625075698 -898955728 --259072084 -456829383 -633762472 -726536191 -730257654 --112646290 -696074942 --600455876 -410979725 --181745947 -669665677 --739702966 -486407198 --325175225 -641050009 -135424364 -233570065 --994536565 -379344811 -317701470 --527761590 -949033237 -395654798 -688362570 --64642919 -192140504 -946410432 -290581388 -459475428 -964025693 --441822099 -739170615 -947083250 -947655269 --152943949 -454250228 --646319392 -511065364 -938399135 -490373991 -229321320 -236947669 -189242657 -69211778 -155316039 -941598638 --57201873 -782177628 --765260280 -416364838 -147457803 --139338573 -957106411 --196157635 -675828637 -747064062 --553109680 -541774793 -982308319 -657071230 -592220221 -652736283 -985596936 --169259097 -64808640 --914824510 -176515576 -927837466 --373355844 -810706296 --592939293 -144088778 -790677274 --379994779 -192765971 -966415715 -501009157 --21639540 -521606007 --708962381 -70873111 -889840825 -792609705 --464947906 -593650577 -452823739 -344621487 -26669290 -379338071 --580864915 -358798920 -83534025 --761092573 -993617104 --912028762 -613253367 -587461252 -851960395 -314592311 -988701893 --573143542 -991349820 -414995427 --383514619 -407895380 --63742822 -915624264 -194958250 --313441319 -948886904 --363512849 -709474928 -100811636 -778892268 --949769844 -827590400 -87572438 -489687682 -131769032 -859459871 --38245294 -260620446 --271570552 -398192397 -230431888 -157077391 -565550871 -99944247 -399655883 -924273953 -501347603 -242261048 --456759670 -275428028 -376727530 -896483803 -922355857 -40624485 --780180914 -794602477 --502257914 -167177280 -483670047 -123959004 -283850181 -755014078 --192778801 -920967002 -904508463 -924578698 --731993708 -942871408 -417708016 -774378229 --567418125 -385610390 -450077026 --862875800 -321960028 -223611499 -675938377 -204044850 -841029990 --145545214 -653191533 -216683292 -230709586 --989057132 -400638466 -781735027 -38335608 -421082382 --147523056 -652504600 -196602032 --763215015 -653815110 --616055966 -318538293 -596986796 -712613041 -34582348 -315888516 --515946649 -204333314 --732060008 -706967138 -403955818 -486142290 --175786913 -128038001 -899908422 -535949041 -931403432 --864681095 -233192110 -548689887 -837766624 --250001478 -395226995 --941913791 -40854170 -85989424 --317701470 -346558543 -773692575 -911028887 -334501481 --902116013 -62532637 --635759520 -352713562 -595329487 -726796456 --100925040 -301871576 -127353459 -87819271 -341319000 --154560962 -134487695 -795624228 -655488710 --182137394 -958641998 --570983510 -417083135 -780913530 -377356920 -174198048 --117083545 -610953372 -483742235 -132075471 -264711054 -267983732 -203151416 -26382310 --115106816 -63918878 -755024291 -685374160 -394057951 -48559296 -991231663 -382921663 -968923462 --246854402 -283131416 --522759723 -679708218 -500708363 -572475746 -302164808 -21514955 -16248892 -940477408 -22315515 --855639859 -284786665 -767815200 --786177210 -999780205 -700430989 -360131379 -85680151 -439058608 -70615051 -562610746 -590292359 -397260178 --493985481 -627534118 --627040638 -307591841 -112449864 --482291033 -173448174 --299811438 -273924467 -754952786 -968217570 -355065884 -627242045 --786630774 -895892830 --687320637 -687586094 -45965397 --542203622 -563452828 -356043030 -829466316 -408844938 -58209692 -445790044 -950196409 --562073635 -504368759 --289304376 -972263826 -14539545 -277703869 -44561774 -758778469 -573472938 -994353302 --17371625 -539398652 --983439151 -979562658 -229712520 -300669808 --49528840 -853836140 -901400551 --168685105 -990923998 -624586050 --621091653 -70592891 --71331593 -419978131 --627903960 -304989748 -788896190 --917556912 -180453629 -600090442 -934257335 -739436157 --133750874 -142085705 -88878276 -442354998 -205469804 --311913404 -486402333 -303908693 --912650310 -337568148 -996746495 -470102877 --399722683 -390661500 --714187998 -550058674 -515963239 --122345310 -852622076 -754278804 -146237901 --798884352 -291261569 -199201070 --904837095 -257514592 -890474601 -415075993 -543505475 --495165681 -317328783 -88195910 -413447158 -391975998 --209957311 -717467954 -204651675 --47642720 -682113527 -235225830 --159556184 -863706315 --269431333 -648218687 -58403272 -741330326 -187748723 --925932748 -926669562 -949126918 -50040894 --240146093 -828738060 -525256574 -770392688 -109484217 -784433610 -472625945 -62361098 -689895083 -941720214 -957277845 -546912494 -642821818 -170947822 -201444541 --357142190 -403800976 -665582354 --291290613 -178052729 --154768112 -806086174 -791063943 --645358058 -475485913 -50735580 -928316925 -52852951 -806983350 -57875813 -818399396 --639654367 -687301858 -122904561 -647185582 -710528180 -664531609 --354473297 -122874360 -265175109 --218154768 -115335673 -664076128 --827597051 -879598558 --720323421 -251300723 -258808898 -43880975 -554304330 -36474268 -799054256 --89102570 -776140495 -41565362 -103694819 -223493028 --174440063 -710650993 -314345487 -723043944 -962084958 -711340183 -515263923 -523617453 -98394455 -626892738 -533700803 -260328233 -687473372 -449981411 --607128389 -593635091 --204044850 -386555485 -219048385 --371666735 -410177934 -599241209 --403130407 -797597757 -894508100 --397509114 -854656463 -261551121 -747163864 --226641491 -837473198 --267652365 -947524330 -674641387 -510027781 -245372494 --385155702 -678903795 --822489466 -544293046 -800959185 -433802273 --428941157 -839132432 --962391039 -166067447 -360584903 -648751173 -39697197 -108591318 -355845071 --892606615 -635030023 -805557735 -891375723 -23418180 -122788768 -742611651 -455376005 -158745801 -965912681 --521029252 -977870004 -787361184 --881746473 -337611211 --599205006 -766295214 -305194920 --629330048 -544445233 -698831934 --379881328 -144331741 -959028350 --223618353 -740503942 -449498091 -208672786 -668458996 -82672710 -852351538 -980583734 --10695705 -763555255 -486164366 -855492365 -903731047 -385688275 -224732736 -267721968 -139321029 -911658776 --289222430 -833011215 -758266869 -469936868 -63678352 -485144678 -752249936 -838122663 -500313499 -146209817 -277381614 -708416275 --332265847 -571108087 -484875119 --49651424 -786817826 -196912884 -328256252 --448916344 -849676029 -534289324 -31646729 --68178812 -659142386 -631800387 --976334478 -233382801 -621861989 -404204102 --890660441 -586562171 -551299718 -960341736 -266979839 -459957242 --429780244 -672330071 --932485812 -388980927 -539410762 -834907430 -532840338 -152396807 --23106069 -302728424 --708445249 -982047453 -568488768 -976188072 -610100404 -449744753 -411524661 -161681001 --344040279 -463555307 -330704798 -315884368 --64975021 -348989456 --10274111 -654534183 --929428517 -669761589 -519192837 -194126554 -391863180 --312298350 -136827654 -600666335 --673139183 -887266990 -503630338 -471599492 -996045269 -750786249 -195932029 -660114571 -861006019 -676430209 -433729602 -614277235 -798033320 --897059311 -701807637 -709452144 -969394609 -601626138 -418679200 -945227171 --670053771 -175895839 -335679910 --478224908 -319423402 -142106578 -188954193 -550075765 -727827817 -181088354 -211484958 -8859343 -278004256 -552305592 --793485224 -884071278 --912655380 -71440724 -326086962 -46901059 -496184544 --519875219 -276718268 -966931624 --824924588 -559255486 --747198029 -259264707 --50229485 -688430928 -573068029 -685565572 --141724679 -13159709 -688693283 -121060012 --834574766 -105289569 -400014126 -345092291 -5848832 --424958186 -50642449 --120303382 -586406833 -823979084 -619962511 -569152019 -713446048 -336974660 -744416756 -407016082 --740790428 -418746832 -349531922 -847109158 --360426684 -409190210 --59700745 -233586657 -858338005 --960443465 -323210538 -522082191 --170341914 -966971526 -447028637 -292936235 -80611034 -641424736 --289138508 -335584438 --483006866 -261742116 --675863310 -4978621 --221235268 -875539309 -524091703 --628195756 -778480049 -503596537 -685658143 --991505035 -289755112 -933887711 --574720623 -958736628 -731324174 -653289831 -680961026 -854716532 -892791788 --75641566 -219122733 -465696339 --467194530 -294216742 -307407063 -309951149 -87046420 -308631671 --900723216 -442104993 -20741103 --658527811 -630496713 -384375672 --340659465 -75122426 --963381915 -465293594 --130760045 -372443832 -139942355 -596994489 -429527215 --394210077 -236238914 -498201926 -681850737 --161681001 -884649718 -64416940 -148866971 -706397799 -15006971 --560770229 -231921810 -135016955 -33915646 -255011858 -484177971 -633730825 -721086316 --908215934 -645093496 --385404579 -401483764 --471921260 -655158111 -873212314 -992235974 --659877104 -547562278 -695613138 --326571283 -938625406 --838077778 -722808161 -835640029 -223502096 -875286052 -276587738 --680153133 -627349233 --530802181 -515207126 -270783137 -101629614 -993724729 -923081435 -678493978 --192114021 -931129190 --893614016 -616507971 -889470917 --978030433 -600156136 --653124174 -752415543 --170936769 -301854675 -903436057 --598615827 -718123810 --409646313 -787683433 -985980166 --626234818 -597241344 --646044745 -839676909 --969929267 -757524135 -624611292 --12904323 -827600125 -888613024 -261142540 --411412763 -323734246 -323890132 -928612025 --596586562 -127819153 -601735608 -248067173 -834121497 -890932697 --60708166 -197426225 -404993241 --686274356 -58424328 -702167378 -144873313 --928474445 -490273488 -225757481 -859537579 --210124653 -963664249 -455883756 -376294388 -879974043 -554094399 -628848479 --11341842 -367071006 --91442800 -622752371 -238152872 --282188884 -525583473 --654114270 -147632418 -728042786 -398175655 -533379781 -128270888 --240392258 -274648086 -109042370 -791787602 -509346716 --666143314 -475443755 -716169948 -997069619 -495297888 -86026796 --766295214 -392174713 -130195123 --804210137 -500239638 --22700306 -97803410 -863957409 -263692934 -490864592 -72445184 -852605101 -917720996 -483277926 -210143513 -541681028 -14707539 -305109523 -647431056 --288514574 -91621480 -374228414 -625366756 -772290640 -340781778 -487403505 -253727850 -185253430 -196757831 -809440701 -857725939 -639007521 -118374869 -990111676 -187858799 -672149403 -285442711 -149104971 --753817288 -709726282 -993436502 -704948755 --94772195 -661855906 -133820436 -117311216 --928377262 -975925263 --596076803 -995322660 -950178681 --806505705 -335227102 --237205413 -166628986 --746131603 -679372886 -650972767 --34202288 -339523603 --850406569 -580162949 -24202803 --373770160 -180481097 -393095432 --472764092 -204339327 --196370927 -267226198 --839379096 -640283505 -324046173 -425697147 -916559129 --234440695 -886132702 -387603455 -937274645 -130654487 --620318359 -774744816 -600288291 --51550738 -904112998 --200962380 -575292103 --246165659 -958852986 --630050374 -717700198 -202102046 -947827094 --879681458 -834459041 --152863367 -534097277 -768884617 -434368847 --194198261 -458306846 --692917508 -951717861 --939294389 -92465950 -719719606 -673907231 -895964291 -123719074 --294060357 -817521522 --883522322 -995583237 -691265512 -95354778 -455071798 -194745642 -717365617 -371117197 -652856493 -150128665 -830225518 -807917707 -46905897 -780753132 -62350310 -770006696 -396402172 -107777840 -149379422 -179034955 -670673663 -777721135 -556690503 -586745998 --863874253 -398850206 -467893127 -126448249 -36587658 -729523310 -567312184 --236711537 -394855883 -385530586 -38688014 -469315661 -23729173 -208151018 --483742235 -56949878 -729939570 -324616244 -364274575 -914772067 --860245003 -752540957 -949970528 -494982088 --595298111 -895720414 -104472021 --990424906 -392609966 -749842028 -454603022 --223837889 -152785172 --465331822 -366921472 -756286154 -633748543 -527372822 --505478375 -192402293 --515682835 -305616834 -162806188 -588831149 -396596709 -919764253 -778612157 -748665144 -354773171 -335159388 -11675868 --253264796 -577802899 -513470583 -817212326 --922031091 -658225687 --742925405 -897956137 -444488797 -467835318 -272282141 --121967188 -493174230 --892366455 -151214857 -865631732 -338664440 --508555285 -243207707 --257329147 -962464184 -219474003 -538465922 -239521374 -83913838 -597080577 -397487768 -258698332 --987750681 -141247097 -390633561 -232977032 -157091794 -11824621 --475072309 -916032519 -495356683 -102018939 -479565727 -606196852 -480435127 --542543329 -763406865 --63787286 -668929671 -84069554 -178557097 --748714796 -103832406 --87381017 -643797005 --111109166 -530926872 -641558819 --356867200 -326688511 --934041212 -941762559 -329137816 --333433950 -287042329 -372809946 -964616148 --143759784 -925848713 -858592226 -679215858 --424726449 -405371634 --179320837 -396173714 --868914333 -413572906 --417807580 -977684072 --270050957 -264967638 --208245060 -662182226 -416582148 -934111912 --239055693 -725515154 -719308521 --977066508 -697088780 -840968261 -534216136 -516910316 -756716126 -184825870 -805440735 -595336554 -111987973 -643754387 --363853937 -943278329 --418347575 -574366408 -125847426 -748904913 -487816508 --795474277 -65065978 -229366453 --17080866 -160825850 --819199979 -323669779 -54730376 -840452433 -463224642 -294916195 -197356529 -804143099 -485995261 --395173595 -766925562 -953256575 -589434075 --547562278 -427479384 -192874775 -833178942 --22224237 -16455280 -205771732 --976608896 -602333150 -625229095 -978969661 -720757594 -314083549 --461534042 -972681534 --487905551 -936811973 -580858457 --820905298 -319073309 -909259178 -805241521 --957322551 -444925583 -623403971 -668000274 -873272159 -391903192 -955451194 --542834261 -516062048 --26016575 -191969314 -582403411 -612148680 -21816724 -180260134 -460845703 --322451099 -107305066 -630195943 -230841466 --198866322 -966443787 --817926261 -162041150 -251962689 -350545946 -592339045 --253869387 -260252188 --568937864 -660025331 -846510986 -312955703 -755839326 -875936962 -403128783 -449851663 -959414765 -444831785 --141671045 -955774980 --332464439 -968935813 -836206237 -272717837 --848813658 -812090348 -343078784 -410269028 -735959255 -533240435 -10104533 -528107541 -427926003 --788724844 -409024328 --799915822 -642806222 -522664466 -791784909 -969447091 -458463503 -394442325 -903601916 --236238914 -269030962 --88064838 -641559961 -31813144 --880319150 -546695827 -361676532 -591968172 -261249326 -930343783 --486402333 -153700898 --547410940 -936321839 -199184162 -453522383 -957459531 -215949030 -672178278 -5656070 --574582429 -538039087 -464502070 --552610571 -316798741 -797670024 -873294252 -6154323 -6501769 -572779502 --709236072 -961524784 -699428880 --568790478 -823418136 -418161276 --378410204 -752911394 -15109585 --968799213 -719144829 -824190978 -188087366 -629881506 -511797079 --274019267 -390900556 --588519725 -829388699 -994488674 --425119771 -372582074 --417322727 -95700294 -491176230 -856043326 -587167139 --984877843 -572635155 -811355255 -688976979 -622133790 --745959673 -962760773 --732697285 -471267571 -11825855 -604363548 -859279800 -671175858 --349055721 -558064131 --259426625 -502009959 -492964484 -858943140 --971295691 -464847277 --494250838 -567013043 -230363871 -808753953 -768000114 -117831758 --750845350 -615026703 --580943394 -883617202 --548048969 -353089864 -282240623 --910125294 -909877016 -478474362 -96748475 -853738175 -661427169 -98932074 -864386481 -217803730 -437604864 -74258054 -443603110 --233984582 -83600559 --236644331 -890446381 -688067482 -503910164 --335092494 -109635722 -382186938 -770646650 --866752706 -96044862 -65169207 --872444657 -277321203 --653536476 -186152291 -784535416 -709376590 -916029010 -89072393 --250076139 -156207894 --102125297 -734684834 -880011651 -640637010 -759393753 -301650697 -639309396 -832797149 -139045846 -575719730 -711506442 --378509010 -280376933 -816780154 -475156791 -118673702 -541624994 --147201050 -353310069 --628405284 -125595859 --302001645 -475424104 -117692923 -132812231 -520748637 -948617873 -961687002 -343912213 --102272525 -295447857 -98861723 --523814720 -152886639 -323315509 -12583678 --263007927 -837449267 -634483800 -478032511 -516563357 -656518919 -90211739 -12595930 -349085632 -8733515 -264979871 --70485799 -183867619 --11276317 -980557992 -326051252 --321529019 -522017832 --479854715 -207515749 -637019452 -308554611 --96479962 -288131167 -837177863 -655477531 -661587904 --461860441 -420480319 -862248659 -162369403 -425679491 -155369214 -783510189 --770392688 -438618905 -281525028 --565380101 -243215963 -67132402 -219945956 -573424965 -844901949 --425626415 -38416605 --368649814 -509112479 -909198148 -501449363 -32163094 --856828123 -319414628 -496102248 -754903967 --546128374 -677703972 -859523930 -804585656 -560463656 -61070049 --903513930 -835185454 -994917655 -204489704 --24131760 -308226275 -729743596 -878228884 -255578566 -58354377 -691322089 -226005642 --157885468 -107368746 -739370115 -420458705 -357056663 --539227313 -859792297 -750796227 -540425764 --972708377 -233216166 -546750322 -108412543 -629526234 --831152603 -110936016 --3324208 -99814394 -393732864 --646288301 -763514322 --866394601 -989365845 --170655259 -939832034 --405407740 -609987281 -98348856 -312709303 -568922613 -516430578 -555776886 -372990570 --246742468 -536597867 -211345690 --216833099 -264460190 -51865926 -982296674 -1638816 -60743653 -790594642 -226865870 -363489151 -950229300 -550709472 --67749007 -556827062 -142518853 --20458692 -512608510 -16796965 -551433186 --762729432 -127997606 -102059241 --993241883 -56553538 --50152691 -922866559 --722409320 -12097729 -678630839 -938436065 --398516872 -59112271 --562661049 -914517770 -828641155 --33067878 -545652775 -363330464 -838118081 --856993194 -416734666 -653977460 --107042475 -609020246 -174120510 -346618691 -674473814 -364433371 -543904817 -104873471 --231812140 -10119623 -944317567 --88363366 -39914153 -723661690 -77044896 -641722919 -523684676 -542143649 --414811288 -701046089 -611585427 -818393558 -93486060 -132414083 --742496964 -167217333 -156215955 --41791891 -287272407 --730523797 -7728012 -649796188 -629167165 --633389350 -991572880 -63885002 -74128647 -741859876 -446341813 --111016062 -860290336 --495704521 -641887669 -630419502 --130080225 -701010414 -118412308 -633806623 -111076388 -153811437 -179051939 -834318795 -120878737 -616526866 -723919031 -528317099 --37090777 -275931485 -263408905 -149049492 -912186063 -104586572 -984271573 -69938617 -147076920 --779928673 -223770580 -852539253 -432291220 -563852256 -189934267 -595802972 -401096009 --837966006 -725597953 -93284946 -679806891 -906034515 --255370938 -785982760 --714974810 -724807865 -413722029 -362619837 -438771952 --678169569 -916999583 -628770229 -192496613 -356465253 --621879162 -901730045 --470838858 -199543949 -89335527 -5133868 -29306359 -462096112 --978539617 -285605006 -895104809 --398849850 -263475251 -75075914 -532794512 --915927261 -405726326 --108700870 -574064568 -135165030 --472754388 -965956787 -407898961 -543610017 --186625996 -276252301 -958987319 --48849984 -839180672 -681475318 -926325277 -434370175 -219880860 --361744769 -41401125 -445576682 -824463640 -5232181 -940129800 -742711333 -405794245 --611473411 -515942375 -556719529 -733851755 -882685629 --624448228 -720340449 -37453598 -648683418 -740084024 -281246874 --114538213 -125280912 -495319908 -546895205 -480145586 --736710937 -232998452 -64782815 -165975154 --457379447 -382423207 -969033376 --484246956 -239368721 -125028106 -611308048 -509602106 -424801816 -947232899 -47181436 -571056251 -901814136 --403809636 -972050186 -225935384 -270520547 -777194860 -968131872 -397840602 -590738489 --91227773 -365185587 -471956716 --812319434 -598290463 --955522276 -261472304 --71906628 -287788509 --495507045 -186561037 --30785051 -443758769 -411625270 -677840287 -154236807 -895969678 --193836723 -655393446 --914557713 -18350063 -408130411 -145228794 -345034272 -581953659 --134566445 -443587625 -918911612 -638444934 -135082515 -541044994 -77969064 -211049677 -6994621 -989393873 -283616195 -407049370 --162369403 -212931631 --502925521 -344303293 -612535504 --685307555 -939499557 -207262815 -846923506 -358204163 -441246918 -825277896 -163999383 -507001052 -98062758 --923172694 -129121186 -108564382 -282642756 --426940570 -230366312 -756340769 --89437876 -556996791 -301736522 -636078212 -752880109 --199824225 -618540874 -691493312 -241893882 -839342617 -219641770 --41642401 -15003930 -395695213 -638496249 -879543905 -13231644 -480624093 -568589184 -619108034 -438396903 -787020516 -731198058 -626255884 --488380274 -613538410 -556249977 --564005278 -569223724 -351802263 -741315548 -93075051 -671932108 -1740668 -110967530 -817676635 -362412305 -961561151 -728842612 -391867931 --707968803 -593472372 --428056880 -203762105 -433607435 -812534141 -768084937 -850456258 -360610459 --363929148 -927851813 -374190648 -98891334 -553372613 -914716114 -132628378 --554637557 -866311363 -165397236 -794662698 --833556933 -530044800 -873823707 --158303022 -68751902 -455978500 -783463171 --559761399 -828546298 -425846996 -52713201 -322410851 --791411822 -795829242 -168177261 -979349477 -770642181 -134898491 --351501591 -288301022 -914415275 -96996356 -13117529 -932649285 -460247963 -60377853 --963325619 -397381613 -497146955 --702005554 -211230945 --900951782 -175135580 -752333409 -455608278 -682551277 --7979204 -949782578 -63757740 --369887299 -502963546 --689891022 -1869201 --928723690 -416830863 -653207389 -484429173 -380412916 -98425186 -420696408 -885394061 -231840032 -549978288 -379428294 --86653747 -167344879 -818561513 -238973540 -652949214 -267218363 --414464400 -907163248 -953575610 -977136485 -297307660 -899118867 -778357729 --648154262 -648489919 --656334624 -62816426 --986111161 -662656905 -6839980 -314273130 -234920183 -753614682 -981105131 --52483233 -618882357 -305534297 -854095022 -206819369 --354038696 -749095533 --785860030 -453612393 -221736701 --218344756 -65744882 -354017727 -57862227 -740971229 --63174455 -220904584 -50581798 -722499323 --234167394 -841571370 --836571379 -945628588 -313622318 -168844875 -685805469 -449576414 -395786372 -45341076 -936430499 -280659416 -135213771 --810663996 -48739829 --46117554 -380753111 -283216220 -802749164 -791079777 -298327143 --346027355 -326881418 -607315165 --403634202 -648397837 -505706960 -419124295 -399652180 -795754250 -619262029 --854803635 -36898577 --706378797 -255738801 -764835502 -751779559 -668385046 -104378307 -525124492 -489235424 -878273534 -857457863 -5380510 -979104426 -534198443 --477589455 -954916102 -62263983 -884759624 -298482001 -479468119 -765141048 -104988372 -714628871 -817341021 -214668281 --69256024 -964971171 -954870770 -437516748 --971460372 -511191741 -328267325 -190810662 -544204071 -673933168 -853870232 -663975797 -609321287 --172827275 -540988415 -564187155 -404910902 -706223459 -948466501 -28065373 -764058546 -129727224 -923024574 -992804380 --340711549 -87191721 -12755400 --772462143 -988502424 -844852971 -536614623 --376521205 -131805238 --663244030 -41330879 -976040944 --717700198 -127953766 -58092394 -11059454 -86030075 -845748732 -517091747 -123934901 -173917854 -236436154 --888857808 -849752401 -8223108 -294422173 -95700211 -774367148 -473552990 -429516310 -223722143 -415676337 --756152642 -554036842 -250483151 -372721654 -304888016 -979678385 -709091384 -376958730 --439292146 -777391968 -88556298 -284542676 --569430441 -94452017 --263101843 -921743751 -783221422 --470991830 -547132880 -522731489 -863723380 -79544794 --951921493 -870375743 -263814730 --265019316 -657773309 --779260182 -935875663 -258281893 --532808659 -845436634 -71528302 -55639999 -366146513 --473929417 -967165885 -69769924 -157581395 -122155947 --582728391 -388401729 -783219056 -22232969 --948074643 -325593866 --9067328 -142165995 --67613618 -995765810 -701734950 --923666928 -371106128 -456570101 -34386531 -190708433 -73513699 -311578469 -620244868 --363193161 -968150407 --211857268 -799081916 --668129435 -859900775 -421141751 -393092161 -468854341 -371958443 --900571077 -836156157 --902162746 -343351268 -914257861 --866887142 -307910341 -344986332 -400594563 -638292111 -655541972 -224594452 -193540837 -116088980 --948617873 -647082900 -815368163 --535738320 -186510521 -299089699 --285628398 -442086933 -110046437 -330035506 --319249830 -917661989 -397141569 --696494800 -937760592 -903841184 --415222365 -705358640 -47656217 --337548129 -256410871 -621832027 -876122215 -511063236 -758359994 -51108232 -321968399 -543774423 -362146272 -657877357 -861462320 -115525195 --607111680 -214386136 -743257293 -936494975 -100743142 -990603034 -255164901 -800577278 -389936202 --501863983 -115280268 -583078552 -997594100 -860401034 --775043328 -819133825 -271147221 -902098167 -134556489 -445374858 -652600253 -93311429 -773410249 -626425996 -496547421 -621550700 -402932267 --787735618 -40018742 --774603007 -711252752 --331900046 -718221048 --259489345 -892647082 --533914364 -735242566 -242090643 -395669030 -436687609 -711552528 -742527504 -682131303 --586242189 -3577073 -684697441 -550218597 -943686978 --847250775 -330291212 -485061698 -980272923 -633376815 --529322592 -796045024 -839136134 --918824096 -560049974 -556361139 --88592697 -728605170 -577173658 -134362733 --449071660 -276659522 -494369901 -668607641 -307501790 --284560743 -556541570 -575957106 -81890347 --900632414 -354847609 -470310680 --66834516 -643092759 --695274653 -573559832 -608036411 -346744424 --608802666 -184097554 -93815969 -762637860 --476692805 -87989683 --307910341 -452457832 -144461843 -298513038 -275231976 --843441687 -768142640 -614931783 -197295636 -861343782 -577549049 -825618136 --247980023 -272380997 -595729292 -834993008 --294496468 -836445114 -811104924 -948594594 --935288593 -781760133 --946888085 -111563487 -798566935 -709479105 --60787270 -933973077 -349740200 -973350238 -166305708 -538111446 -87070032 --421068633 -59437269 --643166380 -178934414 -229967463 --872500849 -697022282 -122371675 -21516486 -272005176 --952999233 -314824603 -104337955 --597731124 -426332330 -740320672 -755278765 -71323247 --267817029 -565197329 -118832799 --717866788 -676428 --759141915 -653549685 -176556585 -126761452 -852868436 -412889077 -914636942 --511891736 -938694375 -592614966 -940960750 --714177039 -600550535 -711847204 --231047494 -626336465 --975098347 -205295239 -768201936 -190420423 -807452778 -71154264 -169212956 -175611250 --763282505 -6869172 --605365269 -175867527 -571147466 -868851354 -697161535 -680808230 -153532657 -522738292 -869979907 -398255757 -521859669 -819376164 -399262537 -518716368 -102827607 --924909818 -661458561 -949736445 -649266760 -446490953 -80470160 -791618010 -457772706 -863802302 --468690645 -800258865 -920292381 -172147348 -637166925 -827550351 -981262756 -122483213 -209990023 -172410657 --375742275 -650864057 -781419001 -704604270 -361995711 -988500149 -816599143 -947836170 -50109340 -657642834 -50574116 -651241539 -169420024 -489620066 -540207648 -168692523 -35616944 -615064816 --698849750 -479658578 --405552303 -611588077 -524836007 -43474095 -624345043 -564736799 -989782500 -622041643 -184745674 -646374972 -445364743 -842763097 -720245046 -574461653 --430821265 -868781050 -571316691 --225208453 -444077714 --342193854 -58943676 -784092371 -586961694 -548536378 -293057197 -807808982 --906041504 -536956410 -601718006 --71463062 -212255546 --634010830 -135545600 --652113768 -106005038 -549441093 -881723037 -331345781 -783156069 -687898349 --314474009 -626547623 -230652879 -247732581 -974834465 -358232653 -389391845 -252594002 -102736834 -882391903 -872691551 -996270438 -510983568 -784462951 -907692181 -238542465 -109304071 --288443192 -574681266 -338281002 -989925110 -440476677 --237474301 -988852487 -380310692 --747195144 -220102816 --929037695 -748471605 -170160999 -717229489 -802185376 --936418365 -301703243 -812756338 -641333883 -677059916 --443098136 -624736255 -692353506 -519006191 -155189533 --988701893 -712966235 -949634751 --379168583 -991285817 -958429121 --396576486 -291078015 -604139757 -843148603 --335988629 -819067949 -300134114 -53840548 -711495447 --589312456 -259723289 -716689217 --756448807 -5934332 --706652254 -655624962 -452139794 -194616522 -346693657 -764016334 --639972698 -299381383 --87664878 -687469624 --591415388 -597115475 -516855024 -757688878 -992623322 -982658413 -43908416 -859831110 -53289474 -842438100 --407698025 -392998143 -383936130 -17754503 -510628647 -329485638 -214711660 -942270842 -147232300 -427195505 -242740765 --885685242 -391305474 --394878201 -821225449 -108342310 -122665399 -387352585 --899411351 -49578845 --708015323 -303840856 -148458180 -502861060 -325807113 -673255840 -127737609 -519047888 -220502568 -438779780 --751285467 -275744606 -926290015 -590393560 -14063695 -782628494 --785024060 -663053145 --651057976 -889502763 -736013235 -82984124 --409518775 -876441563 --678366169 -600780586 -611931888 -335241001 -893123496 -637888581 --150635735 -4745971 -344955703 --368072738 -23585744 -169881635 -694468243 -986957503 --839486928 -52886904 --27245138 -500814453 -365968369 -107813386 -679808006 -209098246 -775804640 -646838459 -330801717 -280023376 --184333063 -437485228 -609921936 --78346227 -439153949 --357440272 -1260421 -833748193 -64387213 -589759180 -363872908 --320102774 -946935838 -883646359 -540366024 -439262595 --485708647 -121057337 --135082515 -727579742 --347842449 -546546978 --109984595 -626979186 -150797206 -367820612 --720354042 -10298941 -811108464 -438319446 --438647278 -706040355 -535469997 -485655899 --414701476 -904856550 -425552570 -998519066 -846463535 -42130888 --352756047 -669838709 -112210173 --692820926 -907043592 -335834280 -373851139 -801672258 -135793988 --286820640 -495215558 -438968035 -285362289 -864237738 -642846633 -501307543 -134511014 --213135879 -160308646 -30401597 -456010897 -111285772 -129772287 -577219230 --121620735 -681724849 -546313054 -771249258 -729664615 --517813670 -354436930 --840031429 -398066541 --258681794 -67890938 -225086253 -627625992 -638185471 -218281015 -667252074 --484177971 -498170893 -784831040 --797227332 -487174630 --424895853 -403648112 -286795587 -374799402 -60958540 -175055705 -696949767 -271485554 -1195140 -653959366 --128187761 -731772923 --545185701 -382170590 -49983754 -10414573 --975895438 -370931810 --72068305 -67200211 -98506010 -628929400 -612215755 -769745974 -384175024 -731151502 --536608877 -776067858 -907385966 --634633877 -741036824 --735086422 -910728001 -30206092 -380062719 -840851472 -301649555 -719237828 --911159758 -192213981 -880550749 --120308198 -170128678 -160524787 -971918236 -654883243 -789640292 --231667558 -144242890 -877416262 -455434337 --579405067 -510193666 -16147512 --341319000 -678589384 --757917038 -543132034 -132964953 -678778754 -286067349 -862352823 -701646538 -820094868 -643969741 -611300378 --382486659 -497381364 -652951184 -605107654 -303716367 --503596537 -61828970 --797787807 -94878960 -454997707 -395338585 --377597181 -165103929 -607831453 -882130218 -193573752 -963462348 -508598446 --973683332 -913626223 --682176229 -28742407 -771288740 -922668624 -836243016 -691165974 -317545785 -655299750 -430931191 --226565326 -19391282 -606788307 -713657639 -470526800 -294853978 -432308416 -886618648 -867251752 -650858762 -18249886 --984968799 -101839827 -58996027 -101267692 -144839042 -61585518 --418276587 -468814087 -915904981 --495230937 -49347105 -786938028 --746747405 -425912368 -764478619 -256049063 --903667810 -319946482 -909971223 -960918523 --859264649 -905899173 -654989576 -259141856 -368802548 -773039662 -755959524 --917128670 -207511630 -21159384 --277703869 -995769643 -543318298 -746815433 -233617530 -39880025 -270483257 -499748235 --22252002 -738346304 -690650271 -195582829 -663734155 -796162956 -949879358 --472781191 -65091368 --727580443 -27631995 -136033733 --298939069 -588091237 --30430372 -913417018 --365900588 -471427415 -75895208 -850179728 -623961831 -149135301 -174273723 -485886816 --204934271 -768386656 --949970528 -820281494 -1552471 -551382909 --362852030 -442144365 -357457945 --461788499 -957831215 -583650863 --263485325 -667593332 -800213146 -607386319 -378420412 --646058966 -544203900 -425578620 --892624075 -565923387 -738638199 -625471619 --595790912 -336086468 -120890897 --224958079 -103605432 -368720523 -195897047 --292336851 -992766203 -520048753 -357926294 -165598196 -301827833 -287378589 -342090173 --796473289 -163428043 -153421142 -757613793 --534135904 -339747584 --536018782 -503560361 -401210424 --290781207 -972632224 --402976990 -762052162 -611815672 --563581587 -441715732 --188860054 -194633522 --824201744 -38437404 --876251691 -53366474 -933634908 -127038797 -187535563 --758395314 -76631578 -493436716 -723939850 -136226152 --323315509 -177712127 --476864363 -697390990 --275586062 -503668323 -915033042 -343411897 -359477770 -602248808 --604154422 -938539489 -402349309 -437601412 -22097039 --846179591 -172649516 -617807821 -816048136 -470178678 --18582408 -87815154 -626103986 -211382605 -175488334 -928991709 --250888084 -267614739 --428965873 -533114801 -54262 --365086105 -709154100 -580040281 -461336002 -991055921 --643990926 -431884239 --170920817 -399977374 -857213391 -808187319 -74797672 --489046146 -49690278 -747484171 --951088008 -456052401 -213271019 --215597294 -430162023 --865434971 -634780091 -179227239 -820845922 -903109746 -831929969 -196135305 -295916695 --225691238 -181836842 --395654798 -541430671 -470274571 -409209302 -32207123 -872608849 -653965543 -377072399 -984151229 -672779136 --829087474 -717532757 -236713281 --674458680 -686289519 --916137977 -362437218 -513958504 -145990680 --173182125 -606586720 --886650824 -889853083 --273627016 -34910646 -699971125 -489126278 -366234046 --450355457 -651111862 -513284787 -816668597 -61662775 -551353636 --188845691 -921189523 -147901116 -812675112 -437068448 --625135366 -962558270 -132950068 -342160846 --135443079 -547264647 --719124977 -886685506 -968590013 -573905167 -427087019 --845861973 -620400092 -775259629 -38034386 --21455183 -993056813 --360203111 -89505566 -547568250 --442648028 -367579404 -574781632 -273498468 -463111487 --340635794 -634486503 --954412767 -416810387 -324346147 -494521599 -589143657 -755572903 -146068885 --797244411 -546246399 -442120405 -615212752 -837163253 -436333126 -535167964 -4406076 -417836582 --639739026 -523698429 -379069452 -781978342 --51642507 -521573478 -585949815 -282456316 -92962251 -389804360 --548113889 -463935693 --692408474 -621474680 --768201936 -190477290 --165620841 -210597625 --747384756 -49167511 -643350389 --375716921 -226538837 -388103085 -581677282 --514916927 -165842097 --387972318 -871074724 -968971252 -935644761 --290207994 -885709249 -205348024 -900653122 -704164008 -130928827 --161151060 -539168699 -38195475 --181654963 -595309676 --711734058 -713341683 -874453904 -547134301 -412339037 --278738255 -893117687 -310267359 --691492565 -780961134 -444943607 --480992775 -540167642 -854102453 -113121553 -66297481 -243308239 --612777382 -805756503 -583177805 -765503651 -600350695 --121120405 -915787871 -364379952 --506095327 -104748975 --352764532 -823309885 --825254465 -292454828 -143772417 -710928947 -136147842 --118274582 -54071079 -62730770 -229166791 -438588546 -772621283 --944190009 -377540937 --315884368 -502846473 -53882571 -584580050 -854467304 -638505861 -632989849 -155680927 -999300289 -478940633 -279200657 -779469649 -223029196 --602354900 -657683743 -488018829 -573707172 -418057463 -366930922 -964306638 --18079725 -425960855 --761644862 -889901279 -585012136 -418646690 --688969699 -590048402 -988524131 -32678565 --664416492 -294875772 --620443526 -800800515 -765386190 -513860282 --918007951 -429108056 --105246525 -126707076 -585607603 -698337592 --521769735 -223561293 --779616279 -73243293 --540290327 -276821476 -466262682 --807193644 -135557722 --988960125 -281745837 -37056089 --292304513 -76197435 -714292712 -770912505 -769849513 -316044429 --85680151 -427829001 -912343850 -188973808 --411617845 -716985248 --508839255 -615871798 --531978700 -138773487 --397840602 -780193144 --348974740 -917590696 -711725360 -25583841 -814230563 -241062813 -982774145 -357512056 -618787588 -787909874 -714236699 -870472515 -625195608 -357088570 -647951163 -202315893 --869979907 -554154742 --600666335 -954602338 -980307741 --37853429 -60672991 --883277369 -971053491 -666232328 --542594449 -162727228 -939817759 --630055424 -853726433 -240721365 -342604260 -892013422 -767101607 -177763811 -106472448 --560349161 -745255131 -582500688 -10155998 -945113080 -262209009 -997887285 --100085582 -851426633 -133535654 -184219184 --305141285 -742802436 -470375019 -301849911 -673001271 -47621535 -961894916 --374964757 -79056787 --248604136 -104079053 -916433547 -626658924 -841821524 -282785544 --564134590 -845974299 -378457152 -102143446 --695266456 -541436658 --748835063 -446525186 -466731521 -582686555 --280390199 -908314369 -657647700 -411273173 -732320434 --643602199 -38765218 --227505913 -977615520 -91218125 -288929845 -683718554 -983638249 --59393877 -299133717 -92196309 -953016300 --737290713 -858526183 --18398851 -513767496 -408740982 -927772872 -549080170 --610869449 -897074477 -788489708 -137844264 --173735439 -248481800 -834734763 -247204802 -912181499 -14184171 -101811186 -445063272 -592959751 -863057355 -938112012 --374829665 -133392561 -617922731 -903626537 -757692751 --748694339 -538139351 -113827772 -631802644 --931780541 -902939488 --726624512 -20802681 --150004324 -130578150 -521943567 -64422013 -481911930 -635276942 -442153971 -213491356 -515814950 --722636208 -417639250 -107416525 --315402016 -259681852 -431297871 -170187917 -380320296 --716361783 -444246771 --478954978 -894705023 --353073820 -576385009 -958439033 -193084042 -547423309 -445413330 -391726160 -992114087 -947319526 -953562614 --923509030 -58489919 --607636732 -805918102 -844856760 -536854198 --133851642 -627124409 --174671001 -313528137 --784815311 -255934165 -879361581 -628513919 -409960137 --764201863 -161126850 -565326549 -865009256 -980673926 -585895528 --975975584 -601070199 --268738496 -235219265 -445573494 -77057269 --519569486 -505319737 -994387699 -673764081 --96044862 -255731205 -699861477 --425706837 -267560479 --940548623 -458342926 -762661993 -774247240 -374281728 -889467228 -297880593 -543039089 -858127823 --636278703 -404113514 -189047712 -748842795 -1498617 -141445396 -747609520 -736493392 -585604770 -219617585 -258795036 -643703288 -594325796 -725781432 -732755471 -183334031 -675963069 -521300062 -993355277 -676720235 -673326112 -341611260 -68788635 -950558715 -613276206 -489769142 --376871016 -676558146 --183700600 -787257887 -267757257 -489610198 -204519114 --27812260 -533830826 -597226477 -63804774 -295518235 -436913527 --520180532 -937287762 -631433575 -518430143 -16779050 -871733345 -599361348 -34959626 -562759131 -123810294 -315066635 -592402540 -421210392 -626883395 -495405962 -371588840 --255934165 -10382056 --29701578 -396316755 -71429878 --942476139 -912932120 -287691723 --807808982 -296218347 -605433670 -844291830 -692711938 -343032087 -924203803 -730986489 -751340582 --330933039 -54860355 -47459872 -371421252 --34210421 -288735291 --23442366 -229649322 -365128186 -568559858 -974690988 -307928091 -537114935 -460347195 -826735179 -682898595 --27409907 -199702569 -841073782 -304059678 -513473453 -868808797 --8083969 -823524445 -977738852 -25127923 -352339879 -30112087 --764232424 -992908473 --773692575 -510541772 --800644255 -333243059 -371412987 -139655460 --921067077 -85812212 --80143940 -433262515 -332543399 -90255675 -293237867 -917684902 --675094846 -492275331 -921085304 -58671298 -455591894 -213562145 -413679735 --750492586 -732761166 -709287688 -697029422 -561812600 -205301461 -997097613 -546771242 -287445610 --868555969 -597902296 -521194353 -423722641 --927045192 -823566275 -190339270 --756042348 -850756468 --607678481 -324664426 -369540890 -366454947 -427574813 -499518523 -128678727 -415643903 -390108374 -5703912 -602865442 -200103982 -243780203 -993898319 -491474138 -339796773 -70052274 -869036117 -678001598 --673439211 -95253167 --911193394 -257100936 -712740918 -153413248 -551245899 --532840338 -552388571 -783507542 --385930372 -33774154 -470319682 -752909531 -873843727 --82142661 -665430652 --228060298 -786409424 -394274556 -982484865 -461603003 --80848468 -922435246 --652682075 -507467061 -572403663 -332161357 -450540924 --532008120 -957074180 --817596828 -296098603 -785860797 -600266194 -474229432 --10298941 -254624231 -535253401 -840751361 --37381774 -632005683 --885694296 -642486644 --293178509 -883585948 --296769866 -491279525 -302867941 -661573021 -868070799 -653687045 -561630375 --517721904 -60187048 --421740848 -882785866 -166406277 --679105890 -446093217 --538469683 -574126933 -204763231 --748362462 -265667603 -984616888 --987627706 -877753414 -351298180 --689232707 -268156705 -909231476 -246130977 --533643112 -512102679 --948869240 -949066875 -168207780 --504997466 -797258596 -172931050 -215034728 -260687718 -802455128 -688119571 --510133194 -396730393 -255299513 -568926678 -146796174 --384583625 -371191830 -571648178 -233963655 -756766691 --47106202 -684570746 --418704075 -345901853 --244724249 -809891763 -218233820 -98421144 --539478240 -956208519 -15083221 -788358127 -222413268 -363133007 -360847859 -141898879 -33522795 --920132829 -654143933 -708012931 -405034966 -178013349 -296265256 -300145248 -186040050 -804171114 -768393856 -743661619 -660732632 -769580276 -952389872 -463356762 --505087428 -519564104 -656524326 -627721267 -339283389 --895959905 -168237689 -518189203 --522991295 -294736800 -141032757 -233733570 -416204151 -466474924 --238542465 -263146077 -879390324 --776866924 -748249922 -386111949 --373432083 -532840541 -825622251 --173267023 -94153602 -833417653 -843137434 -687881842 -677860382 --629552341 -63455081 -124282832 -266054505 -819636607 --376803295 -205559616 --389695543 -175506216 -512141181 -20656556 -973434188 -559095029 --145575858 -176268926 --351373863 -32395812 --454652074 -949136785 -706637976 -45960849 -654122269 --91327005 -215481766 -663520818 -966459075 --949619852 -262232912 -107143763 -114425048 --25475574 -795580357 -838874721 -690527763 --541504578 -21537831 -987442125 --275120067 -919703347 -739764387 -251846256 --326604950 -71963271 -255613290 -846178222 -794336543 -939717138 -666039668 -352900280 -6946401 -800208731 --966662504 -328805458 -74250234 --416630993 -780583759 --958594332 -341455148 --233617530 -722149170 --694675571 -69736988 -797460763 -184409929 -504712520 -93574968 -839187083 -997744033 -157110059 -846060584 --986494604 -567087128 -662603880 -452483843 -464302838 -441949031 -848197701 --91488480 -360361448 --883429764 -176046340 --154618665 -437741553 -29448478 -569822530 -257141216 -413363117 -211897731 -181291331 -142499195 -418077221 -894737715 -237288993 --265183152 -958463833 --385664040 -554392430 --924080425 -834071008 -197019549 -918866654 -46891555 -854557295 -549368130 -679582338 -800106359 --862520452 -960149448 -37546323 --980506401 -334858452 -588723757 -629038536 -488569831 -202116376 --134318974 -420289886 -988887365 --70138930 -145728976 -375530180 -881810353 -908828008 -475116566 -839521074 --462665663 -569729029 --326931350 -304187324 -773124935 -675355165 -315846602 -58801547 -36880007 -63020707 -498593231 -702559514 -249803364 -901962909 -795375116 --446753307 -276074827 --728429135 -518318530 -963848922 -555590036 -753741467 -363110697 -573719541 --257224801 -432266281 -43313697 -629948804 -160199415 --980974980 -434644396 --854053700 -413855884 -211016635 -235392924 --557562300 -164725340 -376693727 -865921541 -474999932 --653356270 -479721855 --1088872 -294672793 -226987801 -169696643 -695924161 -882161743 -550195450 -813761050 -105801871 -435118193 -307610437 --108191455 -600994430 --444260772 -698550470 --804394264 -757627470 -589538792 --696995871 -494398793 --36513907 -125313823 -155134924 --371054909 -524185993 --979488819 -432459697 -895923581 -951997977 -776429382 --753799044 -566009419 -515267858 -141846236 -199329819 --221574130 -207258774 -250248834 -686644161 -273400727 --752256236 -919096307 -323426187 --512136564 -470784272 -17383999 -38129267 -671954184 -847658281 -339399431 -909563924 --759246425 -364752330 -266919269 -903843436 -679628958 -400699526 -59207152 --617206920 -353962046 -337809147 -461342909 -688119644 -31030394 -188198632 --671893551 -470171365 -625029944 -26041745 -46145799 --47674133 -19949509 -844348417 -222939897 --451281830 -675599271 -884717817 -913250949 -438420679 -828248355 -681064242 -345514926 --679183084 -413021025 -699537369 --401210424 -779562784 -491833432 -311084214 -207822763 -862759849 -398937298 --759373813 -664692174 -648622640 --18479066 -141865419 -627480723 -62274118 -770691404 -900152688 -225873106 -886359418 -428371378 -152214811 --365827823 -452739958 --276423350 -967198673 --354884272 -632025412 -704809016 --312460996 -454264008 -82519167 -853259887 -498438970 -984109469 -926019486 -574400774 --747605670 -660493879 -299117307 --754893360 -41876263 -681618672 -804109718 -160928694 --552086522 -574485165 --870375743 -79253733 -687596554 --923295782 -169289459 -135879725 -933844177 -568480626 -324843955 --706848132 -359726223 --107143763 -962262756 -646076244 --193990536 -936505369 -690227949 -364122142 -648348483 --384691633 -66732002 --370543313 -16680009 -781220974 -71199290 -288065207 -769977025 -271953194 -573480365 --948655891 -703118403 -278914223 -670322120 -517401110 -499621784 -156101503 --241705140 -973526598 -720240947 -832644249 --167932483 -98308464 --816014495 -57089779 -806570149 -626081023 --87162303 -171209496 -770662601 -615621239 --103190322 -991863234 --894597580 -510216762 -929284976 -218043648 -456676087 --919165127 -136994666 -821937486 -374739225 -352794454 -626810082 -856979501 -435281971 --120843473 -813036335 -264544556 --9649042 -702304799 -359036763 --403356286 -165860184 -178489854 -723986249 -322624443 --188214923 -454371307 -166108233 --991722063 -79757822 -77951629 -304565364 -725977268 -396500472 -698503565 --172674310 -905579073 -340154245 -106343485 -536462653 -498114761 -671662230 --966372315 -368133615 -906232448 -986732664 -56938133 -879804599 -508261296 -82079680 -690956909 --678346005 -607021802 --768688720 -500950359 -131713497 --535253401 -98262046 -137157041 -497653083 -742986448 -398324913 -820056074 -411728805 -470121940 -320775337 --867702519 -994500220 -2194481 --316310993 -862635390 -464074963 -145500253 --68673205 -256842699 --835460043 -707079166 -387489605 --464870306 -124179812 -45820099 -770261826 -745794079 -586279673 --213392860 -566141924 -487837236 -285730087 --484527813 -398132059 -727969751 -528749713 -388258851 --743832134 -907134960 -733694850 -56992077 -302943185 -597345380 --985744926 -457003318 --251559409 -652845089 -425671983 -660033232 -331517993 --813733942 -46424082 -607701375 --570124549 -996547803 -41276805 --414138038 -514315760 -60797258 -523649692 -223322539 --104278232 -294946268 -93756414 -429484914 -924421976 -658341059 -126212819 --876358912 -357758157 --482267526 -4813228 --806231724 -738354175 -340476950 -259861533 -970659552 -93262194 --801000219 -4062895 --967106133 -583853973 -417958316 -911940328 -607831052 -839081688 -695284974 --511533644 -790187265 -433378181 -928109460 --743561957 -402325756 -12762051 -448509566 --48139693 -718028333 -469028770 -811842493 -281987756 --142529 -765413593 -800356852 -306870729 --864418429 -428092044 -79909930 -152511993 -402504332 --470127445 -113034939 -410986835 -545002684 -423309810 -18435750 -272695686 -499876587 -648449668 -866175138 -192882523 -299758964 --937448519 -88277584 -902533404 -638997753 -605751141 -111628714 -397427001 -234941953 -34877131 -752247892 -785487610 -601967228 --930696855 -64360731 --749490765 -627745838 --682091516 -770887715 -674072474 --516069663 -854610025 -514813393 --995938727 -720335635 --58596313 -989768501 -55379931 -762687794 -717763328 --7596970 -923823962 -709639441 -413093040 -11060135 -832381142 --914771915 -92281166 --609576620 -700850460 -45867641 -680172613 --542399321 -988620502 -729291499 -363369037 -603514848 --338018541 -44631182 -30308800 -407928463 -112907724 --184194226 -920750564 -483730521 -764563790 -960326229 -721768737 --21850816 -11631142 -511571658 --291440570 -445941185 --522770386 -508971038 -64488020 --539168699 -338214653 -14473088 --909341031 -542244868 --259463452 -657711674 -730060637 --621531952 -869427528 -776385621 -654343588 -786804833 -321665949 -112077288 -224036150 -753078383 -156866644 --846909936 -703506666 --8350357 -234633177 -596838297 -880488209 -270164304 -539594830 --107267932 -57814138 -471806345 -585889854 -598023406 -885764132 -835237326 -718879441 --107777840 -124746392 --896276079 -812821665 -546384212 --73586523 -383726345 -575892690 -649631734 --394707607 -581443205 -12192750 -265956620 --246306521 -919896272 -500493980 -334731375 -530234455 -494686825 -642158875 --898639770 -896622177 -701144618 -172182550 -924582034 --716468954 -85702172 -933490434 -543280834 -883633487 -168459102 --242977634 -925430858 -478377512 -808311271 -847044502 --149075133 -570177963 -988697358 -389647332 -331015471 -354884797 -929076599 -93000399 --360314068 -782562328 -623746574 -754254277 -739734621 -172964857 -87403130 -885189196 -259414315 -122255697 --422343376 -927651033 --893525859 -505120771 -854672122 -395789714 -277385331 -188496283 -829982979 -528500807 --35989893 -747210122 -806357669 -517990379 -192711887 -222999074 --825344085 -308349318 -203323529 --384652257 -172371407 -704051907 -246812520 -399758424 -871078941 -456401269 -116393723 -791541234 -558677591 -11928650 --811015225 -61902908 --861593283 -577246407 --117052439 -666536269 -416825821 -111827176 --747430997 -857850967 -680861267 -911776926 -216952555 -334127644 -635561322 -914892327 -885112331 -456889147 -880392484 -229782320 --797509864 -554842170 --760260658 -918555047 --684248829 -930576278 -899868143 --784589509 -666250691 -208271373 -560256477 -598388577 -572819532 -429264573 -118866495 -533425330 -728046018 --478764034 -519719638 -334460434 -912379452 -365984321 -272065365 --815866692 -973514654 -860803002 --301751637 -141804455 -147758124 -380713717 -866640495 --325389938 -279374480 -118192093 --265033693 -372803000 -148161293 --835519270 -229931049 --163086877 -301133818 -453302058 -350145082 -53130016 -465962560 -428250839 -66238763 --740503942 -393634369 -820321361 -449688316 -859350974 -168880042 --91295768 -89645856 -63767622 -865293398 -285226148 -783651871 -647257072 -143363678 --875782465 -579009528 --393954709 -786514531 -574831603 -84379182 --825787499 -463992714 -145130614 -915598220 -525201117 --543774423 -296268689 --626425996 -7635384 -373761698 -19748633 --631800387 -347313226 --378477608 -212618304 -614811731 --650587690 -15069989 --189894036 -626775162 -602074557 -879278902 -691865647 -346069231 -921310453 -793826568 --244096811 -607502451 --538400206 -870983599 --896399909 -404286904 --764308152 -50272063 -169127423 --186262035 -537001507 -816306267 -247011974 -937551614 -846306168 --544194361 -950132787 --804201037 -256654297 -977374363 -199172849 --552166803 -683061703 --344385426 -374887800 --779896443 -510819825 -522655851 --156766255 -954474824 -953134963 -600644661 --781903903 -971047048 -506833805 -260508488 -790264179 -308219739 -417309747 -277674720 --276674703 -420864989 -657116944 -656509540 -858123636 -228557719 -60554658 -297405802 -814810437 -615435873 -130410118 --435100775 -486540309 -511462766 -556023933 -425474024 --974234902 -214900031 -594868621 -904260670 -312089224 -894283008 -866150558 --734177305 -569864496 --402389135 -834363782 -328789220 --783114540 -303488566 -180207371 -962880706 -292597234 --247090616 -134047319 -804947892 -597783307 -888762196 -208857402 --135650490 -583866455 --173682672 -100490027 -552365343 -842062808 --608569057 -364847198 -903883031 -956196314 -211244971 -429921726 --390066673 -256573580 --809234360 -349702455 --762958402 -714647485 -70022285 -971288056 -349654438 --668125472 -614841606 --583051597 -608726553 -64103717 --516865788 -594944080 -886401299 -152531251 --997594100 -659802916 -235870177 -658529789 --716375703 -156002957 -755558405 -487046446 -45741215 --527146256 -373971607 --453186699 -443785512 -460290353 -116066415 -324462683 --636981119 -130247451 -285901153 -253024771 --570141854 -978408250 -944601166 --100136227 -592541414 -830172521 -239717535 -915713159 --792069713 -490108867 -769850161 -292978042 --675055139 -449230219 -215161292 --115946685 -814413002 --191213260 -841701173 -991735914 -412513175 -172452910 --533892403 -389839354 -197339369 -894248295 -415453092 --149700061 -461901006 --511573516 -500352700 -935685228 -743198567 -380810648 --550078024 -133333263 --717682884 -72242099 -430053408 -330983807 --337371550 -572764048 --968390853 -443598025 --144398162 -344436553 -5299290 -29832139 -828199064 -995108749 --894460779 -476187848 -258105052 --820505574 -299221537 -248056416 -792309894 -914734745 --133998625 -763134705 -380137918 -228370531 -318291639 -924366443 --86960068 -996216169 -246438235 -769206192 -161374257 -482423083 --251718241 -951821641 -3841221 --828409835 -118552937 -718223156 --469675337 -221252848 -204362569 -460767362 -261808236 -485535063 --475842295 -515706604 --983164444 -541941243 -796112852 -834742779 -605472864 -598021316 --464445656 -368746131 --98394455 -625643603 -664771791 --535445279 -64774167 --839126065 -369229947 -293583301 -352658507 -522961753 --872400360 -115659563 -159188488 -323030146 -706516789 -491622874 -573404321 --547565885 -527966050 --660385515 -662954200 -144620194 -93655010 --245105485 -509690865 -315214890 --527918864 -705823580 -620632660 -44705105 -364481858 -908734360 -413454036 -453708933 --384704183 -390281523 --400424620 -900665957 --294547380 -53222832 -112768788 --161613988 -612910336 -178347207 -10247471 -369670261 -762508477 -738516429 -659435143 -768435825 -36316611 -434868982 -839642792 -531344561 -412848495 -112879469 --846860793 -603820510 -126045018 -694396690 -853555478 -268567035 -629182221 -678063272 --590540577 -450291024 -536859465 -704048410 -990128791 -827298665 --453612393 -561358020 --136827654 -498692692 -704171913 -487632379 --25861838 -814122956 -706817098 -91742810 -668928949 -950783544 -803906597 -415598862 --280659416 -730465049 -958977179 -989497001 -567919761 -123741080 -257457123 -608906347 --10995521 -454773488 -619998916 --118839119 -162425815 -954313677 -109751395 -897155083 -387429229 -195251989 -295694851 -74429744 -876184467 -376968992 -405784574 -884475106 -322962119 -574259521 -46463407 --199201070 -217319198 -751776591 -361354757 -81909011 -918956536 --248028337 -679455307 -550975621 -622068087 --647168666 -812920862 -821301666 -162869167 --438627646 -836178595 -607077912 --980943581 -143238362 --149704858 -313994488 -900833524 -268764734 -927978413 --697306793 -59001415 -307322504 --402521264 -202525099 -961029735 -495121814 -216299676 -957756843 --939027581 -935363210 --326688511 -490155513 -491479463 -520468346 --236466893 -100750790 -119949383 -818668062 -958976022 -221120780 -979304684 -683383521 -503880923 -27876600 -384609284 -690260710 --465005962 -187845469 -303331258 -43988089 --976949932 -320767361 -863200070 -320739854 -86085778 -369215245 --970453331 -268581849 -516262064 -503897044 -162612879 -53458493 -816622209 -542572345 -465059487 --257381251 -202812397 -478844031 -102582236 --446464441 -754229107 -771274847 -604360918 -991708529 -598462090 -918191337 -43970577 -64498391 --659503975 -758162381 -648087856 -254332355 --479797006 -873871906 -658493297 --646122127 -2213467 -583147760 -573429581 --291623993 -515614258 --420559683 -866874041 -962936055 -683622548 -548794982 --791911663 -485399141 -274976531 -240758631 -141550685 --602185633 -845847475 -914710987 --599361348 -598452163 -346927316 -252474662 --824466615 -370967831 --459965982 -419011487 -637303958 -346776416 --304492097 -159121381 -459102976 -964673387 -497784834 -829580606 -291556202 -990200075 -129557772 -415648437 -518037229 -451231079 -574634817 -636582901 --504136256 -592801675 -568384228 -558193416 -678041823 -359004904 --896733044 -664452023 --346618691 -401988614 --13011397 -329806936 -809091688 -678225724 -654124395 --930415909 -391181668 -130540550 --256222656 -830060128 -585774860 -393185132 -772240882 -590805545 --16993090 -279099696 --768522396 -123518391 -737391614 -139595036 -5775475 -62039046 -612571528 --236364138 -32137268 --641322277 -210446181 -204748564 -436362493 -812705504 --999048213 -156508838 -72482663 -481069291 -324736445 --625669281 -314703723 -552150580 --890543369 -319975841 -32844817 -137106095 -162721057 -502986484 --367664205 -445244950 --126417351 -517672621 --58180970 -938056729 --83952447 -391710034 --626289733 -277283157 -712674826 -900356879 --550672087 -68346281 -817454455 -860278488 -414497657 -36368204 -337171450 -708949473 --614531657 -718627358 -753776800 -519670318 -92987836 --880619660 -766622896 --828682369 -179025430 --83036785 -37265491 -484112814 --948724246 -845943283 -262644786 -339598896 -360930432 -641239760 -532105900 -977824745 --149981078 -51026594 -113502447 --176003758 -551003085 --229752290 -630969324 -881734136 -114753049 -409130157 --688798514 -706328950 -712058623 --342374038 -571245239 -666883912 -867541390 -40638523 -882239123 -817308667 -581408807 --591399867 -534272285 -177544126 -207925418 -529967270 -238867162 -297588259 -591289005 --753614682 -389752459 -890897512 -77601829 -818571175 -623223190 --956864483 -204951729 -96981247 --776568833 -659237837 --436601363 -371666944 --296195189 -74318982 -184217232 --376962276 -716745446 --365207403 -210700491 -949743099 --467152053 -844568863 -308597833 -566140335 -454763435 -555441123 --116645190 -856358253 -80415668 --517302359 -593741767 --106982497 -519332656 -634065189 --505728150 -495134041 -331014253 -734855119 -518419060 -807673314 --133499004 -692991148 -90252385 -499379071 -444287276 -743672467 --703051142 -46300045 -603290088 --108354032 -606062305 --64746409 -692469620 -757023040 -179924944 -878708741 -333126562 --462931357 -658163507 -504650732 -709365802 --1552471 -822283864 -375591737 --948711842 -415364329 -785579261 -726357443 -565375299 -533333663 -458298375 --98208132 -112427023 -54569005 -558376898 -842408338 --590412503 -557706321 -40785928 -493151668 -134790620 --325820976 -278762253 --53437442 -924468517 -633752175 --863893775 -83723197 -564661670 --293284746 -151883472 -655555676 -846870523 -813792477 --751532339 -182544933 -576728845 --740925376 -329479208 -408808032 --566441028 -464635305 --87070032 -351840733 -29181721 -608677510 -714001375 -613625739 --194030138 -761362628 -511348511 --951168719 -153407017 -717331560 --845632555 -488970612 -873857063 -571176821 --658143270 -305188969 --262054361 -52464609 -246630500 -860015293 -873288740 -40890613 -982591180 -100805150 -291586279 -551519785 -505483734 --847925217 -918576346 -37124542 -345919581 -31554161 --672819124 -591548111 -900282302 -391507364 -542066270 -628022197 -827063737 -61859721 -565376898 --86593996 -294022123 --440644545 -874737709 -601185201 -531147832 --283220742 -784526998 -242902598 -372355420 -243773097 -395997043 --951535360 -637241852 --926707337 -874624228 -519723790 -732444226 -721929107 -65127217 -888491177 -117048858 --770415875 -599204463 -518390271 -528650923 -73492891 --547437564 -708512046 --144497524 -283629282 --138485197 -543286531 -803209126 --211049677 -894228971 --489494010 -589958025 -734760575 -763350039 -71681426 --543338697 -49916383 -274646144 -757670243 --947467680 -521772066 --76952664 -350482815 -739145720 -606494798 -529000513 -972884438 -332937824 -562641513 -180097454 -723789993 --498141501 -788567088 --221608271 -25631643 -179147382 -847593208 -845244855 -510210854 --539993284 -846194740 -43813214 --69116129 -188167674 -378909419 -290933473 -581287018 -664213250 -546428393 -521845065 --216952555 -497088363 -426271670 -62666854 -478157106 --873806270 -662449144 -108128772 -896138055 -495298723 -37922950 --88125179 -472294125 --37708574 -885410178 -429207864 -357940031 -139937028 --10270359 -316139990 -292906060 --741615415 -930890951 -945101870 -412364790 -368565164 -292072695 -90790384 -643349948 --770717173 -966991598 -122042980 -992450978 -961853183 -775240543 --368415631 -766193721 -415928345 -781923838 --90171832 -193918229 -961083207 -685297055 -780728706 -39328391 --261156592 -706157245 -529645076 -824861324 -426654363 --770736354 -799448688 -284979061 -405911023 -282054156 -815799677 -399224482 -717026666 --474939216 -904480269 --238493318 -261559727 --857372822 -229824241 --489107518 -619167771 -352058925 -776347960 -831418906 -222733543 -727175047 --127590354 -172673415 -692345703 -507032099 --804511403 -966107584 -315017002 -78418084 -136215885 -923677943 -420800610 -38425671 -128406450 -370084884 -96170422 --994139080 -31105382 -205913989 -773508107 -906277941 --352900280 -928753548 --855936767 -471336747 --209380251 -548967687 --449480369 -180889054 -991016231 -73647074 -865094966 -546822850 -806825248 -947841750 -950644756 -162723468 -837795282 -945914114 -134543869 --291415055 -417160278 -428134779 -91521176 -810592735 --838992401 -689017218 -506083179 --566163136 -923031432 -818323641 -219133787 -781858008 --698225698 -237346584 -791986702 -913841878 -131983004 -267792244 --74153547 -747479727 -746398201 --841801377 -841989564 -872578631 -198359584 --539497377 -461781412 -113874228 -737685728 -868178610 -685477385 -761842474 -360492510 -246717796 -124330557 -53955834 --884238840 -223501586 -771553822 -544755172 -552880013 -251561641 -424280457 -920936670 --422183409 -120814731 -649746959 --623128771 -672954018 --251300723 -143364341 --820400195 -870233178 -89073675 --492238265 -929634400 -659026068 -155560202 -710788827 -647045097 -277415735 -986941272 -493314475 --374893766 -997854936 -82085 -888351629 -227655025 --857116763 -626024490 -927381466 --543255007 -745672407 -833215870 -487666877 -600295946 -544803136 --444715316 -633264522 --924689555 -813404003 -282801877 -826347264 -914510058 -115220509 -708886450 -887162384 --390101038 -151153949 -537085429 -188047482 -370094812 --791632799 -205228590 --915853188 -303858066 --805632816 -266990203 -496194194 -285820007 -734784332 --21286479 -513816271 -97414868 -605910291 -478757674 --638024006 -769692784 -438690123 -533647698 -280052550 -864929511 -851765670 --808062353 -2289771 -954109973 -136814741 --456154516 -683684331 --551976345 -648664098 --371026239 -263387524 -200586569 -942107949 -285011877 -939116689 --106294632 -709975028 -360614442 -748560656 -253613672 -304490659 --974660094 -104124008 -905774542 -827632984 -397536160 -983565156 --38655228 -437310311 -582930930 -115215329 --306188072 -549274212 --317092478 -370390344 -581935032 -61094542 -333484106 -581875200 --883018046 -685207852 --370238205 -202013410 -233565580 -225663956 -776085818 --800735616 -401393978 --758119393 -296346466 -249929681 -913667864 -982117651 -212432005 --766167888 -936038375 -281963971 -445800980 --774367148 -461409681 -571815510 -536808423 -418767884 -582646098 -201659752 --192146879 -830889186 -301100590 --643703288 -377302083 -583813381 -692163230 -628455650 -136136295 -85833020 -473051394 -241719889 -431362606 -707850676 -357399883 -438567149 --901063467 -775318593 -523028644 --57875813 -316119605 --178815704 -808993358 --241955542 -851933928 --608577167 -245380407 -180741071 -948438267 -896760890 -767730704 --989784508 -127909209 -184101571 --671556660 -362202343 -350283021 -871884141 -321817939 --477931033 -624778636 -32103863 -900530394 -175991078 -552481636 -731380849 -429573121 -478353263 -488121472 -394864827 -492909541 -804871942 -594605205 --461781412 -614389726 -896023443 -403744957 --978381071 -14500211 -213436503 -488129217 -70230909 -384176082 -121386779 -636741521 -772213754 --383372744 -903878788 --6124793 -610654864 --275490840 -165707799 -229937990 -287707585 -915657469 -593642257 -863321600 -205112573 --755788202 -143908054 --602960503 -153572145 -206843928 -358196394 --804109718 -728092463 --378279148 -779463677 -478707249 --582572697 -390370325 -439970526 --186803771 -227168459 -977588239 -273882747 -192048145 --973157579 -343069413 --185594661 -194542683 -321386491 -244364798 -218938279 --950220539 -886089202 -590846616 -875473149 -574781312 --484032579 -933865058 -994217848 -467518899 -676866184 -804684918 --243686271 -376783749 -986063526 -533660902 -418845684 --61630526 -705650879 --175725449 -728453807 -205850055 -31481168 -712309824 -135961880 -554702647 -891263908 -787519681 -423277097 --337529460 -852214965 -543727469 -282114192 -680631256 --206665544 -50412231 -991783567 --472303689 -183044373 -553406542 --754996552 -977290690 --436899636 -224281846 -446748100 --763851612 -698643854 --278833661 -189841549 --699519656 -512440991 -870339323 -402589516 -623943080 -828039271 -625742152 --112217352 -173584304 -824730921 -733756377 --1317032 -271095160 --558414871 -634814560 -724360767 -462508280 -890552522 -631962738 -808074868 -343568558 -538988015 --105402432 -778875250 -175194433 -339138459 -126566946 -200637250 -437369555 --700913930 -990424348 --482228119 -247878164 -172669729 -590080187 -542136839 -499189847 --105875341 -125885239 --871040655 -199203888 -145463374 -184973461 -960678808 -345799092 --330603910 -689570745 -890246420 -126109352 --444878349 -691996697 -509302964 --357926294 -650678694 -649622125 --248184636 -834044110 -744287733 -948229575 --96548040 -723059761 -665691664 --207576658 -635308622 -983154019 --616299680 -314657648 -190209587 -752987788 --214668281 -120981215 -305992609 -137956752 --659407459 -484075100 -840295979 --326902748 -61159974 --228427838 -161097837 -666950983 -334115026 -702732247 -301711020 -405583678 --991873640 -648328197 -116306458 -911849548 --704994677 -145628973 -508183235 --112167641 -775651730 --972090797 -439167920 -850446290 -916928920 -748025993 -986557224 -977580284 --139418992 -615605938 --584405017 -773078941 -645402103 -894813158 --858338005 -732933457 --267316887 -935284653 --603507005 -680419746 -206152286 -384397069 -98769812 --994355951 -858387471 -775140258 --140527080 -703231284 -404317574 -63681500 --756340769 -824199444 -697295602 -718838092 -906474863 -631489038 -778134136 -241560802 --118044207 -975267324 --128389358 -232060174 --96086189 -813617734 -157263590 --517162494 -518731046 -194709382 -971245836 -63357119 -839391128 -406024458 -266198588 --616767873 -986206926 --506031753 -144980343 -807002682 --611221564 -51492215 -191815842 --882685629 -358521715 -697972064 -969689559 -433363906 -276617433 -580031337 -355038485 -623842101 --366322277 -946936169 -241987531 -758149392 -186489644 --457650381 -227963678 -652423337 -274747683 --175541156 -34138206 -20401163 -171940065 -898984533 -212576652 -869091520 -42955258 --842733283 -458565837 -446632974 -953263164 -780800587 -19891923 --735224281 -74235294 -972098373 -146727052 --141665226 -516862889 --99470106 -697181742 --720992366 -932461028 -39302994 --199354098 -89583736 -785919198 -63169545 --283616195 -239744711 --241468818 -872207692 --74049094 -146934297 -315853701 -976461459 --477178329 -543406022 --712245358 -366745512 -762316608 --270556406 -177659220 -40921979 -214499468 -816224435 -910362524 --369397780 -715578422 -623583910 -444023275 --794156747 -309731011 -237620348 -121018066 --605990992 -9556856 -916486168 -456265384 -272072140 --217268488 -317455209 -103668681 --163185803 -799870127 -153001805 -532262885 -60383174 -794265113 -810979867 -191354382 --490977879 -456997475 -475354086 --750034336 -158862442 --794346023 -761922974 -288915820 -496577282 --613744364 -572125979 -660676795 -501959463 --230418427 -742282577 -198935753 -791129986 -207813681 -305006830 -52673304 --108810794 -598471603 -184502807 --585313877 -571181337 -796162907 -668350770 -261816398 --307055755 -92180748 --648666804 -172434193 -748182266 -257834726 -148964842 --414859243 -729237885 --268228001 -751442895 -171384627 -483606387 -180415659 -108933568 -893973046 -418296020 -776140176 -345947610 -486087162 -674019996 -232750854 -908884183 -216244348 --5934332 -16916356 -226104904 --848616448 -147470773 -786222321 -477033865 -439541769 --748977353 -443527068 -677222294 --121033330 -17570277 -948178086 -150890970 -895571025 -133247257 --546389332 -818587306 --297316494 -686558471 -787689524 --230227052 -95713807 -219984801 -678085743 -732297755 --163465428 -305988101 -548334313 --651300319 -416207718 -474859534 --119078600 -415213682 --66208314 -782736857 -108335255 --427709652 -973010374 -766144516 -538150020 --697136262 -518235463 -402657481 -306060878 --609184262 -755987335 --96101504 -586260035 -933893146 --513470583 -420305612 -731759734 -913211866 -11051168 -678493674 --469938528 -922337883 -367807221 -318950936 --425870503 -647709471 -917086515 -236773701 -38579833 -215409729 -514253438 -988633321 --636022633 -809934818 --480125688 -876464499 -860531193 -999547250 -35338067 --230471993 -399748722 --961595608 -26127277 -965368601 --713408870 -846346856 -102809866 -424642317 -39672914 --536980970 -377329650 -685588819 -811652422 -663891631 -207806770 --498176761 -961052313 --827461811 -715911885 --676866184 -559949020 -909370720 -776716185 -839891233 --679372886 -319980289 -84746583 -179244346 -243747330 --437516748 -379365002 --186465529 -17184537 -409383945 -909655705 --691996697 -64159595 --118587439 -971263523 -565599976 -402396145 -345935789 -555026493 --395019158 -303362775 --513124298 -947947878 -985868185 -35457574 -210199604 -943287409 -796123165 -452584984 -748693325 -456584637 -220641347 -416729763 -928153336 --339701377 -782833369 -428811257 -327003454 --333240033 -799541451 -58229586 -191977346 -789908901 --209262765 -239508859 --588464855 -637111812 --51752717 -885442315 --416374154 -428287189 -843753322 -248153101 -270008710 -452023401 -394096785 -955886030 -363901137 --932710752 -135632576 --285893240 -424113894 -833783238 --589291395 -119561435 -840649498 -602579556 -264131067 --874046160 -297735488 --522491858 -123658993 -46053801 -103374736 -781854043 -531498395 --271496684 -752977769 -837848704 -683210628 -601936853 --843260099 -946864968 -675998064 --61787203 -265179278 --432421772 -739314044 -170162649 -53476819 -158747451 -143116203 --499216056 -621740306 -290735444 --338101708 -977478986 -943853518 -571003536 -692697741 --122596629 -741328915 --426618939 -254829938 -872039537 --93655010 -479084099 -612167564 -637893492 --225860261 -769687461 -444054914 --641868525 -715586722 -984936869 -610629378 -864408449 --919063017 -91231465 -474450915 -116025662 -235103999 -816241112 -108937299 -73626707 --919100016 -748189710 --975574277 -51310102 -933193880 --276513760 -853718732 --65220723 -310255613 -549937974 -452379050 --79363249 -723063455 -880046256 -49072 -79643267 -902526364 --240888690 -279875948 -165609492 -796119914 -813140024 -999892599 -166505 --438783454 -598217241 --570863168 -753172131 --832327512 -946451086 --271070847 -147801461 --46762822 -149580221 -434518538 -358751405 -229903786 --649127519 -561190564 -988934459 -432205091 --844476224 -671269648 -751346909 -484008540 --537129498 -59265961 --690630026 -648957717 -400879834 -727295633 -522508515 -989568569 -156613685 -812580822 -238931149 --570531279 -570616792 -429766796 -617191016 --814903866 -49299945 -18536176 --803293441 -310535552 --165345052 -358933380 -882724996 -406257563 -434773270 -744828008 -117316286 --380674286 -171304428 -665393727 --53289474 -766507888 --178623600 -890037811 -758735514 -351726232 --7485493 -75920952 -745251767 --114147137 -345398999 -186510194 --326975673 -699053191 -257379439 -942505039 -942614755 -891713968 --88148831 -797371232 -170570095 --972098373 -507625259 -656938821 -432141103 -404999295 -54074395 --847109158 -475691723 -580405955 --293075430 -708086707 -981139652 -107746757 -898179554 -72330361 -544041675 -955354085 -466164988 -857988941 -423774009 -432842959 -152579695 -501959996 --121327120 -605293925 --21537831 -52380728 -605541299 --524707807 -241377775 --954843997 -463635198 --794598104 -67403674 -940191266 --287488309 -595219672 -620131330 -282499814 -118934293 -940490003 -736523170 -245511772 --758781654 -266724690 --986887513 -980119779 -542092334 -984473441 --188496283 -794832002 -765645252 -270160506 -624124123 --585353838 -325772895 -70197190 --599629174 -135311290 --960069036 -789799798 --984082428 -526422967 -774272961 -29338040 -229209362 -724752380 -393468104 --199053613 -399088656 -639919690 --306113353 -551208996 -316477966 -103607556 -397586434 -514477572 -196518434 -638020781 --770403974 -490665208 --576956783 -107105044 -791975998 --773867054 -177952489 -770138263 --620616473 -940248214 -159570449 --135983900 -55834976 -48281345 --342118799 -166369585 -20267837 -46866284 -521146602 --993298748 -892974282 -96032986 -941290429 -465300246 -198772457 --148866971 -538471274 --449575938 -623327016 -771412162 -831586139 -270511897 -413539267 --36907843 -891187166 --230374259 -518838858 -120995577 --915394566 -319805381 -732684660 -881155968 -506461111 -401782791 -517900314 -457454990 -782896597 -372653978 -161696647 -431467893 -551986052 -506862913 -106570435 --269358275 -991264348 --658059572 -411140027 -682991355 -220057885 --895772973 -936383525 -713069552 -440595854 --692944412 -415502238 -85314904 -731364910 -499303307 -207308700 -55432097 --96628316 -164319200 -1071451 -774696442 -438946313 -440317474 --328789220 -952773672 --469187639 -834848264 -667615638 -356484306 -303723410 -723833812 -60368199 -113285126 -745761421 --845354618 -673688053 --619869695 -16007015 --523910856 -666346211 --788308280 -896409251 -435508963 -3225574 --962039097 -527005718 -995488426 -857455460 -139674051 -631033086 -568627726 -483174435 -716896198 --21599764 -150682593 -600120146 --765468316 -41592250 -219513078 -575801495 -27221319 --769286207 -572178928 --993559026 -722096528 -191458601 --281195444 -653901130 --830626945 -189244639 --372624667 -488383377 --460290353 -495325770 -180291600 -682332761 --193081557 -507700116 --81191461 -511972490 -679292566 --445573494 -616109716 --547125774 -759361523 -71307846 -871738165 -248687835 --974461331 -507568505 -68279085 --338180722 -504256909 -839808539 -943384179 --110967530 -131737190 -935565249 --572060240 -488415557 --960370162 -808364766 -344125289 -839317837 -193651365 -249361366 -528873136 --904898249 -720619669 -439478804 --587678434 -355268181 -130187549 -976700441 --89072393 -621203847 -153609378 -455003618 -633080562 --628964293 -442060548 -317949067 -990126095 -823240830 --808849366 -250755 -143750869 --579409794 -956052935 -540872436 -107790618 --59617415 -418752216 -497309502 --239823611 -850656448 -921704344 -405557914 -691144019 -108085324 --682901841 -24530897 -50389608 -900489476 -854544725 -284947844 -21471634 -449671753 --562449127 -610033335 -178237024 -460058008 --972571482 -125276927 -598693173 -86981681 -2359512 -633759632 -85488147 -267617222 -882396258 --526127898 -233967513 -857605683 --437023839 -154139402 --178890492 -286917455 --166072028 -473060758 -715227602 -32939987 -747119996 -563366974 -755870504 -839677305 -538404696 --933628288 -510565045 -83975665 -52653824 -14299582 -702866400 -941425089 -99435824 --934209724 -174322720 -3244755 -950816805 -769876578 -467247595 -653937157 -276572957 -35737099 -160758023 --648328197 -522790209 --625435634 -194718842 -453857386 -809353109 -205770690 -81256571 --686425194 -964988808 -785406699 -319846324 -703518707 --971759568 -173934856 -284985177 -530656110 --863412235 -852372206 -87265077 --890671158 -353842538 -87317999 --203743085 -600095815 -34289510 --396979304 -122196863 -972152033 -871815189 --903544920 -308266090 --954929377 -792839625 -26451082 -891309427 -225891022 -618313100 -29129817 --241628778 -728260580 --605590339 -119063234 --438875639 -739776612 -589064228 -415091012 -677593010 -538139649 -721253554 -576566103 -637640287 --838752760 -702238917 -225735799 --576544407 -12216874 -712855643 -827127613 -544477206 -131838822 -732980263 -429136174 -76302813 -356546062 --31637524 -610645264 --269934468 -216667464 -77748698 -210147993 --998623447 -69001557 --298902382 -349424769 -311114164 -898790184 -461972007 -501108646 -501522062 -677559328 -927433252 -406627186 -472903936 -370912205 -113730911 -354867258 --166505 -383340239 -115365390 --748395112 -613540788 --770977468 -130882561 -190356097 -532215072 -670409586 --706575014 -540546860 -294649653 --147421976 -932234705 -409474901 -205695961 -612103361 -607768044 -762843775 -699304468 -124578145 -515746656 -612901819 -613900865 --189931184 -866215614 -848366393 -773440448 -64691133 -100412557 --453996140 -304485511 -874996037 -195251548 -786828571 --778907474 -707170675 -538728099 -675692541 -410525550 --498388732 -482311204 --450811257 -245191135 -434519769 -998279553 -393651684 --803548463 -624477244 -574735519 --622880336 -861728867 -246842240 -737509878 --268439311 -95858318 -112525394 --760405198 -552743021 -302918680 -100315942 -137823330 -528011759 -557447631 --621171021 -226547658 -631887730 --286675253 -842367335 -876659593 -699872095 -121230804 -873374055 -342482003 --552278799 -903469642 -460130484 --676860017 -858081169 -577759423 -547475602 -882557118 -947660445 -462171905 -594265412 -193736305 --769395145 -801100537 -817116939 --794336543 -31069188 --648489919 -412454861 --31639140 -221784945 --397088205 -732311570 -651741338 -385015766 -381083830 --359253714 -517933075 -578981383 -666299822 -644849931 --176333425 -585521548 --544251061 -198283409 --293899092 -487076637 -894628118 -895031019 -417329456 -147514219 -277648148 --383350260 -646847805 --134852602 -463902064 --501600119 -845359715 --587458275 -256849387 -622358313 -461709944 -517112082 -947682220 -126148436 -892783365 -462757089 -341517374 -457869331 -570581540 -272236139 -469607204 --619788815 -942114287 --670097474 -392443966 -494665604 --323473422 -482544246 -742999576 --272037081 -224714648 --71379858 -46023487 -196654735 -962766311 -249113909 --441970958 -383732178 --542389538 -942118362 --423062102 -888267354 --593072369 -407247171 -372223367 -672589387 --591289005 -559560329 -758288067 -800238272 --822338872 -604124053 -198077374 -677657223 -118128094 -813162290 --977529971 -928117052 -890593266 --716023298 -783630326 -916363801 -58582369 --837214703 -421385807 -496996890 -488761719 --140495373 -521305947 --788221884 -317853108 --270724495 -862660167 -3431324 -724098006 -552686891 -542716927 -973275439 --48866054 -824250038 -956433285 -273024108 --296620386 -794735551 --762497884 -292827159 --573424965 -593000919 -189669602 --255605787 -484382930 --138533337 -770327371 -218010081 -954286689 --495325770 -771463843 -577808908 --383602361 -849127011 --463908161 -168255328 -689852894 -299184252 -434455209 -27716230 -152071886 --859197073 -211048442 -465111877 -244870411 -124478902 -104015230 -589322628 -476998085 --910859529 -56090703 -430525130 -785692834 -529037924 -340634804 -175407033 -798370004 -122216201 -393457286 -181717072 --343150799 -780053527 -808659623 -596934005 -645323199 -236088263 -303772355 -239520981 -240112947 --752264924 -9507054 -653422845 -973918016 -636392520 -672121841 --793316565 -491517471 -354911250 --343751968 -261427989 -976740922 --871111907 -313510675 --606662651 -57831151 -717134422 -741834063 -575685905 -95601857 -473711769 -192691135 -57580573 -419199706 -171533247 -702586916 -762200513 -945858777 -546436667 -145598779 --419742709 -158606694 -78667997 --978388980 -588855535 -247090196 -44870468 -311270083 -801271783 -568131496 -154293247 -576551449 -362426840 -361768259 --962069573 -190511007 --712700295 -981460576 -123107773 --390204017 -791955678 -172551603 --871027265 -665467725 --745017342 -862543566 --248903695 -632548672 -85570111 --838421316 -262134990 -690534853 -534369015 --968201014 -882054289 -754926002 -581388392 -10433047 -18746216 -549062697 -934048546 -943460382 -48539655 -132627482 --758632155 -437728693 --665014465 -826826176 -397714803 --832342234 -201409416 -479304691 -259355117 --840072362 -101806054 -562053256 -642182686 -413930759 -3879523 -545256199 -960768387 -505403962 -248369276 --206956894 -558514897 -869574734 --767407094 -339174502 --949599913 -958885931 -493480240 -33660940 -385247187 --372167941 -765200086 -177382402 -314405855 --696127001 -716900036 --990230690 -896690107 -948890345 -133628778 --310779471 -942630530 -839778642 -14248982 -986855837 --755686633 -24700667 --873607818 -933253400 -389675896 -382229610 -662509541 -693978097 -938796547 --259025002 -918949653 -603041810 -834736968 -429576627 -448752484 --741908409 -860485294 -896659440 -47403144 -472988909 -40865558 --515256661 -57273788 -408025313 --970454216 -828610092 -430222273 --214767465 -185485745 -468057574 -860547909 -600266047 -581967119 -56992016 --137358197 -548034387 -929975672 --651192289 -937175556 --657974827 -968311857 -278556179 -671668286 --46901059 -255840408 --517571158 -508480178 -215048076 -804834703 -639577697 -930711162 -554561486 -450166479 -189707218 --510081137 -548614661 -981973991 -24011056 -892797310 --333711718 -655409551 -400781574 -185358408 -605056678 --827656476 -383447245 -128761895 --476235280 -224764987 --283629282 -64761304 -995641352 --502584248 -44780682 --329929648 -99916478 --39136946 -122559462 --146796174 -862235172 --258048709 -561653787 -167707980 -557598534 -879823522 -325313703 -402183256 -218998463 --747521303 -883735059 -173725219 -106223390 --317260724 -19850612 -663666109 -57158388 -704732537 -205379323 -281748994 -161964299 -68852769 -199753625 --641911483 -851272001 -702643333 -12767643 --225607084 -400551203 -691871824 -595716842 --474522851 -202644247 -126548346 -86920346 -937537096 -996496661 -826576120 -855966372 -782140812 -648017056 -318933175 -955267591 -552160407 -32677400 --502131297 -93557122 -6448727 -965011670 -652084300 -706481162 -44316998 -829823900 -957500354 -593286079 -914696107 -482170661 --976401264 -14660255 -264884516 -974835781 -455349488 -904020121 -5784836 --322507042 -465182693 -402503758 --753928384 -946174246 --770122217 -38616358 -624870101 -741752527 --540497050 -110843926 -912279405 -15621175 -743773202 --181747415 -80528266 --841781594 -911427547 -264703811 -459804459 -192871767 -786083885 -42959753 --795744253 -38551422 -638876993 -388105989 -760126538 --288712424 -723306766 -670047136 --32730102 -175247381 --501774424 -288733136 --417836582 -856237761 -340663255 -246214026 --639345847 -904202377 --359036763 -693817286 --182182337 -27243467 --807047486 -251148501 -227951632 -885503167 --154625165 -997247183 --480622475 -754938314 --754903119 -304813389 -634511122 -573266446 --631262063 -288132597 -75067427 --342892476 -861937148 -518958907 -176776745 -858222977 -596981525 -575033644 -129788632 --75202243 -93678153 -527625628 -251537698 --773648984 -221665944 --58582369 -906605497 -160383052 --729004367 -243648 -856222009 -410923876 -879777945 -192436869 -47729928 -905855105 -462364767 -533500795 -534005185 -920894486 -298963364 --337443783 -624985663 -931344564 -633530474 -116380047 -331491236 -163596223 --801189278 -202226821 -359162845 --919951938 -3958413 -399177819 --629618725 -460196852 --666452369 -752151031 --470310680 -548725595 --427133852 -693641569 --855936393 -917101697 -991803405 -128878704 -768748537 -614438352 --588885398 -916300549 -834467858 -562978440 -784842953 --545058031 -680688956 --482890096 -604174303 -753689501 --175387529 -440277447 -304831233 -543263364 --67315178 -486070929 -279902424 -702389234 -149592647 --421598826 -603560986 -777734327 --902844162 -22428586 --483452133 -742941599 -525469198 -412663840 -493237954 -290698925 --300757587 -857269150 --400689163 -388804670 -184020810 -162237349 -323800951 -213961574 --600792449 -529150792 --681423994 -653809773 -831019210 --793609015 -894136984 -923195584 -323706817 --409099045 -986766897 -418895491 -776218881 -786357944 -528902502 --69994736 -515707223 --781107514 -811575672 --934238092 -985500751 -77337217 --532142122 -526260399 -378821102 -627693658 -728731514 -985165631 -235902316 --850840091 -348390405 -684110641 -489791877 -695516526 -861371134 -589299455 --962465026 -44912925 --884096016 -343881961 -765265741 --800298968 -287271031 --767363261 -49301131 --1469030 -901543919 -269494103 -977885972 -795268389 --949618546 -950214207 -418816449 --433807675 -403774758 -793433790 -762595096 -339481936 -564631093 -248620886 -54963847 --336733060 -936515480 -582049846 --920118238 -395520745 -122764206 -999575302 -394387232 --403067930 -768484649 -731903024 -224002623 --148840984 -632650438 -910483877 -394534912 -920281566 --553876237 -67254691 -413617754 -573049141 --132451517 -557004281 -835427635 -215540883 -673071695 -948282746 --653364554 -685384330 --339939687 -804526107 -905459831 --105758030 -217128960 -100585374 -429065125 --643060495 -467641684 -999635536 -240002337 -839091889 --334750232 -895622124 --75046620 -920271989 -483252136 -7452765 -43325017 -210243370 -974371575 -558337449 -278153175 --573719873 -4435060 -849948526 --606764219 -879784861 -970888141 -292041910 -500673104 -774041503 -521824611 -870046941 -981785255 -350177050 --830188795 -329842328 -622629347 --35616944 -613477020 -303045491 -877332003 -549429315 --53863016 -87150523 -107692399 --673002712 -12279261 -113504844 --29338040 -638661754 --812753466 -223797062 -374314531 --590461098 -546341009 -309003778 -594433100 -963240646 -86886304 -268239279 -417823684 -246268741 -539528308 -311082587 -181471361 -647600740 -327495463 --46287414 -268661991 --773906539 -433964332 --933378572 -297564105 -637306536 -213824563 --90986817 -383647349 -733740971 -698979974 -448402417 --415031222 -856113989 -30953181 -649444299 -547060591 -495059616 --464502070 -262115955 -746583841 -222236675 --687744368 -297777333 -172746511 -618993363 -330179138 -815466872 --517886526 -42818627 --184973461 -500737922 --914078835 -65087919 -498359119 --68337948 -728474399 --32323823 -17211934 -579022769 -560712703 -598614620 --6900827 -807958892 -413288772 --462694804 -424561962 -966005819 -607598865 --159855 -363344702 -189098804 -447602592 -335321149 -225573297 -243931985 -983981882 --475657942 -818877132 -644442653 -522803627 -763799701 --839113730 -381841339 --909321173 -609551363 -590902864 --730500515 -30027290 -101447558 -248299458 -771351498 --358521715 -671294083 --849793374 -955284694 --614288535 -639797455 -165275863 --325422423 -421198407 -895208940 -788427930 -298784864 --199188711 -662185620 --546001194 -25253634 -505170847 -858079569 -5808446 -138495791 --924620210 -304161431 -516077617 -500900973 --103853562 -516215720 -965464320 --148212300 -789128241 --963485388 -922793790 -243503310 -999007435 -307299919 --537471433 -91387815 -979145895 -184730456 --89178986 -131617491 -5816472 --806842343 -23362602 --375516612 -564058451 -601390052 -366586151 -142256871 -314789892 -77354474 -45000321 --898553353 -908728294 -266148296 -318974782 --455728213 -781857945 -946102750 --484591496 -198045554 -679964284 -922184637 -170484346 -108723078 -971186310 -940098818 -767978509 -518482997 --255139129 -938017345 -365250419 --473032540 -780713783 --845778824 -458012965 -199128018 -735193277 -455581839 -112692360 --357142638 -222317005 -847033466 -519899459 --825589736 -798189492 -954214340 -170977468 -687526376 --334369326 -786208881 --782225490 -179377728 -580357451 --693801711 -531140903 -413323125 --375656955 -210131492 -32241510 -797918201 -953601520 -748944553 -968694801 -652700390 -702720478 --516019685 -248897099 --270998949 -845754521 -426528632 -821828600 --858736784 -5816435 --46053801 -608026722 -693552495 -269254649 --970106325 -556640197 --67403674 -917689165 --305483751 -647830622 -87507776 --935164945 -939238070 --227469962 -857348196 -369639149 --892352172 -313375016 --696970867 -941209561 -459485840 -549238907 -292337386 -973779721 -637390781 -898159287 --32271659 -235995868 -855744689 -291984511 -540532851 -613909228 --76652207 -989645787 -497821322 --509939179 -782387089 -981900003 -504427228 -140614903 -578104383 -252153452 --971464564 -464143205 -595675561 -259787164 -367357391 -618026365 -968671391 -167039103 -948714676 -205183898 -361683881 --41835976 -231337533 -672205014 -792384089 -376187642 --916953509 -568136061 --183883897 -328587509 -834511373 --974834342 -727136625 -115756565 -999883547 -799972934 -793963808 --601835726 -460624041 -830523636 -649618948 --29873535 -241685645 --937881237 -119144498 -916991853 --515814950 -142966520 -962867643 -791625467 --282896358 -317884301 -492905477 -826085914 -242487167 -789295708 -454875172 --390549363 -728779625 -653593151 -894464615 -494709872 -48978990 -777542655 -813509120 -644620028 -6612639 -727387322 --424755538 -422296281 -112168212 --523904586 -26561870 -128562974 -101173203 -300794298 -737332830 -198828249 -534860587 --774876547 -168173666 -160482602 -785108941 -348033047 -364622564 -321886119 -848256399 -694725000 -203999400 -21045470 --179382061 -809445411 --154835543 -822403283 -56934278 --976229649 -119564584 --362426840 -287195469 -763990003 -129358918 -500559499 -359523332 -501008246 -181608616 -771412363 -417242291 --1869201 -92035383 -754331788 -432362011 --378909419 -90006539 -291445570 -915754183 -505769218 -80986737 --265556545 -918689717 --791389112 -493235390 --678468944 -91101008 --959381707 -430913226 -899380480 -123368994 -779457443 -192369373 --838597006 -654074103 -176197195 -612725438 --507108455 -977897408 -964158247 -276250673 -572428986 --287042329 -371672348 -47239050 --949782578 -717304303 -164004646 --519679052 -113817277 --851446719 -160356021 --898292449 -751532442 -542747525 -414957715 -679674311 --47445508 -382675217 -616486532 --605056678 -115612270 --105670393 -606075840 -317757046 -964016899 -864170340 -419594167 --961066198 -589760573 -523288104 -791620832 -692272569 -277112057 -968265558 -908864398 --960729044 -90301082 --48183351 -197224716 --776075391 -764634072 -766117505 -689245262 --211484958 -259083181 -59373038 --343479977 -688716469 -751177581 -970710790 -257821715 --456010897 -778762588 --464811211 -772171324 -186612991 -366640854 -573442103 -505033718 -474418326 -681871444 -38251856 -484967449 -406430396 -92773591 -79932224 --880562556 -818369813 --944122701 -590112158 -566661705 -165895370 -260745286 -617618770 -810809194 --792782277 -938182173 -922267409 --166343786 -822329644 -294038499 -970990548 -896040492 -237689113 --138650966 -514832711 --426661685 -158895175 --452469093 -948308337 --111076388 -111295084 -49973975 -548285639 -444589716 --939910912 -567129661 -692782568 -118359987 -386520553 -639309343 -603955276 -431664837 --835204692 -781032376 -955021139 -755274398 -152244453 -177425034 --102507745 -95588110 -698732166 -859606393 --587461252 -742560479 -61027415 -973306170 --538307177 -285362428 -707876845 -895667600 --939807687 -137712375 --484399352 -397398617 -328654118 --811808086 -758251389 -47498727 -412595087 --9460799 -479755758 -234847286 -61804565 --192402293 -359078098 -819247035 --307244615 -111324394 -204214525 -970249098 -666068109 -995421668 -646778799 -134598275 -524718048 --704089104 -393751414 --580040281 -801937864 -942008366 -394020583 -954375602 --334465680 -199791218 --578030801 -415228438 -44623568 -110873150 --736846693 -39731986 -903874768 -240459265 -637990129 -208444822 --625261647 -548072491 -824402469 -315747792 -463577771 -18516496 -253389493 -456358523 --351827693 -609428746 -503679541 -107732561 --549274212 -802682264 -156126845 -327784508 -958077586 -173162959 -620391056 --329280617 -108596529 -558109611 -803227306 -635777537 -861858519 -311029960 -109738790 -16354702 -353031886 -727313173 --940490003 -601881709 -467882372 -863296418 -76792649 --28002680 -110079795 -711139405 -622462822 -822199214 -877342933 -682744754 -780827074 -656953425 --221194222 -119512116 --717532757 -689117529 -145244274 -122845646 --58648359 -467882398 --998913065 -94242069 -516239313 --95331757 -164531445 -283304106 -45885519 -500117101 -314589654 -948110863 --295352749 -771414751 -117216927 --697732085 -510539816 -87357678 -665952828 -307791851 -74397959 -490969532 -512151323 -571156940 -899944306 -49135264 -773698121 -761787609 -470425176 -651550008 --360194757 -183980829 -648798649 -353681108 --187726724 -665946458 -875343624 -299561237 -405456506 --953016300 -36704226 --782177628 -132072505 -156796238 -714200110 --94029674 -887648897 --246463274 -615279393 -427876469 -152465256 --810627480 -826323546 --315383872 -192787370 -135883257 -28935965 --570112123 -948318680 -363556349 -802930254 -646715404 -452195208 -755040448 --170039688 -1866434 -312815530 -982379157 -200759839 -760172842 -816594962 -512281939 -145524450 --465696339 -77896928 --155792381 -121665537 -611939126 --805625091 -869543433 -46023761 -935676440 --745010858 -476745390 -361325360 -675631087 -236156410 -430288221 -387579049 -490601672 --698483142 -155090523 -943882410 -851146530 -122657759 -100366394 -68346099 -220099853 --382921663 -152871230 -223083229 -485220919 -467572540 -918451672 --152407266 -776288993 -398045756 -648076472 -88154014 --62838928 -393804448 -560433920 -911012690 -523971986 --122764206 -565339468 -612708211 --986091132 -271325550 -475264879 -171387956 -495896853 -279751921 --317738027 -222655761 --939328879 -774496920 -989542754 --178565097 -759407188 -158671211 -683671425 --829615161 -434777250 --848325600 -574743049 -304921249 -303335429 --888834858 -774431291 -362923636 --856118068 -125323313 --560376697 -67559785 -378558378 --215001410 -775240712 --451998990 -755018044 --773920045 -102367945 --242617094 -789210457 --717025127 -29836561 -967848605 -459137615 --882161743 -646751827 -775292232 --450577043 -979654939 -585820651 -832821439 -255356548 -183676115 -863763397 -735154543 --595658486 -793680847 -435237245 --358655607 -999092385 -884664989 --594434940 -653974483 -356162987 -996050997 -575846010 -85234511 -209486436 -5547510 -311061099 -232348404 --386224325 -921789747 -244440256 -682149663 -471361848 --42603459 -653735093 -241850532 -777678586 --920082700 -943827209 -239831078 --936716328 -715038961 -893805333 -905729533 -85152004 --288434883 -101930768 -606083003 -586012367 --559377162 -150197671 -838562855 --844571847 -794654089 -798735791 --529469434 -731507465 --152344413 -511860422 --826661713 -100769382 -552952917 -791360920 -430056525 --148964842 -137775554 -5409058 --928532671 -572251 --236967778 -341065661 --667593332 -407276549 -128157723 -152471064 --143594658 -889369314 -145576445 --498089627 -224578211 -462344790 -137524954 --667675684 -125795918 -593631696 --960461907 -84849449 -541358628 -83793770 -435805746 --66602453 -276840811 -9296318 -750141720 -131831440 -908130342 -901686818 -114175370 -325191395 --870423391 -31626044 --698906139 -612589698 -247410513 -374965593 --699142519 -626743084 -857302174 -157560576 -325829728 -678631841 --70372815 -915885869 -560191592 -457304498 -877076225 --584210083 -406888148 --970990548 -22591541 -873477815 -346362809 -811920969 -985827606 --368626100 -477148625 -891885754 --578036714 -498595785 --674414252 -940193718 -766941213 -705986563 -231411580 -825523562 -55501021 --794735551 -473474840 --805792878 -55280244 -557540788 -944462411 -432473086 --970457685 -486167409 --914104724 -520007427 --603161733 -574217084 --448665286 -55322947 --404977314 -285717889 --243278340 -588906332 --303634724 -669183307 -51567865 -811094098 --906986062 -914170379 --765419919 -51412965 -246850667 -222186542 -886289536 -219711453 --195247375 -284648301 --426144682 -279799962 -685069249 --844637298 -817826654 --748882477 -217813779 -905720557 -980732641 -247565225 -331628147 -932651113 -75519624 --562610746 -988897416 -485537369 --452023401 -289607714 -275231623 --908967475 -320483502 -927783633 -379949552 -48213760 --757023040 -768490377 -346080968 --710172848 -462999569 -266154744 -187966577 -672528803 -1153865 -699844466 -729177463 --842490685 -512259558 -65475366 -539437946 -89760193 --61311669 -617314263 -357680213 -819417430 -16995114 --313511477 -223457080 -947889906 -597223883 -87869771 -62343205 -787965498 -557379897 -805157998 -815689925 -364794948 -759743459 -72916710 -329049517 -910380013 -644874768 -528361923 -735742700 -316591447 -705133472 -500637315 --302132112 -402560503 -192271473 -675393713 -232481281 -937717907 -256107748 --123923757 -506537953 -634722916 --922877963 -918378633 --598362906 -708529044 -93499969 -468518950 -94137019 -891440508 -436573528 -326850956 -785604858 --51160654 -351593786 -314646654 --935573864 -768505095 -395099432 -79835966 -411471397 -719830587 -264819252 --565326549 -108863879 -373742255 --763292564 -68366959 -331605734 -330889337 -602648806 -784748025 -427839480 -943307913 --186016110 -158681449 --404182708 -868165404 --960361652 -547321330 --309103586 -500063300 --764382041 -360846567 --722231607 -565302623 -798297308 -263035303 --322990597 -166220553 -328463803 -715018200 -776266607 -775661313 -963898458 -425769191 -638087048 -941171417 --812304050 -471035997 -144099791 --372600295 -119306773 -568486026 -693854830 --525557505 -381751593 -319025930 --524274086 -112464843 -736934202 -268827329 --452504714 -508804590 --590594051 -41406189 -541349906 --983785808 -657271318 -178572356 -885261217 --355668451 -264581750 -269273076 -205970116 -71226927 --120335124 -377892819 --551529945 -447802289 -332156391 -318598444 -118529177 -487370405 -947706868 -29791441 -54881360 -497566041 -57695763 --10901538 -165450335 --390573330 -845057632 -179457060 --731324174 -461533392 -135046753 -927350118 --538454765 -786846370 -421133106 --713657639 -987832317 -881489352 -40372635 -266057147 -817399580 -539589653 -296424633 -566604517 -332927854 -396705852 --900623029 -530700701 -408118868 -540359364 -625415369 --456358523 -999946215 -735820942 -176472103 --50027389 -220976543 --245916991 -894069147 -409235939 --184807464 -172456398 -205718459 --706952666 -839801920 -96806374 --599017981 -747928752 --281957399 -691073976 -46379863 -602336260 -14968585 --467447044 -116185818 -923904394 -199270909 -447722363 -769423258 -4205913 -218815226 -289064139 -889830402 -912494574 -708809869 -248093595 --24633362 -585437664 -859863848 -344541809 --927679472 -242204777 --972549713 -856641810 --284561740 -889081288 -108685297 -273690308 --712966235 -800183422 --269311925 -621753677 -694076315 --457045813 -200346573 --186152291 -21116731 -533778983 --79932224 -895458016 -368499615 -677371472 --934954890 -888681070 -202428119 -377023351 --678404386 -428303934 -477900195 -716807498 -415147150 -930231350 -939038296 -136822264 -233005126 -917078428 -483785382 --417876535 -877602973 --197309588 -909795607 -809344517 -410460747 --83029622 -802955501 -948872213 --106555764 -900211269 -124289987 --331941357 -740246997 -597218604 -81621122 -919856037 --171517186 -56399846 --262045754 -748296544 -526705492 --923679524 -876813879 -173285089 --61966290 -253684411 -823433655 -836979187 -461908530 --579696327 -249248788 -409259842 --883646359 -72857117 -78821303 -21734045 -428126323 -434966444 -937928763 -149844928 -778642025 --137921943 -703871426 --134047319 -503328279 -796789190 -555865562 --931367931 -367733001 -351748759 -329370555 -528129700 -413134983 -70178391 -821518538 -515177123 -578535212 -331352758 -368131540 -579685858 -211139808 -355661080 -622938014 --600443175 -217246451 --697067991 -433007785 -427106165 -43229929 -857674470 -295667562 --438151556 -633046275 --245824029 -746914173 -867603320 -909386110 --127763674 -909820048 --952434765 -371839071 --817549736 -86778468 -881565435 -555316604 -472586704 --650885565 -422031372 -930797214 -812565482 --188538240 -467009772 -484240523 --907196443 -467250078 -960231770 -32582128 -586583663 -543989321 -418880331 -479247939 --864639101 -782400714 -551419124 -45431382 -627302002 -519440341 -409126540 -154530890 --461801313 -67507314 -458460895 -956281381 -7918513 -604043687 -830578346 -552755544 --301485437 -692176363 -804224848 -338493968 -248474798 --54071079 -357787134 --398324913 -111835457 -529144995 -826709119 -883857219 -230419867 --522994926 -266355844 -908433135 --341140564 -605140757 -991614438 --945887542 -131034792 --339095518 -697563534 -215091505 --846178222 -687676137 -441570861 -133695398 -578458273 -537468750 -898008108 -34024535 -310824191 --930631126 -200792668 -538739337 -62345140 -866062694 -574525656 -376920411 -842939106 -799394641 -862309668 --259777814 -17758422 --443758769 -986580409 --565500479 -301218228 -901749300 --680140696 -858702234 --222676758 -312428940 --855248302 -932401677 -812565803 --56499080 -88315511 -367352992 -936877723 -307576600 -995165218 -850654535 -403612306 -417032758 --948958553 -306911503 --231192063 -337644659 --583684667 -173803218 --779420076 -773845267 --474940466 -564557574 --501962624 -839561705 -733208637 --55225963 -668934101 --197563277 -413913667 -416924865 -454659412 --105442431 -689394471 -72979311 -509945040 --983646411 -291253489 -898486255 --510529621 -63830873 --55184592 -121288132 -224223078 -833204687 -483282484 -772206588 -773812208 --263198477 -485920851 --136981445 -961845557 --220120634 -453433654 --727539529 -404884859 --329904649 -594370180 -633143933 -754393980 -42621128 --970847886 -85589116 --821293284 -938853543 --997706468 -740672604 -217080659 -343355070 -895123396 -383774838 --316052537 -711498131 --95723101 -43237191 --422659050 -30577260 -419499450 -403999341 -191083422 -545390440 -649540642 --437619275 -976997552 -303190572 -798624645 --231694702 -558632286 -906663430 -385525685 -228869746 --355117524 -951393415 -823218798 -598291094 -944658491 --938625406 -439717825 --903731047 -383208497 -426892528 -708415702 -337101781 -385229670 -793085210 -434098056 -208089778 -683870513 -169308378 -301566800 -480505686 --980491116 -31509867 --648845221 -83445855 -648436804 -857308013 -766040364 --456142720 -453739202 --960860647 -807076897 -415624051 -713362948 -762421848 -469327590 -922289638 --130410118 -156339653 -479253444 -430780573 -74082763 --310103293 -94821870 -988688323 -154293890 --39902500 -463091483 -313248840 --975786642 -980304723 --35286771 -18683134 -17539779 -918522775 --659664878 -806885537 --515207126 -999218951 --412864414 -610057150 --29889233 -232870173 --501555427 -519123813 -44572325 --808101576 -234938080 --213332359 -557115491 --794235248 -551634123 --473162452 -57687480 -865277564 --589812290 -972087626 -529176818 -721983616 -285012280 -808634461 -111433947 -721201244 -24562488 --380553992 -797958243 --258795036 -784135674 --694120003 -367029385 -273107022 -858177712 -253970679 -233883950 --716991345 -387030324 --75137609 -508758209 --623359177 -702052268 --955278530 -176459712 -265142696 --856979501 -853085126 -999786304 -462010494 -18671214 --168233859 -791287593 -989714592 -566302522 -808885001 --108986 -139284500 -606176583 -142914606 -264955317 -905175120 -961822945 -726073082 --919547521 -884553851 -872095713 -379516916 -917520856 -112882434 --396345656 -437307860 -945290234 -442081028 -596021586 --989443766 -459444655 -866748151 -517968063 -806608680 -261836002 -334105484 -177473888 -132151092 -496396345 --655818643 -205488320 -589887963 -400645986 --524185993 -357143243 -757230363 -279604764 --35874736 -365317327 -40784083 -983688424 --825942029 -769865445 -622305755 --78418084 -140323993 --856920421 -925881681 -120240152 -516334899 -409832215 -593523841 -274001059 --728264290 -718114422 -333601847 -166483211 -585391548 -517777284 --780827074 -909182535 --729413559 -433694709 --247156444 -69499826 --186040050 -724278310 --67200211 -158741619 -503454341 -656542962 -296253330 -768511982 -810092813 -832322668 --632989849 -86479861 --790497059 -49421894 -12097705 --36563834 -925965299 --41674922 -925912858 --690260710 -900970933 -162084537 --981531516 -616152086 -529263624 -442167915 --375991189 -632591587 --679483121 -884260203 --830837054 -399303626 -134307478 -973908144 -679305959 --196700306 -660823307 -380491451 --523933177 -503481074 -811334420 --991599904 -55788527 -784221014 -62122851 -36893395 -406479143 -802159198 --682866243 -67469957 --522082191 -363205290 -696999413 -431267995 -358400697 -691416923 --489662875 -239161476 -24529682 -791160205 -868870534 -69642601 -839610949 -945364666 --314084125 -372848538 -48622384 -299151887 -439259190 --636668145 -41837207 -904823530 -985099846 --644590288 -102326035 --789518959 -421235082 --297740387 -653517738 -834797432 -190696554 --991969539 -126904440 -319766192 -321252323 -865101031 -78815226 --727148039 -396023446 -368144447 -778702575 --770551154 -483188219 --135129032 -590166140 --218475039 -87383051 -193777061 -936502454 -845625478 -483001981 -182155854 -744222205 -842656118 --60162042 -629014671 --943155638 -903874589 -655386204 -448265986 --458830886 -211307721 -149632191 --729222924 -932177804 -451051580 -116568746 -568591835 -439744141 --494755777 -503884366 --861348446 -616104966 -683155699 -207626172 -996610010 -572445896 -383650105 --501093217 -965015232 -162782524 -211340048 --807232276 -369420940 -199986827 -207473947 --527653079 -841710933 --754362087 -337108640 -49171389 -32387615 -416059429 --161925756 -295365446 -281627211 -406040895 -358219877 -627579267 --249433473 -711852724 --244228064 -319414746 -627708540 -769699 -137743154 -987608785 -232112224 -773522320 -909145871 --958571375 -450120007 -339405121 -19667525 -909578549 -367680935 -28311103 -273277409 --769430024 -700240604 --948192419 -221912736 --252667334 -90373605 -258274837 -337765206 -352342929 --129139690 -899450009 -895806843 --591170942 -884850066 -448162393 --25654038 -936764933 --420505108 -48500516 -208008299 -415325578 -517684944 -219502681 --2386231 -414471716 -350646043 -486157520 -178843602 -724375224 -730566004 -583038268 -150199696 --361846890 -167114223 -791561601 --846751192 -390708191 --598725622 -645999127 --742252095 -70853761 --378538003 -456316229 -294172471 --131974380 -217148101 -432306480 --402216518 -699544648 -42491561 -847707315 --434982177 -947317217 --310402558 -398808358 -284288997 --399619492 -274715385 -293300475 -756485451 --731772923 -583235252 -851718431 -188125479 -734883818 -824942126 -218769809 -100817238 -582011778 --219229664 -154048363 -223385355 --430534520 -211085086 -691678046 -914161955 -62360075 -232494599 -186712104 -802141721 -587054009 --330973379 -905469394 --779178178 -290221014 --8877180 -785317878 --74038411 -144059396 --439058608 -885273905 -114926562 -864469101 -89198226 -371299325 -169191949 --181917348 -885897520 -760218601 -233747942 --821430102 -424507225 -485053529 -403927286 -513330079 -970349109 -223285814 -667813323 -647966501 -549194361 -960142359 -199039537 -641709028 -861592862 -144485822 -423456470 -65184704 -505560035 --351085740 -645643978 -920149715 -245493708 -583273838 --528368760 -340943975 -330842772 --203253876 -664670015 --267412679 -916196277 -604789583 -533197502 -949226511 --12097705 -38856920 -592030873 --542092334 -301450538 -698930047 -268342038 -53564006 -69760231 -19621892 -259651149 -301982423 --595716842 -678010700 -873262440 --30265559 -306590975 --471818287 -146235969 -776182814 -598902597 -136507510 -52937825 -199097840 -147421486 --762611376 -760622428 -385874245 -489415130 --247940308 -689195007 --994143817 -705719695 -147555160 -819073989 --724445905 -168042675 --574781312 -942285041 -851297870 -747937894 -720701477 -321791381 -823580691 -967374166 -530143157 -967157263 --70554953 -410450838 --279077140 -138161856 -909133476 -293951944 --534799374 -694911090 --131105530 -741146211 --150059345 -169248806 -133485689 --880392949 -173856651 --412942898 -280576199 --141550685 -552226482 -122319467 --861148758 -898693192 -315359793 -342874067 -483285592 -435804498 --380048759 -150433672 -948538408 -600151216 -467684315 --795390799 -279985797 -778878438 -683640819 -161628990 -465908594 -930778989 --648992886 -985324387 -546420932 -520913451 -121589390 --96969683 -582735898 --543502629 -443197766 -822770246 -891657535 -951831322 -244401156 -408251798 -183872018 -183509233 -452405035 -82801380 --959973855 -350226336 -185889394 --618574332 -57410983 --618644082 -549462265 --502616872 -80557566 -45507082 -674009352 -165842085 -122625402 -104735997 -192934264 -340944405 -324810817 -825556987 --268914854 -322894837 -42949959 -392804238 -363355403 -700690751 -165826146 -743984681 --697298499 -691598473 -965615200 -856812294 -23537276 -183253023 -782544035 -141309891 -310897377 -673514594 --320562320 -665182096 -581433441 --833249492 -382742827 -154385268 --814885096 -954496364 -964035418 -347982931 -331943233 -728819917 -803231749 -536747141 --843054814 -357480681 --409067937 -630782559 --820881312 -438413960 -180460309 -527057335 -69431352 --580984793 -977295202 -963847652 -708026609 --474992682 -837833343 --259676488 -67981049 --691329031 -540701469 -37662159 -727796571 -316492319 -911351821 -801183973 --347330822 -78079823 -230348006 --678225724 -391960616 -872062372 -816315776 -933956434 -134449273 -243144617 -530174545 --948493697 -511590808 -8899058 -456736108 -875012084 -73203008 --357784797 -927273044 -925097778 --389675896 -618475060 -381458350 -333085256 --845245792 -18929970 -297979990 --449954416 -484490692 -376582038 --290882676 -827629412 -966856339 -635443276 -852129352 -513850531 -865769618 -721782008 -466973082 -632767015 --688294375 -507113307 -556055646 -141547790 --63455081 -446217244 -929991860 -892703878 -103658830 --413542616 -730159445 --783460818 -431967002 --921150025 -178243839 -110448100 -490065135 -99909713 -218513723 -499558889 -555548622 --538160717 -917428474 -148658244 -937671152 --444199878 -641067111 -271060771 --316492319 -878047494 -67231100 -401365961 --52687211 -407116217 -760031989 -184048949 -823230262 -556502934 --717088287 -936914068 -154537231 -266839628 --976872770 -841408798 --528089 -783961165 --574126933 -902569309 --391501898 -621300304 -643104623 -542735059 -728220320 -961652766 --132974858 -399637304 --10126005 -767995934 -691603333 -162246565 --646688548 -342906829 -20893658 -353660268 -851488835 -636313982 --793598771 -763105387 -252244318 -21552694 -168254417 -446068717 -262629930 --819356784 -986102809 -445245518 --67256402 -527421392 --547275230 -478940503 -253037382 -43168250 -554023119 -476240015 -423099991 -982882748 -333226281 --584085285 -452569392 -312207831 -279421228 -429770358 --633969793 -229672260 -422724690 -965580403 -987060226 -390162619 -327523542 -945116096 --116013386 -412858583 --23269227 -446166555 -253563294 --387854243 -575501197 -997588415 -108023513 -222650583 --104586572 -888835269 -772186392 --599078581 -932058193 --524994697 -399783272 -843038479 -639722326 -264539618 -567112921 -965616812 -776113875 -15285002 -10242451 --103274130 -736870533 --819501389 -840554524 -797408722 --492227992 -757058886 -416401152 --304307661 -485043239 -750727584 -898242424 --897129907 -102017444 --780943792 -577809026 -123301088 -391230582 --496794257 -366998724 -319781415 --446232879 -126670695 -438949817 -121880672 -350964947 -431040301 --91940651 -687718589 --73817389 -174230700 -458615364 -627298660 -415581444 -730406118 --819067442 -255188165 -647915514 -736325728 --508680679 -99801556 -507848422 -320628359 --135311290 -576319612 --755873259 -72309413 --303488566 -292002354 --89535276 -863150124 -264900657 --158747451 -695598354 -15671506 -246716351 -631166735 -279628824 -498113546 -128149764 -178144111 -823041985 --225371736 -832973896 --370214395 -431297706 -129148689 --528286285 -204653796 --296478644 -663365595 -966138432 --668607641 -967360869 -742773864 -764068435 -5509414 -926795174 -112840514 --586288069 -764958147 -285577034 -69754621 -248871218 -807725019 --659495353 -290603600 -705339342 --864502090 -850823393 --287602910 -117245855 -877958021 -932733679 -746599792 --354766518 -549797589 -143803108 -815129965 -650878568 --740244402 -417552720 -762283927 --421123287 -440943190 -377298149 -583447108 -500440174 -193205049 -227820701 --50900891 -462919942 -352445458 -139447110 -285221549 -885758262 -782244493 --813675650 -127959854 --315950480 -196808339 --77951629 -716945625 -562132818 -690456984 -125204945 -567252083 -605768373 -193652150 -635986258 -218432670 -856829619 --686236637 -18985408 --161348856 -300642372 -83696513 --943385829 -967714394 -730099031 --936280853 -921040579 -751372506 -718816976 --104035973 -392215882 --899045320 -793978629 -381567354 --144769646 -305229567 -947765555 -125958959 -644680315 --492552980 -874437008 --255742166 -14934537 --669122141 -667715913 -761304570 -333316838 -145187389 -420102539 -474055271 -898509178 -845019197 -941501558 -486900863 -86348872 -359346292 --543387669 -205394905 -13652685 -113761420 -913687232 -557359442 --574461653 -891423634 -673575497 -550344196 -395751069 -983001113 --70832027 -574575855 -716624659 -458478744 -450592805 --661769727 -966319775 -657117963 -784724286 -197453863 -526773859 -928283534 -129443546 -470729333 --713221322 -968095636 -456545274 --651433522 -569732345 --519289329 -32996678 -99630395 -299865734 --658338856 -640608288 -121659985 -920344840 --474325223 -166212153 -340196076 -733507035 -889419350 -921170585 -92808348 --245751345 -408146664 -185807478 -682127050 -991629837 -59481670 --730011046 -684767857 -463604484 --785984235 -774495404 --653937157 -434408850 -758966216 -314854996 -154008016 --172649516 -517104832 -117539540 -201539011 --335660847 -916782135 -444334522 -287434778 -179801642 -845223844 -827898670 -449979618 --224649679 -808747288 -75988842 -768607699 -926301210 -373090236 -139552181 --613141449 -531526360 --768855673 -259477906 -689325820 -573948571 -437103699 -205597358 --190485444 -918055795 -200611254 -537223313 -774702463 -441906391 -740162912 -817877303 --306593660 -501783094 --512102679 -359689568 -676750536 -79482750 --922184637 -702536483 -53490343 -20249790 -786254151 -727268817 -800908047 --432842959 -349624590 --112268449 -205785109 -741613623 -114884373 -152088206 -246241182 -258500613 -667760073 -848418138 -17428787 -400594757 -258952 -141720609 --819623070 -901089026 -242663793 --904984977 -108266854 -21595952 -947850508 --698251107 -34713224 --960283235 -238272960 -548026903 --823041985 -559900566 --709228780 -307361493 --998886761 -354965165 --333482399 -842583443 --376529035 -561767056 -19090486 --786684854 -175089523 -803535447 -532489015 -249430766 -772223865 --649334602 -74173051 -544404432 --954169929 -762614660 -488560328 -126074320 --930193393 -833602309 --196750007 -860005338 -363155583 -89600747 -314975449 -624224436 --176643662 -838050837 -322877825 -467300895 --407290519 -947842422 -848239678 -250943130 --225573297 -190279261 -725426978 -191624047 --789289707 -555609989 --993293492 -549125726 -265269184 -617156640 -949541043 -360727797 -28121976 --223488643 -468032529 --261240827 -87862728 -882752523 -838365088 -194106193 -497366415 -244599535 -246059830 -123669080 -356497056 -32390092 -598997482 --920745856 -79569905 -492708391 --115035985 -77073675 -669652258 -979942272 -565711768 -272862306 -827557991 -109691670 --181060885 -398867877 --64030924 -153334548 --95909101 -611766777 -154446285 -842921123 -94360815 -30280308 -794423883 --351741430 -256514849 -511949748 -530490952 -276176236 --426080179 -529610013 --305524860 -398995513 -187045200 --431479531 -519763596 -285073756 -911171168 --449659793 -945564080 -309557496 -473288160 -62985961 -738377390 --741840345 -361438699 -923216495 -305209749 -956755833 -206440347 -493369554 --205952951 -81578827 -1345814 --775518160 -948754441 -885100401 -910914969 -84588998 --361088636 -651039008 -330309199 -612786991 -474204381 --298869348 -276109721 -826202893 -636410187 --580112917 -644968019 -755047524 -289459182 -198250960 --342467545 -482130868 -723517469 -928947410 -540323318 --998104100 -685526257 --308446053 -306735957 -772805312 -695881773 -306252630 -743592783 --376920411 -445238801 -930945712 --480715849 -116155276 -415023695 -242829429 -201242429 -532535758 -132792385 --584449742 -950843157 -926666466 -231355067 --685207852 -404378931 -566785908 -641311908 -876927495 -687907237 --342227628 -627610059 --365401325 -728452313 -925541991 -298884930 -797641086 --79533379 -835119212 -840137843 --627684227 -305144037 -617903569 --947061436 -937901246 -850659001 -202250843 --769673176 -908104688 -651682403 -880605961 -613154464 -228511246 -673617216 --825897111 -152166362 -768795376 -193538135 -962649508 -889686324 -557963337 -304017382 -853350667 -849474349 -363925683 --280645086 -308254043 -26961128 -666072163 -581574442 -411708921 -425657267 -294262074 -687856193 -92463340 --205785109 -57301297 -781929920 --878782663 -426933261 -590927814 --91902064 -35987753 -341616164 -798256363 -741133774 -704907336 -45772871 --552880013 -497039412 --109304071 -885686515 --522803627 -416937163 --112363563 -583153143 -439225326 --282159944 -826555594 --698989079 -750545060 -477232107 -94771027 -193783679 -934145212 -865311684 --566883043 -966539595 -444262609 -907963278 -908574159 --558722935 -865170391 -963435135 --404884859 -419661385 -506244410 -734452957 --410460747 -477160786 -254092168 -303313411 --619372759 -186119756 -983477064 -54940203 --387030324 -770384772 -476159140 --582345798 -752937279 --127283272 -798335514 -230546705 -377700122 -216899818 -978057657 -279634099 --855261418 -121346609 -151246286 -320824512 -470513777 -22082428 -896251374 -264416587 -533984846 -652134954 -988990860 --274685448 -635961209 --577798240 -660312094 --555731694 -302492650 -304452910 -545926553 --624628986 -180902361 -546259702 -726738322 -643934877 -783615258 -831566082 -409292952 --242168136 -423979848 -112149726 --822827657 -564574476 -635747424 --603041810 -727960723 --169289459 -64961896 -501078651 -167591586 -125064315 -49059761 --684812557 -281022885 --379329769 -774699654 -295375027 -637873343 -654345124 -787493950 --673101256 -535927694 -137483751 -800582094 -281432558 --395789714 -979658391 -373257354 --194414729 -662970851 -747542197 -790691733 -318070673 --814863002 -913452559 -244310680 --88662391 -904118996 -501566720 --41406189 -922235532 -358239485 -160889271 --741859876 -110800575 -897695017 -174684045 -422405722 -92510839 -232331866 -372890507 --590726360 -593211454 --390370325 -737317468 -827791240 --544421632 -341228234 -510440364 -424251565 --535167964 -121315626 --285139113 -399983816 --450540924 -60152981 --29314222 -849758308 -112250226 -686031850 -749228413 -333597707 -68468639 -974427934 -861237983 -831127666 -627339585 -241221362 -583512629 --71440724 -545306082 -620626196 --329823056 -975230419 -592358775 -881688086 -925159473 --167189041 -875402847 -575041615 -51047123 --928737104 -839868205 --404041056 -431001504 -117234838 -309473545 -845234189 -559170344 -316233197 -588646071 -846581409 -670403525 --550344196 -799834717 --330309457 -954354325 --593170460 -579739948 --960876718 -373007148 -633843486 -369999479 -935903844 -569222 --585437664 -57773611 --745833306 -190044675 -933049453 --878052965 -127766780 -56470626 -659511284 -183461638 -375289266 -756443737 --265482939 -201959681 -756062038 --317639419 -74121741 --713613771 -92725999 -318740452 -18011634 -117456790 -646916749 -239913246 -255643983 -667848977 -660068888 -462935740 -158682738 -893097776 --732988200 -583455172 -669890539 --80611034 -32473036 -713646189 -18154454 --933893146 -158248050 --505917931 -166062531 --273824214 -558323576 -89488831 -16061900 -710885220 -176733910 -744505491 -686897906 -106547877 --680680471 -120480837 -660784881 -707609862 -485297703 --559155386 -693500798 --584679372 -412715889 -525702055 -404914315 -216838277 --8429077 -434733478 -824090967 -421132061 --556772973 -632480570 -733005271 -835927696 -663717962 --576737749 -338885793 -845380451 -562441942 --349788162 -224326771 -255136808 -109472690 --669425389 -350170118 -58381167 -507410745 -917789497 -778609411 -917589362 -684851803 -788809151 -459517130 -858770229 --636464361 -586377657 -391794530 --51631169 -994203223 -281529374 --564988795 -581732826 --438420679 -54527985 --103162418 -916078380 -785667605 -895865573 --152690653 -314430350 -768633589 --831606776 -870009106 -774498497 -778924042 --883241823 -22188197 -926634566 -229630504 -323993590 -443887083 --43813214 -444241859 --205171710 -957360842 -241795491 --790716583 -500473602 --289065256 -781821132 --237229552 -328327246 -830968272 -613987076 -281405615 -300466612 --163177657 -603949202 -713824054 -107382500 -397031882 -868328666 --413491357 -388616709 -458514155 --333977061 -213551127 -149061078 -118718815 --792245837 -104567465 -632671901 --166628986 -41707662 --96747811 -667254532 -710560401 --571108087 -286699743 -921058455 -992557911 --745835712 -653639200 -112827943 -998935015 -747899140 -207535116 -128447740 -832403174 --665754737 -765742870 -775473524 -781640167 -198387584 --482269572 -274544280 -188801778 --400108710 -640468289 --467250078 -987079135 -281116242 -725798981 --870781083 -331588366 --262384965 -895819085 -254687982 -506067714 -210146552 -853324682 -110088453 -454307106 -220095770 -51296275 -915552167 -313058052 -595924683 -33311431 -98473123 -115680165 -120950578 -669741575 -406580346 -152496048 -146651903 -970402596 -781845828 -632993782 -179105792 -680574829 -68294421 -691546434 -31769501 --784145915 -273711893 -164279197 -439587278 -685886609 -158392265 -322812241 --35703703 -8615540 -633779052 --311336932 -891414767 -49010166 -598753863 --855296102 -626355731 -316428002 --171415353 -236399439 -918653834 -712619280 -121587193 --477317350 -619787060 -224829363 -383994255 --833991292 -864509574 -54534282 --341485144 -14145390 --765019462 -616576797 -811255061 -340255136 -456644920 -649817919 --429086164 -832998147 -753706583 -45976508 --733867362 -866209531 -990407744 -983751064 -978800255 --454034675 -166569254 -278874941 -747680042 -857837658 -283389790 -6822074 -985911392 --656843583 -849112236 -148820993 --649618948 -27366684 -605903967 -523394074 -890480149 -391610486 --714620085 -623919084 -539276446 -307009675 --50409280 -346302638 -254029827 -872167193 --201173380 -360175771 --861371134 -175236254 -235202835 -736388390 --89820601 -910225629 -411008440 -856112613 -614076723 --114687503 -956369510 --258307420 -441538082 -301703149 -401923639 -355073086 --535778079 -600747691 -956475320 --92382039 -804894638 --926724895 -519265875 -791999552 -640072046 -728906849 -181281083 --782333885 -195589471 -271398627 -985757743 -545152919 -796789193 -505746203 --79643267 -392878966 -184183007 -822537836 -990241264 --928768717 -485390253 -983308222 --575744494 -128355765 -974546020 -627329097 -612383196 -278011826 -189301356 -64093584 -174499885 -498103638 --188389433 -595892929 -344832358 -426466626 --162143960 -725861502 -783372237 -757873697 --237288993 -94970063 -30334008 -468854287 -884495183 --899956049 -243722023 -576269979 -161422637 --432549143 -382997109 --597226477 -885053572 -485170204 -414652920 --543561452 -282178680 -709180206 -540489827 -577767878 -880627969 -992364452 -668414668 -148170365 -700133883 --338130618 -533533935 --633046275 -866932109 --716985248 -213791796 --58424328 -25277654 -511064773 -985050373 -257053574 --357337536 -996443617 --838600265 -391470517 --52179569 -356486789 -29848137 -612573125 -132374158 -55090036 -932617501 -105633786 -881630058 --576409010 -701099813 --480016277 -534690726 -327696694 -732316630 -481795514 --180759752 -183148616 -119690174 --149104971 -939118288 -639916608 --794231264 -895962800 -259537005 --763991565 -663165636 -24325141 -307569240 -856879154 -562378655 --977575802 -114174229 -791798748 --633759632 -540365116 --825373028 -598299059 -629367756 -142047140 -633972985 -87306300 -625275642 --39797674 -436779577 --220736617 -308317154 -873815759 --747593643 -408556399 -3186127 -288439635 -657928485 -54614827 --165129139 -574304359 --890439518 -644612559 -962039615 -930192641 -44396204 -938212477 -231696552 -113566248 -976235133 -643801264 -86069760 -23121640 --538735735 -259044279 -207456264 -647480952 -218479611 --711495447 -667872781 -308184911 -159703537 --400757344 -4722153 -554307277 -173875318 --913452559 -151668024 --194506789 -548401566 --122423582 -413352300 -788191661 -359137970 -948821145 -382840092 --907533984 -146576389 --84912025 -283645497 -960927787 -60907878 -373752277 -504442221 -644464379 -737937744 -781129007 -929016183 -489853052 -261953042 --351065652 -211082461 -491414352 --544727383 -275599084 -68949436 -69030188 -656893516 --212513685 -404650311 -388920658 --891878341 -382989826 -325707132 --803965674 -552805558 -737987546 -686753804 -289919675 -281672722 -595185604 -645372932 --971097107 -343352858 --626861952 -614042812 --710674781 -31153975 -463808511 -805581653 -78689782 -58662787 -913634391 -643847700 -597826950 -274720776 -633367289 -153530616 -241324222 -679190638 --778924042 -762336629 --319534665 -282169381 -940035668 -802421916 -897278414 -151396987 -651318988 -991471138 --633788868 -708412671 --387322481 -209912523 -45607863 --536859465 -341987708 --121963713 -238920871 -460107214 -886490160 -244851420 --897353122 -364802877 --508807498 -840536626 -118910269 -67938859 -399151544 -755729012 -568311574 -303098503 --876154688 -679741359 -115305670 -49287401 -530461084 -564059295 -754594298 --376418073 -75024449 --548227185 -864220815 -782517663 --787020516 -898106336 -137285220 -193984521 --621846914 -274135908 --645154394 -435397151 -261891299 -381277862 -786260914 -841871735 -631104382 -207860270 -100877866 -784096452 -588075087 -6725158 -783642457 -612269087 -863221281 -157671701 -234016013 --169571397 -389682658 -953505055 -747235876 -432947565 -24133595 --957415314 -619706181 --882637338 -117747498 -996702911 -203369587 -655364641 --176710302 -484742757 -722086377 -722016934 -238150324 --700245963 -122000987 --173285089 -377712761 -834529747 -169666093 -283644808 -418724464 --93363626 -3200807 -608633522 -227133837 -693225428 --274866336 -529103238 -83414178 -518827545 -872749386 -733332389 -733541442 -557896641 -701420999 --255613290 -532935539 -625556058 --205558701 -334914505 --470319682 -200315683 -690866733 -837123196 -664011003 -431907812 -234853813 --351496837 -740212818 -164115362 -928031660 -155162560 -908103670 -769317434 -308599011 -843211142 -993709856 -291967022 -41646033 -308485400 -394810071 -561188320 --896016402 -224891434 -104473232 -332380894 -867934360 -43633658 -691531051 -296023921 -91095075 --443862937 -432998487 --152755538 -37801564 -36994769 -774629829 -422849451 --290842787 -960062326 -730891744 --117331886 -588835465 --28904686 -286859378 -111609671 -155698597 -991640113 --641215966 -981652246 -489436924 -177016961 --657868917 -825397647 --495121814 -965959504 -57891472 --167344879 -219293998 --417292016 -49304592 -597855821 -605962055 -779789325 -506664789 -268575859 --519054430 -222552630 -698032795 -65618079 --993452006 -773955946 --627347890 -478579242 -408464108 -594803969 -932673678 --870339323 -525575725 -849080937 -486185179 -355575206 --925881681 -767023282 --646771878 -302246379 -303760551 --570765219 -221610636 -111596826 -48221596 -517281093 -251707772 --372080835 -263002415 -140570828 -933637528 -179504057 -490010237 -110117912 -527876989 --794380603 -489240572 -622912513 -105036394 --871526290 -54313008 -63189588 -411069047 -576724039 --683474304 -791824886 -976458581 -453862110 --282785544 -544532439 --176438598 -672353341 -35453663 -490754093 --266085037 -862770984 -490476910 -60857428 -627276994 --696431635 -442424720 -150905771 -600895885 -625052420 -639953619 -671449697 --222842193 -438898259 -259038936 -184314423 --704870285 -871156622 --443089826 -959506683 --920448808 -854708588 -387163964 -798884002 -507750406 -185486418 -85302008 -977434239 --506244410 -221719857 -587642737 -749942462 -349268133 --280023376 -261315386 -487575563 --836205058 -448907947 -369637067 --102561204 -89723724 -487764192 -284744125 -455491305 --608726553 -656918197 -122753810 --974546020 -853660115 --156866644 -95869677 --243167482 -607120538 -912459919 -319415495 -34066621 -571261314 --985382649 -446116080 --382465232 -708535926 -1521507 --721346026 -90605817 -809189239 --437562976 -249760704 -486818006 -802751382 --95661031 -337702539 -24918476 -695172297 -966160473 --487915877 -355980714 -447248767 --651008391 -615235070 -815969250 -81694572 --513098529 -740923595 -892793393 -352611374 -871343089 -698504187 -126644540 -822056595 -313726489 -217493811 -882044658 --486809101 -789474012 -16494758 --966991598 -963271899 --489235424 -729855140 --212627323 -15116148 -297335805 -359782322 -903235446 -154324122 --107145536 -871202425 -833461410 --185983714 -863068357 --117852507 -924366537 -963535351 --683125034 -523734304 -706879171 --344902552 -534164071 --226448750 -838768713 --956755833 -506377744 --814278719 -557229466 --877076225 -199910211 -834842446 -326550598 --196808339 -311866677 -697202473 -553018266 -65141687 -946882385 --436275564 -829640874 --121060012 -181721748 -888197057 -155856443 -523810202 --648436804 -703482294 -798266529 --201263590 -943926279 --535752011 -6729495 -673587927 --669747864 -603837635 -202226742 --204597540 -210223125 --832986614 -637035151 -708662468 --555263739 -979369241 -298848024 -721323536 -522584726 -739755474 --112023073 -812236664 --483243121 -694216391 -196273493 -550945295 -825096282 --241364496 -525153164 -438728321 -8623150 -58813369 -377922930 -971351562 -679738428 -856667902 --393134364 -831646743 -393404880 --932670385 -911310535 --151369797 -912469912 -670990540 -87755655 -450967405 -391073786 -124390169 -198759900 -9901739 --532397440 -581943955 -868086849 -353616244 -592367312 -965124014 -398689797 --455911292 -203570583 -910487711 -565931857 -704817366 -745738337 --839561705 -561894409 --944640243 -261692493 -718939019 -389058943 --304694178 -254786917 -197813297 -779312033 -660966064 -310778142 -654643377 --776347960 -957751492 -424666610 --592378504 -960515448 --34356417 -390423457 -463239085 -817498362 -77851975 -3309080 --344314246 -95836666 -89114771 -339667861 -209135640 --583072975 -467682880 -909717382 -316652205 -778042263 -122047994 -584463209 -911558104 --190810662 -147931181 -163352372 --56877062 -483645838 --572187953 -677445264 -256912780 --711498131 -573166918 -787160857 -63205730 -446116883 -388819187 --656934571 -886985819 -200357464 --317377921 -122827013 -615203814 -441726427 -202941779 -513258179 -587134493 -209522002 --35546432 -456009113 -679835642 -749220208 -503853729 --273528499 -297703536 -252777471 -545005152 --846252485 -934550811 --108968231 -761424755 -942840915 -700427023 --383897499 -907686264 -807950622 -176144823 -690592334 -475009265 -245466027 -711739044 -469604041 -304944241 --414504486 -992171463 --813795941 -892860021 -531884043 -981660653 --65065978 -492856495 -729171998 -386221715 -973194409 --556418534 -498910621 --565432094 -148237047 -33330202 -902360239 -6064299 --376715885 -873713992 --577517217 -518529636 -661483204 --411008254 -430873737 -638980058 -164107605 -484215478 --110140913 -83525320 -498080477 -238512851 -599910339 --41751530 -718330689 -355972066 -203506313 -284771992 -686688033 -105330848 -597959390 --695618215 -13262195 -50134509 --907724598 -67080039 -552681197 -22031043 --357102074 -964176767 -222083835 --712181345 -287262284 -572324901 -673016188 -239028507 -638180628 -61186084 -243369701 -177472 -246227759 -303530638 -544382481 --968128148 -775525981 --522731489 -111500416 -53387168 -736812799 --460030051 -681153727 -81346968 -438529415 --679201890 -772104339 -79971801 -636184673 --859057071 -808126112 -953627781 -295355231 --717533689 -361633862 -321152293 -337538617 -230180975 -546915289 -873529246 -602995898 --919851014 -45888717 -496781802 -822992296 -661170845 -46611673 --805675699 -577516283 -803513035 --448182653 -823886190 -451559291 -619690125 -612408086 --323394044 -710672945 -612152542 --575530339 -290696011 -216605584 -430776508 -327298196 -599248315 -315253025 -771362469 -922984222 -726763536 --586613956 -667681321 -511283710 -216768640 --890920262 -373986196 -961726547 --228401190 -820749281 --162744169 -347828992 -247604613 --661421450 -572651645 --320205940 -306493667 -329825556 -966448420 -112921595 -760110220 -796492458 -619118232 --598655578 -253411536 --216211694 -110072705 -500069502 --78420479 -886127658 -515860601 -808564045 --618725198 -717206389 --138137193 -565955521 -631533332 -163340837 -516619382 --739442618 -124759294 -395113990 --664011003 -439117444 --687745727 -644659476 -226769948 -658343697 -823554815 -568967101 --793249324 -50307240 -450271635 -756601792 -973792405 --736650848 -610308194 -529572665 --499336924 -340631091 -46958269 --241363265 -467202127 -190025702 --3317653 -946483882 -264568943 -900829870 -156256411 -67257116 -923630854 -343403498 -818282495 -592217896 -439703989 -230992619 -264829166 -138662856 --234953680 -463265562 --725360346 -335528048 -717732327 -22979116 -898145984 -293214372 -627704204 --292434799 -93234416 --465111877 -671077738 --316189681 -671178239 -919359528 --282436836 -452650558 -106574462 --437877127 -438811294 -917025315 -416942511 --384446778 -570044212 --369420940 -282794030 --129788632 -233274585 -337906870 -996247179 -547672206 --903083953 -919884846 --978111744 -827209852 -785737169 --574591982 -409051800 --860189744 -49245969 -601303691 -340970796 -79820710 --178237024 -561741252 -589355382 -524010162 --969619625 -916641743 -994318282 -847848694 --747881074 -980486280 -861612198 --848366393 -131924807 --692711938 -951911298 -243698651 -21506976 --66238763 -67823604 -387821878 -643702728 -596654711 --509346716 -814114451 --837877296 -348819818 -281575012 -113502052 --895499623 -854005952 --755018044 -406366080 --8327880 -682682475 --847593208 -597518757 -90466698 -683194728 -263799270 -158644961 -582972307 -150665429 -123966662 --420705984 -326747548 --611592426 -332129451 -403962331 -911152843 -477272694 --213348252 -781214691 -448634367 -8011400 -889961476 -144098057 -405447540 -101502305 -263680745 --895667600 -921244918 -554715163 --212273581 -766898792 -288965315 -631134100 -27482161 -646103040 --233139824 -349350723 -237430721 -244961294 -832785280 -892405817 --570279734 -60199009 -972703979 --829541801 -778020821 -368354911 -314201320 -436026220 -663108480 -820191524 -515008407 -763518444 --299880673 -283042509 -858244140 -346891183 -864034500 -774275363 --949398068 -553715807 --617156640 -476150736 -926136366 -230575893 -684851616 --889360306 -680534401 -953247001 -961436398 --683599875 -597670158 --247002907 -235172788 --490560054 -846362636 --323976561 -350800424 --95967403 -452565568 -155588771 --575783361 -112552813 --219672647 -188388163 -991691365 -563799507 -946806102 --478199466 -402520172 -871921380 -866063618 -13158845 -762270664 -773474704 -598359295 --15775896 -171562426 -191207269 -816083483 -857102824 -830165856 --905967225 -596375344 -554379948 -244063220 -557349382 -295091110 -869113737 -888526908 -400345221 -511089216 -18256217 -344493747 -970842164 -768055419 -91961343 -655587377 -207188448 -230392468 -804288626 -462486015 -703363676 -660636417 --235914919 -845707071 --946933635 -598130051 -43425925 --707112571 -273249700 -550695277 -676058209 -931804396 -377830155 --230332177 -682036603 -982385639 -327179419 -672786680 -677727475 -156486188 -54354631 -196968691 -861856807 --484724151 -301768008 --133985159 -208264861 -801904793 -133506169 -547742380 -915756125 --571147466 -152279007 -94829388 -471467262 --276692314 -795141379 -765355424 -6095858 -172281674 -303641539 -694266270 -303805254 -850508170 --337504354 -33971343 -251346537 -387339085 -746484166 -198700687 --864863959 -960587901 --248867604 -569317019 --705823580 -983832909 -822937405 -708622201 --891713968 -20841128 -562737330 -91466841 -675009980 -160894046 --458573640 -527671747 -58242009 -550674722 -199435284 --322063530 -277037037 -580530240 -647395592 -712430104 -437138041 -150395572 --59544675 -647807202 -989653698 -959694779 -725050008 -220520336 -185876387 -908220085 -581509528 -185964514 --770360880 -635341424 -746330038 --179882509 -266086893 -692548302 -985087838 -202627116 --662288689 -867555903 -83888293 -859390334 -382623671 -641048630 -188997225 -994257659 -341658609 -845098612 -513921074 --481458444 -675519221 --154975995 -968911214 -837356473 --46909827 -996276656 -976249627 --609493409 -142430779 -402892927 --248317557 -273659090 -723816631 --550238663 -616869319 --386258761 -257135731 -864210051 --124179812 -762714671 --221343868 -631390515 -698201195 -624728489 --481746099 -962819204 -200055474 -533520798 -593184378 --257494119 -572127629 -616808699 --243292770 -838764195 -80487336 --316673996 -181958425 -35769474 -466382203 -300095854 -412582884 --881727087 -299369811 -6738549 -851191658 -484050892 -736439487 -241415855 --877993668 -366296865 --175171084 -829532469 --928998411 -164070183 -802473597 -752419583 --745296379 -770541996 --748672590 -496401660 -669676494 --481069291 -323944825 -916370827 -532953822 -413240437 -275208839 -530926049 -977234892 -995366883 -435941170 -826932545 -118232292 -861773685 -733372822 --125710864 -295827872 -105862940 -177892143 -651027906 -964299541 -841299426 --53205866 -871504772 --541752885 -100274935 -287946744 --868700685 -184016466 -9337816 --56954379 -590283440 -645711832 -272855983 --738354175 -45549787 -658107674 -618619898 -106268587 -453019581 --15104101 -870661354 --193070006 -704599369 --833893013 -307386170 -58498565 -969532885 -40351776 -153198612 --668018118 -91413099 -991626519 -879935269 -410194390 -990409479 -958578736 -753797583 --548014187 -347925150 --295996902 -575540805 --63364317 -917390357 -364351002 --884007637 -289130335 -881139795 --342863465 -31266260 --497726918 -565947847 --961371144 -843342877 -762907436 -613226837 -124695562 --119568180 -784024761 -607370867 -167246779 --894160437 -272815819 -317084041 -912162841 -625046518 -308830228 --979211946 -786149062 --155316715 -362802433 -731040480 -519122085 -580220086 -239306093 --513284787 -498073941 -785084902 -422029364 -330482537 -633907776 -285642614 -830780654 -940309715 -823412977 -285785304 -683880853 --745843148 -946399841 -548328304 --949736445 -405715080 -464161432 -469832309 --17309250 -647258657 --317084041 -275673570 -62335042 -965547923 -835431400 -959291667 -707275712 -384674787 -900841200 --814844471 -841773004 --3818317 -36941521 --805802750 -224709894 -358095766 -435316262 --769972320 -975122391 -848912775 -749259424 -438932644 -924391517 -68847720 -459446894 -862956292 -653721182 -790778338 -463098320 --157603620 -294294343 -744235181 -733337990 --132190306 -915108451 -963227859 -522002617 -683148153 -658986952 --587706917 -199350568 -424927090 -404422263 --659276476 -743103130 -752850120 --995421668 -823711027 -185448133 --248489911 -981698543 -852431177 --881981779 -254760037 -297981361 -364469020 -826796389 -472849728 -579029812 -725402874 -751006284 -787873335 --21791847 -826561495 --170509960 -824368310 -269220687 -823312650 --986856542 -645424335 -324652155 --88673524 -87513464 -907918212 -847162160 -326188023 -329423290 -786150313 -509130163 --508479214 -565622236 -843526844 -951723984 -525869427 -607016326 --44890536 -691415467 -499829341 --457477322 -61479410 --83503826 -528662462 --170158161 -122095456 -360316090 -985254661 -304595613 -159194653 -731021078 -756829856 --153153087 -602276821 -689727968 -139224456 --803550352 -104731699 -454599115 --841795144 -652958347 -227479176 -104903631 --710301078 -895889510 -111046816 --336602444 -706596798 --379338071 -999661522 -90080326 --523071745 -372284138 --770572548 -160048188 -203221160 --309083944 -126334740 --844435873 -409610579 -285746511 -703066734 --541260221 -534189489 -855967764 --482281746 -837805044 -890770897 -426000166 --527140658 -880345952 -999160417 -496029905 -58571436 -279749600 -955275677 -396320915 -307118616 --6823421 -246787502 -585847664 -446724050 -997672310 --174448513 -808575755 -229746305 -652951239 -372714246 --647938074 -6496824 --637636853 -62749791 -915907329 --194119724 -532065021 -24050555 -822355231 -17317705 -268035962 -957828133 --456814955 -520127669 -477009032 -708274489 -286160242 -447403260 -239130031 -818570457 -450183769 -331866850 --721055690 -942577513 --839102624 -648998666 -169225819 --574575855 -412826956 -455296814 -465428372 -448905861 -721559330 -415284635 -80740075 --866078963 -469753132 --850560870 -110487414 --909733530 -497942034 -577736509 --841571495 -152947103 --655393446 -850722844 --572475746 -579837782 -908189176 -435712350 -939869438 -776390398 -763426578 -564759186 -960029658 -910600028 --56310442 -827110984 -196927700 --62902398 -114630095 -509759283 -510046210 -547672681 --758465355 -810686030 -775976734 --91708693 -907242311 --414762747 -856195706 -545371542 -951341255 -342219434 -155901731 -249875567 -254816064 --966138432 -197767533 -257605359 -700585552 -912700401 -266937494 -540830412 -794475732 --285701371 -657639574 -252849416 -898646284 -251528046 --384789239 -642215024 --607386319 -552381339 -312220578 -390358761 --427331990 -477442970 -3019970 -890269494 --773440448 -253409061 -128672503 -564280737 -934638793 -939300181 -18013154 --935195330 -826363130 -620802037 -235347741 -352800755 -382550737 -330761523 -859145800 -827129490 --778915759 -963829889 -423837619 -267744908 --721086566 -945800742 -125853639 -515669782 -479613181 -125511510 --219122733 -400563215 -951495609 --469832309 -322122906 -367390061 -301725796 --544794578 -570507251 -913260588 -935539972 --589357872 -987538022 -799971696 -837979728 -54328216 -815715405 -691176639 --862248659 -180624400 -570062231 -380252055 -526612739 -380124486 -14970760 -961699353 --380757477 -299927502 --295390698 -26343355 -476576157 -253475146 -75308160 --373986196 -577427009 -625463492 -795811286 -433721436 -568390256 --202450871 -956796436 -706425807 -784245738 --435894473 -911298598 -602694876 --243758155 -112796600 --892553595 -355386698 --136822264 -749864534 --35737099 -13944039 -891568515 --46042310 -110666388 --257407443 -850936821 --694266270 -689672959 -264724291 -597447643 --328553007 -98059525 --967913595 -409605604 -242458103 -76958169 -377890187 -71407091 -200977420 --782321616 -741533950 -213679149 -564757591 -129687760 -624156457 -959168609 -780929780 -400809490 -31699096 -557157425 -426895043 -839121397 -486618399 --867555903 -466829533 -860752582 -500976316 --282978518 -784570702 -197602481 -895173433 -380252491 -242364576 --636313982 -752492555 --90144244 -755128130 -664118402 -738195326 -631859782 --257135731 -650763465 -357137516 --405114131 -194218759 -316024130 --215775217 -525257592 -440492492 -76324544 --871521419 -192099608 -12905511 --496100511 -620897163 --328996015 -632068 -348424027 -710675008 --364762199 -107202679 --194742124 -933773812 -77728287 -715009045 --596960891 -922369408 --469274635 -34122278 -439919247 -878920442 -354490855 -21857845 -568028267 -78060640 -643054516 -405895368 --459804459 -913343040 -94325981 -80138281 -285300777 -330761037 -604745258 -702993619 --968554782 -857870874 -318934152 -191587892 -41145745 --142904597 -83910605 --983280281 -212103646 -211072176 -429147812 -746687143 -627437941 -331962582 -122490487 -726922716 -936776514 -204878929 -782618091 -344249703 -640553038 -84949825 -335203918 --753532287 -704598446 --569421412 -335781152 -617498840 --774035459 -807732615 -613207664 --144097617 -961631101 -319521216 -752270831 -946733658 --543752501 -420704156 -545697618 -436773880 -364121086 -502828773 --211072176 -611949487 -849884614 -619383066 -739727764 -674108099 -547948042 --54614827 -95950812 -474072593 -834661573 -832791154 -892778287 -84712401 -8772650 --450530022 -459699200 --923501131 -112186897 -695693838 -860741355 -848240615 -839475515 -586336212 -830003453 -580102070 -100786554 -560352619 -451246665 --561308489 -54008626 -548308263 -454498788 -191315636 --421289825 -898575770 -748194014 -551427640 --68032489 -644087740 -314636517 --798624645 -218440045 -875722920 -166918590 --160928694 -108219986 --269137579 -101571077 -345255403 -97075226 -805762644 -880682423 -36902693 -520129764 -887052118 -79112072 -979282461 --873288740 -328386001 -68864625 --797972666 -896678085 -198301209 --800127177 -163660784 --857919314 -944879969 --232819652 -738903637 --894432813 -907320928 -851317765 --347109526 -822832866 -913473650 --437817295 -375978162 -419919969 --262633233 -129949208 --24045276 -189588889 -40959318 -372502025 --898369554 -509198784 -351073758 -311202496 -338862034 -79029426 -1113286 --897425547 -39806707 -111530988 -413701093 --590624599 -549982573 --576052497 -751532060 --704769010 -773589275 -424819475 -679142680 -881988007 -600687361 -338924349 -323605722 -300848697 --513122238 -281247241 --825472118 -517968097 -966670576 -575323083 -417469492 -428232954 --225735799 -674124466 -842356097 --518390271 -66353411 --732366459 -320024508 --623313128 -461458915 -290454313 --739575408 -861430072 --359114888 -44297982 -855032956 -538236326 --696903765 -942827555 -61340730 -524653518 --428424373 -534995782 -650911685 -529047255 -955506342 --982500048 -8766838 -804803067 -379750297 -52276860 -829696402 -623452533 -335906974 -627198347 -703063438 --130055879 -16429315 --756506467 -488584287 --476909128 -11014382 -754215899 -735473818 --576110793 -995264300 -79504383 -341757561 -540641073 -357565017 --786629548 -998419731 -654736683 -709364065 -133523848 --574991644 -309132540 -444600105 -186566733 -669376947 -772541036 --486851308 -649129111 -192578147 -277757698 -654639418 -281126400 -832887315 -281405306 -969797059 --937526398 -688510049 -884161817 -813848912 -270519495 -701222077 -686433077 --85225924 -282879739 -195058991 --173954409 -180627373 -288397299 -61639766 -164527878 -690767273 --115616924 -930161212 --433728577 -388120926 -14133203 -420400780 --576990345 -659806750 -845355809 --255011858 -413265467 --786365734 -669516512 -903992605 -998749750 --940701571 -304705928 -515217044 --433909408 -34024512 -185102082 -390097679 -46818384 --244232836 -92036997 -735376683 -466854574 --493415806 -847827334 -388560410 -947924508 --642729190 -866243980 --100836998 -226431809 --190477290 -333454267 -808619333 -689014419 -836089420 --646759926 -226290877 --459467783 -762966693 -743526236 -254017406 -839106565 --775318593 -840159911 -218450790 --297131937 -511522261 -686924742 --581408807 -625930701 -46296664 --878917703 -953143614 -309033141 -438056638 -743312928 -458417944 --506328893 -26072570 -20065175 -609353358 --514025990 -331279662 -524456649 -330146658 --192496613 -936406199 --377815283 -834253386 -199630836 -664694976 --917589362 -914416673 -631385684 -210064302 -353769454 -722390619 --521573478 -222478846 --769850161 -512583299 -319676832 -990670891 -866694611 -206852386 -205583565 -848051749 -264033516 -690904598 -326435917 --404577442 -910427979 -883394311 -871233204 -291483003 -63642093 -604338897 -424614310 -452700589 --709376590 -869983498 -984478136 --713362948 -658456269 -739008985 -688478564 -657095272 --103288669 -998629288 --330734841 -948825934 --748261984 -265302199 -206911404 -510116079 -997848109 --769849513 -505347781 -915549304 -800388131 -68469173 -688477782 -422737618 --415924409 -670632047 -773302813 -552390124 -713464061 -276565203 -404699184 --778702575 -804893069 -803910533 -711853116 --338533421 -352779756 -357826163 -185169960 -828901758 -375804561 --977880274 -568681966 -298741014 -797310627 -46271231 -878072209 -92877763 -526275702 --101324824 -349662899 -798852795 -21295155 -516061999 --430701190 -754171385 -554021442 -31052394 -235501261 --646890180 -481434012 -517150268 --742999576 -78430136 -392201780 -878668478 -842772937 --168191718 -656225128 --180315738 -808814332 --136550917 -972718401 -99684967 --705420396 -48409158 -708053962 --46685232 -413673508 -594488340 -157473504 --360306946 -684184524 -139545473 --701092582 -194578480 --589064228 -250433993 -229696162 -879793456 -588070214 --848240615 -404408400 -716320439 -102678752 --599540347 -95879217 -147543862 -711331513 --595793068 -504128978 -774774350 -6760790 -790032533 -405128285 --578242944 -398030646 --224332234 -132652725 --327565577 -441307312 -695858600 --928386979 -425715672 -807056201 -982708623 -565864477 -948034957 -408208995 -502349556 --841065049 -421726887 -500894144 -984171450 -790526776 -986841471 -77450564 --590634117 -615912863 -354331689 -111955282 --650978105 -201664779 -410524716 -850930408 --150703916 -829612895 -655715765 -37023723 --854697497 -241570386 -743640056 -17031295 -139591365 -388194502 --461908530 -521397641 -399361408 --546901889 -885671888 -973727885 -962006637 -596639612 -683647257 -495099840 --890567077 -842541829 -564192751 -794820834 -121394502 -969587057 -222243680 -254629226 -381748114 --585596663 -313411300 --74191776 -957449511 -208512404 -246307265 -274147997 --421210392 -94549339 -267338329 -421607177 -689358358 -192350589 -778179099 -449732421 --63503442 -661576663 --741109788 -467842070 -192157605 --245094470 -359664536 -742331303 -225203297 -528854139 -635778607 -67505077 -581979673 -218015531 -571758700 --293345491 -976953500 -610686845 -490273612 -948857531 -33463152 -495868084 -539908367 --460043858 -182093197 -113298773 -864178420 -697528066 --421385807 -173968924 -230538366 -260107447 --637680606 -58287768 -251154348 -428016599 -99504025 -855817477 -593208588 -964706513 -275666847 -223803018 -514024961 -920625853 -525261764 -795728416 --18816847 -126265478 -289835316 -757743859 --904533462 -742106476 -342056618 --208304908 -298503620 --46748037 -333749592 -536301562 -155357012 -817343867 -860081180 -294652921 --288445504 -372371705 --283868421 -451794881 --357743560 -671644142 -619022057 -70867173 --992473498 -282466515 -504595740 -474472901 --287606147 -164297810 --800213146 -317127008 --443006070 -147484418 -865436915 -245608213 --430971182 -247388848 -230297837 -958369637 -3314150 -413438697 -620822404 -207664159 --500783705 -340416289 -680078051 --693885142 -870884722 -625387447 --439919247 -193890745 --515361604 -441491589 -235010059 --599968363 -652659416 --248415573 -462820170 -8647012 -62348446 -641603408 -578203476 -407122086 --73882904 -949447648 --999510280 -787991855 -421147449 -13640572 --178451507 -593429780 -86719303 --171145521 -86914672 -424588456 -692266712 -970499553 --684216194 -118806118 -670169400 -720702698 -445806264 --520883758 -369080865 -12563481 -68331610 -259204913 -258368082 -229559956 -135512425 -597999472 -426159022 -636601214 -34712672 --795947494 -482603882 -888752432 -843150666 -644666216 -993942782 --411797802 -101327969 -984099421 --992766203 -585057661 --516284971 -325604630 --954565729 -283912947 -931094828 --146688218 -519796290 -357477643 -983691878 --579087328 -833096768 -229472775 --153342824 -472958655 -19015475 --140360131 -104122957 --908467528 -784983887 --438567149 -373735730 --136396176 -474734936 -481446692 -555472304 -556044914 --202692588 -886712850 -145916841 -251401333 -172271186 -81591097 -799956859 -800146600 -538252962 -855294227 -858668271 -461109291 --729050336 -307546529 -999548557 -858241346 --243226260 -285079627 -572167476 -613043328 -44484031 -133240461 --786327607 -713220602 -304952987 --928886132 -447407200 --659626272 -165411908 --597447643 -829639402 -151197590 -846188916 -824267615 -657287184 -166075514 -717312849 --354213079 -217698257 --246044279 -2078361 -466008784 --5974955 -731942258 -208158187 -284780585 --1423437 -825461526 -688472869 -339620752 -608749639 --656022638 -702756312 --777156430 -307315513 --821890364 -334015871 --48490864 -420390655 -508036949 -120854078 -377126451 -460918182 -171502109 --208865160 -388033561 --724053337 -754117026 -896469949 -943620650 --756028225 -239539672 -663324204 -314920583 --591962304 -741581208 -425397241 -202809328 -69905380 -306956093 -511633146 -806650782 --186612991 -802900585 -159511484 -633308698 -845622767 -67989985 -73939001 -620678457 -410189891 -524583721 -793675155 -587675712 -393739154 -160171982 -715616105 -823918678 -962079515 -55947715 -632758395 -215883064 --33782237 -72456246 -972070431 -304386647 --483174435 -413248766 -194223473 --637168892 -982125610 --623842101 -860670040 --799260440 -713398117 -72392067 -846174048 --347028192 -250134179 --715009045 -94895149 -317429837 -194024765 -755739953 -598102129 --374352790 -916100469 --966448420 -386720625 --879798050 -998175961 -856440129 -593934184 -783875020 -997678435 -488887014 -256111219 -495162512 --976680202 -390615411 -383578674 -607207387 -784946047 -828323216 --71171231 -677569070 --804893069 -755302744 --233936076 -114492469 -16957417 --218938279 -552511281 --711322583 -495632221 -902155157 -846890317 -49618218 --340196076 -933739555 -741177059 -405427953 -806316968 -440633416 -738527515 --798955728 -512684593 -614828581 -512511975 -524907136 -307178757 --582742979 -157555878 -917216442 -425781049 -843607796 --522399898 -781633379 --558110586 -582673517 --3309080 -745933025 -172563532 -76432433 --812920862 -517603280 -589522254 -5704685 -366510249 -62157350 -395347992 -98439792 -760473385 --211282176 -223599841 --640098028 -104513393 -242245958 -582739052 -395342149 -208919089 -773420293 -145844298 -188087506 -833901652 -302939723 -339603508 -219904419 -591197292 --582739052 -547082536 -633759373 -137007346 -824770079 -610674188 --734628711 -740552711 -432723186 --619487860 -449351952 -588512398 -849436957 -738085178 -885721655 --350678688 -33308817 --517281093 -365853896 -220314113 -489288257 -497347171 -343280732 -298281266 -178838057 -726298838 -987172822 -868146538 -168848262 --948893636 -295552984 --81948582 -617226408 -451236211 --730986489 -824922442 -132892915 -349061072 -28287103 -256805448 --466243529 -862867766 --349401019 -787125934 -229442291 --854645730 -102204720 -842284448 --609476657 -105539662 -126341043 -521921615 -889536568 -82671694 -458507928 -344012395 --796112852 -807640669 -177425318 --941106047 -54690311 -878564373 -935588403 -301237218 -979881241 --312955703 -825390594 -725374986 -645620832 --529333402 -496922949 -185164431 --760943170 -466929559 -113574392 --26561870 -949321633 -85143636 -857140745 -571667776 -993211766 -318002009 --852911218 -123220553 -907693584 -836200502 -764908978 --598452163 -345064435 --805756503 -236215018 -36536547 -279693253 -364590054 -446172967 -849187687 -766008761 -356500678 -81768069 -537689377 --628785906 -979371497 -691989394 -740401739 -454515316 --506698550 -588680906 -113146327 --933634908 -713633691 -879523716 --901318634 -446617042 -564076075 -455856906 -951799817 -908357721 --785640394 -546318237 -317975628 --461340188 -513611610 -830889919 -223576936 -496869324 -982846460 -843558801 -740764838 --49918319 -584679117 -819043108 --977587386 -784739343 -345175158 --697760016 -299155718 -27569624 --298958076 -103840606 -345858286 -877441903 -742401048 -612095900 -815679036 --632987470 -579815675 --969267924 -447916293 -953590797 -605217522 --177724832 -179091971 -37104814 -800149903 -714597460 -611230396 -43794154 -912154336 --831020153 -945266577 -599010557 -603539564 --943063625 -611777458 -40085805 -550787208 --943483838 -224942154 -441754058 --73820245 -873325644 --992490469 -838395465 -966418436 -190369983 --8977786 -111573598 -194368867 --834515785 -524281895 --591474511 -232837813 -546706459 --770646984 -861092677 -592981834 --793352112 -181269978 -836233521 -17805635 --602694876 -2313981 -623546296 -662391761 --773589275 -791009526 --155873404 -96508054 -860933698 --5830306 -744670545 -119257519 -44932987 --542716927 -68965049 -21440039 -321130049 --106644645 -517798639 -51754979 --296698752 -801105403 --866657262 -190211589 -109096404 --539622953 -876078696 -353318119 --70052274 -348160734 -770950952 -60625241 -482554991 -286129035 -629662768 --777555531 -839237917 -68546595 -926042730 --556383899 -816692678 --516997187 -612941807 -76056971 -689625233 --874677101 -981620451 -667890294 --327505013 -178813413 -245459580 -257659928 -206189916 -436752689 -513562321 -962774522 --251946323 -122017566 -431212683 -872135 -451541763 --429516310 -110613733 -456335274 -862584165 -283478536 -98144089 -312470030 --274665215 -489146661 -740463067 --449735951 -385867859 -747139459 -13846287 --37241689 -479653951 --221629119 -478853802 -169640509 -515130703 -472961098 -937362962 -584193907 --332465794 -418364244 --622653255 -820792999 -574206656 --658032792 -176675021 -474396466 --260508488 -757184777 -853816747 -288311922 -202354374 -324061641 --371046908 -466588923 -332382736 --204572399 -584150896 --608318260 -175813335 -954231139 --176199158 -681797667 -111627515 -427787053 --419230839 -210272817 -228634573 -145816987 -550095121 -441786616 -854897006 -543744964 -779643617 -400048716 -190363802 -148728173 -993581264 -924382951 -681310776 -907574730 --429330752 -117956983 -456695383 -348489911 --889444145 -584951879 -460559268 -213456555 -718349598 -773885253 -489860958 -253476016 -506986303 -728340535 --35769474 -58025510 --642739377 -446259266 -944968671 -691338759 --889371045 -900819951 -265449098 -909130075 -40423191 -778036099 -430849438 --181344479 -502974943 -413078158 -890747234 --789799798 -540249226 -60272435 -636437207 -655876455 --619112951 -66185995 -224386051 -164531444 -978887162 -897520747 --66171092 -212661465 -947866014 -25345798 -566576042 -116067802 --930965918 -471370303 --17853115 -560466960 -654717992 -436488436 -416548452 --132473910 -865084026 -447696766 --410460014 -693041 -826009283 -773775875 --29363520 -833349493 --845754521 -94492808 -324349304 -34296582 -481193756 -411977297 -476309413 -506523195 -393923799 -599097999 -749488705 --681690046 -537019942 --283022904 -943801775 --705768267 -783728414 -348681022 -410506248 -902071248 --303805254 -989941611 --245270239 -948379083 --472222476 -575472975 -916789169 -391575097 -208167614 -482511077 -248980697 -320822621 -109369835 -334328837 -145363145 --718156402 -851817860 -823697343 --919361761 -533165256 -389488096 --172935292 -149257446 -937085898 --28355684 -47783712 -707890027 --276690683 -632830562 --267222353 -613905695 -3314601 -370519489 -186442066 -523205898 -338006974 -687778920 -754978046 --226547658 -355840571 -165802000 --546294707 -529560423 --796912951 -787447644 --478157250 -793023600 --569581985 -190926286 -172548967 --778367224 -966107084 -603825242 --756508210 -757781096 --254030456 -904647105 -930076353 --647583540 -843911887 -613357111 --852245469 -975277507 -658952251 --795257891 -346667662 --781013626 -949592910 -86106689 -470904650 --125865592 -422999775 -677439739 -500622883 --903841184 -597652889 -525629885 -681282195 -907536781 -309988298 --567562563 -342929226 --831695205 -127498197 --177115609 -219206145 -115063553 -974655594 -259572465 --503763579 -777926297 --12106994 -849878308 --240112947 -949961079 --797641086 -319862568 --945266577 -776487802 --847191587 -417065304 --284918568 -837152473 -17326308 -556584137 -914717238 -952115526 -669340522 -972012888 -488492880 -383475394 -116373840 -466934788 --363205290 -856646709 -129890218 --337556387 -138180905 --888613024 -104306643 --66787433 -10582968 --655526916 -638855015 -874947622 --568002078 -656527285 -437542481 --939817759 -367427625 -784601554 -549183274 --953808668 -187890911 -644634386 -373381329 -765348850 -178411630 -408884210 --6738549 -235263197 -161592344 -364631866 -949925168 --79015005 -834294755 -11164169 -342780153 -591167955 -109869963 -730128714 --395907132 -450428891 -567606453 -271242464 -948067463 -807728315 -21031149 -66520018 -591094765 -593477281 -522638282 -437293779 --961029735 -398256817 -723416269 -566291356 -795656647 -685105308 --221616473 -107083420 -920294944 -560371780 -923554301 --99272963 -717371409 -137262079 -325101442 -609307354 -974912953 --570616999 -735669029 -14668677 -253215938 -605298607 -896612350 -997054427 --48370229 -657421985 -117191772 -968464779 -175638523 --921103069 -703056876 --473263369 -164933400 -772494959 -396816215 -691270810 -544941136 -119728963 --881572177 -385646895 -705567756 -766492128 -603266924 -802634789 -609572836 --308689828 -922880255 -90226258 -846319512 -659087680 -710735993 --813272044 -424742019 --615212752 -756887215 -669285 -420651414 -187317421 -632519507 -781953671 --238361516 -110181169 --304910054 -682086623 -513110614 -427280760 -206648113 --280362049 -984469165 -837913885 --163197272 -524188747 -732400027 -763862645 --994742911 -323193256 -799981865 -23110725 -822148986 --645784388 -294609043 --736949202 -111289150 -362655960 --232174734 -406764509 -449264508 -496054476 -415709969 --232099607 -741672873 -422587824 -963585428 -264255578 -517664546 -509488168 --74311750 -911084536 -980865136 -540552582 -879278277 --59723112 -345785640 --720281390 -724814318 -33832503 -71186065 --461603003 -127776002 -105479870 -406484194 -604141180 --403453311 -558339550 -460112628 -450204232 -956806026 -786953414 -606901557 -101349264 -493276369 --568092960 -382999919 --112879469 -152728688 -814897530 --709452144 -709769351 -819433612 -749787568 --905395323 -103536812 -502087475 -165006638 -196111389 -741535965 -241475417 -663863777 --826656292 -249334054 -785347171 -553431014 -316972440 -882572182 -575246855 -128557256 -459118595 --400213171 -831438236 -272095725 -193147608 -143283361 --690872886 -292535125 -385137601 --258784179 -284801905 -806854301 --634155250 -373890071 -533413894 -901964053 -73967509 -458543174 --358326614 -879090614 --596572045 -89033260 --6099151 -993785229 --208767585 -225771656 -491164921 -975049811 -73917487 -712688323 -596257373 --544203900 -828129134 -738534850 -627371475 -315416670 -848729764 -18153674 --871074724 -485248413 -30706637 --393329598 -743104581 -547776751 --903357836 -605328375 -85347602 -33252300 -364751911 -267704165 -819273878 -289359971 -535369979 -369617203 -145633969 --326033831 -941687695 --665179156 -98088760 -248248763 -251656133 -564070017 -89859419 -63312663 -657606258 -602526002 --397753638 -841798298 -763313093 --824925768 -807155691 -728345498 -438448721 -313168142 -168627074 --329774391 -825221862 -814046310 -112628801 -526883330 -158551083 --192867042 -75508597 -849941728 -752664015 --116155276 -467391417 -777055556 -631828180 --78773399 -931026071 -346919485 -903389112 -116514766 --933472618 -899464867 --295665109 -127212461 -546283937 -444054725 -575304211 -772430902 --390978373 -155575910 --388053473 -447945737 -665757310 -969299944 -46736776 -960610153 -34026103 -331017119 -172843147 -818250280 -976512448 -504690034 --593325402 -470872976 -575421616 -508932319 -467681832 -476454426 -860413569 --520498996 -636487078 --560722155 -334923600 -817030071 -369309204 --232331049 -643325510 -345567978 -564091632 --992719932 -201881850 -820591117 -269726467 -937505698 -512254800 -190530209 -983036429 --897407729 -258251100 --731380849 -772460397 --866454263 -110770628 --815286283 -394118185 -77029497 -762334937 --23448162 -187917465 --195778566 -113689386 -583792068 -293467617 --992070668 -705453741 -968415006 -373666826 --368750316 -309764795 -242382478 -23821087 -993162393 --87224760 -975837062 -197249514 --187021523 -438430729 --157960176 -375277238 -986085342 -736011174 --197880765 -53539993 --742533008 -717069657 --387845844 -449279533 --937848314 -799407717 -992659967 -57521155 -277663740 -986123250 --199762902 -390559209 -566990312 --949808144 -399291175 --376733452 -533128724 -491336785 -164105974 -231394931 -967045683 -244186670 -605674570 -358820620 --883890270 -729466567 -82577966 -486991407 -946874059 --802828807 -401575544 -128628792 --177892143 -568421375 -872520709 --255561592 -95206697 -59693351 --321374849 -81772301 --607016326 -29081849 --406255339 -388054014 -170393982 --549686923 -223803444 -183157996 -376178512 --519511138 -152540449 -87135277 -137277846 -949721096 --566153171 -715492396 -870179116 --517060861 -432316866 -742629911 --384252673 -538444427 -511504141 -294298876 --769876578 -979249638 -262261651 -496608897 -333146856 -506684021 -955123627 -79351884 -997358716 -323512186 -856492096 --796889567 -367983265 -644549223 -215384516 -307594778 -30169167 -130787214 --324349304 -852049404 -417570930 -801809242 -749916895 -459258428 --969455977 -136193812 -83809452 -856004292 -128330535 -416861706 --383526107 -971407953 --589122846 -319137319 -132547043 --227949709 -767589039 -853010535 -25043431 --840025642 -519365693 -196275303 -765058618 --68813085 -443436768 -846097437 -84242574 --885112331 -200237963 -327730121 --138347303 -920765266 -424769265 -308799228 -48399099 --182381149 -599352279 -907330601 --241685645 -799732049 -408483012 -297365211 -720496592 --919222477 -33293694 -801767568 -466482022 -893430067 -940316710 -253857092 -506078968 -375462607 -325267233 -498197757 -337915142 -203869946 -841210106 -429107864 --105904172 -501259141 -6833822 -655575227 -860809539 -158923291 -127051527 --660499536 -73946529 -658268586 -681434104 --729366486 -778876894 -17998957 -27568899 -786065064 --516239313 -969281877 -254340061 -843889868 --590562395 -850578378 -331499236 -300797638 -414227202 -506000701 -146825894 --443380527 -966453298 -597438711 -879706830 --407812459 -684746453 --37370952 -204798298 -323224363 -686951667 --469730904 -878085759 -549998877 -387480417 -69759227 -65900600 -951611934 -642996198 --485535063 -31721392 -154266638 -588128566 -551052678 -626881591 -805164421 --879755452 -203514805 -122898410 -180491555 -215266997 --448905861 -603655161 -751024678 --555316604 -855571150 -951316927 -245449904 -656794605 --919703347 -979612653 --105392576 -813095637 -449447605 --618870819 -351580829 -414014903 -886057548 -869140706 -526279578 --617863076 -751230655 --576551449 -621426094 -156766179 -515707073 --264437219 -373555708 --272134985 -150605550 --917829906 -646717291 -733144069 -573173387 -712877015 -793289236 -74988102 --377800486 -724892438 -835235616 --420800610 -844092658 -591897730 -390361468 -135298291 -986423557 --509945040 -57573017 -497332157 --511571658 -106974694 -141647481 --412604398 -706057488 --317328783 -133098922 -958723964 -878168892 --544460814 -605882378 -167207745 -763882153 --644087740 -242511301 -423404384 --571994371 -902417657 -526421428 --633376815 -34323790 --235678237 -829568139 --69359480 -928368518 -304299641 -924485278 -326152679 -992463404 -108613418 -122385457 -596026519 -550398215 -450717140 -799143181 -897425324 -458310081 --864040245 -23548904 -685521595 --976512448 -90011485 -290890899 -245159035 -668088364 --923028233 -126668610 -79376228 -381981825 -634743618 -668617470 -86664080 -773953772 --828550919 -64969181 -69281304 -361287500 -986057486 -871918008 -329948973 -38461823 -458465634 -526358354 --882338048 -620763880 -582771651 -413005170 -530610864 -240085673 -782650468 -959637862 -32802735 -922985957 -12408909 --690715992 -573361053 -365884593 --561403547 -350987173 -434791612 -784776276 -368853332 -14796153 -702742117 -378983219 -624320836 -49660054 --954999282 -392669629 -648537411 -938521186 --48303534 -625828693 -496649801 -777008235 -577747161 -738266273 -712028441 -325585777 -291527196 -712663401 -690695729 -402372429 --444453025 -358248791 --442424720 -949979176 -796345385 -28633370 -490951246 -900130477 -436489260 -718465742 --64159595 -535420548 --335398617 -722720004 -726975972 -55508254 --573128489 -59694282 -834087806 -332174080 --861114293 -289151844 -487519646 --581685858 -417563158 -135328688 -51441931 --569917084 -368600491 -495122413 -780894128 -883065696 --247365462 -163982056 --328256252 -712571974 -31529528 -307851010 --66200515 -90234357 -462063960 --822992296 -300890819 --495327899 -878067890 -485490360 --229968498 -371733339 --246227759 -884754853 -220332256 -930372325 -454168679 -759709462 -179221812 -875752103 -366813286 -771168151 -83219761 -881414716 --990425703 -41925292 -256677899 --418089740 -305898904 -566183537 -78961624 -842547975 -487476630 -539905131 --430712253 -307411673 -930878229 -477009994 -682108367 -666863831 -593601357 -514420595 --776939934 -564598392 -155366087 -526302816 -503260478 --837868135 -715654614 --600940113 -493535633 -138408870 -214838588 -188621074 --360818333 -871134768 -440519043 -335138837 -144784383 -66001952 --766171386 -700842606 -330307508 -585763268 -407535245 -547835181 -674799460 -157444841 -375894360 -710859432 -591452811 -782692258 -381743501 -668394475 -260258403 -899644481 --257053574 -251216244 -850881811 --494298690 -15485972 --57301297 -736450336 -842357810 -913781271 -188217124 --785579261 -708120336 -405408402 -10750166 -662231370 -329932399 -970409171 -448054305 --736429993 -241184048 -815239394 -137424848 -728061576 -617721752 --128718291 -155138059 -920612441 --585895528 -25091661 -915525184 --81438606 -657824073 --797568643 -557776963 -869663508 -833172325 -534936720 -866024902 --819241101 -654118076 --681009984 -311502152 -47774628 --394207050 -763431788 -802700622 -456085597 -526376817 -680602 --849987175 -314995528 --941359547 -217006247 --61250152 -872164573 --164785029 -559728134 -424930721 -790070300 -435834539 --740152196 -508221045 --474472901 -33438480 -416393854 -760513946 -154680495 -43716614 -267070402 --111530988 -306974501 -850393464 -266644493 --747945328 -80569973 -105189839 -40499766 -496144708 --170964248 -354570899 --251589234 -913872046 -414791363 -220832881 -355948354 -268445404 -872193355 -41194025 -232466015 --382751386 -760274059 -539975003 --136800197 -602496589 -168106039 -696269657 --778294688 -134695776 -707056522 --347564015 -11693758 --109876793 -342682620 -459001317 --992939853 -721588261 -954805428 -372225670 -800117666 -456049541 -903869368 --935363210 -715258152 -614652065 --431682378 -604882144 -812373929 -571388303 -432537860 -335381521 -249502345 -884332949 --967838268 -338051490 --92725999 -805195449 -848267811 -659930754 -695964388 -753813477 -791224322 -400183963 -723319679 -395960883 --49036036 -93724055 --698504210 -318213803 -29651221 -926315171 -915260149 -660871269 -155633197 -22585047 --516956513 -782327395 -576175154 -198981963 -281251597 -87836372 -244374923 -488555474 --656918197 -973614049 -635524983 -829037565 -606089214 -355296813 -820305209 --985992291 -15740955 -940619990 -174512500 -596571858 -709297613 -862001676 -490981580 --732729405 -449973671 --215161292 -251341497 -172555368 -37887988 -845840634 -750163836 -177263481 -35691657 -78561655 -623683345 -511398128 -217753672 --205454281 -160154603 -437051822 --325588665 -613123635 -541190425 --841210106 -513087339 -328023748 -780333187 --123107773 -166994678 --303561953 -592984703 -979522281 -375956066 -805668647 --375644901 -567963813 --722509505 -475836058 -132210638 -419250934 -990721646 -51372166 --477148625 -123854348 -999144417 --257742872 -841757681 -172065654 --101658815 -680279168 --307418056 -115368723 --908306346 -542224219 -750294709 -145174137 -867939341 -184735684 -449780304 -669845747 -507190515 -395563426 -335112371 -840183057 -911511108 -803024943 -698641270 --869386136 -59540024 -920684671 -122938920 -154811155 --25827398 -230210293 -136091090 --41194025 -666388331 --212305247 -386922950 --666451846 -356934001 -385971973 -771186091 -538658866 -613824973 -73130612 -693927085 -212416114 -533760575 -204241513 -937113474 -931077021 --320912553 -494087302 -666778799 -719088792 --260346393 -734348043 --193205309 -234855613 --304133575 -546486167 -954065712 -334398492 -90339499 -898263485 --954101908 -557430968 -890236456 --140981793 -753046973 --893580581 -764668237 -638957494 -803409836 -875870207 -203827230 -564795692 -448451230 -485611939 --129466801 -269035509 -388510903 --294179007 -133433024 -847985092 -777394985 -15362375 -706839053 -518231096 --34349914 -162335596 -237056941 -889842214 -182195586 -881090218 -540222159 --369628705 -637890247 -135382488 --764604321 -755916145 -903654729 -435036921 --91351039 -982978805 -873579053 --727960723 -914428225 -119108949 --749176007 -130496045 -493387398 --190103091 -645470340 -302161198 -693887346 -665453619 --283645497 -955492092 --9518339 -595509992 -295128448 -201522673 -142110761 -798466549 -581323411 --265346936 -400761520 -970535676 --577033453 -786216959 -688683907 -725138587 -5086227 --176138021 -251958003 -794966692 -630496288 --38195475 -174067749 --346629004 -805687506 -60738328 -128422456 -414261872 --850756468 -187124540 --496401660 -643012703 -983198514 -841506182 -870481092 -961411628 -830667812 --369515148 -326732830 -365074096 -829522844 -963562376 -510170904 -406698820 --958259678 -712531603 -418866235 -677388036 -83733034 -160357299 -514019378 -299764654 --743734921 -149737007 -761035192 -712841315 --662539900 -838071424 --160383052 -716185216 -28872437 -230737496 --408573419 -774558231 -605693053 -451735457 --615490739 -600721074 -421922181 -73449073 --640514154 -374344416 --43938255 -713863820 -313474567 -801922051 --728779625 -204899834 --272895742 -625890711 -56939014 -519937301 -991576270 -854620459 -417788077 -20194096 -125875353 -286884376 --22130910 -735317802 -982562504 -818005174 -338548219 --361769454 -805232961 -106224250 --881630058 -561694743 -965826967 -88400754 --535727100 -549522044 --547132880 -33357130 -593788378 -211959486 -893180044 --471990957 -435920152 -544631559 --300484902 -476998352 --178304376 -424103051 -188437740 -602424178 --461051119 -246412302 --180225470 -413405742 -7803070 -268452335 -801550417 -332890347 -576997048 -545434798 --278124346 -550628033 -396001200 -96272189 -221995730 -847826780 -512353994 --512135294 -746384870 --782628494 -96208469 --192174660 -757647241 -289457645 -582040739 -367035898 --602115519 -791794835 -959519411 -515625651 -272809787 -220148507 -110427007 --965015232 -700254074 -325183953 -876018045 -195095066 -663367427 --397651579 -105503893 -717818490 -156742529 -759177282 --462733714 -339621123 -925969332 --579629664 -268307144 -923870782 -377000315 -145404615 -38919036 -410542329 -445801555 --480121014 -498341723 --798301989 -433225889 -925150661 -656008928 -105597682 -680987433 -441919140 -111227580 -858694830 -115430311 --438435841 -661904167 -175859745 -748595947 -200011761 --809775057 -723825045 -181204304 --278090506 -276071866 --403800976 -419677040 -110164461 -708767835 -106932457 -191021334 -314420750 -386189702 -516718285 -281572657 -348697974 --878274590 -197207792 -371768629 --562015935 -195375378 -38242027 --848267811 -746038982 -276137384 -736374114 --692092625 -919245755 -348999060 -415081785 -721740507 --827260631 -597917087 -223005701 --804288626 -386944408 --161868315 -813575090 -745194005 -663216956 -80910967 --274976531 -633296182 -500708903 -880468711 --540830412 -424838286 --196009314 -304933572 --239971084 -714271654 -358460620 -476517422 -691449900 --851115216 -95247749 -40794242 --453839549 -644686559 -986278418 -640630379 -626309377 -405846678 -204271904 --377142405 -984647117 --93005369 -798856167 -590409794 --404619066 -918835416 -483321494 -796267282 -950873483 -668805685 --20887688 -931744550 -543100809 -621657179 -327100699 -655986657 --77029497 -260907014 -542730920 -682844771 -366038117 --285525892 -237659358 -290330555 -710373063 --741964330 -881194165 -280551363 -521513672 -991871745 -308772662 --643766139 -395518762 -72550843 --566725499 -324113247 -173245347 -162766086 -949796662 -78237809 -720340416 -496359405 -819595234 -190672836 -112877167 --727841044 -724280897 -721884039 -521317556 -66872236 -207439953 -537014038 -795297966 -488249848 -279674469 -277379657 -991384085 -32844848 --43168250 -526024406 -378596818 -690636654 --76057144 -480981343 --788844928 -703892295 --133517908 -740023718 --680688956 -512199779 -680970541 --841029990 -707406185 --473880900 -29112210 -247331778 --304546446 -736525574 --863706315 -820586159 --475229817 -31970662 -431008303 --227320758 -834838743 -834619283 --708162347 -259942259 -386196783 --693938494 -321667521 -243095300 --625603191 -590238471 --456923925 -654978382 -961858589 --936561592 -924350346 -458854999 -762303214 -260217848 -44588229 -387659032 -821188501 -115281996 --429739218 -539046556 -797922123 -130921109 --354806011 -89026949 -76330188 --274584966 -544213533 -340041326 -477615353 -887891245 -27189115 -299096172 -874033076 --647480952 -56016691 -792064200 -610676977 --30936099 -447749474 -385916230 --840649498 -452416456 -984760907 -356258425 -161777974 -119229977 -661019527 -81049373 --681426385 -51516134 -241323731 -221177048 --545926553 -464072322 -734674619 --473723902 -770980092 -336040811 --179034955 -777422918 -313434692 -825045906 -377985591 -607936076 -247123630 --951253569 -386390563 --105819653 -619603565 --982766431 -829436286 --552419674 -69909458 -414147687 -681959679 --751873604 -396702384 -815277994 -421335928 --349047980 -829627564 -324116163 -402352157 -880972795 -17016395 -205017716 -231288591 -197817414 --857998531 -936344933 -274704406 --655026379 -465228645 --780388932 -165366932 -418037193 -22177205 -606673685 --700690751 -76878168 -134207131 -985029575 -264519524 -561739419 -743261456 -992951570 -746336265 --62963988 -338339290 --831377889 -681277685 --966174772 -961372630 -213933571 --974903445 -704836348 --900312072 -725626949 -858941682 --618726039 -962141346 --574485165 -211085931 -229631313 -730518260 -727252974 --943126391 -987466750 -547679354 -335572811 --145628445 -844594380 -407010740 -545072158 -648839323 --731963643 -513424544 -715863694 -31980837 --631306528 -80567487 -384621890 --560251817 -534551012 -330327661 --578087697 -858746901 -105208175 -947404987 -617859495 --506463609 -623893564 -638355242 -316962824 -591230257 --387678514 -581325015 -105241350 -854266465 -383855557 --746174342 -148383804 -655942178 -999625971 --117456790 -521810248 --669525917 -612743539 -178689201 -974509787 -39283078 -829580666 -523581083 -359288455 -494072299 -729403774 -92221997 --64194084 -948798192 --740429324 -296406219 -654824419 -537731871 --842367335 -17134703 -640198107 -702130230 -293676373 --62464353 -11174318 --164281471 -454511330 -709004255 --850499771 -926585560 -350012305 -869501481 -473065398 -428925352 --445217876 -287335716 --39531615 -702063506 -154624180 --932555135 -280301577 --868870534 -132407093 --129738946 -40163569 -743522914 -714130498 -766135435 -932825323 -76818434 -376990535 --213791796 -587400609 -366376929 -682283283 -935676651 --558676565 -431321276 -128334964 -165408538 --709297613 -300452084 -458469279 -427211109 -384362970 -411682369 -598846145 -861239663 -886205209 --427087019 -367962879 --705978624 -345247535 -951050831 -725095744 -430640 -17637150 -709433665 --182522732 -269140801 -647115827 -98517072 --642256303 -934693859 -100488880 -493186919 -24441969 -664208243 --260304778 -123983644 -615396454 -561221649 --261907727 -920034027 -554816684 --318592090 -991725336 -740820661 -964505540 -756406173 -80168092 -288329246 --631180530 -397440772 -72189146 -432334319 --173968924 -118295298 -901071730 -953897071 -214150999 -326755837 --536330099 -860677618 -499426194 -786292051 -690552309 --699314426 -978500366 -476737128 -531216119 -927259856 -249816962 -247304751 -706588630 -916175682 --974889926 -757316873 -803375925 --100462457 -363020718 --856631740 -215637354 --753352342 -657921064 -996622376 --916078380 -423754933 --671527435 -415527601 -241226892 -282116889 --472205608 -753778265 --259966397 -515909281 -150641294 --577259154 -723398754 -271650534 -760217701 -138606732 -567412539 -508327509 -714772923 -213170156 -691027983 -417700219 --941075223 -993007228 -778592716 -347281575 -228438881 --849524536 -276725977 -171913086 -881812569 -146526787 -316096269 -950563302 -515542506 --855929798 -755303257 -692813458 -395130046 -558922045 --439504231 -89103675 --86115892 -852905825 -496891030 -469009272 -736219723 --211085086 -955216042 -337116547 --852129352 -242636191 --593824577 -790058873 -960076040 --9006769 -691752730 --61279037 -139074849 -144659320 -698927095 -351774951 -233861105 -137594974 -796880747 --600422949 -33690390 --460873196 -874661361 --912873448 -219281061 -315678063 -90005068 -581025870 --444487233 -689239875 -702132888 --51865926 -642237841 -287002076 --11824621 -20155869 --999716142 -253358516 -104763165 -806856073 --981620451 -807756967 -367924099 -569865247 -284284575 -481449690 -173609017 --62128264 -2654200 -364101058 -191898179 -404518266 -853825144 --912020365 -168360843 --60738328 -847179662 -387893273 -250465734 -510398330 -980347321 -40262401 -954391994 --900156919 -87289408 --190209587 -803142411 -83054733 -671202390 -826591099 --226909301 -998735335 --973904154 -543472748 -486458414 --569809048 -40900053 -151889322 -915853392 -97968159 -267546818 -591681576 --108521170 -446532926 -186432673 -733075323 -313894957 -801558771 -255977202 --32022070 -165056293 --156508838 -170375143 -925080165 -505532131 --341507354 -408097669 --191460339 -564601825 -77110889 -796270972 -898671862 --927973616 -384542787 --634212112 -583675819 -103742241 --791757724 -451265106 -566587376 --46463407 -343451312 --281783473 -171760205 -974224196 --759341287 -850548727 -280967366 --186489644 -138615566 -981254987 --601408790 -498896429 -170105437 -588167934 -194990427 --439262595 -192728081 --747060366 -535385234 -997209307 --997744033 -977433758 --415578084 -530028422 -82183245 -945134315 --46145799 -735626762 -880995084 -510595394 --618053305 -135830606 --399177819 -323258464 -592785892 -801016899 -246837828 -434675326 --303723410 -318022726 -950295636 -749334891 -876181492 -71479299 -565191904 -943352387 -74416297 --830518669 -268860270 -927694965 --372536908 -931584120 -681482011 -746360708 -410037448 -236548032 --296023921 -630940907 -161502468 -532487328 -123029006 -625591543 --107824654 -182920778 -848938871 -455697569 -799166639 -149000896 -639739015 --243472489 -854062796 -158875911 -916137091 -835697040 --268759127 -764346351 -63027887 -11338705 -527937862 --489383773 -339614782 --175372583 -22739240 -405345197 --728452487 -856161892 --335519935 -450660467 -245693486 -733550020 -836021603 -166610219 -366497084 -570421605 --153024028 -646371288 -736729471 --386426478 -279272566 -39158401 -975066655 --969664233 -49935212 --188657643 -328563696 -683649194 -288492502 -102204187 -966373916 --252777471 -175188910 -355722388 -228790150 --194990427 -78360995 --45772871 -694947199 -520674139 -784768114 --329109640 -567732087 --734341524 -71257785 -989657353 --235604933 -248000557 -501064600 -848325178 -535207739 -498611421 -55919856 -613205298 -403559162 --774081938 -24536788 --271006875 -617997270 -792012281 --272522129 -444818038 -909007490 -156772996 --990721646 -150423289 -431679079 -250734082 -302157312 -586746800 -27096297 -764977193 -340146880 -634958542 -670347208 --589803814 -17844166 -714725288 -766305829 -671149629 -228454286 -419729328 --321585470 -625467214 -127294475 --431204176 -868244456 --729466567 -82867716 -107671680 -838761007 -896158803 --721983616 -518050908 -41694241 -342440411 -41944122 -314439531 -156206637 --459137615 -206959153 -259997895 -814092355 -35477186 -75543630 -509884122 -59104078 --605551153 -563548491 -765287363 -515603492 -690265135 -196344642 -69707718 --958987319 -120225595 --719203846 -765090049 --483705830 -905960546 -516684813 -201616883 -196644848 --772240882 -808824880 -793928745 -840032616 -772575462 --469096084 -82771199 -279937418 -312676845 -623520667 --281022885 -436220719 --934678595 -389456576 -149639275 -340841393 -630379731 -440104060 --941598638 -419323052 -622330378 -647345896 -13325382 -677561338 -595685 -218339506 --581303987 -873374306 -551247083 --430490796 -207218722 -969745466 -64936880 -223629497 -143683319 -35799840 -24940321 --245191135 -579569697 --641933334 -210746534 --901749300 -136119828 --151910160 -23321493 --299133717 -34001267 --882152089 -781048629 -275721465 --631955721 -503612702 -415127353 -57210814 -229006517 --948821145 -285752299 -764809988 --318916634 -207010248 -305274200 -639030892 -912207607 -990780612 -713774315 -773178291 -540482267 -930841113 --535759502 -953280841 -845875714 -847472619 -580989590 -923988459 --353842538 -655191122 -705488929 --51026594 -301032760 --386899715 -31457203 -867633555 -312631174 -616599015 --517622096 -353749846 -950809682 -415075362 --684530190 -808079161 -512735541 -407135140 -624522304 -303246224 -737279466 -882410358 -653675062 --12399257 -100142399 -859036350 -339576901 -809520362 --53160835 -413485388 -763424068 -26062747 -760207026 --741836551 -196329592 -881250306 --558507051 -802926153 -572177896 -171467476 -242278752 -535821770 -28099008 -838866925 --290933473 -198496402 -924532135 --956286813 -786686512 -369456710 -168707187 --634781116 -213051440 --10915845 -999436483 -401612691 -345722108 --114549536 -52846899 -448966432 -382832966 --620822404 -628221234 --638570578 -325661667 -457837470 -399394741 --15070603 -651928013 --624064180 -557910071 -273935298 --45035830 -272144488 --506345469 -643648551 -431092749 --263680745 -402700987 -900374313 -922439209 -531258282 --548691007 -180020112 -591775344 -731071217 -566606571 -438567346 --595924683 -525897000 --405768675 -947249027 -440571130 -717952335 -790581588 --220224453 -786363551 -511416086 -451343969 -127829909 --829984583 -762853134 --143283361 -577786693 --236367400 -153133790 -706878158 -796579164 -842602072 --2215190 -174262593 --130573730 -737644355 -596828869 --410401153 -925461899 -502105325 --282794986 -571913501 -659400975 -48907693 --512534825 -236173851 -475528096 --764508484 -461258834 --170973188 -592718483 -709020924 -713021530 -124977438 -469097763 -882932392 --555441123 -803375999 -877642714 -220305179 -269219659 -391594015 -863942337 -322736183 -361584323 -908373114 -208193299 --452483843 -316435061 --698426968 -948086032 -264072387 -849801053 -470290393 -64544151 --26053889 -434890782 -280550629 -775295559 -796445333 -119162277 -668073553 -201442798 --514633759 -350078776 -20657571 -941503827 -52968894 -661581362 -347986634 -993612522 --692361530 -126404645 --955877591 -816317512 -416715459 -710321815 -457539766 --103078644 -769072451 -143732289 -402728613 -186009111 -111413968 -859468294 --600256698 -388644142 -150164482 -938032489 --691581620 -933300106 -787700428 -251005088 --137734002 -928819471 -912934746 -599589743 --979788064 -71042452 --654824419 -237160719 -35489619 --930908157 -652792245 --804891410 -772653358 --151436146 -468560919 --887404689 -469015431 --918126747 -574181688 -357846105 --341006838 -759735104 -598983748 -120793265 -511839601 --831047842 -447311959 -490016367 -214237285 --121339526 -459900337 --432141103 -505677664 -853910776 --403774758 -441668062 -392137789 --507678206 -512675194 -242321564 -587724660 -363469521 -837365240 -615273647 -270954530 -734695007 -348657792 -158482506 --810938969 -866535802 -184634343 --235870177 -997032681 -576228261 -928875257 -205766080 --622736699 -928063207 -643853198 -376930990 -604572936 -989897823 -804762045 -788056063 --712674826 -329985953 --338051490 -509446388 --610686845 -310621943 -36790392 --230300225 -583577002 --275980305 -369968492 -380075837 -500667110 --670728011 -352775856 -516445821 -614721663 -356021776 -72816826 -721714401 --631104382 -375249264 -521493588 --543039089 -902863799 -576568784 -751477798 --862235172 -530995965 -282228842 --991691365 -830510459 -71663493 --550787208 -294403782 -208998893 --823908155 -299163135 -776396650 --290422029 -365130645 -780674514 -749954592 -587669408 -726525256 -78246667 -1122241 -601613804 --475260926 -726863878 --609086966 -91676122 -838648448 -375790056 -401921951 -437361286 -330316497 -121289084 -945675110 -644325538 --415598862 -222898013 -682060971 -616165467 -897342023 --804338786 -910126743 -113213576 -694203484 --34959626 -810128373 -360477208 -362811971 --18536176 -777101390 --242541671 -281384657 -379833464 -397747396 -625307380 --381841339 -707728841 --638855015 -729459649 -887226250 -116572462 -765112714 -800313282 -145177198 -122897609 -979446738 -489970223 -851548551 --155358796 -646870730 --439368735 -961869665 -550702212 -366206223 -556377816 -583191240 --961740203 -302037530 -455984047 -294381787 -756574345 -712392513 -844840193 --254722899 -465648379 --350934873 -641212670 -493443387 -370097050 -927415580 --421294912 -82786541 -266768474 -410222903 -954146248 -210853800 --946315896 -103559554 --167952170 -805798689 --272005176 -372531521 -763174884 -76301737 -454059589 -985995117 -903484043 -823832346 --533117441 -638148165 -239703570 -856487408 -879409704 -787231616 -840937495 -537717625 -311133988 -343828591 --344804585 -10411201 -114036098 -577752425 --18153674 -393985239 -102734490 -367979171 -801511643 --944297478 -822298135 -856391942 --245074135 -759988649 --709640036 -247185597 --562073538 -320999922 -916002888 -624206181 --248220939 -100516565 -959084459 -14528212 -487021523 -232852779 -219660782 -211994244 -750620454 -435369536 --559002626 -310711924 -56208570 -981661785 -438749648 -711495609 -389408029 --953125268 -196935984 -658381853 -379430721 -717844241 -742849207 -402390390 -526875153 --291516096 -362481566 --469077615 -574769696 -511850558 -272616994 -189585549 -318583677 -699039812 --551568709 -958842568 --249502345 -99166800 --685206414 -500247126 -7074324 -604223751 -708761656 -57532260 -369311617 -273683257 -282818612 -553675051 -86638644 -334500512 --195455873 -630462331 --146581544 -60980971 -741484133 -991184262 -243261434 --956208519 -264830434 -779000415 -8787220 -343226938 -96038808 -993934186 -363633719 -602439086 -939767022 --382357269 -349545181 -428051178 -350288930 -121802209 --575614639 -95640282 -88819704 -808164485 -384360661 -585666335 -491489033 --817831208 -347963925 --770458911 -876583949 --14248982 -610552019 -911047962 -185911194 -81688110 --618026365 -113116386 --16594377 -320702403 -131096606 -952583705 --430230161 -910078063 -167303480 --459530238 -935008059 --208742464 -796629420 -415589971 --276023205 -355336493 -339389292 --272711764 -44319574 --862385316 -599147774 -598397790 -98937301 --294634096 -875948063 --952741640 -540499224 -800416944 -94488591 -888123582 --629141377 -317592341 -621474692 --63312663 -613122257 -429659570 -52594291 --195479456 -117859865 --783374893 -844882841 -133353751 -308372475 -367483636 -193757660 --994439704 -653002770 -984160651 -851243369 -869330701 -426463546 -732722631 --757541058 -846739141 -427120233 -27314063 -17204837 --496253149 -141705116 -427190962 -141938187 -316870330 -651130581 -118746700 --702389234 -58932421 --345515718 -264747928 -776207148 -191060755 -326352494 -704048210 --37955734 -110038821 --767667784 -644991040 -10553423 --705337606 -868121080 -883970092 -207503417 -146225335 --224578211 -595557425 -325734251 --680998023 -690171309 --750032136 -222183236 --746740426 -919935461 -246724836 -823407942 --603339970 -1781662 -826766742 -450162910 -870974377 -273909978 -874901446 -200295365 -942433042 --777119503 -487713424 -225234341 -981378431 -127549146 -3299889 --208638147 -296452327 -791969046 -129075018 -919993575 -432054899 -890576223 -869169657 --156256411 -790544083 --880868303 -88041547 -393268320 -325860669 -877815767 --130679833 -479040419 -455172125 -984671288 -903597835 --731151502 -936171311 --79823407 -588613931 -372552540 -753957968 --788896190 -21167221 -888010751 -501938482 -829749227 --387718802 -685737473 -749516243 --270964118 -855921315 -802815449 -570787864 -178487366 -494548220 -178658526 --869009682 -697341223 -941016414 -157931158 -531049354 -86365636 -356521539 --342892090 -23357730 -773550387 -965738874 --669745280 -502492823 -702285037 -431693523 -80422896 --809357255 -96107102 --522972531 -264071512 -285251896 -193934409 -556158425 -526003531 --105104856 -571322749 -180621643 -317951889 -704469332 -44503467 -67366462 --415709969 -852479979 -691140383 -700250404 -889429893 -492587048 -7420077 -812842859 -612789439 -542250097 --372531521 -172197659 -675236511 -408960060 --994507383 -310559914 -310866717 --828000436 -325772516 -302058074 -846784072 -333147965 -228919110 -798680183 -841917845 -583827011 -59140122 --109805483 -265581480 --857718592 -692437415 -62606572 -25220274 --160329098 -989935140 -437936918 --250846920 -506320019 --727859949 -924064212 -761674908 -567093697 --169696643 -153860411 --283250778 -856974714 --547006 -737259578 -701385892 --717695363 -381938847 -250254798 -894031290 -205090557 -246167936 -225776515 -132477008 -331496459 --245872658 -723173127 -955591464 --175612180 -295670791 -712420688 -330780350 --552592567 -881923790 -453378864 --976859568 -918974289 --173479055 -962220387 -478336694 -686124387 --526875153 -84276616 --353712972 -164378113 -607478160 -496691868 -160956958 -564730548 -966951045 -377339831 -802688458 -335025864 -425867158 -190043996 -982364811 -82683136 -725500524 --292659821 -792866623 -897480942 --935685228 -492493219 -87565931 --326747548 -981968124 -560334350 -229341873 -727530788 --174001043 -292130219 -887354470 -226288696 --262463779 -488518867 --249734880 -764609183 -591920969 --476436062 -985724612 --572085272 -864231987 -667985363 --367983265 -471451879 -891419141 --653289831 -191016778 -419127213 -629306868 --222173057 -398637028 -421303004 --690818295 -452842468 --208286781 -13603924 -881976284 --905855105 -53143187 -448320227 --614811731 -81365686 --886595177 -932099280 -761037308 --11558341 -52004200 -423087199 --352058925 -130919574 -717515652 --215936749 -374533698 --550206988 -997007643 -281772784 --272236139 -551555597 -323599982 --536854198 -659201938 --773849873 -291838719 -298557337 -74547133 --443579169 -149673694 -737793075 -806941506 -305335140 --958016120 -7511490 -474063405 -910802031 -827355531 -809814494 -934268007 --339714829 -772957080 --566312242 -911675646 -955700404 --540015993 -619318963 -366243046 -417545565 -93801534 -852048199 -932661116 --710820891 -283408179 -198883462 -630707235 --393732864 -104281366 -45862020 -887087878 -785614291 -754485768 -27746199 -507208845 --989653698 -436005714 --136193812 -587072550 -566855094 --383755333 -785351732 -530104683 --335906974 -860731506 -885488516 -508738073 -606786338 -281152043 -163741697 --187886209 -138720462 -911118179 -580709853 --107125558 -937480977 -210788974 -48769678 --976306783 -671218806 -25255986 --739041904 -683114608 -546009009 -34111351 --216553504 -204277403 -811087491 -269411426 -280733456 -648015891 -191174174 -222618572 -613218231 --673280437 -572940908 --826062551 -733636172 -270505227 --571440450 -491774997 --754666728 -582968205 -336766742 --895629675 -41967150 -220006669 -574916547 -198315094 -148088968 -520891423 --180766630 -481076258 -610606594 -638119225 -757466144 -891985655 --5564604 -885058430 -505929217 -572858614 -554713955 -47457759 -115058827 -484276419 --984754399 -585725745 -80850423 --699220215 -386009079 -464089646 -394481393 -1123512 -756080770 -719695385 --781068005 -354645945 --627848846 -110223539 -378857419 -11270881 -113734798 -45907997 --266404755 -3732040 --620918193 -841385132 --531551835 -604034665 -806322882 -190080122 --657719603 -717061317 --629234372 -378648432 -96150699 -189231775 -726076940 -160478516 --744360215 -841558784 -123002280 -181390533 -952601806 -798696131 --607831052 -892906931 --509340424 -340807874 -671653502 --950132787 -380370831 -757360583 --937343871 -136678068 -313325289 -799365948 --348996600 -466332233 -346717245 -709793709 -301067376 --319403540 -888251052 -277003423 -859766392 -160511938 --325267233 -142627633 --219767875 -289100250 -276037231 -54593400 -740398754 -480494870 -211484991 --121289084 -93491584 -313968632 -422647744 -706574023 -969528168 -179276808 -233771672 -862344841 -102880170 -296037794 -973387575 -883629396 --343486009 -369036118 --21260291 -312336003 -871497041 -962656686 -942196074 -509412914 -44476547 --292361419 -721818409 -382731626 -181327333 -860683569 -679830963 -417293590 -33171097 --242518327 -366891631 -607847487 --43880975 -743898676 -970136678 -347567690 -797001421 -590557247 --129154517 -202762998 --465145243 -228808193 --233727600 -462191933 -546438054 -730136839 -422206438 -123292441 --493771569 -929027393 --753078383 -6300784 -981413555 -813950876 -705836133 -118971718 --566025998 -791583980 --84249435 -921755512 --969511054 -339690952 -973105566 -426305614 -26957091 -518037989 -946370557 -137542164 -910651121 -157137991 -200574954 -602440684 -728677799 -574995771 -97671622 --831566082 -885337801 --850268501 -581794171 -679284820 -734207562 --178894844 -684930250 -210216588 -770835360 --534987822 -611598794 --672927099 -853863887 --87620489 -223400371 -133474213 -623974459 -797992554 --175546930 -797581723 -816624424 --933841738 -383290357 -65336813 -410697853 --663520818 -518974247 --345512176 -579135760 --927035176 -793859114 --917720996 -604191658 -966103847 -188270635 -506029614 -579051676 -689214134 -7974800 -518803461 --863647366 -300473560 -401321070 -164136252 -279130848 -836193589 --928461688 -617812162 -184341555 --381519717 -331103465 -889063890 -994912292 --888628785 -186038588 -602266393 -712732736 -96805277 --220484443 -978669581 -224871431 -854985731 --489564555 -973198322 --234016013 -407100408 --325183953 -31940145 --857254520 -902344629 --621753677 -985397337 --467700675 -321282251 --271803948 -10444458 -803309190 -282198687 -367352845 -420211954 --134810130 -563563470 --838122663 -342506037 --787997610 -460968965 -312971215 --692667664 -635330265 -755024085 -358235212 -181890569 -139993528 -633347244 -705921877 --253486908 -510941894 --708078720 -80517571 -622138885 -867346824 --224969087 -17356663 -46801394 -682425742 -267630535 --829583537 -953303252 -910749889 --228039140 -442290290 -948361224 -408450755 -553136468 -903369482 --344098783 -773129365 -472550624 --963567166 -768855332 -523235563 -337460947 -310433866 --219513078 -491879880 -679930043 --548689887 -776091133 --800121546 -986488576 -546073551 -852815494 --419195573 -915997439 --593447046 -684409807 -674281606 -597295224 -605653304 -504807384 -424470279 -790590607 -483239274 -276180066 --102623518 -937766295 --97548520 -956317216 --278134713 -104679348 --621010328 -363040407 -760200320 -896480029 -249377693 -71864060 -483029834 --450271635 -761583021 -547109426 --540920354 -950197897 --709430171 -493938537 -782197607 --69769924 -72571514 -7513794 -832192941 -766764958 -987345490 -18508590 --394551097 -493938080 --85143636 -597028738 -629295478 -445459468 --112994083 -49835612 -835480874 --55816390 -21311973 -893545610 -78183884 --6571833 -222602706 -755113048 -734247718 -424871078 --442986495 -30177857 --165598196 -623835190 -489618224 -360776055 -165997724 -335569582 -22901215 -848056933 -506264825 --289723941 -191194748 --281081109 -613469250 -79907432 -407792297 --889840825 -762151933 --741746994 -309540429 -85601060 -270980590 -780947190 --888246485 -194420180 -152889683 -703741041 -91602669 -364019762 -495519693 --715653261 -165601183 -45555372 -555616511 --782497450 -401908662 --202960870 -924617938 --349268133 -811684392 -64009055 --30099768 -587141737 -571831226 --90980405 -905172019 -374337936 -141103342 -421507798 -761614773 -266729779 -824683896 -981509219 -764043889 --651857008 -776831322 -317035464 -184989651 --691416923 -205009189 --454266499 -206785293 -183336456 -926164614 -706437894 -559966328 --710191407 -216983372 -81207556 -571610916 --27856473 -257659945 -564877170 -963293361 --267377089 -822751556 --764043889 -653740018 -102294531 -611581294 -795242850 -306009859 -869505196 -293111936 --859352075 -328692197 -147289607 -237201039 -504932239 --609551363 -697196570 -935051671 --393804448 -90495886 -214892991 -464939807 -787185328 --793042449 -263979605 --588646071 -436503458 --35246496 -110102073 --42130888 -592464494 -312858567 --83445750 -422380470 --194963877 -870918295 -111401368 -52444340 -350498974 -128487884 --965956787 -390033604 -80412396 -365725897 -547686759 -778028832 -699391539 --198660906 -65660239 -712581112 -289756638 -62196375 -347518230 -162111311 --498331600 -908857916 --731801692 -271535512 --13943581 -719066692 --638058980 -250063647 -764385407 -110063586 --307024613 -957803790 -672557113 -434721970 --782753383 -68169167 --378889971 -110522780 --723086233 -17855940 --720772829 -708292460 -535789807 -78992301 --647951163 -472587373 --370152242 -925414713 -513359134 --534929363 -891717746 -200859954 -376915315 --389830885 -728988729 -26711398 -893522682 -361768101 --14539545 -185190128 -197748096 -383239408 -404540116 --606145239 -178252885 -218070772 -384051172 -182040538 -463298050 -266515973 --613987076 -112881450 --964706513 -993502174 --329263681 -397239421 -571769015 -73283421 --300642372 -207027142 -817507494 -853034058 -815242709 -720512276 -129222654 --738389209 -601856003 --275208049 -594213369 -886518822 -256761830 -467316394 -303820015 --579097055 -143182527 --13497204 -537507246 --710171246 -585291868 -90067304 -293462039 --186722057 -160252802 -670787211 --288480241 -789164289 -102208375 -17451248 --776113875 -694446461 -331492050 -757419501 -726543243 -503527893 --586961694 -597222310 -418172244 -936200901 -135471113 --935764140 -759225667 -50748340 --229095387 -71750816 -590372199 -270838432 -242796916 -811171903 --932896530 -921767339 -247830695 -295453294 -764854882 -585299158 -499535830 --50255037 -609782371 -65020448 --754235626 -299584052 --395563426 -257172760 -839458725 --18414920 -656118865 -987115562 -329598733 --706878158 -848023409 --102530272 -783913865 -891743089 -16899901 --611608506 -323769715 -70927998 --635269244 -231861223 -883246062 -963381447 -373207108 --410671656 -831198917 -993483660 -897096949 --925969332 -515736545 -325989613 -547080978 --374055362 -945824484 -689214780 -212108800 -490874533 -23112464 -562857744 -616203371 -697961314 -347890707 -185748526 --146727052 -287331814 -995226061 -517246993 -103503339 -19964592 --902923906 -398090608 --517827873 -330366600 --519190699 -457642222 -802432132 -646470655 -939923011 -610090796 -717696082 --650914287 -572511806 -798121543 -203323684 --470392601 -841108999 -70602462 -436655596 -50332237 -265010543 --917078428 -910004361 -630988888 -381943092 -123218724 -955099080 --48622384 -653971635 -656567288 -918344272 --66732002 -163258440 -867063839 -16909315 --312525426 -39938328 -808587442 -83505652 --216683292 -557505064 -328512696 -369631715 --860752582 -769000809 -906207483 -337113416 --544041675 -322226071 -653258536 --240250157 -939327202 -668012513 -104759580 -856379144 -851868221 --949592910 -949557155 -417480402 -860749952 -91963711 -988354472 --900923881 -416740310 -688134949 -708619977 --125205954 -205929723 -664297352 -181425519 -668617755 -676017912 -83564712 -524847978 --546229006 -598807019 --52168213 -823380133 -31290614 -968581921 -995995215 -359182097 -948488027 --372643640 -606266720 --213434110 -48865418 -94215089 -361013474 -930482340 -337232394 -117451941 -928645483 -90484243 --296417487 -517610184 -505442802 -856878027 --930254045 -980169819 -838399204 --768094848 -772675367 -272108458 --10859423 -305516746 -795539485 -181504938 --150232070 -911242693 -950923808 -284481478 --957831215 -480006490 -81045105 --94676794 -241887112 -435312877 -863475117 -617283811 -714638423 -157963158 -399306871 -303846260 -916793780 -442509854 -211754981 -188303810 --728624390 -845730271 -154538638 -907947918 -503735869 -609112324 --416735389 -531515993 -768815102 -928873875 -997215349 --241932707 -682721184 --427330508 -801544328 -717599203 -892935687 --951007077 -17584729 --724747218 -816593380 -183366326 --768756394 -603494228 -147440416 -15154119 -72101502 -741260254 -241192499 -784581685 -919397746 --665054652 -798441927 -26901779 -302274115 -433254217 -39837771 -77388771 --703452050 -990166897 -702646015 -755551569 --47459872 -152354129 -126000284 --294609043 -356628015 --792256753 -290176390 --816202963 -702127097 -786829729 -409043464 --562525244 -299201145 --550347502 -484092222 -233238201 -987621628 --498340215 -584529792 -369259715 -80920778 -200021232 -322991257 -238501652 -355812952 -330364486 -459580343 -326248127 -293700096 -943051793 -516800639 -422036832 -252145216 -488927241 --445576682 -931952574 -691585928 --612601442 -364794341 --475528096 -799315167 -735145476 -572902745 -177425861 --601202611 -814336878 -885253375 -99165133 -33393277 -538027089 -594108293 -522463649 --978537519 -265083529 -29705531 --989597923 -834776297 -126857833 -722400010 -621939415 -463658219 --228290696 -611505515 -636934245 --247220219 -945057152 -24374026 -389514959 --135441921 -168965523 -9304514 -268369429 --763659837 -156982582 -177752305 -779246658 -135376863 --984374302 -763324300 -441264218 --786536747 -703681005 -106339384 -510860928 -549411392 -655552960 --581007866 -279662265 -859038352 -981324940 -889651197 -862961706 -478725541 -148114170 -273252453 -135744947 -982798471 --119130848 -735051297 -46888378 --419701887 -872468775 -812109916 -382717443 -119044297 -503052645 -748282387 -845061983 -481122680 -76314176 -442588161 --753532299 -957209266 -366953494 -387745010 -989583599 --736999070 -60473137 -993762678 -468134633 -22217359 -741345762 -452416814 -577246609 --629185218 -447771370 -663838242 -251216078 --58506075 -911833466 --387845964 -89464974 -987431446 -520137492 -837037813 -937848597 -546456345 -595215951 -567720364 -511967318 --173180940 -37332790 --559975325 -59062209 -229225693 --783435340 -26375512 -813120671 -680061269 --233382801 -608491664 -633411656 -797535015 -824335981 -856905797 --219730779 -28223329 --108714998 -978221756 -791801244 --340970796 -774688699 -657186228 -177150391 -536534742 -238341061 -83190656 -162712078 --552639908 -235772206 --325651780 -777637504 -96613450 -194936879 -938161558 --949033237 -980064963 --801659841 -904881119 -671317949 --258281893 -592311607 --683186064 -557870816 -834370032 --730431096 -857211791 -166442955 -877640318 -220476147 --483188219 -271993578 -496789088 -618235603 -486568142 -841687072 -542198804 -396830714 --535715692 -931382102 -542312895 -255991004 -377421598 --893180044 -831673748 -639311330 -119762166 --314646654 -298996655 --516971528 -991874286 -822443916 -413587841 -413580704 -157093595 -63482541 --972020302 -955167928 -92398715 -773400406 --372803000 -856697770 -447344153 --756317422 -101481399 -456687533 --982459577 -436718078 -249151313 --446525186 -969226666 -837915925 -680201527 -473607984 -475319859 --667661885 -764058605 -649133997 -731584511 -20359734 -70912113 -635698759 -499786946 -413180738 --270276018 -962853118 -711029528 --445309891 -179407522 -553968754 -72536100 -672203191 -517469461 --447556522 -910800038 -861233965 -338522110 --73305619 -730083250 --880392484 -546896534 -425590865 -301134772 -95380990 --837365240 -879733198 --674080467 -290965947 -77257847 --325565656 -245628811 -612079042 --918835416 -715925338 --692292508 -82779872 -287076277 -961756893 --168173666 -863594896 -66588525 -360506119 -928834887 -179705793 -238004013 -14240189 -15948539 -807026082 --802314462 -232140290 -696975944 --458319293 -743453384 -511861768 --187833253 -880866875 -403231267 -295878389 --77483958 -82775912 --114108086 -279784138 --335834280 -665884937 --585604770 -655187599 -860411643 -574755311 -879971761 -486334999 --917048721 -971536994 -917056707 -494647992 -73938568 -820211125 -602573037 -527041290 -464356223 --436045211 -159962369 -225323044 -769531013 -593838062 -63224096 -460980098 -830296880 -738010359 -425567768 --381834788 -797250472 -793964935 --191207269 -888535109 -200122817 -994454443 --953618187 -844130931 -902422645 -27551478 -793911876 --344303293 -256836872 -83519950 -314982282 -318480339 -547244271 -761658355 -278040801 --1071451 -862323493 -933361530 -236168404 -394972540 -974925189 -755267989 -684378097 --140230430 -636220999 -368367313 -557893967 -701913115 --629693725 -523614633 --2712055 -662170741 --172083357 -182229656 -703109301 --986855837 -534918524 -157259750 -268315794 -594085351 -935019426 -813867823 -126136285 -393607391 --691894623 -823402806 -173147418 --863475117 -271345038 -167812118 -718473706 --795062493 -697886921 --509375006 -988607706 -254185524 --288311922 -34605197 -908118526 --978083098 -861333749 -215671353 -344137377 -594668313 -709722914 -868347697 -378351153 --61219459 -694988114 -372182095 -70139412 -350605393 -611479080 -223014440 -362237936 -289960606 -357355543 -510339634 -751014593 -256741292 -649795206 -728088174 -778839581 --761969042 -325519755 --590621362 -281114051 -828818087 -523352171 --909001450 -724802564 --357758157 -686402630 --225960408 -337466880 -939070433 -544405668 --787361184 -984383227 -561075409 -124870301 -805943596 -918052029 -524802906 -332506437 -16386414 -453780407 -803550384 -439235341 -658264751 -321936137 -388010432 -641282753 -956139440 -753002789 -407050509 -681431126 -207756251 -687641062 -344595783 -155727578 -755813348 -512400671 -675847433 -952294382 -243248914 -275308174 -594325467 -906779114 -800311327 --754278804 -371696425 -71767880 --467436988 -119136380 --813458056 -684287646 -500626530 -489401419 -199865970 --327249181 -294391801 --118232292 -155967775 --883430259 -878904138 -553019673 -526719820 -640847115 -220505932 --113034939 -176699150 -413841837 -94048112 -775920442 --376210073 -426047473 -866322274 --174773488 -247791676 -865462433 --202102046 -9308223 -889355827 -516446017 --579732528 -228827969 -324497354 -275087335 -30415871 -433976139 --416656022 -715310068 --598219002 -680923062 -365226394 --298000216 -623553560 --294468684 -562292719 --575447732 -386636330 -129895899 -794140708 -380460820 --666370195 -65030531 -635203760 -927133453 -592021382 --189081855 -930593402 --707014549 -631942213 -283420397 --485537369 -990412329 -234111412 -110841869 --736418009 -640754802 -516396730 -704492693 -332464260 -470642552 -375536434 -608811683 -538192020 --257834726 -734623672 -963279756 -170535225 -513861842 --208391090 -605315246 -859996924 --844321901 -68668671 -352614061 -129642959 --312207831 -187140721 -781509267 -173743099 --748737311 -538686863 -210543986 -276645711 -600987998 --5474724 -763400277 --929284976 -498823368 -385409912 -970629714 -817904360 --127465135 -888081818 -670743412 -443676448 --304068706 -72217053 -414378732 --129557772 -774423613 -545484980 -539617667 -600608695 -880377228 -113683733 --792663190 -175794749 -957974202 --774451624 -752875265 --980148192 -972254507 --772911646 -272856699 -309112216 -519191960 -706001371 -3899521 --341108115 -207687757 --917471896 -477312775 -506197059 -30329835 -827134320 -453337805 --864859829 -235738890 -133741057 -707784578 --268595670 -705389531 -902084444 -320504567 -601366848 --365848733 -964428228 -760493546 -490457452 -617378023 -41185843 --280226741 -187683794 -862705194 -525592116 -174158935 -494839658 -315806892 -588902128 -293433557 -89274204 -856846038 -562778950 -580929098 -703522219 -968954811 -150682208 -604038700 -238789665 --379949552 -134102134 -311334460 -154268499 -560293015 -685960025 -629602358 -413551327 -163932611 -232285432 -601911413 -751506249 -614740873 --653422845 -865541626 -626770049 -522845947 --500335375 -116913966 -823776325 -812516971 --880344198 -169527538 --106510400 -347756843 -196597471 -458432464 -423373153 -933627936 -560904374 --564701662 -114538271 --672203019 -433295030 -103878816 --105780858 -157486460 -285826621 -74645502 --206823329 -941159751 -645299951 --755870504 -852374060 -614807266 --344551192 -175575276 -979099 -139860932 -122057739 -596250773 -989264201 --880932266 -40805936 -803835284 --893377214 -565440123 -454611700 -59105924 --168959539 -413934835 -63796839 --107368746 -532485172 -932936174 -3362252 -429478408 -462713934 --413240437 -396185314 -996388343 -875117667 --33225241 -778203172 -40449782 --78961624 -691197662 --405784574 -212632875 --911447782 -826603880 -728303678 --384306622 -414878452 -10052997 -631455283 -264528554 -441535922 --261688927 -714710406 --179170279 -823803692 --21443151 -650399976 -223813152 --748888766 -640353025 --304944241 -581408528 -597508870 -173260849 --510478715 -105434936 -245244473 -479987242 -712325700 -405474969 -14103213 -150532472 --685410589 -188813199 -252552984 -639209336 --18884768 -313865793 --264318311 -590970883 --80135173 -5981375 -136890614 --234632491 -73292986 -334766749 --709287688 -116828653 --839121397 -270883631 -64261915 -608302876 -437447025 -352838383 --686951667 -254663759 -199296242 --17515320 -971074322 -218531088 -251948456 -771752500 -311068545 --40921979 -795041643 -349185535 -32715304 -257832534 --500493980 -497782153 -163251218 --833862417 -529824609 -632347377 -163914985 -377629042 -420810391 -767770581 -855084601 -983286337 --270618924 -2756191 -859299776 -927735937 -348467562 -328275940 --278522808 -181223621 -577769415 -315131433 --3299889 -966365093 -783532267 -634854288 -339124185 --312927411 -433067115 --448306684 -49157915 --284274332 -911433495 -246737171 -888572562 -762826778 --412595087 -286566581 -640832198 -623666383 -520496202 -362161813 -727750042 --876018045 -776028596 --41304703 -335675788 -330870453 -373850495 -316075381 -323976727 --807925087 -697682397 -713684442 -82668192 --391656119 -41685330 -487417655 -669125070 -895432335 -488244079 -430573624 -797515741 --796544478 -794932256 -843915193 -230927403 -426729870 -473316083 -25745867 -479362917 -814994030 -775367896 -368735166 -184640092 --236504448 -770549593 --463968010 -800970105 --813078389 -127573976 --167029655 -451470711 --504450622 -942353348 --426172135 -274374726 -607778799 -754603301 --773955946 -558520739 -716831085 -543378557 --550526295 -347260654 --393171007 -364419116 -385139409 -435185883 -592243592 -622117266 -826787290 -734045180 --871549419 -713657270 -9002401 -249848824 -195680827 -378738502 -626940121 -231532867 -731823298 -498669146 --780548456 -894725227 -664982584 -67539438 --97676748 -592392571 --629982905 -247635530 --407719105 -27099418 -333479894 --674757561 -553174151 --137418592 -3955886 --874996037 -602192645 -910091976 --36316611 -717603958 --850769651 -219806574 --876583949 -829325801 -531957269 --233708139 -508254128 -354486123 -742035603 -91075400 -77067974 --563824587 -322057038 --318470439 -978494486 -500958146 --954510958 -886829561 --403469000 -796850664 -810018151 -946836409 -82622675 -421169454 --598048442 -703694040 --268239279 -280081354 -194817333 --26414233 -210807240 -854707727 -308019799 -855495370 -184611872 -671863171 -161905120 -901905561 -544515125 -529538787 --932890604 -15476874 --583499990 -382842091 --248680823 -52963812 --662697211 -62269363 -942576520 --21142980 -945071587 -57953966 -551672088 -491233423 -2922074 --501108646 -977988777 -539838652 --643702728 -66476500 -454606728 -853645665 -596114986 -912784856 -774316405 -901850143 -210859226 --504485409 -586896155 -745847080 --342644827 -830384575 -606088287 -867679122 -453959298 --779814801 -884632946 -39881662 -599165948 -893798339 -517844704 --86137448 -325198381 -323476262 -241300954 -327240776 --525796950 -195170756 --563218356 -995890389 -922617080 -125665535 -747679493 -93967141 --435090218 -637359336 --386009079 -688670273 -603659731 -63884902 -349453148 -737065933 -930587075 -554281564 -505134205 -199905179 -243074218 -94433539 --576673909 -711230472 -646347921 --614090527 -794814 -15998945 -562836470 -838037206 -820189721 -531649048 -104452013 -17105961 -504164014 -96232153 -274305278 -499927094 -385013502 -833082410 --984811807 -743638896 -72069006 -667216909 --34138206 -69034737 -335025162 -376614666 -315233990 -604871332 --15159415 -456891630 -879795261 -793216025 -126320875 -970388791 -685749752 -395643499 -622886130 -468118203 -577435205 --117009244 -770306077 --627620608 -374663101 -608062571 --232870173 -299195217 -415061116 -865780565 -83262232 --621456268 -247589932 -692251321 -9043503 -275794537 -390627999 -925863544 -719689030 --219283913 -912699389 -502566997 -295306495 -772397852 -730617551 --974179967 -849614072 --447393733 -103322264 -990875557 --281571521 -188460085 -292692685 -743163943 -836513180 --997627918 -541977301 -167803486 -488362407 -520250092 -54516991 --621165964 -402042195 -89490345 --845098612 -5323506 -571926017 -461818442 -289355602 -456486589 -437037030 --264830434 -367442799 --932038172 -417890705 -88358760 -547959305 -750220005 --817217004 -908329935 --651116343 -225151521 -90483444 -440736766 -813254395 -573992460 --887226250 -682237507 --527597375 -98364053 -424929587 -535836302 --243682891 -454311776 --297566849 -795300592 --174872924 -160831600 -862791392 -857708873 -471465176 -847050898 -436029540 -615838865 -733949357 -161824683 -712442747 -187345825 -216199277 -619684001 --873041906 -262809406 -510127975 -159560562 -812662296 -370884056 -124587043 -749760128 --802981776 -63753326 --568102419 -761809323 --698813903 -171442924 -795625252 -760768835 -610880254 -734828515 -416843117 -167042234 -412271377 --128714802 -225374150 --914170379 -232157876 -214942260 -701971422 --689610493 -661811564 -820089381 -642181503 -301602316 -383302899 -174333893 --289830332 -842997631 -746657329 -603543985 -867786885 --37781914 -372307690 -297984200 --378824088 -716988723 --239703570 -871675261 -711129550 -691711928 --846309651 -11821130 -475483204 -258181139 -508979904 -783018088 --611672625 -522887586 -693301516 -267794555 -934418995 -20903865 -840648032 -15298796 -41021676 -850784075 -544336869 -858547042 -241070958 -675452381 --487810715 -727976697 -115744305 -834571289 -328036995 -405855676 --579456052 -388133238 -994343030 --763185337 -536385305 -546444019 -453412406 -309016893 --897532103 -716208984 -262509347 -723917010 -550895997 --368840775 -263870860 --459781488 -20693215 -320015245 -285638361 -367882386 -426310935 --143683319 -752586415 -331669602 -682595147 -540744443 --94433769 -211948418 -895905511 --248579861 -539948584 -216651205 -753890874 --111413968 -622413367 --537587414 -882560225 -565235263 --478240484 -944422129 -268358360 --230223283 -828295817 -993166451 -340811350 -870791008 -42864089 -28351285 -719236359 --353031886 -649191038 --45048683 -747866792 -66015480 -119255718 -736236184 -623532410 -931149575 -1311878 --560010172 -131060185 --943077255 -661937991 --253686627 -730620748 -927198696 -481510663 --565260648 -79353281 -5274476 -594759356 --551245899 -673995977 -421465838 --339796773 -141959397 --588947043 -873224488 -469819329 --396090261 -797500176 -52850620 -318042351 --254687982 -572789688 -201080596 --424507225 -507982976 --435074001 -171193630 -354899886 -830708886 -583529790 -439752542 --744902821 -571068382 -100819094 -303568603 -108101230 -308141160 -361439579 --247410513 -696778888 -992176338 -201397315 -355412876 -805905073 --768237301 -377480509 -85902477 -769756336 --850630194 -355096839 -626161009 -642512613 --158875911 -237426417 -97977012 -123819867 -369604274 -981380696 -740398661 -526146164 --576939410 -40914693 -619150309 -491965267 -368204188 --189301356 -209144871 --401572296 -137739963 -775962203 -419236292 --185293906 -513131463 -112426520 --495423450 -341205354 --822808382 -909957650 --572789688 -439748777 -32063588 -212506879 -993639687 --882363566 -468196668 -74025943 -895790673 -157293882 --647709471 -388189593 --156375487 -601884236 --746692434 -530573483 -183922224 -93360903 -401235926 --114434106 -857333812 -81536048 -805425432 -972673547 --9646015 -424815038 -910414958 --257877870 -957557360 -547201931 -522093451 --307114575 -77487705 -209965924 -930320691 -680294811 -591579236 --814833621 -883141374 -758243843 -482883876 --116426681 -170023289 -286496182 -870886093 -856436828 -847463440 --843124308 -717540056 -3056711 --145902134 -407366893 --196151475 -540777360 --745847080 -267296401 -716466396 -266158089 --441906391 -164870525 --216217760 -168565337 -944410565 -176172590 --124443121 -443058213 -956931289 -545430398 --940904987 -418806147 -935716362 -198515568 -576553991 --299905981 -139537813 -628725379 -186056932 -914638991 --97615036 -451272302 -461426549 -978880802 --65872506 -455781552 -979967145 -968452854 -985229459 -917754254 -814557234 --355849309 -384015992 --268369429 -200971712 -606242085 --325593866 -770574919 -804405236 --877228349 -91958789 -291623046 -166465835 -291060986 -142114573 -132242336 --855967764 -367656740 -54002900 -109652921 --717878999 -132468302 --616526866 -434151239 --199819990 -284049130 --731222890 -335054850 -167251764 -771219481 --221867817 -223375196 --179025430 -977478883 -863460414 -222530101 -215749597 --845640936 -102913977 -120612351 -607011691 --600720733 -710385517 --7398978 -904126869 -398879132 -280913495 --813095637 -679381746 --56611889 -857940549 -24139744 -322956988 -214220102 -816895724 --75473985 -255403514 -315512470 --462680426 -61994194 -740558690 -191021772 -264001262 --297779315 -218975121 --753797583 -850829569 --102080939 -554078229 -878441326 -641102993 -337667583 -535503981 -842876588 -260386140 --163156719 -76673261 --809572150 -191764365 --405393802 -469799544 -477638884 -732883686 -276272327 --233912853 -886382227 -953805735 --767890032 -650390785 -280311911 -625574357 -457223738 --363330464 -884058689 -272956932 --296878577 -825879162 -937071954 -81667638 -576398556 -720663460 -937153782 -512352283 --404519697 -298020684 -589463372 --174086177 -612561483 -49114797 -294447002 --20359734 -681348703 -285810847 --518482997 -758444858 --856794460 -103310983 --842701941 -956776872 --650724046 -691850228 -459044820 --844852971 -453666982 -877926417 --38081563 -960141866 --509936695 -826523939 -494205680 -954329296 -39702463 -625417239 --279674469 -945339957 -216561011 -200704068 --396522123 -985922046 -211955649 -616528642 -441811791 --858902411 -867826118 -219717819 -795681979 -408831830 -68941369 -70009692 -51178708 -559506565 --684184524 -960171708 -884235916 -588115254 -923599496 --582335447 -861611794 -102108161 -186907410 --949066875 -775141221 --749940194 -222258332 --894705023 -506396964 --283498064 -942111550 --173934856 -366659432 --217817726 -935639363 -121497845 -20885932 --393930845 -559343008 -896910453 -56046644 --412663840 -738273784 -739089950 --672460554 -789523217 -89875536 --77728287 -440630317 --410736525 -748294551 -474912793 --958077586 -871545261 --706425807 -577651506 --233967513 -785416752 -943388727 -611847093 -656113814 -849074486 --53351380 -134259708 --26957091 -861148727 --712411361 -116804309 -406002979 -832074625 -834419293 -988811070 -521984883 --459673833 -284065415 -450874577 -88538362 --895702997 -222868324 -563881061 -873326861 --348716199 -870442058 -196869856 -462025720 -911241734 -873748926 --757371253 -269918987 -806709504 --195375378 -24539494 -434239383 -179302863 -241738864 -192814033 -302481009 -82203098 --241707861 -240998245 -737818162 -100061516 --769770694 -562270667 --569152019 -360480319 -568515484 -763098564 --784535416 -205709566 --634740568 -413662046 -475868904 -335212343 -460384981 -676014631 -51872266 -263550785 -362541145 -617960159 -412597763 -12059412 -725181001 -113939500 -386365847 -56038524 -145432039 -857063002 -305834870 -279627571 -500393026 -693502974 -713729619 -670471279 -148429845 -889774222 --141435007 -951474198 -466455550 -559105011 -430118478 --872030915 -282468349 -840950595 --997198410 -275457589 --442081028 -438424914 --959756810 -474049537 --485300665 -482118733 -338841329 -378988698 -906462647 --899118867 -699062574 -378171065 -149223718 -426810814 -116112365 -379875805 -605548567 -218199464 -493466562 -436983448 --612708211 -844620979 --759802427 -82251715 -307424394 -957305851 -634371321 --944591116 -138152404 -899870412 -909412461 --309173369 -968980845 -865719517 -87078507 --215954580 -959755911 --953333799 -194245351 --110531167 -700650395 -319174297 -721836223 -640319443 -260387245 -419577893 -818134023 -316679925 --158524284 -122412520 -573891229 --569865651 -329069620 --435284726 -346265278 -306822134 -896917651 -624937485 --141821577 -484410564 --69592288 -690429679 --264496703 -841125467 --826640048 -825793672 --587031423 -808207806 -470260641 -513664413 -147495746 -700618189 --545222540 -243984339 -222820985 -602559748 --344097468 -29054291 --244868030 -116620153 -219821457 --655272295 -507195718 -785907627 -356954470 --312220761 -802144244 -852191418 -230098977 -398177045 -507094051 -445076764 --46318278 -36692033 -778944873 -913003475 -828146439 -955309538 --912700401 -164867951 --465228645 -728998969 -167380655 -45061523 -376321159 --567112921 -707485925 --266737935 -80956170 -254046226 --223813152 -155473558 --287154108 -911508156 -499138360 -571896680 -954211926 -504005876 -733414194 -879245775 --234360962 -347898781 --550619122 -148723499 -269457476 -179937668 -270576280 -181119293 -80874537 --271209798 -670903894 -591313037 -193021901 -478114480 -209406596 -800882833 -203658649 -938226049 -363824810 --212432005 -855289061 -187575275 --17878932 -689451142 -238009702 -381325800 --574254334 -154455372 --891387130 -585261043 --881812569 -729656679 -7293040 -811539985 --35134871 -509032613 --656006530 -834593656 -837856148 -814373657 -241126239 --9705231 -808375447 -513439264 -537362678 -184843147 -44904204 -390284779 -208012910 --859766392 -61938059 --529105246 -68049598 -202639301 -919142401 -272241696 -576966443 --203584391 -693359604 -212389939 --607079541 -83229072 -107635233 -523014257 -866495354 -296266023 -528806931 -414575894 -327342642 -509789445 --955309538 -254828140 --47921737 -859431454 -537751120 -159349517 --964753887 -39674599 -128969947 --930076353 -229746158 -369684805 -340262062 -976534541 -124281804 -726327992 -576565841 -353982804 -185884354 --568011691 -775410217 --89095610 -520592677 -919930875 -187740159 -601643169 -355792568 -678307888 --924235370 -597790637 -534514551 --907110960 -993055268 --268282194 -988413990 -572731786 --87862728 -447566891 --380020085 -440802597 --404540116 -596470683 --58112569 -870980050 --967731593 -461946389 -493484575 --57331188 -146630195 -192231539 -904076071 --339481936 -153693673 --714710406 -876145491 -65098128 -65564522 -963221863 -557606596 --740923595 -880140287 -704026269 -99181407 -839271886 --838421678 -533886422 -431177190 -28887732 --562675493 -450147642 --302003068 -701894902 --297357572 -965373637 -115403255 -277402872 --604221184 -236509768 -585596638 -541745154 -440336089 -204370544 -591575268 -592244549 --744121478 -870264072 -474090533 -76133259 -182293963 --637857739 -421974620 -650916264 -983161796 -867882436 -441346263 -669795172 -388182604 -795085057 -822673433 --885663772 -381579187 -95753801 --201925750 -896408019 --526716387 -372872902 -320230268 -728045919 -16482473 -49265132 --901400551 -308790150 -518406807 --796162956 -824304586 -649943349 -858632843 --24755564 -450498926 -707867556 -402593410 -438302229 -331830418 -895860374 --790778338 -632323917 -399550983 -721870893 -666059477 -566236922 --360846567 -18491560 -302820252 -633776441 -831465175 --155189533 -335030779 -398020814 -441971476 -800280385 -611547657 -665156043 --612130138 -446536251 -176935876 --167442323 -785845324 --322652737 -264947104 -306287397 --920640187 -720168476 -58114472 -637224593 -751472621 -339162194 -410014374 -239205567 --808456557 -191484827 --646715404 -340651088 -256704955 --779394292 -203491675 --803370252 -398785868 -953243537 -579686561 -469395220 --247604613 -633569090 -368158337 -991766073 -312731088 -545000248 -989750733 --426654363 -111947091 -455543823 --149078390 -670094793 -286340343 -66606432 -840098151 -253259819 -687858127 -450016025 -181296672 -87757611 -550255947 -173121525 -304344949 -29445551 -517580148 -199494686 -999370373 -319094180 -31031039 --197817414 -234639614 -267595502 --743508409 -905028905 -931244779 -461496171 -132568864 -62642426 -294130475 --242660705 -916513275 -222550010 -184436116 -675854515 -160526168 -739326331 --936585539 -624909147 -593856847 -524131700 -713678772 --960470089 -516224195 --169305482 -427581502 -117867765 -410545576 -372682991 -212485436 -898403746 --213396982 -172835387 --60422446 -932931070 --188068074 -765081589 -730016142 -925130393 -252556690 -303004545 -637750797 --975054839 -176333000 -434781662 -104646994 -985044477 --551247910 -628152217 -870934651 -882565160 -638276062 -342381350 -713306123 -748878219 --878720981 -243822495 --164869923 -676867363 --276725481 -877933294 -431972368 -950531164 -371467902 -831514660 -453601369 -630104737 --710385517 -379832439 --760874938 -296182825 -178028201 -928551396 -44149634 -785266118 -581807652 -738910258 --323458731 -823104332 -977419478 -918391230 --588091237 -368002969 -774905203 -466415236 -395629917 -389595853 -810928389 -874304446 -304858211 -213198509 -200854224 -119448202 --951567693 -985466102 -26466544 -975991759 -104517876 -757440134 -686349788 -417401539 -83804073 -32800693 -490958187 -961286105 -452919372 -974623991 -553056609 -456210060 -289691888 -960942752 -839404658 --863313008 -832785287 -972692145 -177546035 -572031832 -517583589 -841441379 --242973749 -823388538 -287596857 --742251242 -605710462 --414626345 -538038366 -186179634 -4110924 --955167928 -974217282 --394525392 -800589298 --54909081 -309867602 -879764435 --448554312 -777403451 -914637484 --335112371 -617945002 -990454794 -137760798 -566165863 -268525380 -32903835 -81208265 -8226783 -201733909 -175140106 -161782668 -272847647 --62641746 -837893674 --507585867 -250669605 -357230418 -649604562 --138953528 -922118666 -658473148 --360361211 -400678162 -395889428 -791462734 -474901324 --847909323 -330897841 -142543223 -857721343 --995541548 -937424719 -379309119 -10890562 -13214690 -881277703 --17921259 -687133969 -492068583 -208621475 -456312993 -837945015 -552850332 -991908228 -258726300 -228888056 -617204651 -991432215 -572364637 -611364747 -787432249 -933679834 -389236350 -339513858 -26009224 -873983793 -176233208 --392914234 -490433036 -816750540 -110453114 -284254911 --81208265 -753092435 --889063890 -149018890 -95313663 -497383721 -489073996 -544381312 --942482747 -937001678 -455902599 -931165937 --698337592 -950785258 -597102812 --306974501 -33568110 -660465593 --134428152 -659015020 -439409407 -179815352 -620687088 -416626008 -556178585 --347753462 -807823024 -444863018 --676428728 -828411777 --63719361 -26438548 --471336747 -471448551 -831525916 -143029749 -754189347 -509345984 --654613218 -965086290 --26330871 -518581212 --471307192 -551833772 -708807324 -349720418 --456301306 -196379531 -13342037 -841467087 --757045322 -646151911 -348996659 -429628590 -976183532 -687816164 -392180015 -363231513 --841515783 -822364922 -673223370 -55163086 -733652451 -814578763 --245449904 -573487268 -73968921 -872083480 -878732979 --441837373 -806860615 -333888130 -379867074 --991110608 -926594555 --690636654 -855730834 -971505303 -194543998 --789049277 -577926072 --972492403 -442636747 -593256454 --678493978 -942664819 -954620052 --344000773 -524229826 -117604114 --262084015 -612574765 --408025955 -895172430 -972125275 -245152968 -360568547 -743867315 -355503885 -104769607 -199101771 -888980689 -450366143 --736651597 -648140963 --615431324 -474156001 --836513180 -37885739 -748182298 -564951692 -586393468 --819992577 -992955344 -541104544 --789949929 -716915812 --166134325 -352246201 --464611009 -858882420 -824722394 -553163091 --948383616 -129485015 -6485579 --335836857 -990052518 --700329729 -913585621 --832418697 -74316762 -822645159 --982658413 -753578738 --247370588 -32081841 -325917722 --645093496 -438693921 -443835681 --952388124 -355761860 --574958636 -679038852 -834827949 -937375208 -533463703 --650678694 -923636369 --869355010 -799781943 --521065364 -977586904 -668655927 -280689267 --142029699 -958056739 -908874464 -26170293 -963868653 -498561658 -964841695 -468965366 -914700648 -862948350 -191960211 -500934195 --629749054 -258716532 -745718589 -200640858 -787366702 --472550624 -143735784 -8835704 --18129808 -419591333 -266004234 -203582610 --892783365 -195821899 -608532994 -247907554 -93439893 -759002857 -842852199 -788844078 -603215512 -18361212 -242970285 -913420326 --194884664 -647939260 -243101756 --845434211 -381326968 --706919513 -932274967 --152285648 -764268456 --465918294 -212679164 -235177484 --672828447 -630036953 --936138114 -505613494 -910966666 -595938366 -221784080 -357883097 -766706426 -985684366 -952218846 -754028821 -964365314 -10429021 -961315037 -392195736 --594330072 -519923733 -961567103 -194868036 -445874032 -57359118 -217415296 -897786831 -672765222 -160159697 --885410178 -591345863 -444987893 -617241159 -760966607 --290183459 -578664812 -535934414 -998106028 -230344068 -522955732 --76197435 -759111351 -480989974 --891645588 -519880276 --817488514 -450466567 --444686881 -819596423 -265933644 -777071846 -572329346 -97694561 -572466074 -659202997 --213776791 -920973254 --694160884 -503748657 --841056158 -55518217 -430395872 -106595624 -664504245 -816788346 --556705426 -848760141 -583427107 -894109897 -589616822 -79963402 -394434520 -179171445 --207426236 -541018321 --482000804 -324859571 -122475879 -948759800 -58995287 --156882 -198053655 -375790542 -18652373 -122381538 -698292840 --565281784 -316681183 -417942033 --900665957 -569137473 -671884701 -488586856 -507371745 -93818661 -581536626 -489200651 -185743481 -193380668 --108159954 -199288773 --658636461 -113253507 -607161653 --17317705 -947741049 -779604122 -456206479 --899868143 -201963668 -541513860 --564345977 -756195757 --286170095 -101722618 -893629043 --325300683 -435284133 -145481705 -834405399 --537211269 -645222593 -353821075 -388707371 --413552437 -173176864 -370489125 -603759071 --669294939 -207833003 -977512336 -942003277 --513323826 -564744286 --697029422 -145141675 --935565249 -944202928 -570393195 --501347603 -418175960 -553363611 -427174111 -181224691 -423662453 -250306033 -145120587 --377160467 -241743516 -756567262 -663392793 -980860090 --896138055 -682029613 --500934195 -833361661 --199702569 -33516442 --599028899 -743413609 --350012305 -86733030 -923800049 -434711140 -375581488 -331695032 --101418525 -8485771 -522645577 --560225575 -924911652 -997394061 -747446781 -333746685 --346080968 -908364486 -320981941 --866415437 -620383562 -663096864 --461733024 -48686525 -83204126 -971258466 -374355302 -966262480 -608732889 --429453420 -590143032 -233189384 --277379657 -38659896 -473309955 -73608166 -708937722 -457997692 -567560691 -491678266 -542073000 --307675987 -265827049 --108461427 -623599759 --78995646 -302834609 -826891899 -402499043 --4062895 -150939071 -932211439 --603625692 -334522759 -421590353 --429026818 -127172394 -781565591 -479545884 -570089021 -742104391 -242115505 --962157732 -717981140 -638203929 --738346304 -695013930 --602336260 -752738092 --744131129 -557539763 -22150265 -608925200 -177395043 -75501145 -24187762 -539114778 -802064636 -534659834 --580793192 -26705375 -311232837 -876036266 --115212650 -815551626 -798789150 -254969073 -427450796 -273854716 -325008323 --598827520 -667357902 --154450774 -510428485 --684923070 -547873594 -501851912 --495869343 -12341925 -548824143 -577488417 -343153727 -329166968 --887197126 -182149371 --278706864 -879553441 --362034306 -767700018 -617444726 --253629141 -355442621 -676253975 --838758884 -240193281 -909016697 -981291830 --839780642 -425096991 -153376402 --764729010 -459329971 -11602539 --432454219 -524221263 -911641075 -697940167 -432043679 --219617585 -853214090 -769507675 --65721128 -911263747 -217388069 -263112926 --652659416 -807152872 -639568385 --206534055 -433409954 -542441064 -883367399 --388345920 -477207420 -808175761 -259487777 -148171998 -212891521 -148474072 --968935813 -950664483 --335966228 -875985873 -622606248 -412266870 --81129775 -784850714 -15058117 -865210076 --433591184 -663073628 --215369002 -667172252 -240395658 --279894229 -853890142 -829480868 -677138149 --964365314 -194520032 -834446175 -729507905 -368648536 -809909179 -182246611 -834272962 -881137694 --671132419 -203235535 -23145616 -923311011 --284049130 -802987524 -943595282 --919324817 -764850339 -540475508 -691520072 --153547908 -175138013 -776998186 -541970217 -425715813 --706047444 -532930249 --851180659 -582225479 --830719760 -506322335 --826891899 -587307921 --245888883 -21959349 --304187324 -883963177 -564582372 --478725541 -13561485 -380374782 --191110641 -828988978 -401246901 -945244701 -226025550 --666504685 -473115004 -479072335 -194333124 -766469188 -262306045 --688129248 -277299039 -65734604 -603964762 --817399580 -186031451 -222038890 -112560032 --496768719 -869023596 -288087642 -399769684 -498997333 -782571713 -677280992 -748942679 -46762851 -903871289 -904885127 -132935621 -104076879 -528838723 -542816361 -725875982 --655575861 -68042171 -361832030 -902256435 -821859389 -295495055 --549982573 -499404965 -948459510 --508598446 -226009346 -118925147 --569822530 -293794423 -661934248 --954433954 -691465085 -835094417 -251931632 -971973118 --726073082 -780285964 -917204134 -162504466 -409664086 -774965230 --753896621 -896526967 -286911331 --843114059 -722402809 -625973986 -572740352 -173845752 --907737439 -987851308 -50800881 -738410130 --212925984 -754466820 -845776721 -518104468 -811452316 -103558140 -764665967 --511283710 -578053611 -701206843 -268365953 -397372558 -799079174 --822439565 -881572073 -835605423 -322196647 -810503433 -516566766 -959657412 --611581294 -640681244 -117973177 -467763448 -808708529 --713678772 -103995031 -342938029 --4435060 -113841353 -355076219 --316681183 -246595657 -358287551 -38669010 -466782671 -37307865 -798251440 -505937621 -557111227 -427134639 -146447018 --740558690 -119896179 -895770405 --456401269 -450107008 -117618280 --390411136 -640209618 -167616494 -32831090 -618175230 --600508461 -570660994 -155962155 -858379502 -829289275 --688394283 -351059294 -239016919 -921424026 --74737019 -462092213 -752323988 -604924719 -371816312 -749909755 -682209198 -78505203 --600873419 -865370739 -576805920 -275822941 --991499496 -304617071 -60115213 --211345690 -889200019 -350398881 -274984277 --675705599 -21328857 -824641810 -30619208 --309867602 -608441376 -944059485 -384903134 -578545138 -340615845 --569729029 -546439348 -244471057 -195439282 -611605568 -868202013 -166123692 -895486903 -804824946 -24636968 -555389833 -808482908 -359206738 -166641071 --624007880 -494639572 --769222766 -926275254 -461044819 -40312809 --537689377 -991289578 -369437184 -344196249 -95456211 -209260103 -717373177 -674187270 --755209622 -562763493 -555717225 -302304986 -25034929 -154940403 --341021939 -611570134 -557487502 -522818170 -286568848 --493237954 -607653027 -325005136 --522706564 -894448840 -738581200 -500484377 -733628662 -908882448 -549297043 -748999797 --896325270 -540896470 -38772945 -57716105 -935789084 --479563934 -928077254 --38551422 -274624428 -472903741 -241323367 -422400832 -239616194 -888224676 -558902093 -895964924 -746765316 -639428817 -2259792 --652137583 -296294281 -81354029 -778612705 -396127045 -672784752 --200759839 -598301326 -211740858 -42721772 -909183638 -58110683 -275969911 --296294281 -711154322 --504067720 -821653351 -119387446 -970612209 -907149840 -603410763 -41425112 -604248072 -196221218 --335736862 -905795659 --861403748 -514434786 -453146355 -858039702 -743532446 --634712484 -740715920 -70802847 -72358850 -338587139 --457232551 -390318846 -797274980 -382654200 -771287599 -259098535 -788679222 -144484965 -98853540 -429199004 -274210640 -889611281 -324604771 -884153737 --129862609 -383644390 -299047138 -124775896 --545494550 -775487369 -978166594 --761694596 -251489924 --869114837 -683137760 -156342256 -157027550 -68326396 -219800685 -794424137 -234484869 -113156404 --172993647 -944880357 --921310453 -817093935 -216414261 -265676743 -462470417 --831375862 -59932705 -72201761 --758266869 -292694433 --217917160 -910504399 -43617240 -245369095 -420887257 --630988888 -233697664 -727706336 -911475102 -813146549 --500239638 -605430552 --453865412 -840439907 -873335558 --95220820 -9714226 -215357103 -130884825 -672250338 -777716313 -351069472 -81769556 -77894375 -130950648 -204552909 --945364666 -301355053 -787441919 --282560487 -746519683 -276293689 -423466846 --541762031 -666192140 --980755342 -280516963 --43635357 -640212171 -87115815 -386401244 --684074658 -286680828 -833348371 -871881752 -711814061 --712405372 -245414342 -712192662 --960399802 -89820457 -835704402 -651817796 --169717171 -880547961 -759629918 --761010989 -619826254 --822048583 -887666809 --336020378 -877515242 -92174151 -293584131 -354029249 --623599759 -775793519 -933981208 -642443130 -986215707 -58113291 -75253144 -817265103 -877606242 --956027676 -161890222 -384235881 -986440186 --75988842 -400926639 --889816148 -778183032 -905285323 -548806928 -930395341 --432362011 -139043838 -500130574 -504554815 -623440280 -326906556 -136469405 --291192537 -859458976 --265449098 -969883311 -291583198 -831837211 -121076939 -762828914 --697955881 -76603640 --675707018 -737008684 -151185420 -333918170 -254542296 --407961963 -831471716 -711144007 --408251798 -197175162 -834403332 --238820766 -235300864 -706667597 --906465201 -255889855 -645224022 -586460247 -77350456 -404313265 -855213828 -186531570 -826001100 -120293267 --977520102 -508511476 -36310664 -829878392 -173111546 --456236283 -673294142 --539184516 -520306774 -807884140 -714218005 -867380310 -968189997 --269949663 -577771378 --586376846 -291789969 --135879725 -114860874 -156565896 -551744592 -672968117 --906178449 -14183964 -535261603 -614180263 -690656888 -627598081 -714869464 --873212314 -89727115 -683442984 -197932981 --108093050 -172724030 -959874977 -705128443 --154271398 -3085999 --571831226 -746436648 --302539616 -302172691 --245045068 -338964370 --607161679 -122309453 -214473091 -899431910 -318564567 -257486601 --366640854 -377066134 -264402294 -873417862 -553385955 --308317154 -693793402 --42710711 -494528709 --41841850 -672538361 -405355409 -768893925 -827756127 --857336463 -27880833 -915999380 -938375226 -377941658 --681434104 -854928135 --698205308 -537991478 -794108004 -384027349 --754634374 -733053986 --35382997 -141826483 -160339623 --112731447 -474221069 --356969876 -650275757 -397326460 --242046845 -379736631 -992887718 -356980540 -619587786 -791613030 -587990659 -757686798 -357889786 -77430326 -691474342 --864470993 -426719843 --128878704 -981134539 -767413421 -900585757 -309571415 -407402386 -730234993 -926114955 -45830551 -991748215 --981380696 -491840305 --882760775 -566649056 --508404482 -353902617 -830050163 --225267595 -598949239 -943389931 -419411320 --30900592 -219056939 -930952336 --402932267 -457746331 -710864355 --813708871 -723534476 --717821672 -134468066 -640836354 --307774440 -502470648 -523489250 --848760141 -546192547 -10827037 --78366881 -325700250 --684746453 -602746095 --13216402 -380801464 --947276625 -910180424 --314502113 -588633281 --976497644 -891649328 -133537602 -929473671 -459088626 -543971058 --584242880 -317901569 --926275254 -999891255 --544092734 -507014006 -194173941 -429330627 -347910267 --600548194 -330042032 -280107794 -634590059 --223489141 -232942302 -699925572 -91408478 -40234999 --317949067 -490102395 -101054979 -263177251 -825090870 --909639536 -585521630 -54045273 -545288610 --293676373 -952393096 -164993596 -69247790 -105235228 --493559557 -591571472 -877469343 --148357554 -659093848 --652588617 -676566984 -127648621 --791222649 -556270944 -454869562 --787441919 -914566475 --594142904 -925671780 -756705099 -917318888 -783561330 -914792484 -290236917 -864275746 -136422771 -936841678 -839258144 -199587014 -911569275 -951713539 --612129310 -796871061 --545005152 -898479359 -21019529 -978455725 -688905844 -428206373 --779329879 -98038707 -68716656 -130534742 -289849026 -459890141 -728028167 -363209659 -902208286 --64520565 -913020160 --975974391 -940938194 -460628808 -670923297 -825803149 -133563724 --865208003 -627227542 -953688985 -262921199 -663929571 --202332541 -698898233 --178052729 -142779198 -242097253 -843259593 --963347394 -729015149 -440618493 -953790878 -727406446 -649787093 --819154821 -976686198 --740619775 -951486030 -963318893 --277317773 -357930397 -65518261 -604358591 -497694959 --686475623 -827219996 -202032576 -629520939 --13640520 -404753716 --662593992 -733031251 --101830382 -481159542 --262695621 -947550370 -876771261 -220787934 -396941228 --554379948 -887049556 -591756327 -623739672 --606941880 -596320926 --463658219 -897991804 -713024282 -943218292 -252069925 -92883743 --786843078 -448218952 --222346087 -103013864 -609098619 -944736546 --388133238 -564255359 -280385415 -397975753 -385674510 --64718895 -402839897 -294162797 -551022647 -340385807 -168806978 -771917865 --605890581 -991355840 -676126664 -878418117 -916517247 -220568833 -395882899 --27224034 -203755567 -555350504 -647551965 -894837876 -84181797 -282983938 -243351418 -683024033 -391817853 -440624874 --502464279 -986141411 -418288878 -20973353 --648552096 -843764970 -529813254 -588625477 --919856037 -655954268 --393739154 -896278425 -179177819 --86677634 -448808421 -988431345 --903601916 -947443268 --911084536 -913423716 -238669841 -145765511 -220079618 -524228418 -553284194 -597155493 -500028160 -348138703 --854716532 -726995427 -628546938 -540004066 -959874112 -703965834 --679866266 -400258306 --747435202 -703447479 --598467364 -875499119 --907762463 -739274065 --511522261 -227463399 -677966167 -307018724 --748068256 -684068183 -530176680 -967263518 -33647957 -60246554 --236509768 -116242764 -196849283 -151689773 -752911457 -617572541 --867338253 -961641902 --554371758 -766593805 --895720414 -274741839 --507763849 -682554690 --248481800 -880128348 -988031474 -515095791 -476143805 -71819074 --411229771 -551777587 -445447777 -207600576 --649421682 -508358998 --464727394 -231267382 -983050480 -741592747 -717647828 -726011738 -417626486 --622260784 -643843586 -312258242 -500695982 --990398037 -730475716 -339529300 -132434635 --479870567 -231244085 -218229499 -596161090 -418795649 -139072009 -138129492 -779662973 --952436896 -748775451 --819376164 -351933985 -22584647 -388213676 -77329126 -105104274 -395824802 -651384017 --61302345 -686827276 -596797703 --116977670 -337172776 -122662773 -207375127 -642803213 -910139997 -928719288 -422164038 -930527169 --203506313 -555259702 -990269325 -290966278 -662908779 --578314094 -295888920 -204333470 --392195736 -34632871 -519489147 --710244247 -353155777 -538360677 --640103357 -549957272 --734695007 -618043109 -632861594 -827419533 -804971460 --308141160 -494622910 -383729554 -253439688 -925325051 -917903937 -649028137 --717763328 -786431159 -502984727 -978950972 --821301807 -934896884 --924911652 -472309987 --744662032 -928712274 -992243492 --136226152 -758044147 -57243984 --224281846 -733010057 -598746914 --614042812 -294530591 -505211354 --845244855 -70913255 -19127249 --287656800 -346119527 -172339842 -597886530 -709517189 -326001656 -979179337 -563762099 -763345111 --223218460 -288318545 --146291668 -341129237 -978412129 -859840990 -902560053 --167921828 -762075409 --730128714 -363946676 -951403858 -515072546 -527862667 -580579811 -58097996 -755257157 --876441563 -977215458 -586087333 -921321192 -456449870 --288995732 -570429151 --132407093 -80342310 -878345488 -605681318 -103116923 -575865209 --984151229 -16872015 -964748537 -703682160 -459100977 -554698909 -658919409 -875669315 -177902779 --743773202 -495780056 -364540712 -800751468 -31207269 -586463340 --823630063 -872117472 -400328293 -134934648 -648879161 --865986580 -751750173 --743856952 -963121601 -884693296 -794794927 -329027806 --757784488 -350222738 -899560261 -536500621 -268775807 --386343407 -527192823 --547568250 -997316677 --717593557 -576475054 -826601549 -933109261 -464228624 -494693387 -696718960 -872358293 -802502289 -48441161 -30084789 -8035303 -647741771 -938390038 -592835757 -673062670 -855820262 --789761327 -367893556 -776278622 -294429804 -97180891 -424298785 -399398362 --18204436 -822875161 -991914151 --711917491 -930304146 -308130704 --928096512 -939052210 -876795483 --453232234 -915954181 -246882292 -346856193 --122196863 -532719046 -137017626 --986627054 -622263530 --31177665 -351589208 -667088309 -73123366 -178625251 -927882726 -218080253 -772764761 --26915898 -439068299 -667732631 -313606394 -569549305 -257154121 -310891562 -885165488 -377617285 --421082382 -409551302 -618362842 -970755863 --316137246 -469906139 -424266839 -92063244 -932755526 -568043447 --640844356 -914350432 --701894902 -673604824 -461049667 -674953767 -498846720 -644208221 -805827586 -976206401 -541168432 -519203339 -638752263 --173557492 -757017328 -740176887 -624913160 -179316034 --383447245 -907740937 -67980621 --718816976 -507337547 -62195827 -914695203 -195556510 --856655114 -127665138 -672820487 --202269821 -807349146 --344813611 -659979220 -918374359 -250115678 -462827211 --638957494 -639486813 -194933851 -92823713 -467480737 --788427930 -169624912 --129734701 -20502884 -990982323 --678630839 -456091029 -528700161 --501899120 -338528939 -941513490 --719308521 -47410884 --492852477 -510409690 -531718038 -531159482 -608589453 --785007126 -629505305 -12643757 --363020841 -705551893 -529968477 -225170118 -373507930 -638622512 -540242966 -699889316 --538967517 -280621303 -928541148 --284976874 -771347515 --974371575 -937254409 --747511595 -203571729 -832893098 -687409020 --112753533 -738922604 -433693304 --529449031 -358160652 -258434426 --197767533 -821281813 --62642426 -781708600 -94745333 -417700937 --335531359 -255151194 -493497311 -308229344 -114001964 -997732286 --843505380 -503640342 --430255381 -902738646 --105803250 -362519505 -513424432 -472120302 -527366323 -261665493 -392524055 --862933749 -859212258 --168272967 -989264070 --507234837 -966655460 -315304815 -60174742 -300925471 -41778567 --659567054 -705203407 -536956831 --715886174 -575065027 -722135985 -601952356 -352428032 -50470203 -286698146 -817125916 -781880429 -814593158 -976484142 -355265539 -231669787 -909161371 -700130930 --54516991 -2208355 -827648736 -227492319 -312288651 -371550068 -554748896 -805186583 -787641374 -665137958 -723097396 -768967848 -960786822 -964816339 -968165093 -469664822 --485531414 -797496566 --231855415 -255292322 -406421016 --185957467 -59155502 -788710933 -531613583 --467101596 -437987772 -258628164 --707002398 -838652295 -554036709 -531483842 -722816165 -720469767 --955663487 -179054859 -708291336 -48954018 --607701375 -555905590 --484853416 -549888357 -83163471 -461308210 -608697462 -783587020 -805938611 -284366665 -545821621 -731451337 --225234341 -889469807 --309540429 -915195967 --724932226 -5107517 -501890860 --382610722 -532434682 -904658148 --75075914 -949003688 -391554984 --897155083 -44733614 -517309920 -95705512 -633108745 -295670504 -940334774 --114195106 -962838448 --450761347 -565683850 -280275725 -549932709 -191042671 -186618953 -297814355 -940838275 -841079426 -991954449 -338662846 --247304751 -378608106 --661780689 -200484474 -895951847 -898956560 -330613206 -727529211 -530027817 --696970573 -205215973 -21571391 -923552497 -430165018 -142399658 -933797160 -789220934 -344598899 -49766618 -107596045 -573742590 -97988180 -682154708 -269448793 --544082826 -437748653 --775976734 -916506478 -242195187 -884447845 -434187277 --83888293 -842370145 -71546713 -580623867 --345919581 -285028404 --484490692 -759412064 -871983500 -861703692 -298817540 -374099230 --394885236 -801401581 -196143260 -302372938 -361757158 --814593158 -176967903 -959933687 -645988323 -267297041 -565598150 --654166308 -370748520 --917689165 -741006877 -844227728 --271498300 -436400858 --501449363 -729944759 -659079877 -411135588 -528554897 --874453904 -133274687 --732316630 -879999278 -783365699 -587197569 -716660207 -282919107 -430583292 --795905345 -13884178 -344330233 --793955558 -124101061 --593000919 -877237393 -631392261 -412555083 --297703536 -127138777 -108219373 -908792720 -17108326 -354712386 -343037742 -813484987 -590219368 -154284528 --493450898 -735441455 --618070929 -141893387 -85102352 -472356707 -430531020 -333078241 -559834297 -761354685 -383485454 -819832302 -351117137 --19331128 -278608466 -554934309 -376054566 -376132847 -995280948 -423295178 -188085932 -986250604 -824024437 -912888970 -237079870 -109941579 -347159371 -647513744 -34669763 --605433670 -882764135 -296602689 -513501426 -816636274 -577679616 --849807774 -731787022 --367408125 -306976794 -359423197 -642713201 -735426667 -421851243 -812877714 --292847552 -711711393 -813358293 -447786648 -935039301 --354899886 -76585164 -279919140 -893193110 -389298203 --171913086 -757579503 --680908124 -920833717 --38349573 -450382833 -781785795 --30401597 -397941444 -131450717 -342593994 -487583833 -336211660 --272372356 -336639076 -422306899 -658240030 -151081074 -97850779 -252384952 -849432628 -51485414 -114585314 --186451384 -732094475 -166087456 --717026666 -184072874 --972704277 -54960191 -303113502 -131389649 --331237107 -49228094 -339762184 -684781271 -472263785 -104176044 -922607652 --947866014 -235692312 -911989930 -62998531 -498187315 -334588825 -712274115 --521815815 -477696545 --254213061 -14690235 -34902785 -336511389 -587041802 -525369301 --784024761 -6694731 -168954321 --209912523 -906473024 -190169296 --816555568 -844464589 -76326824 -428228756 -202719394 -847998628 -128791821 -473189799 --117978818 -310880317 -337888363 --829844089 -299579415 -56646089 --697940167 -374355454 -65810576 -401570950 -741387062 -70744190 -796609697 -916189161 -264657077 --695747657 -350781239 -157132342 -527283214 -563651284 -914914536 -505651907 -299397157 -181678446 -782400567 -400027211 -152644778 --301854675 -372567933 -863710354 -673681075 -520495861 -617113753 --476360273 -971487419 -573969528 --957828133 -355730736 -216146240 -617998 -26596008 --221784945 -820269689 -773483730 -759425047 --905525867 -468095507 --22909542 -78845478 -229324801 -248929630 -745833597 -871863483 -853385122 --684431088 -668297406 -428431122 -732527341 -136994715 -53050164 -764491990 --804336330 -219672352 --32802735 -919132756 -114387954 -296864289 --753640028 -513031647 --275280329 -919501792 --506075145 -529921223 -903264442 -206056387 --13619605 -453837632 -438197316 -867014983 -367241104 -984818928 --552451585 -885318094 -203285014 --719236359 -543078661 -575630477 -645956812 -456605566 -451910139 -929597180 -970029319 -344905747 -632946745 -319419387 -702896051 --277706548 -997799298 -783056174 -676910147 -58676505 -614807224 -962665665 --572376191 -127470269 --730566004 -592798291 --495868084 -152018130 --223934622 -369877353 -55916388 -123596399 -365659624 -5263912 -15163529 -689346074 --58454457 -829905455 -270511516 -978176499 --260033290 -454706295 -287981303 -92301728 -111835721 -71228863 -50084041 -445442135 -567117395 -530011430 -222575096 -675639238 -954862668 --644989044 -705735451 -463214493 -140547887 -238733818 -652116735 -893598259 --375688515 -156030921 -807219222 --538412916 -203047328 --650390785 -635425167 -526502602 --373752277 -715209986 --666845924 -156181344 -759575052 -584870653 -777525089 --150275098 -630049298 -714863884 --825739026 -698508872 --149128119 -549789085 -188032304 --719088792 -529121534 -752046865 -128968624 --981890546 -546152752 -907289097 -463823328 -43574889 -106708174 --968417302 -803476587 -360995224 -463470781 -888944092 --467009772 -475763577 -765941302 --542735059 -983813706 -735792874 -785782274 -831070457 -973479286 --37390909 -311990991 -975005079 -116424331 --303431987 -268341875 -570839830 -259860798 -174818985 -948311166 -988592151 --382840092 -3128046 -90299592 --56646089 -185401847 -632695655 --231029059 -801965336 -589332782 --441164191 -297290565 -206118114 --676764273 -57105912 --68042171 -23678402 -385860843 -506936654 --100819094 -697771405 -461167567 --604330245 -852536361 --43354133 -569253241 -819079545 -83393291 --809891763 -97250686 -146229062 --691265512 -259635366 -951799701 -143716926 -980973192 --18567801 -393875028 -484810055 --864929511 -821340904 -172153944 -420165521 -729833747 -195124995 -329905082 --422400832 -663392492 -541977153 -264629083 --397289248 -250700330 -609039989 --116620153 -618733285 -186984322 -395508142 -225238906 --200329364 -454306277 --650751408 -309111155 --485490360 -416819893 -683445142 -861762121 -576496075 -53085983 -187459000 -478095551 -225616280 -418135495 -648733791 -460569349 -401573099 -258769418 -441782535 --408386617 -102607355 --231355067 -377666103 -854240152 -464129414 -500637334 --88358760 -933007742 -588806538 -924662715 -266047887 -774005539 -732548681 -883073846 -711832271 -23540005 --121483230 -43052141 -449713215 -139595220 -779757811 --847766779 -643235669 --61701822 -48393419 --427787053 -242586147 -839703291 -194827575 -982985731 -16086879 --747928752 -332916914 --397031882 -894752805 --844772532 -614503255 -378446348 -194841763 -252720525 -837348638 --363808958 -59441595 -429858029 -687901662 --757310020 -747672166 -199018025 -845384083 --447771370 -207446457 -796617309 -311904845 -625878854 --17108326 -993753175 --322800433 -503791133 -728648975 -221729984 --797002737 -937319161 -42757839 --894842329 -897160168 --289691888 -342402242 -335912084 -794899078 -921279303 -454368418 -395296216 -403551942 -705852883 -361353985 -774364841 -757855288 -505208263 -556650598 -860767087 -820194814 --950541491 -856282870 -541122420 -828180783 -980323813 -812870855 -603705060 -691079199 -585392019 -344928049 -431240995 -152855903 -191141665 -685880992 --40095698 -124709439 -791940790 -462471914 --454773488 -739465862 -125412195 -4887343 -878823926 -973423671 -509543343 -534352951 -160331721 -133896723 --737897486 -624578102 --513080557 -186414303 --918062781 -838034196 -693624308 -555127639 -764916142 --264544556 -853961190 -10092199 --852905825 -4077687 --901779507 -291841073 --835927696 -223054962 -522973889 -275463003 -37378409 -820418813 -719632025 --427723203 -785335566 -884015654 --202420392 -706614514 -839009177 -918859359 -763051366 -268527730 --137956752 -555999394 -400312818 --306870729 -856287881 --309045573 -63700139 -551918590 --209452256 -844801284 --75190247 -528893061 -382300372 -743218577 -932974133 -309808343 --853660115 -639107284 -249573655 -919256008 --988990860 -412374990 -711457626 --374727197 -236161167 -604163992 -99313014 -737742152 -686801538 -246670197 -242005923 --2989623 -217423541 --659202997 -269380417 --958454029 -100862317 --185748526 -231797490 -187189104 --574916547 -243877589 -419635463 -981906233 -310218023 -521621849 --176459712 -833067832 -967068570 -457106379 -706624930 --242097253 -163105346 --719518266 -301014560 -57832532 --577591703 -328164137 -84711480 -308096073 --388163907 -992122656 -394561100 --83415730 -637953969 --317233232 -858610947 -363587153 -363389059 -575264514 -350970448 -545172104 -499797875 -900243286 -651437521 -780917342 --954071483 -649859200 -452491325 --468128204 -677702780 -727474205 -541788575 -959347859 -875710772 -279604279 -906131621 --49014325 -710183816 -714844117 -724313230 --36581998 -575209660 -568560422 --897863007 -172084175 -593010117 --306476453 -476408186 -451740611 -107876253 --308648702 -117866025 -824980001 -44329106 -128744599 -229856023 -884520221 -893128918 -494032679 -212341051 -560465432 -497390790 -60994187 --150095104 -645175730 -345856249 -647984850 -715447532 --272665337 -932803160 -273363074 -93297253 --350398881 -229330618 -707838729 -916730398 -322440055 -685040330 --891717746 -267285615 -655013792 -706954156 -723747485 --599241209 -739311705 -14432554 -508842017 -559306026 -474045278 -154009517 -427352117 -634592865 --668368546 -152640297 --514128371 -795755333 --753176148 -317852833 -809353067 -359508646 -954335037 --60368199 -690306189 -931662660 -221270774 -752150577 --486234678 -874859328 -45111179 -364909905 -786139929 -578022372 --232466015 -462627024 -493035841 --851030022 -873094539 -864284633 -344111405 -645314178 -526264725 -330221468 --463935693 -259688747 --222898013 -16459918 -583268249 --290709558 -305627136 -258461726 --426524591 -680674748 -830276621 -421537282 -422694897 -914357414 --885261217 -343970097 -3250256 -735114732 -609222384 --347425351 -351205845 -641715432 -625804813 -677138186 -412709442 -111703741 -456962134 -475042082 -167311071 -572886536 -891286385 --980520779 -466798073 --347910267 -341074029 -260022183 -826009894 -60101213 -138983239 -889918525 --245239705 -445771298 -771952204 -42532571 -143593390 -301755701 -340972557 --461409681 -370841831 -752760689 -149242252 -75558639 --877326865 -905171759 --190990606 -458088257 --565107312 -481194616 --313729452 -204060987 -577960016 --630827937 -735485690 -190544293 -764759637 -932850174 -920154682 -380282553 -784080872 -395276761 -95452415 --689884764 -838813029 --140384292 -648725107 -530611920 -673300911 --992804380 -426306557 --184825870 -604646160 -71743283 --484856797 -142794112 --471264665 -253397400 -943297435 -668637120 -613732812 --707062122 -283336942 -74545286 -456843407 --394073975 -887158068 -323159733 --253429982 -330794681 -956247428 -751985667 -770774787 -415155990 -81366808 -703998237 --952084695 -657450425 -705000343 --649868691 -760690384 -865689269 -468915589 --699386534 -253982934 -894236288 --645438557 -18124480 -606173222 -112455815 -642805679 -937050548 -814458261 -331297142 -551369021 -626135760 -461682345 -185833863 --578040467 -823887365 --965453167 -627013734 -386416800 -532552735 --591779731 -634312384 -128262424 -77063764 --425213524 -64295030 -144656193 --24539494 -404753076 -886108813 -96351639 --324046173 -993723359 -73883594 -17697634 -770962380 -115817137 -840057256 -551818228 --535503981 -70771225 -556835006 -398958037 -753129315 -588442680 -757959185 -225900609 -859314005 --377000315 -161284102 -873096265 -732442328 -853396075 -364095839 -734457215 --687116718 -384706046 --373264460 -507883963 -651003328 --429267533 -792253228 --829302269 -646831327 -251759955 -107309837 -61395411 -600584333 --96668165 -494917935 --670781646 -984375208 -820077577 -911653725 --302492650 -356158616 --583447108 -972907090 -302340231 -286814921 --216807004 -649607253 --902208286 -996897560 -498919669 -775902550 -580378586 -792216765 -458479709 -506752183 --327368367 -232184014 -860720200 --617169461 -939850759 -415326913 --781115397 -563917777 --387859720 -124984027 --411610006 -605058613 -815006843 --743185600 -653404163 -611353189 --568754526 -173370080 --937551614 -571894999 -414862774 --869730863 -576194255 --368773540 -775389775 --174357772 -586910274 -245503180 --267854660 -640678052 -993734562 -705566278 -559145724 -793284762 -633420329 -27371398 -43002458 --113003726 -126756533 -165341697 --86886304 -38069332 -936591648 -636883245 -79031083 --761809323 -955359721 -334604575 --239639243 -453075706 -499962559 --871553611 -776508648 -700379256 -991934996 -636531577 --297981361 -487834150 -23316028 -976953287 -144064730 --441476326 -271474217 --797500176 -47750065 -113911514 -772836724 -388434398 --20065175 -435952575 -941288957 -586593139 -544099606 --111024330 -272599552 -770242179 --301067376 -909207207 -37401854 -176961223 -37970798 -131181761 -99838595 -274780870 -728781812 -476876628 -946780356 -874311260 -689636849 -944078171 -128338001 -597252893 -444024906 --600007691 -502166949 -723247922 -28773403 -124493934 -983456934 --874441703 -425974189 -791627993 -90118139 -139769836 -4169679 -809683779 --392501028 -968113440 -305928521 -175349712 -211710928 -281152292 -723378699 -307009757 --473552990 -593724063 -88427618 -810962834 -110863951 -331915406 -196741770 -410357841 -472958536 -634087316 -776996415 --850533248 -281341343 -299418614 --512682729 -176706272 -599728965 --205348024 -754715652 -439522129 -231005040 -276083550 -194749983 -163548701 -129235094 -978121485 -667913720 --690382258 -409820222 --735237920 -342725018 -886940918 -255756712 --631962738 -233020069 -366589588 -733493924 -115036072 --129075018 -564576025 --489412403 -943284705 -952741774 -210573250 --338463859 -708459768 -201238009 -195684356 -456665387 -931217235 -770475997 -884406770 -406052823 -391285559 -768123111 -466452717 -72404297 -43096316 -677165060 --742591501 -929061072 --539905131 -611188096 --876321134 -636072148 -546188823 -502280101 -416864073 --733344082 -122486047 -161528127 --880997812 -132526134 -629945147 -570987043 --854707727 -483589921 --155297315 -821220423 -270678267 -1503990 -6294957 -648313440 -353129774 -539467708 -671494128 -665259625 --422718690 -184458129 -542437444 -721959982 -423452856 -633559459 -412134574 -942140501 --461561099 -854828226 --703363676 -211848385 -865571796 -878810182 -193928830 -811726848 -640288247 -161392265 -887056055 --629613749 -194827846 -115131330 -49561933 -962782411 -494473591 --698649874 -889825700 -555735552 --174900502 -768816632 -727652651 -676049530 -717023789 -669246346 -676560334 -306859862 -29216613 --633151740 -291806097 -98815715 -110066403 -103997172 -454494065 --907805661 -941119475 -494547883 -720324377 --995322660 -811442422 --250345991 -732752303 -315457223 --214220102 -519350769 -361851085 --6095858 -735187040 -735777288 -781385650 -237025004 -832859218 --140696503 -131690339 --768055419 -638502507 -263684350 --240819379 -279409685 -653859364 -273792297 --828329743 -403787281 -988580543 -771176419 -934014893 -256053268 -68753269 -274241088 -449443280 -167631293 -21211439 -663574462 --962084958 -473372808 -114150274 --303777746 -419938607 -678465819 --543327344 -928407698 -385177152 --817733546 -359375998 -920732603 --529209159 -719425360 -704918282 --270505227 -499295411 -525230053 --572783020 -659032620 -398956397 -82876805 -791717167 -267749741 -180505259 --535357982 -545780665 -901186109 -524783359 -865129443 -376372143 -705112365 -561823694 --542136839 -759662696 --470121940 -456258958 -984795198 -377413691 --253604894 -31733713 --809312132 -585823573 --278941412 -406912022 -921924927 --721612417 -863106397 --410037448 -465752620 -16720720 --803024943 -95411953 --929473671 -200676786 --954065712 -726342464 -170652182 -800428787 -122107044 -391357798 -571245107 -27884102 -608407448 -128296274 --872393627 -25050037 -430562276 -763426491 -892435450 -76809771 -287274685 --963240646 -373947128 -638496474 -40304697 --196869856 -241393759 --184314423 -476951733 -48327303 -569456295 --693980835 -236527478 -431283875 --691890445 -909781813 -519361120 --247924263 -616895693 -839157942 --410610907 -320726356 --299037849 -803418747 -752245592 -761173590 --389391845 -610470147 -230666797 --928879358 -413819895 -906078636 -772144568 -775964441 -266008187 -755552943 -612431067 --723623733 -108429104 -449343197 --631018997 -318895268 --17584881 -971387682 --568623510 -523704045 -407560618 -615576738 -25443074 -433094790 --232435359 -22338156 -536703234 -982711976 --692782568 -881615923 -123685549 -316677216 --319985261 -287677598 --72170699 -573922969 --936421023 -470622468 --462803449 -725329567 -435778914 -252583885 -501481090 -314142351 -264083324 -387483983 --621918567 -925543055 -460490498 -293019021 -271694100 -888675863 -309246053 -472617562 --131508696 -562179408 -578263460 --517505738 -298655835 -348929820 -789982206 --545484980 -235388296 -687564699 -909679505 -105937802 -534266033 --708798050 -537128802 --585951658 -747092417 --888980689 -415369937 -696790077 -733957450 -447037875 -767480051 --636673864 -534193464 -418469542 --533753553 -817157382 -962592598 --318610727 -178768579 -184229384 -416040474 -293338986 -70544920 --955591464 -830333837 -399302670 -435046987 -204951809 -146824883 --637241852 -701819438 -607823700 -500302211 -879575445 -702869814 -376814234 -408151067 -286268168 --988785376 -122805284 --108877486 -933154941 -16703519 -737037305 -758979493 -997660629 -60903532 -197038591 -556776022 -24071689 -378597149 -947667911 -243865192 --848925230 -459651374 -754165801 --514996361 -632122760 -54202276 --118910269 -441315023 -238021048 --275329384 -981700706 --906352611 -444683586 --354584197 -191320458 -852308103 --346378890 -244271915 -360434155 -258794362 -514082770 -137011371 -240923535 -470314269 --54651215 -161240497 --205109649 -744004654 --411883697 -259827511 -330955049 --314982282 -358459237 -180541773 -835959505 -47308116 --450717140 -658247137 -557680236 --372848538 -282532911 -791048748 -282370784 -237962450 -552225551 --372527069 -672651426 -842912542 --191141665 -332833464 -732557636 -673701995 --364095839 -700135365 -168703613 --128099446 -551155234 -320921518 -232895380 -709781250 --613541742 -115011056 -201026629 -219267290 --780753132 -307101350 -493564348 -515977887 -585187429 -621976987 -922215720 -658400307 --982307013 -113214329 -310496606 -878584495 --905459831 -115434677 -914630038 -738049460 -757739956 --976525543 -572809058 --243922647 -130107485 -926495253 -174769138 -458016845 -395685446 --603825242 -725006114 --948351782 -198824521 -714524766 -82589656 --17855940 -936859037 -382419702 -525428508 -326811178 -214217087 -189112278 --968568960 -484005094 --21191052 -717026935 -296768 --857837658 -293453299 -557591459 -242181429 -769207095 -752468047 -452777939 --429857415 -923479972 --281251269 -100554868 --577437332 -484006733 -43253628 --949975709 -778697430 -968127753 -961466158 -887748251 --698278861 -820981130 -781154902 -686318963 -145518465 -350861825 --109689674 -647779218 -968250776 -305696401 -981756793 -103031035 --221477794 -812914107 -540109421 -216907665 -226172444 -495307938 --111034442 -756883273 -982601910 -668489334 -463666276 --903645762 -471936721 -942501231 --158745801 -380815517 -530696835 --685588819 -582213488 -258076678 --708290844 -809680112 --987621628 -440037599 --937050548 -874800107 -300253309 --649191038 -4064009 -756691047 --186510194 -118280550 -46657560 -900624529 -187250912 -839322170 -46340253 -231635138 -755623064 -895655696 -236101151 -270799775 -807172758 --377941658 -468178805 -460847061 --676867363 -754187230 -121629145 -198438160 --78963195 -483809363 -509467415 -449435990 -216375660 --465300246 -900742364 -355732532 -496948227 -988863098 -854935082 -935788876 -633747819 -758872793 -77085788 -257098127 -915926358 -380168713 --181291331 -697869648 -480344031 -765263779 --3603118 -625925124 -464914764 -97517386 -469031406 -832439013 -610319885 -634452726 --341662097 -483180877 -670512876 --252849416 -698122569 --849948526 -648521270 -792971992 -845922607 -247625530 -68218084 -782555905 -120076988 --214711844 -478667122 -438514172 -724037887 -924342592 --290581388 -662082013 -866499757 -500543050 -447760069 -705824582 --148855030 -917833552 -808142456 -497931580 -845360058 -646609147 -656857072 --375633183 -701974915 --519649443 -27141731 --355412876 -703591815 --796514333 -206838982 -541367992 --386138226 -7640501 --414291270 -852304677 -997038948 -626827338 --429811762 -157124592 -220791259 -445790689 -776831771 -9238860 -13073513 --944182446 -532121854 -788631693 --87227666 -698934771 -396639864 -690834586 -476782027 --699728060 -44414169 -903437546 --532718470 -132160392 --703063438 -406203944 -642582494 -696722700 -817407056 -572823671 -739592377 -983968953 -872132563 --543861031 -74078295 --244056753 -983351090 --832587242 -23134351 -79283923 -769171684 -236884758 -864205944 -6029452 --480511245 -451063965 -461706770 --867648162 -591241592 -343772697 -937602873 -365209756 -707603857 -466920474 -13956955 --575957106 -956425333 -300581650 -19174619 --277037037 -414615988 --984282648 -235615370 -324791136 --223993391 -269562759 -371476874 -124500755 -360270623 -848342564 --733628662 -15675474 -89004532 -180959737 --839475515 -191406702 -529206072 -721237306 -311797932 -670782398 -575178083 -56477483 -108862079 -603281282 -139468197 -812944853 -743803137 -992523506 -227588423 --57292307 -17382297 -123798213 -534618546 -266295683 -884592296 -618649798 -410953784 -905444860 -83341305 -535721852 -286989240 -213984027 -352735748 -165080874 -512627513 -330889481 -808030958 -161898837 -209660804 -67466962 -821417742 --865179956 -121128895 --559637699 -737977732 -452718457 -366299178 -523222107 -785710882 --636741521 -525748697 -461688358 -225677868 --622851263 -557843044 -351272031 -122366296 --695444061 -422115966 -421335487 -943548941 --419011487 -363936583 --390789925 -852110207 -446628138 -9504529 --780974424 -760128778 -278726391 -173355594 -124093554 -920551271 --981176166 -833396120 -446616989 --234798819 -343291170 -298654147 --636550039 -851930232 --272120452 -895484804 --994752136 -491066078 --441715732 -173233184 -722046451 -594942208 -829755331 --822961489 -601752611 -622789420 -675281035 -33540245 --652167217 -438465003 -203361359 --808920768 -365117376 -620288751 -483457736 -890773365 --650117182 -682749181 -654770432 -819062056 --619706181 -415134412 -95086929 --22626830 -564512001 --272809787 -450856735 --805239129 -881176340 -629668607 --627902495 -821505187 --495122413 -244888798 -349275270 -229577202 -274910995 --581484247 -170522880 --633083377 -147233427 -408553263 -937020880 -768651815 -601755063 --132460404 -354167862 -509308373 --350415630 -630403598 -908955716 --886791366 -492652274 -236152537 -276812586 -525314306 --161407398 -908506618 --865277564 -716852689 -701788010 -923745669 -12093927 --982095678 -619572713 -273130035 -348517358 -85612376 -27810680 --273659090 -655189323 -218637667 -611624032 -333560496 -251608667 -250210920 --481247997 -100717861 -739248780 --886135831 -579967320 -79950542 -52978185 -430153247 --679308463 -520621848 -990186381 --528011759 -908243752 -232397976 -469724938 --87908667 -510641650 --851077365 -327145545 --419043463 -447097855 --54569005 -784723466 -481175562 -48890048 -238708272 -553044943 -63143917 -685568547 -953024860 -905679856 --427225390 -402039720 --686433077 -731928835 -598435187 -774661254 -773470365 -491863949 -771312370 -726014696 -939036536 --683599321 -426870246 -472707772 -757418578 -750639138 --191056644 -618179820 -925850191 -375075333 --858379502 -875157648 --218432670 -779238668 --21045470 -735651104 -46640470 --259794035 -303734805 -435840267 -301334788 -58163530 -58509461 -588643863 -881901819 --707685752 -499930156 -109539130 -124991475 -535562338 -62509286 -579953693 --450660467 -969168656 -765986140 -570085022 -96710930 -10612889 -19996900 --8011400 -723826800 --25454816 -426104922 -429186776 -399524008 -344028944 -695147187 --832381142 -169641224 -415381395 --884896345 -106910174 --883816961 -368121675 --988595568 -685743905 --870783910 -111054346 -452499987 -796316818 -620834138 --570055031 -13482359 -21560687 -260027905 --72536100 -57802159 -75309217 --191587892 -663917949 -26888832 --558470036 -683026622 -143788869 -522875152 -127685047 --121788491 -685830049 -917523881 -706404705 -631694388 --141419044 -296023938 -970837150 -14228440 --197207792 -88321690 -318625320 -376939149 --945091019 -719379132 -645014871 -888441273 -665521279 -794670105 --48195764 -560497680 -703882185 -423589051 --500008925 -642020813 -751009773 -463349577 -549033252 -478923879 --933617166 -401821301 -465216182 -320373928 -557486803 -374846050 -300322797 -82328595 -416832136 -391741471 -536415452 -614339574 -44174584 -165365192 -645339522 --218010707 -9487438 -782715482 -478206509 -507706242 -984419969 -300791960 --528137172 -608233630 --622196329 -266691251 --741903983 -165942725 -660379291 -200238170 -201301783 -217436967 -829653092 -657641002 -997127353 -954470251 --303113502 -171432604 --350717422 -373943370 --734271108 -970324002 -908313677 -80828165 -211808183 -642703830 -892844379 -978262560 -925402334 -641314898 -596471053 --733611403 -486255827 -753403783 -765451552 --127416321 -180762091 -263914156 -622385153 -302355023 --830823391 -490173560 --644764934 -892881234 -102053572 --832596289 -499285142 --768967848 -765291497 -469498754 --494935062 -677890107 -284813385 -919085435 -369633702 --840387200 -301863475 --703362372 -380675240 -578586858 --687198643 -954886921 --528120387 -708285272 -533755851 -641451441 --201217012 -174384072 -722077483 -591333782 --355730736 -835509692 -164577436 -134259532 --378409730 -488879129 -524248703 --404909755 -962384899 --357850781 -514641132 -550874785 -857183749 -935022846 -534880866 -330589853 -371960203 -722972463 -81736412 -463130212 -941248394 -943435564 -408489421 -654021933 --309016893 -427277214 -843299683 -579307125 -617041525 -693009960 --243877589 -616396992 --694882472 -750729900 -234088715 --515981192 -74809887 -926707577 -283338862 -379321050 --746599792 -641241997 --44366640 -425239889 -760006893 -284095094 -344468752 --310233281 -646671310 -318946609 -325880562 --752385084 -614629927 --586746800 -55909015 -893890661 -210876639 --658493297 -368468191 -444065999 -662150020 --690515051 -204951841 -564931323 --884939968 -392313719 --504103659 -354533884 -83840441 -676111019 --59576636 -705995540 -964772892 -544251321 -641379352 -965701241 --481759760 -469112614 --549297043 -657557805 -437808360 -312593855 -652093009 --209965924 -706192251 -687186292 -265678278 --173886269 -403363860 -900628904 -779197056 --478031385 -931381376 -977264177 --963318893 -231983461 -885078216 -973298104 --161662968 -851756900 -395772214 --793044536 -801922890 -891450397 -54911151 -135963563 -290519853 -771214194 --753063723 -372208171 --505134205 -533933158 --411135588 -396421131 -419625684 --560256477 -423317876 -271340468 --220332256 -928980981 -278093043 --878823926 -234208770 -261492481 -466554695 -947744860 --625760547 -191163404 --349061072 -133259735 -362820426 --340455508 -972774866 --384362970 -991224666 -903468542 --52414007 -162548633 -274163072 -777172550 --44488115 -259382072 -686337046 --160154603 -956985776 --756485451 -499579179 --916216117 -439205464 -872062347 -815751675 -263366242 --520630605 -783418207 -562423216 -269881712 --415643903 -62870814 -714901135 --73812544 -679613031 -442687473 -338037201 -732504922 --230348006 -126561108 --112242203 -415536641 -471420412 -692524033 -237264707 -883109825 -66044866 -244554438 -717917660 -541941504 --297290565 -860523721 --894031290 -104892024 --39756165 -20988660 -426788545 -127981066 -345287080 -381918460 -79324691 -599170053 -624838421 -22248180 -193153473 -443700793 -827322625 -817075638 --645222593 -378418316 --205394905 -770806149 --635087921 -409346853 -565878945 --885455780 -590630704 --362751611 -303952379 -55453336 --943308418 -979206940 --864482298 -723411265 -182076039 -735370071 -595328444 -746392321 -123219247 -877929365 -831527480 -297713823 --753377685 -257354848 -674474997 -133137494 --95160473 -458179694 -524848918 --659743600 -30100167 -53549594 -190249103 -39289260 -499909393 -735269356 --378558378 -472631794 -216940023 -10357949 -680981489 --910227103 -799608598 --86069760 -323905754 -422376857 -373724022 -534039075 -643021023 --24695769 -187671770 --439748777 -817294095 -410709733 -464583408 --563135263 -578976956 -817743223 --630638204 -10748412 -429145091 --890906662 -435336479 -531350443 -77991587 -108316645 --470191449 -460541427 -316793707 -82204711 --565328244 -930376176 --173597870 -644307290 -250822701 -208953314 -465071924 -596570353 -421570303 -996784966 --999575302 -965145497 -917344421 -452963725 -674386782 -164161629 -737309887 -33870986 --175195371 -977870098 -277325694 -967054019 -551740716 --962867643 -394112638 --193234926 -540340209 -827761849 -242435064 -575686235 -326179778 -958861206 --379592500 -134575427 -362634013 -323818672 --224392363 -155061625 -408120999 -774942045 -336639492 -401679095 -974197335 --619475892 -338846993 -511230053 -354886221 -827012253 --774273069 -369254269 -618936408 -665346564 -542309133 -345243427 --242511301 -789376713 -506353806 -836525358 -100087415 --827410388 -120220700 --728689163 -861865313 -782701639 -752630310 --156772996 -665095987 --533665483 -20604575 -527907475 --142114600 -216060812 --785259504 -749502817 -207365728 -737194493 -842477281 -54387814 -448801650 -54091546 -681553528 -293917519 --327730121 -587926299 -246013321 -404222651 -279408237 -623348662 -2656445 -578479723 -942777913 -952507166 --637670494 -181822600 -734006152 --896375401 -814518011 -952092389 --565931857 -661008471 -429243839 -174271864 -842527796 -848310662 -274650264 -236692017 --881396427 -306771468 -71244665 -5839428 -601272528 --436948256 -212627744 -235250053 --822293845 -819925037 -577980339 -342907657 -585801957 -821735612 --845223844 -402607533 --984478136 -856936285 -394969250 -56795749 -753677621 --534485097 -818002187 -373261547 -689667095 -915515395 -290030166 -462120707 --360214302 -904711051 -934127757 -950694978 --498080477 -798501555 -913839005 --416783043 -200878564 -707106849 -835542528 -864823010 -986395 -265690200 -598101467 -250068294 -532469697 -921903991 -192096705 -84576636 -694436388 -885870561 -552884911 -423763918 --163019717 -407364393 -156972836 -642581761 -549854818 -289348907 -343640928 --987778254 -165943483 -48422270 -890748453 --763406865 -153737486 -555670258 -935352926 -980973737 -713752874 -380491874 -128098523 -358174634 -441817120 -85618403 -269013543 -168621284 -235567338 -417396885 -236464634 -213656201 --768484649 -546576328 -960407489 -298811422 -898887404 -97144028 -243749761 -411247981 -403764654 -820654398 --132862698 -936515591 -529703982 -560961040 -20919777 --632678456 -86566869 --316180238 -241670680 -434033218 -410420899 -232490575 --83696513 -837962465 -147508431 -991926003 -217452018 -567556283 --78085258 -425527829 -458783896 -193136117 --992433169 -186093668 -685926328 -958355820 -402051636 --229204866 -462247736 -18235876 -847208379 --53020368 -455236455 -443875890 -671788934 -212781295 --370794037 -931385352 -209684712 -284834603 -755131761 -893958416 -839872342 --989545850 -82035223 -304366095 --798387298 -800173304 -794257216 --23134351 -769783747 -450062609 -884413115 -73429571 -303110923 -330634527 -483901509 --906089789 -908896510 -360688387 -952931571 --128033905 -445327236 --914009741 -887747364 --725025550 -188249131 -992439672 -779028428 -338746176 -201569715 --480945136 -989740392 -137238505 -467862119 -203084107 -759530762 --207975416 -614927908 -942763076 -380066542 --791717167 -534885870 -491733824 --933956434 -594326154 -446535544 --594803969 -817250361 --828180783 -629165853 --519796290 -305895788 --719477387 -62482008 -457148383 --498438970 -17254588 -347225116 -846702094 -738814795 --289849026 -962209695 --961052313 -612274546 -766367607 -181129239 -170338966 --958439033 -952117892 -955535711 --367813880 -103533546 -372841019 -782421668 --654342556 -78861384 -135075405 -263486344 -283379041 -560841708 -706639786 --193265809 -427419427 -641320063 -159937396 -709541356 --800800515 -598064513 -393351193 -737612425 --591856577 -362127288 -449972406 --991059015 -143644794 --470726201 -641774930 -521602994 --341995666 -172934932 --286566581 -238568883 -424617016 -427735407 --243351418 -802543719 -670906848 -539455185 --72057723 -720859904 -214350436 --601752611 -255407742 -28729700 -172052820 -25979263 -436771709 --83329051 -694950631 -706101126 --121587193 -864868926 -981114466 --498107886 -319204059 -653574755 -678287149 -434127088 --709020924 -204517249 --177567957 -447498229 -523480531 -773983977 --462072248 -373744712 -342706985 -791932400 --829044399 -420072351 -736862869 -22280021 -325847877 --314854996 -8865807 --597652889 -341977750 -229546462 --612167564 -787286581 --680564097 -243760722 -476508350 --80138281 -232214202 -285520714 -226071563 -526604381 -964340193 -347063549 -865333979 -700073195 -116500819 -18536357 --335226668 -443162360 -216081880 -803112564 --241896154 -232834375 -852122447 --710845792 -558392004 -780759107 -802294850 -56983580 -632168972 -368741606 -212454862 -236247935 -987378482 -113082366 --129949208 -409868090 -646185816 --389456576 -369819540 --956933461 -467912518 -791870815 -219052186 --883028430 -293621150 -197236569 --456210060 -549995902 --234368271 -617093988 --77816196 -319717723 -85541790 -875174568 -711552583 -337374107 -867778752 -109587371 --615784734 -147272527 -509516979 --441553140 -305252882 --545132716 -459236592 -531153285 --861762121 -850507225 -647177777 -274535546 --646226553 -441242142 --991016231 -238648486 -161037474 -975020294 --786938028 -531748425 --902160198 -347707626 -672556310 -517742423 -565706844 -300944158 -820450117 -63816467 -487501354 --199097840 -760898554 -404585567 --209621798 -251482083 --157654247 -673938967 -870083737 --687898349 -516283806 -809518362 --18756672 -480952362 --262925794 -981646596 -412199009 -607246141 --391927124 -328868704 -169271164 -379008593 -118894115 -469223886 -524071929 -639541261 -79171021 --514702228 -139953488 -93473853 -812468964 -949865716 -719725187 -137427063 -729527917 --3345653 -42503585 --727136625 -142370580 -682802409 -161382247 -620403759 -261093070 --537119048 -282913865 --743192739 -623569184 -768515560 -755918500 --133628778 -200302101 -322492086 --568938608 -673530346 -954703312 -474190350 -464233751 -45758725 -527859865 --510116079 -515050977 --556776022 -893136998 -309451041 -525352582 -766765625 -188871327 --93473853 -791802594 -795646954 --490686703 -226020640 -235082724 --454256413 -765158068 --792605127 -249855124 -890587529 --618315063 -771658377 -832976747 --964781517 -763908119 -640539887 -147329863 -580502783 -622892685 -928689442 -994136900 --612152542 -395667273 -489154110 -897026686 -113374393 -847144638 --884112912 -142903296 -30845569 -156341872 --864953315 -719583035 --139595220 -468876430 --121315626 -724639572 --795294060 -718900000 -851650869 -286215144 --431813389 -787833275 -383077972 --15640061 -508229871 -575651350 --624347176 -683454065 --171387956 -497201235 --204333314 -291405058 --216215129 -321108190 --666174269 -369176568 --254215192 -190616847 --415887647 -446722132 -742421901 -524338016 -276771789 --968581921 -625119037 --671785027 -856521215 -729799939 --699088282 -190896580 --722249980 -113241548 -873299924 -904419424 -946236634 -824429743 --249442375 -849229182 -342233776 -939887418 -429425615 -665629534 -412903410 -235229726 -473410748 -352397044 -666625681 -7911046 -429936106 -874012536 -533599003 -343948940 -588627155 --403028241 -79971930 -56446095 -161877533 -283112827 -245735249 -480536864 --478336694 -843436632 --956926158 -923198310 -865759446 -479747440 -563899446 -120320052 -341012020 -44890732 -988184405 --338846993 -580292104 -266721301 --879878130 -872475261 -995743485 -207370668 -639800390 -961316730 -522619340 -758099250 --898801433 -519988273 --455908295 -909108369 -851813152 -688729494 -931798897 -373799752 -920334713 --805943596 -315255409 -976275695 -927477636 -779713706 -244503016 -472334809 -964932285 -119770877 -248271402 -743146630 --928049139 -621017492 -844056430 --860485294 -480767096 -281702651 --832373102 -959673289 -916937823 --731364910 -621595297 -127954023 -600824266 -319971992 --966453314 -647423529 -736446690 -965229037 -679722310 -257662872 -685350186 --938691856 -549520551 --600616288 -747577786 -234527337 -623157012 -688660623 -41312078 -937945433 -452635052 -447206319 -662581071 --682616761 -661981814 -972372122 -92811673 -531716607 -764645595 --633296182 -844691872 -53671049 --739349932 -495747254 -396378167 -481682248 -898889461 -609630782 -175330923 -538442272 -125342683 --830653412 -706688588 -390506620 -177162008 -545822116 --802909036 -272780354 --958591801 -786995027 --403490951 -691198990 -523531825 -762242932 -337535315 --225873715 -897165848 --139935646 -232524382 --637224593 -514184931 --410953784 -118407178 -799567496 --223385355 -575396913 --896045097 -88174344 -753984412 --204543233 -919526985 --694165606 -771726687 -723940742 -6252988 --542982350 -1608719 -992007809 -518405437 --22358076 -407451977 -489407096 -482635898 --827629412 -129894244 --169576660 -649769836 -612916875 --479008290 -212614240 -379973361 --372809946 -245193708 -11738916 -331682772 --202689271 -158244499 -551821980 -523271961 --840546393 -273923362 --319717723 -481806426 --543778203 -34527674 -241916359 -22132274 --528859735 -244853751 -764080762 --143981770 -711990193 --132898646 -140504412 --328787269 -850864326 -234750501 -607665380 -970891921 -958522869 -316161678 --517328250 -458734011 -672913705 -780009423 -55589476 -118967396 --454839519 -13337918 --677770464 -478791850 -489816828 -970581942 -728745507 -116707632 -360064570 -218113471 -545848874 -93784053 --435312877 -226751017 --839808539 -349849256 -156601038 -557235912 -369476640 -678958826 -622581025 -984459379 -392488090 --598846796 -454034190 -2687506 -366132069 -449925729 -448596065 --585801957 -766340627 -999009379 -234317667 -931495548 -893464252 -226983918 -13349844 --826601549 -345677462 -305106059 -386951893 -540914342 --551299123 -373626994 -444658281 -456052403 -183308198 --35059418 -926872632 -822077232 --209098246 -141262163 --728046018 -884828812 -407871926 -30931228 -482383640 -414394646 -39464115 --585521630 -310822407 --816643362 -55892750 -598327061 -785847579 --965353060 -158972334 --405475240 -932880188 -768171805 -578199958 --454382473 -263128705 -623111671 -788636771 -737365279 -968662951 -300666952 -749122672 --602705027 -578170798 -134957384 --580405955 -491242638 --672968117 -275347993 -110349035 -512294247 -267058157 -462579786 --101967683 -600778044 --249382001 -906338634 --609943287 -765680207 -319880192 -398841005 -384604071 -482801520 -899280748 -387511962 -19790609 -100863037 -621034660 -798494188 -969377092 --652856493 -728402842 -324790147 --723939850 -22459285 --219290090 -99040303 --440037599 -671195516 -744979123 -163877128 -3822157 --649916096 -27596305 -169896889 --719636886 -783975239 -401030548 -341308044 -203757798 -941263892 -719615359 -497700929 -445937693 -671127087 -540093527 -694614502 -122460316 --361633862 -18148421 --659453177 -57956963 -13024872 -940381271 -21905860 -372426051 -400312403 -969799015 -889812101 -927303448 --416521849 -822167475 -963619830 -571722247 --878228884 -940656092 --789908901 -455537478 --393269251 -825703283 -606299171 -256658334 -288773634 -756472768 -493169472 --517387446 -82362341 -469527298 -349304655 -227164045 --478619011 -985336887 -940566170 -817249916 --251933935 -420016298 -221096783 -544588288 --756829856 -889295718 -416147784 -301837089 -536389135 -771118994 -104808811 -783518019 -520427693 -221797068 -415475092 -163725739 -998039683 -34445137 -544447251 -449132045 --866150558 -596084521 -964709382 -761933825 --780947190 -429014591 --964454928 -678972347 --518716368 -182861355 -165029805 --979104426 -805982399 --996159196 -299218551 -206850821 --596939429 -578922084 --370682429 -746426376 -282666419 -399109516 --439890498 -371113083 -246038289 -89964384 -130420792 -153453482 --78084586 -772231229 --126750059 -675538810 --421604689 -373575391 -167340141 -85801560 --609307354 -567732713 -282849144 -70912165 -921015000 --217753672 -980600453 -887940784 -891520742 -998667101 -672727778 -738797907 -527224331 --938125739 -930155488 -226065878 -36796629 -447575083 -753905316 -659971532 -693807981 -662618812 -466743264 -469208614 -964984881 -473223417 -730087746 --192099608 -741994169 --344081740 -51130945 -390235467 -916040681 --66606432 -593659987 -912365663 --55437077 -137163106 -5913359 -86634404 -335233137 --406170063 -116443422 -784784808 -215059228 -609747757 --878497755 -95688523 -776848340 -400747803 --814636915 -961887459 --761658355 -773285537 --231164020 -646368937 -374172458 -936628896 --791079777 -945638837 -803005957 --227022850 -537526905 -768924699 -184809198 --346119527 -778585435 -955971011 -578280136 -669440524 -874118440 -582427528 -136059190 -722360208 --220398089 -355466229 --435778914 -472502900 -549335596 -802450159 --836445114 -42059947 --196329592 -416692632 -30121284 --822411460 -967091203 -584743181 --32390092 -491488545 --446781861 -447592481 --728745507 -293872257 -663080668 -81706695 -701736903 -351304204 -409962544 --391794530 -192851055 -119823854 -179090989 -212032543 -438112834 -713089929 -667551148 -178859173 --625841963 -789158206 -687478280 -686029522 -267034355 --621134083 -444172382 -822562789 -298728907 -740828641 -224460648 --747970700 -85254266 -721528463 -623673974 -996474609 -7935424 -705024994 --300630043 -602004384 -827309805 --961746610 -962673480 -238526225 -556630357 --847510482 -282485265 -499900186 -513880577 -730683996 --641335489 -758811544 -3552340 --481057157 -272766148 --431092749 -566580749 --883109825 -889884374 -311520310 -499120825 --468854287 -595425407 --859145800 -264653979 --612561483 -603876230 -934022096 -929304673 --112589555 -496683451 -774580321 -709776688 -902543777 -270324324 --659087680 -989635334 -74055084 --808747288 -592651752 --173613306 -654933019 -88845233 -338968718 -489151777 -310864833 --40724007 -977837297 -691192323 -557855138 --30415871 -588044713 -924639545 -896129912 -74367298 -802745338 -850960094 --715586722 -764971344 -904649938 --703105751 -641457513 -443656319 -282908787 -675874247 -642056980 --30998475 -335511674 -45849527 -336178677 --859299776 -907879417 -577282613 -264803655 -902216404 --516038569 -755272304 -900960994 -183044297 -57329486 -832910592 -650451792 --538857749 -963270299 -906621410 --386951893 -503324203 -374416561 -553744783 -14178316 -254011032 --429708239 -586829429 -681852827 --929125554 -704877425 -55280953 -611269614 --649401912 -661020967 --184984961 -359884314 -90211466 --263128705 -726688653 -451913399 -494544601 -204083074 -658144866 -440031606 --599530600 -48647692 -89817980 -778218467 --291527196 -24689535 --549238907 -500698847 -300170339 -255768798 -943388553 --930361644 -791408863 --363074155 -285655493 --547873594 -13453294 -840988395 -505902349 -806434918 --725793653 -88251092 -549041071 --199494686 -583956696 -695862681 -656258257 -439186464 --634490169 -448838930 --110600631 -626424459 --93664237 -335072658 -129612897 -261251391 -496933950 -579745689 -463441147 --362737031 -337258555 -524274904 -399046296 -522957804 --206423258 -268816029 -357985361 -192350956 -295186192 -629016421 -649026616 -473326564 -976045072 -997883273 -78214783 -81729504 -901694053 -794634918 --749732333 -277995365 -544260522 -848096607 -162897951 -887700455 -250721582 --931744550 -775620704 -197540468 --967054019 -91006565 -183160627 -349405253 --211731622 -88551363 -980427119 -279777441 --182159067 -793838292 -65515650 --708012931 -635243978 -293429860 -550525638 -8049412 -472949885 -657573387 -990226418 -612723790 --965650894 -597090325 -402080505 -38385346 -587958089 -806017753 -843103267 -634118217 -28085680 -209931562 --387902197 -261169601 -291757274 -450700700 -886032802 -399191344 -661118015 -567356491 -507661871 --742104391 -115162817 -890579104 -868758355 -79950757 -99149833 -941186971 -462869561 -162531863 -585825280 -345300567 -186941134 -310871295 --694369038 -529682474 --517900314 -499009502 --499895904 -82694541 -559566671 -963024261 --540179040 -453611381 --635020465 -270429421 --572800455 -436989567 -145068037 -839315560 -763229407 --138152404 -203657768 --309571415 -732071767 -426887569 -738752282 -12365932 -690137823 -224827145 -852066655 -59303599 -409217008 --884071278 -708987326 -507233671 -379871469 -149719952 --40872937 -496589274 -193639983 -579301620 -800750945 --930395341 -62705168 -24559596 -683635207 -683059599 -828999922 -352265608 --642728073 -841168459 -399944888 -619718928 --711547908 -81441091 -875847910 --676876291 -524885859 --875174568 -750430246 --548328982 -354494528 -752685344 -944616429 -617102118 -275720113 --80025723 -406631719 -3001034 --883497006 -28953808 -672223460 --908574159 -166435960 --588167934 -216604688 -21779211 -999722763 -472688660 --17057426 -161520284 --954916102 -907721654 -237909893 -434027059 -385973195 --114756896 -563470791 -322423316 -311566813 -371400309 -531168229 -359799039 -502105063 -976290539 -219126053 --468560919 -47826686 -68390477 -461069663 --19505430 -975725857 -658426024 -488017731 -60650832 -932883934 --815366252 -151541325 --338813150 -446870324 -33006979 -852990318 --704876620 -610859581 -760387900 -306330778 -896081630 -676074848 -923147713 --205112573 -299067044 --239744711 -607534107 --328124944 -249201165 -357766009 --236298059 -534362532 -723985737 --968805071 -750915390 --900483387 -157406712 -121615812 -830146644 -402025409 -618336067 -155893408 --143902056 -260893699 -360230381 -672090736 -972800360 -249183362 --227963678 -874425045 -779202507 -20169956 -334966525 -820107016 -553581215 -22069403 -297799778 -283135434 --462364767 -198101210 -506767410 -882471731 --483256257 -113619460 -741070452 -199489195 -117579382 -890425606 --30217079 -967313858 -662596339 --734457215 -684395133 -933498082 -745926244 -205753529 -870647881 -725375427 -696965637 -127301148 -406457748 -497886124 -655586279 -156910116 -195335937 -45000086 -747353777 --684767857 -430828353 -619953861 --273792597 -187390257 -813768545 -680840967 -618099565 -692798852 --430118345 -155121236 --775141221 -571878993 -631995334 -497277384 -516060710 -204081032 -922166562 -730176010 -184329046 -979679334 --656816011 -870646384 -398656767 --267055900 -34174345 --501481090 -195421461 -751280130 --447405085 -736934526 -866061964 -346064892 -744248127 -537403023 -12162037 -909785239 -207899319 -480355734 -645078602 -936947127 -94345860 -582207455 -545678372 --469724938 -677997713 --580666051 -59958229 -482628452 --988693339 -549874983 --307893718 -689913576 -43350993 -129860776 --964841695 -264696392 -405756963 -59554042 -380569464 -688121117 --905288875 -373593692 --149632191 -51093842 --699623361 -89132577 --211139808 -90268076 --229324801 -439155926 -6858131 -196069790 -663601532 -233721421 -474775092 -964524896 -84365481 -383967793 --844620979 -310056174 -674788393 --397487768 -809739126 -928992519 -472815945 -142792080 -559073805 -101791185 -192087849 -176564423 -114520033 -812733300 --776296062 -800537186 --102399647 -694817491 -607621680 -767267539 --278762253 -622864328 --713176339 -172669075 -696491774 -680011772 -981912123 -596204165 -726111377 -465595709 -803418273 -770624659 --398381062 -853259035 --363459311 -528185968 -874690618 -818669961 -708287573 -663310635 -683819544 --142914606 -783177037 -812571767 -230845632 --782400567 -336498169 --443162360 -962263261 -620633888 --428287189 -878391266 -507909359 -440453262 -341513573 -413667700 --33357130 -940674822 --356162987 -480174009 -794116566 -860676231 -621588092 -461999820 -806961192 -944090410 --439587278 -83180773 -524762984 -73468269 -760122449 --396047480 -951933809 -81816969 -749333112 --631747490 -255714414 -924385951 -633402298 --947660445 -705539138 -824379645 -839561665 -45712126 -721325908 -772768105 -158927583 -356915777 -542997446 -76640010 -928848373 -681616523 -258237592 -73294956 -635022119 --585666335 -756750774 -78885843 --143239505 -518530536 -764964367 -613711077 -559178426 -354426794 -413477930 -57459047 -331719580 --585328131 -468120469 -68447246 -491092230 --882873962 -473741987 -604121831 -190656998 -662037388 -119283388 --308508095 -542078222 -772944975 --610834004 -498922854 -470253527 -909884871 -3075395 -414793398 -631624942 -876227756 -201696162 -279560200 --540845418 -273861932 -692964465 -449892428 -654234459 --348682917 -616487681 -606633790 -881801505 -716921785 --394855883 -22510068 -565957871 -837507493 -94067070 -320952152 --65424985 -52190937 -451297450 --216041574 -888433412 -792376078 -430971201 -528910921 -749864685 -579574202 --579981653 -125789434 --162721057 -658241088 -790773084 -974478958 -665637208 --113827301 -946356269 -744884971 -147222449 -138888877 -413685281 -30950253 -568655209 -123869090 --531489262 -846631463 -711687380 -355823312 -745880328 -116676935 -280954062 -630457877 -859638899 --810212664 -998509880 -563850661 --629165853 -605657176 -780238509 -600604912 --796308542 -87094366 -109339298 --954573205 -703361795 -926597328 --771287599 -270506952 -707435901 --897389391 -982802116 -894691846 -402695952 -27879094 --367207063 -578853225 -415935761 -578565906 -484596783 --710216862 -936945905 -559576175 --804494460 -156112815 -998203767 -467695408 --757627470 -239506478 -941762711 --972692145 -458409293 --628390907 -356222782 --415125142 -132592931 -673765769 --629224971 -471750227 -655722488 -687410777 --495129661 -925859 --713398117 -135519147 --619573280 -461283712 --443197766 -219802310 -463435009 -626123099 --264647331 -150961433 -805248054 -779460842 -320562460 --508842017 -270557400 -931310450 -736430397 --797581723 -924045703 -947110119 -701468361 -944128437 -55596340 -329719279 -203307980 -865536900 -591531671 -114891598 -976963829 -129422394 -857571221 -577786808 -635743782 --996794421 -917794378 -910019871 -567592237 -976405913 -433776847 --26062747 -262873197 --324462683 -33100011 -686987724 -578919755 -10197800 --582461375 -661717162 --296638100 -227889196 -730456912 -529190729 -737730097 --345064435 -852184991 -110406976 -766677257 --603115001 -351883820 -738350540 -23962891 -18251859 --332071613 -265453850 -114953876 -24247649 -919142905 -860887469 -269097138 --529967270 -321309060 -983809257 -136550057 -6100215 -246798277 --933490434 -563112876 --276995169 -725005240 -888267782 --496451830 -130852784 -780465203 -698032948 -907811223 --289255030 -460241428 -886987063 -551734722 -19757539 --241532711 -621594361 -33423352 -311328500 -798403917 -386716612 -876760657 -188836360 --906277941 -629935518 --505078218 -296102793 -558572311 -957759929 -398510312 -317339313 -464816854 --595675561 -841356813 -796412007 -2107780 --998126872 -248056860 --94231192 -443737358 -190319497 -756735476 -788428651 -119976256 -33132269 -124789877 -693130108 --881810353 -416890978 --620678457 -132677026 -271504386 --618171766 -564260961 --636531577 -858112501 -382765191 -306292308 -416609661 -532586221 --346776416 -950411338 --390708191 -505730221 -504012154 -757128812 -337320391 -310142752 -6737511 --732318720 -429318263 --502833729 -322840795 -107672169 -680884325 -850072114 -233420847 -890427010 -645564566 -910220120 --375329293 -301532907 --713847599 -5127697 -82982692 --231655835 -933321974 --537944510 -820797135 -802952171 -899023057 --686737784 -857623899 -320393426 -266295940 -188135741 --977284211 -409662269 -264481142 -226715231 -615558671 -808794250 -999859009 -594541449 -474624284 --630595492 -59864756 --411368511 -535940575 --254185524 -282685048 --33079935 -129557171 -833816601 -404980992 -828907141 --800734280 -426840673 -705061367 -259033855 -263328062 -739481665 --838764195 -63046489 -887938026 --900374313 -391629884 --130247451 -434513349 -148435679 -764335402 -746555574 -891451142 -981131679 -4698471 -17871900 -246166377 -73651652 -973245066 -345435661 -357053187 -975578150 -849615172 -340966586 --918406054 -114892717 -4594659 -515628153 -452410441 -935728173 -843302734 --774722017 -231654250 -6453254 -400373920 --783760691 -11143071 -726682056 -698425497 -586125663 -315796794 -588785175 --883832741 -226024125 -829782617 --431040301 -361186016 -902903720 -61458766 -473041465 --484399888 -174530715 -650303091 --854495852 -186618467 -789792664 -842039852 --53840548 -837923266 -229386461 -580080866 --588902128 -214014922 --490173560 -763434327 -438224160 -276733567 --474112159 -879186623 -400699591 -284333755 -496555478 -446408235 --388194502 -522389591 -948614839 -986810065 --311264596 -406814244 -255506936 -659970777 -103549241 --290768009 -350047592 -52622737 -686353907 -399078346 --908357288 -526657848 --232140290 -635951676 -625822014 -177331714 -538185131 -472881617 -170562952 -712677985 -825203173 -826376780 -450694624 -32121355 -484562607 --244870411 -670041028 -154793845 -532202022 --163935531 -258421933 -160859760 -860038861 --268906777 -611354710 -884868254 -580825780 -290590733 --923543072 -2346369 -324029631 -363712645 -218719484 --164133714 -2444716 -657872240 -731999186 -371097259 -713929854 -341357335 -429691259 -818255154 --359664536 -677982847 -827420773 -805075776 --137176160 -23849060 --391315644 -114693116 -914209478 -527416291 -68429350 -578050698 -238268177 -988375836 -158925512 -976003617 -91293513 -89006131 -647356047 -559134464 -760494723 -386679246 --118970096 -562106490 -893255315 -866969062 --60932372 -2225592 --464939807 -394567285 --807673314 -238712261 --626270042 -606620032 -908567858 -362524487 -988634577 -968448515 -264514129 --237577761 -450093974 -701790024 -819277006 --168565337 -4516908 -41522191 --108128772 -116196214 --923636369 -896079541 -956405794 -421730276 -7367018 -18101471 --847462966 -489973613 -394849571 -506770214 -441820724 --7782968 -90564081 --565153757 -228846172 -131800864 -954999152 --916300549 -157898938 -377669323 -111778215 -483987191 -772450074 -568073669 -591408396 -725502177 --311535705 -307655440 -385641079 -167155273 -460459900 -394283658 --845222775 -235637619 --907712368 -116736083 -436221654 -505910252 --474317 -541916145 -144081112 -326821953 --635986258 -773771349 -757226872 -277217205 -860937072 --795430691 -591011721 --418806147 -568998145 -338636958 -146635012 -829628920 -449373342 --130279838 -166237530 -260118212 -338056375 -25997249 -837607958 -427078766 --943263694 -435558001 -175514753 -952364704 --156619635 -66599465 --176866056 -987298070 -471661157 -943438418 --42962070 -413155596 -494289066 -601404144 --109611303 -738262375 -245140458 -941217800 -456544445 -15363554 -810252920 --184217232 -400240538 -179646229 -162218193 -390915978 -68822807 -305041867 -728110445 -399422806 --909182535 -547684459 -725686580 -460819635 -863907969 --752381064 -316049964 -516752558 -451214664 -999751654 -283481297 -585066053 --370841831 -179048124 -211066485 --184638338 -613577460 -696436835 -254960208 -636216992 -674558291 -132985698 -959141187 -960872681 -248907840 -912757148 -413367614 --953958815 -159841550 --5866297 -378647768 --345154006 -75358538 -201895896 --981723644 -725505823 --247321795 -380151241 -432621334 -354260247 -30814857 --244661967 -77811064 -410662101 --640276310 -89257330 -319069288 -932046950 -400977390 -509116503 -548372739 --901478347 -518681208 --834370032 -299707043 --464530089 -859886845 -462681390 --72404297 -113132070 -658988572 -337762237 -124241462 --877259925 -139370054 -27809874 -699090202 -790838249 -687384967 --920294944 -342213961 -819104431 -222724157 -181436000 -188521168 --911974061 -768914901 -29697894 --305056696 -680797427 --87145770 -788957740 --127979488 -62855044 -505411658 -937123921 -460502291 -762083599 --646750926 -232199642 -644680330 --145463374 -431476858 -768513277 --845625478 -944378765 -950378099 -757207298 --672589387 -566349736 -841842923 -899637481 -979751655 -430514055 --990111676 -681129034 -108301565 -680003655 --931333756 -305483114 -701389939 -556493341 --621595297 -250927644 -612157297 --562378655 -245113980 -635353522 -13982365 -906305797 -373023387 --505647117 -829110821 -357424150 -465758939 -301588732 --387144257 -859695984 -627683595 -5668851 -166958424 --87618263 -142516729 -811786225 --741053636 -587405833 --662294040 -585802714 -186372185 --33522795 -275885569 -120890326 --806941506 -834013896 -95618590 --448768391 -149520992 -651040841 -790578063 -369692028 -372219219 -658887814 --881489352 -714348255 -355095010 -566699778 -48107228 -940373216 -820082953 -731713981 -677465904 -372168646 -756813124 -126442204 -133988095 -903928473 --925265992 -186556599 -343114574 -890750611 -156718663 -944743329 --293794423 -247435611 -872088713 -507975584 --426465172 -113353600 -259638836 -341184593 -654253784 -534022661 --418646690 -456377421 --136222425 -492091806 -176748215 -599166108 -867982839 -90300444 --259011473 -955981865 -520745385 -331636783 -148835141 -19099309 -216131102 -519315366 -334681358 -120508136 --20988660 -179281313 --287272407 -904953021 -495610036 -321478239 -957986886 -287478430 --532065021 -281743939 --950905307 -12001306 -172622964 -46407557 -667414737 -252789406 -466145068 -7246106 -287847367 -758535265 -748255036 --534157069 -38238947 -3563949 -416569451 -325804669 -686239940 -551336679 -785998114 -886071363 --655978062 -478706036 --672779136 -366163318 -730190655 -942483468 -82721269 --982955292 -889960222 --137743154 -497111797 -979174636 -618444403 --887700455 -425798996 -885700000 -428441065 --270160506 -457647182 -848947410 -583261227 -52978009 -685515684 -167896367 --977615520 -868973779 -402017003 --316966552 -571266548 --114387954 -585859596 -57017956 -61361146 -477159788 -667712916 -176530028 -803382534 --273683257 -167703525 -685222690 --673933168 -202752975 -534860098 --24883853 -593438005 -907102925 -804912497 -435895928 -796096671 -483828764 -993054394 --543175264 -4314846 --802432132 -801812178 -212105351 --663571541 -270217266 -14272544 -93835318 --798441927 -765697949 --370981850 -118853841 --281972745 -733163423 --235089410 -380051037 -768296272 -809481217 -230775390 -644608801 --924532135 -94788053 -318033374 -989600696 -32351082 --494011627 -755597087 -335533014 -616303062 --766499301 -707100973 -710512206 -187208803 -141695288 -936682993 -7691294 -222781360 --577516283 -661399834 -592245506 -58361368 -582884452 -650591100 -831661668 -988213643 -240141088 -661411756 -966738815 -654684054 --269562759 -47617063 -372071006 -943987841 -573793758 -330911284 -968085186 --160375706 -263351864 -255202191 -335779918 -795540076 --251608667 -466809111 -172228993 -62975028 --272144488 -753215506 -407169651 -27320333 --492781411 -945326425 -159757015 -836126474 --471792422 -117971075 -569195149 -209209820 --685507545 -717058063 -125610580 --628513919 -290991158 -143298922 -184876995 --927259856 -241290743 -504759573 --295939500 -208219996 --553137392 -489912472 --839051507 -461256869 -523825752 -488616126 -983839288 --928866606 -249759922 --467247595 -41176436 -116677411 -903623390 -798187014 --179160197 -996127132 -439258893 --798852795 -838969168 -449675004 --496520923 -983917536 -226937084 -646568301 --573672444 -985838086 --100030110 -767791828 -360508135 -384209768 --65008106 -176525742 -360733799 -834301502 --706817098 -486140952 --697202473 -435414966 --578209005 -67927704 --26970815 -890782513 -696791095 -23827490 -813715514 -553337698 --768419175 -890608724 -542635170 -438293632 -305020943 --346964304 -705705784 --450614467 -264742303 -290134523 --605592725 -763166100 --951745895 -979384937 -415408297 -457096156 -631681021 -859528425 --908864398 -773691026 -111992766 -644866850 -166342724 -307366518 --615508626 -914500243 -491746103 -332501302 --501139647 -737410109 -419555471 -429637052 --577808908 -515361715 -793371254 --712637157 -341321447 -221857617 -459382976 -812886262 -160008827 -153396045 -300402152 -147641172 --457454990 -256116397 --743772742 -772850723 -65892000 --318213803 -409997530 -453596452 -494646692 -820358450 -377498525 -379421264 -581035023 --10197800 -152605582 --973702923 -533448153 --199033079 -640187208 --649511403 -155455336 -868062296 -732573652 --678995351 -397945683 -774082950 --550471353 -852585442 -466395750 --655586412 -823385993 -448921219 --621534204 -383293523 -710543676 -929327288 --833113889 -396047088 -445677521 -535510205 -848641457 -440452196 --539948584 -898144495 -466794150 -679664392 -314961941 --815154366 -926988879 -732833111 --925461899 -174510798 -776614516 -31552978 -954171374 -263661112 -314857106 -332010218 --922984219 -520824150 -782611119 -985986560 --887891245 -221220270 --495059616 -410899475 -909808829 -797671672 -923912708 --323572756 -847086980 -841135358 --993201193 -939150394 -851095090 --858127823 -167342064 -368037662 -829001667 -658964374 --361174501 -670495361 --930343783 -80508799 -825631363 -753863378 -171449621 -820858037 -44991743 --609428746 -678154825 -2802114 -394205640 -83828249 -333406541 --64093584 -194209211 -807865222 --287014491 -33691673 -743794337 -558702551 -983754557 -356151483 -801683218 -716714257 --213961574 -823403527 -990286441 -201036366 -329319106 -268332667 --211955649 -281963170 -544124489 -207614487 -202590424 -386168989 -372763523 -877143169 -868929548 -192912355 -911020187 -832911902 -499773583 -63778089 -403424578 --58025510 -144268284 -376730031 -484559672 -943883540 -616775869 -656251267 -461073387 --40335354 -387707917 --140087519 -7959997 --486031289 -117673377 -426240922 --488017731 -765509835 -933609788 -556548765 -135253602 --270826424 -344708788 -850555379 -98977423 --978146605 -898844010 --909541399 -287933945 -446162321 -910387852 --979046810 -524270098 -156401275 -300309931 -387208200 -937853265 -940750296 --235211150 -848943775 -383263277 -370921060 -138962623 -111824437 --455494049 -60586600 -808308906 -208784873 -440661602 -942509572 -608825319 -813394076 -627827893 --602995898 -998502024 -188986708 -190141609 -89417263 --874800107 -711238100 -403752531 -826434412 -960937416 -984830057 --813146549 -307147180 -780285444 --789220934 -629753595 -365958147 --360508135 -543651685 -706829315 -666326637 -362251471 --358095766 -822710145 --199400470 -939006132 --575773542 -819708876 -517080745 --676573074 -881132768 -154936746 -586819272 -459936357 -318019396 -695872662 -859235889 --638538994 -452993346 -392128076 -819224815 -900596804 -523888337 -743345852 -354204826 -845756239 -837420039 --414637618 -744554055 -403071135 --733357728 -94086014 -427939125 -665497014 --293214372 -345400200 -849721033 -84028664 --46879276 -603778881 --166543814 -594274895 -83235787 --703965834 -47434012 -238384284 -856889163 -617956652 -875939654 -249767992 -768495320 -4350295 --862871922 -383770640 --498587184 -152455260 -138239757 -622993319 -490313154 -260575562 -954049319 --963995530 -808890821 -333458522 -424744996 -937475183 -996758061 --744887429 -613311957 -357963244 -879534646 -92647208 --342458410 -264659158 --583675819 -484441477 -540202906 -928364408 -910286950 -985297689 -593146089 --439789615 -525440893 --602867990 -946799803 -841856671 -278901251 --796316818 -808767778 -542272356 -833429286 -369181112 -889888448 --384790766 -446162652 -846801379 --68852769 -199531086 -19993900 -823650909 --219308726 -814518677 --126857833 -661259538 -669909861 --50624909 -257364894 -34499547 --153683179 -836205520 -455450312 -444631861 -103217269 --437775291 -820211713 -94447519 -247320234 --742666786 -298840921 -158823150 -156520741 --519983778 -781754228 -805224272 -770025805 --197439239 -564373955 --344111405 -211819386 -149510664 -352528899 -358929874 --42641827 -414912389 -374036950 -965421072 -121366003 -463585457 -150725217 -935827171 -172824452 -853920890 -697919227 --687235955 -627358954 -436627078 -485898197 --292002354 -23096297 -143404984 -30943372 -248980777 --12783117 -12197776 --335130192 -473004523 -951002162 --649787093 -110441270 -218114768 -128246630 --125958959 -688566783 -348938141 --141309891 -550922113 -840650730 -302253006 --297979990 -415243031 -302462158 -200756541 -169823176 -112707344 -585351594 -589416303 --450183769 -459028402 -623845763 --663997067 -53667420 -5772590 -291216054 -745714159 -25269308 -542713014 -597374273 -454984333 --226244300 -611280083 --254970366 -281434045 -95970645 -749209872 -116999713 -284209295 -630071943 --752353875 -701812099 -17440502 -737186347 --881723037 -155980686 -200101139 -589136326 -494871112 -54264700 -636208539 -336021743 -917838376 -270405406 -926392591 --325880562 -81516241 -200574071 --216063470 -595208923 --817550674 -386372956 -225150439 -364617077 -445809865 --76818231 -15722500 --591531671 -728547385 --547045114 -893637624 -641115658 -369686465 -749799607 -208737059 -718926744 -534100793 --814815330 -267693878 --825793672 -608810991 -20003832 -644098264 -350575821 -81654769 -512509677 -649212322 -601344687 --665068474 -927377828 --342671752 -954349344 -425609398 --486279271 -652637266 --978705629 -993887913 -869490064 --987527818 -204689030 --780917342 -762693601 --719615359 -307600269 -1278955 --161346194 -807623444 --36898577 -502600700 -366362935 -258882124 --345034272 -91256028 -802730791 --497201235 -452444831 -903005381 -832008451 -970085509 --714100990 -155343375 -94717748 -648547469 -994562250 -769064334 -746305494 --615871798 -595748489 --203282282 -717335593 --37364217 -781547752 -418826041 -160330016 -845226409 --963293361 -245704404 -557627800 -214005350 --147495746 -83773591 -190291650 -169073407 -80338357 -985614226 --773473440 -744195049 -883004750 -703444329 -148870486 -295297722 -834946087 -454763766 --74416297 -170106714 --24400276 -839279792 -412444143 -480569006 --454511330 -400617463 -574476026 -643302314 --517192036 -7198819 -906834505 --333641015 -654936841 --282107773 -711386612 --563149861 -18701568 --443919799 -155154364 -806622545 --581025870 -244487866 -432356053 -947407959 -102203279 --716955812 -432401028 --790946057 -342536146 --232244886 -748997776 -66824120 -148085447 -303026036 -613167370 -902141490 --216513484 -421886556 -537762207 --839192235 -993481084 -750492733 --909080242 -550419274 -91399400 -597314332 --94048112 -465551227 --383603693 -536615710 --533886422 -589086880 --613259648 -170420951 --678612841 -988983281 -559312155 -323270142 -108037946 -436592335 --851275767 -701177737 -482003747 --610710530 -118851857 -276621006 -681415990 -989553055 -306536821 -411168822 -880749110 -512970502 --714246368 -154441598 -691260838 --849103715 -620003421 -150428292 -332158638 -223868683 --578381947 -732059979 -629278161 -639814057 -840237400 -949378134 -495334399 --285073756 -993667033 -233266644 -776186636 --769547704 -720242706 --434215609 -636298173 --657639574 -281201888 -960660995 -244800074 --895004143 -584226250 -102876875 -887498583 --661329897 -235486427 -253311307 -172885562 -411739012 -396634201 --783518019 -921087303 --482603882 -779199210 -790077023 --555861397 -225523402 -180390514 -400789170 -49197169 --214106187 -398941607 -81963095 --289783321 -416382107 -787523730 --681087616 -38665233 --535412774 -364985947 -389743189 -713045685 -788736532 -522775652 -379919183 -280938480 -519711192 --442827016 -318008781 -800934939 --870872970 -26635067 -616971620 -613698768 -90146313 -468605044 -521343436 -148811073 -148045922 --825015574 -590205449 --136075179 -818169564 -392468010 --692237749 -664979695 -613300868 -29057557 --717109577 -162383360 -149354633 -882874239 -102321755 -120558916 -49612728 -661307458 -583455684 --986123250 -914841900 --917410507 -729634738 -136810748 --624086815 -451403748 --336178677 -675631070 -564137422 -89815150 -645095803 -301214766 -205108285 -950273979 -78462040 --161573183 -888188690 -745732190 --635330265 -626681435 --422073363 -435516364 -248550146 -406943328 -14745147 --477990388 -656350376 -664841591 -483154114 -615904894 --458959586 -45338114 --196111389 -71330404 --703140296 -908164377 -313246695 -194150990 --211291862 -110793951 -408328100 -854365291 --356608760 -434827713 -760333232 --962592598 -349388959 -587434322 --925541991 -733159622 -890241798 --124854155 -576984347 -926829187 -372184781 -837912941 -502659534 --916002888 -431789850 -554455334 -474041891 -836661451 -94094561 -369232914 -220541339 --60249522 -45553390 -80729651 -338303847 --889234448 -881531924 -431567323 -555784180 -12096888 --806034534 -185618661 -264477131 -727326095 -288499431 -242162803 -500427986 -442497825 -433639292 --283112827 -376359801 --950694978 -736313903 --527509640 -456968358 -425568934 --996897560 -757349978 -155216464 -949347528 -12430225 -945328709 --681852827 -29351998 -34144910 --655541972 -922269029 --472719794 -429560793 --890446381 -686895325 -259537634 -8679001 -399249391 --589438416 -62797402 -433032748 -220335621 -724341892 --937853265 -381860431 --572858614 -715507251 -562721138 -383893335 -500831168 -808776242 -959403012 --413265467 -646286343 -390327280 --379864688 -779722445 --427734213 -210160119 -773997268 -570818572 -913541348 -752313842 -825486972 -322975566 --314748832 -74435523 -146555596 --335043708 -696837490 --510541772 -734177455 --274707675 -816196343 --506537953 -155187570 -745610033 -587832748 -389504135 -150731686 -736546993 -401512378 -725778374 --354847609 -433836093 -440606419 -206138045 -120773155 -356067722 -412176102 -28513485 --156579908 -458676192 -527303143 -836540077 -514889054 -606278840 -268764182 --409996053 -306197138 -339653233 -98604857 -66347728 --988811070 -181875420 --309033141 -23097972 -14706933 -552970694 -852282131 -84649929 -629081487 -395240990 -489249370 --530441154 -404342795 -292215337 -502308973 --540546860 -759898016 -872458532 --563933207 -197551956 --14834676 -885629273 -432719506 --797918201 -272353955 -397073775 -445727911 --657773309 -704137769 -360558573 -13321447 -989717998 --319980289 -753765981 -581143594 -241946049 -556973230 -221045152 -100565447 -32008963 -518926245 --383302899 -502951374 -953813730 -411093450 --847747472 -874627471 -214553301 -434631331 -661679197 -486349422 -44581337 --52380728 -39717980 --227588423 -111213727 -377942831 --532700153 -399563392 --800577278 -648741714 --515705756 -115068480 --71804779 -481256364 -644761917 -815348092 -576516765 --319581035 -470935853 --338133735 -806346584 -289500164 -383827162 -815188583 -845434803 --190363802 -239053157 -553340185 -173159897 -721558992 -108557506 -718061358 -642564750 -508068842 -196139383 --643684313 -654875475 -657573395 -733791852 -168080663 -276425633 --60384181 -88759799 --493443387 -182401831 --964988808 -831327713 --88210451 -244576376 -947067835 -909114120 -593389459 --752564468 -305338785 -148090106 --615838865 -929839446 --650275757 -185166977 -491892638 -869792127 -119897551 -57119681 -245912826 -922158655 --152491650 -6297551 -92594246 --571724736 -964022151 --28351285 -969796265 -609317334 --159868428 -218350693 --79585238 -939717869 --207262815 -479238806 --314142351 -995148757 --915598220 -165222319 -670504283 --668073553 -879299701 -679075015 -518326225 -872007576 -82407115 -490106349 -615139491 --910139997 -83038770 -986420449 --236254655 -443351129 -455303855 --551052678 -244282219 --632301860 -696078559 -506434939 -893264363 -870221514 --89609865 -533842488 -342812219 -56696421 -908224057 -117686991 -692618710 -660266163 -435533786 -772028208 --427162722 -871089456 --605514023 -720281767 --625314186 -55117414 -577825871 -151519472 -741283733 -25270753 -262076904 -439023639 --59442216 -609115206 --954214340 -190689016 -19615005 --423440401 -279700132 -380086822 -973205545 --582167826 -74545938 -610468311 -716048679 -10509883 --913634391 -198532807 -266706477 -742168370 -487334603 -866880924 -137124774 -938112398 --675355165 -761467807 -666151706 -173713062 --193540837 -705859226 --510534178 -994515532 -101292184 --519078331 -427952762 -450596228 -423119719 --382890777 -551534077 -498889361 -212129684 -926219574 -976104052 --447446942 -448310009 -340063790 -501577905 --737987546 -792335913 --603955276 -854280530 --887612471 -117981633 -67471990 -78070093 --935689130 -286376862 -480231006 -123571314 -107654161 --453957262 -683755697 -501938260 -221509956 -439424699 -236879962 -996081404 --425190777 -742055514 -651031401 -573741664 -457609690 --864310590 -499407261 -114015897 --546188823 -516526867 -446593208 --765570905 -135888566 -655444502 --13364495 -699572251 -432818149 --889153997 -67110762 --307457177 -978481477 --558043760 -164725516 -463126672 -995053785 -948940279 -857147815 --625415369 -232813397 -107681063 -962657698 -349615537 --971505303 -242364577 --10612088 -12362378 --874737709 -154699848 --636883245 -19873329 -62905051 -682045549 -290357304 --646824582 -590448225 --838648448 -87749030 --840202321 -510899997 -942092474 -712212168 --180399751 -142106323 -316138752 -729147931 -644259346 --54963847 -772138026 --982802116 -111301427 --172024233 -389435497 --237166337 -276461790 -168127373 -798078705 -988755779 -793187166 -252032489 -972287264 -128491545 -22359241 -552404627 --238501495 -58306308 -838181521 --757739956 -916726427 -372071223 -634554814 --107876253 -566109006 -634451193 --898021139 -877903924 --431863438 -287334104 --427829001 -87754021 -959036073 -138844641 --924064212 -858609075 -921738631 --889901279 -278216447 -114607679 -352473823 -490288897 -365697037 -627619754 -343597798 -714784224 --70912113 -775802592 -115382718 -667727759 -340996913 --123983644 -303483665 -225169102 -834795670 -555793464 --755916145 -553909931 -544880217 --6897940 -23605004 --422009573 -20433484 -537265475 -935961157 -332024146 -888289640 --531483842 -217006244 -260589821 --478180378 -444612799 --519880276 -192999731 --562763493 -76007657 --22281152 -755472081 -355342899 -977961452 --126670695 -47286602 --159937396 -136127858 -951376446 -108241878 -174469735 --657573387 -486324934 --870172415 -702753018 --90651103 -782293558 -169897140 --784433610 -572235126 -468521858 -727476642 --986836587 -656863696 -273435911 -446784922 --897506424 -312015816 -204589060 -617534307 -131677923 -512949265 -510863652 -755338847 --415134412 -703259383 -400040231 -237019782 -915411734 -954654721 --229472775 -30943162 -225561868 --516566766 -9038974 -608871222 --293626661 -698693557 -580727154 --110308298 -711515863 -176669681 -648243717 --979371497 -340226657 --893572493 -950741331 -546825376 -64914336 -755289391 -875354702 --277321203 -999156223 -133522302 -784790470 --888416360 -663755406 -453226326 -961174913 -269538675 -519784165 -243258256 -228224721 -514203774 -503894997 -983775792 --245534154 -308822435 -84237005 --392925650 -878778961 -199528124 -458425829 -730139871 -62302912 -840622982 --377413691 -648934146 -15783796 -43407073 -981514705 -561634436 --637651122 -570178516 -65724055 --792666657 -448857098 -433536311 -69782310 --756060505 -512875482 --546915289 -908520406 --583563749 -864643547 -388695842 -658714276 --802144244 -97379741 --748931903 -579989980 -902329306 -419196437 --719719606 -895577890 -565577049 -349523971 -792504206 --701046089 -207609696 -912624792 -311301411 -745430229 -652350019 --550195450 -182638283 --790691265 -34628757 --435475205 -903253777 --548401566 -469657 -478364133 -249252327 --363719966 -690100018 -508858867 -623726481 -333108920 -142701229 -210917901 -489862283 -694935632 --300078932 -568080413 --389595853 -559570968 --843607796 -71236832 -997147881 -770300705 -652196154 --936682993 -440340826 -186536153 -494501643 -373304912 -354769293 -672234766 -49645704 -912482943 -807172164 --633843486 -664499111 -119736711 --310880317 -155797285 -498185303 -308338056 -678041109 -776431051 --818255154 -742760288 -204890092 -541287645 -468905827 --594101870 -596296591 --400551203 -113745553 --853324238 -140581573 --340968276 -176037821 -360140895 -13270192 -304048430 -978060201 --30731290 -754560555 --280773353 -475256630 -586247962 --875985873 -158277337 -490040854 -241811612 -481925268 -750450337 --690552309 -454554514 -525506567 -286193593 -341896880 -607839251 -971852829 -458558201 -87421130 --219051675 -418657021 -531043764 --980119779 -177987097 --415619401 -782882353 --782075223 -973187745 -301324107 -229026855 --356877549 -862767629 -545734710 -833308623 -816993624 -193592222 --956724437 -738680898 -228623570 --630496288 -78887069 -498206117 --653320065 -441852572 -331512674 --7691294 -945766890 --103716152 -466905827 --704650020 -741235683 -349386274 -821916093 -291348521 -528213570 -195886557 -958373669 --622445844 -680820807 -400187550 -88498182 -192796511 -245374442 --31890259 -591501762 -80083498 -765435721 -212035244 -567778012 -936377793 --569918108 -71968872 -948279393 --143619132 -632388580 -57314398 --898631116 -518916020 -870842883 --619944489 -571413503 -352307745 -110020866 -538063085 -5647695 --637306536 -454532267 -362007386 --432043679 -711963503 -531226373 --337466880 -236894582 --944653403 -605862328 -245615795 --372408195 -15953165 -867863070 --174451671 -564703754 -47595093 -443391279 --389547169 -21570336 -746512817 -939714256 -641156979 -904686812 -676547219 -754618422 -441960341 -868252113 -913798183 --885721655 -873261915 --382538775 -79921568 -959536139 --396102643 -509957770 -198772731 --25050037 -814286910 -489221658 --311202496 -64873911 -666309906 -583588834 --627625992 -354579676 -881722484 -79098958 -277470088 --5048136 -25238891 --41694241 -978471868 -154034899 -385862834 -611407732 -950721005 --210711985 -3867102 -285993678 -752902444 -618228876 -363632585 -16530410 --622437649 -500583768 --377135110 -577823453 -258687201 -28608470 -748136225 -200985265 --18516496 -34605151 --857870874 -519189732 --887605347 -276186288 -960863921 -710805539 -149500807 -85243931 -698888835 -974848000 -832033463 -650747237 -987919275 -898941947 -703712222 -795647282 --403752531 -978773354 -748971022 -382151013 -223306003 -524306842 -787734485 -709244595 -261359988 --7667648 -96256349 -274977516 -761700044 --610754703 -609259963 -917734289 -243172990 -856896669 -231815275 --548413988 -179144949 -899129707 --83382586 -988230930 -157247534 -385738167 --999274825 -319206311 -393892341 --620336323 -571603474 --659547386 -127880819 -600410074 -248520814 -221634362 --770966908 -39336590 -740322111 --298243615 -967734322 --599740929 -543692051 -393199698 --925946370 -754790092 -101306850 -789370240 -666226808 -671167337 -781025631 -549751563 -876996369 -117502563 -553758826 -122923599 --565654393 -137452231 -450828506 -776160001 -463809231 --310860710 -127613202 -439256434 --704214938 -155239555 -659597348 -709662376 -637905513 -136627177 -517963743 -89558112 --834121497 -187360187 -505571654 -140947902 -234257871 -90074156 --233883950 -356591885 -587830697 -844651995 -106365831 --869543433 -720377072 -440394434 -839891162 -232723993 -19769402 -659631844 -834321287 -534047155 -293327328 -219037547 -620061341 --26343355 -101174104 -994574321 -396263773 -571996352 --977216022 -258633143 --248793145 -771025786 -728794211 -130292610 -923706596 -342501916 -952679661 -886891666 -589545152 -128860188 -846755457 -923405411 -224632667 -884134584 -640579266 -468087022 -113525174 -16671078 -330494283 --211192183 -238474160 -880882208 -200574105 -500999451 -445204873 -337888771 --830259216 -992758124 --772290640 -389445942 -338315009 -551854043 -135957950 -137647405 -345506386 --628714281 -667197055 -699039430 -63990871 -477670124 --604854571 -781017548 -277898939 -320281374 --916629936 -175355682 -996580275 -674060284 -852738861 --929873158 -934044739 -742341017 -908300700 --243371203 -861016885 -751150255 -310325611 -344683260 -252877672 -150144542 -18020474 -215816377 -566621986 -146899906 --759024514 -547677046 -645140165 --335212343 -744070523 -14446987 --624426746 -12941417 -245910563 -397724364 -485126594 -966768786 -8645626 -163664520 -978193105 -152093698 -733533624 -82081742 -768518740 -934140872 --912030543 -480895351 -457285768 -734003580 --124847112 -905427690 -592200656 --424588456 -901212584 -819059945 -825856022 -302814658 -432085488 --983345747 -279607712 -422180525 -85182499 -115676854 --515707073 -778935377 -343431307 -48441903 -646904655 -990992919 -124528647 --850881811 -152473727 -779205293 -197962189 -974854726 -561487702 -558336639 -894745637 --323888881 -757785975 -897873617 -972309743 -865801946 --893522682 -942944271 -436147263 --684743543 -866929937 -163314929 -143864893 -365528207 -216952849 -308745484 -48711509 --307094144 -284575209 --691338759 -203753217 -989157008 -8405415 -427780279 -757022577 -664543519 -179239219 --459741949 -166473236 -328684548 --916641743 -575231204 -992241290 -959426019 -215038730 -230674024 -669949634 -264072920 -441261709 --993724729 -111914044 -178982738 -238750450 --791645684 -212980999 --650630357 -133241875 -694838045 -586162974 -518818541 -512907811 -99629774 --253613672 -993817537 -679485165 -468540725 -246293623 -226905814 -524904444 -670245166 -546853966 -730803317 -544437748 -59903416 -150117723 -600099704 -812451767 -782723207 -406127698 -388199613 -224851680 -601697922 -571504613 -542460841 --265721251 -355884457 -844341149 -154820631 -762111525 -648654158 --395130046 -41800838 -496941722 -705474492 -875593083 -506200562 -879922717 -445637330 --170234662 -771178625 -682266674 -771990865 --927405272 -559965537 -267923483 -356340006 --396703633 -454131915 -657623964 -989701726 -411598906 -424519989 --78083002 -676494620 --391729354 -87027047 -451579523 --455071798 -307761301 -590677066 -876551108 -922520149 -811119719 -653653237 -634273603 -655278393 --879443253 -449624177 -846344046 -631533829 -32685588 -899060275 --983425052 -61293455 -118013028 --309466432 -222744820 -986240336 -58232031 -549406516 -28361652 -794079108 --890770897 -196145897 -228431473 -517605920 -692424931 --517058528 -792862606 -823034519 -829976548 -16264249 --834476380 -708840270 -583947539 --768259475 -9456518 -889728446 -642396817 -465059918 --405447540 -823395674 -835905355 -359445747 --418657021 -574758051 -821756389 -297014002 -538625287 -546400489 -854996413 -566452738 -484419588 -419182185 -66588541 -921388662 --783452147 -248681810 -490650416 -23061151 -631907627 --976628826 -966461471 --218080253 -663168006 -836875122 -735663051 -135492808 --801801630 -65070894 -178785809 --894252071 -632219183 -337925213 --874627471 -626082769 -284762186 -938809968 -664094764 --326257523 -407520963 -162545104 --570726925 -136801750 -15656387 -983351040 -899295747 --217319198 -221708947 --252707783 -427925834 -66494388 --859978300 -474481072 -41175789 -704846885 --678713120 -846259519 --146825894 -301552395 --116048356 -571115055 --666250691 -671915080 --444860900 -236311397 -166706724 --161422637 -303807477 -332902109 -715696266 -908430513 -65324675 --445010084 -775804921 -824900496 -981492045 --678689735 -563940152 --302547938 -889072858 --28088732 -146844019 -761049586 -699318062 --654021933 -65539966 -233278045 --413957723 -426357951 -679802518 -234622839 --203255930 -991091388 -335001119 -862916929 -217294111 --371434209 -156708530 -539396892 -620164662 --624258376 -606781933 -256298350 -481500750 -509336295 -631477447 --275796759 -861242432 --42092409 -650152504 -99559468 -993591899 -270107160 -784264915 -638297840 --890782513 -578836355 --587652012 -691549700 -956416795 -593988471 --695181656 -319481626 -239797277 --581279434 -855340697 -359641418 -29271323 -57993022 -832604782 -836624873 -227163861 --65892000 -594079252 -521319335 -525695726 -80400265 -878777318 -149868402 -742925862 --452115730 -404862671 -573831531 -966659984 -443807404 -469540730 --858891341 -187646210 -957633814 -952295647 -35242802 -24057909 -26465962 -106375112 -711264867 -482418029 -924430686 -103059814 --742382876 -808379240 -749005055 -759876351 --52259473 -896469771 -100427785 -574318799 --960407489 -282924724 -273791372 -718716886 -525000523 -868219469 --613015516 -518552474 -936184840 -685376997 -650674449 -89074679 --937240958 -817337086 --854279123 -485812668 -428702315 -267562489 -521962649 -562605574 -169847543 -417714975 -580539695 --634229946 -403745585 -515522100 -249021834 -706143452 -155110890 -462569972 -686490245 -12359830 --293325853 -349063835 -488739376 -492590193 -645772215 -986436065 -763424485 --612157297 -940005352 -338078279 -972064673 -178442773 -232675402 -569448973 --952162481 -544841709 -925798344 --675631087 -55423879 --278558411 -177857758 --335256128 -866997627 -260348546 --197209192 -666671247 -743743898 -603122761 --223097512 -121912787 -589630861 -193570303 -830342609 --298998970 -663434424 --537968159 -327667860 -37354325 -422469325 -676055451 --345677462 -374401265 -125476650 -178319820 -804376729 -326615067 --237559070 -561678452 -783771064 -684351967 -33977007 --736796779 -710202721 -7418321 -790268649 -378892435 -301833027 --553062132 -863396914 -61054089 -436531345 --23342246 -747587150 --984180079 -256429586 -864039588 -492068319 -56344846 --707004362 -127289136 --623546296 -853726533 -573956290 -750348073 -721592384 -930183827 --147508431 -722831905 -725414292 -748630015 -924606251 -715439925 -729078644 -668325873 -257494648 -258153578 -22104785 --892505884 -533114171 -510425817 --307610437 -95627429 -115386886 -385159422 -43039245 --870572646 -343199953 -746537442 -499475363 --828198701 -930523306 --923048489 -729573208 -783478246 -142760678 -553522333 --777403451 -326472152 -839070099 -584268633 -589790457 --959080607 -872136185 --857877855 -959777898 --641722919 -626594016 -516235987 --153927653 -366022051 --472587373 -43166589 -646015059 -779298871 --80298111 -251550787 -307897597 -898026338 -493039422 --122795928 -282116875 --568230585 -75634527 --990795964 -321568834 --287911785 -30372953 -873365436 --820464875 -703917369 -637831201 -338882754 -534625203 -973651145 --794832002 -374316705 -919276718 -889023484 -845192280 -67654528 --120504245 -394985251 -483520342 --355907773 -751947017 -739897970 --370889507 -228190489 -368241179 -544936834 -110072175 --562333979 -650340598 --344330233 -17600747 -88977614 -542585277 -490819319 -318964426 -650948884 -111958324 -54035623 -679542358 --525428508 -296837156 -885444651 --540511514 -230977559 -3428457 -312358913 -287087091 -151713470 -636116549 -164216462 --516324015 -983206269 -247999549 -387868722 --850930408 -369054943 -7790387 --364286051 -565713568 -506716911 --526668973 -47038270 -830358587 -886897353 -328674165 -734421095 --466032728 -534129696 -945120400 -419644184 -964551949 -175560276 --828293019 -185502174 -644160307 --296602689 -887422694 -742615850 --757434333 -427355390 -550189088 -839485495 -118406311 -929645587 --357787134 -280717164 --374190648 -735985350 -935649492 --481992667 -973912088 -201886329 -693799625 -165365520 -641113633 -959740716 -676910263 -624419113 -764284354 --855213828 -772861071 --335321149 -495672979 -364319388 -797925211 -513285600 -351807738 --808388653 -467682744 --278031095 -310706797 -264314946 -413837948 -300228947 -68487553 --764916142 -945452589 -24475183 --344541809 -328249346 -688390698 --287360226 -337968986 -536381126 -568964952 --469852556 -37251142 -123692088 --177284007 -34407053 -54188 --536582551 -141573962 -341870501 -536800987 -485338798 -532889975 -514834387 --449946285 -620417975 --191038962 -253649136 -468495430 -115474379 --305541733 -208265990 -400152750 -108661993 --758187750 -692470290 -371663524 --406421016 -479044492 -913074231 -878309482 --108027360 -52680683 -815116599 -229486038 --170522880 -307313752 -467269317 --84607340 -847491225 -890133593 -209184884 -694519010 -432769586 -148515621 -396160725 -231630076 -144630989 -214468735 -353874911 -773711287 --613299215 -41913122 -14905671 -271067435 --925873292 -224294941 -103580979 -93561557 -30563823 -263791745 -742352787 --226290877 -803755078 -377594258 -551165076 -198293980 -477775998 --133240461 -552170560 -424141846 --165319603 -137395635 -477240456 --171533247 -905125495 -592406657 -754820811 -226363210 -760240408 -442979745 -360054500 -691519871 --444327905 -292090231 --908703893 -343229189 -184210746 --742986448 -163943462 --968971252 -187773775 -781653957 --860995349 -665011393 -427732125 -475041675 --312015816 -251593843 -591394617 --561678452 -533905082 -211524897 -584327949 --194401619 -366175801 --857548126 -904828733 -91599917 -680045681 -598494730 -861579298 -978744434 --30887034 -192248528 -664411681 -187208132 -962422082 -646852816 -340456728 -505260484 -721069311 --660482506 -976065836 --693828425 -575020890 -301538937 -382263198 --630425557 -467123138 --13561485 -458781873 -84664244 --993055268 -487366674 -405390076 --532811310 -225889959 -108927844 -344313312 -939153779 -635032037 -210922201 -184606308 -982172632 -143998241 -55811534 -839663471 -840698046 -176906126 -356898851 -64559309 -386656088 -13556844 -713440143 -776081144 --706109082 -680679638 --712863336 -210294411 --136507510 -408757024 -523349660 -528428717 -786990648 -93698496 -489780610 --382991191 -664013621 -745020935 -686931177 --402504332 -110673611 -554503584 -123945534 -253388875 -605577770 --453497059 -149573527 -657779120 -892187995 -517768647 -77698452 -387122590 -766654588 -521361243 -499734808 -233203557 -344866050 -818711017 --468950128 -580738110 -600330722 -270011329 --775060069 -953865379 -859739401 -626878355 --554638295 -704847039 --24340857 -722233329 --222317005 -403931783 -860863408 --735835624 -402254215 -818051722 -343126827 -313763383 --588756080 -869599273 -709710585 --641156979 -196632843 -96149769 -804678481 -240050023 --871517047 -765150476 -986949258 -445928796 -597619584 -302623019 -748426958 -28641679 --547060591 -42211273 -31356206 --671127087 -268499655 -293220845 --374786305 -609731346 --47662248 -12121656 --785667605 -703311513 --4406076 -480548991 -126517139 -447503161 -544463472 --189540123 -191267517 -914129461 -937536663 -506451418 --789647118 -71581839 -853056215 -396470735 --294150402 -509007240 -119338547 -847166088 -356879847 -313431409 -341521960 -769677070 --172824452 -166557020 -49819693 -678445958 -345017200 --961896949 -655107908 -938231671 -467364994 --293917519 -991965552 --739274065 -241546271 -477952555 -70846467 -450555713 -28479148 --877722095 -617169773 -196816234 --650127191 -652193487 -728724777 -376438563 -120085768 --750818587 -58947995 -306721175 --242370994 -780232793 -970847430 --235301326 -134559023 -420907665 -45074655 -752586358 -874670034 -885310673 --73029380 -278415881 -805366029 -51318693 -401266162 -599036236 -394686738 -209565896 -895994742 -508200765 -878313320 -90136010 -163497815 --592367312 -337763773 -605204645 -446844725 -388777476 -435398094 -927296554 --20586125 -664681492 -720858560 -878379237 -524178385 -589665437 -525809109 -254045995 --733533624 -36307107 -801113941 --990153226 -560763433 --537946738 -922467090 -947943458 -61240055 --354029249 -775154902 -645292655 -419969047 --888081818 -219130030 -739393106 -450676026 --357687505 -842460685 -196799883 -733832444 --880495417 -381071252 -531492351 -361031949 --383967793 -79914930 -282589792 --113841353 -196228153 -704321455 -979191883 -943695677 -586730405 -3055354 --229023362 -371330550 -65206563 -17254744 -474723520 --639424789 -599674073 -504014095 --243248914 -428301441 --949126918 -387273914 --32714719 -441870783 -208791579 -42495675 -947336029 --256941092 -940215877 -337463762 -524239942 -915046293 -14727508 -375685062 -761276682 -174414729 --549649262 -316448909 -828529526 -236968395 -69608737 --966023840 -636751717 --870321842 -961059526 --878460591 -933540541 -348871471 -79011302 --40304697 -736378530 -325145864 --230325918 -153559768 -815485526 -648829136 -659657004 --703303463 -897401260 --178859173 -647676321 -252266421 -373870263 -605412383 -196279236 -176856530 --628929946 -910647340 -157591695 -807246540 --737410109 -810053216 --294913449 -55789365 -680519002 --675698681 -606744931 -612798363 -920123997 --233570065 -336953249 -424661107 -561513271 -402749518 --366586151 -856180337 --117672688 -980816048 -741517327 -252129360 -990131334 -749534356 -356822688 --110613733 -630041487 --251341909 -323985465 --910647340 -977721821 -976910770 --370337160 -458213450 -528057562 -128792995 -114764331 -736167125 -990446934 -568235885 -142183220 -597061152 -12049197 -149049066 -355745889 -695376828 -606045194 -551616074 -881525727 --574259521 -3482586 -617487264 --327298196 -848298559 --138662856 -537080810 -772322782 -644387693 -247607273 -12007902 -854540465 -739943445 -264216625 -405997837 -802908014 -149296951 -913706712 -212733435 -873785072 --38301537 -190807822 -676963205 -26947282 -408042536 --80803532 -911821701 --372714246 -261828454 -458958998 -142219793 -958610195 --226715231 -647845074 -16168823 -708217158 --512333549 -427213086 -514464190 -241651704 -812575261 -588569211 --866322274 -248160182 -281804102 --140028168 -894017812 -248432300 -994000002 --198736895 -479364470 -258399254 -536266757 --173814694 -158133871 -938657688 --55589476 -545422368 -569341435 --633103523 -202400574 -849358385 -791838610 -128531733 -81153672 --606497270 -123209246 -514973331 --140994529 -607287002 --886132702 -757419236 --538469360 -5365803 --485799284 -764380958 -832111452 -510709390 --658137304 -657422 -449742725 -340492129 -968408300 --229696162 -578840148 --63027887 -439071249 -531419501 -107134101 -141175876 -168015079 -847565509 -350402030 --649776233 -499935726 -287379574 --577634371 -681886469 -363328413 -376602195 -551457452 --214838588 -185067433 -517726544 -422327012 --69782310 -970689296 -831898418 -935933099 -225748104 -287056385 -358723362 -82836084 -987256168 -413548089 -114559094 --160856873 -365650727 -33292589 -359095400 -89059643 -990210769 --904744581 -789333003 -638051678 --39337913 -459530020 --942373691 -848120931 --977197286 -742208611 -655951958 --752142981 -44970779 -985753734 -826938263 --855008292 -441036347 -855294232 --179372124 -602377821 --300335394 -617087918 --374031205 -936637694 -750575507 -223129629 -40677695 -420004521 --722502427 -945917191 -570083685 -892190988 -80850686 -587103442 -154454206 -873150343 --340492129 -781780678 -985258980 -736556030 -678361446 -902863755 -808619031 -3542443 --463319045 -278242423 --260846273 -363830572 -804551054 -229011338 -552796008 -66615813 -431833201 -309154785 -431820019 --547724876 -930181079 -222023304 --115541469 -913830056 --128792995 -963304632 -776817455 -761715294 -233972325 -984921436 -491037502 --594815478 -606918967 -433058512 -129382154 --568293308 -28561259 -666588144 --558922045 -787186929 -138347129 -573667793 -841560010 -889744428 --173348147 -240057829 -888766086 --839322170 -437585059 --622958944 -95130183 -264862699 --382263198 -475739860 --54532560 -198960765 -638447059 -671208869 --606080195 -675878707 -494947856 -547466595 --324051898 -977852419 --695836467 -616198082 -5777243 -402804089 -216844790 -156064380 -460885767 -916373476 -327637829 -451041298 -417391501 -804315822 -98612828 -370824299 --847904797 -334747923 -173685876 -996839161 --905791798 -311222279 -135330658 -836781148 -497849009 -472600756 -890530340 -888415984 --691678046 -252180998 -686828451 --802908014 -926159331 -591476913 -655034639 --957431909 -811863798 -746287019 -509813794 -43496644 -819808834 -116076310 -465178738 -983245569 -284080031 --422737618 -324761065 --679747384 -784241230 -910262849 -298707520 --708157611 -804672080 -4412939 -840328602 -631618650 -962379432 --742674508 -958867888 -68407520 --319073309 -738850760 -551547360 -786605411 -604623502 -202787041 -432954008 --445677521 -501463733 -574408291 -928704692 --78049275 -515109199 -958140319 -498230434 -449534366 -261468849 --351774951 -137983860 --401923639 -967492558 -358148597 --58163530 -126901220 -774426085 -138230339 -755769054 --967157263 -996698946 -639170692 -804777431 -743878698 -512637833 -884398611 --748595947 -551645638 -314433621 -347072952 -356817548 -345618265 --75780078 -991790040 -380731599 -23475522 -222230500 --580367645 -851549741 -404739494 -296398151 -595013819 -341337903 -683807979 --577549049 -734267250 -235818698 --908433135 -644195081 --991471138 -938465105 -519229695 -485409236 -814015615 -749341262 -927429455 -617836474 -151837038 --605962055 -578016489 -259091207 --678307888 -290580811 -992590311 --552170560 -694608119 --557229466 -908341427 -541597745 -517621140 -371863606 -705430955 -3455401 -9527131 -379816337 --535991621 -515944617 -224821521 --864945253 -109397224 --303044194 -200568866 -72325745 -768635185 -898583837 -99172605 -168556027 -930580811 -894949126 -928494399 -28314334 -129005990 --679304184 -159038272 --523235563 -267115454 --201234854 -90815035 --988274838 -13293617 -920937620 --771176419 -483549219 -315258750 -727980336 -115949052 -313437961 -730471815 -439521967 -531953393 --722831905 -167354111 --128477927 -717229828 -242707980 -783423945 -786114181 -527004810 -173823978 --508595277 -226766174 -349745033 -853210579 -928145244 -427778 --287096485 -594777607 --82089585 -8877781 -572789421 -534647869 -803262601 -716905105 -4044803 -391172723 --325976400 -123215149 --541624994 -848909073 -565697939 -29209704 -327637732 -8170785 --550130416 -896384179 -364669527 --225748104 -520375013 --912543828 -230843859 -700558951 -294631887 --558665879 -385484451 --886820838 -122982119 --285216411 -958688933 -40643147 -420629397 -357362703 -420784084 -726178727 --373742255 -374310406 -856561486 -807731701 -739170767 -269056093 -826564465 --462092213 -469783670 -687969336 -198462453 -934109501 --24925143 -527284814 --462569972 -202230971 -303790562 --575304211 -879467090 --135288253 -933282451 -618704700 -95730895 --960167757 -406201927 -852113035 --2936095 -675970692 -384759176 -542061405 -476324345 --499295673 -852071917 --838652295 -887738213 -940892497 --334858452 -395108433 -410894155 -551801302 -122663860 -57547218 -814887173 -829265132 --398131979 -40313655 -848073963 -178600597 -366329927 -597323668 -752997590 -815770793 -115219014 --52225545 -205031368 --246568538 -977039496 --957854698 -748952971 --703917369 -797819107 -305485853 -821417512 --229712520 -957720762 --913839005 -894883357 -340238095 --815619280 -282504101 --291659701 -150401130 -316079190 -733026333 --615094952 -623941663 --984965418 -740683492 -922375030 --599645060 -755842637 -904783095 -545477066 -644102028 -598877462 -893197779 -978803429 --143280783 -859343593 -6957030 --530524127 -340989170 --186883443 -424991848 -23029058 -487743390 --170573544 -503257378 -823246040 -721195090 --316763421 -663442498 -611008486 -196592375 -757920114 -839054478 -514680747 -280481523 -4906313 -422537174 -86859619 -577681704 -659309955 --859783035 -82239381 --149061078 -890947892 -456997160 -674838254 -780749110 -449651304 -194072258 -816297457 -705229399 -80723226 -63299117 --602749786 -241304217 -936772557 -251578395 -198264616 -859728294 -749648649 -612775864 -613614454 -203804002 -795498737 -587263702 -39653598 -259587777 -353407979 --977965201 -319399553 --622068087 -169707554 -281461832 --897793955 -252509390 --243188618 -243770926 -222903812 -618505826 -380727573 -359871720 -408688697 -258737948 -570975571 -568794042 -739152995 --904904546 -287069996 -686817573 --771658377 -315652748 -395020055 -638717059 -985185426 -283652149 -584615654 -799138897 -744363219 -436738238 -402105424 -28294110 --815403093 -550640296 -403320317 -341228374 -659880130 --556139444 -498698055 --936171311 -937359237 --867882436 -661323271 -740470425 -941681311 -61469781 -358167109 -411702800 -244935987 --544431271 -757957414 -154503045 -474307151 --188560780 -125012655 -958310479 -373376120 -946266847 -831052277 -34782911 --780222311 -184011533 -9891814 -802705039 -640672718 -506606852 -711855501 -306426508 --575192358 -858967454 --978176499 -780266546 -161555986 -869645739 --641017577 -971500487 -409194337 --21167221 -988116821 --79947523 -831197280 -894368844 -710926546 -531262 -755964701 --68751902 -523944847 -579349435 -933049264 -733480380 -712568368 -616336869 -76518703 -870523535 -377164477 --874831467 -751937710 -886376471 -174874069 -534679808 -52870885 -992755395 -911239546 --290590733 -76699760 -794286797 --455450312 -894752841 -213386114 -668848371 -540526117 -957492326 -752405449 -482864767 -107782271 -125145934 -699354136 --387425010 -413591050 --435036921 -218770374 -636730927 -194861118 -832605623 -810824441 -799618583 --202321280 -224858052 -718593145 -616033578 -901999821 -560522017 --943765153 -408625026 --902098167 -775021771 -522545179 --272889727 -362171389 --79171021 -180531645 -655374413 -820448292 -311952206 --419043058 -971538713 -176643605 -835025956 --470028005 -724730893 --673586957 -508293869 -467490648 -34625403 -58653391 --677027251 -421657577 -549325113 --768513277 -193634234 -442802110 --48544120 -568219433 --594878849 -299121078 -337482925 -639501495 -596759209 -415595149 -736857805 -448403592 --616919045 -878568055 -125036517 -544682112 -910398150 --282260384 -486831720 -659387571 --36687296 -355201405 -444843468 -673163910 --47472524 -16887786 --26873219 -562492615 -888621250 -181807439 -462232121 -765065867 -362191429 -77968549 -825491758 -243670163 -636992020 -750658855 -848517316 -21418060 -501695839 -164410089 -16069252 -276818752 -215319596 -802591569 -942681009 --223768114 -889226670 -894696709 -942009113 -547283083 -454798817 --280103779 -21015935 -217424509 -700968297 -62653454 -785220280 --873662373 -953243977 -477917767 -760160017 -573233226 -789166146 -555261344 -120604048 -365766428 -648676505 -982082198 -125093827 -508524801 -753835066 -123078940 -749175475 --847658281 -727410079 -649223906 --973484271 -893735704 --334115026 -9496616 --933159515 -263850472 --824978344 -474945645 -202309750 --162346957 -302295179 -746230721 --302462158 -143611862 -919368837 -649597096 -574213334 --897358683 -155784608 -627143343 --531051672 -428117166 --16965978 -259923744 --387477106 -752929575 -690578598 -493949852 --436771709 -967574741 --319719118 -224756925 -103507723 -652824536 -562005104 -632475578 -129475688 -819324364 -334717107 -68485724 --188997808 -18047173 -245596974 -864540840 --512136342 -353923825 --472679478 -944000050 --618882357 -338720020 --501240555 -593049763 -626847010 --207833003 -819815249 --74522017 -576295799 -8580030 --824125924 -737904705 -250984832 -792763157 -711181149 -824060716 -628338500 -560814549 -368044738 -830715551 -963970919 -518777867 -449171118 -447822901 -470415292 -957892337 -934278004 --266447688 -680117944 --338056375 -565391008 --888835269 -869026661 --130540550 -301277827 --897425324 -754081251 -968758432 --621671532 -556677784 -40941641 -616621003 -326046768 -423654311 --459028402 -390730550 -273262286 -65148155 -923467308 -631204031 --330801717 -906459438 -643411246 -275484154 -757132919 -30019621 -276846047 -258912124 --256939089 -818079414 -654009154 --50905945 -601710468 -585899047 --879598558 -525179771 -203607494 --127294475 -96044536 -133347855 --700558951 -576441429 -488042179 -951985246 --656134113 -182248940 -479691572 -761624681 -416524292 -886625222 -692790071 -502554708 --27524287 -177157584 -624437452 --38297340 -997378651 --968779838 -597179444 -722523185 -732124466 -751049066 -178303570 -617117643 -823343158 --238774282 -170687756 --959932679 -511853072 -453627439 -257144329 -868497171 -401542936 -800856832 -254898261 -74326813 --990374097 -510167880 -664330368 -362078470 -720681330 --23316028 -276204635 -455372902 -598418726 -394524234 -60999121 -11675541 --845417868 -144898120 -727407556 -877604083 --611777458 -586065441 -908256085 -324671359 -193860929 -579031874 -188935272 -467551477 --850333413 -66938277 --53757801 -845121721 -221315213 --448047289 -152872724 --494072299 -268728099 -78437511 -378446934 -422633260 -150890282 --982798471 -790629686 -988138139 -772496320 -190088134 -611106073 -500489373 --301277827 -374494219 -627692749 -89091325 -757502461 -377058220 -533053228 -592219750 -546234387 --437421275 -708168621 --754112080 -738027905 --320822621 -641570442 --42959753 -635549817 -799278301 -894649568 --186009111 -795713567 -379879206 -272926867 -130008372 -55977610 -454435169 -81632826 -101390046 -175926126 -54554933 --157414323 -528611756 -7844777 --486070929 -440714694 -895018188 -98249405 --368358667 -530210579 -377412979 --71546713 -715777552 -609810497 -976741784 -963107227 -709364977 --674467405 -661073806 -287251462 -433431466 -948174773 --53222832 -247069501 -43175645 --905171759 -898133703 -210354133 -235019600 -348927933 -180379804 -598841185 -298429779 -387605753 -178230430 --139825007 -292034880 --922312496 -742358930 --820191524 -922433704 -224797658 -828090687 -297183835 -249484044 -24675402 -335712111 --990247701 -508960668 -390556271 -380838837 --272241696 -520375213 --44581337 -955244289 -808980760 --536498932 -352252128 -394121173 -314412522 -470796341 --209992975 -746483529 -16877215 -385733927 --820657869 -6507081 -681288904 -67462570 --16916356 -909244721 --503884366 -551986400 --931495548 -57998557 --362259464 -927139449 -637615560 -286016308 --492193412 -882142575 -960777979 --278488711 -315740979 -313522239 -62776590 -215669290 -286613852 -139849365 -169246850 -384546349 -233641667 --62196375 -866862530 --562844256 -492305449 -567065451 --164504343 -147983594 -987570895 -539808668 --244490978 -357426663 -823959199 -572469149 -710804751 --968506630 -86268694 -307817961 --412889077 -778754807 -545073970 -338573763 -838600741 -592388497 -365699383 -316372677 -616173362 -103133109 -635009609 -194207427 -608230549 -973261296 -437018673 --556728720 -454297421 -778173182 -530084948 -334988608 --641731018 -39099653 --364909905 -356373359 --956105738 -771058687 -15312475 --7029671 -101653354 -172253593 -946444168 -290395022 -684099529 -211739712 -762291938 -112683957 -665028174 -27163168 -850611857 --405408402 -70293017 -432027589 -581697437 --850080401 -695945560 -407831259 -794472013 --739767924 -73706646 -713182698 --454069776 -695754061 --925180513 -797281041 -2484150 -703072873 -141988864 -323821966 --576272023 -994428163 -518144159 -892418602 -943126503 -544653247 -400852701 --720245046 -664367095 -995246025 -88289433 --230775390 -265640870 -586085263 --775804640 -687722553 -248395005 -968198085 --153256458 -494306942 -520250826 -898774345 -148836140 -755796031 -426467596 --777941393 -911922998 -933401061 --889630810 -842944932 --939308061 -767762636 -544336482 -394486156 --738711516 -152741730 -523424825 -707298114 -466866311 -969280887 --348517358 -68783052 -143483381 -61195547 -740052010 --840491214 -612084608 -860188740 -571146676 -329595381 --602573037 -188372748 -226589040 -934819454 -54186408 -969495199 --46991291 -515003766 --279919140 -830925006 -374400405 --364823144 -311176551 -385565278 --586055759 -284405295 -909558136 -937589615 -823539625 -914674486 -162324472 -543741521 -603575927 -537914994 -331658728 --529153741 -814488968 -902564809 --58996027 -754832235 -698489983 -892821945 -850022071 -409849799 -240816969 --836567346 -640809570 --239797277 -86816669 -158579291 -972549760 -202576981 --634958542 -302574670 --355296813 -280321233 -374438906 -702985948 -815774725 -860249399 -213159071 --828276198 -284860232 -858240272 -833491737 --564137422 -171045369 -594971009 -366718587 -860426338 -334533777 -345801685 --534352951 -487002000 -111064402 -735680943 -530844379 -278357931 -187387544 -140703496 -414138607 --723383660 -69740191 --6863009 -214400084 -386495535 -666577891 -388185375 --748942679 -932369908 -248532763 -730077198 -473548345 -147091019 -755657504 -813451782 -105176212 --319781415 -655507149 -480761009 -334123132 -23023581 -168832193 -153025691 --738910258 -702010106 -150777126 --672223460 -326375543 --690318582 -534402387 --117618280 -699299539 -222085742 -988069423 --793749684 -240313065 --612523008 -841104772 -740727357 --60716755 -87774895 -103937543 -761333854 -233325188 --165685453 -25686285 -2385375 --147770941 -276506656 --364483698 -473074900 --738898499 -193497240 -175887638 --207626172 -454833085 -420782574 --556956399 -515968085 -683390557 --363178465 -941822354 --207200734 -563291827 --72382821 -26284399 -152047465 --53822779 -860086817 -759463802 -590874700 --589103429 -182456310 --334533777 -107941446 --702304799 -457438952 --745825453 -341581547 -717945391 -870078826 --757017328 -963104085 -775885924 -617390696 -99632753 -891683499 -844700434 -16291727 -972477470 -763879878 -767839349 -980057366 --242456704 -99487107 -735121863 -274186158 -856661959 --530019771 -887327462 --673925434 -904165241 -254885587 --297277959 -749604861 --801937864 -240276470 -13830990 -636070095 -361879662 -826104644 -764813234 --387429229 -515031001 -277389735 --123692088 -366123440 -447127746 -978628750 --123215149 -271070564 --166473236 -202902549 -232110196 -879890315 -398047773 -310702789 -390422393 -900702574 --588200209 -531878399 -583021184 -52995355 -759256312 -943449124 -317182455 -85446308 -130956404 -546687148 -426223310 -221700734 --189231775 -224123394 -716425795 -154920662 --222575096 -22783323 -174394863 -162014548 -441002844 -343055518 -800515307 --85819160 -59353044 -267126550 -210354848 -79477446 --562581095 -659628536 -95208205 -928468677 -36882147 -251780454 --805452045 -255977826 --48559296 -704795679 -688441739 -337890171 -537771008 -690208104 -657341342 --80589781 -371311048 --764454872 -164578163 --780333187 -936911057 -941850958 -820969333 -391684948 -877835236 -483671631 -462582974 --67075515 -531329177 -637672276 --765953868 -387943113 -887982172 -940097746 -432196055 --112907724 -909330235 -951192711 -50687832 -81941262 -924512121 --26155562 -100685701 --565426789 -364184676 -501438718 -467924743 -965632114 -866867615 -323507645 -700786389 -461987431 -543088797 -190596673 -904265037 -387493088 --556249977 -305385249 -974115704 --823832346 -283072503 --222676179 -619413337 -509021188 -535323928 --955244289 -495074985 -436816398 --805581653 -514099787 --556965541 -29686202 --754847053 -833633069 --953865379 -527185555 -125174206 -718460049 -492445651 --340765102 -866667280 -965561588 --171092261 -820307528 -702259601 --314248354 -705279582 -227403386 --143182527 -29204975 -668073488 -303696916 -432680673 --778522320 -689374313 --867728698 -318960495 -577316480 --679830963 -285575172 -811620865 -792459155 -328626198 -496840016 -622625391 -607875450 -530157088 -2682455 --960587901 -102234682 -393451488 -301820886 -748722506 -791233757 -156587282 -165612241 -766313435 --186115497 -574551975 --993723359 -351370103 --582040739 -691304332 --433161219 -961901203 -652157041 -942917177 --32387615 -222232562 -997533057 --428702315 -610166592 --712281944 -900887944 -409352140 -957819823 -883267714 -385264143 -353712810 --916898062 -994974310 -511138187 --354494528 -384567474 -458297415 -115547318 -944495840 --385015766 -682191373 --521984883 -743034681 -767125095 -588775617 -398845688 -898650361 --665454793 -365898309 -722396165 --643969741 -363956321 -504757649 --405345197 -430443147 --862965346 -878254301 --378302564 -616264471 -155393830 -689374769 -175829309 -501153314 -308591796 -522880232 -594631861 -805315488 --469395511 -765843266 -858403123 -347288897 -283235233 --196816234 -318266971 --548587273 -721908201 -844449327 -52934657 --982000116 -948870183 -433125700 -434211292 -567323786 -639018742 -750562059 -436187124 --497309502 -986573404 -813636446 -520390451 -178636246 --198266213 -164679290 -170457103 --897527105 -583383587 -486034576 --216255163 -787160480 -70294876 -152994859 --317502874 -851316842 -534013719 -752719149 -235351288 -251659158 -875865694 -604900976 -327877095 --704599369 -941316957 -277575731 --72366313 -557793593 -576959988 -230559682 -375819754 -609266765 -247331042 -499539306 -703477383 --51307972 -437410617 -123199271 -903893093 -561702311 -16412990 -783242399 -523269602 -355260181 -462019978 -149461161 -736366450 -523998621 -72521471 --157297430 -119297971 -978878710 -373423182 --39594758 -980961792 --926712576 -352859969 -715253034 --389839354 -642912206 -139951925 -905406357 -921001105 -836395097 -202699660 -555051284 -988103371 -624551152 -559569497 -528260060 -102700716 -192409397 --590080187 -346710435 -351824689 --547561818 -821939811 --80310699 -324808725 -886670039 --41925292 -587719093 -757218278 -765745797 -206633663 -502405577 -575695876 -458443638 -173253118 --39284871 -450751103 -386677808 -541601770 -114247459 -867207392 --819273878 -523903937 -595061229 -118425086 --252698096 -785458720 --663053550 -752395790 -259922395 --848914657 -569311299 -661708625 -996451290 -640122175 --774275363 -395838525 -485024481 -68511769 -427926361 --226766174 -619473452 -31254332 -927571866 -407971478 --940242363 -418285421 --419915409 -512712834 -296921613 --331455426 -858478791 --714607851 -694923830 -786544070 -506335236 -877504894 -984633419 -814526378 --631717859 -665216292 --195684356 -751267679 --441570861 -841582711 -338217595 -613672718 -479923531 -409617354 --66631129 -656460650 -590145553 -130525176 -981368 -370489128 -139154567 -143724779 -67337391 -276829193 -224681064 --9584848 -258322129 -685225030 --897301309 -412407224 --943580991 -760789953 -335082046 -894221728 -751614629 --571250138 -352667308 -27299775 -308483810 --631907627 -658477203 --194792114 -644705731 --581243264 -852302218 -31117390 -517378291 -273012324 -837858628 -588722205 -961418985 -448926504 --834736968 -892043309 -559660911 --798418573 -911724579 --117191772 -67420236 -816578938 --84220047 -967437064 -443933625 -20380178 -21130950 --453044176 -776067934 -120167732 -28743924 -695715195 -598706713 -756906024 --419677040 -390826587 -584802043 -210349504 -977071371 -488378398 -918898610 -832583021 --294672624 -222143206 -89656818 -221839745 --890158296 -939879176 --79288902 -618211356 -866068454 -648146971 --762853134 -269732768 --784844205 -449810094 -388075211 -534914494 -287725254 --593127656 -900767587 --747839352 -570673583 -375526142 --771752500 -965430686 --322736183 -534037100 -637227138 -719028117 --250063647 -359130181 -699952946 -783706013 -576484102 --712531603 -789557823 -462222241 -517743503 -944943399 -623847908 --541323924 -199558897 -994646489 -296007189 --384264663 -569199822 -476855896 --86664080 -60392146 -659982168 -42041414 -341729948 -874681728 --103083508 -884909153 --858547042 -527553032 --436079837 -455693356 -273262166 --757418578 -881811815 -472590957 -719038527 -922961651 -307516193 -595848271 -517573880 -976525112 --609894104 -183033833 -63692969 -39298247 --252244318 -344949494 -335723379 --760690384 -131738893 -346369556 -98586951 -41832150 -215726516 -403773632 --259264707 -598812266 -224889097 -973904159 -129754251 -925314535 --104076879 -294997687 -968873487 -402223200 --366429242 -603903503 -348724383 -904986057 -316941901 --447916293 -546303516 -938547513 --862429204 -284582867 -651999977 -906465201 -495622384 -178331187 --877087705 -158051858 --982668025 -87831775 --77101885 -355715399 -777379862 --18098219 -372548261 -38353741 -124611268 --696077633 -641457146 -441786407 -675267838 -945164702 --494622910 -667790109 -329173741 --188776390 -900737070 --941822354 -334777687 -999183678 -492805916 -158142882 -19077587 -458401308 -373989552 -701682104 -787503605 --346362809 -481396708 -792370763 --437051822 -874651121 -23148603 -578838868 --587141737 -182787162 -107306031 --23688461 -685287475 --929839446 -940621207 --848666186 -326305636 -672307179 -766890864 --445273340 -331641178 -229715587 --725050008 -828626109 -584809874 --928205890 -855702160 --167389207 -722011401 -539401759 -343008737 -46597460 -241276664 -907115649 --817157440 -998532402 --496712273 -646205209 --425239889 -11511264 -959356366 -779512202 --922084105 -423331125 -547157424 --221839745 -147493119 --737194493 -331747552 -272978527 -241376707 -102779768 -278523007 -367840325 -882160203 -707196219 -646471231 -43856542 -703754295 --951757339 -5379574 -574511437 -390438770 -171142536 -534431485 -310842332 -927052308 -948259872 -346135196 --102224048 -390874858 --275587379 -727733814 -66608286 -331459885 -834891248 --322269152 -16714694 -784656144 --919208169 -936454355 -538468204 -459110163 --287076277 -420352337 -228211220 -233651072 --690227949 -777973130 --290459977 -485414807 -157880811 -127627718 -112252068 -402330811 --102234682 -529959486 -288879855 -321830137 -208912974 -306335981 --45518976 -810538945 -50346322 -247310292 -712197103 --767413421 -674422025 -747856721 -868279366 -119575334 -540472499 -335385168 -551784961 -414252277 -84950865 -668222837 -361093543 --362263484 -804502433 -136231976 -986542938 -331989442 -992476081 -722145806 --425659242 -290516940 --160956958 -246654927 -380186178 -241546277 -41239443 -59103469 --95700211 -70301233 --607528466 -954187777 --646541706 -456140234 -335931037 --28633370 -318387684 -681448649 -884910986 --935855540 -293763780 --840536626 -421371395 -454940782 -501757592 -805614774 -129115605 --59649369 -235738953 --91231465 -354972240 --78105022 -124659764 --194633522 -364933575 -297586205 -876614627 -178901780 -544297961 -345810626 -771409884 -858735045 -284081216 -279516928 -480230350 -330872379 -741419272 -152440810 -609405333 -834021647 --205488466 -715490606 -225622805 -169702479 -183542728 -248531791 -531813443 -569244500 -483239090 -684544886 --6089873 -251856481 -765739623 -772434537 -66836305 -422683336 --651130581 -494875645 -755791302 -380777253 --557806995 -508438692 -478466032 --472354893 -253549791 -801294662 -275529119 -732594401 -711046796 -662247568 --471599492 -145549133 -37310487 -747947901 -704895904 -428217156 -552968274 -671387166 --73887115 -817374879 -477162834 --748296544 -250936485 --424224332 -685192995 -547773230 -166916647 --767652220 -342194883 -844471814 -516339456 -692843369 -498157881 -83500295 --954391994 -174678910 -515939424 -577455657 -9077471 --995053785 -130537837 -51479714 --394118185 -941581528 -775112991 -437949331 -199748559 -944117900 --832406008 -493954266 -647344794 -446688853 -431722397 -174275389 --166082907 -962978245 --460241428 -68484949 --447750086 -109209509 -408119457 -698136498 -373562486 --172293860 -321691520 -265938065 -571283012 -354480832 --539246319 -419585967 -639206633 -335590270 -731657141 -422622847 --245244473 -600762929 -268894321 --205559616 -225749868 -391766802 --404204102 -400873962 -332077890 --256370231 -117283327 -888605342 --734421095 -7474605 -840399378 -404561788 -678425584 -516131031 --64295030 -682911511 -362496414 -401627418 -228881987 --341830673 -639002575 -541216274 -954638407 -299919718 -974300003 -528406710 -329857631 -939265457 -743634999 -257206726 -24794405 -437263929 --358400697 -832432746 -458641612 -964878906 -885415585 -961374968 --74250234 -431858498 -254388189 -208259258 --585187429 -694002305 -622424564 -252338439 --764971344 -946956739 --178153110 -90195708 -445598584 --668584357 -463523143 --667215508 -443293558 -179559381 --897580407 -215650924 --462892157 -297043005 -253901459 -157246193 -80278096 -175355519 --71362368 -276833924 --538185131 -774069398 -209486714 -977672148 -797016346 -680659744 -961827189 -135448029 -192660969 -195428693 -397302102 -532260159 -542149220 -975842745 -13218091 --324145358 -143686248 -776827693 -4128966 -211770877 --349609895 -374981849 -767597498 -65400009 -987359430 -277864470 -751621061 -372804883 -38355908 -227091149 -601820720 -685997149 -832726734 --128361682 -630100479 -321399663 -415426250 --473831361 -33817469 -600868209 -893045337 -96995991 -800332729 -305865712 -49191404 -372397975 --95722633 -147428753 -674192809 --287519605 -850907420 -749636564 -871992678 -762247178 -803901812 -161318047 -888158096 -946017534 -903649082 --995567355 -484049097 -767352467 -470275402 -332717792 -728891664 -705109159 -975608820 --212087363 -626451777 -445550807 -496253341 -690598536 --602071468 -11165068 -456057892 --305985248 -233577736 -86789642 -344491272 -952320274 -526242411 -824217347 --416861706 -901065968 -77674377 -486681309 -32242366 --351013617 -721460687 -753603388 --495307938 -779695790 -850316529 -410011811 -466427628 -381594178 --486154427 -744236484 -301668300 -666508248 -905592222 -292106969 -987667975 --210272817 -400264773 -497792462 -410900941 -265997853 -514028151 -613977253 -577501569 --369259715 -770644507 -207209337 -310839646 -211980947 -226503636 --430516099 -814314570 --157058190 -52656354 -430157607 --11564160 -106121431 --791794835 -825605234 -369556183 -402997398 --919085435 -253581617 -636595632 --67110762 -884951612 --748770783 -568698056 --602424178 -267339394 -112146139 -271628769 --66245479 -63021222 -628977055 -309303688 -974790119 -140039710 -481038403 -771301844 -626893375 -869872302 --398739463 -475704421 -678605071 -360258647 -372857510 --425135194 -913007997 -853237557 -882396502 --694468243 -195625974 --740751518 -478127507 -863549656 -161283187 -542386119 --750724087 -260191268 -851479510 -523389578 -887911097 -639219783 --732833085 -378568600 --976686198 -111988163 -847103787 -647769542 -19875140 -43784932 -3655556 --592021382 -267128254 -6263649 -756389667 -326539818 --441024145 -694914837 --523704045 -143327982 --815445251 -98007076 -4795975 -882855972 --999891255 -862444568 --129141477 -684690460 --330807316 -924545218 --645864909 -896636293 --595208923 -990717370 -866848599 -857251893 -518962597 -203917037 -105808880 -93340160 --157377053 -325790199 -472087247 -45297937 -10052206 -761554939 --310599451 -523593535 -534965640 --974855301 -220807901 -489076345 --701631760 -835374331 --469327590 -311237244 -909261931 -243631494 -939003578 --467053142 -501182440 --635220190 -580261670 -789410383 -347513537 -572397685 -533591767 -723306903 -975444713 --266161592 -435638143 -791151788 -292930558 -790308404 -551057223 -529045238 --867816472 -217302069 -467250037 -630567534 -244267769 -801654 -986946347 -58644387 --761764626 -610470317 --142495104 -230495454 --107309837 -386704185 -614722190 -687253363 --616303062 -235228597 --895819085 -583172199 --396065418 -113288642 --658144866 -925357970 -626495971 -393714089 --814674505 -443936505 -415878635 -493239214 -110185218 -762299681 -511870156 --723290038 -373305449 -971462366 -708283712 -863216284 -67937934 -203052675 -118849304 -331221718 -602355585 -47957624 -523864413 -717465397 -101462592 --602496589 -569976391 -722991927 -922736597 -958853313 --178658526 -384507756 --288779680 -902469590 -854295800 -105221551 -549754298 -644305866 -779878046 -242747028 --529753041 -343587163 --953627781 -657975399 --125706112 -717421807 --876981319 -555137613 -910980265 -349428872 --899975005 -482020689 -773680456 -259107677 -890475028 -619696509 -771224752 --597820331 -442636595 -565332102 -554525103 -402695997 -214357117 -587863928 --18843137 -425410042 -526261969 -481726746 --548725595 -350127776 -794754153 -354470497 -444413954 -872778740 -494054332 --962540233 -159601896 --477231158 -899355852 --997887285 -583730373 --82982692 -382600435 -425698207 -809820268 -803705230 --776672257 -76975536 -419316479 -89887264 -589985599 -62139039 -513575415 --703518707 -800862460 --884850066 -11976567 -605423883 --992364452 -276102389 --512973172 -397418481 --387592438 -139224854 -823486065 -196937275 -97027972 -647771137 -833187625 --590393560 -295690973 -768791575 -88688058 -772630766 -441610267 --440104060 -943987313 -747286985 -967926004 --687586094 -288097319 -685980746 --338315009 -446373310 --942450024 -61521761 --616152086 -8689249 -815974437 -907173973 -862382139 -472485716 --860188740 -325762089 -117872933 -234518808 -159506273 --193639983 -411723725 --557487502 -377754411 -459515649 -372222428 -95137697 -389990031 -968158034 --398154989 -125676746 --897342023 -880062909 --300228947 -945452803 -613472992 -842036191 --80342310 -538598069 -519313767 -846141613 -891828103 -708560431 --873085066 -254576786 --179039123 -951248038 --660939719 -657273225 --378821102 -144831581 --461178020 -668058576 -454527667 -244641061 -472743780 -856865271 -772797306 -796957592 --794078522 -483424091 -668968608 --618670292 -694727972 --752302164 -141033174 -401778228 --159378596 -863352024 --254092168 -813373717 -692977251 -733826468 --821045327 -535046430 -430474359 -52059679 -506257477 --121288132 -858508785 -831142063 -75303746 --117502190 -883754472 -2486227 -678835744 --999547250 -913728162 -81077567 -389191533 -134133774 -238602180 --79583413 -812565240 -797555079 -605596524 -864440834 --332077890 -603317755 -94285427 -516681177 -173911128 -395491319 -309580903 -75687939 -621389025 --724360312 -161405228 -915803008 -445968831 -881324117 -762237642 -339391038 --148045922 -549059901 -140115849 -55111661 -146491809 -834880769 -146339329 --773214354 -82919905 -342593382 -796259381 -838498260 -872000428 -722803985 -984236614 --585301301 -145855295 -108236927 -273013314 -478891094 -168377719 -637287097 --317852833 -966122950 -888119420 -121817657 -51484823 -550591469 -749797055 -773122513 -165375735 --885587293 -948854549 --929096790 -355429392 -922086397 -889021354 --916433547 -662875019 --655503537 -162955224 --467682880 -475940645 -388481509 -792009889 --20502884 -287724684 --822966009 -762113132 -292102403 -913003886 -413710577 -400690208 --428051178 -969236988 -863377883 -681997305 -826494008 --851193015 -720244608 -444931345 -919372048 --896622177 -891802907 -33521415 -225439547 -804648472 --25044373 -415326526 --964787071 -261653453 -385563804 --752528508 -791021828 --97838134 -450959922 -135087873 -169425521 -776799065 -500835930 --180269079 -606111557 -251946352 --416407473 -188226522 -41458658 -998736965 -211555350 --387635377 -526031980 -555085878 -276473758 -395805658 -515319459 -684563531 -445743301 -894160452 -956959806 -81731116 -640487551 --374494219 -741924316 -974280502 --676339102 -45888084 -421312056 -679942161 -875440562 --57687480 -363478852 -351035382 -419987706 -812760856 --518731046 -49101359 --578703107 -528290528 -361261040 -782771225 --112843510 -986106253 --383114673 -527215645 -361374343 -436761569 -225515004 -554780369 -933197677 -941356046 --574586276 -760925848 -277525499 -724660508 --241320472 -154913631 --157406712 -722935881 -419505209 -708328532 -924501565 --70853343 -364109214 -491151277 -102616056 --983115552 -709560099 -594262295 --693149760 -869902093 --869026661 -841116594 -742363559 -176548468 -383848551 -383054388 -140631520 --565037695 -86865693 -845057828 --320784914 -248096264 -68464329 --469112614 -699132296 -790995743 --196257404 -94733978 --279044952 -939811394 -175826499 --775335954 -713054748 -411912921 --875402847 -811480071 -177773541 -912880060 --128356637 -258723985 -82317899 --475042082 -384270888 --804168375 -611110986 -118268979 --163340837 -949135774 -953522248 --413701093 -852541624 -713383235 -211872213 -714329988 -343179521 -659098652 -799860395 -480830915 -68669118 -552394162 -449848367 -827110175 -581474888 -673293141 -796582232 -608056468 -256735284 --978036797 -271161156 -222091634 --683525979 -366598687 -958556795 -958186860 --98364053 -502930152 --440804509 -250995172 -859885286 -859278957 -522803939 -485709701 --845974299 -613022519 --134559023 -526234665 -47323976 -470444144 --176048909 -505721640 -372290569 -920101528 -801838824 -874057311 --330141299 -290626570 --139569895 -725076424 --363110697 -129023014 -820440979 --216651205 -969804402 --781066392 -126035607 --493575623 -836432992 -140892959 -390588665 -250787509 -77943033 -128503767 -746820829 --637035151 -326566150 -985287089 --308558351 -490931221 --422694897 -350912598 --734684834 -989675597 -469980998 -916464294 -468827965 -737958051 -98058049 --526198020 -200257086 -277557604 -686168114 -957790143 -423688647 --351807738 -430377755 --194783068 -581957104 -395317926 -545752778 -156291788 --893193110 -236112495 -650211568 -725936317 --858039702 -682419167 -261460195 -574392438 -793349847 --537300145 -772016992 --884717817 -208136181 -483790585 --593324366 -864704505 --570177963 -508097902 -906249904 --517091747 -250543856 -850598204 -261797681 -337819200 -216519891 -491293764 -617199227 --815952933 -428104057 -330145281 --63824870 -70534404 -979823555 -735172806 -749552715 -3393043 -298510410 -712628264 --408120999 -259552474 -790577325 --790132472 -301223473 -153122013 --828999922 -437351055 -200408780 -887179895 -949576006 -871145534 -166453015 -155263769 --395027200 -109016200 --65141687 -227620997 --437279410 -392104489 -647963295 --105503893 -266892999 --486574307 -489782396 -722292812 -389968188 -102550259 --962936055 -985029896 -6540754 -935219302 --84184269 -828033252 --567113333 -236642111 --815794482 -132666033 -474711594 -333243238 -914140871 --202414467 -477879012 -789078602 -603263726 --249721430 -644070468 -276365798 -933444766 -147905428 --565819505 -449113935 -573279687 -51246240 -526319113 -928914983 --153038509 -994215858 -643472892 -64857891 -452274669 -141464427 --649016224 -856886386 -818612028 -116262079 --316955764 -655560785 -11762499 -34778668 --474307151 -30336933 -786852856 -69263037 -480002551 -696020024 --851827722 -838664685 -230527922 --290626570 -495550983 -578389789 -954802782 -517047712 --997069619 -771223872 --334717107 -440752363 -642535344 --380456006 -768906591 -338831300 --345666642 -463447768 --520592677 -961603541 -859875985 -904662821 --477232107 -142060438 --907425275 -537605473 -698718998 --198101210 -459332548 --905083018 -768111967 --216945660 -519926347 -705820384 -484713195 -795953726 -740992945 -886943391 -105361258 -372526963 -726253047 -539561191 --314156260 -753307352 -221752405 --806313253 -206864182 -49956485 -601348605 --40163569 -556555551 -762695568 -446543428 --680813245 -912454387 -632062419 -113480647 -999959430 -754116579 -173447850 -184638994 -848169560 --572428986 -593522701 --482353807 -37371929 -977489766 -967290484 --341596369 -768606307 -139548601 -489546518 --836556467 -297679653 -820257628 --663168006 -955583981 -297215943 -43926459 -461906272 -68933970 -799998142 -453128341 --281118971 -51958390 -545164092 --729358753 -243214992 -279792126 -782829370 -506055030 --466743264 -938373156 --4670941 -893386911 -817167790 -773616932 -644832235 -546186958 -539577123 -618075871 -375472699 -164716445 -929050917 --934391755 -560400549 -664624159 --979145895 -234596874 -750591499 -226310652 -112620620 -591609999 --392360012 -291285601 -411419647 -628799479 -242301396 -429109838 --458187222 -996144284 -829163103 -630867003 -673818585 -520454566 -19392028 -631420911 -151049032 -659274542 -988732117 -925424996 --464291125 -682506994 -581783269 -27990730 -375730476 -431681717 -738554612 -147372483 -970801349 -816264069 -220019295 --805905073 -595478921 -168017478 -27135567 -417011887 -375335193 -18800529 --783242399 -973005326 --342440411 -544151684 -156021648 -640730092 -466523812 -99897350 -830183989 --854102453 -64156593 -296786912 --192365680 -195940580 -401073125 --870324545 -98167076 --607077912 -942546732 -840568684 --490065135 -832196308 -818195139 -129558429 -822775272 -120976207 -31879091 -898878784 -648217977 -547613697 --841125467 -701660023 -688787876 -57885106 --524847978 -702224909 -11602421 --970801349 -29575643 -611715796 -582507779 --520179746 -974646461 -301687292 --305890370 -610949376 -975132107 -479688677 -77351742 -742699213 -830229860 -294570116 -784970515 -119808785 --150532472 -703969664 -491741825 -74018286 -928403545 -397917599 -644893919 -492221922 -524676645 -786740361 --612124657 -527731836 -53930610 -368296281 -550471209 -455565670 -937388999 --382675217 -216053280 -775590867 --833461410 -231655718 --907059318 -221373026 -7539284 -81392491 -84897519 -89649482 -504177795 -677363383 -652876186 -806123428 --796096671 -126685199 -976778540 -401595064 -85320672 --128338001 -695649112 -87151890 --726342464 -981904497 -208671571 -57235242 -273675170 -13289070 --335254950 -588331510 -674373180 -281486300 -95284924 -835205611 -266222801 -266852314 --275822941 -542590692 -962996119 -217503454 --669122067 -896593947 -61658604 --991555091 -949185627 --669376947 -185848418 -294183841 -892284820 -610565026 -937183390 --246191025 -792687558 -740334598 -278431207 -505424461 -28960106 -460942226 -573588911 --583730373 -148504282 -253004050 --595650742 -861748363 -593227026 --884260203 -505613321 -697618821 -298563013 -973032403 --548328304 -67947458 -336861550 -925370432 --685480173 -725158399 -487726792 -661701615 -275539187 -733623021 --478667122 -451697228 --228869746 -930222825 -685009001 --422512596 -331922800 -406066277 -598655138 -933824345 -272608814 --850969877 -355583827 -6379885 --738085178 -765636954 -898290960 --80422896 -373348547 -612382243 --432719506 -683335820 -521087778 -512148939 -293982201 -180073660 --361729873 -431684209 -667585190 -486063674 -701814528 -921603500 -803886098 --920443617 -753295723 --425527829 -433602534 --322176542 -729412111 --381818263 -886387963 -602678626 -880859887 --572789421 -822045052 -247908468 -123446899 -891503640 --233445611 -390136164 -180312475 -698070633 -317749566 -630327074 -849751520 -230729357 --396057892 -549524128 -711828406 -310471521 --927139449 -517662315 -299396261 -331710181 -89165386 -883346457 --902386412 -833578642 -383426644 -63041295 -13582383 -737549359 -602104347 -23569809 --338543119 -716999827 -509808845 --247543038 -776598499 --235486427 -758113712 -894081749 -31047374 -642058908 --915607028 -347790826 --856846038 -247823658 --541673285 -839482445 -148053289 -870420864 --49304592 -741290025 --366921472 -269956204 -847973215 -535377992 -878255367 -564002849 -843075752 -847198189 -21409706 -399563807 -263441900 -278053611 -577199546 -745212977 -267043189 -757285891 --281341343 -270667733 -87786042 -188508384 --931656779 -23881460 --114630095 -256539237 --940373216 -569905922 --887766888 -3447806 --228956775 -370078997 -917213115 -276625699 --981700706 -767996698 -450781086 -308524763 --761144962 -958307487 -501194889 -210868566 -509196333 -914673648 -725208475 -574293983 -968461863 -610721631 -731670909 --924321975 -727788697 -807547039 --959657412 -951943223 -343458344 --627610059 -306579975 -754036760 -274998810 -418299456 --990880025 -950808026 -755935330 -122113610 -826951043 -241800780 --207811230 -232570258 -731587943 --19127249 -95859896 --749898432 -210440187 -73110629 --895782962 -916149842 -390274588 -308163069 -190143410 -761560613 --982734074 -992136067 --51719548 -477050265 -818695665 -60376326 -265883925 -394682693 -767228559 --144126219 -168572321 -19759130 -255323236 -584355818 -141864232 -678987935 -619438009 --989529919 -799639420 --263111439 -941741474 -736967630 -723586765 --9456518 -726657990 --655507149 -525874796 --911850594 -6552561 --565941939 -862222382 --859235889 -346690186 -659193432 -429994368 -837113906 -993574894 -39316190 -527035139 -510112651 -817738529 -871889554 -764804542 --394205640 -741617235 --755386270 -405250646 -544968271 --483785382 -500580952 -735663827 -987397787 -58726443 -445700046 -446987572 -394314105 --792242244 -970647761 -376415083 -734063932 -705588686 --57773611 -215341582 --794966692 -420804402 -553388848 --859372539 -316097899 -320994994 -60577714 -293669699 -892772437 -71492799 --308822435 -452808364 --540093527 -19387508 -243959877 -897121986 -391359038 -596163550 -242070443 --674957620 -800933377 -33011242 -240648481 -760162486 -638884607 -287329519 -328166708 -265212960 -237036380 --225757481 -859484099 -881822948 -719990295 -551234648 -301113115 -50765961 -116639216 -365371107 --399306871 -413192222 --90605817 -124067928 -799365870 -42388364 --8049412 -280569955 -551828576 -194397511 -161529640 --429579417 -993924623 --472958655 -527409087 --367442799 -491347552 -340087763 -795594605 -716929805 --970136678 -359868449 --856886386 -975839102 --640209618 -119136312 -389900343 --689117529 -874994899 -988641860 --672913705 -771173095 -212958494 -402620378 -535988213 --15298796 -61401616 -665312803 -794608092 -679379870 --51944804 -369622929 -18656801 -585878060 -648875746 --309951149 -154513357 -845317999 -954381768 -242307887 -119077505 --841175776 -105994766 -352992986 -53104332 -659007708 -174088601 --51697307 -48238378 -428069710 -652610466 -300696910 -232364691 -350052340 -317284948 -472280331 -706331869 -353180579 --172065654 -726423661 --143327733 -12387245 -632594478 -887038144 -126797593 -495975873 -489295408 -456327848 --315359793 -814830663 -499478995 --776071950 -893021893 --207515749 -938520584 --828033252 -849872916 -342041584 --12572713 -137526916 -339209054 -359550090 --880019735 -377033566 -170574250 -791180937 --956139440 -683955095 --912768112 -545262774 -621929931 --491744719 -641783636 -218524653 -947789556 --525201117 -281199010 -142410104 -578840623 -711981479 -438746404 -300277525 -145434164 -518328502 -22085381 -921138332 -712620703 -864393161 -697735635 -660516847 -100202761 --860931772 -313389861 -519205634 -408143962 -951012809 --914636942 -669884351 -147290411 --414497657 -933212850 --422047535 -608847298 -329392743 -940099659 -333811229 -965908528 -631757954 -810140220 --291104652 -638486850 -800918560 --868165404 -370953213 -934691147 -720138249 -829104953 -689697513 -245180419 -488607468 -780584133 -353572813 --792569988 -416290935 --632048397 -890074442 -95724920 --724965334 -913400431 -454395366 -779160320 --690271413 -601998556 --297773436 -348729448 --604924719 -367336788 --879999278 -727105597 -550944912 -419485563 --822309874 -752016860 -774407796 -976774658 -797047340 --38238947 -10282014 --476150736 -42340620 --220148507 -979447854 -563173608 --282208130 -342608958 -476277758 -41386845 -553289293 -16413256 -196178627 -661994707 --819992603 -492606208 --215919463 -737149679 -867912502 -469707658 -966739675 -401420976 --454834461 -380128961 --516862889 -14336882 --814425333 -176239481 -699025425 -408902931 -371957728 -803906039 -334836178 -408169549 -757894993 -565261772 -525128221 -359018767 -984398946 --697326498 -601068310 -117470694 -609321845 --491062650 -357377304 -535313335 -907421544 --961579103 -769281287 -730040750 -396534999 -1649538 --172339842 -503799413 -979809737 -152192141 -529322068 -336079125 -147183477 --459491369 -176921229 --134556489 -832707348 -199833955 -759426598 --6994621 -940667286 -55084809 -679365719 -322682902 --56280891 -503589945 --7293040 -179290202 --551877712 -351106372 --907949023 -27530352 -49099070 --759301913 -998882909 -166722350 -359505330 -802488605 --634324161 -575328661 --667913720 -393991228 -822190515 -390544997 --295979292 -369332907 -552086080 --350482815 -766733852 -448724479 -823371216 -18770465 --29448478 -659534435 -742807545 -962636132 -979839565 -19368795 --624907624 -961264647 -830059427 -917787870 -161795807 -817623109 -392866913 -997242028 -862018395 --104517876 -109986341 -125881030 -723140797 -236491303 -957947340 -109373666 -205878988 --574217084 -693927522 --532489015 -475852094 -911500687 -521209490 -667153007 -96140226 -839703994 -992917678 --832360879 -781882552 --843911887 -725984052 --288219858 -891153416 -404351495 -648227844 -505785935 -372585846 --545734710 -474293248 -433930433 --540499224 -697247902 -20921633 -20025204 -896296963 --372371705 -354688464 -189695211 -604883596 -87280938 --247732581 -31136158 --753783835 -879986510 -551445348 -988784089 --278901251 -518268404 --774247240 -737915215 -741124671 -145527902 --568350781 -954783503 --358363380 -233891081 -781722368 -150569557 --901065968 -640533092 -236491921 -647613585 --336488820 -336112927 -274668214 --950118050 -195528716 -172443070 --883141374 -142352293 -209382081 --184458129 -962686105 -422793383 -994092564 -934389757 -716776204 -58818242 -973751467 -668282265 -950788606 -957961343 -831447565 -219545832 -592741486 -848432369 -459474805 -985731818 -59243524 --914665716 -825949966 -817083488 -904114877 -84762150 -551566291 -572650278 -870669573 --828129134 -50303230 -112940512 -824837753 --501806861 -867863372 --551353636 -487294551 -737701419 -759239860 -264673896 -519367409 -557967609 -357435863 -901139202 -493275346 --348598699 -666436733 -263723385 -800293025 -134435597 -205430826 --995246025 -177852191 --953036440 -790565986 -998934913 -108182313 -564931615 -345578587 -252418999 -198645905 -652140072 --45127177 -428538417 --114693116 -885194605 --164531445 -969285424 -550820281 -838019248 -787166054 -40081497 -541634775 -310710548 -106065470 -176036539 -208346985 -279779711 --631833934 -329596535 -575067703 -355605247 --699567231 -536252875 -882855347 --173263359 -722843893 -768927377 -619595141 -816347975 -206308728 --58162970 -555111386 -502659246 -463106221 --349684518 -925852472 -890882109 -377073084 --791879833 -750076556 -811968870 --458213450 -100774869 -85998121 --460662883 -104070417 -202206641 --761838904 -608585754 -63409430 -641903801 --499775516 -590292122 -807537234 -540320642 --163943462 -218873686 --826443681 -815294072 -721425210 -929060661 --163043230 -849673593 -234694041 --149766870 -776606467 -2324287 -326847829 --60199009 -886340278 -566480675 -551362151 -854388988 --230538366 -854093933 -663732407 -763477440 -294313578 -869035603 -576390373 -228827077 -982855032 -340451391 -374637001 -459239678 -299913487 -511304734 -716467592 --19163744 -621198120 -278669243 --608372032 -701585765 --753843969 -713108253 -920978924 -674681893 -116151107 --610606594 -254091359 -197966747 -353010306 --168255661 -455851965 --848783414 -784381493 -186700810 -686351155 -117745115 -427990786 -871057805 --250943130 -456890503 -187482470 -901221760 -494187988 -589302778 --44316998 -695990673 --107455151 -510334091 -987821970 -1366574 -857485624 -929418459 -990649959 -567470570 -274733418 -218317435 -279329875 -748161455 --844240008 -481352279 -972744052 -822640133 --199018025 -804422236 -99505364 -108156504 -396811164 -403662693 -860653807 --784221014 -831745058 --998471469 -698090958 -10749972 -784081239 -345863748 -390773361 -238370454 --120508136 -366924278 -619527238 -820606034 --681310776 -224214990 -323028894 --182920778 -188009564 -779521158 --457132545 -141730961 -37118936 --756686784 -503039686 -258236310 -790220350 -198439136 -318374461 -488231628 -132946354 -696214498 -425421542 -276443956 --224002623 -306788425 -823083043 -551452405 -530871497 -19469802 -991765284 -154143410 -998446459 -647422286 -167904445 --952406102 -236863155 -832258591 -323694348 -472691743 --829749227 -599870071 -902845727 -89972054 --215203954 -306645783 -882225031 -551846967 --557967609 -272317085 -909263600 -190265632 --914717002 -848147940 -828196668 -533530776 --834894390 -58699048 -965944772 --890326638 -733321885 -699469331 -140085872 -387224828 -685787868 -441206057 -224599534 -856081983 -3404502 --767198861 -513633124 -204400671 -542638436 -670460636 -621017352 --573756825 -170135423 --881090218 -815714293 --854540465 -293690403 -734754503 --74185316 -378623481 -845823610 -529921443 -948392526 --166442955 -427410022 -216783081 -539358519 -721330763 --760656475 -212762006 -285867671 --698302080 -41464806 -536585650 --703477383 -400685772 -577244906 --817547061 -406503265 --704786673 -103813456 -759623082 -287323766 -794664728 --363821657 -569669748 -969561467 --288547619 -473049769 -119395834 -42760365 --874621847 -303926060 --557793593 -58574062 -710785745 -495121975 --400651977 -623273766 -541628190 -441374003 --452139794 -475099342 --802815449 -877656821 -919046050 --546101890 -43537258 -266656360 --663112246 -250143493 -513682972 --509116503 -551534156 -850074807 -308120001 -1052800 -6353967 --222065066 -694254069 -452224558 --803462658 -509183682 -912601581 --781317456 -395998562 -487261012 -329362621 -989942531 --634146644 -46412376 -266349482 -79461516 -436894107 -329179471 -805890930 -814846020 --961264647 -344718805 --951713539 -190123701 -629870625 -280393639 -955664302 --632495986 -250201097 -610467965 -692359670 -318416140 -36571045 -202278888 --250667378 -823413813 -774152501 -316696103 -261715695 -87500657 -619697354 -433049909 -766347636 --34700798 -93410471 -668964559 -624864490 -51349596 -756573531 -512271351 -98889866 -988718764 -457438637 --813409130 -61297851 --479691572 -285013637 -267489273 --542572345 -856646245 -493053562 -569987020 -274841216 -552278136 -711540043 -378958938 -188884375 --322057038 -58812980 -507524234 -545663886 -979790269 --4152237 -287690884 -967290526 -804463146 -337348371 -716545203 -636431580 -572619056 -875840420 --824402469 -656456929 -944222670 -994405365 -188305146 -508226771 -139707522 -33461834 -738210469 --702536483 -908210739 -31494389 -281075396 --86606679 -575049274 -170887844 -174942899 -176649323 -725597702 -139607294 --951693611 -199189151 -14886589 -689121374 --464317674 -259402540 -920845652 -573665916 -505124595 -54333149 -652074709 -758268027 -495292970 -884560831 --342046579 -729937404 --527057335 -540848986 -972035354 -457084992 -309227217 --654883243 -139007395 -854062231 -718047651 -497380711 -108789976 -295233928 -608980962 -811783333 --743479134 -983959513 -817198704 -462778254 -168351073 --636392520 -519027447 -248108062 -531766478 -766562546 --736378530 -272844187 --145549133 -803141155 -260747333 -130164638 --72015774 -649486610 -453564686 -186326674 -216571990 -515233720 -140580988 -501004158 -219045101 -919525360 -840130051 -381617244 -267329263 --405924650 -380383354 --295995093 -216701419 -456145012 --227130495 -930528786 -836285966 -429012868 --593659594 -852077101 --841710933 -999452496 --84269960 -601259173 --771726687 -222583393 --28658277 -460703120 -503815195 -391898190 --875831188 -773942979 -362130430 -107295039 -402989300 -886267125 -260141633 --10509883 -650331047 -609143936 --882300629 -510338012 -20863812 -848669137 -57247615 --518692797 -942662670 -239604153 -192732192 --725597953 -492335414 --439703989 -546613545 -829642250 --504860907 -432349210 --931669374 -151619141 --979282461 -803691444 -538757446 -619382657 -122099378 -892742066 -276613388 -886174344 --667583076 -664108464 -515353548 --155962155 -852160223 -586406987 -768187551 --938465105 -201240473 -679886341 --729147931 -789869464 -453214586 -184003486 -786055013 -715709546 -330319167 -811813211 -644969164 -469753474 -819467384 -853149767 -417005763 --268728099 -809916257 -458099739 --246130977 -862941838 --826796389 -991923414 -933133845 -608867017 --180235965 -495341291 -101340367 -217803519 -742208253 -701479947 -666163021 --748775451 -794209859 -873084679 --208829778 -68452400 -688934417 -502158909 -350926028 -699874849 -180690027 -467788321 -352880498 -590715229 -525622498 -657846011 --163494712 -654460335 -381074157 --29306359 -989324553 -84650768 -64765115 --127828927 -638564355 -289617269 --537128802 -230595517 --507189323 -799583724 -334126896 -151030838 --817746587 -741392961 --399970053 -683502639 -318182506 --933865058 -93318790 -466827969 -93615685 --321469117 -182572041 -622793224 --244130832 -645621621 -164413181 --317853108 -978935772 -569034282 -585296030 -5605754 -69925424 -656367432 -180897241 -444396799 -719573393 -232353433 --350153120 -47858924 -608665795 -19003414 -788318964 -942374279 -231105890 -855152438 -600559171 --956796436 -940350465 -869780910 -802941836 --773522320 -362748390 -799871559 -741487726 -511508934 --282263730 -369303097 -935251386 -365606738 --94285427 -781957820 -760869368 -616668306 -28634920 -387700529 -423942694 --685944840 -176293828 --861703692 -580269059 --758162381 -298477366 -328407825 --213701308 -983419253 --81049335 -376533547 --585154635 -164321530 -490464938 --796001713 -261078238 --944208997 -498827940 -42048173 --386128518 -564366007 --556630357 -82098565 -113860002 -962354858 -226340608 -242500843 --20984611 -350401621 -306797456 --515736545 -176532037 -265252776 --133281200 -735928002 --472740283 -374117399 -497458645 -568755592 --514813393 -359250372 --97102612 -970943065 -404843643 -548445134 --882855972 -322480952 --705229399 -519626945 -229845296 -736464310 --686107470 -663194887 -711285727 -797686165 -171175576 -235270653 -731155459 -144347446 --542181389 -870242120 --597838042 -856536564 -796539883 -687784197 -343453516 --517662315 -820878466 -217966217 -765243156 --951933809 -483070174 -173865058 -101716918 -960229438 -699848363 --805798647 -282230895 -574249750 -506509938 -431785824 -587908996 -162039422 -26084197 -826017517 -703242399 --152301030 -891640016 --528185968 -426201647 -613821735 -259474664 --440336089 -482634685 -183966171 --472461956 -189014623 -476454410 -246919632 -221814035 --845360122 -821064421 -468349375 -124770989 -882018425 -856682928 -587133910 --613909228 -964727188 --320604372 -549400705 -420861235 -317365506 -212502544 --558704045 -169496615 --648823050 -293034320 --613043328 -218021058 -884461315 -965876121 -761554970 --840041165 -369536827 --81822435 -746975268 -735357897 -398482459 -960071152 -646000536 -201525968 --331112443 -925775910 -474106448 -377375187 --165102670 -374554539 -480595626 --709425858 -363877438 --763665014 -273094267 -772923693 -704763390 -257060185 --278523007 -590372785 -623913050 -829397034 -801509453 --873648185 -842825335 -874140202 -980909433 --614128214 -574147943 -233623790 -190816439 -556581532 -71203675 -646204978 -508917063 --441949031 -962642256 -392726889 -509136396 --688325466 -762784692 --185741201 -729467771 -883429198 -252320645 -749290342 -1578562 -120353105 --597134848 -499025737 -624583950 --722077483 -207590776 -975274849 -450399411 --731232340 -101327895 -573753530 --559105011 -89853575 -668961959 -882404376 -71197523 -28390680 -131677134 -127771809 -822254205 --855957857 -210766410 -672932463 -387517290 -415309129 -866215342 --608447755 -588749397 -882535611 --573956290 -261548867 --585907955 -916627841 -825528330 --721344579 -174430357 --248531791 -955250936 --506052157 -802142722 -875100717 -889743239 --202226742 -69118319 --862349586 -340582902 --823380133 -917286697 -198401555 -16881134 --591953908 -770131491 --812457932 -79230777 -635043107 -477341875 --734158060 -404793946 -389199829 -516991897 -712877240 -1833327 --944580889 -322824053 --282228842 -956470337 --558496155 -123023196 -378711983 -111579240 --583312409 -279216066 -492253979 -496434445 -491208771 -804161845 -248508183 -152195057 -171621898 -203820443 --507836559 -763506406 --273935298 -508032174 -731507395 -632553213 --952504194 -251321003 -169474534 -263878877 --135744947 -309211623 -343453827 --151519472 -513126845 --490313154 -82375048 -84115631 -826130766 -455460711 --435712350 -125174497 -359488943 --560766620 -437473750 -430103618 -682952224 -154787560 -220407266 -89761637 --79675384 -750145961 -887008640 -301057292 --427211109 -77454544 -74237239 -867176121 -541749068 -243579477 -9213486 -140653668 -752819510 -938523273 -355747265 -202878482 --937153782 -917709792 --271161156 -602349373 -455635012 -914391709 --168832193 -683350788 --4389588 -689348683 -319616590 --239502760 -89466699 -987007795 -796446681 -662575038 -711472430 -840838787 -722147741 -820476158 --66225601 -353184496 -997565501 --358174634 -339158964 -914743149 --371412987 -812446047 -806984562 -651785860 -141698859 -10413697 --983266830 -80142034 -790306423 --583078552 -180641250 --981114466 -463206997 -508112373 --803227306 -636477829 --525622498 -320831070 -288422210 --20763339 -981694092 --154602281 -916494622 -830063454 --232237763 -18963525 -505807664 --79958368 -695041462 --732787394 -152344491 --888021949 -231085051 -954633809 -568220947 -384346349 -270800195 -85440948 -259449742 -662796706 -235682332 -600162363 -371744304 --874975672 -386754159 -658988633 -234910570 -605777537 --988431345 -814014327 -212425391 --864880888 -352946439 -463074054 -677376460 --864170340 -426009746 -958816093 -579941651 --87500657 -825732560 -31231493 -128174949 -999323367 --377968489 -656636776 --865327768 -84821093 -165090058 --845359715 -387776189 -554759999 --721908201 -721228464 -63489548 -859239194 -108877198 --234910536 -967462032 --788079789 -170331074 -5669411 -629387287 -717890876 -615384500 --967435723 -858118599 -8050313 -348114792 -458799187 --455263059 -356124652 -526090988 -534459329 -2656441 -90663570 -214577146 -383652040 -302355827 --522569651 -922156435 --404166145 -446397168 -47401185 -420348868 -142524464 --394369450 -722755426 -681879245 --266768474 -456265869 -445834644 -166785752 -893861641 -53951864 -19723682 --19996900 -958166725 -137566416 -544677167 --483790585 -988589522 -926904688 -888894286 -588179132 --215865664 -539734037 -447234970 -957041753 -904523507 --378351153 -578089762 -827298722 --566684344 -326969932 -396218806 -995429988 --999635536 -958312342 -189834163 -419525873 -419107761 --263063191 -327933399 --23578795 -7686387 -908318691 -339821374 -115606821 --275325165 -783820607 --772848979 -651170487 --768481199 -277769642 -837294982 -711496294 -341484299 --360284773 -680089870 -400157490 --119804560 -807999418 --294403782 -516405184 -795415351 -353562944 --642968233 -678639531 -445549848 -571038869 -99157797 -647510926 --922537808 -29579017 -468971836 -461481509 -46925027 -672716994 --477491493 -978115355 -174878605 --236498558 -410419875 -649158064 --337791330 -993363572 -181788036 -472285990 -654784933 -147055457 -477040014 -682379873 --737958051 -903978169 -544484554 --806800701 -528717354 -289559403 -301947359 -637269420 -907995532 -619712301 -84543305 -603694820 -167389840 -129675807 --301755701 -877078959 --336038647 -337306526 -70900281 --904508463 -399263326 -183663931 -619391914 -617765005 -887507402 -566639131 --146555596 -613767677 -772068179 -982633144 -583489944 --284834603 -571684495 -153911598 -244279629 --619022057 -912581057 --90690483 -455385399 -299454458 -766434982 -132839097 -154584173 -167737837 --547739719 -178524016 -10643452 -788877341 -963394995 --178776616 -462467542 --7845986 -136725351 -163131339 -717235052 -137757794 -412480189 -44420267 --461041649 -725182013 --489407096 -271853283 -396063024 --686402630 -647188187 --674124466 -134939614 -441240015 -106054144 -269255502 --706981774 -461584054 --84746583 -287793121 -256494030 --776827693 -153034152 -831904457 -243458548 -503868298 -806914036 -182508462 --941491325 -618680412 -126014375 -154457454 --635778607 -643461630 --818695665 -223435323 -954266326 --911171168 -27482724 -724853937 --228547010 -821626033 -234144472 --320641421 -678398550 -139680825 --418469542 -602044381 --354979264 -967346486 -600013276 --241377775 -898799524 -797445170 -708206865 --214208742 -302373282 -721111152 -492958292 --109828795 -512688566 -840628773 --60554658 -576332465 -774088610 --852726204 -894993493 -379842056 -529936434 --837348638 -415774257 --680757220 -10511153 -433637970 -941129830 -592406394 -501417846 -496507831 -569912512 --858423250 -169780658 -187810838 --351073758 -248886882 -153870615 -43875707 --194817333 -872742669 -419666629 -493854817 -747424243 -913420726 --91065416 -871771218 --326051252 -768746486 -515735586 -148880760 --988934459 -893435501 -230345535 -860657554 -872625424 -918310318 --914892327 -632727589 -654090659 --577679616 -690969046 -89607365 -55511399 --242132837 -605551107 -504232345 --184085550 -399002919 -152327520 -564385964 -789166898 -404234405 -536557421 --77073675 -765682987 -240387436 --797762317 -816468900 -332461747 --613167370 -921474956 --432998487 -331393642 -198119983 --664030636 -670948314 --503815195 -463265649 -192106237 -265352919 --277357717 -710111197 -122398532 --9891814 -235663129 -196464591 --330173807 -589360561 --844023666 -373962594 --295128448 -727546528 -569084510 -150557558 -602929166 -729369714 -693942079 -601904770 --578804770 -639773287 -977085956 --936368126 -36144639 --781032376 -512083408 --728132420 -367726445 -322734527 --322410851 -471744177 --6869172 -819513823 -319415502 -9063758 -942124101 -669459848 --632650438 -585045084 -442577599 -517246589 --937602873 -890464340 -225649194 -655793590 --216189246 -946293136 -542338684 -185531451 -264989042 -518215619 -373775367 --445705808 -618827097 --206171874 -116750430 --747612243 -969236044 -255547477 --255991004 -411999410 --799834717 -504505140 --959168609 -765613241 --362428203 -914238581 -787690073 -436549601 -847011823 --314451865 -78882277 --186479110 -900470372 -703215578 -630887894 --127613202 -475102034 -78273104 -390161225 -96656813 -683191431 -210547878 -940728165 -787186203 --889744428 -94750937 --555259702 -306524576 --913728162 -802363097 -177524778 --485867336 -598210306 -661521760 -662261423 --663863777 -652175583 --529629388 -657407610 -589748089 --28145056 -945625575 -947795840 --859130434 -55114368 --518952019 -86829426 -491126441 -645786855 --61639766 -781357136 -123235110 -918084858 -444911138 --851516637 -270908727 -502297285 -967338001 -893361069 -331165745 --47656217 -799387784 -822230262 -901280159 -795887267 -386152258 -53128830 -212559471 -698404185 --684395133 -836211590 -859977620 -56454601 --712433504 -188054224 --945192442 -813784561 -489826167 -309768917 --589545152 -747510202 -812642660 -822164555 -390758337 --641115139 -976543191 -872700440 -955147758 --228854457 -232806270 -981991229 --92157488 -754079359 -462712091 --472309987 -212344480 -465698742 -373334521 -500075804 --979654939 -481943983 -964758511 -44864068 -314315832 -399075834 --182749416 -411399501 --379775003 -616580385 -313037704 -413582684 -852470191 --945519265 -880467129 --804551054 -693726947 -933248541 -153607169 -21069486 -325327736 --860829009 -276907837 -747569741 --681282195 -352688734 -750119707 -115874888 -481197661 -132901064 -382814281 -376056876 -142284109 --909795607 -268516965 -436536375 -186439508 -351637364 -957597238 -345839255 --750481511 -688692431 --119255718 -864356707 -549683759 -732065144 -908540245 --909947582 -897058024 --627073634 -155186139 -729310694 -145393271 -287732281 --210349504 -71946939 --766075689 -232846900 -294063025 --715974152 -150401859 -421563293 -8564705 -312733086 -308890897 -979615482 -893819466 -73341165 -771421562 -191991553 -574805957 --534146810 -275547986 -239470572 -702686641 -782133254 -63650206 --477615353 -61192128 -919876620 --321790442 -830780594 --670859851 -229638471 -685101375 --713761288 -383567446 --8170785 -934804394 --789970376 -549438 -881910588 --506377744 -478274949 -715651218 -51466302 -142664362 --364540712 -913807428 -83429539 -600244373 -791735143 -324719384 -374982617 -531015074 --762614660 -708768012 -672457590 --954703312 -392623491 -892374836 --98169635 -801553322 -826321793 --195706834 -431984484 -732482138 --224616773 -397978444 -622467049 --64873911 -684154364 -11641713 --556044914 -59121060 -322120787 -807010895 -81350896 -441870646 -900926024 -338622225 -361837192 -851656228 --444254579 -809703298 -80968265 -981682910 -815477729 -107204563 --647845074 -551111078 --510216762 -148651965 -421568419 -752713065 --82433875 -28003236 -878226653 --355441950 -136958167 -312629154 -284349908 -199171504 -883185058 -735074439 -749936704 -437129038 --797686165 -153195249 -379260407 --241310218 -11585349 -714149036 -445485743 --180031978 -588966153 -115779203 --827927604 -251768289 --575630477 -834379593 --943051793 -622089715 -111999055 --627405351 -135038195 --329608987 -205834853 -695465496 -190334686 -939647117 -639866490 -502881382 -955114633 -234414577 --612383196 -316343362 -363268583 --564921491 -628020787 -641170660 -144605328 -961171198 -394712003 --364242885 -309496978 -206227493 --759425047 -81412304 -918958814 --376054566 -557678710 --780318855 -814101236 --224122709 -794188524 --87765020 -951099300 --318203623 -255758810 --574213334 -56472928 --165447755 -737387963 -817542285 -828942894 --399151544 -671117622 -667491049 -235546015 -626140576 -460930668 --231630076 -444805622 --848203179 -322479949 --598693173 -395806607 -617932149 --602355585 -486888048 -789704535 --389579129 -458274276 -619622589 --384546349 -906864603 --935284653 -894009375 -336627814 -549821322 -263070878 -133178837 -387479955 -200416477 -566459425 -3033960 -312301869 -484400677 -607197301 -192052586 --4205913 -448422293 -877415392 -639386430 --278053611 -712636915 -894018324 --347458651 -956946539 --756465859 -154712068 -507692341 --403521162 -391109149 -233352692 --269374306 -127113209 --815128180 -910070665 -476872542 -254639711 --194745642 -989408635 --811786225 -517139063 -407484341 --818711017 -265723425 -206446703 --778020821 -753896918 -117787999 -172491472 --147055457 -363392597 -265177354 -730717945 -978488658 --47804460 -758464453 -262673718 -950623461 -101311952 -810558225 -548118532 -94544376 -504964379 --685568547 -468674844 -472679767 -941323953 -175853541 --560400549 -417633460 --190696554 -148717504 --974478958 -18604487 --776828226 -864014643 -29181480 --417574244 -363509222 --4722153 -138953233 --594345497 -133734681 -848921797 -152438490 -347704795 -641179030 -799219877 -694243767 --661126548 -304674580 -128556020 -509705851 -138701547 -319816267 -838270371 -864888022 --312638590 -654372255 --587197569 -952928782 --433094790 -429946269 -47233898 --600059 -951085936 -340495943 -275680294 -40452407 -466156208 -911127867 -577759509 -750195161 -736648007 --804348467 -368002249 -908316555 -904976288 --966670576 -174725712 -704428522 -13099056 -762370321 -250913549 --593457114 -505239575 --386669182 -878997352 -332982460 --259635366 -204117046 -667411172 -234813833 -11927838 -392387471 -261656377 -252679635 -796996381 -144728163 -172748413 -316611621 -619330715 --727827817 -785459481 -738374346 --524907136 -978660531 --499045963 -993100411 -749676831 -20726083 -308185202 -496466352 -693796140 --789189384 -278621093 -543211421 --864644549 -609515428 --589322628 -849769504 --614936572 -343791774 -748083535 -706805551 --665095987 -418078075 -484139096 --167953233 -822477129 -854163992 -231766285 -475046500 -320482615 -658362376 -628719456 --467518899 -19745376 -413615808 -471139790 -788142893 -706252528 -466253525 -650042281 -935216931 --630036953 -706520489 -462365567 --647082900 -632668598 --502641932 -330072554 --307636472 -503224892 -112436491 -943122355 -34144214 --801461963 -808418354 -447204306 -423111127 --936502454 -699239680 -257006844 -622522575 -636064940 --918898610 -134854731 -114418345 -322921998 -858715355 -541823605 -367974405 -421806400 -703572223 -303013998 -60322062 --986810065 -326294150 --419485563 -555546947 -944666527 --795953726 -199721901 -561063763 -758497095 -842715197 -47236753 --181511025 -368132226 -849299054 -558239153 -991086103 -216641136 -51452819 -116712307 -563757760 -583488400 --294162797 -632695161 -141732927 -551687246 -325222686 -440744687 --138706452 -746229801 --71713195 -194230311 -70632736 -758880386 --52995355 -661434102 -612426573 -73229788 -541970472 --822994192 -16979568 -688769274 --256358093 -977932599 -937309507 -332713585 --140583911 -408071291 -849147818 --802802085 -210001116 -6060257 --646978094 -782053264 -327394927 -912315934 -759357238 -305223664 --878085759 -471942804 -406521805 -61515443 --680061269 -351026043 --67559785 -725032569 -519606050 --825203173 -35795608 -12123341 --596570353 -404930926 --137526916 -59926538 -398501626 -236838034 -935419424 -974681324 -859810795 -522398589 -849965943 -290310153 --453708933 -359718531 -472308987 -857880851 -369097460 -455965725 -239475381 -765618866 --417548900 -436958585 -970662406 -812718107 -315345192 --454301650 -874810949 -757598958 --659553146 -908632906 --832439013 -874453418 --790308404 -229938689 -463204932 -224214248 --850304242 -853530866 -74761245 --779298871 -168793515 -823080597 -757089766 -918830122 -942934713 -467654820 -87164485 -237563262 -536286654 --226613694 -164384530 --276083550 -512406699 -530449803 --47621535 -207968305 -771475231 -647572883 -74616397 -922873914 -781360879 -865179140 -876606262 -889802822 -210075179 --322824053 -657664485 -464342892 -764608416 -871852130 -682374431 -308788055 -489091264 -235587955 -863769158 -707460401 --586562171 -622201451 --43105674 -484885743 -690737959 --176967903 -469636104 -664944247 --948825989 -356526346 -445054520 -137161014 -938913701 -2444746 -114904118 --222233250 -948103712 --752952108 -765481706 -897626422 -471883701 --343153727 -61104241 --123966662 -305201708 --860677768 -862896124 --777394713 -145832815 -148664185 -603981814 -938259035 -158223457 -462555821 -864982484 -269751364 -626899808 -280622399 -73252840 -378003818 -48384743 -118414374 -690271082 -756664746 --153860411 -897451504 --980178228 -715012014 -931459003 --872410018 -429628341 --144898120 -311874689 --341125747 -141157598 --100811636 -300151498 --275801897 -313073624 -717440887 -623500228 --961811826 -858594609 --277260885 -415339442 -453839878 -441287820 --501580331 -98872823 -494677390 --409617354 -969966448 -628841018 -696421335 --772653358 -59573731 -759787683 -538283024 -824769705 --849147818 -771868296 -854096833 -829660748 -554983674 -74525377 --828090687 -371232775 -553828450 -430142005 -455278690 -730796423 -442087511 -797083380 -824861479 -787308584 --920510689 -655091700 -797477691 -17882994 --186031451 -182281468 -265548306 -76067442 -105919276 -322830593 --11174318 -770412131 -860905556 -489345177 -412569159 -397469476 --40159983 -923772280 -575306665 -174686976 -141679954 -519205849 -328007540 --61902908 -817765817 --993481084 -311073399 --95284924 -958869186 -906952480 -960005655 --570085022 -714244534 -301092844 -441347647 -266316808 -702598932 -567033879 -581556998 -314974273 -575513491 -428462535 -934984744 -273506318 -270272659 -982025549 -865444934 -932719015 -329123590 -890651702 -877671490 -859234416 --960513243 -347685391 --856056737 -589618727 -825395816 -557431252 -943853892 -471935570 -272495826 --433836093 -684091099 -915839689 -321759185 -412341945 --328906764 -770954884 -139907779 -489838406 -87680325 -779393919 -426553616 --244668402 -458158088 -605265315 -112090735 -502636749 --784092371 -427777529 -411218699 --26696611 -333955130 --778163673 -51754963 --294005908 -743175813 --300919325 -654800383 -424281254 -845885200 --355658076 -515446249 -97885380 --638185471 -503178497 --192845619 -965319905 -549057386 -987863645 --342725018 -704418189 -508086961 --277385331 -278790311 -144648152 -866163776 -670067726 -174412602 --717061317 -180192090 -129565546 -706288235 -327407740 -394669249 -377513903 -714777681 -134482094 -237317713 -638644730 --242090643 -200437158 -630659560 -617245951 -528967712 -75278588 --610470147 -682643410 -520722677 -653974665 -809222787 -982198838 -247053559 -463392546 -213701127 -511933336 --737904705 -538909762 -562445363 -155102429 -222925552 -295668741 --837356473 -946143867 --827178788 -674337527 -957869231 --124320905 -84010924 -644858828 -853095018 -908391034 -478512901 -299089265 -926343726 -400224840 --510440364 -904326759 -974254096 -644393659 --58813369 -354603788 -365147332 --807246540 -288943876 -153870038 -327640207 -960603899 -698079458 -634235089 --49072 -257504352 -438038728 --102809866 -373509494 -814565918 -338484611 -80154547 -598819030 -33770347 -484652211 -55767589 -505699926 --685103769 -591146005 --437425538 -816457261 -8101155 -508702282 --156002957 -267447962 -577394640 -406936392 -461686117 -886776340 --276564735 -674923528 -611568306 --394524234 -942654876 --49197169 -577473077 -455282146 -470901229 -558949008 -880865920 --290134523 -887328132 -126126082 -157194200 --921108446 -552336998 --106758641 -577752359 -894638579 -342195574 -686741151 -300148583 --47434012 -350972815 -238681934 -264919076 -946971650 -234541742 -269798246 --230737496 -558173032 --850819977 -817693125 --566778396 -825721268 --459515649 -603894740 -790804378 -845842636 --126619445 -598435199 -400900253 -560611239 -991814763 -701914901 -397190028 --125313823 -101259506 -294968412 --210713678 -588001302 -537140218 --907359744 -118472506 -482554708 -102704872 -166842856 -368034049 -444548056 -470847839 -41601668 --323706898 -897785359 -138849332 -335865388 -87098528 -858001626 --998882909 -12812740 -934726140 --518217708 -517773106 --840953674 -737556474 -786633226 -61575344 -761341644 --347790826 -347985457 -275973903 -338879172 --541078208 -109878617 --261460195 -16326379 -174238065 --790108113 -123331961 --804684918 -460496905 -44576269 -923503262 --370674495 -781740381 -611237831 --331393642 -620206188 -798873898 --717180520 -531704146 -161723369 -281604656 -368338432 -789053697 -330384943 --12553995 -136793710 -647856206 -19167046 -657031732 --999160417 -462899287 -261146040 -926595370 -126606145 -799418538 -254648602 --390745603 -513702538 --905757117 -103695387 --548595008 -778267505 -779705187 -314314160 -616237699 -456238069 --256912780 -235734985 --204890092 -297373932 -225977915 --223129629 -294632055 -685026009 -599981787 -880095407 --934044739 -559801390 -604899560 -45138496 -617179758 -585046191 -825640572 -353368378 -78978768 -361982579 -589277085 --589116121 -760185201 --989087828 -993121481 -974895515 -986992127 -983450090 --212576652 -941388586 --452379050 -871460041 -815711904 -588930669 -623535404 -894522249 -534577394 --281126400 -826254409 -672067174 -23682218 -193544467 -144551757 --274257657 -192698541 -217829586 -328566131 -472526921 --626594016 -414393729 -494405917 -536700000 -695086381 -214132799 -952175640 -591867623 -977900945 --505613321 -193571466 --165001359 -554771484 --863594896 -251744655 -501190218 --759575052 -473960225 --755274398 -185344007 -772432931 -191700943 --767905662 -178874287 -956695382 -286693710 -191458548 --546147448 -244892059 -640212147 -522478378 -812121509 -415219138 --338281002 -436435442 -918428546 -960368242 -980560118 --20629709 -663458369 --614180263 -961583514 --499072775 -970690443 -203110913 --244761523 -815226648 -820210300 -341707074 -15609724 --488739376 -914066313 -67238960 -558199885 -125509100 -405199797 --989936027 -692371969 --860950533 -132575334 -666168812 --191764365 -446750434 --773281937 -818403990 --460079499 -343838374 --597374273 -342117738 --339389292 -61051856 -229415768 -131042530 --922225203 -38907053 --557505064 -736600045 -406931287 -7343530 -729560667 --106450229 -626020818 -72618163 --29169333 -817004377 -29669405 --444315460 -823187239 -118305741 -662533915 --836051405 -448272044 -280064806 --286743161 -901508973 -128457559 --781013735 -37375077 -800238734 --541210427 -705786174 --735658764 -324559792 -12238715 -550911233 -316235325 -463067580 -381362560 --764910336 -299035822 -994338229 -647961954 -714848943 --301508612 -961722335 -467631710 -33162016 -342945688 -952521898 -620963489 -464281360 --420165521 -324777351 -546975960 --791951767 -112224213 -636004809 -314740587 -983287894 --290303625 -694703955 -887189487 -592408754 -643499761 -649028043 -955892271 -956051643 --411218699 -700319404 -995193582 -775671317 -926455248 -277660947 -215196660 -456355009 --290173017 -172479834 --121656721 -359827556 --938259035 -89584466 -886345201 --673001271 -89193435 -370479099 --491259114 -289607899 -794898282 -870265633 -35835368 -765498261 -871798399 -571593570 --833633069 -911696959 -296271499 -759648443 -793515479 -462058837 -701039280 --200756541 -778556372 -267829387 -215016052 --765739623 -721727920 -637913246 -990141701 --624468386 -135794436 --972287264 -430688508 --889967724 -312885915 -305314523 -411440218 -313391927 -869125950 --879119219 -169084200 -534560879 --444179659 -139166080 -111254633 --377629042 -136079433 --358198614 -661104141 -539071066 -742667873 -651715887 -743942449 -625195895 -97550467 -956545021 -721350157 -948446054 -473603204 -143417355 -775812669 --123029006 -682966545 -603120070 -596981292 -287382077 --876036266 -279194491 -905528959 -60919210 --36518260 -362042108 --246038528 -890608458 -898312150 -133028120 --5704685 -332237078 -428491482 -808618017 -303095371 -881027579 -936240404 --908828008 -865581102 -447260146 -515447406 -629561353 --762303214 -308654559 -417453907 -671521128 -800099635 --149296951 -499954911 -68639352 -948624472 -895182509 --859840990 -555711789 -95705559 -891764611 -773712963 -702734860 -716706906 --605541299 -641485025 --22129967 -79746203 -11647635 -837872887 --152580025 -663858428 -71065026 -745385143 --457430464 -545190887 -850102657 -665862782 --941391114 -356384446 --156192937 -707281731 -230368720 -474178102 -657240334 -25629184 -517355543 --552538329 -516516211 -62630648 -712401102 -746127429 -785202387 -992169500 -832029106 --425467707 -124097632 -800029286 --619052155 -882971996 -944908051 -677878588 -319906517 -86907322 -332923588 --391784669 -641334371 -967501463 -400261027 -550288253 -479360663 -821655192 -758550614 -942637665 -852325009 -241413323 -627209235 -293935315 -845566229 -502677933 -827651596 -406819829 -134064894 -777977977 --470526800 -37059602 -944665951 -441863788 --617836474 -447686471 -747154134 -19837085 -941782150 -639333298 -7831931 -368190293 -600520066 -604785739 -993939254 -78807795 -622127081 --743825279 -536395289 -431751382 -735519172 -663315454 --958331662 -111799554 -349361210 -694765920 --844373515 -596289565 --943460382 -534202396 --704385213 -133564876 -674670056 --267595502 -822748645 --381279156 -480751388 -278838914 --552728586 -438323691 -378615833 -726447175 -324181655 -835646609 -40693512 -732035569 -735182332 -345815547 -306994043 -928818031 -119786360 -743675203 --559728134 -34964405 -871821621 -583824159 -499975508 -447003234 --753603388 -894559131 --97988180 -811418391 -157232122 -296017623 -102009476 -536419502 -209499494 -889591652 -305099400 --144069803 -66494895 -449471785 -286365089 -317653407 -116899882 -531867973 -715076332 -788540361 -812504002 -927963083 -274850060 --782736515 -556686303 -781968153 -595806920 -682794954 --167642065 -50554953 --891623780 -388275207 --951645516 -547314036 --139007395 -696944980 -768827488 -831521527 -354769707 -337725181 -353832079 -744279705 -44508787 --94821870 -655130866 -227656504 --24700667 -653352619 --134669613 -683061573 --35858705 -992642620 -105846022 --917838376 -395115214 -188074269 -35287094 -926740297 -970500211 -231295938 -698491793 -65331988 -975751496 --162121035 -980867701 -380641425 -395663308 -846247014 -709719357 --949447648 -240490090 -836963268 -140474021 -754839495 -914569771 --987241250 -105766386 --905906784 -632511903 -730843370 -861740828 -154420487 --357512056 -916003254 -774352896 --553316187 -748158691 -992071253 --538038366 -215915002 -775897503 -327226466 -73192592 -409778668 -787102269 --724725093 -826910147 --355151119 -728880688 -730959675 --223797062 -549098364 -705154883 --190291650 -412408594 -15058090 -919282594 --705155061 -218627834 --883785403 -181043684 -189865205 -582777336 -214800477 --981072162 -398006260 -750143676 --728677799 -324270721 --353343505 -548117700 --783202151 -413029217 --952507166 -526146158 --135995496 -223633832 -773696346 -214454356 --766464161 -325456362 -881402825 -992674811 --964543273 -380619168 --423722641 -421062591 --717844241 -231808879 -241092385 --609909280 -396381950 -819967536 -575959075 -608849923 -657216008 -886759941 -558497269 --67654528 -323184179 --649314361 -352709202 -647810102 -912270150 -443015945 --674474997 -172217992 -227139305 --636184673 -164040888 -951863724 -446384488 -289115310 -487411780 -856644667 -882292371 --500457232 -518718552 --941741474 -247873770 -93307027 -401869100 -446965488 -792857673 --263650265 -146388081 -224158246 -717961032 -747047141 -275601748 -10925639 --449409911 -981561732 --859880527 -519114522 -783142431 -44985410 --12009945 -362970598 -15486863 --217123563 -146754122 -186039967 --803794496 -147634780 -244368350 -959973570 -46032201 -807620656 --735145476 -826364597 -288034064 -200259557 -252102298 -684360254 -604894949 -356595835 -823468839 -599138714 -84267176 -804540413 --691065104 -37170183 -105610936 -609699368 --363556349 -189445757 -858295299 -7901294 -389953863 -739486532 -700815293 -379618174 --97075226 -719288976 -492755872 -434526909 -3024950 -413455216 -991091496 -333055240 --163982056 -765732203 -592277085 --980583734 -961020096 --214004056 -468481017 -382984050 -687592773 -107985538 --595378780 -386982799 -133680084 -108615631 -736226640 -396141125 --470847839 -941751743 -664148764 --941425089 -244631100 --129935756 -968185529 -855414280 --877640318 -137916748 -288432343 --543852738 -587452316 -496483141 -215736300 -799556627 -381600539 -305869711 -52247397 -853174432 --307373137 -41711555 -486804819 --126000284 -511264696 --459873616 -588091902 --182572041 -450732006 -598883104 --294022123 -916381573 -247620308 -177285707 --302164808 -751834953 -122613527 -18162681 -706667824 --637587731 -752358396 -734971046 -963071018 -141910181 -451371507 -254652157 -7741850 --164741210 -88283984 -832097079 -882299745 --527192823 -709366059 -579638047 --572031832 -428377202 --503439030 -705082156 -286397987 -165986549 -740559085 --464823483 -464195029 -991167401 -669408122 -491557684 -474690486 -272267710 -493581560 -293041911 --230902026 -147098257 -84311851 --296489777 -873214246 -736327403 --783018088 -868319812 --308112188 -52246019 -80947560 -31357699 -3731624 -926507209 --127239656 -162635873 -262326289 -925501096 -192047426 --700815293 -132959873 -367686529 -388522578 -98722477 -271820983 --72943182 -103485551 -677533778 -4093715 -12563065 -940558060 -643557842 -134618030 --565923387 -586818008 --69108886 -815173794 --510398330 -281869022 -966438449 --836832071 -298248074 -797371745 -783517829 --650763465 -49445192 --262631616 -274179159 -183511760 -273106385 -909994332 -470921388 -658206931 -307184363 --423001525 -704802794 -485925506 --989942531 -724588011 -908776071 -345609691 -742631377 -966359126 -967654897 -715162555 -773551344 -654864018 -732406771 -674297453 --227418161 -963981763 -867695657 -979790186 --129565546 -239019323 -912957590 --561985055 -217730997 --763522582 -829148975 -571353884 -20196301 -222962847 --78437511 -741294271 --678204014 -237420602 --458342926 -468481391 -407872207 -135807762 -438381968 -232058197 --539734037 -601199562 --204798298 -874496827 -732662623 -548136109 --282226400 -463329157 -70930686 --409551302 -8299307 -62078580 --33817165 -767199608 -80797991 -62742601 --304452910 -511965029 --77430326 -696491217 -754586138 -28616115 -478569686 -385842546 --992523506 -68319579 -296146104 -150846038 -738758422 --380667933 -9270958 -865414034 -993047330 -843644028 --381748114 -697660735 -913761025 --382842091 -342055415 -517362315 --394125148 -67665652 -825197155 -162474388 -977357024 --281698280 -88384947 -728920912 -579078738 -430948146 -14899622 --213413882 -63013568 --642912206 -265139032 -678751721 -521422642 --117121425 -683994825 -344298329 --12040365 -666891275 --751577162 -72486210 -611682069 -176325310 -111559961 -820648639 -570721465 -116840123 -401973378 -543487159 -511889037 -558116220 -958920096 -531451261 -906896829 --979446738 -818848430 -554295670 -651145539 -280573034 -123323326 --146726365 -846440439 -350813723 --528554897 -447529648 --880550749 -553573228 -726912911 --359542796 -834582589 -223656146 -705518044 --357030629 -633319890 -14413002 -861406125 -597027325 -633252118 -139598964 -138190752 -106318962 -916286023 --469527298 -220984333 -155282067 -196351543 --188973808 -407369184 --786083885 -284014310 -545014743 --967171071 -847789179 -329789848 -150519577 -251024112 -722660449 --540293117 -803616611 -951921832 -772188798 -501731197 -783513449 -857622745 -206651010 --494800531 -454376960 --894701519 -307144631 -75134109 -28488663 -798531322 -658959579 --724193729 -828014827 -916865058 -120649898 --406814244 -803564088 --966651042 -298394381 -980797626 -707815462 -26059961 --863318808 -309790934 -316673986 --972632224 -924534065 --306735957 -64893121 -730460017 -548845662 -320735386 --437447025 -468182262 --727976697 -306601583 -71921868 --325515631 -583819400 -602767538 -433513294 -440890647 -59960178 -839945593 -502405500 -602304171 -684409076 -386328655 -487231059 -104924622 --338604840 -271502947 --424609915 -557073768 -916051471 -39600556 --464975323 -26304880 --907273891 -514122787 -585873526 -49362441 -683902959 --669949634 -168024211 -47809948 -160265906 --790526776 -771187191 --243004632 -694338743 --889686324 -176440685 --687785192 -532442352 -866796750 -722278942 --196200087 -950243454 -931604646 -411346384 -494652025 -306530483 --391629884 -531032232 -176354599 -105055173 -194612898 -392714706 --958412522 -273798320 -976588635 -970605965 -205698229 --729437367 -381045873 -292386165 -874829106 --701780877 -516115554 --813749738 -212185534 -454093507 -547003289 -736636984 -190695934 --552735145 -30034039 --534536716 -771107142 --875539309 -332698115 -73900627 --203491675 -730081778 -861262078 -411840302 -165214708 -557742374 -966927539 -767429166 --986185759 -73118687 -45310429 --791765790 -438128275 --340154245 -987809905 -182348928 -42082821 -294539479 -613640846 -456982407 --139224456 -405712282 -491983180 --552533515 -126134168 --181077653 -573515224 -785622283 -804306015 -573142155 -722420670 --14834033 -613245121 -16592177 -607943829 -565298010 -50208530 --624863094 -389541653 --619318076 -125382267 --850071462 -823436858 -916025627 -224377495 -875664519 -479242899 --48739829 -646243060 --302626708 -331702167 -893062942 -363474379 --840554524 -981972144 -102529422 -633639813 --833748193 -182398055 --591192491 -728506163 --910988943 -881000601 -655307880 -256923372 --14715772 -484503814 -899355282 -648070688 --404429477 -945641873 --646095053 -825130146 --976774658 -73271111 -636426952 --253409061 -403707469 -642050644 --874060261 -292060324 -909785292 -282536927 -942006095 --623693269 -157045147 -857962070 -398509419 --874052883 -683939702 -989153427 --22639616 -990707837 -770530899 -258053002 --46124241 -8729160 -597788144 -112541395 -763902795 --687722553 -456408614 -709327020 --757627005 -550032994 -704247422 -849437265 -308761062 -240645207 --570917310 -191915066 -369369236 --874721948 -242066548 --452983073 -579832511 -465972014 -254718317 -663261168 --975608820 -370497886 -364728696 -8490959 --563263643 -421416644 -367027916 -132956021 -138492390 --79854791 -427039106 --857040956 -747493842 -811576474 -602705526 --230210293 -297031304 --639170692 -639406055 -113300895 -991494423 -823506848 -479342125 -92340001 -797856399 --246307265 -812599558 --122874360 -268028305 -977612960 -748080268 -528135350 -999829463 -856727216 -395849987 --428491482 -916591893 -655232888 -434854192 --165056293 -260745047 -152454162 -614443815 -513616928 -239625596 --809095778 -98119235 -17362791 -633988080 --451231079 -690216805 -134472292 -142549441 --238492337 -804638435 --650605603 -598541803 -528658820 --717421807 -957362047 -928210562 -282960184 -161457256 --185239786 -819421680 --698974364 -334279096 --472009336 -248821749 -232703124 -213745807 -33788824 --181129239 -108432632 -882148532 -307148355 --754938314 -475971568 -950644376 -732344379 -266465863 -808743252 --226887496 -776002702 --123710882 -529220455 -417399236 -834013040 -688353479 -914020671 -654971266 -450489451 -985867859 -803873829 --376411676 -267252778 -895925589 -331338557 -280258541 --602755401 -957012315 -733480692 --508200765 -740155625 -857338147 --744660386 -323060168 --780961134 -419723818 --212378460 -834058552 --882120324 -386030508 -116093322 --904978110 -769201572 -832179717 -66770891 -541667633 -698041256 -706349686 -698209778 -245182565 -306415908 -839859025 -389060749 --276801261 -599669223 -468565311 -74486172 -128934021 -958799992 -114950109 -97513430 --345092852 -473426068 -168323779 --80717929 -407110506 -811380675 -28323462 -518697309 -837527154 -450351408 -628476527 -280139330 -494955344 --945682727 -223940290 -643123532 -524552536 -205398273 --507750406 -277869371 -754637591 --24572516 -742394086 -22766565 -272035086 -170994671 -929605615 -305968174 --326188593 -186552247 --298962947 -556308933 --680574829 -317824453 -679335729 --509058749 -407208744 -334000674 --728906849 -225846313 -597783121 -705506974 --972192185 -942864992 -79812893 -644771814 -966766352 --981363251 -943809073 -569724120 --998175961 -37873283 -341951310 -941345661 --252235095 -947879037 --92297784 -242484002 -205552715 --245064617 -495097665 -717550420 -188977108 --142717724 -242146090 -165591896 --368044738 -817419728 -756822923 --982339155 -423375760 -554901983 -376642055 --123704368 -309451104 --211066485 -164419560 -100810317 -804411428 --596759209 -759513815 -128486840 --790198724 -89078551 -949342208 -132759822 --437103699 -161054071 -990631870 --101503311 -902724345 -345623018 --735626762 -797584736 --684718951 -244790580 -434980875 -334236896 -947645388 --456265869 -358223490 -166012759 --549194361 -294338562 -54853224 -195726723 --521317556 -452181653 --171981500 -738090598 -225081170 -56023529 --166462173 -677073481 -627738632 -717366711 -568638254 --825306470 -808058812 -487655497 --759295424 -334481817 --864178420 -943607930 -443274950 -33798096 --973641145 -265526722 --24164293 -549978873 --250721582 -798081756 -919083121 -596184833 -423937616 -116594217 -149248790 -855901740 --479919024 -840651491 -332111872 -59405752 -915371453 --377066134 -387358900 --238973540 -189502107 -263098862 -334005117 --89866568 -646365616 -429766381 --828603960 -517705228 -421911956 -726409267 -188717734 -373073625 --841273879 -84810717 -113086559 -837687122 -253504544 -303634019 -198967909 -500770137 --648070688 -718715346 -909585757 -120239666 -547159786 -340740491 -812110744 --888509937 -953371329 --347925150 -351333436 --683558940 -151566083 -128951164 -461556993 -582567816 --732228618 -198255119 --784096452 -321525121 -987095656 --995662618 -562664048 -348553391 -974453968 -690622976 -606278752 -475815707 -887932143 --973514654 -808661133 -212661129 -53077626 --247917078 -409846354 -783767278 -960120748 -108605279 --792335913 -252930662 --769064806 -510872054 --4208405 -576882849 -232604335 -465583496 -174782115 -60976952 -741687160 -353038023 -830504725 -914584851 -298087064 --31457203 -41256907 --900470372 -923453274 -253099352 --169248806 -683296627 -388907312 -892209990 --244166187 -582921625 -944233516 -78938 --488302624 -39391839 -766121085 -816811328 -128634434 -920804885 --756443737 -131781545 -870176295 -911443097 --270667733 -266504779 -776589589 -931884840 --968131872 -827693137 -622897739 --793645638 -674639031 -2192506 --45907997 -7989098 -275166360 -188429671 -774719224 -525301671 --554287407 -939819945 -493393878 -804273702 -659505669 -792324082 -438018359 -766316327 --417524063 -227675143 -495757197 -472069578 -986573974 --465182958 -102228279 --429766796 -128302100 -500058264 -221225051 -828283036 -623330306 --296786912 -718061896 --120776488 -487830201 -701175068 -502180774 --579739948 -590382991 --191315636 -986441999 -533307217 -970567542 -231011273 --158606408 -21830461 -608410825 -232796261 --37490254 -706134209 -937907565 -358726488 -950014924 -985252318 -304962514 -233916523 -351100373 -744646427 --114585314 -953152546 --846759020 -125541050 -712653732 -289866311 -473870640 -839144554 -559812578 -96023108 -498958643 -103365358 -628530358 -499126484 -846000030 --524221263 -636568415 -880736223 -758781686 -875447483 -864500162 -397508215 -975090364 --844583941 -741753381 -18708710 -551029926 -429370131 -50318211 --570068953 -604291393 -325780615 -339832920 -713896299 -739151619 --46640470 -561276058 -679828340 -436957991 --427947572 -556658150 --233891081 -217879084 -769432707 --725713904 -205483645 -898743376 -381787190 -693978936 -146455423 -196304824 -200646098 -762974968 -645581897 -585254043 -654453841 -329676091 -218464792 -29287330 -737368520 --822640133 -406873527 -569097418 --912379452 -625345746 -61146992 -19932068 --670549065 -38097825 --817030071 -475233448 -863006177 -477163703 --980573289 -770264313 --885740519 -305800259 -457266973 -489888539 --93972354 -531374918 -623792469 -308243295 -280973692 --105189839 -343554741 --570421605 -663602793 -383315937 -174851911 -88568264 --170393982 -544692770 -163883587 -584983093 -293290781 -656448307 --226340608 -473499246 --732811449 -595077255 -210319420 -695012917 --319419387 -888147287 --174848423 -795545230 --172563532 -562031410 -856288700 --705705784 -719116525 -957130158 --273920915 -129877891 --15671506 -28549718 -149278626 --310142752 -220654389 -652726781 -167606410 -977556461 -845718969 -126863808 -755764392 -539263314 --212362195 -201572999 -989561707 --427120233 -633063357 -26692554 --551336679 -683649624 -284267748 --858179766 -46892318 -827059412 -110040389 --16909315 -301657008 --587452316 -935497338 -821753121 -15894410 -124624174 --885897520 -356731375 -305099817 -768059864 -471461280 -872290498 -192985299 -196688416 -608355844 -662953607 -506139552 -856135275 -752142834 --384209768 -366582177 -220241039 -151018549 -355499822 -515648432 --60868417 -851036486 -460933035 --555162052 -445208367 -406213228 -959896061 --588448827 -776800433 -475936386 -98095244 -993483888 -52810028 --813950876 -682219108 -490921699 -319351351 --558534153 -438880162 -174560404 --209260103 -14307404 --7831931 -516818342 -171159910 -508705531 -708482530 --521058587 -51482388 -59542193 -300678834 -478268369 --325061647 -28260276 -173576536 --179067975 -712633989 -492730303 -747590208 --116486963 -635111765 --110038821 -397734224 -410555915 --646471231 -317095608 --47180513 -503951503 --729237885 -430058065 --502834426 -871575215 -748378960 -602970832 -453059314 --102802760 -485728836 -900382502 --176538234 -213009808 -877736595 --617262742 -283597162 -365435647 --978660531 -905066501 -389961737 -974040393 --62345140 -780910281 -993805416 --771421562 -864171620 -977048329 -716849591 --658963072 -296568002 -926129352 -475096921 -221889253 --274973376 -510005711 --430505954 -938554087 -769929268 -156950948 --406903154 -898793913 -184239596 -993645062 -818475634 -502577530 -988666495 --705453741 -324701040 -697799133 -447037797 --458306846 -560139073 -61042569 -318009454 -410569355 -389242567 --446397168 -785299025 --362042108 -239081292 -162923221 -29616258 -334631038 --765141048 -118401449 --993837538 -121141278 -410048862 -874023562 --911241734 -123380085 --504232345 -677314539 -230533728 -925715942 -805954896 -612614260 --448752484 -113190854 -708380861 -979951052 -630323346 -727791103 -33882545 -847427151 -981344382 -776350917 -731109108 --810820555 -716745395 --382814281 -581436049 --914987717 -120433296 --618609271 -690860380 -175840634 -64785531 -605602235 -943100020 -563578023 -190134818 --76067442 -792783110 -947808164 -266054472 -535883272 --406111070 -388717853 -24465827 -639622685 -325706102 -825531186 -475881447 -422433584 --472263785 -149791163 -374823469 -801484980 -308838879 -872695902 -913825913 --763229407 -308396068 -416437932 --492652274 -871912350 -727123370 --572251 -479961958 -587911322 -520146940 -999042012 -801192195 --533599003 -557195982 --507524234 -333057952 --662678279 -896872233 -547097050 -448569943 --514510551 -731570013 -349756568 --330704798 -881315924 --373999887 -345241252 -274930054 -567354758 -628591670 -79359531 -948726259 -651259508 --849961812 -389542058 -476245265 -762120679 --881145501 -491012179 -894008428 -178412381 -77999123 -540814817 --820488863 -826861567 -840369951 -586929116 -921765111 -780803492 -374429571 --308838879 -328115644 -660667918 --699544648 -473527372 --286129035 -374017205 --173189254 -790299244 -681916101 --754703406 -109985311 -785858046 --778267505 -404283345 -498906233 --475233448 -843345735 -708422306 --218531088 -392198148 -104718189 --301429461 -456430819 -296714440 --999968954 -504526510 -266393655 -752932958 -364794117 --684423339 -736030914 --109878617 -235623737 -85446735 -820293066 -372833743 -837039759 -18242132 -894941415 -72169690 --914710987 -161677316 --207520289 -947402492 --901139202 -196224505 -769096148 -853749175 -265385162 --611269614 -116861366 -877012875 -443940184 -31429617 -715376032 -796240479 -234651572 -312637114 -512957293 -778728346 -851939292 -237927130 -679263218 -716725647 --657824073 -880501485 -538913160 --172748413 -142325762 -82178084 --27992902 -876314003 -220711452 -7771111 -480288102 -272767071 -553524540 --775359841 -277479904 -88190520 -118435099 --631658943 -404052857 -419756749 --844797086 -630282249 --567033879 -56347300 --723661690 -797867808 -946059129 -848915107 -26098847 -733028262 -888880435 -632085663 -436611454 --328145033 -818526938 -338847542 -168074870 -4318710 -875784885 --32582128 -594503738 -531574198 -458225778 -990467913 -797409044 --858610947 -346399443 --97893874 -737250079 --575708197 -826811520 --978243384 -479042378 -869140089 --545716852 -692199746 --165397236 -652146776 -765749582 --655311202 -15288576 -423473121 -74097965 -464355120 -890485026 --434468908 -978731851 -98109779 --314830752 -715524799 --244855542 -339092195 -533656062 -334104594 -998271931 -257273347 --902084444 -244663382 --284947844 -324130103 --657240334 -81757169 --323605722 -65437695 --797958243 -692843003 -827046465 -839396434 -947372399 --35142127 -381237564 -941863454 -619098332 -102002787 -600572360 -647476365 --698306532 -281122647 -223792104 -90851166 -3075429 -799672321 -543441487 --712229610 -933868898 --413841837 -729279297 --190656998 -765787640 -752292449 -48678165 -31217755 --23404270 -141255905 -697185419 -999804646 -849587727 -746778999 -767926798 --417103645 -24900054 --148241793 -724079732 -984483181 -821769107 --118412308 -176858016 --1264134 -118121948 -199681849 --76432433 -740261663 -630901425 -541727956 --500921039 -603211642 -280549452 -574453208 --267983732 -168804600 -674492146 --444540049 -456461098 -800888114 -413682634 -37251843 -243092302 -447306709 -236926023 --181435066 -188266423 -313677306 -157449271 -913544771 --119897551 -231635609 -962461947 --832976408 -55825670 -632142935 -845077932 --328130785 -564226732 --859036350 -781896795 --473041465 -668687977 --718926744 -614130729 -528333555 -811236402 --557843044 -954575643 --563620096 -730286949 --425531240 -335130870 -326226397 -740253178 -482665882 -544677374 -567771611 --566291356 -67344477 -325717323 -907733272 -427321729 --949082968 -357118134 -650300667 --321665949 -166356246 --62154328 -579087703 -880310570 -434726528 -873338694 -295933490 -895741698 -715161857 -511099198 --872548846 -663366325 -375380193 -328375775 -397192163 -839613740 -583416920 --352089926 -948247679 -541020160 --402839897 -446379058 --950788606 -866569138 -938654397 --989704081 -436577060 -360346115 -239583470 --37077852 -903519074 -423659608 -522736757 -845172771 -364992114 -115478341 -171330882 --368565164 -956629834 -88400715 --841073782 -138572857 -79675144 -667812419 -522073705 -541211822 -567093644 -337792317 -864897397 --186914708 -758221675 -595646230 -655332034 -195191111 -98607978 -222764796 -161589341 -947153410 --366670711 -981400568 -489206340 -239950891 -39581788 -491683395 -433947527 --881438187 -591660779 --787641601 -754893412 -79857879 --517104832 -366459522 -774741753 -369409651 -600458085 -533990306 -224995458 --88049689 -687067957 --490476910 -160048217 -816416632 --934726140 -163481054 -123644748 -573428282 --744979123 -530906179 --768748537 -857785999 -115767498 -617089038 --238384284 -126498019 -920313003 --144322 -495647752 --294306863 -904000591 -435301423 -510759035 -222417811 -159546304 -176399788 -166776744 --753383779 -871355206 --502158909 -355775786 --175760977 -865258642 -87795547 -33494843 -414873188 -165110732 -324579820 -732671950 --207806770 -278913047 --29376820 -947375952 -188252422 -731566156 --737145003 -248845666 -509724962 --645286880 -312833943 -152138550 -505472019 -110620014 -918011754 -854480355 -183319990 -321628869 -529589354 -849208599 --229223133 -355304866 --905944976 -95838433 -113776795 -543053155 --256704955 -219608246 -534355261 -766736828 -35410772 -609917612 --456889147 -249534001 --129235094 -572757140 -923266143 -637102730 --325952277 -291356865 --469604041 -220038097 -720736179 --12610963 -862420833 -164867978 -814369793 -674214328 --83545907 -694566996 -658286335 --178965376 -560320929 -892990723 --299047138 -573306730 -428867201 --422133672 -253418754 -580986034 -283954507 -550533155 -421312916 -37444623 --189142043 -765294184 --98994504 -254808628 --887932143 -516510821 -742235378 -191603951 -252948456 -852453149 -498508890 -91622197 --912482943 -260202886 -106757450 -271117241 -541633105 -771054055 --820014794 -190757205 -902515891 -188245368 --914391709 -442240473 -599589320 --38712667 -285938259 -701180803 --711264867 -603809407 -530801441 --305194920 -527212686 -948550964 --773064109 -709594539 -381987806 -482857415 -637192091 -57436254 -142156689 -347321501 -672300829 --624937485 -296891132 --756574345 -24064870 -13591521 -863698630 --79907432 -670427379 -650679096 -632278732 --361768101 -995740664 -754816317 -792290620 --576577547 -581427562 -821104239 -249463528 --234317667 -437555317 --410741016 -564368804 -550071085 -801009081 -875807833 -276825563 --547648708 -695638194 --904647105 -114399601 -26907552 -354254178 -363068503 -497007621 -697970318 -148509031 --696907569 -546016330 -220830321 -588363297 --805232961 -254933208 -480814840 -262439822 --316024130 -498051367 -750709185 --441736909 -88703168 -862348891 -823604457 -723705854 -440483296 -598316838 --297244237 -825339172 -645520096 -381267886 -808804380 -899534520 -769254058 -728091646 -846680647 -799069212 -461009424 -875599969 -328929562 --264568943 -693143926 -13551641 -178709321 -270393140 --366038117 -453055428 --707172884 -599426302 --203702214 -171572417 -328791260 --573061884 -382885434 -607607583 -959212234 --991908228 -515927271 --143735784 -965514966 -954896415 --175574907 -495038401 -129670082 --22585047 -228614606 -442322747 -899960949 -801541755 --633063357 -143780165 -759843474 -585185692 -539767135 --303789514 -767600734 -218276403 --74467094 -418078332 --552404649 -472246016 -248373337 --60205589 -46366780 --137452231 -894403706 -624011562 --675357720 -414507767 -184685541 -749175672 --795439540 -459851748 --339237579 -278177240 -288380900 -945782242 -163267709 -897811600 -532880049 --525658195 -955177083 -951054988 -180572884 --959391966 -574836720 --406007183 -730168097 -348219461 --702665600 -354177111 -87014933 -4590920 -960399930 -799321341 -156885418 -606501012 -346765300 -383198886 -814021996 -419600447 -724165863 -108031782 -197221347 -511082776 --416924865 -519168437 -206363335 --664076128 -468686047 -784697199 -818196509 -27640734 --385343011 -621420547 --551445348 -524957929 -56768072 -758965661 --983491583 -953366179 -957079332 -474613266 --940181412 -252099361 -662836845 -414253740 -682752667 -270729520 -471660200 -760545241 -763696224 --190403694 -177152169 -26648312 -414876784 -372418649 -958333194 -799609805 --416843117 -656633082 -128501788 -776337748 -599461969 -268597267 -286669584 --347707626 -244750841 --175699133 -742143923 -819374145 -991227710 -819441145 -618811134 --903980162 -509173385 -216353815 --534839255 -62879635 -563744025 -600596509 -528195783 -740444354 -815708617 --206242196 -992785735 -757261199 -353505247 --969665885 -819068436 -463814325 -518706239 --640212171 -842801194 -667881273 --266706477 -584999762 --763369162 -583207829 -211661047 -709493880 -153700225 -215303716 --926099774 -780943084 -994811642 -769958077 -651890889 -986615868 --714830394 -495597265 -238974840 -346778855 --634780091 -687503989 -451628313 --125028106 -638345721 -360926539 --998935015 -485558968 -846550901 --924136290 -445555744 --181971970 -181658563 -467961277 -717669844 -184570929 -573014884 --713341683 -84758845 -833742562 -912892919 -516041416 -139513591 --991227710 -723328773 --603894740 -764656963 -922820399 -272435975 -849532735 -343057143 -134021633 -468163499 -43369267 -267502749 -238870457 -422522135 -970982774 -693415780 -681538117 --360335769 -758462421 -234220109 -883004357 -527124999 -158908200 -479763193 -542965930 -776497058 -607138701 --821756389 -320440232 -523362624 -538808683 --134598275 -662626231 -104760196 -217069485 -49964817 -147760591 -175879302 --680872225 -130668565 -649007696 --665938623 -426906881 --553174151 -380625276 -768861049 --540912765 -366318409 -502683044 -399599251 -815792869 --132506818 -762185909 --227550768 -234429714 -323844511 --711523190 -871970884 -447076472 --330366600 -650901775 -128135419 -612068051 -837551056 -922312150 -165164702 -469571392 --449688316 -742228113 -665075385 --526612739 -134240168 -29841811 --945101870 -313638790 -25778034 --335675531 -940849417 --592681002 -82404495 --537291304 -442371773 -198737488 -537243619 --583488465 -894055805 --294756655 -474310535 -995652783 -700840189 -843168436 -709062456 -970013354 -177721286 -553369857 -200605058 -39177205 -33650823 --759983602 -720338883 -295648469 -637068530 -958414182 -319693874 -645646161 -791495742 -709730645 -658454782 -636464115 -829789650 -114210236 --17481542 -512857629 -966001025 -186979905 -810974662 --248108062 -126472972 -281362961 -980864983 -76889139 -98808764 --562022121 -861476906 -778126196 -702226368 -448469664 -958020011 -287209845 --26473211 -800706697 -81448984 -152066584 -296958444 -489994735 -53646202 --122255697 -717106864 -843538638 --400008890 -406993446 -385309315 -584877499 -934744739 -435816114 -690910763 -637314600 --576903702 -815795074 -415235541 -855437055 -878249795 -680411566 -221707305 --733851755 -665039116 --267149966 -457003581 --41895727 -959061521 -628545630 -589759970 --705082156 -394105785 --479118651 -402972166 -752670023 --979839565 -392275168 -260659314 --701722331 -471860463 -449394762 -205941358 -972450739 -72340195 --530949992 -389386931 --820522806 -636399000 --148432361 -808280516 -267996417 -497003886 -263399488 -638213535 --121829544 -830289807 -474736625 -991636224 -155717150 --588633281 -179914465 --114811046 -35417066 -242150074 -805143383 -957413208 -32342717 -792988636 --337973674 -13283278 -853939158 -702041508 -307745014 --785155198 -76097489 -853066681 -790846272 -938196610 --205870890 -837924654 -232738122 -954660925 -359306038 -447001252 --177085412 -618568100 -70112164 -655482465 -839267255 --550419274 -55015446 --696798660 -84986280 -416726046 -415114449 -44746138 --461623340 -80044626 --314842861 -137321415 -529615482 --816445932 -639713671 -9876462 -432176988 --49301131 -469852990 --27876600 -499214632 -320023541 --866062694 -120894099 --231146770 -533971787 --986420449 -311340016 -691987545 -248835798 --694849614 -870868033 --210147993 -188434960 -966711545 -638168264 --783517829 -336396396 -324507395 -244144429 -35586319 --31290614 -593841432 -858581412 -467298935 -918998387 -430480286 --371330550 -280791547 -67599867 --11666891 -307079950 --468518950 -380803199 --574912184 -535002146 --616336869 -602317716 -331906446 -880561539 -67253349 -437399325 --518748918 -526487958 -592661353 -462706333 -752534889 -402471375 --217436967 -680761071 -222189982 --591124817 -521437199 -638144278 -522901801 --809763006 -279932453 -190687898 -660701957 -826522631 -560389132 -63860723 --389038646 -459413324 --98722477 -622456952 -275012730 -735659530 -397116147 --469783670 -447697148 --872971232 -208917920 -414759049 --801130968 -635410101 -472283571 -578148902 -896845712 -646320070 -288391588 --34144214 -250820202 -841834595 -528616738 -587896617 --582741690 -316781989 -461379272 -574538847 -298588195 -580933975 --463771841 -969743417 -684404153 --979384937 -358213422 -130883874 -311217415 --207556257 -101118855 -905899887 -237026522 -734061695 -578353511 -994566594 --159056256 -815382109 -573745294 -950347177 --853430698 -678428914 -366918971 -367279929 -197932361 --68346281 -133662262 -41910250 --515026689 -638772759 -188868595 --654343588 -681457630 --901085494 -578593211 -766347982 -422618773 -992572867 -646750930 -292616555 -224450924 -414694305 --806146045 -755349962 -493393348 -87158498 -500230562 --887740569 -566653072 -74311503 -388125121 -762943184 -134206507 -701625369 -285159461 --807941428 -320037771 -257711635 -204872567 --228537608 -694941729 --617912337 -685400076 -965328492 --53940733 -454467155 -801736898 -619739638 --993483888 -744666147 -423423236 -65483675 -755088108 --483135066 -754144206 -332376638 -684213054 -804029846 --361077893 -260604956 -494695318 -934418184 -713323380 --907173973 -397515048 -533444731 -814277165 -67021212 -378671542 --486142290 -280280743 -703365809 -404357310 -880894251 -960410835 -498800031 -580938745 -643680378 -299831216 -520228275 --491103789 -470780051 --89925833 -472150783 -941525379 --473712406 -9168202 -268886986 -37639793 -141019839 --245193708 -752696152 -642654895 -40199772 --635043107 -198316379 -481030202 --929290321 -535008331 -78662599 -343288780 -121845894 -124966092 -432340616 --242309137 -756727477 -632278861 --856900681 -394329500 -537528982 --860500671 -604659023 --466537596 -604757309 -999501950 -959531799 -342365789 --107134101 -134474413 -912658404 -470698508 --974835781 -442159887 -830523252 -860620080 -989947739 -983043949 -504093702 --396063024 -692286387 --158403174 -278323503 -42792521 -767747352 -987866040 --757926892 -378049840 -116973244 --861840655 -114769001 -401592898 -879674473 -476015222 --301657008 -330413983 -785820578 --370209743 -969572064 -168350542 --51203798 -546797240 --820331387 -451937771 -797629880 -942663966 -133146653 --227220526 -173967406 -545374533 -489934642 -361118419 -397717485 --742958308 -889922169 --250699347 -216351430 --991640113 -686338246 --933915738 -633385520 -194948588 --173401364 -55802600 --374799402 -511079812 -638078471 --814839593 -782250807 -957837620 -686396973 --557133185 -225995582 -373005154 -807414427 -421956296 --159653493 -484699737 -197004415 --421198407 -713920959 -454026480 -476033201 -254829635 -456367869 -779921322 -779892670 --719583035 -245250877 -555988203 -759990875 --908103670 -730611098 --861129343 -382720178 -50921268 -960691705 -37377332 -819330814 -27414097 -152219880 --623694500 -213885471 --435900246 -314160836 -515611757 --770238385 -185756870 --801183973 -773777060 -77928914 -751032992 -967640315 -315539095 -367161393 -366655504 --517798639 -277133383 -243222095 -122589647 -471258497 -165549721 -594454594 -64793093 -844529592 -716436793 --417092634 -936000537 -661225908 --223501586 -411651974 -624900308 --65148155 -730602267 -727167230 -33490018 --377273448 -313170514 -988839397 --623453639 -43430412 -320480866 --919296042 -505512510 -352921693 -242146968 -241256241 -649588635 -470472911 -472308502 --500698847 -387559262 --749434203 -562008538 -379363573 -176436173 -140244620 -774102860 -847633405 -82660918 -277885017 -351173152 -929298039 --317474204 -558317575 --485728836 -672736182 -284870541 -503966783 -900989464 --949900649 -65972407 -789321512 --610324968 -547528383 --564626413 -382129892 --533647698 -936876049 -281158031 -365070323 -855194927 --799960629 -637060863 -14483779 -890556846 --256107748 -716587971 -667785621 --205084743 -725230894 -54146786 -776434123 --161502468 -990532567 --22217359 -752411531 --281063687 -903572324 -663696748 -47508568 -65977003 -142845133 --175137532 -383160433 -529460585 -512577015 -784247511 -750466595 --655951958 -362906679 -114010697 -815322203 -446897022 --35112744 -868162000 -443429389 --908520406 -818949573 -568429393 -822898204 -523203067 -953362579 -903796754 -490724074 -124347421 -316242808 --839703291 -451064924 -785107844 -587577067 --553891354 -71599419 -353355594 -702880038 -51805734 -814442475 --846905935 -35881822 -960108839 --829891041 -694896912 -739918073 --769432707 -735714420 -421726605 --845064275 -393030998 -23563669 -772678596 --750591499 -384003255 -993221788 -601911580 -447569928 --680003655 -792377398 -248649142 -641306964 -122140338 --736600045 -767933475 --484419588 -143117521 --802194656 -420232873 -713551361 -983428498 --17359595 -254208562 -896767806 -156286343 -296055266 --441197811 -187272335 -68530796 -355704607 --241840275 -98567616 -88428425 -40201534 --813451782 -420230032 -881220308 -318647244 --550249526 -852437776 -23761454 -967933548 -861563151 --574392438 -115726021 -381520875 -224887575 --6379885 -154889292 --455781552 -530137110 --848773429 -107639201 -204971534 -325996309 -262668095 -841046167 -301740940 -888889391 -46153953 --195910448 -401089511 -82401022 -418389420 -687368217 -584298177 -565780378 --957557360 -800320547 --615734782 -726805040 -697831965 -790549096 -39190797 --891309427 -528762891 --81736412 -540293275 --168526330 -300994608 --467490648 -751138845 -552106697 -826698833 -891019830 -352225168 -720265661 -722040176 --367029385 -266632390 -727862279 -12945522 -324088167 -712821216 --303487470 -273252615 -680514174 --808659623 -524751844 -736551258 -552062611 --713137719 -581157737 -547681215 -642386417 -934193168 -541818043 -783128701 -476928701 -490371095 --577106730 -662609805 -480771171 -819055653 -983313783 --387579049 -99408013 -237760820 -447148038 -588217609 --954171374 -203265016 -425417431 -145998425 -525831093 -184861860 -45315310 -641228027 -930353218 -387953330 -707950601 -383820568 -709654867 --206714604 -432956714 -170976069 --673111565 -80375895 -857986219 -932434256 -206932535 --11295814 -90432395 --515083777 -515970226 -554558776 -759660906 --481868081 -228935692 -297458363 -966419632 -573559469 -298510984 --705026194 -676728385 --856727748 -151582270 --294216742 -465015370 -613067522 --784720710 -102306695 --406203944 -435471073 -903002143 --666346211 -563021920 -405196215 -959375131 --255889855 -203288107 -668430428 --157473504 -349870803 -872222659 --766193721 -308461051 -80146476 --808885001 -466238116 -275842732 -115687833 -942874695 -136054962 -338751704 -716495796 --21133103 -476776627 --448096456 -216443871 -678428639 -415579140 -805518786 -368148801 -881149112 --927672699 -672416125 -909464454 -5317870 -650192898 -74837427 -78756689 -437870154 -174030908 --666536269 -892007042 -359226515 -191363954 -655300943 -504614536 --440700722 -963513386 -340298346 -100557550 -934888983 -121320726 --629387287 -920686689 -818706223 -12547494 -392029946 -388604317 --164725516 -532124103 -110014214 -809540575 -960389595 -85585370 -255166895 -594151635 --849437265 -634410735 -161489849 --870035218 -453024918 -955018461 -143012134 --443810140 -718853906 -970713909 -894677150 --625229095 -314406204 --518405437 -403707041 -717168264 -883634071 -478682480 -518222883 --606242085 -565677163 -67356227 -976244322 -116763490 --652116735 -48487689 -242883659 --609928462 -793630482 -198741764 --455296814 -184510229 -91243469 --818250280 -856373545 -829338594 -473033243 -738193635 -814294493 -59729409 --775452696 -734845434 --410397565 -727749445 -158574269 -278793756 --583193533 -794008699 -581346662 --443835681 -388244862 -464040862 --244271915 -429745935 --817693125 -788057788 --300794298 -560872594 --899146326 -641318395 -368400901 -450457469 --742421901 -814707877 --921012716 -231532975 --66476500 -852323504 -366083188 -113101150 -717962783 -266273912 -488281871 -820856697 --288069121 -464178269 --15901107 -239027941 --734828515 -255208427 --40288911 -574140290 --972125275 -237826457 -505327140 -242295289 -527583375 --775240712 -386200940 -300467453 --938859531 -246943331 -11404744 -161774436 --44417200 -741390385 --528406710 -550942430 -311254919 --446389956 -548645149 -928248155 -843702677 -100830050 -431796548 --165434939 -632553398 -331787256 -946442891 --346676631 -709706459 --426513224 -661908532 -788617731 -973503364 -334530429 --577786808 -452108495 --81282354 -441610810 -201662219 -584182003 -317826245 -488478544 -55802506 --11404744 -470499277 --299092613 -781853644 -971567542 -632975401 -191048684 -60918617 -768665236 -950227032 -13502045 -292729272 --932366897 -641898032 --611099534 -319331549 --371299325 -393447496 --471781540 -809091203 --3314601 -239931692 -921770762 --465045230 -827724685 -210860848 -674846093 --914481378 -440786444 -673099196 -381571385 -511095425 -189266449 --925767419 -665553505 -260692490 -547318693 --246620367 -893135143 --82404495 -714785151 -881192615 -98647898 -474608713 -353808791 --651040841 -527015613 -234935726 --602746095 -942783900 --192391453 -868491951 --353270160 -813401103 -770636230 -437540344 -668155089 --661307037 -536237426 -181601533 -620825989 -439884499 --800106359 -84255185 -3096429 -582208419 -956042007 --933981208 -610131945 --194861118 -240938192 -836671334 --656100316 -171515971 -745487400 --518962597 -72777205 -202256048 -637785634 --191267517 -651559225 -735405834 --504690034 -905463461 --266596450 -747056613 --888529132 -168511958 -285513462 --138102558 -509232560 -723162858 --459118595 -450973934 -704968615 -19163191 -513932377 -270979191 -415854052 -775714135 -699955540 -371057701 -214547437 -487039672 -315195124 -117987157 -891539816 --917468708 -682892949 -848785864 --16110808 -447364855 -32235679 -205003309 --81731116 -734058799 -932677425 --147760591 -338715341 -998860652 -846213401 -247537199 -283005605 -733143103 -727036003 --405806890 -696280720 -935165054 --605266616 -278620439 -695804929 -889461407 -977926375 -218668337 --114769001 -566599837 -196505338 -9314465 -783629014 -113056416 -15027787 -993477390 -768253862 -537964229 -572566948 --367733001 -214716218 -663774451 -490329869 --120630312 -496396257 --655389939 -816053056 --859977620 -605209463 -943596012 -75755187 -846395551 -591451453 -654746304 -53214577 --764825566 -233517165 -779299331 --527553032 -346589488 -643677326 -789258335 -962251700 -7363992 -481203833 -98398326 -651572913 --698732166 -505643898 --888158096 -619890832 --827289236 -364726855 -171854218 --186549564 -253939285 -785363463 -178552750 -56174560 -624616680 -981776902 --379309119 -425992540 -510405195 -905436864 --757781096 -24982140 -403284059 --935649492 -814593248 --644973246 -986937014 -819536990 -570329043 -221956692 -742312932 -60576746 -791405605 -563791942 -761981351 -482217535 --385271179 -824646212 -297374538 -743886036 -192843817 -683157812 -699305526 -121006817 -896322265 -369113451 -7846882 -635001857 -887901095 -969209793 --40568652 -230631372 -53825353 --382626490 -716849067 --635335818 -858159051 -678787896 -220994656 --200691885 -543442258 -930039266 -268812379 -234327888 -983711383 -68119879 -456185434 -826625952 -323806925 --858037138 -40409899 -949502083 -220085875 --394541875 -114143516 -226401013 -795192029 -484399157 -125472172 -776454761 -832636783 -502841888 -442068695 --712105014 -160654736 -783107877 -137965821 -551514483 --40638523 -844512646 -820831306 -549405071 -159782344 --977883614 -176224318 --860553882 -51451248 -238097326 --535721852 -379470318 -405279615 -488628159 --508758209 -845965107 -176074847 -673813866 -956432201 --204552909 -975954846 -463200024 --574408291 -119253209 -709534205 --682752667 -649910497 -115487767 -435060981 --385818732 -937727225 -743515440 -692157707 -968814903 --292106969 -283568593 --975725857 -768696416 --433945819 -133996956 -809158141 -599247350 -244102801 -514199302 --184083335 -359592683 -513656886 -293180878 -355544969 -254137602 -947597478 -158451430 --295551400 -385932448 -617464804 --919397746 -241984227 -522572413 -80967699 -370872216 -730168596 -442599425 -382998528 -256671472 -42286824 -313872530 -935852548 -380631001 -36548059 -596011107 --950196409 -966337855 -793061140 -92683599 -108023869 -67460799 -106887590 --278209277 -405291301 -885152624 --842772937 -417957662 -910071131 -883167282 -293167137 -994692732 --885457110 -157893951 -578992646 -203617510 -375660187 --410285550 -838688930 -740418918 -114651617 -973372197 -51801898 -650105850 --719918252 -770809974 -619826928 --76986637 -323935990 -374196433 -601383083 -10177234 --239036621 -727989316 -568282168 -916098487 -531164239 -1067585 --493932817 -640391816 -965752294 -497848907 -654440013 --54265067 -998181498 -9163629 -189747673 --595646230 -394775746 --476872542 -387645895 -347332263 -204969624 -182657587 -705073297 -301253584 -197233573 -738233784 -453038015 -601290152 -998136720 -978794101 -928023410 -837383430 --652196154 -875355543 -152019318 -553135852 --876761586 -178375672 -807992886 -415501850 -597861374 -194894034 --23739868 -414684823 --975122391 -429992072 --7175564 -56164869 --630496713 -393384571 -507565962 --674276646 -90582942 -291459630 --857341514 -115181010 --694950631 -48218800 --649746959 -174415107 --433354778 -463725469 --132477008 -395615951 -405715327 -130259566 -210579626 -350111963 -599749103 --709076913 -211653403 -341735846 -838471579 -527464816 -610003258 -483298986 --959271818 -453983142 --650042281 -149225715 -651196082 --245534889 -195581777 --262846199 -83304115 -417086636 -171485208 -54275562 -59302041 -838630334 -719407463 -125127934 --51786088 -555482035 -322530404 -469389198 -526509296 -379242884 -43615004 -497268312 --462713934 -191015436 -137358068 -129766081 -645855103 -93438011 -685631430 -669287130 --679688599 -388357241 --164663367 -120611949 -454077433 --877416262 -84855785 --415127353 -785932838 --307009675 -367983182 --683880853 -843758626 -66529587 --842944932 -533457344 -287854962 -200552153 --433448716 -848017851 --480016230 -153066640 -271159720 -241617557 --459044820 -662879100 --297014002 -855403743 -777735458 -849012478 --301133732 -103974189 --227656504 -76624947 -712572447 -440113926 -794724875 -896475558 -842597837 --475763577 -148468485 --578671401 -416194507 -235772176 -18016204 -473900855 -374083444 -71616677 -717885872 -824418533 --678778754 -94127685 -881328126 -604650737 -70109842 -788103652 -245403692 -745505547 -996873159 -725061201 -901010904 -878435112 --622922770 -779751841 --764828665 -653928928 -42526998 -701862501 -669640678 -895504600 -814902764 -90590834 -442540114 -646945587 --842367765 -683127676 -296482445 -993711537 -882125439 --142881358 -380916724 -552486362 -185574858 -756893416 -824960884 -750233747 -763900378 -521038504 --450806945 -288046887 -608139036 --423232818 -960724204 --887911097 -745752758 -577810788 -317004490 -398842505 -898338708 -819471028 -180289023 -629156303 -859957897 -309689913 -689355261 -466617735 -730145566 -367389049 -840519119 --298429779 -614453133 -737317843 -496752795 -2670546 --5684576 -529226355 -735181238 -773934872 -312968096 --693411432 -431767420 --628799479 -975585192 -925095294 --818953780 -807471902 -676883406 -336221983 -116156591 -695416822 -273374034 --388014690 -673767626 -158996090 -968354608 -534339458 -968278459 -372077965 -273644157 -479140489 -731890061 -445616080 -587684444 -553847465 -649901856 --863377883 -778628019 -41436347 -899588873 --839144554 -447710427 -461093932 -810663750 -89233682 --653026467 -440890163 -239618327 --203456617 -700471742 -374878557 -639487647 --512627513 -53846839 -399602979 --471008820 -936122468 -518077364 -686679670 --36786709 -323100573 -251124897 -228653434 -92754361 -338306665 --39672914 -218178353 -331556516 -871589984 -653539831 -63956976 -968112337 -792444030 -966499301 -887539617 -311714820 -286412663 -454242863 --512271351 -718263202 -458077387 -517990662 --559588078 -137489517 -188670586 -620901166 -929511476 --969226666 -51393043 -21143377 -410525789 -30009897 -824351332 -943380494 -665219264 -54947148 -938454333 -356167711 --663080668 -798897974 -409836044 -165699169 -455047791 --520127669 -561340561 -789364505 -935325398 --365699383 -951279607 -733607255 -400505093 --827134320 -653593454 -660972603 -358686541 --75278588 -364152750 -286696318 -525299307 --288391588 -599652549 -116684870 --113149760 -586671989 -568422512 -491158181 -648377229 --886796645 -370488235 -297883980 -637179281 --653264578 -814953079 -879962387 -610438566 --825905700 -41206321 --644764692 -362456909 --617116041 -182865729 -965448559 -839030647 --24536788 -271963107 -476757976 --219641770 -668503527 --242146090 -800849922 -839420353 -476444967 --752880109 -718450859 -469466740 -99493321 --413326729 -56270374 -904919883 --462899287 -952003539 -207080749 -785530679 -635461096 -17015400 --822128003 -669000199 --679828340 -379015870 --509032613 -958388962 -372695290 -442492977 -712941084 --522397729 -621851274 --79513459 -180670169 --73284392 -748738639 -987253321 -378522771 -478690932 -69490934 -824228956 -548023311 --482665882 -936054151 -415316757 -645645403 -431022361 -873478452 -38880927 -182771825 --811266320 -767992459 -668148306 -714993727 -439351580 -157342005 -864232841 --616487681 -30248786 -183408062 --604977461 -789228450 -376161260 -247135802 -381513587 -446031023 -307172141 -23360880 -870763241 -661270320 -431919305 -682806662 -694502443 --598299059 -25436278 --646066509 -677738531 --541977301 -40864526 --59659568 -686148888 -156428312 --140462125 -966146014 -229140518 -264170755 --524178385 -705324905 -255685468 -108231041 -409661992 -111104328 -662395785 --479192662 -460634356 -532042775 -511207203 -288782438 --769000809 -934064083 -30550426 -439428555 -470557888 -727977759 -468901339 -836129438 -242398380 --160357299 -712173445 --230559682 -353962188 -46405007 -795763357 --607572658 -401186824 -338819539 -738051643 -214488192 -441204442 -409422986 -670888058 -753965557 --640353025 -164939444 -431676720 -143557219 -14845095 -863900602 -88193098 --761058927 -676231495 -545924275 --127353459 -235283458 --138773487 -170888362 -283620880 -996899366 --132964953 -339231418 -374155832 --338841329 -111292051 -488011147 -497072561 -167831638 -536210972 -570318482 --340243264 -772788860 --194072258 -567956265 -757867381 -253370647 -301924317 -252960528 --476915032 -220094331 -285983830 -807701094 --53463648 -242281354 -705271386 --593934184 -569538429 -488116091 -753745344 --230329023 -968330972 --740648402 -778947568 -184903705 -33839199 --925528794 -993854152 -107001491 -448184400 -373278235 -420776141 -68900989 --248481737 -871804688 -758302910 -121015123 -353558790 -411232193 -130155305 -720207526 -521772473 --513827094 -741744919 --793532885 -460084153 -492919409 -619102011 -151498333 -603198517 -981836795 -663941144 -846013844 -543241075 -79722979 -984855193 --199753625 -443468462 -408030971 -779720784 -481448733 -46846511 --337002902 -921248322 --393248630 -212084933 -257649379 --702899572 -162188843 --610652164 -820061523 -113292917 --250248834 -970237110 -681706112 --482554708 -812845111 --243261434 -714963837 -880057903 -218943847 --715977137 -365283478 --710163259 -740026506 --859886845 -445692640 -231886761 -142945411 -777913593 -619652514 --795754250 -588763732 --277428459 -640225576 --899380480 -937897838 -440622688 --287933945 -950408578 -495801317 --88759799 -693334081 --70517648 -899678591 --817355508 -889359731 -814350573 --19961843 -444632554 -905364065 --395061367 -714139921 -308303541 -571142685 -562410552 --89063722 -452088152 --604266597 -975183755 -337229909 -553602821 --223668186 -479100304 -144661184 --956461098 -662434110 -229375399 -182254578 --276812586 -73069875 -236936451 --531498395 -73884541 -510445020 -704581221 -375877605 --526516213 -915009966 --857183749 -384190551 -257437893 --228836928 -465760629 -755256929 --394712003 -115808811 -232068946 --886987063 -625701825 -84444953 --854480355 -158878338 -602975548 -734652836 -911620574 -193738416 --931094828 -693343548 --811119719 -853996704 -441056593 -435880777 -15727401 -455650977 -565235907 -585788165 --685737473 -436379632 -948882184 --297883980 -477880134 --262197738 -486637542 -950377808 -476179931 -613156481 -842411771 -5698399 -424100845 -48925187 -675038383 -900306267 -5984665 -837953504 -562701345 -813006662 -373827192 --661073806 -528076849 -581447197 -670452205 -150384385 -502106125 -186943564 --497039412 -658611317 --146332006 -221448522 -266645063 -396868289 -404578061 --700585552 -242778582 --653338999 -363076527 --890375617 -464720841 -162123341 -641976159 --836200858 -803627145 --508353070 -433012928 -788695885 --568957602 -683605868 -694128557 -351715327 -971034409 --517047712 -405243883 -281599111 -480186504 -270990097 -602823771 -502213967 -240328718 -443505711 --345288820 -733756687 --806689848 -511683639 --497157215 -740184870 -121201699 -966378119 --319616590 -923665907 -846241919 -228097143 -472104904 --576228464 -847967882 -700186265 --379008593 -911733153 --610654864 -822376371 -704460095 --877136062 -906353004 -340119829 --983839288 -614551864 -611245200 --405441944 -378194881 -251605357 -865852886 -543653080 -632079025 -23753696 --210895257 -826479345 --455912997 -477806557 -272333910 --568019001 -193332367 --534003863 -565114174 -710796443 -569965727 --242928754 -170222809 -588404098 -80810452 -497668203 -373046719 -342944785 -253319000 --261023464 -58495188 -148729140 -915231022 --419505209 -972858246 -677823922 -573941808 -198795788 -634811982 -58350127 -19698202 -960256609 --369877353 -275157356 -44321047 -67672704 -745390848 --153912539 -692901439 -608217094 -76237537 -902386760 --198557765 -461466091 -241893592 -558168610 --798321627 -296634777 --479747440 -752806951 -669960785 -641655120 -401366625 -333052235 -429710012 --970612209 -981706556 --209313988 -653111833 -298957047 --524552536 -677329777 -677712039 --189353078 -907490879 -538614066 --612206533 -628192593 -695252006 --427419427 -627742323 --886364282 -950678156 --180491555 -390447891 -434829153 --650451792 -960329353 -444526585 -972018257 -268119772 -911183023 -858464739 -260991778 -921521373 -629791553 --347072952 -321264986 --574743049 -909399394 -982020461 -212347550 --643464157 -38923252 -720878330 --3914126 -214078951 -302835632 -435478784 --658341059 -228561278 -758545778 -661280909 --975169603 -816954858 -61462673 -174979014 -76707709 --700820337 -607434165 -370060951 --909994332 -280249141 -982811397 -279314870 -713954725 -840009635 -490300181 -329571802 --804581395 -428146236 -246285822 --89274204 -865921449 -10414680 --624578102 -25925612 -121140312 -532838660 -635274680 -645553589 -919090672 -88510498 --488560328 -59832129 --950243454 -474270435 -770199749 --113504844 -117215682 --285826621 -305533299 -187012998 -954780346 -397666403 -625693323 --17204837 -815552088 -523358578 -606084010 -197473189 -306188310 -211149453 -99492161 -72092593 --546034070 -212094196 -588981261 --727705535 -471336097 -451000663 --235569001 -970337328 -356195331 --892990723 -541146439 -667678895 -353382970 -287712180 -406943517 --961641902 -816225463 -604482114 --857988941 -464541154 -496368184 --340238095 -532814016 -254208251 -70735285 --522339784 -222585599 -211404927 -620805034 -356743477 -879066833 --312021672 -3249282 -59889698 -547821078 -105616503 -452455120 --841757681 -958691357 -263896745 --861314316 -606980199 -561364642 --443192837 -560263305 -869781393 -756896110 -234456835 -216450162 --463725469 -135000665 --97379741 -279334946 -56836683 --761922974 -710241331 --967360869 -104754945 -420193541 --816750540 -811046288 -981136398 -924433900 -616287908 -432438989 --737008684 -673547411 -265580997 -420133911 -373312613 --275599084 -321835462 -852275852 -100317882 -341708517 --589745895 -272808284 --238000148 -536748164 -125528810 -844679465 -376431647 -972725800 -585127998 -191893545 -190177771 -751922291 -712684360 -59011614 -505173040 --676045239 -308596083 -747184860 -171296264 --12905511 -671246500 --264919076 -693630391 -470229034 -934686770 -743111312 --551828576 -9870229 -520442495 -592266205 --262624313 -530852889 -644027472 -239878032 --882724996 -861372477 -283267831 -275141949 -754970976 -312376394 -510143393 -323288850 -336734006 --562292719 -19985056 -374895620 -316922418 -888037876 -864806394 -822518288 -364028951 --229140518 -652092159 -22563142 --13424152 -462681951 -574928193 -948207515 --1260421 -947440516 -432374164 -424613026 -680339879 -883381886 -886568240 -578366597 -974986053 --431467893 -314923787 --355775786 -464242863 -805749206 -355535550 --356222782 -221465610 --578955448 -889305321 -844342687 -722755495 -62000002 --604889439 -734375126 --263896745 -530274125 --925791813 -100729686 -393696519 -455778958 -675877154 -362850432 --454773989 -619254492 -272792361 --889305321 -108110560 --968775618 -914121231 -236841535 -443278691 -360602235 --714993727 -910997099 --323276594 -238088000 -244205563 --719218944 -642272957 -402798025 -769707441 -652630336 -677843475 -468768668 --702259601 -773646890 --529936434 -895536565 --429065125 -509691513 --102069152 -659011847 --399613758 -145423811 --549893879 -550796933 -69014959 --302037530 -351997851 --709517189 -168138484 --165842085 -546804729 -489093361 -539860648 -65243074 -864378373 --297519290 -970255427 --744474624 -16346119 --661572948 -930822050 -309899403 -313982190 -821909061 --914428225 -627903114 --27746199 -474796392 --112578657 -174825290 --251946352 -136446011 -648641642 -11617110 -474697284 --185809798 -311366864 -207154847 -996705453 -779148407 -221817396 -442313034 -44764562 --646470655 -763197121 -365444185 -847514597 -633993521 -834570747 --474704302 -510194793 -661935448 -143062916 --261726236 -764935494 -106116707 --887158068 -401270506 -517856381 -13769700 -307707111 --635243978 -912771007 -810209541 -985095270 --983968953 -113799561 -783359720 -892816199 -621175872 --210853800 -159946325 -877024464 -558462872 -446671896 -60921828 --974744043 -206333024 -810311046 -415813750 --812090348 -725330558 -180924231 --990407744 -611500916 -735854875 -12814527 -400293476 -188097545 -158589761 --589109433 -699854099 -582482779 -614333460 --320216448 -42972086 -490776711 -618576556 -720300646 -438763692 -129346083 -260821694 -670763394 -78547026 -433402450 -176299881 -575233491 -73865876 -947020201 --612416127 -84956050 -903675359 --757669340 -319598090 -632921635 -854728149 -468927641 -143626212 -164786311 --836178595 -276551798 --251317221 -573197187 -488216782 -435129499 -517965867 -531719865 --870763241 -837771974 --746484166 -791893786 -380609679 -811455851 -693664271 -340739944 -834530578 -654152519 -637257399 -515813542 -228948669 --791932400 -506757626 --675854515 -627110421 -971996243 -501901513 -413744212 --444863018 -240081219 -790849011 --532063693 -363244281 -706009570 -687975657 --688253800 -211093430 -273837034 -335972406 -935133345 -169620906 --532719046 -959882161 -853259451 -314582902 -797596190 -818031353 -2965492 -618778534 -15787289 -910329376 --791495742 -166215633 -855015209 --379102417 -859425075 --638439664 -88622363 -517081372 --300467453 -328325114 -971402224 -637716955 -339119228 --267076580 -261193152 -972586902 -452014559 -361861201 -906994223 -958680034 -316940965 -810125897 -853772925 -201063021 --572819532 -757347467 -621963126 --479989990 -657395993 --162504466 -567149959 -551421192 -759565235 --613477020 -359518275 --309901386 -774191384 -258894662 --112431301 -937112034 -555463207 -365001310 -3856634 -934231848 -103361491 -520904096 --522430522 -851624131 -663826442 --436029540 -569121383 -584376442 -257006911 -179781188 -726685157 --158709274 -332338083 -51150199 --830578346 -473381398 -23706835 -979341943 -516807851 -681354499 -581695560 -382633406 -679458327 -258658659 -977164199 -195655330 -664033996 -686678235 --771990865 -35967466 --683419937 -391825042 --290890899 -397055322 -842275806 -55237936 --90256519 -839395876 --254027999 -171715727 --552394162 -687833871 -938364108 -520885622 -207224351 -842010258 --938547000 -425942361 -535921889 -618682976 -311572764 -645976275 --897146109 -958503488 -853790372 --628521510 -448649612 -999238720 -171311786 -882645309 -685469294 -361426399 -155687053 --103149712 -859154249 -718863362 -305373547 -830636187 -298086808 --170887844 -828923331 -703519287 -771692933 -523660252 --832973673 -810972902 -651942345 -278027386 --602865442 -880907579 -99504220 -702499288 -560823902 -564060281 -169647353 --940510516 -73838370 -561075662 -227896880 --669459848 -635532843 -630964174 -590895932 -826549394 -63236516 --666705092 -377774148 -607639976 --267620141 -289828390 -582391023 -419258607 -812610951 -751708130 -457825339 -163226728 -897224811 -569049404 -696132882 --396023446 -407420440 -925261497 -753761889 --542287357 -691610324 --938853543 -363263936 -503254957 -595173828 --784484244 -957340019 -724742108 --823539625 -978043867 -327430713 -160954969 -406902063 -569846574 -275133309 -160818916 -744218373 --60797258 -713324669 -274983472 --879413225 -530474938 --318516699 -763451660 --813851494 -976310347 --86541608 -386037198 -747475752 -901099764 -978575934 -710758196 -802604672 -698919148 -820905516 -7360214 -405869355 -902247619 --36474268 -236303434 -338818080 -40350926 -510376905 -758582811 --294511227 -564339395 -734299348 -651990413 -871174198 -555715186 -895152887 -539116487 -389486574 --74547133 -415150767 -518154435 -247682659 -680137286 --541774259 -340800197 -455298779 --654607288 -51628737 -633145745 -650960300 -970595985 -812252670 --811171903 -937636275 -417339735 -994574053 -319980842 -630524817 --638772759 -534922713 -847582415 -488763112 --65500194 -279326308 -647305859 --386030508 -342116616 -867207734 --759147094 -157259312 -735672640 -940856991 -766191289 -695716489 --721482143 -239034267 -623588009 -923740758 --443598025 -143816723 -645586071 --399196320 -779660148 -316688637 -542018719 -820084864 --392609966 -971975613 --734870607 -713944917 -816363172 -447174145 -152969901 -891013312 -708632721 -798467483 -999339179 -858247799 -310275406 -280310574 --191207160 -790504205 --767626033 -272128765 --772068179 -678672035 --59730877 -638268491 -927451769 --725078043 -784281616 --234389894 -435898894 -483714253 -415233541 -705994016 --216931738 -405005870 -628346841 -523901046 --768300695 -360641557 -83146046 --995264300 -214353681 -984652788 -50553276 --414758919 -474824977 -553876404 --905234722 -700766142 -406088919 -157847058 -691310729 -647966102 --238512851 -286265051 -471212903 -636121716 -958672751 --903796754 -774129197 --130817041 -330345606 -816984089 -388473367 -850491384 -54734196 -190888866 -175732162 -499222846 -410995292 --746592674 -29466919 -928048100 -704269404 --633530474 -148055575 --148055575 -581168772 -237500878 -134437177 --187012998 -448019272 --357771079 -218468394 --174625589 -255172443 --548279958 -85409678 -373048906 -278241253 --620683613 -996138398 -722589441 -369861869 -425585186 -402180518 -421147144 -405293026 -270253548 --28323462 -913471114 -938100765 -331087779 --651066367 -336536015 -945763449 -228128071 -953286745 --243732871 -105261793 --797047340 -713565523 --636159977 -269454405 --410524716 -163793529 -388682777 --906642079 -674163246 -210183141 -726229298 --234853813 -267454911 -294984718 -821863161 -44295628 --42978619 -323805448 -453986789 -579081141 -431642684 -632385796 --406888148 -436818534 -684948684 -567795304 -132419523 -37171023 -830863073 --571913501 -662780919 -278136398 -251653680 -594652025 -775954745 --193401337 -15153173 -945961555 --573442103 -558216707 -215107398 -489265842 -846778638 -485290061 -388160837 -784738860 --78505203 -668611539 --216263216 -469992966 --686679670 -900381535 -366081392 -830225217 -760232138 --309545636 -561266638 -920773004 -471596569 -788347964 -42305639 --350184358 -546366942 -653606159 --320659314 -330425454 --681475318 -767539775 --279807024 -268821375 -412109734 -623611223 --757128812 -832188865 -867889088 -728046284 -374761901 -735094775 -723716308 -579122064 -312346625 -896113508 -517069304 -946144962 -123775665 -762374925 -871204505 -956519933 -467906505 --552189333 -655066325 -343971471 -897804676 -225537801 -769036396 -620164228 --133258762 -19923493 --64774167 -383019720 -245519668 -577372054 -223217752 --896079541 -196454733 -528523708 --35769857 -801625170 --857269150 -241111472 -40715425 -473512259 -614276767 -979316458 --800332729 -892499022 -738529942 --819310072 -256558803 -518399163 -972331438 -728194052 -701975459 -413442778 -219671006 --417401539 -198699179 -353371407 -460597678 -314147176 -262625036 --318205609 -450501176 -283963731 -394808607 --97850779 -423885597 -69298647 -476544756 -667780327 --269090432 -47976055 -906771930 -133934804 -215710585 -828108306 --380005638 -420275337 --543530865 -900608017 -27833672 -84096571 -176798542 --816065196 -432330400 -608638552 -759223977 -558847851 --263684350 -907943311 -393120634 -239021850 --156101503 -15788385 -147373905 -841170803 -475952863 --820094868 -605135165 -406126804 -284295166 --469707658 -101031677 -97339458 -448535287 --968229973 -745064623 --854062231 -806392358 -644172545 -504769305 -675142736 -644923040 --288107936 -223041745 -419297318 --2313981 -266892640 --702281126 -889134083 -184624844 --815689925 -319339953 -670541175 -906491320 -515379934 --468606819 -551833656 --273400727 -317315874 -516899839 -562755702 -283404068 --616491503 -701096757 -755827571 --726970715 -365707517 --981776902 -488916396 -251490140 -359746943 -60465190 --155980686 -807299264 -316503296 -336419794 --71910473 -178991986 --44991743 -845810496 --748128416 -495001144 -724378805 -654284924 -641565747 -569943774 --264287234 -978498668 -741196309 -428050740 -99416378 -968130501 -217061041 -767991935 --239475246 -134154141 --508327509 -997484898 -118812120 --656723059 -302240329 -341736259 -171909240 -414051294 --790268649 -2559934 -907086073 --872852896 -993587412 -184290255 --93262194 -290539436 -347887368 -672397354 -559583069 -846393755 -468395918 -882686168 --671929300 -576639262 -647327918 --773030785 -776882392 --335060568 -459393389 --176036539 -105783146 -88817526 -651087612 -136701976 -723591436 -825275272 -571195752 -641878950 -417909241 --921765111 -874956776 -269992912 -136158399 -593750398 -801172038 -845643503 -658919626 -741657441 -302765887 --70071794 -209710597 -461697534 -942959001 --62986904 -377703170 --908882448 -699979826 -869764811 --328007540 -772928855 -37224921 --31769501 -610824379 -283884714 -345687802 -718046133 --941720214 -50478885 -788822926 --368448665 -465502267 --966380323 -467340023 -114146635 -732278433 -392558390 -592114801 -417921787 --315447941 -320712236 -13764052 --942630530 -561171070 -168940717 -695247056 -660728120 -719239808 -385362497 -964872264 -227587204 -800631888 -762345420 -337575301 -498767541 -554247358 --783630326 -263413134 -804238582 -432856006 -825095557 -391310135 -160774604 -229876968 -90659943 -829972639 -248650958 -592515005 -619993464 -310819920 -188423848 -188086410 -270717116 --538739337 -610090816 --160051094 -556832806 -687179696 -757000997 -415630924 --85302008 -441241393 -184742970 -722969275 -929610670 -303883668 -955198663 -39443106 -742525359 -243163169 -971815445 -194548255 --59302041 -541199738 --79207565 -526674784 -587051092 -394500958 -873921548 --39840094 -600414109 -329690861 --364419116 -37230241 --49646142 -1892523 --744978862 -310415366 -207644473 -893686396 -49284286 -953361517 --233702524 -484613179 -672821976 -795981618 -197279977 --716900036 -467673037 -532976428 -920954938 -241488950 -547607042 -91615637 --555347142 -534243356 -751508520 --572397685 -496033475 -681642666 -698424707 -933770842 -148094014 --794934837 -485132414 -362571986 -257552668 -518559509 -864366696 --449810094 -79388621 -943483146 --728716235 -667657700 -699676242 --389978239 -405958352 -780019688 -552141339 -327088761 -22600034 -663697316 -668403154 --6453254 -238768335 -135652957 -912140387 --131862107 -910514712 -724979627 --256352723 -100888593 -611649853 --756389667 -190594849 --686007247 -687952363 -834827491 -908904658 --548334313 -723929844 --399769684 -381505550 --288380900 -647559131 -393301035 --432308416 -585885195 -879817454 -268286890 -675757965 --51309400 -794598958 --802353170 -558563651 -455342498 -239627282 --405485198 -864350744 --228190489 -103572987 --493239214 -587412014 --49287401 -670797801 -382142414 -193611099 -934566018 --999976410 -314685164 -905287952 -884992735 --682154708 -789312221 -206713558 --806633154 -696037759 -273202441 --389242567 -648516606 -790430256 -386773194 -385616133 -789540521 -324135961 --604124053 -690633538 --891485968 -951335846 -773186882 --458401308 -754154734 -433707678 -197016750 -480186611 --637454832 -861786204 -168970194 -902704043 --516563357 -453007834 -528196775 -308116155 -104793062 --255188165 -80346870 -933827412 -739967190 -880050346 -404923271 -212089 -132393197 -443275715 -980286354 -976742938 --337532771 -919990176 --818217061 -354531438 -594901777 -489707259 --530274125 -650489198 --214880983 -178974822 -961778113 --961059526 -610075415 -194236184 -418957938 -735917248 -456809648 -828494527 -367156867 -787258918 -86782100 -188019849 --775309116 -338505839 --621733755 -338525016 -944119540 --763166100 -185327859 -476858772 --933374148 -315737024 -189191424 --954819027 -623038656 -867928242 -396909707 --668297406 -790595057 -582158894 --523998621 -114253976 -348506534 --404317574 -859201270 -361800277 -196157008 -887367915 --844123126 -697451421 --470684809 -102869164 -909913955 -129214171 -960868859 --516396730 -399525594 --908979892 -926607765 -271268077 -294070798 -687468056 -263015728 -62372887 -735556155 -314110148 -906193755 --413756532 -656594627 -794565585 --582777336 -132427017 -79728510 -73507638 -944520531 -215766992 -977853846 --329806936 -290422033 -833609539 -907134337 -694989018 --764068435 -541109000 -906748406 -370143510 -113513910 -95833079 -156868959 -690307891 --401795226 -684368522 --693978936 -658625660 -554238028 -984119042 --997378651 -362980573 -401020061 -293800013 -872690077 -816046212 -475849815 -659477881 -260368445 -109039373 -180947462 -658061721 -380215069 --755289391 -547946847 -632801570 --871202425 -523396147 -458639235 -936333127 -519853676 -278372739 --820465090 -662598149 -18383491 -326667586 -397752334 -664581840 -262713168 -626188153 --59599482 -735266618 -571361997 -636520551 -950276810 --175373939 -390207261 -489546512 -101695605 -733505980 -200681877 -531579366 --71492799 -881833620 -304353275 -123456077 --212454862 -206509844 -207832388 -314200614 -905257354 --745718589 -465801479 --853870232 -97452323 -704693896 -532407890 -492478141 -311584431 -309410005 -360583696 -672170312 -720968887 -697949284 -768195681 -808141972 --390136164 -907870248 -398000514 -974978990 --945395523 -334290513 -586452557 -448478093 -566862698 --528161526 -801212643 --999751654 -725100328 -804152546 -312146687 -802582148 -633104115 -492832865 -386429646 -466136839 -278966865 --418848160 -751765579 -452354928 -990696944 --799901632 -606078144 -788424705 -919396728 --972800360 -870064550 -220143100 -569940359 --694400101 -625895526 -389831657 --687942823 -577713410 -152672615 --87707415 -120466096 --893361069 -183587696 --385905319 -405555050 -54245581 -701418740 --518974247 -845373744 -815753801 -642005973 -66077753 -938007235 -361339039 --363901137 -636920356 -474239559 --277415735 -972692653 -328667292 -453998217 --758572872 -341195599 -222965 --810962834 -465474484 -48007725 -81614340 -884219800 -838067344 -687706106 -365652677 --89817980 -993751763 --475451214 -160977189 -861919262 -578579401 --954375602 -274432435 -777460702 -464869516 -777038832 -595786831 -134692229 -798763562 -950213357 -443079103 --193890745 -422127996 -733185251 -400784652 -471575191 -937349939 --471420412 -894663308 -46278210 -773466104 --353848673 -89459987 -951730021 -622512712 -748992587 --97168819 -404936502 -107564393 -15580277 -383763884 -873358793 --971288056 -387603942 -407305583 -410743150 --943389931 -666466266 -998777773 -58065442 -781257685 -223095884 -729734338 -531873042 -184107965 --887437484 -685225004 -725313672 -89248392 --511972490 -216928833 -568345832 -744814612 --224447090 -115760997 -619963746 --740727357 -196669140 -274171159 --366631508 -233262052 -862707554 -499920913 -810519986 --661573021 -917955830 --966918228 -606983376 -916888467 -217961199 --813493167 -260479439 -831347999 --312203734 -32552868 --826300651 -485725013 -618490065 --755551569 -48073379 -326604255 --216010974 -715180449 -903870336 -139921650 -450865696 -874685092 -506655416 -831408583 -811517560 --427722744 -992126059 -517814095 --579022769 -692403212 -605971247 -9414031 --98617572 -59337881 -509514450 --655593817 -765273399 -920783710 -860364170 -389588648 --732344379 -810642015 --959356366 -424932930 -224158197 --810128373 -189103235 -355200897 -191557593 -124250729 --153413248 -365591436 -471959213 --162723468 -366418795 --945812963 -466990535 -651026714 -523199551 -411738992 -170103936 --580731716 -662210623 --790145323 -90126430 -287949433 -352271364 --947138697 -801701901 -631879695 --820409292 -186265333 --612182431 -773447179 --692415986 -445178213 -175059451 -510925088 -817571224 -466459801 -712165296 --525544501 -581670126 -563259648 --801930383 -987460802 -981240254 -568608627 -732660123 -108328003 --557430968 -455466132 --448067220 -266163376 -973070453 -193254979 -87343331 -39084893 -24856877 -80075142 --174851911 -920431609 -474657990 -346151036 --170247715 -763380208 --481788168 -806044725 -882105839 -257359262 -33498880 -85436462 -621620108 -510830243 -368326304 -879801871 -228371114 -190192351 -765974005 -355745680 --132393197 -221604987 --21031149 -941315304 -483895668 --642309656 -689768310 -778205731 -37037667 -34806120 -20277483 -481241512 --460347195 -416740390 -68267073 -127875290 -675563630 -848804516 -126510690 -215257644 --627358954 -112067659 --53951864 -129538662 --726318690 -376603018 -41325593 -844620911 --655196664 -416768401 -762213352 --752713065 -263583697 -204735928 --64749064 -641087643 -504908831 -853796574 --161382247 -827410111 -290274006 -999301135 --592515005 -852953258 -165596915 -21353569 -841888687 --175157583 -320748257 -959122621 --668741531 -373879295 -649958139 -227494726 -450392126 --760321322 -385558338 -798580664 -233107154 -529068212 -672984215 -780031744 --843342877 -922905603 -367942770 -881045236 -889988706 --396788196 -830353487 -484795983 --879844292 -60249419 --512657270 -18234859 --785614291 -711465872 --210146552 -902913426 -740842883 --402183256 -959080573 -197154775 -151415230 -371837577 -350525634 -47912854 -110200929 -668010124 -877466563 -213853902 -776139051 -276215230 -346884140 --251843302 -861371518 -55670252 --38880927 -58310542 -392293300 --631766083 -744020813 -887380189 -659788267 -791155334 -433322605 -48054299 -239174294 --573169662 -488927826 --13556844 -459065287 -92648759 -182028192 -623084372 -686212772 -649340756 -986721245 --329319106 -611190014 --539908367 -934991091 -406188006 --857411222 -489827518 -214069490 --249760704 -898396274 --769096148 -668459114 -512481499 -987095901 --262673718 -965855507 --562005104 -341361466 --520007427 -400368016 --887038144 -863433162 --555482035 -74326297 --677915322 -876276418 -345909213 --305006830 -335901758 -243146251 -472654424 -995312786 -366982400 -899644903 -777835993 -902105889 --416204151 -483030154 -965624589 -785147941 --252892075 -714856771 --342414380 -510660582 -610855845 -166782380 --393095432 -924983772 -172898682 --144656193 -725162388 -80349209 -341215842 --623848477 -71692706 -132295664 --819808834 -415032670 -913834103 -674672704 --392128076 -3190563 -556818949 -10181355 -268896296 --423333452 -692913781 --225434230 -555257095 --902386760 -612133631 --91963711 -792767215 -299486607 --546805941 -904661823 -357064562 -392657471 -571580905 -145524501 -842373489 -335244538 -328017745 --326352494 -826391871 --547821078 -969150729 -445750596 --454928773 -498384002 -668224795 -949461808 -317419955 -288280217 -741189269 -60534990 -795016111 --151251919 -9197046 -394222243 --218113471 -544521966 -603860121 --882143801 -134843968 --731566156 -770353400 --676398070 -226814295 -52168021 -987372263 --130578150 -377144276 -759934293 -624784200 -830329121 -791776388 -192357544 -272888377 -699180276 --772139295 -503215029 --340057937 -633446588 -338973437 -489432718 -204660765 --339621123 -341500868 -987830969 -290486107 --43632956 -782722378 -790443885 -629422717 --721201244 -311683941 -55450922 -484143505 --586910274 -276604319 -184007932 --699434764 -336411473 -88511385 -297933017 --244310680 -449639180 -798512830 -284958137 -574483589 -186383964 --493649329 -670675802 --494766278 -823957959 -69954599 --593000130 -183381087 -344756207 --237013079 -68443095 --352866874 -649598989 --585097185 -356940810 -520868198 -859676424 -780380766 --792621592 -510901231 -97353809 --120076988 -54087024 -296891700 --533533935 -875526448 -534705867 -776021727 -108898543 -679401945 --385646895 -712195591 --259040005 -794234118 -971203654 -924496827 -587305822 -280692347 --603148661 -61776076 -353136615 -421077899 -504304423 -927737863 -602136751 -68930235 -644927930 -877022141 -548788086 -631684502 -896112212 -850030091 -460068610 -626908646 -494233784 -674681809 --912934746 -881584083 -564236421 --102143446 -282662674 -961043601 -472912703 --187077315 -661229628 -553311711 -505597038 --944908051 -227552421 -963980688 -508232616 -420821481 --550975621 -969085979 -586478670 -804700988 -459435398 -259278217 -690230939 --246166377 -310241345 --181139134 -934310800 --23721194 -692240349 --909907354 -816991242 --289198914 -152486221 --353982804 -69500562 -851281699 -380662916 --913417018 -406447654 -569469643 -226201482 -85325976 --905287952 -737419540 -648687800 -324062342 --820878466 -163893606 -606230505 -707138566 -819036300 --317419955 -848500697 -130123901 -87930494 -367513585 -906286979 -82986778 -944661326 -749403407 -76584583 -414718931 --210700491 -894763576 -614816872 --906967296 -549867036 --893861641 -543854623 --812575261 -496917184 -396712044 -665101301 -284682019 --408870732 -867341252 -517864706 -651135100 -87008694 --599426302 -996016492 -55725585 -838668893 --922754812 -42573245 -717165561 -11037395 --710111197 -795348136 --243749761 -481304064 -339487597 -157102565 -687973473 --355948354 -869904856 -828090516 -191840769 -920843215 -478121178 -938362085 -335808218 -381599830 -949819644 -282794460 -826332385 -31510351 -930420142 -629368892 -111981599 -969526800 --832097079 -63925991 -663106874 -797247719 -206393658 -903032666 -450113285 --778357729 -893183951 --621198120 -553805407 --923706596 -95593693 --162474388 -823073324 --848304129 -690340830 --346064892 -583286718 -743996291 -933678978 -824485752 -584314514 -115199274 -100580177 -201812072 -589620816 -596123211 --109105883 -871645333 -213648456 -211019933 --504539228 -384406672 -576975756 -598038714 --404980992 -682939063 -616763538 -872100702 -685640227 -960659979 -630890916 -774681927 --879278277 -833043949 -906675535 -590117098 --607478160 -728023901 --739179940 -814267469 --89265505 -991303308 -236460550 -629332210 -954053623 --49933564 -327910652 --910802031 -865578023 -163922659 -68042870 -939186330 -299571218 --605709893 -380377547 --419003135 -490562393 -752622248 -79432359 -470156518 -128094203 --925314535 -848192927 --947889906 -705625338 --28047140 -317436162 --364847198 -201626152 -631722563 --727131587 -94605247 -343034994 -629989202 --395643499 -100192516 --160396819 -596132817 -425991365 -616624037 --639525578 -797129559 -502219483 -877386466 -563061564 -969830749 -943904492 --932664253 -510319652 -982722899 -672806755 --894144921 -240388954 --50800858 -528919347 -357500997 -3175946 -444072854 -21647743 -360443605 -268522156 -388282602 -588905598 --409736723 -873538953 -599999436 -607104077 --133583927 -425735486 --941209561 -381117535 -616264688 -947831017 -927787874 -152044317 -86129947 -475551940 -564644242 --41522191 -114950497 -428116132 -562431852 -893807620 --51310102 -345885915 -943058547 --10637873 -840469330 --172406844 -801275249 --927381513 -179527744 -186320078 --985287089 -275089767 --633410713 -814139328 -364772541 --784108989 -263419871 --236710191 -908704458 -756362473 -383195412 -147189575 -295368040 -814542866 -953050872 -853494469 -176964766 -936079317 -358039624 -318671249 -847370703 -661879721 -297367259 -45526049 --164070183 -119154766 -711590319 -662153437 --747235876 -640506458 --190177771 -701721578 -434821781 -888193843 -968168928 --85182499 -120289199 --367071006 -735600686 -221823427 -236583892 --747843093 -236730241 -218580377 -185219503 -401861881 -882551050 -580417104 -51563359 -374505627 --451425499 -1036324 -28063675 -582315712 -795690493 --193871557 -618715740 -236347172 -40990069 -163696318 -990285130 --507511270 -96630020 -235731143 -754095504 -544180470 -389452170 --478853802 -354248628 -82773615 --698934771 -267640058 -336022021 -637351324 --650679096 -752502755 -429766805 -360758810 -108087183 -395767718 -129672204 --165454024 -83406004 -958937880 -908031590 -589718738 -245271069 -97107973 --821417742 -707792001 -365653971 -315086804 -624616143 --52559702 -104351451 -176931177 -48835328 -292060788 -131378769 --823407942 -956091298 -80310026 -394587894 -342291764 --425992540 -585466349 -443678140 --823697343 -201861036 -296489003 --668840738 -921025237 --964816339 -921392388 --15362375 -127271987 -866913601 -323424077 -223343291 -818499442 -626742853 --838768713 -766394227 -561788076 --504964379 -640674964 -451966655 -24934888 --862222382 -397679933 --916888467 -430492905 --125407246 -334910733 -317291211 -616494222 -594316471 -426728001 -396481377 -413694640 -61402809 -307845728 -907183876 -465899676 --316384590 -702116229 -670183725 --200135680 -845014974 --206850821 -476361476 -253756695 -570121392 -635806533 -578413249 --725847825 -566610842 -15556025 -590713771 --610859581 -23376756 -919617815 -988609178 -737235324 --928394491 -492611341 --948538408 -152308265 -453924931 --760770865 -47156765 --278918959 -221992973 -186405711 -966228687 -613930127 --87963018 -633214988 --791776388 -944091308 --431820019 -895837836 -650308303 --936038375 -401881186 --85733633 -65734235 -70393853 -306421537 --827410111 -272312471 -704209437 --340588079 -119071291 -712707372 -889593813 -919454761 -69791305 -656669844 -789433440 -477071173 --696421335 -511310027 --139994785 -948058869 -345191362 -288524941 --465698742 -161760798 -51389592 -12438448 --897096949 -888742775 -476725247 --559528145 -534409480 -953545698 -342268020 --262031596 -888154832 --302419511 -203144797 --193900836 -720675438 -283912185 --442144365 -57328711 -16001497 -687516337 --64398214 -820833362 -195620734 --950227032 -865260308 -720062902 -777506842 -14108613 -942738534 --446918294 -866383780 -480433467 -734095327 -287904875 -367545007 --180336078 -245697544 -24924451 -28852706 -980585566 --263015728 -221329589 -487463616 --162276503 -702984728 --983337617 -490221167 -635845505 -58829415 --741196309 -900984926 -981813914 -146410216 --549441841 -131613703 -702097610 -274029337 -524444914 -539027778 --774729035 -769381957 -988219433 --340705608 -475110056 -371433691 -365419549 -984660425 -404848672 --721333082 -233368862 -808067165 -571009308 -128407583 --296178499 -202349716 -224836177 -78951171 --276833924 -628669248 -982961915 --869467947 -147034177 -421874277 --762083599 -410905829 --838543994 -133559285 --214800477 -967072008 --132901064 -517147761 -817517467 -291503877 -487729134 -618226189 -53557931 -396262081 -618978117 --681448649 -231056738 --640617580 -311325671 -210205307 -184262940 -6985972 --560814549 -8574821 -750015564 -991215313 -647540300 --231861223 -483292152 --794140708 -530980228 --697860907 -105913508 -760785706 -393826616 --606983376 -763885263 --572368142 -135917945 -854333264 -843592242 -299111180 --191458601 -594583228 --383290357 -5107914 -495187974 -748688270 -303637077 -262970699 -636132577 -809974753 -895352406 -470939072 --486167409 -615172615 --636353129 -824502517 -544075371 --277730833 -867461726 -416029586 --969756635 -66758667 -115188841 -937853267 -248225244 -350605000 -510087488 -471484860 -864344291 -565988284 --445806264 -203915569 -359587079 -14927125 -934637443 -735403387 -173788411 -129157973 --786150313 -934740541 -47947642 -596266620 -379742194 -741883213 -139393499 -628059181 -283302212 -119958184 -408186263 --718539076 -793972646 -320076783 --515707223 -127737227 -932817614 -923622268 -408535510 -1581605 -164355496 --387603455 -872093847 -968226812 --579738407 -524980343 --673587927 -234803077 -113009351 --935111182 -393259912 --355350207 -465910370 -778281614 -707316417 -945278011 -893287614 --364746512 -517022240 -606367186 -93283474 -187179467 -36304237 -548818105 --522097848 -874612170 -177817828 -493750928 -7040877 -378778802 -497654512 --575501197 -658466707 --882044658 -265895662 -769633713 -853236858 --211914567 -705548981 --495343681 -271760025 -520883677 -458788382 --741613623 -547108806 --653832830 -999312888 --100585374 -498325748 -543156702 --180621643 -773688369 -369172631 --411188326 -510601281 --43415181 -97965198 -498594363 -449488182 --67021212 -491617386 -642008239 -119251149 -740978092 --716370528 -343674501 -439910162 -819177246 --289356735 -891155243 -247500209 --113298773 -984428226 -83124332 -511011023 -269669647 -55034065 -938838099 -661626359 -630918283 -420815308 --205850055 -642534009 --972549760 -188116464 -446390286 -927291105 -65149388 -789648598 -351940433 -331414467 --186179634 -938333879 -906110637 -134522984 -396076615 -718579361 --953141881 -628580664 -50297092 -34278190 -137100180 --471177538 -659054280 --792370763 -370290508 -374278491 -887846768 -818064843 -769154695 --174449388 -985142722 -382330901 -226598780 --938370512 -158488891 -324420121 -392068906 -259147855 -519517373 --387745010 -473543156 -735327933 -607077525 --610659801 -376717529 -66638129 -657530391 --755302744 -655075527 -707064072 -18389108 --148326173 -9882729 --900926024 -308896763 -517149627 -103509603 -378975289 -333732690 -889276457 -150792976 -781398589 -912994616 -160695216 --775525981 -73095887 -646263829 -758220540 -643037700 -805471164 -26795405 -785781487 -634587567 --861654438 -761163470 -344188230 --285655493 -96621764 -661284873 -534939996 --775897503 -426917654 -10915402 -522106026 -837722690 -737452525 -162875372 -560651012 -453515590 --830183989 -567590741 -309942083 --505036093 -36092805 -446398487 --607374733 -294179545 -386948947 --524270098 -805055600 -852025584 -823980764 -494007265 --944665951 -193475313 -602324254 --491032019 -642008932 --113132070 -5209344 -930958948 -656110360 -606804973 --541376152 -193660099 --800589298 -913788193 --230345535 -772704307 --127845692 -85399114 -563851136 --493872743 -548529277 -965684987 -350815250 -593011166 --301588732 -384501661 -763181198 -405833538 -295487210 --415219138 -937341138 -304525038 --562306352 -697136056 -179270149 --200259557 -640136322 --475291883 -878865357 -398110722 -253246475 -288057879 -564774046 --867984965 -432582554 --16170912 -409901952 -138917434 -336705493 --623273766 -823547409 --303952379 -181447609 --678153458 -632635952 -209908524 --791514086 -180756640 -907677706 -257057027 -57894161 -765277197 -978934066 -927969785 --60931634 -827500918 -903713873 -189464297 --903992605 -772084117 -887649954 -97568123 --80956170 -189282377 -759945215 --573166918 -396878535 --247873770 -76875434 -211011876 -948114219 -128059557 -830371836 --916198599 -393867819 -894827526 --354993602 -728933707 -619803614 -714933719 -87802585 --90276442 -417725588 -58992319 -922511411 --179290202 -857707256 -261334585 --415878635 -883411551 --675744783 -763129265 -892078180 -255332708 -977405498 -863004449 -502112967 -473653207 -225671244 -669447861 -229592157 -798279369 --132218855 -353140066 --946886369 -992582 -495287064 -571951461 -230983848 --971219653 -149994469 --711331513 -605664325 -400467693 --117442189 -8747384 -685928503 -429668022 --326305636 -437079181 -384404673 --889888448 -48832383 -807577753 -777756043 --590112158 -577874019 -58135677 -496454401 -829246701 -763657298 -23561840 -642252741 -661628623 -433376687 -899986966 -775484936 --860249399 -16998819 -140702573 --181494461 -780997089 -756262619 -185076580 --898133703 -545183138 --48835328 -697458595 -559021069 -65270611 --152556424 -997148950 -496816093 -615650281 -671688996 -342742244 -384859229 --533990306 -126140992 -650781834 -325664215 -198676289 -782707998 --442588161 -575728357 -325592820 -815526672 --441811791 -662387731 --524188747 -436640680 --547397557 -465725191 --988431546 -622678347 -877793343 -357531256 -799491787 -488945464 -485577361 -342590877 -105999222 -150021807 -188209067 --792939239 -764965977 -543991226 --636686287 -334587651 --568560422 -38881750 -207737409 --786055013 -835431510 --54245581 -257704007 --132346265 -777082787 -65326638 --58559838 -715596730 -537264338 -495821639 --421141751 -847514381 -204684495 --824418533 -521220100 --812565482 -192401850 --626126028 -588511022 -397274932 -848299539 --485846122 -162546678 -351094264 -687151473 -112373853 -923322712 --935827171 -993872 --40093628 -216073464 -717101792 -752587168 -672659493 -648721845 -250023987 --99296721 -646440450 --839482445 -161840695 -928260281 -939176748 -135623454 -411109424 -165833815 -683598523 -761665953 -457531632 -474653167 --591394617 -133949232 --837979728 -711672516 --817676635 -623567596 -969773637 --608441376 -120632150 -102991013 -173864768 -55675150 --235225830 -184207658 --80763080 -627469953 -618672078 -120686144 -991311257 --999686065 -981236238 --865370739 -678594021 --650237280 -264034373 -897628048 -523630960 -605256642 --725861502 -118378134 -255153871 -48511183 -599486984 --219897388 -990600101 --132120648 -804373225 -637970618 -242662540 --511967318 -219706791 -679456768 -215827121 -840703238 -620021319 -751260671 --457298100 -444019079 -869875875 -572434991 -252371397 --755769054 -219941956 -548749304 -758543018 -828942327 --548285061 -254720301 -510601151 -868126089 -472337169 --77261552 -15887271 --683718554 -169191144 --765261046 -694069195 --646977669 -896744331 -275106912 -186944146 --787275967 -463935951 --473889963 -174225756 --897382823 -128014833 -499457551 -271936942 --180097454 -261873802 -854434180 -668842532 -898007778 -727915533 --181402352 -586477657 -603865811 -212990762 --648348483 -892999376 --974655594 -53576225 -544844068 -452043339 -518376812 --438112834 -979401368 -170413621 -957643347 --550032994 -825930738 --270719556 -789645862 -251560174 --761554939 -498803529 -886006192 -760589049 --95246068 -308391393 -313900221 -550108651 -548709398 -14400663 --994379039 -407359562 -782448899 --183377167 -588353824 -285483764 --182058440 -254811843 --606857881 -248790156 -258967341 -720721758 -263745613 --575178083 -488213587 -970872147 -300932123 --323060688 -970034176 -102865870 -140112429 --478940633 -58056004 --209645026 -486384437 -840202879 -20523097 --116680913 -434030516 -411102813 -967003500 --190137152 -247138923 --984592126 -444447700 -280874559 -135532844 -310827504 --100717861 -247541520 --716169948 -921537818 --31429617 -604634796 --848325178 -535970710 -777520681 --856288700 -514450468 --858571872 -630872246 -857309697 -515214326 -692109114 -294531471 -173387643 --183713585 -771103226 --850611857 -510869304 -682667166 -674474904 -820284848 -117021851 -594946776 -629105479 -260498570 -640891257 --471212903 -999617026 -515659662 -732789129 -493502408 -414643441 --937113474 -254429335 --319414628 -876066520 --732924919 -509230578 -176451008 -743254324 -769077985 --338622225 -970594334 -677902101 -528065038 --717134422 -944343120 -212665489 --55111661 -762545561 -175622143 -566385968 -684072595 -444723249 --109488865 -591692949 -913593260 -702342751 -270694621 -725092571 -846127506 -590965127 -296618465 -812797016 -163713345 -488962150 -9409786 -628190189 -458940345 --793731774 -337092639 -170763825 --237430721 -277817395 -926912943 -382034245 --903939548 -540497354 -57945991 --692260694 -59247404 -110966201 -301032030 --864523986 -299862384 -723426522 -554230854 -351399089 -506310447 --900302989 -570845054 --971655131 -977439440 -199427262 -864788946 --416393854 -305745004 --205753529 -988225301 -225323001 --15212383 -724925361 -62169639 -715904844 --969236988 -366427073 -313513759 -573932673 -327211617 --555581449 -583382638 -740773624 --871992678 -645099905 --789433252 -648173127 --787920491 -816167193 -901423539 -847277655 -930640982 -966350475 --397602568 -400467716 -996743276 -3018413 -602070580 --170375143 -865209834 --770691067 -102820752 --18074697 -954347215 -170654333 --607502357 -954728590 -450883145 -257117429 -667491270 -31971699 --605073168 -989176492 -720278257 --961652766 -591155874 --923216495 -341188594 -329173301 --447644028 -695135370 --723140797 -693065820 --124823584 -744751324 -885944435 -735518121 -201902398 -529025086 -891279475 -638573254 -218971463 --337908703 -210903472 -489781283 -869743186 -471597370 -354221815 -138691255 -95125133 -186846470 -390390910 -489724921 -569300181 -79860278 --87151213 -302566562 -795088054 -974827358 -203794973 -15832261 -176565751 -112761979 -386027343 -579369353 -842168908 -771603717 --178673451 -746918692 -114735717 --642803213 -994909261 --527185555 -415464592 --368002969 -91473084 -214903508 -233859096 -163405579 -224432082 --842547975 -402905076 -75354635 --935133345 -700405532 -25934171 -639389823 -234244600 --643847700 -93576647 -785528396 --664013621 -384223605 -458886895 -218900877 -627046798 -137870850 -413682754 -441529745 -727089826 -469883866 -692239262 --97599298 -908971345 -9939298 -811396715 -881890001 -124577388 -515498222 -485078049 --780894128 -829902569 -602521658 -863809189 --931975744 -208768566 -515343780 -759901732 -52147043 -749339589 -872709923 -749996452 -430210581 -814391623 --877016990 -762548867 -311494528 -49162516 -937966285 -307493315 -107149150 -48754793 -141259300 --626024490 -694788581 -889850441 --963113610 -520124208 --506756294 -404917327 --79385775 -326000307 -552601034 -739680199 --930181079 -891872539 -178119630 --557678710 -828185681 --573808296 -843694187 -641552993 -69164194 -327560821 --602477402 -969600079 -370603474 -315611865 -721582106 --772183594 -658457838 -617433520 --267083351 -714240888 -127318847 -27546961 -128005249 --308254043 -106938492 -994382769 --407894473 -677359637 --142549441 -233860456 -261517552 --473279459 -655118440 -687299907 -781733252 -674930019 -50962905 --425421542 -503337887 -618102887 -819638551 --914261182 -328833108 -809196585 --810276913 -696031037 -275409770 -980932307 -237332840 -834783980 --503039686 -620721577 -411545140 -931095984 -706441929 -225061084 -476337587 -633092272 --480981343 -212926761 -636616395 -400421069 -281633416 --684287646 -884268202 -327612743 -14151025 --308712982 -80833870 --265136144 -83762510 -853943270 -104326612 --30445059 -429992879 -411770830 -808607287 --192106237 -242545886 -908493940 -651216595 --155134924 -675030398 --381970691 -48630850 --617314263 -689576916 --73252840 -932222078 -557574195 --214574286 -27775559 -533344973 -184958522 -392123810 -433111036 -349673565 -518589124 -347910660 --44864068 -979262590 -697990781 -114058911 -151220262 -198194121 -11887010 -444114919 -770401230 -835533716 -785489625 -168494250 --531043764 -716692478 -487100252 -461840764 --699363827 -348845441 -760897787 --50406541 -379386916 --895067781 -615890069 -850140995 -233132367 -934139932 --802141721 -744032228 -241240520 -278826174 --968321818 -785246267 -920428882 -431507653 -666944480 --68530796 -440028878 -875304978 -727093411 -154353678 -844923571 -535178553 --924301793 -499130708 -143877262 --367873303 -197019608 --424113894 -275498728 --590357484 -410139473 -360069211 -416669996 -343942478 --539381106 -365242767 -144570584 -16738288 -533699160 -112599650 -712036921 -871852880 -864129225 -642811560 -94338171 -834220877 -513287013 -611142060 --254576786 -863124238 -181200752 --3743818 -991633879 -288492948 --273235264 -333905094 -245844195 -403352118 -487549796 -693561061 -788222126 -122727101 -572156863 -712666812 -842037099 -646187833 -472682538 -814485168 --829127908 -19682930 -516227815 -514033738 --134782252 -97597914 --793928745 -332891853 -730579229 --838562855 -871181467 -629445529 --59832835 -267100555 --759188316 -676009627 --183580576 -1618181 --324130103 -562174055 --835704402 -694382189 --438618905 -579453666 --588966153 -146708085 -652502275 -891747944 --282960184 -39480272 -667212767 -750498053 --527037591 -210537596 --754266012 -718387477 --641126563 -398845136 -50962449 -234355342 --525795708 -735431156 --555735552 -332311044 -432644189 --871508370 -743081308 -245650110 -103958863 -970812380 --299117307 -75121669 -58225054 --141257925 -94499095 -525829600 --361544259 -868425079 -926962679 --319805381 -779704840 -983051354 -997062807 -650992203 -864673563 -223255067 -60365416 -292954947 -993288729 --204370544 -450053268 --967293754 -238312109 -151152507 -581970127 -234769465 --672984215 -274855957 --372297735 -60979359 --289852123 -555027826 -497730314 -26943958 --565116920 -791104696 --487573884 -869141301 -325225046 -56354462 -704380350 -999435841 -783779265 -202505451 -437439236 -454349323 --739008985 -336382664 -600240737 -552804558 -961624176 -294916012 -197855490 -942785159 -584486554 -255256903 -277044784 --571462406 -951697590 --276176236 -348111986 --519819146 -653169486 -61309378 -584579273 --349133178 -308858127 --662609805 -374237710 -680364321 -61186711 -936711082 -52416775 --470033386 -254679394 --205295239 -506056700 --983055865 -229761863 -290759569 -641712298 -425445278 --108241878 -867657329 -734814302 --120279155 -743191961 -810479477 -798086104 -921136051 -916706012 -187470536 --119823854 -952664740 --204514635 -962828653 --816894550 -242942541 --455984047 -781587752 -471124429 --108085324 -462078769 -582094731 -927558532 -292495546 --615047111 -996009255 -297522405 --816725275 -757007033 -199997440 --760387900 -49707816 -548081892 -863263157 -109085817 --79971801 -804753581 --698489983 -777928421 -502201746 --269815986 -218125041 -817567388 --560433920 -841616825 -322188653 -2525256 -985143832 -121799604 --404587683 -587378820 -263945270 -594269584 -953720496 -523293557 -740223448 -199020362 -27237510 --89855149 -481114468 -517699485 -765954039 -290313741 -858478489 -831364395 -909886438 -465413755 --637543958 -832317538 -247376223 -585739879 -291257782 -822873841 -707353747 -389390383 -975159542 -372044350 -710604339 -208444442 -786289232 -297287941 -890791694 -256141201 -83926028 -489234587 -258637755 -404532976 -524932291 -477632636 --554036842 -242866020 -46074152 -68748209 -103702620 -112276674 --386009302 -907923661 -361780793 -876226314 -328984598 --405427953 -944765445 -114723404 --963750510 -19423242 -453715173 -219345208 --915515395 -791082126 -606720196 --646677723 -623541066 -901497617 -60545742 --49625937 -670495785 -703760263 --575233491 -329678525 -673972808 -293669144 -976993614 -50206472 --853920890 -758237911 --992962875 -84449622 -667254138 --143012134 -926765706 -526917740 --55542269 -331238164 -145200395 -831021671 --202266390 -184196036 -172867114 -638831066 --93136730 -931055656 -937843926 -571106838 -798605622 -126098598 -364876238 --254969073 -894334079 -222543215 -191488451 --261315386 -535761599 -365311964 -886219878 -429210537 -665367881 -120105330 -232210464 -878741691 -814866450 --820288554 -998417450 -395307258 -198881944 -946194642 -80430976 -307796641 -662429225 -980554985 -349093389 --58645901 -63708217 --535369979 -632038606 --786817826 -189750985 -878888624 -965952013 --135830606 -228059703 -194134558 -64389463 -975407154 -425109912 -24878822 -380638541 -575616739 --225671244 -904307887 -189399139 -134458391 -747000738 --780053527 -213967267 --115382601 -704207710 -669146216 -921162792 -911090098 -657806110 --323100609 -146576416 --508917063 -234048197 -11687621 -777623036 --998502024 -302360331 --973350238 -136860069 -520044557 -868287920 -361700769 --700379256 -3356503 -387606332 -837551699 -152189777 --169334176 -422109528 -64345711 -428786544 -250541033 -926802198 -788316962 -994067948 -384136657 --174469735 -917942610 -858575002 -3861450 --995509141 -578576888 --447226610 -513070320 -175689237 -848996715 -568504577 --898956560 -414220833 -938041791 -80958865 -844830693 -411171622 -293275469 -693986395 --465665350 -769045574 -205343127 -381570596 --848897261 -259413212 -864678197 -704873843 -412067388 -647183246 -500170549 --382102757 -29547527 -289851635 -591301210 -495054149 -469965672 --280561909 -223989059 -184823731 -493707324 -612248455 -586652885 -874383000 --465745521 -410541736 -887973022 -614031748 -29270813 --902344629 -403419922 --225203297 -536557987 -997981648 -602134335 -896013639 -561478992 -272450835 -988203663 -823057942 -939447702 -162171036 -207600915 -966442591 -199805777 -378904867 -814504066 -445832232 --133748001 -258284075 --254865461 -366116793 -983439197 -21939236 --310275406 -672990578 --103870649 -114492761 -585152695 -186918635 --232895380 -92918069 --286641119 -71821355 -888645760 -278143452 -237644507 -10793197 --849188887 -639362801 -885878034 -581575749 -619214297 -538257621 --688660623 -91045706 -618940567 -26062236 -506376247 --771054055 -445863131 -467271763 -524332573 --160479212 -208627924 -233880487 --103813456 -379781196 -459648032 -87703941 --791462734 -399250937 --720858672 -811729857 -927189301 -228215421 -821222049 -643385698 -405143648 -570163779 -151805873 --205561660 -781116218 --212093382 -428728341 -963915862 -816283098 -900062928 -902253350 -413907748 -11166522 -320733080 --220651270 -378593072 --689348683 -473948195 -587674740 -317309874 -388816027 -287324483 --785904436 -251915977 --847087136 -316465559 --194861881 -828006333 -272982673 --379711917 -28133405 -815538277 --636072148 -175757927 -977426140 -383422104 -998191363 --931146344 -77568586 -541844059 -982785872 -260471029 -519115394 --280310574 -684388694 -728344610 --308485400 -856912401 --117451941 -939166354 -598758643 -169965261 --600099704 -674038035 -366375768 -119540188 -852023571 -312341169 -126830898 -949097335 -417640284 -599417325 --437361286 -952690832 --483685479 -506336157 -546712379 -855127137 --813792477 -732193828 -239834697 -765557450 -26547376 -542444856 -985221659 -564148391 -206317867 -848920744 -671085244 -6833961 -428608789 -644067372 -148856623 --155247251 -981372174 -929223673 -567052524 -54500586 -245957445 --564260961 -90517136 -7672189 -656387329 -376915840 -666328036 -32653181 -535534655 --704867049 -233052412 -882748903 --10413697 -283520126 -454483804 --323877064 -934293973 -155291938 --200055474 -170405776 -181257866 -466623217 -860922286 -931869087 --869706091 -920028318 --235392924 -603521012 -451374280 --867880933 -479489057 -478262008 --445204873 -838789024 --446543428 -934550009 -155811250 -746361308 --888426509 -823884157 --981678393 -495334963 -253826512 -685786017 -978726717 -434281310 --42446117 -494405966 -366948855 -390368185 -863683443 -850768362 -249664041 -940102664 -509748469 -881134301 --423654311 -740698450 --570203738 -446364624 --967817911 -194890588 -651437069 --446863549 -661445756 -887231458 --411651974 -274680920 -2957073 -606920503 -640137648 -401297550 -827212473 -660819861 -736520137 -452837385 --669256392 -35417528 -624159477 --841104772 -522331847 --43561628 -38776420 -729889067 -989126069 --137802613 -487628222 --549932438 -713622228 -930341662 -741613946 -320891135 -848798949 --595042764 -279310339 -604658247 -406975433 -347227368 -57987968 -832686472 -251577680 -151170597 -369368871 --571261314 -391503939 -823000795 -446159722 --230709586 -525412719 --736013235 -71373042 -358133094 -796424528 --178241317 -835742580 -485316737 -773030825 --691493371 -843587336 -411392047 -783731350 -578264042 --692402416 -800393732 -510528530 -863369525 -749043770 -149406492 -584483627 -672078970 --369639149 -636403566 -632454020 --380025792 -611818997 -155826869 -15402934 -376739742 --576441429 -518083053 -358224579 --352361598 -535316614 --942277355 -611640630 -838806260 --644549223 -761712203 -435291987 -487009565 --561088362 -861329381 -524219709 --993054394 -860051060 -344238090 -710567896 --687816164 -640644587 --175460770 -920169943 -193372268 -116798192 --147806362 -988936621 -82415920 --222543215 -576374331 -33020415 -122759017 -614598399 -184660341 -530290584 -851511617 -264543752 --616961765 -651349026 -511229590 -895148359 -974708676 --558088548 -799541453 -762307094 -868451742 -904775243 -820619038 -926427066 -50299848 -630479206 -908741500 -913982848 -238957647 --738602423 -798232620 -414766256 -114939144 --933401061 -131497098 -450179341 -553123456 -329279462 -58942121 --857782070 -118999589 --226588101 -276653996 --640225576 -904490697 --705452451 -644816807 --520713310 -475527327 -917423634 -197945273 -578449774 -582774312 -78671813 -547669529 -104718879 -894624747 -388153105 -425680616 --612014440 -751086769 -941206308 -622961308 --59540024 -262183240 -589653397 --435046987 -52259143 -365259289 -400302384 -254125971 --266047887 -529461037 -179957042 -696066801 --656561652 -924118721 -959846377 -110972791 -637067244 -369577435 -31699901 --412736373 -132503279 --473223417 -374176976 -458656191 -772121413 -33362393 -928710949 -631465162 -235845056 --377005443 -827573325 --527422002 -419607054 --502659164 -528510573 -33659017 --437263865 -718523061 --669838709 -553548429 --248113831 -895235343 -249232234 --618488849 -802722831 -941729066 --219471020 -600850158 -8794845 -507100668 --370912205 -60754888 --629193608 -773037805 --733053986 -279609381 --125093827 -909217829 --124390169 -939442640 -698533736 --819616623 -966581161 --652630336 -719123112 -160972711 --94600231 -871599013 -585683629 --14845095 -608695390 --496652308 -398811723 -236084027 --919674764 -825612253 -671396662 --608971602 -531374876 -749029610 -347727075 --104176044 -855939083 --770025805 -607223806 -627421720 --176515576 -336119091 -939313405 -159839765 --947130709 -195789333 --821863161 -632464106 --71377755 -132691373 -191256748 -115162331 -662827538 -619558794 -644958491 --242186864 -95844172 --883735616 -639175486 -388238166 -219749826 --253466150 -434201198 -409539133 --830061595 -239990400 -995128964 -695903295 -549784264 --457603468 -533920395 -721683294 --228658942 -544364171 -396429272 -52734130 -149028893 --674572913 -217729443 -11326184 -89447465 --884406770 -886422472 --910437690 -738530368 -267644244 -745632577 -284498345 --398394161 -154668030 -779569318 -619758918 --509516979 -641704316 --608199621 -299240766 -277367794 --91408478 -534912150 -646097416 -273800412 -359879805 -51553522 --1874171 -483716027 --682374431 -808811422 --784110029 -982705422 -953178108 --605565395 -108288737 --62648507 -179291998 -861014417 -336994570 -532479701 --17254588 -853481005 -446772120 -879036772 --419668114 -849384463 -713323502 --702127097 -136844577 --778556372 -222077421 -806167182 -124048774 --391975998 -731753664 -95671922 -962580798 -784642658 -658349044 -255499081 -205169037 -456677861 -517955648 -205980446 --286562287 -702848475 --796767910 -749218066 -22009259 -505041564 --720619669 -758704115 -873962452 -983816647 -273649994 -421227386 -202373855 -285076086 -116044201 -29118354 -412775036 -852491460 -128829516 -340289342 -362220105 -361747795 -289810536 -25992796 -659004023 -988780954 -471912095 --96996356 -731847638 -957439012 -730240920 -269194621 -391686482 -751643665 --899870412 -601574848 -709650141 --132918124 -314279742 --627067846 -409401108 --168377719 -208241147 -738517079 -200684548 -310414021 -618561558 -477868451 -460955430 --762307094 -816086743 -910657442 -235093355 -270825679 --230841466 -670260660 --259044279 -32788182 --252266421 -767773164 -873522825 -810157948 -359789029 -38563715 -259741009 -773384675 --662434110 -587508247 -136709319 --853210579 -280930634 --729743596 -146250303 -245450506 -729541916 -800683293 -154292284 -10772588 --355268181 -916711320 -750847374 --750192843 -384141972 -80682192 -825507336 --222663676 -857779491 --55369501 -866973501 -112722747 -976294927 -458081719 -112423189 --513087339 -801263955 -453629920 -622015354 -415810547 --226598780 -540563715 -755336357 -506422180 -159720396 -321584499 --583169400 -641182759 -500437315 -368787387 -834313326 -426054071 -914352214 -784165560 --481653308 -911582774 --283912185 -204338696 -206514148 -557314704 -398394959 -467004988 -938863179 --119395834 -267772964 -372806503 -868188825 -81675393 -261703376 -437741196 -560108193 -317453244 --862309668 -202445308 --784918227 -844318118 -78183923 --739601731 -692520888 -188071543 --770887715 -203556150 -591041304 --222325547 -832487031 -573788666 -875917585 -725328821 --706256642 -699220194 -24076165 -863840549 -450740121 --593631696 -718307318 -305869811 -354059546 -10447761 --122385457 -607856388 -164978215 -795590675 --820984044 -869423522 -985823908 -23559733 -541312540 -516783751 -294747830 -481895134 -546197104 --202522861 -363245225 -367294653 -287201839 --304773785 -11839592 --142701229 -867453481 --561741252 -831482396 -304871166 -967135414 -481936276 -736610745 -954962814 -889649369 -281603746 -855306288 --590747602 -75702359 -823469053 -345331737 -513720923 -624530987 -976122747 -818366238 --499975508 -37180012 -55439465 -165808218 -915088895 -815895139 -621278920 -725086938 -722063292 -424630690 --168644657 -490950351 -339186175 --123741080 -885864530 -401678038 -126841978 -294136162 -786080114 -14034408 -576352940 --37023723 -516782323 -706828837 -173245904 -2861528 -466181047 -842902277 --882794102 -168623946 -570026281 -464257474 --266222801 -931638072 -429689092 -433840313 -274112388 --63573055 -208560547 --361438699 -630337655 -282882918 -740076879 -963041589 -502520277 -824265607 -804774243 -896673095 -523398428 -1766144 --304458332 -192596323 -399710759 --470156518 -705493368 -915657261 --749442066 -281389174 -626960954 --475943946 -210609688 -45421900 --933678978 -451913615 -511440104 -966082373 -152028487 -820807599 -838103768 -126066061 -267462264 -130973898 --515109199 -127507186 --166800988 -456660598 --244279629 -452781870 --957587197 -303635050 --375289266 -52795307 -322887265 -958469824 -876017740 -811457490 -156658704 -152681459 -812192920 -795276843 -296772769 -71430677 -220256142 -462592283 -35949660 -740832235 --77652151 -994242189 -921250433 --125280912 -638742476 -678070678 -256475757 -787105752 -402577444 --773037805 -184962967 --302918680 -574254528 -997269809 -576854735 -823639024 -376726178 -869961862 -994328817 -936359105 -314585949 -492395089 -754241876 --45000321 -249963143 -144053612 -398662671 --841498468 -833230378 -583838024 -252569157 -25048126 --350734170 -746584418 -688888893 -367180374 -144008793 -883981924 -448442554 -357092188 -261723547 -587473101 -500337035 --602875771 -284774052 --169647353 -778750224 --58135677 -364027190 -288115402 --180460309 -304611924 -389634679 -562502316 -819361432 -825498949 -623795443 -56242370 --566061514 -975231271 --894008428 -608694250 --518552474 -965422073 -425799122 -377940151 --136057782 -268510200 -877155469 -243345719 --189224567 -70436656 --107747420 -241865992 --663671181 -451686756 --113156404 -149669156 --909150368 -114845984 -206724308 --357522098 -853296467 --989831281 -483373279 -615323271 -352765038 -138643470 -292777103 -68104295 --955849035 -401636608 -181934027 --518189203 -103470648 -20489433 --458274276 -374457969 -966074121 -653840801 --734606760 -752211663 --193380668 -987674939 -131425799 -870232213 -110183374 --43410495 -727127478 --958020011 -758250206 -123057083 -853578216 --494639572 -864999748 --323061012 -507262635 -323774289 -812886017 -57219012 --747686264 -226369263 -419598200 --103365358 -916263281 -242084217 -11304098 -546506007 -773751898 -411579268 --62360075 -847954077 --233020069 -345109453 -509744075 -882435072 --272495826 -309650387 -102309640 --1691134 -190546291 -210353207 -844161096 -305461613 -516701793 -395352508 -970243132 -421139709 --282834816 -503832478 --537528982 -272463759 --945290234 -261927465 --517355543 -33140262 --633308698 -411132095 -668823305 --968373228 -987211952 -558370181 -501596732 -293879134 -2512957 -982941712 -561155196 --908300700 -493564597 -973333007 -691208861 -222700110 -643536809 -493852961 -492102733 -926969779 --591548111 -922265683 --627469953 -143868293 -596385543 -595887364 -443454636 -239987653 -369757752 -828874972 --734063932 -185925588 -758710577 -233866797 -266481408 -870722166 -853420752 --894813158 -154443838 -610441645 --560644386 -437395865 --214069490 -95271302 --238859198 -711011865 --53390385 -213869376 -130324944 -438024869 -643016158 -988850932 -430393058 -432216845 -460751498 -429922927 -17198290 --719990295 -904275630 -579256970 -490417430 --940455869 -900977225 --447260146 -783973590 -674502382 --80890806 -356426672 -803329080 --176819282 -152754264 -885355837 -427496837 -642675541 --53576225 -642788588 -635558243 -316979672 -808445239 -135226118 -605456679 --676756737 -861854390 -520060009 --383936130 -793902029 -499996709 -141523365 -393812629 -997158309 -922751550 -354209572 -846514592 --864678197 -948407433 -976960062 -227096727 -925757072 -353455018 --295930741 -514933561 --274954680 -987846240 -134211001 -35713534 -140275079 -310686015 --303098503 -242929532 -115293191 --961449098 -306149918 -362804784 -65587011 -863916796 --348247320 -282223534 --720335635 -275735857 -882984724 --270358653 -116451038 -816712569 -604182501 -318921472 --249597241 -523677995 -48686882 -82916266 -77461934 -47908174 --574400774 -220627042 -287151715 -119816942 -716466286 --421157293 -305363114 --982811397 -559793707 --716703850 -221058397 -166566720 -838921458 -542287026 -849485923 -566797864 -219610473 --813051366 -217723847 -747914781 -708610842 -584289259 -727323720 --68716656 -636308698 --229341873 -690321992 -662288024 -119011759 -888753462 -48261622 --175854991 -292289640 -281557126 --426206020 -650337858 --595729292 -347604153 -130959527 -909018333 -987120614 -387178735 -965177271 -373968294 -585773491 -137260878 -349215531 --591660779 -435627512 --583177805 -279686254 -523774394 -429295192 -398816514 -484537675 -940109688 -108265090 -277359505 --253024771 -680509437 -959007073 -321003196 -608164339 --754820811 -751317022 -533670074 -754551744 --84650768 -712322835 -737633325 -729621324 -859134059 -702178774 -22217454 -739190314 --114146635 -637942575 -218332559 -623994038 -924872514 -67056292 --561739419 -796456840 --432644189 -317798920 --428372317 -956064822 -142998118 -889404851 -613355875 --585948459 -238558836 --568998145 -397783465 --677860382 -276453153 --356587238 -511076313 -197374417 -394178113 -57383513 --308815232 -397678576 -125294515 -395569315 -685437495 --880613111 -894528950 -180558229 -374154403 -518748281 -41818358 --234934578 -377065884 -172448023 --776817455 -524962726 --687469624 -263478416 -439762510 -73993382 -252607428 -665948405 -338703424 -303250988 -818374048 -965393095 -446741015 -721766072 -74320375 -869346964 --668011396 -793769563 -532804471 --116076310 -853732064 -995092862 -230348540 --122398532 -423155867 -248767064 -168521930 -955265678 -454058784 --972428856 -88132303 -773815892 --819815249 -464109695 -348256067 -251360843 -886941693 -435391582 -352580523 -747299857 --984810135 -781377141 -170334396 -291454283 -765260363 --77350456 -514570668 --552804558 -56364442 -165564846 -735699463 --277217205 -556644449 -317033306 -234016251 -502545448 -810387940 --204137466 -719081921 -519946706 --712941084 -794422998 -617951745 --920313003 -358716439 -755541532 -945193565 --867633555 -952653166 -435820842 -274961559 --181390533 -161998278 -119972423 -209461089 -997743363 -693453413 -65596479 -680454747 --587900416 -70446744 -528514094 -945014727 -317414269 -7632345 -582835974 -80217350 -433042174 --348976089 -176358769 -59336936 -173261764 --724588011 -894085793 -29884863 -534883366 -366180098 --895890022 -552660096 -610923642 --437485228 -94847987 --902072082 -975593726 -178720450 --880940723 -499506450 --987608785 -963300104 --674281606 -116517039 -94920935 --308130704 -505604642 -876781460 -524462944 --961198808 -995533180 -104919762 --620164662 -566952624 -46336682 -205885119 -977044249 --828179386 -20993546 -379569130 -690709389 -546500928 -569390610 -194687317 -189159982 --226293176 -36406897 -930047823 -399258639 --927895142 -738583244 -507716761 -270396193 --479565727 -816228393 --833082410 -193875463 -588730509 -180156538 -734642177 -84261570 -856097537 --706002281 -547079693 -950106204 -665715405 --335293954 -169316015 -519295905 -605971938 --180902361 -974084277 -115451201 -26155825 --969385103 -526385728 -530725317 -183098486 -873430905 -817943129 -453425419 -89831961 --798279369 -205415921 -898164536 -7715916 --787614684 -529876490 -104944303 -196397003 -61421952 --908488778 -399800452 --988863098 -150245990 -762585959 -689430392 -728252624 -621775280 -364309876 --403962331 -843601265 --448443579 -267375613 --882907023 -580809848 -264583349 --205980446 -410059613 -265263469 -412880165 -30585289 -69483093 -708411846 -78714460 -917988105 -172331356 -361969487 --4516908 -833178043 --275091241 -109246389 -768670764 -359576121 -649822439 --697196570 -235673026 -211512644 -361670323 -264050869 -133675742 -412033438 -490319734 -204109641 -425463274 -512658447 -793095483 -114797130 --597757943 -412252439 -424948740 -881718373 -840402168 -42211065 -234533615 -165850795 -641853336 -727676379 -735535725 --38805286 -233408330 -983402230 -459917519 -849246242 --774965230 -36520442 --599295381 -826672245 -442666909 --543378557 -411632970 -524371028 -174964607 -832100259 -140045475 -186547981 -858979462 -845879775 -310086742 -318218093 --790773474 -952128584 --88714002 -179757448 --599229038 -904415759 -25280351 -176640216 -704179997 -12873608 --488378398 -648648490 -958598726 -501622670 -447294294 -743058112 -225094511 -424608897 -124339869 -80850335 -867613989 -365916638 -190234222 --561694743 -19039839 -451772874 -336286080 --817225482 -698339079 -170380455 --620390947 -350593207 -73434667 -581465839 --941220593 -884852410 -787754154 -322360375 -88243937 -368500376 -223556340 -887228563 -477417015 --63224096 -315804453 --499506450 -586699562 -312316173 -999525115 -295879483 --525815103 -820637845 --46336682 -29211510 --672166965 -780328641 -473171775 -609305505 -791690671 --22235534 -19217963 --173522092 -215690987 -895201861 -308778362 -852661292 -318602994 --399800452 -171921534 -525140846 -584766271 -445031298 -575998345 -275861901 -787554650 --18536357 -455623357 -232707266 --738008896 -196372747 -735172344 -727323299 -195262440 -123760504 --672149403 -190516826 --829660748 -905206676 -209958366 -351987830 -771688205 -289041448 -659944874 -634601566 -668770022 -865297595 -958607968 -3362851 -754653112 -769301447 --250023987 -987847830 -840386929 -974906421 -490572335 --506106298 -105974019 -243613223 -205131999 -591917049 -504949319 -965486571 --641289131 -523253878 -480490767 -208258884 --235738890 -998802582 -773193782 -445206435 --23605004 -975527226 -277918353 -122311887 -749175148 -756160625 -435722175 --399575306 -833030318 --224742218 -255522682 -17896253 -480637175 --685618276 -190515669 -214541893 -255864452 --894069394 -662560907 --924802872 -30510352 -999869130 -402376040 -59134748 --344962700 -236615914 --972692653 -424723900 -220185703 -831374295 -397680478 --997551063 -567541189 -539196392 -345900220 --288329246 -294084518 -773406249 -546731563 --115009261 -215716412 -970067051 -425512359 -163759685 -848949328 -410497313 -799436764 -928969317 -402433289 -624822683 --773845267 -776165541 -3253006 -625209373 -266864227 -771604678 -527728453 -664462554 -559801679 -888613482 -567262606 -927618372 --21684037 -885483743 -770830044 -640320702 -808926541 --747119996 -194958134 --723450800 -567762697 --238172301 -94619191 -733329363 -119883616 -353645250 --427557130 -331042117 -815805392 -64770898 --906207483 -93751746 --886387963 -667628649 -488465704 -34572877 -585743806 -927683995 -739856684 -572872431 -794567863 --703311513 -980972430 --2877010 -868580526 -985957836 -252780930 -491674417 -540992914 --542529225 -755279912 --311656531 -978190542 -389208273 -20933755 -170651790 -639628918 -425148480 --879466366 -973891485 -203110852 --126901220 -57831668 -586433041 -592302600 --857309697 -14438430 --69755900 -508858659 -137296363 -956904495 -390884962 --937928763 -403946143 -899587495 --736430397 -188748580 -393410187 --676059325 -410599717 -322713561 -657704652 -300520075 -763082324 -874935556 -72267611 -609218397 --567470570 -528175336 -700195746 -787376593 -69060878 -912869000 -29566141 --292694433 -38109158 -791738261 --807852443 -207139839 -42644253 -752111281 -579703300 -215878965 -492484025 -644382280 -993467566 --464612323 -598574807 -270763137 -132922506 -887051698 --200756625 -304878267 -99179209 -451493367 -420260196 -780453366 -296934407 --302454761 -903729830 -367136481 -216938140 --856646709 -295119239 --558968308 -948204160 -588884729 -488628703 --169251393 -971648687 -690205239 --387878425 -956976099 --33971343 -582827284 -821542 -478837544 --881584083 -699763342 -992163334 -445674292 -764622479 -566838558 -507676659 -14030672 -65333986 -463762535 -416601948 -705357168 -845139840 --976033876 -520564048 -617995617 -673325966 -986860555 -353405503 --152728688 -800562619 -657315291 -437971206 --580478223 -569319702 -144071798 --433721436 -584078794 --160920038 -143862467 -500972029 -93054944 --894373931 -855278836 -569502494 -301687967 --210597625 -434764655 -483875147 -897699836 --687151473 -82139741 --286917455 -46221659 -795834651 -82232834 --838914524 -906202988 --981214972 -158472432 -283831518 --300161483 -80427090 -177427980 --418077221 -24736660 -72727246 -171527688 -184310331 -294820826 -593692675 --241415855 -882877382 --459823954 -538880206 --554078229 -633645424 --73967509 -21261112 --282178680 -736407810 -685356274 -260572359 --304048430 -537634480 --652280100 -723356915 -372752896 --635032037 -600199284 -906647275 --944128437 -175036031 --63753326 -582167045 --974691973 -564486661 -484510823 -769026549 -690266989 -931610854 --772862709 -427976357 -947439311 -408021143 -881021061 -818033360 -620735749 --702924816 -572068811 -170134334 -898251004 -342506159 --332376638 -782654938 -942995103 -691851725 -303422648 -263723215 -620613036 -3914636 -548538618 --939594755 -64059844 --510528530 -703550152 -176046605 -832850476 -816430283 -548796881 --994909261 -910881685 -523418236 --967422238 -226353290 --367136481 -920617309 -864459803 -452133221 --318385287 -194267924 -296067847 -969977810 --671631902 -865100720 -436941825 -230457851 -514924915 -937936773 -666151950 -457468122 --699676242 -522690536 -247350197 -176019161 --945322863 -107720146 --589306640 -585545404 -48855096 --277325694 -450830817 -156470619 -478928221 -939246246 --731507395 -712246597 --452274669 -972596440 -591123823 -565546527 -886884037 --595806920 -54794815 --967325119 -382149477 -561959915 --910229072 -982160806 --246409526 -99465368 -214468309 -533276777 -127440129 --340385807 -454620043 -315556179 --783056174 -739204983 -397257664 --124289987 -522160399 -374007796 -245520081 -964854067 -243141772 -449356929 -260928040 -440843552 -202922491 -502321763 -956789664 -158238856 --617018920 -738458109 -828597931 -405844844 -981458553 -594163415 -314376009 --173061352 -475901190 -333537775 -741848695 --319520122 -922415224 -966855775 -557293358 -303027402 -202880169 --436333126 -181726383 --522002617 -525385458 -784912756 -649199677 --500737922 -56737370 -758917973 -131894307 -360369516 -26907171 --150614541 -125648639 -148556670 --342342067 -783179031 --683224276 -526770596 -323341088 -877862963 -139905240 --665866587 -194401822 -217962645 --754883915 -192031862 --735094622 -286295026 -139509557 -937530181 --642066657 -947960721 --674367358 -451584264 -953186728 -441196654 -175011384 --530656110 -372004868 -785220834 --137894426 -287721119 -912108528 -857211384 -804332770 --529538787 -881648263 -993686434 -77878504 --851889291 -888546609 --402292921 -588358077 -622402066 -644906685 -555589563 -574494958 -839258762 -276107691 --777429438 -296418183 -338902823 -732689131 -516101467 --412444143 -700884022 -309705113 --743423954 -88010433 --339405121 -326603532 -149103001 --733493924 -779625821 --643934877 -722612861 -163518503 --82919905 -560058262 -477198767 -536675348 -11508940 -864566768 -479219137 -491366284 -599427738 -301388645 -712919681 -148725247 --49801987 -671600850 -547503782 -211710865 -124590545 -497349549 -728231291 --780759107 -898541845 --56364442 -78732898 -537694956 --752808058 -444006159 -32545195 -994056691 -752181624 --140570828 -507418714 -260795013 -592498851 -938276417 -96141154 -994062362 --254536024 -57481136 --900288578 -697352983 --731507465 -509764791 --695995125 -257922714 --333560496 -945940473 -179789245 -929560115 -987521509 --846362636 -241904935 --752323988 -319983521 -87759069 -11055922 -834641411 --649133997 -642562202 -472190881 -585640088 -213676451 -186345222 --991509442 -918881873 -776170637 -932261619 -608167914 -360955982 --741848695 -824820070 --127884644 -749499080 --854922625 -174455005 -30962730 -686206051 -136905403 -704106862 --814376148 -848350444 -3623131 -181862970 -371150609 -261825030 -804016749 -866392595 -10153706 -736427962 -159443182 -298712917 -31379052 -325627887 -273457423 -781012701 -432386375 -459820874 -29071445 --112450235 -450406494 -903219497 --953635389 -237412947 -547401179 --247830695 -164442233 --66379884 -75561555 -926908148 -249120218 -296587684 -680909175 --454498788 -597740013 -5882643 -677706659 -12353902 -581328421 -47431192 -622679161 -332128888 -631755195 -809310963 -466683290 -831416598 -758495457 -510143447 -608026696 --519735833 -957434021 --434764655 -489801457 -643553647 -814535610 -316944069 --191373902 -43913145 --181282461 -200677560 -812279388 --295365446 -7004857 --782618091 -561114871 --890828590 -114427348 -210519934 -823195731 -246898814 -76585068 -466810542 --149573527 -832260288 --804844081 -301244552 -948133328 -11270656 -377026081 --797129559 -415420478 -499597099 -342368084 --124714554 -930427362 -40161179 --203869946 -701048564 -936413847 -699230844 -96869573 --160837965 -699390794 -38218292 --872823824 -313619541 --450062609 -331718723 -73437173 -638745233 -367639022 -327472381 -969984828 --9753680 -48682350 -445228905 -872378526 --355605247 -882667475 -612527808 -204792511 --784790470 -749195525 --971973118 -993277428 -851992495 -389311271 --645951747 -236469053 --139937028 -280534069 -124327314 -97738508 -219362406 -127115377 -290655437 --707876845 -450109702 --373724022 -251064739 -331674311 -503586495 -144736563 -267437208 -435979529 --610923642 -475210045 -283674274 -291275048 -993978089 -8344794 -919940266 -433605356 -251957645 -68872627 --588602336 -120352516 --912953592 -468198505 -944426657 --207032251 -639780001 -620958191 -231783928 --628156454 -648700880 -860301383 -934364063 -744850740 -641477663 -195193071 --749895819 -462534884 --916192048 -613267432 -963415683 -215232572 --549524204 -565657722 -280416723 -86586674 --882226039 -421948129 -222073948 -183476940 --347518230 -723397250 -604742495 -221043875 -304949978 --359061189 -72312406 --472150783 -831879963 --795540295 -484382116 -529878782 -797092257 -785752488 -393388902 -923182088 --187396841 -623573119 -949476724 --212955504 -682970631 -7120122 --445038804 -542288247 -670030223 -564100097 --780193144 -762007586 -367603370 --245512699 -87257525 -263611174 -205397565 --879299701 -486005025 --552488473 -509018531 -108163361 -499251573 -81429929 -109910960 -895016533 -230458093 --823887365 -819675915 -799659856 -353249531 -60154457 -702367644 --543487159 -753276814 -836102152 -652205975 -409048462 --324462916 -642736210 -123783447 --22602466 -275500088 -824586327 -603873883 -41246547 --717440887 -908394811 -676050053 -819922128 -719651981 --753957968 -100492970 -493036807 --349267023 -448998563 -514399424 -959173958 -875045320 -966603446 -378788526 -353422038 -366528520 --684125597 -97015424 -855999542 -446278712 -776428664 --77333993 -135371878 -502095827 --969587057 -602709358 -318976927 -732403295 --935933099 -946466753 --850936821 -480007069 -442399703 --209617815 -146625934 -321618207 -233565854 -344749127 --701429060 -390835891 -261520564 -394400565 -823532980 -247289644 --289497888 -25266460 -763050176 -186688165 -528078032 -586685713 -418642878 --456258958 -564977006 -425000279 -910105683 -313579341 -157745087 -49352172 -447992785 -949576524 --815715405 -95482927 -29973047 -954810570 -554830496 -581536882 -410218487 -955219465 -903074442 -414364018 -808261315 -844990558 -175316715 -755456705 -340084232 -695771422 --928794253 -249977161 --599251554 -615914128 -336151883 -178890840 --868703760 -156553965 -848154969 --575728357 -20489633 -945765612 -945390974 -825445907 --772923693 -498467123 --864925856 -509169231 --267644244 -188233643 -226308111 -989789472 --277597500 -96197856 --252032489 -483932764 -565994961 -561205885 -408062573 -474698869 -423766525 --145524450 -302488999 -183011862 -370686764 --888176087 -800299571 --355265539 -256443171 -639533176 --276613388 -875532005 -993070943 -159322784 --296055266 -650122552 -529598568 -845923011 --22959736 -386771239 -794153151 --145633969 -445744456 -946146752 --569097418 -492035347 -674003241 --708622201 -721525556 -178492316 -515613230 --105055173 -383347727 -25615520 -634733290 -116656533 -276192070 -727652639 -468572332 -370382804 -569462847 -659114068 -349813023 -619744452 -905847596 --741245358 -150942554 --914841900 -714007586 -775391558 -266124130 -321262734 -519917486 --915939846 -458874886 -185904177 -901456463 -944656302 -866303076 -593848341 --962235543 -716672184 -421844553 -511148113 -403990535 -641186047 --410900941 -352017911 -769429363 --656288971 -740195906 --130152567 -147055708 -484049432 -974317267 -795279535 -149199491 -42902317 --284115597 -832324574 --301214766 -379629774 -836394716 -21925612 -849329286 -25421994 --970051965 -616456394 -226010524 -913666088 -323061114 -529585815 -709340310 -913623310 --325326812 -298069273 --883585948 -483939505 -483369123 --801234835 -471754110 -446875738 -871779987 -549338795 -831210737 --501569028 -505615870 -379555130 -992082246 -569829194 --475971568 -304868111 -205446921 -642473335 -239772272 --77564354 -613275183 -16552226 -369228153 --416147784 -768912896 --143238362 -679252412 -247039667 -974617268 -329944466 -752666698 -849860780 -82781935 -982121660 --946442891 -326011771 -579911608 --296418183 -188938402 --353136615 -642830776 --114492469 -872765321 -382050310 --516060710 -327349968 --574147943 -474444882 --919965431 -84778326 --419839583 -429566300 -145202010 -495316964 -489281462 -727396914 -923805366 -638482734 -155907839 -524431327 --41818358 -562690177 -717772082 --463604484 -816911287 -597555192 --582774312 -564686522 --212874372 -76002166 -214215915 --396534999 -850342183 -921780838 --252880248 -96496642 -783768962 -585163448 -432850821 -694281893 -60864895 --851798761 -896965524 -563267260 -940830662 -253644515 -938936221 --264657077 -574553381 -925661089 -342715517 --982633144 -915436337 --51702419 -889213856 --715532999 -70980646 -379528353 -886457129 -54145899 -90673030 --722499323 -956722653 -490260783 -903172803 -778076712 -362139610 -758198070 -686737433 -862049380 --602995496 -810467225 -689219755 -211782830 -948102876 -142270240 --252948456 -504973344 -481353112 -738370188 -473249157 -23142993 -257512097 --707588119 -182303021 -607003841 --526031980 -359517444 --7246106 -623799715 -877798931 -587937822 -571756273 --469554570 -349140731 -84873256 -80037348 --616264471 -594642479 -527252812 --373381329 -885160476 -618424867 -664308209 --338528939 -38318285 -973969924 --326875019 -551938534 --901787275 -991735510 -752851415 -170031639 -113469054 -16782271 -690928382 -10639244 -887488866 -893925927 -536701998 -416077013 --716745446 -700067968 -632191782 -260778958 -302935033 -821132399 -273669292 -836604625 --304723511 -372028646 -969054920 -914385973 --454877907 -257256106 -854661224 --360733799 -812659459 -294762627 -12989443 -17530762 -883485995 --899023057 -105763971 --907149840 -797095833 -835248978 -513040241 -72725301 -739351337 -303282407 -535743753 --234314140 -616039303 --138694585 -303467277 -841198593 -492089252 -690172716 -276060093 -452945029 --57956963 -336410350 -815026752 -261385045 -314495987 -679470403 --448605761 -874677962 -327341615 -482379199 --517139063 -234067257 --149233962 -694173481 -958217982 -580727332 -998233192 --833437012 -170184038 -286390777 -151453486 -958855486 --89447465 -5332062 -351204146 -797786593 --863068357 -769115942 -117392470 -891058930 -764722964 -72801959 -633727597 --554719622 -66046671 -763511302 -36815298 -25410165 -406848811 --808739428 -153193773 --820176430 -78870368 --381505550 -982762937 --989365845 -192774648 -119372947 -341665962 -654732070 --701028465 -97581916 -680749548 -880744066 -283207747 -597617599 -424756772 -658154015 --997147881 -805888988 -123068200 --839613740 -238328850 --357457945 -671501565 -513821736 -637886675 -232441677 -451269607 --358239485 -627305779 --13117529 -396769706 --707330082 -906417968 -755984897 --257354848 -545302423 --766344874 -836181106 --930116351 -246944769 --22584647 -866342611 -799980455 -280246629 -884280517 --237160719 -37233721 -616533696 -707149643 -123453948 --332982099 -127559665 -651114508 --83309979 -685153988 -659230403 --282713166 -84125485 -509300778 -554086404 --810452040 -380541931 -947820920 --206911404 -779268133 --245172681 -680977888 -128484357 --882764135 -118470555 --683640819 -239745807 -367663295 -167171291 --186265333 -368980686 --439186464 -464343913 -143654511 -598887909 -124112025 --239950891 -123552049 --671571384 -143471757 -8764081 --666588144 -815212998 -598161223 -447396498 -511932993 --334914505 -182117764 -361858103 -213780200 -853342825 --602134335 -384147905 -93177149 -286692960 -422185296 --351748759 -579813009 --155664946 -262662816 --425846996 -343581836 -793581734 --334074660 -452242861 -821571292 -158287087 -65185116 -605722005 --782488760 -284561751 --269848911 -31757573 --327600044 -414849607 -350891403 -240443606 -577902405 -1243867 --428134779 -280768323 -138305496 -490841806 -277340072 --571156940 -330222254 --348657792 -782657694 --164297810 -329220731 -856209366 -909131816 -40477119 --44318490 -968997265 -59810244 --58397893 -280417559 -477798419 -590830503 -351215469 --398020814 -223680318 -419549599 -639129218 -627418106 --283954507 -641435316 -267858743 -314567592 -143632113 --918366687 -783719605 -163067618 -387031348 --168627074 -898016445 -47770858 --745828245 -614988509 --390900556 -408130692 -196336315 -944489488 --777391968 -103103695 -521659522 -769099527 -492474737 --267070402 -296498147 -53790430 -89323174 --255643983 -648217389 -238597287 -10468521 -943131986 -279616267 --519517373 -843708983 -233960905 --928565923 -24703832 -118138329 -712630349 --730060637 -278940163 --248256240 -139715929 --391660176 -361099064 --803209126 -890401211 -339296638 -509943337 --598561369 -873656012 -191313577 -580299093 --157342005 -640307991 -901329112 -701304598 -385206476 -257702501 -432621818 -42139709 -973009213 -455151166 -938557836 -514272348 --800750945 -286613527 -727028878 -211432156 -872544952 -251041113 -658594907 -943653909 --678287149 -95890790 --250545228 -715314304 --62816426 -246141021 -656372621 -655407554 -323235560 -955801512 --468965366 -261165135 -326917374 -33464081 -773342679 -36574909 -817540774 -410276530 -550140000 -441148024 --779710158 -96210575 -190171044 -291891674 --627425780 -242940897 --875499119 -869081890 -941610005 -495146149 -541364128 -83419758 -361070982 -773561572 --399109516 -97275456 -399272217 -645277548 --272813051 -388544927 -199203954 -809986854 -977870525 -965120518 -494303842 --560471356 -741939996 -992570072 -569467083 -73868976 --232900046 -374163626 -759738688 -18659815 -833870797 -917633465 --216963163 -108240736 --528649286 -129606314 -74742752 -260102286 -583437671 -776382878 -273954972 -473757278 -432521102 -454520128 -683157522 -677175022 -493799934 --899830133 -434713648 -483291223 -640625812 -293917633 --368147078 -578915592 -308007302 -845273342 -171765468 --786871439 -968246249 -428030679 -960083305 -519596243 --98888387 -690647637 -218950064 -696034890 -831104993 -123697064 -560237814 -456971292 --782836301 -389499656 -518201417 --575998345 -833173807 -273562907 -215951441 -775405550 -598841144 -707367895 -66220976 --264481142 -960808517 --432218505 -306480583 --666863831 -860882183 -360726768 -822281224 -376917778 --258967341 -421225444 -709975246 -660177310 -106453094 -306537697 -622494448 -740597237 --294696511 -801656551 -366603640 -33813704 -622382004 -200689020 -586035557 --224286524 -350046006 -616477364 -228190609 -591330644 --483070266 -583062114 --362251471 -107853598 -560764509 --555764608 -704675944 --827963344 -127194538 -483815595 -490580145 --258514625 -779224989 --765212304 -240770729 -469634812 -61678679 -300862190 -483707659 -337877195 --795088054 -844200268 -155926375 --428662528 -941721215 --573831531 -144193042 -628989777 --898844010 -744269618 --676088348 -883582203 --333811229 -41498652 --671064747 -989977474 -443553655 -799087748 -532788060 -745586337 -125119298 -61123939 -766849180 -746279936 -150698193 -793271381 --316870330 -425587402 -964721039 -142954338 -519741858 -514272277 --682898595 -250048677 --235039795 -52922062 -969505929 -763332974 -852983063 --142370580 -78585503 -594593913 -651460804 --379879206 -581606974 -231443505 --990623427 -785245623 -434038670 --916189161 -182239215 -90773689 -857742707 --930147242 -430658127 -402388155 -616347595 -817563743 -732697365 --910997099 -627173485 --648238560 -850954808 -839660905 -89971399 -499732067 -650558036 --328275940 -424700430 --7367018 -870720998 -983840468 -926903724 -685286857 --213170156 -765502050 -81208944 -57819751 -502279905 -618286784 -298821962 -313492823 -774911816 -110307847 -977229836 -808348462 -177482352 -547336778 -727723517 -448122317 -102705926 -214623675 -592910267 --454026480 -28724015 --614807224 -833423555 --574076966 -529607429 --590705172 -180383378 --204689030 -255249657 -945769248 --112529468 -297941460 --244229867 -362694257 --852868436 -565237348 -515729113 -144584998 --655532448 -836999273 -15090924 -295720645 -352697309 --644968019 -415411198 -581886583 -181478852 --214005350 -725516127 -722190937 -52492311 -465880623 --978455725 -149065473 --621053894 -3118611 --923296074 -610450070 -17573549 -863720617 -927338925 --74704831 -730855266 -3315297 -285320838 --417626486 -816707127 -285480913 --795368442 -9919110 -907493976 -708984484 -948135004 -447598660 --478457772 -342726222 -65680131 -640961844 -953145316 --474041891 -458575437 -94745226 -650046460 -937724225 -612392324 -818951475 -188517140 --395240990 -479085240 -281848387 -881039493 --852738861 -126929855 -29574607 -822059017 -931072724 -222064448 -642105260 -940193232 -453987844 -83786508 -921855480 --676126664 -771125406 -746288924 -969861482 -555574744 -945774945 -831681612 -735859784 --564385964 -378959789 -189277754 -756454822 -305211739 -951962990 -947917006 -465369265 -124423310 -328986600 -197007542 -997393147 -670719976 --3055354 -866686276 -209855782 -154404070 -254142042 -928087316 -405349200 --74804784 -416427014 -121272452 --949403623 -315415100 -31201032 -852662889 --758516053 -792257575 -143982812 -995922680 --450803922 -227832920 -904464512 --314592311 -736074602 -697325350 -483924515 --995234470 -572979140 --184735684 -716772630 -699451268 --919359528 -72784318 -104151059 -845893688 -919782043 -945330695 --591954489 -979058844 -558832229 -506676594 -303414959 -997178295 --831329335 -323467266 -542298747 -158831955 --462817933 -415148548 -320115030 -471217095 -973135453 -347656664 -632438503 -26055364 -337038780 --109123704 -526479409 -722384749 -100928258 -531018982 --438997562 -531916808 --459110163 -942768869 -31585697 -582471554 -957796471 -413286193 --387893273 -660289588 --606692313 -433600863 -484013290 -203941139 -124855215 -767031554 -592755207 -628219564 -934089432 --755194306 -415227747 -219642381 --254586698 -541555437 -598388727 --435391582 -293809367 -310947925 -419909787 -703810085 --189695211 -6094853 -630487037 -857065506 -643925734 -477850441 -97179696 -141724490 -984426061 -876835642 -37513561 --710560401 -514628277 --702224909 -447397932 -612896707 --201881850 -180892302 --65278248 -120922894 -427546087 --777779371 -479517068 --807623863 -236971057 -247956001 -807393738 -843054519 --610438566 -211471207 -943895566 --372442991 -808875752 --875461815 -106517320 -74427795 -775960302 -732616562 -952873963 --569044170 -881919821 -381384040 -562125231 --741672873 -751354442 -456135806 --211872213 -484750258 -71918360 --126462087 -565344083 --853095018 -416714000 -708169820 --867657329 -242548277 -753647878 --907796011 -152227271 -530392268 --679964284 -397051708 -844085105 -247930374 --279779711 -667866346 -282983190 -168728648 -104361627 --571413503 -894328338 -851606255 -331575309 -305169696 -179809230 --123368994 -848600871 -485646614 --107207186 -408552313 -684074974 -528483516 -955495471 -520581737 -234311039 -927897485 -97830276 -880905694 -967899950 -456630041 --237115558 -503569506 -977259097 -814875 --271298477 -781483349 -145092993 -292487574 --748992587 -267650315 -974653068 -704743913 --309569596 -901555772 -543200272 -259248228 -875239604 -681986973 -632052698 -268352047 -214223268 -819810224 -310273361 -611418395 -304812213 -125201592 -303385049 -145507072 --224140382 -304902482 --985029575 -481477570 --84351891 -290768519 --364751911 -245046901 --374846050 -182996428 --410023683 -338010489 -993589631 -255353503 --857850967 -659821634 --975568875 -801873965 --996781861 -689881061 --683191431 -505868047 -706080347 --716624659 -158142444 -276890420 -372055049 --889404851 -48966013 -521161036 -17833674 -232989594 -350693548 --377375187 -114180104 --908189176 -494348289 -444068509 -75734341 --81625392 -231775338 --676074848 -981663081 -313587870 --266481408 -322677414 --432227193 -660959484 -863786896 -981085987 -965454030 -856566217 -551242880 -645563722 --116736083 -420449129 -373230698 -150800395 -709577401 --517378291 -526456870 -975364071 --531718038 -576637084 -253119512 -686724665 -57590642 -842557235 --878254301 -664382635 -465526758 -496202628 -804525199 -336097452 --709738629 -931537162 -937065569 -923135473 -561789260 -117544977 -637694020 -262331804 -648118315 -403587707 --87215466 -302159377 -926355350 -641232400 -657223382 -660154749 --80517571 -762751381 --554086404 -106119399 -974608779 -345835177 -827156206 --620128500 -631694208 -691328063 -909449969 -885558381 -603754585 -972412502 -181734144 -291510428 -11543853 --882125439 -30564020 -263238699 -954752131 --436131730 -76420344 --588569211 -904356713 --115606821 -257650094 -444326540 --354177111 -85575180 -356373060 --623893564 -972169992 -742393722 -713450866 -801230093 -844451126 -723286651 --948857531 -670140479 -234903787 --2107780 -841846283 -846651528 --433254217 -937776860 -453065027 -592396028 -625811424 -971600995 --371232775 -567480621 -206261312 --338882754 -128454910 --671290604 -174017976 --577183269 -979025347 -50826955 -880610474 -590680932 -292543210 --736523170 -204951275 -942218615 --365344476 -37182542 -447182850 -539651149 -112519937 -551619772 -135873708 --695373376 -181533175 -829508783 --421960344 -860381320 --748364750 -190788829 --212089 -90703859 -678212940 -101632627 -507066180 -185042250 -339445103 -116539241 -589624289 -81498668 -576322086 -844227429 -617099477 -432574015 --526081576 -175936199 --136133879 -584589718 -6956421 -106506019 -869504595 -888485590 --844901949 -536885164 --292126985 -704875835 --1123512 -181421156 -385008915 -334820053 -66755406 -657827838 -948839831 -462704126 -549784149 --125472172 -12458316 -242544377 -755703225 -640466051 -427302299 -656588006 -273879890 -950974872 --122968889 -442225000 -8754596 -44696566 -371141139 -774899471 -172170335 -200888227 -832737088 -242983928 --367974405 -830956744 -448461083 -447627733 --576186647 -419748716 -300730687 -641147149 -726041406 -589278226 --829325801 -220101166 -868136739 -346536683 --771952204 -930096792 -455891617 --544831313 -897531369 -948980835 --658564684 -515545315 -448749905 --9652712 -462234780 -810500654 --182093197 -617055891 --467300895 -255481855 --241192499 -853483175 --657651493 -397507510 -777239922 -850842034 -99089121 --69063208 -391350467 -359951718 -640766630 -390524596 -872724629 -41705682 --873056637 -6948180 -63034684 -530492366 -735917375 -322037633 -803924169 --847827334 -856080936 -207819700 -16745767 -282830007 -369166081 -931605369 -280010213 -142579989 -123798438 -692005301 --958984103 -774731693 -574772410 -684371501 -398344625 --280417559 -102431654 -113876582 -824446756 -833283312 -957738053 -232819884 -653662156 -641457621 -953318422 -861531463 -614613632 --181504938 -844135244 --685997149 -298043340 -411742719 -733522135 -291376051 -190839142 --52662980 -347210715 -1098994 -53149473 -740131199 -726532232 -238166571 -777968713 -754426920 -278654365 -606374554 --988037600 -268619074 -955488394 -146317036 -765803899 -514172481 -484008996 -745691767 -922479060 --112253021 -758645211 --248432300 -55936051 -111653554 --850342183 -786306795 -204984305 -44940037 -263622403 -871054402 --454435169 -140564910 -823990706 -730946830 -13950198 -369598621 --661450000 -914341123 -942059372 -153154933 -744930234 --575216211 -70361842 --869443934 -545072559 -985792046 -28785999 --16069069 -15942659 -599070208 --355982132 -55459343 --459966081 -174200357 -435093850 --487958388 -827748785 -800655308 -1382906 --576256487 -601806929 -97937931 -577178609 -312035218 -698490057 -68560663 -169390612 -387686266 -590850317 -285221486 -168818730 --401805427 -17839684 -992352596 --132693825 -680446529 --63148489 -846855049 --481304064 -902565850 --598877462 -152253022 --175268727 -900858612 -238637992 --765348850 -374393003 --832893098 -994163538 -629010433 -287842291 -609330254 -122886176 --3314150 -813432670 --534782908 -4397495 -320332981 -859230314 -179644156 -314653026 -209941628 -750934076 -799310589 -898064793 -5337151 --861748363 -645531971 -881985529 --233052412 -814343423 -701840907 --18435750 -322552124 --930841113 -272488376 -447777572 -255709546 -254003119 -772759146 --261359988 -974479414 -480738244 -157651328 -909919820 --789474012 -397027779 -667400705 --290965947 -372413219 -778077813 --347210715 -817362938 --272292383 -628258023 -869647777 -352483359 -45547768 -784768768 -776051076 --681616523 -960105764 --990923998 -740916333 -191862561 -161615901 -93118915 -112212719 --23537276 -393037365 -414901864 -599056684 -42584085 --520496202 -599135667 --698888835 -908017146 -423483883 -911009330 --354739266 -368197752 --726175856 -40024420 -670945008 -287746681 -429532021 --825814672 -255386952 -617387389 -336925475 -891963065 -966083073 -762053480 --765502050 -969860333 -806248585 -620604562 -942357589 -574410556 --866907153 -190533108 -712601732 -879912634 --914914536 -762138706 -670827814 -507520296 -707258763 -592193048 -603204368 -806762335 --77992672 -334071104 -8968093 -705272690 --808308906 -243251133 -271147408 -538333618 --373045895 -387733354 --601688458 -103609503 --738534850 -438612490 -275619097 -890838150 --644833609 -599169059 -908051237 --139151605 -127276941 -420380230 --972673547 -838136917 -27153139 -380633544 -36435060 --136136295 -398903279 --27490059 -693662867 -630751023 --961029939 -232342104 --628074688 -820224548 -490700364 -279117299 --638486850 -633798040 --353616244 -683841286 --888197057 -881423896 --178243839 -571118984 -949397882 --30334008 -366772669 --740398661 -622480874 -444478218 -380588544 -51521852 -397933345 --904667665 -101772788 --304485511 -758797702 -941376253 --707065512 -483130007 -408898763 -240132348 -196191005 --996153391 -106544033 -375590270 --516823432 -697883866 -190532452 -930548825 -250188428 -489277119 --488970612 -469471118 --642215024 -744837706 -962299533 -322677198 -904185131 -332873978 -587737302 -286664313 -991286312 -566923898 -922833516 --973346819 -423865110 -473325899 -539482113 --648217977 -208443386 --326630611 -17025689 --730414770 -250841216 -80127078 -216430143 -638923523 -653715677 --714844117 -556291524 -214601608 --793481693 -494443294 -773042419 -360290706 --312470030 -538856411 --39875020 -92566051 --208460133 -742941686 -554625618 -214794425 -383532320 --334460434 -912348874 -680642693 -495782923 -315467583 -521832065 -871324297 --567927683 -292624126 -142663758 --354167862 -90610948 --326375543 -105676089 -422290970 --642182686 -299387400 -374203529 --453877178 -805999592 -822340032 -182672842 -861695770 --145071052 -879021510 -741173265 -767351445 -526515675 -616448703 -745963334 -509831890 --395309031 -788319699 --98835761 -831184711 -701682085 -863572395 -159198260 -866127559 -617402328 --536701998 -527468775 -696577382 -969571044 -36551423 -699205428 --786303186 -78465967 -305311633 --181807439 -785036209 -253802801 -914408365 -31035171 -855164176 -463711680 -725370143 --520306774 -194473790 -318195497 -879172504 --598041157 -229788622 -106849632 -333502427 --475378219 -265063124 --73939001 -247876175 -611166353 -28535754 --749797055 -89299306 -779035398 --118472506 -30022297 --977866599 -387899139 --492817141 -654364619 -985121323 -991935652 --723222483 -489270905 -213063936 -740321215 --177627549 -402240868 -367084889 -209465203 -145293957 -73039399 -426080300 -651035716 -404743718 --808030958 -635517542 -161237679 -970580176 --141647481 -118847930 -975333385 --278556179 -903534438 --964609323 -3596556 -243299805 -460884198 -379083675 --626232523 -200838135 -320528859 --344168629 -735032880 -168918862 -712209945 -427418795 -404455153 -883357693 -762622441 -182707509 -504012825 -630473547 -179856227 -676973988 --344553314 -609502391 -482454493 --234518808 -865813617 --951222090 -449028547 --520250092 -754666992 --221120780 -33860630 --109246389 -227513619 -864013755 -464423263 -376878449 --179957042 -851177580 --557963337 -326080947 --834459041 -221779230 -49823874 -583980760 -997738481 -345489236 --309171033 -588122893 -192946076 -653923936 --387700529 -783117128 -843811203 --725875560 -400228507 -716210842 -333354968 -321305259 -341455055 -619838241 -437206472 -990572151 -98758826 -994185709 -926496096 -559242997 -529119808 --619603565 -574614788 -997237390 -261096051 -793986397 -782966760 -627926465 -846933481 -365724548 -165045310 -665592875 -644277759 -225561924 -158739243 -966724571 --328022675 -556153077 -913719373 -993872078 -934416191 --792407096 -84082702 -806860526 -536937494 --592392571 -440925541 -693125893 --276795958 -4755170 -552600507 --268775807 -161434480 --895527773 -545414283 -270874273 --424959563 -122088415 -541163469 --335020198 -651850769 --359162845 -66553498 -643749118 -785068134 -843793106 -836811947 -255377826 --936772557 -351594227 -596188315 -354032826 -381529806 -631639548 -447661345 -116308515 -866548603 -981314987 -55571374 --208677616 -630486093 -269980916 -899659601 -98656390 -556846859 --909217829 -149935112 -612637594 -284896506 -109545906 --849547741 -320782988 -602531849 --171889047 -79335458 -918345213 -916763825 --236995880 -441401235 --753307352 -466239421 -939937330 -184880764 -772851018 -58196952 -921668764 --139350983 -306248196 -671894556 -932568959 -349114490 -437919223 -490429200 -698958682 -969585688 -21353951 -359228594 -116682617 -544688313 -143821118 -161272684 -360499015 --156112815 -549602550 --983328393 -6422263 --333564784 -475417567 -55015095 -934485127 --388560410 -238261012 --720257307 -479237462 -91883687 --474049537 -931889861 --543709784 -584591677 -832460093 -75214244 -230266817 -138039694 --18604487 -531475245 --98605346 -125335030 --750466595 -317422248 -334114160 --130164638 -532882469 --978840200 -371870074 -763324229 -649997569 -985265484 -771938179 -33224834 -110090157 -839532249 -557662914 --222357040 -167348831 -512367786 -780894202 -210920316 -361082325 -802026544 --385563804 -191671660 --329948973 -269934598 -169829477 --847277655 -503198776 -439558024 --839859025 -980735029 --707292239 -372852520 -701487980 -78235983 -521902409 --665039116 -548240016 --487098902 -244921216 -74313882 -953354792 -773793810 -958708786 -19450472 -65981322 -481852328 -897693539 --701009509 -241514513 --639541261 -18643032 --394587894 -152378415 -479595049 --499996709 -517289393 --97670365 -163858094 -27811984 --706095359 -662497152 -561529818 -718287757 --174964607 -842518821 -463843613 -86542150 -190063833 -652501108 -225747583 -469948508 -916921638 -548255396 -549360263 --152683147 -729266843 --718439073 -720883970 --994428163 -134757220 --990172014 -785623236 -22846441 -969753245 -988827820 -995036157 -596252141 -345275238 -366365472 --142969400 -98638224 -687237212 --519036432 -773234626 -92633649 -864439275 --659189424 -248793396 --68169167 -987093220 --474711594 -541989301 -3127205 -629221488 -441712654 -711293956 --370904326 -943313033 -947038388 -855710170 -135359762 -79041527 -645778448 -757094336 -917396152 -941976316 -96213178 --665757310 -103792820 -151670694 -320941597 --137017626 -5748278 -16296574 -297971605 -613228887 -717752702 -750543590 -198089076 --622237541 -685095087 -916615186 -533366424 -946181002 -858932768 --334552132 -769156209 -156661520 -818349855 -829242775 -659913593 -408764104 -499967589 --187917465 -366401000 -704967833 -760735872 -280727593 --996311686 -969904826 --466703078 -785220014 -700738216 -400475227 -807667059 -951305393 -106822080 --515353548 -599296350 -220665422 -770426290 -127553841 -946837809 -928978755 -846020631 -391838736 -303943152 -869315893 -518415722 -386831122 -225022686 --596229091 -557914692 -585931846 --979562658 -124954690 -642198067 -34970479 -102036632 -760211070 -57788566 -378224512 -41708928 --239508859 -827907604 -600531107 --235250053 -354772392 -154489571 -486882477 -28411529 --635203760 -828425978 --38563715 -74900470 --643618367 -27833947 --745064623 -189801150 -86114293 -5261408 -273738778 -752441305 -403307522 --68447246 -891133816 -540000791 -886171707 -987627818 --167773119 -702113283 --989635334 -526492863 --579941651 -189572854 -73349767 -251277481 -999968988 -676728984 --426729870 -804085577 --395491319 -558057102 -678935423 -521126630 -407738047 -237900686 -639152804 -752306230 -31150697 -593918565 -518524557 -477222535 -865506484 -645682962 -18893129 -943420349 --258687201 -342477687 --92510839 -63205584 -475777244 --549581733 -607137000 --793676482 -632712121 -365298442 -744899846 -309133211 -704300987 -590838691 -183157104 -682790210 --130919574 -889560072 -517477169 -506871039 -806597933 -60233337 -938213508 -226664940 -727214348 -991398794 --648159282 -368261656 --453433654 -804638570 -491033861 --898255691 -979921079 -607436695 --292827159 -881552479 --295550390 -937664371 --759224511 -801355901 --236399439 -957193827 -220596792 -881331856 -43692899 -296160971 -708317649 --957622345 -399171704 --978262560 -378049278 --581180593 -523952334 -507359103 -111477450 --169488369 -689352128 -581406290 --694947199 -875146490 -947343577 -394492097 -145834800 -782692665 -891718863 -789773029 --580697865 -93801356 -755961553 --183148616 -952052717 -297227864 -184452304 --528806931 -274238293 -656751596 --580261670 -191785029 --723919031 -806385206 -111703608 -564437682 -539168671 --466100983 -952229424 --58132519 -906264027 --928316925 -970359472 --350320968 -578919519 --326046768 -236941496 -907499585 -452659959 --983050480 -825144948 -419943113 --303820015 -189868478 -684371555 --912388260 -290516735 --640630379 -337389974 --958056739 -744570019 -771078219 -667035119 -25053815 --260617074 -138561667 -634193010 -527184226 -697708176 -681013985 -837354388 -578637714 -511007775 -373661674 --698136498 -68106928 --723789993 -982326730 -900249124 --566459425 -620187378 -46241195 -982405509 -851014019 -958401506 -30681207 -316129756 -621908304 -414740783 -526701057 -567788805 -179461149 -468325297 -679330083 --135313458 -923156137 -218908272 --530573483 -34083085 --942211501 -847045722 --644382280 -164080202 -494246768 -267047413 -827293880 --460084153 -566339560 --865942621 -464630910 --852160223 -780886422 -774918817 -732817363 --653974665 -721221341 -412876304 -235268399 -829146922 -989322589 -545273684 -13420306 --641715432 -122525845 -618615913 -718512166 -539298785 -240112353 -238172867 --510819825 -973449244 --516816844 -383114719 --413951720 -683558773 --671600850 -473817551 --260107447 -216061448 -443392009 -354194596 -777483719 -465159027 -964092648 -839716995 -925812314 -72454783 -587975995 -308007459 -278280423 --903869368 -834024059 --512688562 -145997749 -44080576 -886274908 -27869474 --489072264 -251140865 --176664964 -683664295 --264131067 -104528406 -176902731 -154600742 -51171310 -934922728 -951019611 -549247071 --484049432 -669885073 --747056613 -601967267 -895214042 -301586716 -81885209 --8090422 -763495259 -393035971 -980498459 -918640633 -117534362 --631420911 -17838636 -910280574 -498576067 -440153932 -146230758 -945475991 --571181337 -115679971 -789405125 -273788390 -90074569 --832707348 -902769105 -933954972 --929061072 -198914207 --410995292 -865913428 --711779883 -864389401 -656397718 --825791825 -480751033 -716436563 --540476246 -988173318 -59337379 -252199480 -353917289 --589590468 -567020930 --443344865 -332737796 -883258750 -73988052 --525301671 -687274762 --959893321 -570913022 --599261676 -610791689 --80168092 -129686150 -466582888 -572860894 -820376702 -110667786 --600721074 -809919829 -975732115 -115932617 --755437800 -460312126 -682504461 -501686544 -339282728 --881988007 -544917760 -384600502 -941249895 --625052420 -305040943 --224790154 -466048319 -750736004 -670262297 -122599513 -414270442 --157444841 -177271730 -291741909 -565501822 -784846298 --636218329 -643083232 --648015891 -678383305 --149198561 -109813765 -510123658 -677658990 -567155671 -690224508 -186452526 --9705511 -694245220 -659275788 -656117979 -720241861 -37526981 -422640475 -733407605 -557337096 --89971399 -827507160 -918667146 -928874111 -480105083 -570531700 -963987558 -987519104 -558192969 -828692078 -868321607 --779941346 -530831993 --792504206 -873527516 -913700964 -495744840 -778420508 -274563192 --100817238 -133543525 -209290843 -819017063 -729762360 -655218041 -143195601 --838399204 -831303945 -42010961 -912421287 --101502305 -97746304 -788346035 -353243507 --639916608 -325555218 -44022474 -289300817 --261975845 -233673959 -520982827 -304035934 --170750792 -729902398 -453074003 -10940768 -704477888 -784530920 -652253018 -301913665 -538262653 --127212461 -101215939 --595887364 -404712036 --64422013 -931621763 -295294705 --163755207 -873626850 --220476301 -723924283 -127341604 -662232889 -794495571 --831320704 -561216313 --787186929 -165991095 -561855398 --92773103 -192933461 -987636691 -610367437 --65972407 -638459724 -138150842 --446055451 -223450382 -563077689 -100363974 -790799573 -425509078 --284122429 -561840167 -666601860 -207514016 -744033053 -883006716 -241955530 -752831912 -613084371 -565622618 -540061616 -548668403 -163487169 --989176492 -78961688 --673813866 -803163524 -899701210 -150577542 --824427843 -240592493 -330460498 -981557272 -926283 --916032519 -52862141 -226673286 -770946282 --703504169 -475673626 -348230998 -661199308 --305848920 -367605475 -515213180 -791409163 -76580253 -353334818 -305471842 --730234993 -352409742 -446942866 -387127610 -303337071 --957221965 -658196748 -636887052 -451018809 -961956858 -661664678 -865535149 --795219254 -566989690 --845622767 -210612743 --342633899 -681863159 -166140199 --311301411 -833105437 --99801556 -89868270 -863087999 -730716909 --940988414 -942093142 -111128642 --348709592 -793600470 -535254748 -509475950 -330532039 --350665234 -879501099 -836202883 -169692047 --446617042 -103006913 --546928174 -235935685 -892145294 -693360072 --779199210 -414944228 --310250869 -760811460 -675436392 --152159448 -447779302 -749596256 -528811355 --892844379 -682065271 --760367226 -674535248 -386031185 --161256689 -566635805 -499556362 --710600603 -712726988 -717330256 -331812953 -959592030 --487501354 -471963160 --135566555 -482483120 -556022072 -933054206 --592396028 -623495393 -599583424 --404520268 -156448645 -167333722 -492843598 -261797281 -746200650 -224541421 --660336245 -968065970 -252202531 -764287435 --467899870 -499150045 --881132768 -513732563 --303253167 -507347632 -697291849 -128673517 -798435926 -922192370 -176168608 -463594175 --923740758 -515734134 -378145807 -189777535 --62335042 -411591880 -887993082 --49578845 -182816909 -313674987 -697642929 --473607984 -191903539 -838681871 --237346584 -417932622 -838588023 -789987775 --581080254 -648097308 --366715103 -908345406 -960787442 -681819757 --116044201 -870234827 -84615095 -857405136 --149461161 -981743644 --646342022 -342736328 -155061044 -480186677 --888590884 -706834004 -221505564 --323669779 -204738266 -863396599 --147329863 -862941377 --606952162 -704650248 -480564570 --507410745 -338482032 --952592854 -923218893 -275750036 --413005170 -484196742 -415820587 -527036334 -403457449 -552037230 --233456041 -867010497 -193461976 -571019247 -466031595 -456140614 -283769816 --622153068 -288594317 -215653184 -686139361 -721039812 -800764802 -751434141 -875496311 --642008932 -442428886 -437660427 -248071401 --123675436 -251005383 --768606307 -73598662 --227168459 -386583541 -350761780 -877818515 -188972905 -661157965 --783669184 -455894698 -155975955 -939628604 --341792613 -881275318 -734534860 --390506620 -768884412 -229895949 --358133094 -759778645 -420727407 -811731256 -691725072 -303629045 -691344045 --448992825 -119005667 -820055885 -952291991 -394605825 -402105790 -155450566 -755614612 -931065194 -946698469 -114955863 -716747043 -524003340 --991783567 -100394706 -350869321 --42911081 -701411641 -439052410 --566604517 -880283905 -153850385 -176915498 -626105145 -981187031 -765067237 -740777612 -315323571 -723136097 -439181245 -929060978 --485453647 -956589608 -479722857 -706571945 -416169543 -16823630 -370446086 --711506442 -757667889 --908130342 -843968797 -711940814 -279360913 --937636275 -216360923 -970441411 --916495144 -46285255 --398229220 -486098608 --736026962 -837536973 -229058959 --306535216 -572805354 -224853787 --62630648 -535685696 -536883996 -35886935 -573135661 -387722240 -76473522 --621651016 -519809605 -963514298 --956247428 -837218266 -344451525 --608233630 -488267230 --131214616 -791228906 -660929385 -170846997 --710650993 -552434878 --356376810 -935081852 -199879742 -199621438 -755420083 -976638648 --330439604 -841587502 -22391276 -989549051 --125502765 -505629165 -763928297 -882265850 -507638356 -212086860 -787283152 -75039360 -813785139 --869867703 -779198344 --390327280 -204091136 --480771171 -370524413 --796078099 -881782749 -102274154 -651417416 -455626682 -927676989 -917373188 --648291451 -628260181 --79021164 -294153413 --983837519 -540436919 -575090807 -537050570 -186575246 -192906822 -398370842 -188454089 -339750272 --184755063 -790137916 -327710628 -236185714 -524600665 --34174345 -813677966 --795580357 -306689011 --205343127 -561927642 --923251754 -793752281 --19793537 -85022124 --107146445 -939564132 -306521917 --532434682 -314271821 -673845075 -798741867 -607692186 -884822818 --467572540 -876354917 -216777743 --369309204 -528614597 -233221634 --800435283 -96776949 -90977438 -423000451 -398582778 -651972546 -455299806 --330761037 -68290059 -610575408 -129717992 -56682118 -559199028 -523144981 --235300864 -36534674 -486212004 --794153151 -810541079 --657006351 -936830881 -660656210 -761286847 --920980837 -686518450 -701809055 --556555551 -482543460 --144846953 -174863704 --891450397 -955741908 -386866063 --73341165 -328984387 -300708452 --919940266 -105630916 --393003524 -595541729 -422992795 -525335926 -107345708 -197276563 --136158399 -642795858 -801630369 -821351115 -621483262 -74001439 -124422133 --380416698 -43299072 -834423923 -147754464 -377275721 -194131217 -111574907 --526719820 -910021425 -337586467 -44830900 -647994714 -120240775 -800033272 --665514970 -811352457 -751666562 -410206003 --898179691 -454060 -396132920 -648877851 --641228027 -604484153 -458901825 --340948014 -422940347 -690376812 -454746004 -60914001 --706516789 -666510319 --454297421 -159928145 -505746201 --653189173 -511715029 --91222934 -31654482 --881110435 -313977270 --511508934 -647457155 -906743095 -467791839 --873427696 -571607034 -335212512 -740893590 --517621140 -352932903 -595140847 -412904387 --482635898 -201761460 -268606439 -935285814 -775722085 -169769627 -879068118 --958186860 -927696646 --259098535 -489179251 -933209834 -383655204 -664083535 -384974050 --917213115 -326463867 -737489476 -353887597 -689455096 -699233355 -293804197 -685092527 -297254448 -91237636 -607364510 -709183279 --838513729 -319176959 -858664955 --497003886 -195669439 -111094312 --120604048 -638258242 -983042282 --631757954 -967193230 --789295708 -821551075 --198426500 -890309966 -277348341 -347351065 -94109308 -94998050 -444807030 -199698722 -87843993 -933701222 --66477361 -194525200 -946861217 -882058163 -478762838 -21784061 -362057137 -33585902 -455903492 -339604591 --928681311 -357175145 --893598259 -400056446 --820450117 -812242865 --258698332 -724646865 -780996756 -550459622 -84243709 -885749593 --844923571 -230005553 --533783756 -512647770 -168556290 -929188533 --989645787 -598154901 --986766897 -792625132 -585787010 --884909153 -947973136 -769230655 --871648852 -223590432 -716854297 -673648771 --30522099 -343752629 -288303334 -795302863 --707333404 -769968753 -160675467 -234876364 -597290623 -62391317 -408309051 -448289454 --972613905 -656726773 -972112480 --992623322 -56890757 --860720200 -21571263 -974560169 -848694894 -772207400 -465551834 --16998819 -155388491 -478074210 -81957215 -200729776 -412898992 --149049066 -718481764 -78457753 -519370987 -584998226 -307068618 -288702555 --13270192 -699941293 -872943955 -58560839 -443803577 -494865026 -82759034 -469817424 -279826416 -728509569 -889164274 -897498908 -591477328 -85601646 -524446170 -925750438 -271972553 -783638960 --626681435 -337784233 -755956863 --832821439 -505758737 -375684100 -764136701 -293359742 --662784125 -705673055 -410422891 -181563049 --516339456 -284834955 -853589836 -111614197 --716849591 -768886191 --967097991 -806282210 --362456909 -755969818 -277392243 --706596798 -933272743 -681641114 --906994223 -806448972 -842909446 -719235079 --431728625 -841340050 -124297571 -70475760 -614634822 -234854264 -560656136 -419440546 -862482927 --257060185 -101384148 -766015046 -747639950 -19042802 -527827718 -32921790 -840257986 -90604965 -727730231 -346258744 -95534557 -803053866 --800715552 -331048105 -305218078 -623819865 -458494675 --57779080 -687544192 -348902080 -517623362 -939433569 -813593106 -102723843 --784462951 -958235573 -59344390 --704359763 -145620760 -123491464 -979991560 --177840473 -141218495 -991493016 -906006629 -680306363 --54597872 -215015330 -203220331 --344796608 -312648648 --883004357 -757099501 -182340845 -621711596 --144081112 -74192645 --146053089 -914605105 -35712919 -804518763 -326790684 -98437111 --382423207 -317205921 -952525311 -358289899 -877154850 -269344842 -397708426 -993756269 --198091009 -744378279 -223797125 -62447505 -584418899 -779898947 --590916946 -38997715 -64188437 -605073100 -896036547 -161491770 --82722407 -525102460 -151903069 -419237513 --908341427 -53635017 --663666109 -923516055 -663050202 --72916710 -401009529 -382237755 --960774937 -785093290 -907760636 -89194568 -884802160 --487439200 -256787629 -174110485 -562562480 -962954278 -214410939 -770585973 --698146670 -53617543 -601205118 --962837043 -503612979 -982882950 -644239322 -730727658 --285457036 -561221532 -395463268 -8811845 -961676215 -969061665 --232819884 -603899363 --914950038 -466442914 -784836456 -597506094 -63812417 -691241296 -681108943 --200689020 -544934546 -467314101 --909157311 -571345479 -330097960 -837125337 -534895870 -113246794 -848481053 -871158485 --560712703 -997596341 --709655768 -611829895 --423520713 -28854650 -376493683 -709055710 --765298556 -635542158 --462919942 -167293632 -182346209 -863334690 -909327990 -414498417 -522408891 --359641418 -44458330 -956977283 -421843080 -803482785 -697853340 -549848279 -249391331 -92100407 -619609151 -877247411 --12301975 -834384465 -948763626 -562245894 --273790653 -564502483 --822451077 -156037561 -915047423 -67466884 --238920871 -906084353 --824927365 -691159064 --711150117 -814370841 --834891248 -701858198 -244974033 -328027974 -163476406 -125523530 -181060964 --842583443 -182647579 --595173428 -207409259 -415386588 --644686559 -324520953 --928407698 -401691768 -11718738 -86567294 -596298398 -569325948 -635724022 --128317209 -703767207 -429396338 --518140657 -851346303 --230575893 -545048003 --197833636 -514500436 -200555440 --189302833 -176986635 -342240451 -332668611 -256767014 -162298974 -835886277 --969382353 -36268052 -474011362 -179045237 -1953617 -162872297 --457647182 -780098978 -15134805 -486790712 --999822022 -205919119 -152913545 --56472928 -110186271 -142997556 -601704550 -631116422 -494005379 --771707073 -754459599 -3070247 -10595691 -445570521 --810467225 -458866711 --255840408 -881567852 -657789893 -916322006 -699520665 -352771064 -536586381 --606158557 -673404336 --253727850 -389887011 -305993131 -652002048 -529497616 -855094833 -869756770 -405348446 -946745300 --165943483 -575851465 --651890889 -852462284 -208612102 --776428664 -236183917 -268757777 -717383556 --396341945 -758702645 -4567489 -952421563 --631859782 -761949838 -102312209 -782315127 -21512451 --957761834 -498514132 -554549458 -266836542 -614564718 --841989564 -72217175 -511913591 -36156105 -691196526 --271345038 -619730196 -98105551 --836671334 -631611799 -346708416 --41778567 -313006954 -899370772 --419555471 -506172417 -33966492 --700484952 -277479437 -569630294 -757244931 -486190386 -150731371 -375739080 -139498371 -40548541 --200960864 -657053078 -178405846 -773389151 -913578567 --299515049 -765447055 -129734662 -728662083 -543926053 -628701301 -985681087 -747615399 -409317023 -607468455 -941426626 -741884039 --711950277 -884168577 -278986732 -700909950 -551225976 -959395575 -701163217 -536860914 --233221634 -815764168 --626255884 -79400708 --812845111 -478367477 --222724157 -705174437 -684229441 -376413951 -789695607 --89820457 -843013331 -620913722 -718664970 -240259187 --292432603 -319366811 -209270384 -282532080 --484808144 -211653567 --190900901 -707411530 --801185732 -346973127 --321628869 -595108089 --639628918 -45326341 -822503470 -301983199 -996969780 --601256664 -350996896 -260893125 -307070876 -752135083 -285848261 -506091625 -288365572 -344620157 -892936612 --658238691 -110023231 -436396688 -477327705 -710297863 -646661864 -818234345 --664036422 -37341302 -701600289 -891243904 -80660144 --956317216 -478571096 --660717045 -106115826 -625406070 -921409705 -961447709 -800028988 -774040827 -681667435 -938718102 --175574655 -526722856 -850759431 -845374574 -456104704 --783221422 -109781167 -25372929 -19993128 -410955929 -523290549 -226559246 -394299052 -485438254 --58229586 -997474750 -674085178 --204599153 -281146656 -985851694 -532294411 -667850817 -915231472 -736503776 -601314019 -108469775 --656009527 -361378951 -875073382 -68111459 -604473443 -62401102 --765800151 -287867901 -885680028 -278360570 -472234468 --997699575 -490101217 -958522337 -503988438 -79825216 -189441910 -708501919 -945955917 -678702126 -968611 --662170741 -212625699 -772222169 -476656071 -149681321 -42281718 -487261942 -864682680 -166217840 --25778034 -966007998 -553486914 --498922854 -370883716 -248345198 --856178774 -269968776 --907552769 -916979995 -10604074 -213264068 -699570601 -532506566 -136579316 -130005414 -876480534 -802764815 -827175941 -270688207 -256026940 --589715437 -435432237 -314106153 --57819751 -78731482 -973952289 -89515758 -600473332 -342317872 -948160558 -650424878 -759287887 --679284820 -511600620 -607228843 -374088827 -186331056 -494994675 -757206011 --752793773 -165365148 --992082246 -41820303 --262629930 -318396570 -131639893 --298510984 -695907035 -958350295 -783487533 -552535113 -913534808 -424799312 -538607376 -794335578 -64546645 -864818464 -809767446 --940997683 -442440631 -241555921 -728205310 --402092250 -399405497 -523082504 -688892917 -955731989 -655207398 --967637966 -833290669 -95123932 -131514585 -202995599 -375994652 -455842510 --899355852 -720117745 --898075399 -82966330 --63020707 -684629055 -902716053 -745960271 -402954293 --753778123 -27732594 --138942642 -482538513 -919534216 -304600143 -843477851 -170825394 -182829581 -978453686 -618358035 -607575913 -934206138 --212105351 -560353018 -343397650 --906462647 -312100106 -818349837 -233431529 --837687122 -33058245 -446284351 -85646476 --663261168 -10305060 --687299907 -575771452 -99457316 --5335229 -530016172 --778876894 -15476684 -179505971 --996428463 -722439551 -676034424 --176935876 -372223218 --572469149 -486066016 -367876779 --243163169 -258039985 -851369359 -932879488 -713149606 --749029610 -57125298 -443470153 --635612727 -939305242 --993898319 -861024192 -346241473 --165560158 -111515774 -614755649 -351449817 -586381353 -13637754 -342258578 -902097868 -499823134 -540146685 --324985631 -553888312 -478753057 -65042846 -811944228 -51028438 -314696107 -127290542 --856097066 -619707197 -762671469 -905706385 --840558374 -362346140 --581837797 -382243422 -37587914 -843883549 -331860876 -278348154 --776831771 -4216058 --130107485 -388568630 --217163096 -516328210 -231644527 -878915109 -912538177 -27898588 -535331655 -24756413 -79818754 --819323655 -620282323 -302448486 -412962770 -243039279 -501265614 --522104734 -58615584 -113602311 --311133988 -418633637 -941435479 -974889057 -296667711 -763001671 -204802979 --112258735 -813948348 -397624748 -696104252 --63956976 -888721651 -488585076 --392821125 -276505812 --706223459 -411303872 -497463473 -366251036 -130882937 -154803295 --129766081 -885557815 --349813936 -518456370 -864078551 -452141011 --297405802 -877349076 -713646015 -126685987 -799548116 -432288264 -181639790 -801193483 -715161696 -281486460 -455737380 --813373717 -7207174 -421985919 -170319064 -201966882 -628101153 -542215171 --354638104 -119396071 -149976485 -611909241 -194653726 --201353467 -96647444 -963551409 -64853300 -861934688 -437567784 -434008207 --463894217 -717860076 -497390613 -237048735 -166529370 -646418695 -997565200 -308306032 --28549782 -595582991 --527015613 -725342883 -495037181 -895393420 --330897841 -992908462 --123775665 -551297117 -235334078 --147222449 -356858532 --998736965 -425737227 -356569384 --136090299 -854819157 -851649959 -901745859 -341939215 --502275141 -905626847 --111080072 -988910339 -995689508 -795516769 -489803102 -626527813 --36534674 -308092728 -549586296 -734063365 -939112006 -607595968 -483056939 --250755 -801080342 --970398118 -924300399 -752766209 -183534133 --502951374 -274983221 --824060716 -499193081 --758797702 -559322479 -348487636 -982016138 --663315454 -1401941 -877638191 -178322476 --111046816 -332385086 --89233682 -403894876 -106955903 --751117427 -491933073 --890475028 -38851605 -851456605 -458999954 --850659001 -138801535 -811896998 -561359918 -924346835 -732004488 -962831165 --390556271 -608596349 --586904936 -221508227 -441827121 -866144418 -10082764 -629246871 -641382469 -377839150 -251365360 -404810562 -62061625 -715087503 -536986687 -924320355 -98728524 --759787683 -961367466 --397075279 -139346246 -862967940 --405756963 -844456920 -452072873 --534259661 -95691853 -86614072 --96748475 -233631420 --632455351 -696538498 --509018531 -358003371 -522405265 -451472090 -752353806 -553769850 -533652237 -4771350 -635707375 --836540077 -345525809 -401438784 -407641897 -473135585 -205176794 --831661668 -141472338 --9038974 -325447641 -373610964 -138699564 -832560298 -780653428 -133729234 -631030663 -724352698 -27803510 --859116885 -120978732 -955918525 -500179644 --732689131 -437429326 -665932522 -506028430 -802462996 -52550150 -143862631 -987234826 --435398094 -669016203 -97330070 -19931226 -961944514 --725374986 -366444976 --512083408 -605858136 --654717992 -267128723 -624847019 -283078055 --581020257 -749219876 -718840645 -878781310 -713316337 -444069313 -565559642 --435805746 -685248836 --846755457 -266541722 --760660854 -881129912 --601884236 -58753138 --775683293 -132768140 -756214888 -462956056 --124176411 -353172062 -472367739 --330892687 -160029662 -556896265 -751954084 -745287623 -120130121 --301057292 -38169853 --844875114 -661493039 -666470776 -27058592 -412811618 -322618075 --960929086 -437709753 --506729025 -276172485 -904712998 -314747905 --368746131 -576231612 -184605349 -32926754 --169191949 -923063612 -199064005 --259900178 -796545023 -539858191 --632385796 -474415931 --142627633 -600572840 -240039895 -741280986 --547165251 -801696520 -81328402 -857081429 --811871508 -346678273 -581522499 -726294894 -707163547 -912338162 --164410089 -181201183 --878072209 -15544417 -455263160 -618777756 -837009036 -759151236 --381517814 -304100432 --744554055 -591328191 --678115274 -770144289 -112217380 -147222046 -958231359 -771875717 -546705950 --764977193 -511114731 -711048500 -19389491 -64524081 -894412770 -691301654 --688232391 -824612564 -730594346 -730666398 -237956493 --682191373 -217594814 -262914151 -692367687 -273216215 -447072575 -714911289 -535253475 --597252893 -91629453 -902460290 --813792219 -291486318 -22550909 -128628569 --930640982 -590124753 -419960850 -760984366 -797060531 -300614551 -661006173 -146896776 --578684008 -475341477 -925856757 -736110981 --932685849 -192278124 -428689146 --202428119 -264178201 -902662154 -371466976 -986139731 -540052368 --634451193 -938697495 -481967144 --429762054 -396788054 -339969439 -974808554 -833786281 -784228588 -507551998 -762577893 -306828774 -264794279 --237111910 -645253827 --524302344 -440809139 --279676056 -536680248 --661943599 -663088332 -99132412 -368359075 -313266911 -573710820 -390158853 -969902986 -227804042 -468578890 -626751704 -599181390 -701126302 -846716895 --759738688 -633196097 --579485939 -788313757 -168787274 -250008845 -479674741 -373162803 -475058276 -689061889 --100685701 -650496840 --187890911 -585880986 -289399581 --728264068 -338615965 --959694779 -170165028 -900394805 -254183094 -699321702 -933389506 -611547089 -614908870 -796721700 -533424439 --152455260 -992263974 -651762173 -400265976 -780288473 --829967204 -350604820 -977080610 -743555654 -75460823 -460010816 -634006845 -263599425 --154446224 -286488878 --324099939 -768219350 -756264416 --205488320 -261539509 --590738489 -947922592 -509326851 -602055254 -580020488 --655207398 -284447273 -212006361 --179781188 -727560474 -860314339 -513475354 --352611374 -919481160 -222441484 --388037228 -584785009 -181367623 -477578915 -898231869 -283434319 -862542925 -503481427 -968450575 -402451941 -59370119 -734472440 -84382450 -458517395 --764058546 -157505991 -577694828 -406082682 -410023308 -782041735 --326308509 -359645706 -501469239 -312258309 --206269493 -375936051 -367853246 -481048042 -412164158 --367962879 -638535711 -249228480 -995303419 -186273865 -608884646 -739172529 -710364434 -617967743 -326256734 -297892274 -175257818 --144607795 -372899587 -400902785 -380573188 -552549768 --638884607 -23274795 -123282361 -947017378 -705699511 -301329192 -47869788 --872578631 -638196494 --922188648 -9769239 --473690958 -358184529 --85585370 -475480535 -512454288 --831646743 -745832467 -664137941 --921085304 -600577974 -754756294 -589236214 -288246890 --370953213 -685641021 -135072309 -130229201 -674702878 --624477529 -761016018 -415949328 --18234859 -807753617 -742342642 --155195642 -573750536 -67283961 -815140812 --47403144 -176312788 -844699734 --530474938 -31231677 -590640138 -906655368 --82139741 -898384779 -568025950 -176515105 -743693950 -606505302 -450636773 -61929785 -434728900 -104186499 -791885646 -845663718 -826917550 --185911194 -203501452 --652546294 -146082476 --247035538 -128090115 --611766777 -676694468 -982920789 -412992430 -804315696 -228217883 --301388645 -143028673 -802153539 -330080692 --293471109 -152608994 -633252013 -700479867 --168237689 -716496372 --391044865 -572905893 -696133389 --221448522 -479037766 -118493222 -21431993 -308645142 -652582184 --406857805 -820415773 -624857632 -855881180 --335792308 -857582463 -77288008 -26729552 --523358349 -623607165 -99572931 --555721743 -126462872 -330617605 -445413766 -721739754 -206192684 --603655161 -37366472 --137566416 -433543634 -251551965 -407675858 -935722332 -586657648 -448003464 --301650697 -97202823 -372795184 -135461467 --857818150 -21414936 -919197630 -316822207 -77637079 -590386030 --512511975 -71487726 --685469294 -10861916 -145245609 -557616916 --157317796 -384497544 -335054541 -399871192 -693889403 -894070172 -512991290 -9248783 -98373153 -224467149 --221736701 -803893176 -713304231 -54366305 -629246300 -923806291 -845913045 -853584970 --57830929 -799155505 -72274115 --384706046 -300377250 -971085018 -74943999 -976773735 --406956946 -796655942 --58671298 -800738315 -75563244 -611558258 --837771974 -218203953 --222903812 -146471854 --220502568 -792688131 -426175461 --871645333 -540139806 -58631876 -632633242 --586085263 -122162768 -616760129 -660641069 --672330071 -414940717 -57280300 -889227142 -528652453 -814802264 -474784855 --386031185 -306620132 -464732206 -989173244 -202813343 -935877840 -665846284 -618857496 -564968691 --211432156 -197009227 -504437817 -375244360 -938300069 --149266401 -24402645 --632318701 -112764934 -605137616 -939817362 -863752296 --116712307 -767942174 --996388343 -770433239 -577108192 --704875835 -654102666 -627680823 -178256528 -707616721 -300255647 -366248993 -597314200 --894725227 -178673424 -935850786 --203941139 -598005773 -114127692 -876754000 -998121706 --197016750 -762329464 --348357566 -583951765 -771283504 -857106224 -753034238 -842278365 --973792405 -810371595 -132510870 --51296275 -364657573 --80972879 -431111780 -814464211 -281892663 -729665048 --474734936 -905031100 -193652866 --872749386 -957341062 --822879893 -327057387 --245364304 -631585397 -334697146 -945429704 -905528343 -65876619 -333884993 -153443374 -732330146 -838354307 --657846011 -491971713 -106471605 --596925858 -297314105 -219377945 -235241199 -733550321 -480370223 -354861299 --211950254 -708088867 --353708865 -365584424 -493185989 -693530393 -353786733 -149081616 -729626886 -499411061 -132383802 --939885838 -991543242 --137657855 -126382178 -21728894 -350531882 --445238801 -119894495 -107005321 -323266403 -876562854 -855094794 --900891050 -645924392 --291967022 -546518059 --516685004 -334396263 -830568682 -551776133 -595271388 -35517038 --376158547 -283726187 --833056380 -842007875 -221204333 -952186822 -549541904 -390321232 --583095106 -145698578 --826009283 -54289602 -342287981 -977284635 --138565319 -952557523 -595480202 -989747929 --334033949 -397635694 -507708629 -442671420 --786514531 -898076520 --681277685 -414929941 -838964724 -327204710 -301619205 --705673055 -214898140 -203126745 -530423303 --974186176 -338999460 --774069398 -351569118 -753388227 --355744756 -251515971 --998966346 -733118694 -710368614 -722463184 -207527991 --296265256 -225868114 --805248054 -921111111 -405994498 -272379512 -348558931 --636725572 -820147275 --278280423 -218161741 -955935238 --512406699 -72209978 -866567508 -453625821 -901011940 -801115777 --572458704 -624091431 -943614018 -901464644 -704208807 --954512314 -405782727 --865813617 -21445872 --183511760 -629932325 --682029613 -484682582 -3900678 --302757734 -766832036 -638134751 -941834259 -510366492 -339544582 -295196018 --802135178 -995104960 --626394976 -155285898 -307681812 -50718873 -157885532 -850465143 -685610704 -289668846 -40447998 -681298003 -518215544 -448408946 --391357798 -107346726 -885064563 --583273838 -731574902 -345399073 -903339396 -493656161 --348929820 -675792953 -321137436 --167952124 -879764391 -37656043 --985252318 -211286843 --746800151 -442748400 -437831068 --6154323 -513289974 -891180990 --125853639 -594596758 -9913864 -198055396 -810153378 -50081797 -493024742 -313131059 --290454313 -50950404 -801456867 -698517866 -632773527 --127347812 -504843458 -783171999 -727384800 -213588293 --656258257 -73789616 -251028218 -436107775 -442661732 -870454921 --280550629 -492096353 -543203892 -977324460 -662823900 -993440977 -511472823 -374334911 -623389406 -624720358 --46452868 -822110955 --474131242 -657280566 -527152759 -873117179 --68818108 -740344300 -345007783 -865917218 --951811072 -867635740 -477748214 -199439724 --170947822 -706620356 --505385274 -91090357 -529675732 -188277570 --144458462 -776442874 -133060946 -780859393 -296066617 -791859611 -204691974 --746866104 -54698561 -314175723 -489132613 -640874788 -35269826 --840439907 -856520999 -725326957 -898637584 --386680769 -766674602 -103858223 -347315200 -171630865 -31310985 --445119582 -637528537 --525629885 -295144281 --460968965 -710651769 --404990524 -641385658 --215303716 -677868439 --193680048 -1365870 -913858779 --324251081 -135880250 -371886632 --399748722 -504236099 --390826587 -417619047 -226688799 -499739638 -163263028 -843822844 --88132303 -878081691 -731602470 -774600238 -11775692 --232441677 -527639521 -538040331 --344929019 -30678968 --863830278 -161476846 -159329047 -936482355 --35691657 -377522006 -705519729 --401754682 -99138231 --346135196 -374240885 -41737997 --782041735 -937138359 -414299480 --380662916 -806328454 -163679346 -790756410 -346167059 -381752741 --211011876 -864139549 -288881079 --756286154 -476438259 --790853177 -451039542 -907481548 -214887549 --676358760 -111293481 --292102403 -522630458 -820367054 --524248703 -838829135 -453229259 -322285265 -191320002 --262970699 -399685156 --632480570 -596037447 -600081666 --27899308 -388798474 -774422483 -398087326 --862967940 -341362103 --282114366 -704929757 -534975976 -409845889 -137259325 -270427221 --331796925 -307983965 -635455092 -317568387 -14274176 -144505906 -865370729 -703407872 -901322987 --51240307 -736325686 -469812619 -171789469 --415949328 -986377755 -253416259 -258192278 -840656488 -125880552 -645133136 --928153336 -74569702 -80653601 -826028684 -762827887 -639688320 -290033932 -924642645 --484750258 -866633804 -34462689 --376002218 -717314798 --147642512 -846144251 -149306358 -196470242 --904472718 -219469691 -622730255 -867198624 -500709958 -827087054 -788140011 -811258680 -369147560 --328246180 -132839643 -444581170 --346744424 -480442850 -922500193 -15378479 -279360623 -8027582 --99166800 -192487451 -571859414 -261500607 --204730524 -382629938 -534723540 --105271919 -486183414 -283992239 -984407414 -607354455 -227074817 -879635717 --554423544 -921527 -900721178 -49362688 -915728691 -781334529 --641903801 -289972333 --576637084 -713682733 --153607169 -378457675 -256613455 -588704828 --94878960 -558859723 -558438919 -398640907 -414982644 -935294241 --179705793 -143953505 --773357736 -949129004 -14184918 --855942994 -563627354 -488221289 --898492875 -862851144 -324249598 -840323657 -349030912 -664428275 --388568630 -998558024 -589774479 -290176328 -257571215 --178600597 -369944552 -554358994 --577651506 -694814049 -423869113 --157259312 -419367866 -320773953 -438387333 --277447580 -105436003 -302952640 -530660633 -470431859 -843449782 -461226290 -160866372 --331330570 -85897239 -907199928 -731820088 -680103197 -770247916 --871881752 -340556334 --54008626 -423182837 -301000411 -636428471 --698338666 -781021885 -860395306 -284859659 --191457734 -85437588 -109780781 -664783048 -2832857 -497767252 -513007325 -990742615 -149772788 --779148407 -91284922 -796305837 -634501200 -667333418 -223354952 -656487883 -407671107 -706276158 --372304069 -450030569 -527835200 -872112797 --186263726 -602313107 -289713453 -712641578 -438113186 -943672195 -152684458 -987122014 -316240146 --271147221 -478563881 --493174230 -130520610 --327640207 -304182265 --753564380 -612788394 -554824813 --947083250 -400299816 -509995787 -505542727 -758171450 -764685738 -639068397 -394582953 -902163854 --122962705 -990013960 -596006178 -911360781 -132359625 -599721287 --141705116 -893412765 -259642433 -82434262 -878286972 -662797624 --939811394 -154476275 -680820476 -753591133 -100847218 -248800342 -884530922 -949589229 -549851977 -549303658 -758734806 -922989731 -24038605 -611794806 -896658493 -105495842 -598385818 -419042022 -907216988 --997933924 -192330060 --438302229 -340473937 --647873814 -892703668 --518231096 -263449409 -416256670 -684554470 --732035569 -728888086 -193319056 -778524436 -527402900 -262149391 -58411600 -913486243 -4724139 -340554463 --257835191 -437927907 -202098193 -514163066 --67599867 -865297895 -267991952 -6138226 --555711789 -596014318 --194616522 -768669940 -256180369 --44537663 -223431551 -183011368 -802815826 -234634167 -236870117 --205592775 -809136831 -796202351 -918116441 -367548272 --847379079 -129556633 -473034684 -25955435 -328480012 -342819971 --840628773 -816899100 --630403598 -444226545 -262658621 --821160630 -740841805 -831290885 --492335414 -25295971 --994180314 -340335280 -475117045 -473418855 -963764310 -422516380 -510199176 -914870720 -500248477 -900814331 --217653034 -628880981 --247039667 -889394632 -595178319 --873348768 -385066795 --818169564 -337905913 -948264271 -960964477 -627220340 -487069597 -182599002 -888090213 --839677649 --730579229 --732442328 --412965230 --295538191 --75212234 --234910385 --632548672 --362432560 --631166735 --934418995 --698404185 --286265051 --804892472 --630337655 --698641270 --943620650 --263115433 --55280953 --982711976 --790581588 --244136409 --184016466 --503198776 --322064936 --601697922 --572072580 --438224160 --10595691 --393567922 --704848180 --625828693 --850838785 --848431625 --333918170 --571395567 --787432249 --27879094 --443587625 --29735027 --195255631 --280081354 --850558989 --339603508 --593010117 --795085057 --756720300 --2595220 --970337328 --120320052 --189511561 --721592384 --700902493 --189834163 --884161817 --747195954 --260604292 --709183279 --169690804 --14690235 --971787015 --701866086 --331214915 --226240533 --892327278 --635595933 --659730680 --194223473 --85259693 --166012759 --811118998 --296634777 --278992798 --324757303 --79638377 --548806928 --888027891 --103332605 --706288235 --132730381 --366582177 --538913160 --342206273 --192401850 --834272962 --346802634 --193757660 --731927500 --47039938 --996932857 --92463340 --358632743 --667712916 --58829415 --778626147 --445790689 --712641578 --533448153 --790306423 --174832739 --22943004 --25108169 --329842661 --51093842 --180947462 --393934850 --894883357 --754653112 --355745680 --309944705 --47774628 --936924105 --249216548 --527209416 --497735075 --427479384 --438880162 --347313226 --2324287 --852751107 --67135746 --317164593 --225891022 --406290015 --663108480 --127524634 --411346384 --930420142 --860959207 --467032255 --947393729 --776822890 --613782660 --16326379 --459651374 --250273449 --635461096 --718307318 --419499450 --734299985 --385641079 --301913665 --439351580 --38672104 --170138120 --776184541 --596838297 --731580022 --290655437 --775501999 --392994730 --174198048 --93369035 --645133136 --312220578 --494917935 --326122776 --323030146 --29926509 --981749474 --21379089 --233747942 --202226821 --768733304 --95354778 --248620886 --624091431 --706805551 --580334218 --966634982 --826206505 --795625252 --795041643 --141945086 --247791676 --157293882 --369861869 --976107381 --887008640 --574928193 --683558773 --133896723 --419124295 --226921900 --932120319 --962642503 --826861567 --978024266 --330093633 --92594246 --308896763 --344168246 --916803379 --666151950 --16796965 --861854390 --541109000 --186866298 --546366942 --757206011 --684563531 --681770508 --16376272 --130195123 --211782830 --753277243 --901497617 --199661261 --692865549 --409616137 --85152004 --384165345 --318195497 --127920488 --923072495 --437339197 --651324732 --811094098 --689854200 --261653453 --5625806 --186446508 --411245309 --276192070 --710567896 --820490070 --890704287 --668968608 --67357725 --367072380 --535168568 --786065064 --738659878 --53366474 --658345994 --571106838 --163405579 --880905694 --718939019 --523018114 --923622268 --557627800 --939153779 --316717460 --595938366 --906365493 --982458719 --345389403 --31940752 --800710192 --178572356 --995224666 --391503939 --604883596 --305516746 --542141919 --162782721 --988906050 --884865328 --283628155 --901593397 --366930922 --17530762 --900419635 --700968297 --828641611 --800311327 --913456572 --412647356 --703525631 --843372308 --498149164 --834110043 --952039419 --296271499 --595061229 --382600435 --226769948 --612079042 --421212134 --373971607 --461999820 --481089074 --951498523 --177678647 --676560334 --315611203 --644666216 --299218551 --799054256 --947902578 --424914086 --845748732 --283516759 --926829187 --787125934 --272599552 --139264608 --769939392 --824217347 --549854673 --535186138 --342522939 --991636224 --72640113 --544631559 --857991332 --818199241 --950106204 --282794460 --823978402 --604358717 --172170335 --285901153 --488639517 --319819550 --297685317 --640847115 --529796550 --620632660 --316075381 --617995617 --330965726 --426513225 --607300361 --935388926 --242295289 --979616961 --484112814 --338847542 --24185611 --691327564 --30874200 --923195584 --689744738 --276102389 --162756404 --917787870 --247375101 --761881740 --758799724 --583278291 --894949126 --742420685 --927618372 --428900721 --561494767 --591579236 --680097372 --805954896 --888433412 --558428581 --877802136 --127549146 --441196654 --429033815 --109371173 --847985092 --119306773 --863200070 --576482696 --254885587 --468901339 --839788785 --110784802 --565592876 --884417905 --258500613 --630259390 --590830503 --756813124 --621963126 --263419871 --313174084 --611369692 --757089766 --842691987 --556973286 --848300069 --173685876 --998554182 --708421445 --460955430 --918956536 --180453401 --348418972 --730168097 --221475184 --216657956 --616523781 --512712834 --310621943 --763308766 --143117521 --432356053 --772111160 --737654734 --319139749 --544521966 --380637203 --277641223 --867695657 --717023789 --178552750 --916003254 --549080170 --133366505 --551724801 --619826928 --866874041 --336325431 --65243074 --918374534 --973747600 --989129570 --67469957 --749095533 --688692431 --220960810 --269302587 --69500562 --686860869 --74587682 --244034707 --731787022 --232159804 --361327016 --741132841 --863106397 --333108920 --208146425 --41436347 --503024295 --863637934 --216324603 --569244500 --988521443 --659628536 --59112271 --525399296 --961247944 --468745008 --852077101 --7686387 --383578674 --163857216 --283957601 --218229499 --234903787 --198904735 --391470517 --159194653 --112717782 --512907853 --441712654 --518296445 --571926017 --751230655 --768665236 --161696647 --799982574 --613977253 --906748406 --60963785 --819810224 --68127692 --879895286 --134802612 --988225301 --978488658 --880012475 --387483983 --286488878 --480433467 --757218278 --40336007 --991128269 --36305647 --606285857 --130155305 --141189962 --315913015 --257364894 --944495840 --619879203 --551514483 --787503605 --208791579 --461105353 --803564088 --761583021 --91037883 --803183495 --834190842 --233420847 --880050346 --781896795 --228063095 --341086171 --37982584 --884447845 --788463417 --234527337 --892974202 --347673311 --260747333 --151220262 --617152278 --428566979 --738195326 --208016736 --395520745 --799697304 --57205696 --850548727 --251154348 --979881241 --73040858 --436652551 --757613793 --706879171 --90466698 --424559866 --11825855 --150638764 --147901116 --908971345 --508358998 --565622236 --9870229 --345506386 --785960822 --964092648 --841906455 --523231783 --649126768 --501747118 --338978180 --575991050 --864034500 --169265063 --882404376 --391151020 --875354702 --689691132 --758710577 --651026391 --693630391 --719149482 --208193299 --368648536 --527636713 --729833747 --751006284 --904823530 --41239443 --737697188 --9834850 --768195681 --767144910 --856745724 --759709462 --390423457 --330327661 --458656191 --289465438 --945992788 --906896659 --597902296 --213009808 --61662775 --541887867 --652350019 --91742810 --734472440 --90714284 --827059412 --966768786 --199128018 --938375226 --134825457 --252001085 --451136433 --120713319 --799418756 --870980050 --10505819 --198109719 --133098922 --110066403 --470935853 --121768047 --129686150 --564611772 --683870513 --164413181 --208012910 --73456539 --301218228 --544336482 --539410762 --117872933 --330386533 --345759473 --41707662 --37143346 --790849011 --421077899 --136994666 --517210032 --224995458 --817877303 --850574880 --271398627 --944933128 --495610036 --909032755 --770691404 --771886355 --796276394 --875748162 --985452439 --416256670 --829580606 --883963177 --845061983 --995713675 --198496402 --115163440 --846060584 --497653083 --994500220 --958310479 --449713215 --342090173 --494652025 --733318755 --944051593 --503589945 --571595628 --176640216 --450374571 --699523051 --991965143 --52550150 --207209337 --359577815 --260035174 --128815184 --731089688 --254196337 --814464211 --319525370 --696104252 --14307404 --911012690 --995624957 --393384571 --931595346 --510569189 --972653314 --558711081 --239990400 --88283984 --866175138 --966442591 --843538638 --60994187 --641671170 --334792744 --803304118 --662082013 --427744944 --750456163 --528611756 --728341319 --775457853 --308933630 --227756325 --864277015 --302574670 --942662670 --775661313 --485579193 --418820733 --269411426 --179684071 --491101995 --12096888 --711624937 --544938184 --780066240 --501476861 --476361476 --717379654 --609747757 --499138360 --270394856 --139072009 --369684805 --574769696 --671932108 --778750224 --24636968 --405143648 --368936384 --829104953 --852827410 --458311859 --998713250 --918334902 --540106490 --29151072 --204091136 --639152804 --655374413 --819009047 --904976288 --263263853 --406580346 --770549593 --873261915 --762751381 --923081435 --903883031 --688441739 --11976567 --145423811 --628830307 --114110375 --400244691 --145816987 --699861477 --236504399 --131473943 --356588805 --462471914 --847998628 --50851245 --19484473 --545828926 --920334675 --509623976 --782553401 --542143649 --621939415 --792862606 --149351843 --901900331 --556056019 --218908272 --212562509 --63236516 --359576121 --167340141 --487978413 --971975613 --910177529 --748081926 --46931377 --36393476 --996622698 --252429411 --200646098 --585746411 --554800041 --892646923 --239604153 --92633649 --134547621 --171765468 --507933301 --992243492 --229280395 --572434991 --299252654 --414521204 --511304734 --947682220 --737997565 --642926914 --166124080 --203063398 --368157361 --739285890 --418752216 --227403386 --695416822 --350869321 --903386823 --163226728 --25530435 --46389705 --830276621 --2218873 --265034240 --226699960 --959531799 --845917610 --202576981 --190120907 --178375672 --621886316 --709479105 --363509222 --11754428 --137251147 --436738238 --288915820 --409383945 --187380690 --456829383 --543100809 --115779203 --20057566 --681360090 --739680199 --361832030 --733522135 --902192726 --964428228 --563578023 --93303538 --95369436 --546908883 --253229080 --81769556 --854928135 --494205905 --873567003 --242245958 --725936317 --491733824 --539388292 --402593106 --730492927 --356923281 --141527975 --581575749 --534567856 --914724103 --248649142 --200670176 --854046615 --305373547 --66494895 --489782396 --209307938 --859164549 --161054071 --316944069 --940791064 --894752841 --877275309 --834661573 --234163490 --482423083 --275338548 --144484965 --134869198 --242500843 --739314044 --380066542 --355823312 --260155637 --595108089 --83814275 --457954030 --165808218 --553676558 --745714159 --507001052 --191131300 --789333003 --667254138 --978060201 --77063764 --988910339 --14274176 --257832534 --238602180 --598907814 --381599830 --545244090 --139484118 --466395750 --938863179 --585185692 --744837706 --620633888 --927387683 --803203809 --451117401 --375803328 --336705493 --119750570 --154832369 --534331248 --184510229 --981191558 --239520981 --828183392 --512221303 --444497913 --372184781 --62613936 --619108034 --197106237 --671902084 --430621616 --816228393 --67539438 --464376640 --346960948 --304017382 --276479844 --473941979 --302253006 --569467083 --516529602 --796270972 --66015480 --370751339 --466048319 --949541043 --505487321 --467144004 --807412185 --487125936 --518268404 --440501968 --436818534 --273798320 --351460908 --248150368 --344468752 --772861071 --672821976 --148474072 --636403566 --579806434 --557337096 --959637862 --989080719 --567908250 --704048210 --991863234 --915934939 --779643617 --766135435 --588179132 --778686173 --299271814 --764965977 --843449782 --899221751 --980057366 --894319712 --489518854 --647553633 --385862834 --179936428 --885970986 --944059485 --348558931 --475102034 --612992940 --478268369 --661483204 --303467277 --906193755 --524406464 --646185816 --789610728 --939176748 --202013410 --17117129 --160046198 --459413324 --802183932 --330247930 --318909348 --608931761 --737818162 --937530181 --650960300 --279524277 --645942837 --495074985 --734267250 --686931177 --566363358 --667792488 --147764696 --129214171 --83124332 --193240264 --758579052 --631722563 --833341126 --198119983 --659054280 --113116112 --697760430 --736309484 --451686756 --662618812 --266163376 --467516555 --742271469 --184818267 --344986332 --832850476 --622864328 --142299318 --109635722 --747542307 --514500436 --26994700 --800934939 --620913722 --842527796 --993578056 --187646210 --961374968 --839106565 --389026581 --234244600 --974681324 --459216941 --875526448 --754465594 --339653233 --423979848 --981991229 --404917327 --471465176 --74545286 --529025086 --523000316 --102780214 --963980040 --736976932 --492096353 --30336933 --242739165 --61505624 --145916841 --885318094 --123002280 --634395334 --421063952 --46905897 --943307913 --61776076 --509766422 --333206849 --33540245 --342367553 --639139803 --232138288 --169220977 --703820659 --193592222 --276829193 --709560099 --303190572 --204575057 --373054223 --775590867 --669146216 --557447631 --467641684 --883774743 --328833108 --153970498 --262467364 --495162512 --801113941 --717069657 --62931108 --918402601 --372223218 --778281614 --496936741 --491951744 --433694709 --314711060 --487493843 --571056251 --25084453 --110779333 --397515048 --564986189 --883185058 --445266781 --672559312 --883370997 --631282758 --508858867 --981900003 --362332926 --231070776 --447306709 --856487408 --341065661 --384015992 --502497835 --257256106 --473083793 --782053264 --793581734 --414982644 --17805635 --998106028 --638759926 --916692770 --581035023 --945429704 --713308711 --754012622 --252681863 --596015456 --758221675 --986353740 --310166033 --621908304 --960659979 --579703300 --458225778 --148350430 --189436055 --86500363 --441860346 --62346800 --790997990 --11928650 --696321077 --897278414 --887973022 --932555640 --812192920 --29794082 --187368852 --195589471 --976924984 --270761353 --743634999 --794325950 --854098746 --675393713 --737981168 --502180774 --290310153 --518777867 --99242425 --843362260 --894251198 --969532885 --175560276 --220305179 --398255757 --291623046 --602248808 --30872487 --40476230 --446314269 --279749600 --347898781 --11839592 --9213486 --398845136 --23023581 --412033438 --630890916 --280301577 --498187315 --671644142 --621035167 --379447085 --79845402 --661259538 --1555683 --104122957 --141720609 --218769809 --198738642 --839885078 --89762217 --604616375 --694788581 --937852616 --105940970 --307148355 --497390790 --21481279 --383414072 --213637311 --281486460 --435301423 --103363626 --102550259 --398811723 --793095483 --311814182 --966459075 --209990023 --720395696 --440532682 --486066016 --670767745 --8223108 --158681449 --606189671 --471959213 --384136657 --4064009 --320862300 --15424891 --981514705 --187430322 --985868185 --136252028 --809344517 --136422771 --225995582 --992027262 --771730056 --212661465 --12941417 --595219672 --902564809 --413441814 --624784200 --558240332 --342682620 --434980875 --115365390 --651928013 --262210529 --931792411 --164175916 --942663357 --914385973 --316536465 --708959391 --318598444 --520006089 --436147263 --834661135 --500884321 --188891787 --122319467 --386495535 --916286023 --465075389 --572860894 --462417525 --655070057 --348255025 --691197662 --597855821 --416812869 --207688173 --785363463 --725955839 --538262653 --343082113 --627276994 --196344642 --723355066 --951723984 --643712811 --808268795 --622441408 --390585120 --616378752 --663052914 --904265037 --168189563 --382756151 --301532907 --764563790 --282983190 --591583328 --761434866 --922435246 --644850339 --500484377 --945914114 --800238734 --874956776 --310255613 --718269038 --384542211 --327145545 --456145012 --103832406 --872171555 --141218495 --618978117 --320178913 --600373461 --80578415 --320791187 --275981770 --53938419 --50735580 --571250061 --595113380 --946650437 --917833552 --73271111 --195047939 --286397987 --289064139 --598841185 --17198290 --253370647 --867730363 --453412406 --683335820 --196351543 --874437008 --113794895 --325216041 --950411338 --218285104 --829627564 --720281767 --958042638 --438038728 --132435717 --313674987 --279329875 --274171159 --115162710 --588884729 --97968159 --975599525 --262886429 --720330520 --408960060 --648537411 --949125566 --750709185 --661434102 --799672321 --748688270 --96857821 --225061084 --905502407 --708482530 --388907312 --740418918 --179801642 --991825688 --440633416 --794733218 --123078940 --586957335 --408151067 --876899551 --520722677 --375703630 --555503164 --958578736 --237534408 --184036534 --228888056 --845851002 --120814731 --373278235 --487261942 --593635091 --381594178 --703681005 --617401282 --278938750 --228827077 --227072562 --563710077 --130926088 --82140863 --783638960 --495537821 --880250550 --337993011 --238932881 --41867091 --999452496 --901212584 --609321845 --772016992 --674788393 --648707886 --578992646 --272766148 --410303021 --802730791 --107733144 --1311878 --488893648 --157027550 --643325510 --263689536 --203715155 --764152385 --732311570 --414759049 --481552042 --749089178 --111623085 --632438503 --63409430 --757099501 --398061937 --616580385 --491952784 --997095062 --688716469 --718460049 --817743223 --423942694 --503337887 --763310767 --162972502 --618769203 --732527341 --754187230 --225436750 --867010497 --828108306 --840159911 --295933490 --80824306 --48281345 --892806792 --930900463 --948594594 --837125337 --150585933 --584870653 --721985023 --717861260 --528238243 --316261543 --166342724 --89539236 --934550009 --635837663 --245913745 --234920183 --186320078 --360271373 --166582139 --646838459 --280717090 --792221110 --11164169 --880140287 --556499621 --44503467 --109039373 --761560613 --887380189 --531135906 --139270951 --183098486 --174088601 --61929148 --464583408 --278004256 --257273347 --70300983 --817619527 --934004711 --235637619 --877342933 --485447610 --968689787 --832003702 --292454828 --318101335 --382142414 --394711465 --57521155 --950873483 --112901269 --445459468 --520375213 --22248180 --107345708 --182647579 --445134292 --791224322 --565298010 --400435768 --887747364 --46760989 --726863878 --732362945 --966711545 --261520564 --126515055 --100412557 --758198070 --527041290 --975842745 --372841019 --872083480 --216507393 --716522377 --246344321 --355076219 --411132095 --719425360 --801016899 --182861355 --619214297 --703911474 --336151883 --366329927 --663073772 --4978621 --402888330 --107985538 --525314306 --721959982 --484092222 --19790609 --521602994 --851629449 --283642229 --632323917 --528107541 --229577202 --491012179 --722191135 --122095456 --671884701 --350761780 --620419476 --560153188 --677703972 --687767180 --561630375 --474053022 --639866490 --467695408 --172052820 --405881366 --817517467 --139121993 --809703298 --124132685 --540526117 --241184048 --834419293 --396830714 --574831603 --896877227 --186156427 --746537442 --320733080 --90118139 --317845943 --674038035 --958810933 --101340367 --358333471 --934192041 --126510690 --994318282 --748025993 --485558968 --804411428 --631684502 --723247922 --135961880 --213441032 --133353751 --846960789 --884443741 --85399114 --842038306 --528434493 --889850441 --897498908 --429925448 --908540245 --503612702 --717204504 --278357936 --260747475 --728578544 --64793093 --501731197 --499748235 --699039430 --532838660 --605941214 --820825287 --559477113 --196799883 --464011594 --229486038 --924468517 --912256412 --779705187 --351399089 --479085240 --333181777 --242479392 --685584756 --54387814 --584313664 --624710006 --889271876 --526242411 --564951692 --452117618 --343846779 --603575927 --628580664 --2546541 --646371288 --514142031 --364907998 --216395151 --965908528 --318960495 --554816684 --429396338 --331866850 --51796416 --480355734 --354436930 --826910147 --127737609 --578576888 --366718587 --675937879 --331915406 --327844921 --489668123 --930307452 --867312652 --289321119 --227163861 --25615520 --495279741 --699572251 --602531849 --467199377 --461049667 --898231869 --268637069 --344436553 --479613181 --66983996 --970543467 --999450460 --328684548 --273013314 --444834283 --51754963 --510004843 --273975651 --596654711 --895964291 --704111836 --162400033 --524079456 --777379862 --418785187 --654930265 --827632984 --154624180 --447602592 --796789193 --36813248 --527369660 --114223223 --72013404 --511932993 --326818528 --733499363 --808141972 --767031756 --647915514 --243822495 --436773880 --566587376 --883164417 --214623675 --750729900 --748249922 --744884971 --260632028 --273202441 --643553647 --268914389 --776051076 --859732284 --148237047 --843523904 --18746216 --455856906 --31588687 --543257900 --909128247 --489206340 --9296318 --945120400 --75508597 --623919084 --587412014 --507371745 --948247679 --772138026 --487909543 --695794593 --830165856 --390440689 --251560174 --742699213 --10078506 --643016158 --904702599 --790435677 --373023387 --894464615 --365020287 --652269445 --167380655 --188054224 --271123380 --68420496 --66938277 --120890897 --900785026 --975050268 --510281089 --584418899 --720968887 --795406782 --304230295 --792159413 --729078644 --23142993 --258156410 --984050303 --889888157 --592244549 --567087128 --971074322 --829532469 --569371954 --564719660 --683902959 --647676321 --331882935 --340262062 --217677369 --596113972 --985022594 --187360187 --768893925 --545414283 --819324364 --375303195 --405279615 --360847859 --8485771 --780546297 --739465862 --226148655 --936054151 --715928771 --822035858 --151185420 --102320878 --503036373 --247565225 --277648148 --517069304 --236469053 --398903279 --535782975 --117851566 --807393738 --807452778 --537605473 --207539278 --143847499 --212632875 --764231622 --326001656 --431323618 --400747803 --410425782 --424415016 --514172481 --777596981 --84615095 --2833512 --170654333 --468395918 --682332594 --911257651 --23274795 --243074218 --671482728 --991696531 --370883716 --667587610 --84438287 --877793343 --717897828 --146876108 --941316957 --445413766 --472923322 --199361574 --752587168 --202098193 --6725158 --67132402 --205169037 --468881902 --781735027 --80810452 --909133476 --992572371 --274374726 --632484348 --654732070 --18448862 --920750564 --491033861 --205718459 --119004726 --33998934 --105591395 --494306942 --59729409 --354260247 --837668115 --200369272 --731035700 --647185582 --235969508 --239222990 --817856868 --448003464 --623913050 --573707172 --369819540 --813358293 --87115815 --846864022 --725181001 --158606694 --305583972 --914238581 --937982749 --792839625 --925974207 --841046167 --683622548 --165090058 --11693758 --9303709 --398226834 --404150838 --101267692 --47498727 --203417479 --438396903 --927676989 --8149771 --166736345 --760494723 --16862628 --432956714 --977512336 --973751276 --6729495 --939628321 --668088364 --684074974 --89463189 --294626672 --767926798 --599910339 --706834004 --693726947 --254796678 --232806270 --307178757 --903723741 --756854196 --136469405 --258039985 --918055795 --678676836 --613004112 --949794085 --404848672 --825397647 --163306802 --221737299 --111213794 --491004743 --506986303 --898140676 --856661959 --862615919 --534705867 --423565648 --487371417 --554715163 --390368185 --568283002 --403821366 --33966492 --655407554 --842113401 --842307474 --380252055 --783370705 --689913576 --219100277 --599352279 --563776153 --871406238 --201409416 --651039008 --658055304 --362436820 --794899078 --219652368 --323567215 --749842028 --52221525 --225170118 --279932453 --993211766 --323268616 --581436049 --755278765 --784563068 --973205545 --617167901 --11304098 --168293654 --967198673 --759277742 --697357034 --125880552 --960231770 --280481523 --937287762 --627704204 --238241442 --111024722 --264871014 --293111936 --381686510 --743058112 --835777995 --910600028 --969654612 --761929458 --34278190 --477207420 --736464310 --988358686 --392669629 --202740890 --640015413 --890704644 --792647128 --8968093 --553772253 --203999400 --987345490 --273339132 --505290344 --19450472 --357118134 --778585435 --90790384 --474613266 --769977025 --633143933 --277525499 --801767568 --895969678 --293669144 --176896957 --710364434 --583804020 --142655606 --644239322 --822787124 --336499831 --25955435 --254185674 --552486362 --276917277 --726111377 --452246806 --406126804 --687237212 --878915109 --440519043 --859328768 --373744712 --905720557 --352137229 --119949383 --226559246 --989448806 --937727225 --515522100 --248767064 --916382205 --6637091 --991934996 --734299348 --241290743 --777038832 --675124788 --453596452 --791738261 --410222903 --419236292 --962686105 --181393530 --739944266 --943131986 --463823328 --38997715 --859606393 --536800987 --519809605 --695247056 --277392736 --134211001 --886081676 --165375735 --313254266 --787700428 --34386531 --226898149 --801949767 --111301427 --523418236 --374117399 --224647401 --234311039 --114052195 --947268739 --453986789 --633289069 --31129398 --202941779 --205300356 --688353479 --567556283 --444384278 --260348546 --915638804 --741579086 --350047286 --71376259 --853034058 --852437776 --365162958 --502930152 --919631518 --899060275 --461746942 --872237617 --409845889 --987372263 --473337273 --733507035 --625406070 --39674599 --374163626 --916322006 --198966419 --203657768 --232865047 --551833656 --285927632 --634312384 --121912787 --919448532 --32436624 --419323052 --859288736 --625463492 --214349652 --334518921 --473835093 --540207648 --255828759 --123235110 --474602128 --557523161 --257859254 --257375129 --314461509 --642581761 --757579503 --861631865 --794127045 --942501231 --74802863 --962006637 --217112738 --877862963 --723306766 --23925206 --202230971 --52317121 --743413609 --762933993 --819967536 --728474399 --115011056 --342780153 --232342104 --449264508 --822873557 --819813981 --271785999 --329173741 --681064242 --500562062 --248000557 --683649624 --317129094 --450959922 --226071563 --170319064 --708471928 --464200147 --748619633 --288735291 --898976596 --857492665 --881078272 --106517320 --664663906 --636725371 --192871767 --624224436 --417396885 --993251281 --822697410 --746948504 --743667918 --793140641 --314420750 --149135301 --535163413 --278621093 --911437535 --199997440 --399262657 --868090296 --621483262 --959034756 --74258054 --51393043 --943726681 --665980343 --493883448 --198981963 --391684948 --443470153 --662823900 --538257621 --589068311 --866253421 --863057356 --243518428 --182367798 --615172900 --755614612 --68049598 --61804565 --529878782 --996899366 --808554775 --488801799 --842168908 --272790516 --873538953 --369066636 --615026703 --857176428 --13159709 --406052823 --584983093 --422894295 --941740292 --716672184 --354017727 --842357810 --292962728 --336112927 --816196343 --25055885 --571504613 --573068029 --117534362 --890530340 --83926028 --274147997 --233517165 --786544070 --212389939 --262232912 --621980013 --450053268 --657928485 --130769257 --457468118 --624990989 --619690125 --35189514 --728245575 --921629820 --645643978 --563265864 --82085 --236152537 --912108528 --810053343 --374172458 --760958551 --838023119 --397136786 --431283875 --639068397 --30348591 --877441903 --395281440 --451297450 --318416140 --942207601 --250545942 --166610219 --768434663 --136035504 --17188441 --168015079 --490112096 --378585225 --146648472 --319838774 --954666551 --31357699 --149095346 --423289381 --543651685 --358893935 --411125461 --224945024 --175547123 --272463759 --82668192 --931459003 --506000701 --39190797 --597241344 --645965674 --772434537 --764665521 --326326276 --933385880 --247053559 --278296378 --830889186 --631030663 --160983995 --758872793 --957150528 --309988298 --850364484 --64215000 --787554650 --618102887 --147543862 --201963668 --126517139 --852146222 --702041508 --821132399 --635697772 --639230203 --634811982 --183336456 --904202377 --487200200 --968662951 --787902464 --767101607 --689881061 --707872835 --429628547 --466617735 --959652333 --610041189 --529190729 --158932797 --416832511 --840098151 --743526236 --400926639 --992103717 --657704652 --831737853 --295060730 --218668337 --657651709 --227133837 --392367110 --988658654 --741007429 --363466016 --766989723 --538230694 --202278888 --270557400 --17551591 --749953126 --836537819 --177887764 --929729989 --877642714 --87051153 --668222837 --495341291 --144347446 --625813157 --356822688 --131937060 --177454361 --759018350 --899450009 --343453827 --588806538 --552899603 --649795206 --648879161 --137919172 --45850851 --224460648 --446166555 --351215469 --977672148 --711735131 --272508620 --945626922 --53214577 --850823393 --679972383 --382423237 --157246193 --721330763 --197004415 --321358016 --441632922 --923135473 --440709698 --573726512 --364752330 --434569797 --530801441 --983828014 --801965336 --440802597 --307068618 --185242284 --357056663 --639200209 --772322782 --152855903 --648687800 --728091646 --798232620 --898384779 --605511581 --368985375 --173864768 --241937764 --676334226 --19723675 --896483803 --380252491 --623541066 --41685330 --265956620 --463928414 --844318118 --256049063 --459181459 --94636173 --234086905 --649597096 --881782749 --740677729 --69298647 --242398380 --249151313 --501645093 --628546938 --766813224 --804006832 --332380894 --859239194 --824137176 --394230727 --71921868 --512270845 --766347982 --453055428 --868239790 --341791873 --884380339 --693895541 --699570601 --378958938 --692881824 --791845871 --306071236 --486140952 --549848279 --57243984 --237820222 --211223029 --569081460 --344825942 --238469817 --943119247 --373305449 --687969336 --930975822 --128672503 --846097437 --720338883 --123794313 --161628990 --67672704 --428301441 --893034085 --403946143 --791827732 --797258596 --229373933 --640423622 --79359531 --504603157 --574485597 --53194388 --461409476 --818792515 --611568306 --840978436 --6385007 --714007586 --591547014 --635727125 --18460434 --460194441 --74888697 --602678626 --587441392 --81811098 --82773615 --406473195 --939869438 --345157340 --212926761 --571045551 --911475102 --603204368 --332674345 --862721804 --765287363 --770718406 --107853598 --653945998 --828759766 --650337858 --349624590 --755189800 --52971737 --467307836 --332128888 --53525563 --928565493 --562179408 --323890132 --809784709 --345017200 --483974835 --578762529 --686212772 --9982273 --451493367 --614761085 --735643694 --401921951 --412090921 --37310487 --606901557 --784245738 --683631382 --309156466 --325045394 --148236549 --422516380 --527900787 --563799022 --888237369 --475110056 --275698109 --599592593 --444616413 --400421069 --896526967 --965486571 --135032505 --407110506 --185106298 --277479437 --696133389 --507565962 --787641374 --49362441 --480105083 --785394740 --549563896 --432818149 --624551152 --731021078 --807573895 --915238552 --836418747 --945113080 --134156141 --942959001 --455441140 --895536565 --123292441 --689061889 --108328003 --862731317 --396320915 --354884797 --35457574 --743054675 --457084992 --315143102 --151903069 --11765729 --103509603 --608327490 --726983746 --593533231 --789868271 --583711029 --366344003 --352794410 --714597460 --383605933 --6833961 --508960668 --3234126 --404810562 --413442778 --284051061 --296216420 --533901320 --297718646 --764591487 --17918879 --258453901 --565351358 --724161816 --858770408 --713383235 --148114170 --998321452 --586593139 --672003123 --385428709 --424801816 --641558819 --542951838 --744614974 --478984240 --263745613 --41763455 --17871900 --390162619 --631906716 --968672844 --578203476 --295306495 --55813238 --711066559 --258942493 --864920207 --91539346 --988439382 --475101571 --683114027 --754813461 --604248072 --887475644 --603876230 --143116203 --88655723 --698432226 --652205975 --1833327 --718716886 --657424699 --162645091 --177891193 --741517327 --313792620 --328496650 --95627429 --610304373 --535750205 --997493573 --143378195 --369721291 --719123112 --595010269 --266319632 --101924637 --487174630 --668058576 --726525256 --79950757 --705324905 --494839658 --612048340 --155838514 --748842795 --894079863 --180503807 --468167426 --126644540 --216147448 --784403531 --770617213 --265262531 --838736449 --901653628 --268979848 --258113733 --947580192 --365674064 --457717378 --390615411 --486334999 --90089927 --459890141 --349740200 --335931037 --174262593 --257605359 --634128319 --59344390 --240081219 --865541626 --33463152 --515427801 --769484520 --626321289 --923790193 --285014443 --80289785 --701126302 --817639137 --883544247 --444925583 --539360139 --928048100 --623567596 --124942743 --716161486 --288929845 --341455055 --318625320 --468799427 --369944552 --162888895 --67900109 --146230758 --736721154 --720242706 --569390610 --427106165 --693722805 --669387313 --512369539 --288439635 --267065338 --455903492 --405532911 --401038899 --322467612 --537765123 --401044928 --284164641 --18645628 --954204178 --826086339 --34927419 --480767096 --523259214 --527005718 --776589589 --934485127 --692239262 --343070538 --353739066 --631624942 --296307275 --520693640 --598902597 --46390009 --446512533 --856492096 --550820281 --468053241 --3128046 --960506177 --954805983 --124093554 --55825670 --104510888 --875480500 --282532080 --494875645 --862791392 --558847851 --205301461 --174681869 --351272031 --40793100 --534263863 --826787290 --573014884 --862137452 --483790437 --218161741 --499213469 --543150219 --13283278 --911922998 --662153437 --623330629 --32235679 --946806102 --232707266 --910070665 --2923602 --188836360 --11690035 --411555699 --26961128 --603888620 --223457080 --301849911 --100315942 --565903144 --958355820 --328984387 --713606282 --821614960 --721739754 --32926754 --737752248 --574805957 --372355420 --589624289 --233958427 --55280244 --868922099 --175257818 --686031850 --169316015 --993667033 --990137885 --87257525 --986573132 --75755187 --406132274 --778592716 --605168622 --823580691 --287724700 --718223156 --853375298 --532487328 --774719224 --867145920 --888695384 --640487551 --70534404 --869433822 --506353806 --521342996 --706967138 --492305449 --525257592 --856536564 --307655440 --694203484 --673326112 --999946215 --767009635 --486312988 --866285616 --373298964 --8057587 --903654729 --617241159 --926496096 --997452351 --440794726 --650425138 --382654200 --176525742 --406062196 --15544417 --533106070 --463224642 --702499288 --902893160 --638112590 --830998484 --547318693 --838664685 --304069088 --479247939 --65618079 --352225168 --251537698 --142224695 --143616110 --185342340 --864439275 --265252776 --261797681 --895741698 --239670906 --395276761 --734058799 --826149397 --420864989 --402734012 --382604389 --432723186 --14852218 --673972808 --938554087 --435471376 --950946284 --809919829 --630659560 --625973986 --554759999 --452777939 --889593813 --593556242 --115726021 --757782732 --685384330 --198301209 --18235876 --281166158 --337632922 --398816514 --562933027 --783388324 --903843436 --230368720 --482034342 --824502517 --671149629 --999087973 --181721748 --684632617 --571610916 --764665967 --606594682 --773942979 --494750439 --241256241 --393199698 --8574821 --695964388 --606754675 --945164702 --237927130 --84986280 --349727930 --329137816 --776248725 --438510741 --502445606 --133522093 --75108137 --39368112 --663333921 --499786946 --218580377 --21980232 --258716532 --458712892 --817563743 --87008694 --657683743 --958905347 --141241868 --645701223 --290414435 --766991103 --302454873 --375660187 --518988703 --684154364 --960176874 --153443374 --27181782 --966319775 --870523535 --46023487 --530231467 --696078559 --117981633 --314147176 --41126763 --711305369 --575340856 --896874158 --568930653 --108937299 --3225574 --510445020 --377524897 --497524101 --447237763 --196224505 --532042775 --262115955 --190461067 --172281674 --538658866 --396478028 --962558270 --913486243 --248769114 --696010442 --690286879 --580784144 --802450159 --366132069 --77067974 --757785975 --730602267 --278361980 --181314077 --18389108 --528361923 --547686759 --874140202 --14088964 --928612025 --121006817 --543630998 --738527515 --626487245 --959082795 --745557748 --655793590 --188150268 --796259381 --514028151 --115949052 --12967551 --350996896 --902865479 --593227026 --143483381 --537280549 --223217752 --703669195 --65789145 --372682991 --269269103 --484810055 --480272823 --334175791 --326770246 --651196082 --294916195 --54968291 --767199608 --998483877 --13262195 --47694986 --706473822 --148187760 --878626844 --897480942 --51466302 --324594747 --448026275 --210180897 --205245355 --582262277 --583437671 --124759294 --351205845 --282662674 --485868159 --129712104 --361882556 --902863755 --656726773 --989393873 --208912974 --590970883 --88184303 --417802607 --415829098 --383770640 --308184911 --385918546 --69791305 --540840993 --89964983 --19000715 --762843775 --622548364 --932974133 --672170312 --219206145 --491312763 --983200688 --488771183 --351449817 --790838249 --977540996 --785838007 --677073481 --904649938 --979658391 --456890503 --867154547 --844786637 --917633465 --834313326 --867982839 --621968237 --470796341 --442755197 --500770137 --204031765 --910262849 --821598264 --847200017 --404993241 --913858779 --775954745 --665464452 --906474863 --717562237 --54795697 --121957852 --326566150 --905367962 --146602866 --34144910 --282355338 --274084283 --93360903 --19441221 --501566720 --199184162 --566621986 --537046120 --811968870 --998802582 --482673928 --466973082 --660919186 --850768362 --764040009 --589332782 --568158864 --960863921 --727093411 --777565684 --142762638 --527241248 --692843369 --354965165 --160683278 --191893545 --17356663 --217128960 --801755961 --83429539 --326435917 --592559335 --97027972 --869592109 --5847388 --718047651 --381016066 --977478986 --402503758 --173484335 --152380076 --12736194 --589463372 --553675051 --991935652 --225561868 --272035086 --491951235 --597670158 --433299204 --825529078 --774005539 --84873256 --836604625 --750220005 --893045337 --169073407 --786139929 --329789848 --697181742 --12813449 --812600806 --576390373 --338505839 --484400677 --456570101 --224821521 --84778326 --550400440 --30027290 --29616258 --784494736 --898145984 --6060257 --381680020 --133175001 --418285421 --743230166 --89073675 --524814799 --885194605 --673688053 --793023600 --727207590 --344821339 --583286718 --65724055 --154929514 --902071248 --400781574 --614755649 --45528969 --887404885 --124346816 --503569506 --475413628 --927963681 --230977559 --64785531 --413891735 --100770899 --744279705 --714139921 --376602195 --155901731 --5668851 --867207392 --571304580 --404517059 --447786648 --155455336 --480985414 --977961452 --218475860 --872591734 --253682898 --298646632 --132112174 --849693485 --855960053 --609385911 --321698463 --182229656 --35139493 --940323032 --178785809 --788489708 --497072561 --80653601 --664531609 --652502275 --728988729 --917556790 --424896024 --996474609 --193736305 --847103613 --741387062 --38172199 --748136225 --467551477 --836432992 --825984099 --752789751 --721418781 --303822629 --654936841 --392054410 --178343052 --763424485 --968694801 --107447897 --881890001 --374554539 --883601800 --63650206 --276713378 --165825752 --707106849 --413051819 --397190028 --723931513 --888147287 --519332656 --873962452 --98007076 --286376862 --234746676 --606586720 --426654599 --759095792 --608486259 --951398889 --961171198 --312971215 --587538742 --233016317 --117719279 --437366588 --439479575 --491774997 --601641643 --217000378 --515977887 --866215342 --406040895 --300628595 --201346734 --183799978 --728724777 --496396345 --144839042 --878810182 --9901739 --945478376 --467314101 --20985998 --51246240 --249875567 --575657694 --362580989 --752622248 --708053962 --995304957 --648445232 --258950036 --836411346 --225022686 --945943445 --795477187 --870265633 --823351759 --828653423 --630462331 --427280760 --624592872 --907357111 --325261177 --894085793 --583163920 --549998877 --393867819 --29864572 --963187696 --550874785 --319481626 --238501652 --642975779 --422724690 --289340773 --672783648 --633446588 --285480913 --394352451 --351490724 --401542585 --8362978 --270954530 --442290290 --553976906 --419661385 --547311596 --503865082 --430443147 --145481705 --883542218 --964408089 --452133221 --492832865 --475253099 --363587153 --514099787 --42252144 --680697649 --974453968 --759513815 --300238161 --853483175 --498114761 --243258256 --436226702 --490601672 --685743905 --260141633 --29262818 --909833112 --201080596 --696328396 --126797593 --978568366 --259741009 --10206362 --167251764 --862187582 --560611239 --52734130 --254251720 --763197121 --762421848 --274930054 --454659412 --755959524 --592651752 --938335697 --247607273 --375089860 --334398492 --640328736 --973153192 --315543640 --802604672 --296489003 --924600751 --409024328 --459042855 --216571990 --219744619 --44420267 --368392394 --987532231 --303004545 --714024595 --589653397 --269734631 --141355909 --800356852 --169897140 --537990904 --644752238 --411260063 --239053157 --264803655 --601641955 --566904535 --673294142 --884937202 --211959486 --287867901 --613701981 --894969937 --187208803 --223876347 --120611130 --460505307 --928719288 --534031676 --221045152 --729738666 --466156208 --838350842 --634558063 --303680751 --688697708 --970359472 --41800838 --980941281 --292244744 --627588657 --631194543 --16209241 --523734304 --50332237 --53477824 --397480885 --590057087 --590364333 --279537647 --474295535 --742437694 --137700424 --104731699 --799794687 --380727573 --151790808 --858283120 --764964367 --632727589 --506141705 --96512857 --927737863 --698029260 --195916784 --679033033 --640921183 --125611455 --794981047 --633196097 --915913492 --53265092 --624419113 --311199808 --208259258 --223989059 --716504725 --980732641 --830715190 --530223644 --767730704 --150792976 --698503565 --56738614 --779202507 --757855180 --928117052 --619475759 --796492458 --279751921 --503668323 --548623684 --521621849 --453344940 --34806120 --447661345 --213276488 --297367259 --471942804 --501225513 --328327246 --139279214 --606501012 --391863180 --411524661 --353962188 --259861533 --371931290 --220314113 --504526510 --125313981 --567541189 --815167964 --372225670 --99572931 --454467155 --446184166 --247656094 --108671177 --753761889 --475563798 --54074395 --425417431 --531168229 --752534889 --681916101 --734652836 --822562410 --510641650 --617135581 --205569199 --43242221 --897451504 --178485313 --682219108 --166053853 --323224363 --703506666 --76818434 --47820671 --751947017 --445447777 --902913426 --964258442 --816811328 --482582684 --885355837 --367349074 --994548321 --76585068 --349150090 --623452533 --32045980 --184011533 --517521215 --145998425 --457939720 --154820631 --608026722 --494055996 --941911569 --91520280 --969745466 --533165256 --768898718 --189103235 --193224813 --873149005 --967286394 --488927826 --544719472 --212903875 --274981815 --668233467 --433082522 --537126865 --96038808 --685162622 --521065921 --779622670 --100973440 --989346138 --233368862 --807299264 --61828970 --149306358 --372628835 --45712126 --520129764 --799087748 --509777854 --119283388 --57359203 --365724548 --672250338 --434027059 --184745674 --405218977 --820476158 --583808644 --239166183 --2092207 --379275104 --312346201 --100274935 --733797155 --399617378 --94360815 --121366003 --638717059 --75920952 --776993 --570270688 --831378263 --290974618 --822190515 --126685199 --781154902 --887735668 --157891448 --59152537 --205483645 --818403990 --481434012 --536384393 --829289275 --848946715 --287946744 --889834683 --598987646 --754095504 --182956167 --856878027 --858992927 --948070064 --884553436 --59155502 --506078968 --515233720 --763236848 --361580943 --711560267 --621205331 --969096140 --558671290 --124481984 --749876698 --331750830 --653735093 --406066277 --431330685 --662603880 --121367791 --865311684 --774688699 --714130498 --896636293 --734814302 --484008540 --617534307 --245403692 --371875166 --490477605 --211149453 --949435093 --667681321 --202809328 --436488436 --169233710 --2654200 --5421631 --325585777 --716921785 --257388535 --48026754 --566109006 --63583833 --193250141 --829060471 --510409690 --861343782 --146229062 --314279742 --600295946 --908243752 --356497056 --344137377 --460196852 --764668237 --770341277 --258894662 --86981681 --373661674 --701682085 --551369021 --386056542 --48289748 --112276673 --508631071 --522032419 --467763448 --644612559 --867786885 --371092317 --781025631 --837218266 --276255579 --782469426 --390884962 --828070747 --166804174 --292041910 --257178882 --110349035 --661587904 --289301633 --648862634 --760811460 --634619006 --439762510 --449639180 --596430197 --748376748 --926999639 --848785864 --66239498 --470892467 --744371774 --752419583 --527080606 --586745998 --88819704 --338306665 --982210055 --539345728 --762577893 --985142722 --145576445 --194718842 --323394304 --346891183 --476576157 --435486221 --583899916 --965229037 --370489125 --881331856 --207925538 --407375143 --799219877 --9063758 --718798417 --614613632 --370290508 --734971046 --824426604 --843195746 --733102789 --609098619 --901314816 --767106324 --686987724 --702066716 --663096864 --396147661 --769783747 --134206507 --699763342 --679401945 --382140987 --659032620 --396748447 --368813203 --307233601 --691301654 --752643325 --552535113 --973384770 --70821732 --420305612 --452889069 --267296401 --728509569 --647058270 --619802912 --633330328 --343780350 --959755911 --948872213 --231103847 --370210822 --919791643 --843875474 --755558405 --905625965 --422109528 --638980058 --828722463 --912494574 --27002181 --23351984 --211937822 --355158816 --818079414 --155687053 --205913989 --654800383 --412512264 --754116579 --308275323 --279200657 --656393844 --197295636 --558806536 --986017982 --595376838 --47233898 --356693698 --610855845 --872622256 --617502955 --75501145 --766347636 --293065715 --450425310 --301959860 --306197138 --373160780 --570318482 --815974437 --771187191 --16313114 --625513594 --993166451 --679142680 --869402564 --518559509 --15058117 --122042980 --467792787 --682113527 --472743780 --518734689 --541364128 --992133498 --700556434 --964498061 --369616715 --618576556 --312887884 --517768647 --329596535 --836647114 --771301844 --386831122 --227978503 --109484217 --400873962 --366589588 --179839761 --176642956 --949461808 --254508281 --988556791 --654395803 --937298214 --233631420 --943287409 --965454030 --307493315 --929898823 --977580284 --315436994 --319906517 --957867241 --76584583 --879986510 --303460377 --139237921 --522173719 --968095636 --915332879 --124067928 --762247178 --613154464 --933953461 --466809111 --280249141 --428774866 --580103315 --201051403 --390361468 --767649377 --287725254 --187208132 --17372908 --581536626 --458478744 --796579164 --491814927 --759990875 --286669584 --571068382 --314657648 --189213870 --593407571 --424615483 --248373337 --470275402 --353689235 --860314339 --435336479 --846738812 --566191360 --256111219 --293275469 --302246379 --679741906 --36368894 --794300074 --578840148 --597508870 --389682658 --714622948 --576484102 --512259558 --234144472 --391899887 --938697495 --791859611 --267126550 --597137691 --785610026 --635276942 --606779650 --649997569 --349545181 --232740388 --272844187 --588915894 --992582 --736862869 --524239942 --600652140 --110583582 --865578023 --69428094 --821916093 --584970246 --79477446 --96613450 --925775910 --429108056 --407831993 --959881558 --637785634 --336211660 --179221812 --702079196 --585802714 --262065082 --186716029 --474690486 --614076723 --326881418 --543854623 --822712715 --958708786 --434151239 --860677618 --116202390 --97250686 --533811786 --161202689 --242778582 --529263624 --774041503 --281461832 --341665962 --299089699 --853206282 --185353455 --415648437 --701893034 --981383831 --967957466 --980173882 --810385479 --546518059 --941879753 --367983182 --429375041 --263090808 --674003241 --360159063 --235334078 --5839428 --70615051 --606088287 --827553343 --378198919 --126781554 --838541440 --473512259 --33669871 --788102889 --597410747 --76673261 --818551584 --71094723 --418057463 --77578097 --11894099 --852113035 --780213319 --334062376 --947343577 --89902399 --81568314 --842541829 --638745263 --250188428 --18970204 --960699276 --728890602 --486063674 --462534884 --370844613 --156503020 --27420116 --573891229 --516910316 --251551965 --328868695 --673832115 --752166823 --825612253 --772784671 --514950423 --31626044 --321975169 --740401739 --997103307 --27153139 --957189524 --56399846 --727127478 --549306947 --582391023 --787823636 --190123701 --840792666 --508984119 --877603005 --305335140 --428423784 --298884930 --638168264 --508006595 --453302058 --586094919 --301619205 --844301652 --31733713 --766285931 --384964627 --518126888 --438116754 --33654056 --645224022 --467310215 --203827230 --518144159 --86733030 --932236956 --348208931 --714338630 --59330247 --590292359 --624778636 --366370467 --792257575 --230932690 --123819867 --759223977 --882762438 --637076995 --995816712 --678631841 --276280973 --468128920 --139932837 --864231987 --740916333 --887899752 --895309515 --117215682 --196273493 --764881424 --426859212 --504041556 --996122768 --409832215 --786216959 --566802252 --73884541 --902890846 --241690506 --476187848 --7812381 --221704523 --445243652 --102880170 --351883820 --729541916 --62839429 --863785580 --752665123 --382084688 --419258607 --62510872 --539531622 --624616143 --519315366 --912601581 --57333113 --690783640 --447346249 --613758969 --689430392 --671688996 --133347855 --678425584 --399300838 --994146232 --736648007 --870265964 --234396366 --30712182 --908391034 --306060878 --682315843 --176906126 --682036603 --221708947 --96020508 --830603220 --748294551 --313606394 --92566051 --635848495 --904605491 --442371773 --934163211 --888726651 --5605754 --498593231 --617113753 --106570435 --572212276 --232750854 --931344564 --629367756 --320725371 --200237963 --795590675 --876586789 --310860126 --502683044 --983198514 --220579090 --258769418 --628742268 --137157041 --733208637 --955399506 --371003733 --540701469 --232830590 --470872976 --886376471 --867198808 --705852883 --937480977 --397783465 --110150499 --576693357 --883108070 --436156837 --968309780 --290614507 --200971712 --355840571 --290728042 --205017716 --546545708 --468491216 --207822763 --469565891 --175236672 --658964374 --687182901 --252069925 --195638870 --761614773 --877818515 --698032948 --917216442 --278641919 --263760726 --145214949 --918391230 --889179778 --954926864 --989343329 --56347300 --965197535 --500976316 --738554612 --708247668 --360726768 --567642646 --366591818 --110406976 --394486156 --475673626 --460068610 --232349386 --855657458 --850669063 --339015652 --677383760 --619383066 --408902931 --825640572 --914415275 --87288363 --978575934 --983468714 --226538837 --870524795 --727791103 --773934872 --378479360 --134570921 --25451582 --327090555 --275498728 --739286014 --904126869 --540391217 --426553616 --664297352 --771107142 --544387369 --303926060 --121057337 --117971075 --699889316 --908088635 --516328210 --756978224 --403419922 --339750272 --285159461 --402615118 --968311857 --985469708 --750934076 --654190902 --332267039 --413658940 --547996025 --585545404 --982020461 --465179113 --642272957 --643801264 --685641021 --647510926 --489218670 --282240623 --485409236 --646234005 --588058601 --928531304 --956977283 --194446079 --210854870 --997097613 --103980608 --218015531 --834570747 --472526921 --849606004 --848555004 --665429440 --103730860 --463247803 --125036517 --820089381 --205090557 --586844231 --613732812 --515972662 --966849319 --412109734 --869026329 --195625974 --428825265 --234220109 --257049529 --288492948 --696839515 --101494609 --810974662 --81365686 --209684712 --879409704 --701862501 --670015052 --103702620 --53490343 --934321788 --822972146 --953688985 --155388491 --419346557 --8733515 --940316710 --518701667 --395137579 --368241179 --595478921 --500673104 --206959153 --769576696 --116804313 --538111446 --479309463 --71929593 --848556391 --509957770 --727901689 --887591074 --594382574 --246423739 --609917612 --558134024 --385842546 --415386588 --912452313 --338610155 --965139176 --884822818 --487837236 --519618308 --263360814 --590805545 --51563359 --483239274 --174678910 --849039641 --737644355 --848577909 --284952762 --546384212 --6064299 --425822058 --462171905 --63681500 --902135467 --378975289 --512254800 --133949232 --805471164 --954329296 --459991666 --999883547 --735451874 --707714827 --396813324 --221784080 --967104516 --598101467 --453499123 --88878276 --958920096 --970067051 --185042250 --126032566 --478498424 --310499531 --844161096 --566140335 --175514753 --169921042 --500999451 --244599535 --590640138 --327179419 --511960009 --599608688 --962774522 --183931603 --299067044 --953324980 --176565751 --724664694 --360477208 --407793806 --890236456 --18016204 --897254173 --576221898 --531591010 --380625276 --385247187 --818031353 --513003642 --691606414 --623901617 --471383362 --737101703 --340146880 --733550321 --577809026 --311770704 --115680165 --438321455 --985258980 --405989463 --653310116 --165366932 --224158246 --190689016 --377942831 --556055646 --529682474 --641067111 --176530028 --338303847 --170187917 --969033376 --695753022 --988014388 --33393277 --333126562 --703394047 --829465223 --103116923 --366022051 --773771349 --474942175 --269934598 --817869743 --763174884 --639002575 --323976727 --347887368 --78845478 --579569697 --58947995 --392828683 --570075211 --922353804 --718124818 --505746201 --869490091 --607774783 --696674 --888766086 --274850060 --846174048 --297823315 --837039759 --844955204 --848641457 --572985655 --35647181 --972718401 --656594627 --26693946 --188198632 --30372953 --687592773 --302295179 --170825394 --981187344 --847991405 --581979673 --986250604 --152018130 --583838024 --694963296 --299579415 --231505776 --882471731 --632516076 --677666201 --851456605 --659275788 --443927236 --206402535 --394386176 --934191513 --47457759 --253465674 --409317023 --596003922 --712430104 --351638397 --515625651 --100862317 --905936622 --841444542 --437971206 --65220701 --317365506 --943435564 --405199797 --769559497 --890917494 --881042591 --289348723 --296268689 --381458841 --233961246 --859201270 --84711480 --20657571 --536266757 --606412463 --244401156 --207375127 --811576474 --529392530 --104658922 --727406446 --763724475 --673938967 --155369214 --544803136 --865535149 --62792866 --724581774 --990692553 --33187702 --447592684 --880236740 --634814560 --382951710 --342604260 --422509041 --204589060 --822326989 --236156410 --325198381 --69759227 --326000307 --158741619 --885189196 --789177313 --6381088 --757671937 --128761895 --428421339 --701075795 --537824309 --312553076 --587630532 --780431584 --321691520 --421312916 --441870783 --163127375 --838115816 --760711392 --944286826 --748359088 --956976099 --245889703 --975021102 --958369637 --845224714 --813509120 --47462181 --432890725 --568655209 --591409932 --819571179 --442986624 --568755592 --599728965 --368204188 --548191907 --348920316 --662248100 --354773171 --872167193 --199791218 --987676172 --308185202 --37233721 --409401108 --113905375 --987039221 --374895620 --83519950 --72189146 --443412244 --729109115 --321137436 --729320673 --230366312 --726506911 --12097729 --223493028 --558964213 --338078279 --964322796 --450826292 --375739080 --64782815 --365317327 --408537700 --808164485 --600895885 --223375196 --354486123 --536534742 --21209081 --870144636 --547283083 --493169472 --836525358 --445744456 --645424335 --882018425 --951192711 --989897823 --265437754 --584933532 --2680704 --873221335 --676111019 --958235573 --82805161 --724646865 --159322784 --561221649 --751621061 --149103001 --974901659 --998860652 --628733892 --246491936 --191748620 --405218376 --993162393 --965543580 --98561926 --431238701 --416601948 --76002166 --706520489 --983154019 --511394198 --465183528 --991303308 --41256907 --627421720 --991353810 --959187300 --640212147 --241475417 --441661399 --835381117 --256836872 --384027349 --408450755 --826371846 --106224250 --525949852 --306493667 --650472150 --19615005 --508562233 --452224558 --610279674 --958688933 --710119376 --142183220 --598385818 --591233926 --979679334 --325123287 --445358707 --163759685 --591123823 --680581855 --845139840 --981700996 --589299455 --560108193 --644620028 --102001485 --501417846 --642227775 --79937630 --355072817 --39731986 --15880800 --772675367 --31429562 --212247419 --14780651 --15476684 --155216464 --287847367 --462579786 --716714257 --466354583 --261412962 --929975672 --991741984 --183278308 --148880221 --856561570 --902018988 --429330627 --950213357 --158927583 --72555070 --831586139 --111319630 --693453413 --913947749 --822799108 --713500493 --240276470 --794509978 --725575988 --572651645 --113905690 --726660925 --467234488 --585878060 --438749648 --797477691 --846902602 --466920474 --87357678 --603560986 --715654614 --255202191 --80920778 --330825789 --783870224 --302950720 --614087580 --632248521 --332385086 --127051527 --936612158 --190369983 --888753462 --780116476 --373912688 --764850339 --174369638 --596298398 --783772410 --439155926 --470499277 --320281374 --115403255 --922215720 --148651965 --779713706 --225749868 --721355284 --500352700 --918949653 --342029542 --587793011 --425859857 --369622929 --419250934 --429526985 --554748896 --222939897 --329666630 --761981351 --13705268 --658651714 --541628190 --958606551 --351940433 --440274043 --738090598 --24261163 --169051473 --920833717 --307315513 --215650924 --303110923 --256558803 --861934864 --803705230 --197489011 --8050897 --811103278 --358997166 --874901446 --279417427 --724730893 --627619754 --895790673 --300848697 --161777974 --367241104 --598614620 --58272910 --541442269 --688729494 --886834453 --638717515 --608217094 --306769607 --170049840 --554859101 --517605920 --681850737 --32685588 --124268450 --108685297 --965080113 --666328036 --189282377 --848912775 --128760791 --259474664 --649429746 --133226727 --834760207 --915108451 --89257330 --277367794 --626082769 --722402809 --51301112 --300310852 --829338594 --804638435 --670280500 --463111487 --615816116 --22232854 --233861105 --75460823 --372141680 --500145840 --820856697 --207409259 --898595465 --763514322 --657557805 --744070523 --219879592 --258274837 --531961221 --195940580 --903005381 --518104468 --840328602 --669890539 --833870797 --597080577 --543236513 --34964405 --477274707 --662037388 --19494260 --650979914 --747686866 --821310724 --658343697 --40452407 --856859632 --48332215 --947795415 --864278972 --851398396 --674743568 --506757626 --804273702 --518215619 --669385053 --433639292 --276458258 --511138187 --328164137 --685521595 --185253430 --803639935 --712401102 --49973975 --748965676 --739974608 --830763200 --534097277 --364319388 --183587696 --456687533 --288881079 --763002617 --989126069 --495757197 --212679164 --471008146 --430338209 --475443755 --985767881 --989549051 --869805439 --229649322 --935716362 --579051676 --696037759 --987863862 --47373539 --739574740 --468578890 --341661149 --274983221 --659899933 --103031035 --175291218 --249707970 --986615868 --822751556 --377400688 --536487880 --726158527 --529220455 --972087626 --361995711 --744989866 --691520072 --878081691 --918310318 --806608680 --943587397 --251473030 --456104704 --799220175 --262846700 --778743442 --799570494 --284979061 --793141936 --340424573 --354622211 --830775860 --422029364 --286664313 --246898814 --633145745 --52622737 --65087919 --479517068 --211066824 --809222787 --653923936 --621374558 --107100514 --372071223 --844801284 --132627482 --462333734 --814707877 --718239684 --264088570 --121230804 --590874700 --632993782 --654966905 --335060631 --599967392 --302984385 --201240473 --945789519 --437206472 --328658386 --614130729 --807928142 --288733136 --24545660 --682045549 --559560329 --578050725 --670094793 --127003805 --376187732 --557787179 --681129034 --683452693 --285577034 --261856010 --275021671 --443468462 --49171389 --433984598 --449769316 --493026671 --329557901 --410059613 --757244931 --315737024 --800299571 --534551012 --133662262 --955453506 --809820268 --614333460 --863957409 --727977759 --884268202 --739083238 --144659320 --707081215 --700240604 --456052403 --312434439 --857622745 --420835114 --977434239 --26424912 --483277926 --491056932 --192330060 --307070086 --556541570 --109988269 --336297822 --664237224 --180156538 --361670323 --937907565 --981240254 --718715346 --730240381 --195268913 --857302174 --979617322 --132759822 --736331100 --725326957 --958606809 --298867640 --412467956 --752139431 --809091203 --405555050 --683157522 --958231359 --13340256 --822355231 --946342661 --407420440 --707406185 --372877047 --305211739 --826309864 --934189033 --32137268 --61402809 --771168151 --174530620 --487782949 --76302813 --577246609 --213588293 --9043503 --137062617 --452808364 --833429286 --691752730 --172926277 --522508515 --307322504 --671501565 --376552820 --479736277 --2167700 --650300667 --79914930 --954711116 --716247555 --938796547 --513562331 --439115477 --33651045 --151453486 --73123366 --540199863 --190248321 --881137694 --842230519 --113776822 --988184405 --337792317 --225323044 --484830648 --38109158 --47990008 --459936357 --205397565 --520745385 --181998552 --60038313 --534168108 --587926299 --361818149 --656456929 --541823605 --60316289 --765090049 --19814529 --227096727 --986949258 --618228876 --310663227 --115162331 --789692322 --709305068 --699391370 --897017908 --81779169 --996045269 --233641667 --198276620 --945390974 --647939260 --261927465 --872644162 --432303699 --263298298 --100945447 --429136174 --685171797 --500206090 --421867210 --851014019 --88622363 --638505979 --711739044 --371311048 --130846152 --472881617 --432529537 --342593382 --814955644 --156752820 --113469054 --456206479 --244461542 --549995902 --224864551 --131838822 --230674024 --652911600 --753350656 --552222903 --141846236 --984428226 --200704068 --164136252 --82694541 --50889778 --945945028 --294136162 --831019210 --276733567 --692163230 --134474413 --733942336 --646609147 --167246779 --327209384 --304525038 --65225643 --725061201 --321613904 --193783679 --431767420 --850722844 --782562328 --661225702 --503483460 --414270442 --523056192 --533413894 --101118855 --791583980 --327226466 --720918850 --465758939 --265893603 --794634918 --401235926 --939116689 --781595847 --642512613 --499612568 --508254128 --786903824 --468210346 --789364505 --960399930 --698919148 --99468478 --329541302 --21418060 --499829341 --356151483 --254962492 --100427462 --588906332 --531159482 --582471554 --333057952 --23575272 --508261296 --191256748 --611847093 --212979048 --200675988 --365659624 --681917674 --792216765 --267264760 --58354377 --749909755 --225660407 --641878950 --571189356 --386918263 --891918895 --3867102 --318008781 --837037813 --423837619 --513560834 --397885153 --510981930 --697074382 --872290498 --696455861 --669440524 --226862726 --111614197 --27530352 --451236211 --98607978 --992169500 --735650249 --678906073 --600288291 --970755863 --450781086 --819277006 --856239360 --648140963 --880894251 --864078551 --490532127 --766622896 --527366323 --727270373 --876556461 --992007809 --449624177 --841994601 --929060978 --390661500 --176472103 --716291979 --235010059 --923396902 --792012281 --668611539 --490288897 --65633347 --798330951 --533920395 --780749110 --585188133 --930013607 --321769300 --177122581 --792718823 --470253527 --491229156 --182508462 --1067585 --774681927 --658466707 --531751481 --60268372 --641424736 --751177581 --989173244 --61401616 --829642250 --517441916 --151541325 --657806110 --821040848 --2353984 --963857761 --518827545 --500588914 --101462592 --707149643 --891561738 --256511490 --945858777 --961043601 --695582446 --875073382 --440809139 --850529674 --93387754 --729467771 --404357310 --25404312 --654090659 --727546528 --389545301 --237301171 --62826397 --634113587 --998088771 --17216151 --342940542 --793083622 --648676505 --883367806 --636740939 --505532131 --423152738 --788540361 --437204985 --535988213 --526275702 --894228971 --517362315 --648173127 --273879890 --373261547 --988354472 --72217053 --273107022 --376142373 --899129707 --282223534 --128438022 --613540788 --415475092 --358232653 --92897462 --478571096 --693775048 --831815193 --680227174 --676084629 --679456768 --852902762 --755040448 --590366358 --42902317 --133474213 --523677995 --47239050 --40423191 --327342642 --559306026 --181726383 --450079757 --531216119 --61054089 --991725336 --513375447 --384262293 --189061392 --89723724 --284317646 --919282594 --586087333 --633411656 --402704224 --106986447 --97330070 --962314158 --228800201 --235818698 --981025369 --493785768 --975333385 --341616164 --558931988 --32678565 --854544725 --843123507 --101529617 --854649054 --546627005 --396263773 --881567852 --977419478 --618816730 --601643039 --595452252 --628192593 --438991514 --229321320 --388433767 --423831254 --596934005 --383557831 --192399148 --649604562 --422542698 --559594068 --427098275 --133523848 --69048445 --461697534 --100751140 --486991407 --716436563 --41157842 --986063526 --690036715 --983168005 --169474534 --820905516 --38776420 --397073775 --395518762 --994917655 --922439209 --421008704 --904523507 --59810244 --911989697 --939819945 --140047655 --732061795 --192799225 --60545742 --888485590 --176293828 --818848430 --132510870 --453665664 --339670316 --290382415 --99457316 --44985410 --475483204 --58306308 --827082244 --425580803 --157591695 --891526883 --489415130 --948110863 --545979398 --928257562 --965952013 --720897367 --384280635 --250008845 --399263326 --721920135 --232977032 --793852097 --879361581 --937878667 --358543276 --758728040 --600644661 --399710759 --994894583 --142386637 --481027053 --583853973 --887304532 --256994768 --271650534 --836893502 --622718542 --504686995 --761992841 --674072474 --328518573 --928968005 --251653680 --119297971 --605447331 --846395551 --469883866 --776497058 --303414959 --223481187 --319254538 --762057252 --390281523 --241936870 --837551056 --437138041 --785433495 --326108047 --772114157 --761424755 --599486984 --514169698 --59573731 --899873216 --36815298 --103361491 --247435611 --81328402 --762111525 --807155691 --914247220 --768505095 --338225662 --366299178 --564366007 --777480912 --988116821 --489049518 --505767800 --235310977 --145423425 --201733909 --715038961 --726357443 --670644668 --247641150 --433042174 --597886530 --763434327 --353429431 --585888037 --163487169 --425578620 --858401063 --788637748 --778278647 --745793534 --788631693 --792459155 --420232873 --511310027 --593720293 --640672718 --730222308 --164163196 --504014095 --973032403 --901779377 --577655811 --39837771 --570044212 --510709390 --626355731 --66658592 --530725317 --801955926 --67981049 --649880714 --982364811 --320891135 --717752702 --295926765 --244063220 --100366394 --263108541 --381624842 --727733612 --348140959 --948361224 --814209140 --723365883 --30095164 --321525121 --13693178 --880749110 --368468191 --708292460 --77337217 --65524001 --98249405 --779722445 --868086849 --16303138 --284582867 --490577118 --648683418 --986449726 --63678352 --186712104 --850634759 --239720950 --52939628 --464423263 --987866040 --635443276 --12563065 --642071731 --716852689 --81346968 --304831233 --639953619 --500337035 --279409685 --24292882 --682996489 --522160399 --369536827 --378144985 --775716485 --256671472 --205125036 --107564393 --256429586 --494233784 --296667711 --864410777 --388268891 --651164985 --464218835 --78360995 --829972639 --306117531 --675639238 --845844165 --440606419 --560008387 --947264569 --913393911 --288879855 --924754861 --729560667 --369311617 --273286146 --941501558 --42318027 --507975584 --333458522 --680411566 --717515652 --243369701 --433172733 --287056385 --730946830 --121615812 --464847277 --483282484 --354401338 --503419741 --989153427 --769115942 --568778393 --240002337 --975006206 --99157626 --372522220 --296831701 --300237787 --828006333 --350226336 --352614061 --803873829 --323774289 --824190978 --162548633 --855999542 --418683085 --475777244 --590372785 --44588229 --37002212 --660154749 --749228413 --59481670 --156443261 --647810102 --824612564 --327895304 --181070229 --276109721 --857005241 --167397262 --325919141 --275463003 --220573341 --824351332 --386168989 --992412994 --103995031 --834291235 --684409076 --4590920 --523082504 --751779559 --249206776 --389284663 --680981489 --380641634 --542314087 --926878399 --991766073 --632122760 --860367195 --740729289 --339841761 --241605959 --162226136 --199865970 --898251004 --1521507 --82203098 --948308337 --535376473 --567928100 --269884464 --360077365 --827110984 --549062697 --268332667 --123913360 --271273780 --573279687 --354972272 --343674501 --987919275 --621175872 --735485690 --517699485 --5048399 --195897047 --7381009 --1067821 --386905775 --561375698 --671202390 --440469369 --477341875 --417174390 --862767629 --784938294 --593244236 --17069167 --172673415 --904816651 --186405711 --537690455 --710804751 --776170637 --948778359 --857483679 --675038383 --229559956 --98062758 --359951718 --636471021 --209958425 --180762091 --375877605 --694896912 --702559514 --220210696 --600719457 --57530093 --695903295 --74985438 --889276457 --260677935 --810184241 --318758306 --817125916 --954750788 --618637909 --181665790 --53929079 --321886119 --935739274 --956928937 --16552226 --454127088 --458791816 --244400703 --178322476 --63812417 --58334609 --770687136 --981517108 --913473650 --925570590 --258779828 --880345952 --254183094 --48218800 --578976956 --970034176 --518233549 --594608926 --756773703 --150395572 --648957717 --836979187 --108398862 --940422471 --888836302 --196597471 --506029777 --598290463 --659944874 --784333838 --527372822 --677942090 --160395524 --757667889 --631694208 --5133868 --205844678 --42851547 --410525550 --189047712 --327940595 --591009057 --367853246 --671984487 --32924920 --682779711 --488927241 --780232793 --893790184 --638911297 --126279789 --55639999 --607839251 --252326530 --836395097 --865872925 --438804056 --79031083 --444019079 --82434262 --998793046 --649682153 --416819893 --25032397 --654640391 --559591689 --265091945 --881414716 --268983132 --42340620 --543859505 --616109716 --320221691 --932434256 --490273488 --724378805 --644761917 --732079634 --909525714 --643104623 --75634527 --167264958 --237426417 --664033996 --162635873 --193507420 --760528500 --198700687 --379008542 --56912323 --574772410 --408898763 --975020294 --37332790 --520674139 --172835387 --934778394 --177152169 --307600269 --971034409 --263399488 --881322926 --673325966 --9527131 --566452738 --134341374 --38461823 --502963546 --693796140 --830050163 --872475261 --450179341 --174712020 --860863408 --779234463 --106974694 --846440439 --511889037 --70929772 --601735608 --970249098 --333851546 --657413744 --291875212 --280258541 --408740982 --704208807 --721221341 --842417786 --820281494 --269939384 --678321702 --202306664 --588831149 --433729602 --15727401 --849468356 --67253349 --381331392 --741834063 --684351967 --535316614 --478032511 --24940321 --203126745 --364794341 --259449742 --84535712 --922866559 --668350770 --751614629 --360610459 --877958021 --655915779 --569172811 --628770229 --959036073 --936841678 --187592692 --853677477 --762488441 --118470555 --702097610 --251073642 --338022952 --8645626 --161240497 --994669426 --24726234 --574418926 --605430552 --704918282 --778908926 --433381533 --849491320 --288303334 --130123901 --534131686 --234414577 --925402334 --475158459 --833667175 --592451513 --906246626 --871889554 --101378997 --582826229 --233262052 --744763511 --896872179 --727027557 --388185375 --964534560 --194150990 --907513279 --226673286 --639309396 --586584166 --302867941 --705569332 --352604894 --975124446 --727914232 --110000031 --631995334 --982042566 --268619074 --742667873 --594063354 --715578422 --237770315 --228614606 --242902598 --818282495 --622512712 --640391816 --961405514 --609571371 --397635694 --483285592 --357362703 --133084333 --258717722 --750575507 --257254078 --389514959 --359746943 --923986318 --433802273 --663429093 --599999436 --522218595 --583512629 --352428032 --777928421 --781981007 --186531570 --835698304 --685546590 --977489766 --350498974 --760217701 --537456014 --238644122 --992352596 --299240766 --352397044 --271004229 --937170341 --318432 --845896257 --14483779 --219281061 --339162194 --794695123 --37801564 --65780103 --853149767 --506461111 --73429571 --951279607 --393037365 --422316529 --311866677 --868219469 --899444599 --37170183 --599741198 --923599496 --782692665 --337784233 --716479006 --4093715 --738350540 --452272488 --231859218 --336382664 --214771241 --505677664 --877638191 --964758511 --241893592 --646116726 --945091709 --874496827 --986106253 --524661189 --167874962 --834529747 --628338500 --250750643 --178775902 --199668518 --849813533 --205052408 --349223763 --887738213 --45607863 --127194538 --201561117 --324719384 --5274476 --910651121 --99814394 --797371232 --928764542 --18683134 --690639167 --984269860 --663917949 --776008410 --887986433 --84804367 --496917184 --71301452 --689556279 --967045683 --584421818 --846890317 --247331778 --176358769 --647890163 --215059228 --971458288 --712568368 --35261069 --666538436 --341142866 --790654623 --538252962 --409235939 --94041737 --433543634 --473065398 --214353681 --114948817 --17110972 --842365318 --619438009 --395242302 --216837283 --841834595 --833645318 --322877825 --77896928 --174560404 --911398167 --722755495 --962649508 --765974005 --643797005 --455376005 --71381711 --959673289 --36704226 --857708873 --354209572 --641521253 --429547073 --70980646 --309822435 --449351952 --81837522 --188520944 --267721968 --225259392 --336079125 --848804516 --502321763 --483180877 --360758810 --511089216 --808890821 --678491534 --792587798 --336735219 --110620014 --396941228 --864139549 --529150792 --772000833 --479242899 --757692751 --181383068 --773470365 --25421994 --800280385 --413744212 --94094561 --634208194 --108316645 --293288465 --911183023 --882535611 --715605261 --496390427 --111386819 --489816828 --549325113 --531008740 --280139330 --157232122 --561823694 --700882743 --695465496 --996384896 --108429104 --373557695 --435027445 --976310347 --798549523 --509239303 --599587905 --186855006 --838794398 --905056117 --713929854 --908386596 --343881961 --174333893 --711061417 --379344811 --942655749 --136801750 --154172729 --846130453 --924106412 --652999013 --972884438 --519586501 --122753810 --877606242 --531574198 --134757220 --972971456 --129672204 --884461315 --154292284 --768633589 --58631876 --396402172 --274780870 --909835111 --40018742 --270324324 --42010961 --811846108 --457223738 --517446475 --993684872 --801456867 --742037329 --335572811 --909386110 --391610486 --64746344 --891885754 --221735603 --775534661 --822937479 --232675402 --267641021 --342195914 --230079499 --959122621 --414957715 --182239215 --487385693 --491210145 --64188437 --443603110 --79351884 --890009186 --766941213 --165860157 --51958390 --330384943 --800932318 --402960747 --830353487 --268757777 --855817477 --567909247 --520427693 --905714306 --29081849 --588004596 --327939281 --12049197 --723924283 --30022297 --931694864 --394222243 --351304204 --213436503 --541430671 --314477708 --409955786 --739757069 --976781976 --164786311 --319204059 --258794362 --940747336 --362524487 --287690884 --116151107 --964016899 --492843598 --102700284 --900970933 --119658043 --821070045 --766253502 --249759922 --306772831 --39283078 --677879891 --965086290 --717885872 --71534716 --704708647 --701479947 --215034728 --419481598 --532324721 --641050009 --144584998 --865101031 --82317899 --54289774 --592408754 --538360677 --600013276 --605265315 --768914901 --70853761 --979790186 --571730129 --330911284 --639708852 --190441870 --160280266 --2670546 --757508239 --531350443 --894390114 --493873602 --753484019 --175140106 --925241917 --521159190 --742132932 --223803018 --617001188 --610745640 --861856807 --995036157 --947667911 --127113209 --188470981 --15027787 --911127867 --715911885 --289665703 --441345258 --736219723 --619372237 --51514965 --27482161 --705024994 --614598399 --188618647 --470780051 --722053988 --648998666 --614102477 --155784608 --697853340 --313865793 --713357484 --111563487 --606720196 --610161149 --494001763 --659985932 --716965346 --848900995 --792377398 --306279480 --698041256 --418597550 --141357403 --317555895 --237762949 --737633325 --192140504 --358798920 --523424825 --772836724 --818051722 --857525289 --87291624 --190516826 --274179159 --721237306 --946174246 --383715053 --716436793 --938936221 --966642208 --760211070 --388671591 --406088919 --645129476 --503802212 --572025482 --851281699 --793451885 --510428485 --942185862 --831898418 --550471209 --166439329 --409960137 --893201350 --438511906 --714777681 --376730031 --584412022 --920617309 --825461526 --427426345 --793911876 --196952990 --263659821 --229788622 --205533334 --110299912 --59934638 --143762855 --940596611 --867504549 --307007453 --317291211 --905528343 --75357653 --46848435 --756265017 --693055574 --534289324 --439480956 --355972066 --578838868 --887257160 --841647689 --11257247 --884520221 --352173619 --401542936 --196415720 --691603333 --778420508 --330319167 --15970527 --319676832 --868283801 --108509781 --79812491 --285730087 --727323299 --585127998 --847198189 --699455813 --136099680 --111703608 --904472454 --647856206 --770806149 --945813976 --66520018 --125174497 --823979084 --458494675 --546740075 --575396913 --501866639 --585521548 --791975998 --97275456 --911776926 --902565850 --377704624 --208089778 --855164176 --630476115 --742560479 --509831890 --877671490 --178751767 --347332263 --228215421 --852622076 --806650782 --815824651 --977853846 --698100269 --599467400 --199606613 --238301258 --83075703 --759662696 --60101213 --653193168 --964173722 --445790044 --865789354 --223864985 --237428671 --716512617 --118299593 --786582332 --977350163 --961740358 --347982931 --831527480 --29209704 --889825700 --740176887 --672557113 --464631989 --755423548 --250326168 --884759624 --821612570 --184861860 --693664271 --698643854 --349033735 --107746757 --294652921 --862049380 --294530591 --420627842 --848875081 --545239486 --990992919 --497937470 --148154421 --380215069 --570210680 --687676137 --184235870 --334766749 --205215973 --30931228 --99944247 --957348595 --926707577 --803141155 --605058613 --564424361 --634720019 --752405449 --995133602 --18047173 --374438906 --46046019 --571915392 --304059678 --407928463 --314349066 --697528066 --816620994 --579397870 --971984571 --496869324 --836089420 --727676379 --584483627 --515706604 --318367085 --664944247 --794879981 --793061140 --266892999 --194383839 --618527571 --960149448 --338226690 --366303096 --463843613 --784789293 --98506010 --483707659 --358123277 --615393894 --735094775 --505560035 --35122630 --483671631 --543305927 --412760912 --748560656 --535392710 --558702551 --422063349 --978471868 --651460804 --82661689 --397747396 --972519531 --695013930 --926594555 --699299539 --658426024 --582790571 --213781098 --130921109 --402471375 --61539453 --807376246 --677293508 --60465190 --553369857 --825351393 --858575002 --334761556 --812273830 --789078602 --659657004 --168494250 --182013189 --658247137 --163105346 --658725896 --668155089 --970349109 --790605774 --623316363 --807860979 --227204861 --801278401 --925848713 --848418138 --174412602 --771186091 --745691767 --691241296 --528033312 --5668384 --459966944 --33308817 --661157965 --776363465 --510170904 --504368759 --170405776 --85440948 --456327262 --620604562 --919372048 --678183960 --751850052 --707604036 --35288096 --6760790 --561812600 --707275712 --48511183 --232036112 --23321493 --153706792 --542572355 --32163094 --523952334 --674790369 --927772872 --353243507 --880310570 --153195249 --214400084 --495837069 --880547961 --494246768 --206312541 --751276204 --299059675 --864393161 --569317019 --665952828 --916047890 --115168057 --45814203 --341032478 --411529676 --644172545 --261559918 --23112464 --307172141 --823456737 --723521212 --395767718 --600330722 --438728321 --716776204 --398727388 --771463843 --676034424 --31980837 --487303954 --618672078 --330221468 --976867718 --429207864 --642592364 --941721215 --891743089 --243207707 --996727418 --496272204 --519027447 --948259872 --948201212 --505525405 --27366684 --410422891 --19723682 --850982287 --694330213 --366872911 --816895724 --871414409 --90707468 --310472167 --10468521 --522908411 --265883925 --957738053 --17915219 --59437269 --913798183 --924940587 --439258893 --762265305 --272380997 --988413990 --330222254 --383887277 --788222126 --309451041 --58367208 --325838867 --83500420 --305834870 --562431852 --785084902 --983813706 --57604385 --215240698 --895698217 --807387174 --992883204 --738047823 --723063455 --979341943 --549438 --816898490 --134346467 --969984828 --658400307 --370748520 --413710577 --460502291 --15019770 --269283143 --414615988 --333160033 --849965943 --752719149 --156181344 --225032791 --732186138 --212665489 --768294910 --951017119 --153491099 --317414222 --177790282 --908316555 --202222487 --339576901 --501259253 --349388959 --453953944 --157898938 --407804791 --372519773 --726273699 --607821749 --719031176 --438076033 --306530483 --7741850 --705339342 --48073379 --568156490 --435952575 --84920401 --883346457 --189805010 --459084347 --203230101 --383560740 --405371634 --971600995 --640320702 --16605679 --329423290 --591897730 --466735341 --699469331 --440752363 --49618218 --587902367 --612315793 --943126503 --545390440 --254944602 --628116678 --483901509 --505016995 --18319091 --919083121 --117174155 --505628657 --405869355 --345634406 --781653957 --174512500 --238186154 --64911367 --812718107 --310325611 --932158155 --398747457 --719141721 --123456077 --798754914 --360836386 --592245506 --457997692 --458581791 --548476839 --175806492 --357330569 --960071152 --89727115 --461268067 --168955770 --444612799 --290357304 --201910432 --864868926 --759652209 --12033885 --17758422 --474293248 --882058163 --612299642 --458940345 --789695607 --608697462 --849140373 --432266281 --917101697 --423651134 --785847579 --828411777 --334697146 --645314178 --19667525 --694446461 --929985835 --19757539 --140496297 --47308116 --173911128 --801654 --594265412 --919940354 --99172605 --496536687 --903360451 --568957795 --203882713 --460382445 --290267981 --518344280 --195158082 --894221728 --465144862 --185327859 --703765849 --259935721 --199439724 --390422393 --939950317 --872324004 --234634167 --257280378 --902863799 --513440989 --337463762 --206654307 --701183183 --377922930 --374315894 --475804730 --919525360 --689113088 --462089986 --8405415 --479763193 --550628033 --658725256 --327910652 --61186084 --371588840 --487713424 --139993528 --810157948 --504039935 --816224435 --11511264 --465589993 --573203115 --565735631 --783156069 --154343526 --108681842 --567273063 --97804250 --272101879 --269764493 --314920583 --410545947 --898076520 --554077707 --65917616 --923322712 --490874533 --418988553 --714869464 --941290429 --532668858 --972169992 --231644527 --762334937 --886759941 --207473947 --671836122 --875730166 --564631093 --260893699 --777661563 --19931226 --496841090 --849769504 --904833200 --571885276 --747445988 --913807428 --579061467 --320739854 --676014631 --755964701 --84649929 --543318298 --643411246 --74268603 --738758422 --677497137 --638889422 --102504554 --594163415 --164211225 --335227102 --543727469 --145244274 --30142192 --701175068 --46068876 --71030140 --357502854 --925463270 --985779628 --906238206 --972241810 --535921889 --39099653 --976290539 --842348389 --982882748 --565725696 --930192641 --480490767 --869764811 --786189666 --496029905 --903626537 --130001981 --324563249 --509995787 --18020474 --386754159 --287069996 --63885506 --612849801 --472949885 --893430067 --280064806 --478027117 --587975995 --904356713 --369503474 --200778361 --712684360 --317115952 --456449870 --19621892 --731306346 --6804262 --494443294 --835659918 --609531478 --934195785 --873429493 --870297925 --993756269 --304871166 --458012965 --153133790 --480456186 --304369354 --184972896 --481852480 --520722267 --785128080 --237653175 --750076556 --578389789 --482673488 --932310332 --694760173 --628977055 --979955765 --604899560 --95255027 --479174104 --205255599 --214535920 --757543842 --323033849 --592566283 --371433691 --584268633 --822518288 --335119502 --725443131 --831673748 --242070443 --615172615 --979823555 --758462421 --617765005 --259007820 --806357669 --137115296 --60980971 --947943458 --241497548 --937475183 --274733418 --94117170 --973423671 --821319096 --874467716 --919526985 --702132888 --511648222 --385008915 --655130866 --635474247 --97550467 --993500889 --20796228 --425509078 --546712379 --786852856 --821417512 --523944847 --709077939 --610468311 --461167567 --720240096 --825892437 --796789190 --139447110 --333469585 --927205941 --132786899 --459065287 --770962380 --345686949 --848517316 --415935761 --997054427 --425587402 --727733814 --23678402 --285483764 --662150020 --869490064 --512608510 --686910909 --302712508 --226129981 --746154376 --412904387 --123121965 --555988203 --421335928 --171175576 --654978382 --642968256 --792158650 --231059695 --952199670 --685023820 --70669967 --674213745 --601819000 --582807966 --457106379 --874612170 --214526388 --833578642 --645292655 --29575643 --691987254 --62017413 --149077615 --705719695 --66245257 --783843966 --306601583 --885442315 --564977006 --376112348 --906816690 --607621680 --819921370 --674085178 --611479080 --319073000 --937630033 --830371836 --257504352 --495074640 --131378769 --552511281 --403071135 --967309041 --502416584 --575067703 --636715498 --90703859 --675844843 --958287689 --817507494 --183878753 --770248711 --978043867 --480230350 --131031870 --493874576 --139166080 --215802221 --654770432 --805859557 --624492190 --957927529 --759490456 --132812231 --67932552 --375082116 --878223080 --192487451 --259332559 --246438235 --877130691 --562106490 --542018719 --802421916 --822537836 --46405007 --491678266 --944071074 --233651072 --687274762 --400638466 --994940894 --731713981 --12945522 --811258680 --756749244 --783522181 --571580905 --962866761 --812244698 --85646476 --935829208 --466866141 --173036300 --16413256 --10104533 --481171093 --760227766 --160008827 --443058213 --248160182 --255603066 --748773560 --310604981 --687365802 --320313662 --328702263 --979369241 --120453256 --462977792 --832859218 --684084626 --249228480 --988230930 --775112991 --69943240 --496604505 --425942361 --504088248 --333732690 --180415659 --245519668 --46190691 --568798629 --799143181 --800987345 --539643750 --379242884 --661581362 --574869854 --201569715 --934127757 --362610926 --195385283 --640681244 --779089312 --482801520 --108186031 --548136109 --285079469 --183011368 --309616851 --902364694 --703567210 --956589608 --89823071 --15942659 --204802344 --986502005 --172515892 --57158388 --684388174 --28600537 --289100250 --355722388 --176144823 --925661089 --226122845 --577759423 --677657223 --842876588 --652253018 --205267803 --241740788 --3253006 --71829353 --910398150 --471744075 --21512451 --660823307 --812886017 --916082852 --471184219 --637246910 --169638281 --387352585 --217723847 --428884239 --368639832 --279985797 --637528537 --111285146 --53946327 --701571662 --997389928 --298956788 --358289899 --692544928 --43325551 --889331045 --287262284 --426332330 --635308622 --717642199 --672694423 --787912593 --374310406 --472617562 --128829516 --521943567 --149406492 --292923252 --422940347 --863369525 --129877891 --682862670 --547184930 --277161552 --770298326 --644634386 --99825042 --588763732 --880335993 --435350925 --187774775 --976510441 --662449144 --506509938 --799294159 --258658659 --372341424 --26155825 --545161083 --281573830 --830003453 --988659323 --809654406 --140244620 --811457490 --685775793 --513924101 --563807632 --970812380 --769699 --330362151 --133796640 --601013966 --847033466 --264904216 --180991570 --128491545 --892821945 --275861901 --31510351 --589984117 --342938029 --855794460 --835615911 --564601939 --420608620 --909718980 --918961274 --487753369 --858488922 --832726734 --831418906 --589488852 --15787289 --433536311 --776218881 --584591677 --555761817 --556553803 --758268027 --193319056 --685526257 --362855144 --549689785 --901462750 --178494898 --123453948 --802745338 --421305820 --536046093 --216595401 --310711924 --153018074 --4567489 --37354519 --978911014 --277866576 --903529757 --160146210 --758220540 --303282407 --271340468 --160398318 --907043592 --224827145 --977071371 --94970063 --667850817 --408612160 --969447091 --379345932 --459594567 --387576415 --751442895 --91561508 --815212998 --567149959 --211033048 --700130930 --380916724 --510539816 --538613688 --475027712 --333218948 --734435205 --875286052 --704895904 --838365088 --942864992 --726271146 --1976409 --129366805 --653240611 --700400846 --664185447 --877173965 --148820993 --263878877 --611142060 --186894827 --233415266 --230654791 --699132296 --270415378 --860426338 --558525644 --980860090 --859728294 --963279756 --770335846 --44932987 --168793515 --337725181 --193108103 --377033566 --331103465 --825390594 --776614516 --141820460 --364201075 --590715229 --499193081 --309003778 --366813286 --195658039 --876911229 --987674939 --456377421 --605807063 --758497095 --74090968 --484156145 --533359336 --72454783 --258824809 --242951550 --476978614 --889960222 --590283440 --640283505 --534348255 --916373476 --451214664 --108321303 --241111472 --934577721 --978498668 --814444644 --682425742 --921873505 --91134465 --833467398 --907668854 --787462233 --231122895 --885764132 --943853518 --685253304 --249573655 --675874247 --955344172 --472334809 --255738801 --661708625 --364478396 --122155947 --805749206 --321968399 --622041643 --401636608 --859810795 --828546298 --680987433 --899664748 --242586147 --736538911 --996443617 --967088510 --778036099 --714240888 --248800342 --780913530 --673071695 --782555905 --108156504 --99058414 --364908520 --510199176 --646916749 --904370643 --72784318 --869961862 --91599917 --242636191 --648798649 --207600576 --408119457 --353318119 --352483359 --972858246 --937096654 --23538871 --95271302 --836631826 --111574907 --751697665 --946939674 --833361661 --479468119 --319076706 --725047906 --118493222 --403999341 --113730911 --241555921 --962657698 --517743503 --925097778 --415224393 --360443605 --269097138 --515923247 --622581025 --103840606 --611939126 --644988370 --501695839 --732618993 --636920356 --791092249 --813032800 --213456555 --140115849 --548561471 --852110207 --241973799 --417531647 --110945253 --716692478 --366953494 --585743806 --10940768 --551155234 --649901856 --835114273 --196523611 --815368163 --741345762 --909957650 --750289950 --706639786 --643123532 --294820826 --426895043 --794085315 --102387071 --866972688 --392524055 --659866232 --297458363 --599632663 --479975561 --427876469 --225012509 --306579975 --651031401 --557407709 --754978046 --603981814 --302728424 --987431446 --147484418 --94348879 --561713891 --794041208 --506322335 --258236310 --859996924 --493314475 --948061216 --775295559 --206838982 --573680661 --984365802 --157880811 --827600125 --607595968 --677593010 --783393971 --901754667 --476745390 --478746877 --181201183 --802680986 --177073089 --105502512 --62693555 --68847720 --140454320 --958166725 --512658447 --803158260 --821313135 --463106221 --223413097 --189155413 --804286934 --717951365 --414468076 --340291409 --304100432 --879248039 --423373153 --908474203 --756712713 --888572562 --888879898 --653450839 --285194244 --526146158 --504005876 --164527878 --192985299 --245140458 --603873883 --604871332 --924999713 --857405136 --730611098 --105686596 --144064730 --798433968 --256141201 --694186660 --712619280 --161964299 --116921648 --851051210 --204782566 --726388565 --160922373 --963898458 --464114813 --850960094 --244151254 --803062360 --812504002 --815764168 --886262935 --674490487 --248650958 --961956858 --911239546 --736588357 --545434798 --9739050 --198789668 --539838652 --486900863 --494544601 --695025930 --664979695 --293429860 --689727968 --691270810 --116328893 --126098598 --516516211 --37171023 --647769542 --203617510 --339283389 --834838743 --932883150 --524507624 --673681075 --982326730 --85446308 --240923535 --575318597 --438898259 --164319200 --128094203 --569293696 --268244176 --903505191 --250123334 --872691551 --230392468 --252560212 --292285477 --681039697 --642757682 --813837481 --433081413 --150577542 --25629184 --12313808 --849436957 --179244346 --541597745 --8240778 --964071043 --197221347 --536419502 --636007587 --968165093 --410555915 --251780759 --258053002 --579095701 --885488516 --524219709 --637327558 --616528642 --714054932 --821365864 --856543408 --127276941 --468565311 --424608897 --597219759 --770242179 --44174584 --391660778 --862850971 --111619632 --235770681 --886771281 --320516306 --161898837 --785951338 --401612691 --982296674 --145990680 --976294927 --53442562 --456971292 --957407857 --658988572 --37970798 --825631363 --190816439 --59588677 --668430428 --813751561 --749017031 --444818038 --103625812 --194043739 --363213325 --281928186 --524574290 --492484025 --612981040 --453185808 --606505302 --66217608 --296160971 --691079199 --77110889 --931412590 --224427708 --55892388 --562984884 --206364674 --312341169 --294984718 --215107398 --773186882 --806017753 --757022577 --553284194 --417823684 --447285997 --314273130 --94666181 --306009859 --154240187 --443673315 --549888357 --65900600 --802701861 --901979045 --513572244 --696718960 --476876628 --298968553 --211739712 --638297840 --300041646 --487033077 --306188310 --65030531 --898743376 --927963083 --932649285 --914079856 --551547360 --885686515 --608720436 --231696552 --33977007 --272409840 --812252670 --822283864 --96688225 --841385132 --545877618 --196518434 --720111272 --30111412 --956414304 --893807620 --611338054 --504916794 --921743751 --991398794 --363925683 --548536378 --832403174 --297754283 --322947883 --985596936 --410376210 --727780403 --124746392 --871970884 --877101884 --441401235 --695924161 --987172822 --222768625 --232364691 --210001116 --671117622 --513664413 --264947104 --990670891 --933049453 --280280743 --281125377 --284483963 --182203370 --986946347 --177524778 --492068583 --801976250 --625307380 --267100555 --211230945 --990696944 --91883687 --814316385 --941513490 --629616931 --136579316 --408884210 --442551778 --773619853 --137760798 --541232643 --265997853 --491151277 --729523310 --208627924 --580000669 --148177133 --669166865 --975178534 --14272544 --598435187 --917582275 --319206311 --331951688 --843889868 --219672352 --973268154 --222236675 --638355242 --201084468 --293665013 --570121392 --641282753 --66638129 --720663460 --291859274 --195528716 --272312471 --764953442 --750276970 --303846260 --260353982 --725626949 --980739022 --787821137 --92436607 --500708944 --687473372 --785782274 --486888048 --575400591 --216519891 --827756127 --593049763 --650122552 --586671989 --693791114 --863907969 --577874019 --175813335 --932880188 --772272929 --530027339 --277133383 --955219465 --653255289 --937589615 --58056004 --254648602 --518430143 --336040811 --275133309 --214553301 --672784752 --634410735 --400784652 --301820677 --288097319 --729459649 --182686132 --963764310 --4087856 --753745344 --810092813 --729403774 --257117429 --645062567 --575212950 --801550417 --809683779 --839258762 --834182606 --423851782 --611008486 --784759827 --354366551 --149248790 --741280986 --128262424 --115058827 --291510428 --667848977 --235186781 --553522333 --887049556 --495900292 --273667038 --895352406 --352129543 --366365472 --545712201 --29271323 --318002009 --744899846 --334328837 --77601829 --667679681 --257855762 --333479894 --746366944 --436531345 --31970662 --623630487 --341353847 --577199546 --510366492 --831142063 --615165886 --228390459 --687301858 --623955997 --425735486 --9453360 --77354474 --87027047 --901221760 --312789673 --374281728 --556180615 --484127220 --699955540 --830096315 --431459689 --568766094 --814442475 --671085244 --607831453 --498642596 --776622948 --235875884 --442661732 --497146955 --424819475 --361212047 --535407375 --33100011 --536610361 --381743501 --139346246 --855571150 --219610473 --176532037 --403215114 --268342038 --627692749 --423456470 --296253330 --638502507 --128090787 --929954539 --377926130 --893406295 --505571654 --987946709 --690272212 --57998557 --148170365 --72924983 --46487046 --588723757 --259107677 --143868293 --216681371 --53210038 --97597914 --816692678 --51521852 --800408721 --997717663 --615396454 --937776860 --88128691 --487701321 --769507675 --626244036 --643578282 --11270656 --441056593 --324882926 --419677016 --849080937 --496645282 --735182332 --487726792 --215745998 --290221014 --432521250 --28960106 --25346278 --187189104 --50511877 --865077187 --418816449 --149081616 --432567900 --406430396 --858668271 --158232675 --758781686 --594587198 --401365961 --758444858 --513091942 --10121058 --819942310 --538280117 --156947433 --796206879 --615567114 --878584495 --605073100 --462681951 --707460401 --942339429 --791613030 --656251267 --4810794 --47181436 --219671006 --128556020 --745430229 --458575437 --919305510 --342715517 --28852706 --482511077 --785845324 --281467700 --685277428 --658167970 --346741786 --382906304 --393388902 --529019570 --273024108 --282475478 --78610629 --474297178 --647356047 --670365377 --56142105 --287216757 --197318188 --869504595 --875593083 --860072790 --359137970 --514332496 --128098523 --991554432 --857465116 --626852346 --949879358 --655959083 --202713287 --201130522 --15069989 --907134337 --306514278 --801544328 --910844125 --835237326 --58809636 --923147713 --117913323 --148161293 --700783816 --165802000 --196166037 --139897001 --814244648 --354667487 --441852572 --558832229 --387517290 --712097953 --435951720 --807753617 --197224716 --573487268 --860731506 --745752758 --537829851 --167131003 --392747963 --111163333 --798256363 --214577146 --302765887 --761712203 --803535447 --755935330 --767995934 --724079732 --160336944 --448535287 --305062527 --331459885 --239368721 --725195576 --204763231 --800183422 --87317999 --770530899 --749639934 --168197562 --958852986 --275166360 --263723215 --998731412 --790564165 --960515448 --776051590 --734102082 --528561197 --549198105 --829639402 --9171428 --600471198 --590491530 --588128566 --984671288 --306859862 --276060093 --360191167 --656225128 --593818165 --595802972 --263127644 --916370827 --518037229 --137238505 --464178269 --210573250 --679930043 --379867074 --306034794 --277663740 --854042106 --537085429 --565344083 --276621006 --715258152 --964565398 --156766179 --428035556 --850839256 --725483994 --87802585 --170569448 --419756749 --99121857 --561266638 --994257659 --403115474 --471989576 --396846436 --131690339 --785398937 --244589122 --241323731 --993702874 --395115214 --258029726 --755265833 --298816358 --559199028 --351378418 --997309411 --669810071 --303858066 --987207361 --220305860 --939112006 --103470648 --322682902 --588331510 --413667700 --680910219 --522825892 --264383183 --157091794 --575306665 --987466750 --45326341 --799620430 --559242997 --749596256 --804384005 --323734246 --919191281 --435892319 --269881712 --262562803 --818522202 --27775559 --704179997 --130537837 --436611454 --872671690 --269850868 --740960552 --364460779 --407671107 --810503433 --259537634 --386082070 --814866450 --296452327 --957500354 --609333511 --532688834 --356833332 --460384981 --650858762 --343458344 --279754983 --300807366 --90245673 --831035866 --236838034 --323632551 --212344480 --926881363 --162441533 --919937701 --274977516 --973751467 --259267184 --550549551 --515735586 --325138897 --938161558 --480131673 --877515242 --954654721 --862867766 --615525378 --280139620 --705358640 --334361069 --977085956 --325592820 --633367289 --322360375 --503836572 --697314971 --605653304 --525352582 --419644184 --442117200 --284254911 --96272189 --884651959 --515927271 --645645403 --510084589 --102108161 --270393140 --159321080 --291376051 --899280748 --864386481 --785604858 --848432369 --42333422 --380186178 --454483804 --154884765 --698905267 --640295476 --427450796 --380282553 --380801464 --217730997 --924045703 --879823522 --391013195 --147316764 --385229670 --114130690 --277772353 --431664837 --828816928 --527284814 --843260688 --565082655 --834703136 --911675646 --93439893 --795656647 --558520739 --279753603 --756137226 --102991013 --885165488 --313587870 --723397250 --362694257 --420905830 --752157707 --43437486 --214898140 --632454020 --114955863 --360361448 --966415715 --804238582 --23729173 --530660633 --936388158 --659501256 --784348419 --360583696 --853530866 --932980302 --116086745 --150144542 --980719859 --250936485 --960592044 --678631019 --817407056 --277916462 --193254979 --938519450 --261582339 --732620209 --413622049 --361780793 --877024464 --427851322 --287445610 --990982323 --742488973 --349702455 --502974943 --33825230 --406021895 --520244668 --309562901 --371560810 --990806445 --235162512 --464932465 --330201760 --838813029 --103572987 --656487883 --538236326 --294691600 --984171450 --74797672 --801230093 --702598932 --113288642 --547375920 --974577552 --82672710 --387353266 --15949607 --915525184 --542149220 --234608913 --556270642 --853650879 --735154543 --657647700 --747837012 --246043130 --335159388 --513558959 --345617086 --747493842 --349063835 --693641569 --841769691 --487648218 --376915315 --379736631 --811783333 --897985663 --41972169 --536462653 --867863372 --920996364 --697088780 --127997606 --679165073 --204853352 --190533108 --758979493 --189663509 --742599482 --549973094 --692520888 --868162665 --834418406 --849358385 --310266747 --243391953 --431266266 --148880760 --155090523 --885852350 --670136799 --159948069 --724341892 --730240632 --136860069 --861872748 --796967042 --901456463 --142325762 --729191637 --192934264 --695903843 --876226314 --488121472 --174455005 --661138804 --653901130 --635615847 --247218126 --23881460 --46241195 --934638793 --329123590 --155907839 --70735285 --391686482 --38129267 --841956720 --365209756 --119047552 --458514155 --423342930 --684409807 --50718873 --369186698 --18656801 --225561924 --452748325 --554503584 --661307458 --723534476 --314087826 --141827968 --196464591 --747914781 --68288079 --759111351 --659718716 --637800545 --985989850 --349424769 --454690186 --692794230 --243141772 --434695912 --886765137 --423647800 --308510083 --411140027 --788313757 --207644473 --705023637 --297870832 --950862103 --332048130 --132160392 --243931985 --64103717 --869113737 --920428882 --173743099 --50478885 --888238623 --806385744 --214319740 --502192308 --869421036 --71373042 --955227931 --312731088 --144505906 --282561289 --455172125 --351059294 --100363974 --615792584 --799082488 --402273013 --727233048 --642940979 --166140199 --127729930 --989600696 --904662821 --777055556 --448927210 --753449904 --303634019 --734611276 --581447197 --445010838 --260328233 --199681849 --499962559 --533755851 --690527763 --236884758 --613440702 --3899521 --751666562 --82204711 --505699926 --564666379 --362519505 --531103222 --598210306 --811620865 --306440945 --351106372 --109738790 --144242890 --725230894 --876078696 --267128254 --111307891 --752987788 --905588246 --212485436 --373005154 --41820303 --759994440 --545072158 --338885793 --98230184 --307970696 --108110560 --612431067 --695881773 --283521794 --981378431 --633799202 --254760037 --771692933 --952393096 --936432101 --78882277 --937982790 --682721184 --420102539 --541681028 --778173182 --818195139 --484196742 --892999376 --47729928 --445727911 --177412918 --180216699 --576994589 --761959655 --425671983 --754888451 --459455947 --334546797 --47401185 --227951632 --265275494 --264659158 --377615484 --967848605 --683196805 --29657838 --503612979 --892032486 --861233965 --983684268 --785220834 --301193186 --513850531 --339818399 --613156481 --919678178 --768478300 --126707076 --464755563 --822519492 --813018773 --563452828 --414680149 --908220085 --611588077 --811493074 --17861059 --848657641 --168042675 --728922760 --885430682 --330946329 --21506769 --181119293 --471575191 --304595613 --553045878 --897495741 --442666909 --626751704 --866144418 --459900337 --85812212 --720273056 --671317949 --781052378 --990361331 --262248358 --183044373 --741317048 --51923328 --890750611 --509809 --630286263 --87754021 --522398589 --739918073 --617960159 --467602894 --462058837 --150682593 --688478564 --241070958 --455671339 --108596529 --585352414 --2192506 --696837490 --244778887 --994338229 --943384179 --536986687 --999128450 --234238202 --654073499 --312258242 --735854875 --816283098 --447148038 --442636747 --747672166 --331710181 --896910453 --290395022 --745290154 --912348874 --525194694 --549781576 --368354911 --412753897 --486831940 --697451421 --484429173 --367840325 --851154984 --849216214 --805982399 --898263485 --8451953 --538283024 --819073989 --220514502 --667994200 --575065027 --594900668 --653977460 --598005773 --657407610 --656551085 --745926244 --231655146 --269035509 --553744783 --897058024 --599296350 --114939144 --45888084 --332466082 --380597196 --814808084 --40822308 --617951745 --347046358 --142130579 --334015871 --378335102 --601242214 --570329043 --598038714 --82022549 --43697165 --606723448 --486749671 --404561788 --94109308 --803755078 --664980870 --883429198 --525124492 --732761166 --974541419 --331002635 --484778050 --703708240 --959028350 --861237983 --38591450 --517884874 --548308263 --59554042 --344949494 --512942665 --318142903 --638134751 --779647406 --913623310 --978935772 --343250676 --306328393 --977901888 --25606940 --674758197 --545652775 --511853072 --874453418 --173253118 --751340582 --885629273 --454923979 --160860700 --801272993 --198317046 --163518503 --509345984 --893117687 --433425512 --351936216 --24029514 --732071767 --643302314 --801105403 --82840975 --656397718 --621899355 --619730196 --169778647 --847707315 --991443741 --559801390 --189886849 --896612350 --453983142 --43859247 --811517560 --96149769 --447724881 --656938821 --773691026 --726243773 --814579036 --608390385 --753002789 --352775856 --76975536 --160171982 --62716688 --620814830 --709180206 --534036115 --113241548 --27573569 --353140066 --444368243 --907208270 --682360804 --554525421 --154475482 --945110922 --60625241 --442671420 --50003956 --550533155 --107953170 --519122085 --15370012 --760513946 --727089826 --514184931 --319880192 --994203223 --178132808 --715921112 --398394959 --223435323 --516227815 --508232616 --357963244 --866973501 --558339550 --151415230 --147216957 --977259097 --234180875 --313266911 --974746286 --629881506 --713729619 --306062112 --300151498 --208828224 --720078394 --199748559 --922986745 --666150604 --809731219 --639688320 --489708647 --170031639 --175638523 --617976963 --688888135 --426223310 --163890268 --484008996 --320483502 --17637150 --936612510 --469038252 --48441161 --445570521 --849758308 --690910763 --302240329 --837923266 --356526346 --731602470 --308459899 --465583496 --591476913 --46278210 --569874076 --360558573 --768111967 --861592862 --917734289 --730196835 --659634845 --81412304 --18491560 --308277789 --258589903 --735441455 --314345487 --870661354 --121388237 --405846678 --464242863 --795539485 --998181498 --914066313 --229008178 --398256817 --18508590 --787366702 --780800587 --148197768 --356373060 --204517249 --860939805 --205709566 --839009177 --183160627 --718579361 --104763165 --554094399 --596668780 --478121178 --202400574 --900450313 --786114181 --535761599 --477420668 --367603370 --773400406 --816641123 --19582457 --864530064 --12238715 --373484949 --691546434 --209184884 --268315794 --564736799 --492958292 --385013502 --359306038 --381494980 --990603034 --701724723 --171542257 --929991860 --686857683 --119409696 --945545720 --393281169 --937319161 --691898896 --573948571 --126938705 --179650140 --47431192 --825166176 --448596065 --885239559 --913706712 --480814840 --545073970 --73149326 --266465863 --270217266 --664330368 --925126185 --998926082 --337108640 --849246242 --68290059 --28121976 --641655120 --472716740 --467298935 --655159854 --770646650 --850288096 --691740968 --125162811 --67344477 --831485505 --558649993 --705567756 --864673563 --634371321 --596007202 --237847796 --365130645 --123229086 --184876995 --675914389 --226009346 --109781167 --346241473 --621620108 --77313680 --140653668 --757957414 --206308728 --500766242 --49835612 --248096264 --457304498 --833447885 --741967343 --338587139 --561216313 --851263134 --913471114 --767228559 --48409158 --726531900 --458558201 --972050186 --482083252 --820211713 --905042755 --97430087 --475952863 --993939254 --455978500 --180073660 --829627117 --709730645 --624352837 --127172394 --745662233 --130858205 --443505711 --991289578 --421563293 --78235983 --633909057 --797597757 --510376135 --113776795 --921136051 --920011626 --54289049 --257100936 --524091703 --8679001 --830172521 --577035526 --199564903 --369232914 --740672604 --423119719 --640833857 --572193206 --356940017 --248687835 --890579104 --430153247 --793065351 --616914576 --391327768 --251561641 --548709398 --123854348 --12781556 --179181763 --76133259 --740444354 --941088951 --613786396 --524762984 --99132412 --883620500 --236941496 --313726489 --922188511 --721323536 --80367202 --541521650 --962875081 --625795094 --86859619 --265048763 --452803308 --245113980 --647750751 --862922531 --806086174 --205929723 --615513871 --320024508 --67317319 --768670764 --406829451 --823468839 --933193880 --225948928 --266233964 --373947128 --521300062 --279125993 --711293956 --84028664 --626188153 --175879302 --190351068 --774774350 --214007758 --46424082 --802751382 --501423230 --841773004 --872575017 --753666758 --883641010 --543509143 --878232952 --63220329 --205517621 --500543050 --745632577 --849676029 --43223100 --676910147 --54237000 --152672615 --314175723 --608410825 --818951475 --338968718 --785317878 --201722407 --85446735 --219711453 --112722747 --101839827 --251140865 --346452442 --85088241 --893797233 --452108495 --156828638 --146570238 --813500403 --912207607 --862336115 --584463209 --438413960 --266645063 --668891098 --381513587 --308085495 --228790150 --606334895 --394808607 --283737769 --310535552 --121665113 --657493984 --485812668 --33678636 --924434409 --716706020 --274731640 --594642479 --536036356 --12433995 --73865876 --69905380 --578853225 --602317716 --48907693 --254046226 --697920041 --682537193 --765877083 --551672088 --970013354 --533400853 --349085632 --608036411 --37404568 --442159887 --101542123 --450518969 --949089317 --330844068 --300238484 --387413550 --758543018 --868122502 --879801871 --461044819 --878093340 --7469147 --327432178 --608847298 --444827099 --606367186 --232919577 --297624727 --379642102 --777245827 --396378167 --81350896 --69620199 --996009255 --608596349 --923630854 --672398828 --669246346 --210609688 --697972064 --344955703 --979237298 --862707554 --752142834 --799642975 --899908422 --407305065 --903235446 --391736573 --494982088 --563852256 --777101390 --330589853 --181891790 --399866655 --645508129 --935306670 --712666812 --870411718 --198037328 --954470251 --497099524 --210294411 --101811186 --799608598 --710528180 --842284448 --238789665 --367680935 --678398550 --473661930 --576231612 --611308048 --90663570 --916149842 --86129947 --112959089 --916363801 --374887800 --820654398 --314585779 --143254485 --468134633 --111867673 --869465287 --477069457 --154266638 --744505491 --62061625 --636121716 --592835757 --305161730 --842995707 --947831017 --21069486 --562605574 --25295971 --197860222 --303568603 --205031368 --556427270 --678241455 --399518164 --955731989 --692730071 --165190220 --106708174 --630563182 --807172758 --85702172 --212931631 --365766428 --389900343 --192409397 --380569464 --242137854 --405034966 --324881977 --454077433 --459027947 --579125714 --931129190 --952320274 --50800881 --355466229 --716632305 --363133007 --4462230 --950644756 --820963436 --993612522 --717229828 --590806808 --381326968 --844627820 --358491035 --469028770 --638763309 --881833620 --28479148 --62269363 --141863073 --910071131 --741330326 --161859387 --924752029 --89009288 --351802263 --123810294 --764627421 --935788876 --546546871 --725799130 --717465397 --117161169 --842716967 --133871330 --27176891 --653543652 --822078503 --19368795 --123625969 --444023275 --735084558 --908787439 --731390546 --231337533 --505478565 --664581655 --538465922 --703361795 --617378023 --385137601 --230216384 --911633702 --376614666 --700697854 --893123496 --107318847 --691246034 --326550598 --953025173 --112796600 --740162912 --458901825 --713323380 --175840634 --812850522 --112077288 --11042525 --102718285 --782722378 --294632055 --32619807 --350721667 --665946458 --808076939 --732403295 --906735061 --48647692 --244663382 --158682738 --574836720 --777331157 --427039106 --653842008 --157885532 --541168432 --680435912 --440277447 --506091625 --491479463 --78934622 --932828710 --688119644 --33020415 --666130339 --112707344 --602430653 --28535754 --296619861 --836875122 --112509049 --720300646 --11338074 --128270888 --429883992 --942475782 --411545140 --841441379 --329173301 --260924711 --121858529 --916575192 --932719015 --686644161 --806902194 --952364704 --324217462 --401020061 --281135310 --48393419 --852552783 --759287887 --904681166 --598274251 --207276646 --734537447 --592601757 --842715197 --858595477 --907692181 --871900801 --778697609 --20451921 --291561990 --52059679 --952389872 --362007386 --860809539 --77991451 --10238129 --887859674 --969285424 --384851893 --798467483 --98986568 --115059940 --350047592 --171596524 --753611841 --576385009 --78079823 --936637694 --106506019 --786963194 --716929805 --587719093 --947273089 --741603799 --112252068 --299096172 --135271380 --248071401 --401499820 --46824784 --839580265 --614276767 --443940184 --235546015 --304952987 --94717748 --781749156 --579813009 --718221048 --351042088 --961127504 --263475251 --649721191 --435316262 --794455199 --644706114 --80075142 --766191289 --106569849 --436341077 --465322448 --226249881 --585052080 --912381153 --312158179 --686051270 --632968901 --855553936 --900249124 --832768562 --277993778 --485607651 --779370984 --495622384 --750639138 --726912911 --663827659 --957986886 --10243521 --834623074 --591692949 --354984565 --673416448 --416714000 --36307107 --80569973 --669971635 --285820007 --43970577 --288709325 --701385892 --755552943 --607104077 --546613545 --775072854 --857647618 --21113203 --196228153 --153924380 --721387047 --480494870 --100729686 --291586279 --985221659 --808582932 --682643410 --104528406 --253854225 --143471757 --8344794 --529202315 --444069313 --939850759 --44746138 --557063358 --457961882 --551656255 --983136387 --583038268 --818407289 --33832503 --484854577 --192048145 --298712917 --379816337 --477868451 --287854962 --12595930 --345764089 --466789426 --620833172 --149677856 --19469802 --776798849 --51739104 --830832287 --995583237 --362250880 --183157996 --675476505 --17326308 --654177133 --952229424 --310085418 --107083420 --454953308 --279360623 --623792469 --599674073 --608230549 --142869964 --26375512 --513682972 --890133593 --321262734 --184238280 --581631046 --435834435 --691845415 --600120146 --115446138 --597218604 --463349577 --866333082 --136996000 --631167123 --585787010 --848232276 --311217415 --798680183 --689451142 --448956081 --547108806 --355084550 --973699879 --444581170 --151495827 --695334672 --791009526 --873522825 --958333194 --739944703 --349834837 --148939860 --627649750 --959690529 --893880925 --552796008 --765451552 --417221033 --991231663 --244800074 --378596818 --830094052 --325695246 --158099650 --272927086 --399088656 --270688207 --431388737 --173807379 --130520610 --535836302 --653633818 --37265491 --411844096 --744050584 --979522281 --989868347 --912761987 --876614627 --865719517 --133253571 --834049005 --476782027 --36143592 --794246452 --316962824 --648313440 --603981623 --117965027 --612788394 --1052800 --611418395 --809328502 --871912350 --757118585 --573472938 --404286904 --316465559 --331414467 --449368109 --196527541 --942170196 --432374164 --909183638 --406777029 --192827222 --107354078 --754331788 --201525968 --678329594 --766469188 --640775798 --341834056 --974889057 --512935917 --227043670 --412134574 --597115475 --357985361 --178319820 --415316757 --628774384 --45862020 --149791163 --404630271 --778612157 --91197863 --517668177 --173224102 --968873487 --492395089 --152648790 --811652422 --663194887 --821110408 --831184711 --700618189 --279902424 --505337559 --327109174 --847322792 --205552715 --793531005 --632025412 --254142042 --765498261 --620580223 --566576042 --405172782 --204951729 --787523730 --255709546 --267991952 --317588979 --549524128 --433737733 --527827718 --858913941 --21518872 --608167819 --592661353 --692266712 --275012730 --326472152 --602236078 --160675467 --830333837 --862916929 --28518202 --350046006 --601776003 --768518740 --954049319 --750430246 --24685100 --789321512 --517469461 --87204284 --31703609 --226494725 --381293115 --600550535 --60233337 --965798481 --479445842 --375286188 --832644249 --658456269 --437677147 --735807812 --89074679 --758740145 --807765369 --894150678 --109691670 --706456133 --561788076 --113146327 --433088830 --255462917 --440826186 --874140006 --983991645 --492888131 --964656650 --880892675 --741173265 --594488340 --21766969 --952871491 --75039360 --196322769 --97190242 --315258750 --247069501 --489281462 --134677264 --440492492 --154537231 --632464608 --744214860 --471660200 --94771027 --477529302 --213656201 --3744722 --672736182 --6418792 --137061907 --62224370 --628258023 --655232888 --392714706 --832077986 --162875372 --424932930 --323818672 --974488675 --859695984 --565083270 --95923959 --646187833 --16566162 --721254950 --592402540 --974363806 --507141406 --504757649 --308830228 --265263469 --845922607 --704266869 --866279917 --854062796 --789142651 --959592030 --722612861 --818185001 --931604646 --177331714 --578285182 --214889322 --675828637 --894677150 --519313767 --553863558 --900062928 --261334585 --220832881 --211966791 --329197599 --933887711 --716721612 --479395096 --295144281 --293809367 --542591327 --411088306 --100591443 --648397837 --457591232 --629010433 --380810648 --245608213 --452141011 --379555130 --402433971 --513932377 --637888581 --982992316 --506127110 --659232850 --444589323 --241739338 --728231291 --847050898 --807950622 --229931049 --163267709 --105289569 --632695655 --836862299 --720681330 --641712298 --350215585 --976963829 --612614260 --945113833 --235630220 --685146970 --711694606 --122057739 --960695735 --686318963 --134362733 --969610201 --931494788 --838395465 --330794681 --20022917 --69487062 --217829586 --703694040 --79963402 --822503470 --896384179 --604646438 --596224637 --968980845 --718302056 --188266423 --885833932 --69846515 --686192378 --941687695 --59103469 --469280460 --281473556 --581673205 --686753804 --130537577 --264314946 --899198794 --757299318 --725561739 --350970448 --321568834 --402254215 --932568959 --132414083 --579953693 --575513491 --691781684 --458520015 --723138947 --115199274 --221817396 --530423303 --149945829 --75253144 --507011943 --306911503 --353500469 --767095585 --141262163 --270838432 --960789380 --419723818 --486901172 --188997225 --221513380 --912454387 --424009158 --689455096 --35272797 --608277159 --765435721 --144720069 --784381493 --72482663 --938624363 --948207515 --261953042 --653723 --45912397 --817542285 --762441378 --696020024 --184660341 --203221160 --184999411 --390390910 --310866717 --14168415 --218535437 --536937494 --389040631 --924512121 --434315842 --820415773 --239174294 --976525112 --546313054 --71559225 --846393755 --146287204 --502279905 --220862820 --540323318 --97280002 --157964496 --263661112 --5170620 --324061641 --458081719 --905528959 --335702671 --862584165 --793573397 --289618456 --483130007 --84168338 --525575725 --301608632 --785820578 --579149717 --361837192 --7958880 --435920152 --701974915 --355308015 --577431296 --45962896 --487256066 --712716591 --526961660 --242382478 --647476365 --715444621 --90067304 --74235294 --587930077 --479364470 --279477459 --48898256 --846755299 --737618060 --184107965 --742925862 --595480202 --73118687 --871555276 --896577239 --509748469 --892703668 --532840541 --640198107 --990454794 --371090410 --424280457 --679250260 --892466997 --729656679 --774431291 --841763953 --383847170 --55977610 --803023906 --302803493 --385047862 --840565537 --265515267 --815317124 --253939285 --907574730 --836661451 --727557918 --280321233 --247534328 --995641352 --246038289 --601404144 --663929571 --84312305 --58992319 --568421375 --926315171 --431698079 --299111180 --821803831 --111054346 --520467861 --768030860 --920845652 --985099846 --218815226 --730408767 --147847609 --881275318 --396730393 --763696224 --441148024 --223370194 --14184026 --616093629 --498103638 --520564048 --406201927 --394567285 --97746304 --665846284 --572782449 --732482138 --373226255 --126756533 --774050710 --339487597 --561473697 --116256384 --421169454 --319476038 --339521728 --281963971 --584314514 --318849848 --239414596 --724814318 --555498376 --328587509 --130787214 --701812949 --487751754 --105676089 --43908416 --47949971 --916513275 --814226187 --686709038 --320775337 --736011174 --99089121 --219045101 --63489548 --730864804 --33939917 --266839628 --490417430 --442742657 --679458327 --881220308 --177382402 --445451701 --423248269 --485043239 --242204777 --880736223 --980307741 --581367663 --367876779 --547003289 --927524739 --324498626 --763424068 --421147449 --146451552 --76699760 --426901945 --776002702 --269140801 --571245239 --511229590 --339237556 --984499647 --996913403 --177994001 --279077853 --463594175 --705474492 --867541390 --178256528 --838939352 --383426644 --425769191 --549441093 --534236011 --5299290 --860937072 --671496701 --212276920 --976588635 --611664347 --547157424 --242364577 --105862940 --804378310 --834795670 --987812397 --241276664 --41600613 --843228662 --134435597 --882855347 --142165995 --923616162 --838874721 --584951879 --854434180 --377023351 --413343951 --139647048 --382513275 --3234805 --818052558 --377058220 --282250808 --259822743 --245369095 --987992538 --108219986 --811838267 --487036384 --907947918 --610547537 --238042902 --222230500 --52928841 --733301241 --426751351 --129124044 --897793460 --71528302 --906749268 --427174111 --503594741 --578922084 --885394061 --105479870 --353334818 --490221167 --824099243 --408808032 --114956939 --671015122 --826917550 --43039245 --139521820 --794808636 --432089088 --627680823 --321334362 --982996286 --981694092 --637521082 --402250130 --490580145 --599040823 --551659884 --840903989 --996276656 --85601060 --31117390 --978820571 --384677341 --855730834 --811729857 --484382930 --846581409 --269273076 --450636773 --978887162 --873983793 --544381312 --966289720 --128673517 --55788527 --221250462 --122483213 --814246406 --221254118 --830998978 --528129700 --406762298 --734706533 --631057515 --492255220 --892187995 --203323529 --273882747 --81049373 --343772697 --308338056 --892315481 --25255986 --527385846 --413587841 --805109795 --853323968 --478867740 --82759034 --684632997 --70310919 --655189323 --337348371 --782544035 --586950470 --831879963 --937071954 --499734808 --365707517 --437429326 --619993464 --566192616 --404662832 --177817828 --21130950 --317285517 --118401449 --941249895 --313037704 --448478093 --421465838 --371886632 --310824191 --439652635 --240603794 --328580733 --818323641 --594326154 --929050917 --796124704 --373312613 --977290690 --643250477 --714963837 --282116889 --357892234 --41837207 --937183390 --590013250 --571859414 --443274950 --156613685 --766733852 --276645711 --238750450 --20458639 --378045521 --859038352 --404397253 --148406414 --9314465 --264884516 --206750210 --314985013 --4110924 --761341644 --749552715 --487927590 --529968477 --199165079 --979733023 --101128745 --890074442 --976040944 --788957740 --386067123 --560058262 --832252432 --555085878 --910105683 --327430713 --719237828 --439175047 --234596874 --486324934 --776872361 --800506038 --797401269 --866601014 --949180691 --138190752 --16542796 --489610198 --396092177 --620613036 --569549305 --995193582 --842007875 --14886589 --346145196 --838248227 --945882870 --425799122 --197460188 --498872316 --868632266 --533197502 --552903081 --316813922 --527876989 --812642660 --431802369 --401595064 --278216447 --648782471 --327394927 --595140847 --92823713 --670262297 --939238070 --682060971 --210788974 --824300888 --988732117 --384600502 --499457551 --63482541 --895889510 --840838787 --214014922 --43390934 --736374114 --15894410 --387686266 --356914315 --736217200 --963936946 --46902370 --222820985 --646253136 --123836016 --817943129 --158793486 --738304951 --634799256 --933049264 --482268279 --61395411 --945457585 --311082587 --43229929 --877276385 --103507723 --942594282 --547379369 --825749002 --478466032 --10305060 --157263590 --876502638 --123023196 --72857117 --120894099 --960610153 --439717825 --79504383 --766434982 --638459724 --990036894 --962096213 --427777529 --110102073 --90486351 --155154364 --808208494 --301334788 --999080980 --848147940 --950276810 --854981894 --113246794 --428126323 --934637443 --873400747 --334104594 --936200901 --380377547 --209787051 --438025153 --534923266 --378224512 --469766694 --271535512 --981743644 --188571664 --884980451 --170023289 --309451104 --422565984 --808910173 --768241594 --587605308 --869114750 --781722368 --120922894 --932558782 --328036995 --829696402 --595643594 --767480051 --953545698 --103694819 --541902644 --396582732 --609321287 --694069195 --517602729 --27551478 --690768780 --174009517 --567680919 --255569438 --371175244 --891828103 --861483873 --416942511 --305533445 --226886580 --163749196 --610052361 --705626846 --663838242 --312982637 --257243880 --869544482 --704051907 --958429121 --835605423 --236547718 --932406441 --61404370 --905812746 --739190314 --674965125 --636137814 --10748412 --525450113 --50950404 --212025439 --966337855 --555468347 --335001119 --247515236 --19685333 --69211778 --42041414 --112761979 --432438989 --414575894 --313323270 --646802396 --321318850 --123199402 --631265981 --616165467 --969054920 --231011273 --434187277 --614931783 --572445896 --575421616 --641997198 --447089386 --623495393 --406076977 --447569928 --758099250 --894661019 --840656488 --19759130 --617225936 --364874981 --410569355 --572125979 --926902310 --696608101 --535685696 --985827606 --715439925 --200264962 --323694348 --991354278 --236346899 --772222169 --884235916 --231056738 --982921566 --173370080 --295495055 --268525380 --2922074 --686841631 --817184488 --183308198 --448857098 --743257293 --912315934 --616760129 --324808725 --673664369 --871699206 --754028821 --44365080 --695749666 --335241001 --275086714 --504145276 --93541074 --779240946 --128225014 --487729134 --65047748 --398509419 --316538800 --14084765 --49650628 --484049097 --462877137 --562296527 --634554814 --648290262 --599589743 --333461726 --601194650 --820642873 --32289680 --229168947 --779312033 --727862279 --256189168 --857499248 --547401179 --95137697 --245380407 --129642959 --742358930 --2999845 --600473332 --278348154 --706328950 --360264279 --842902277 --240721365 --958482452 --940657598 --846702094 --843326027 --988537721 --789258335 --50765961 --822710145 --854935082 --31263689 --594316471 --192271473 --706637976 --420275337 --28816734 --511288411 --771224752 --747901317 --856974714 --963834793 --450676026 --781999457 --328016101 --489919010 --734061695 --104748975 --270980590 --233771672 --626911506 --639926123 --417391501 --291060986 --808993358 --770144289 --268445404 --842656118 --73751398 --965870518 --118374869 --46032201 --312733086 --930353218 --862503790 --279607712 --605722005 --529497616 --250714190 --646368937 --114247459 --388616709 --915125477 --911989930 --104919340 --650848585 --806554457 --801420438 --933321974 --973896304 --677828627 --129452716 --128557256 --354972240 --987781163 --290647411 --418958997 --284188774 --896013639 --950641253 --952066348 --604182501 --290212289 --978612610 --301092844 --63626302 --127553841 --262519712 --458465634 --828511091 --975732115 --374771730 --840057256 --943229187 --207425678 --964275252 --297995026 --301768008 --490830379 --947407959 --766040364 --410769124 --169269527 --457531632 --206458641 --29369363 --629561353 --572115744 --378171065 --481500750 --183033031 --485175943 --169641224 --255488979 --960964477 --699925572 --101299107 --345835177 --256494030 --872164573 --370921060 --891872539 --51010550 --770264313 --951012809 --802749164 --346667662 --705203407 --21845493 --795551383 --446029173 --24402645 --806816987 --481241512 --681871444 --496298920 --917955830 --103674860 --169169234 --119690174 --128157723 --845077932 --699220194 --529886376 --172297918 --992861584 --218420390 --699854099 --510334091 --447464163 --592910267 --5708081 --593472372 --366454947 --856073635 --728344610 --249830941 --308316197 --968803601 --271504386 --654440013 --633056196 --37124542 --742055514 --395478951 --58145206 --17365054 --377361650 --766394227 --405348446 --940102664 --591293991 --25127923 --515510442 --376056876 --908625543 --573932673 --321667521 --562755702 --593788378 --638900558 --812675112 --64559309 --428441065 --391359038 --924433900 --8011831 --234803077 --987442125 --663667144 --827557991 --640782865 --466031595 --359756720 --766706426 --564187155 --309991510 --934775678 --815333873 --49129955 --450147642 --191903539 --51628737 --605281913 --503138157 --923183022 --846467593 --866633804 --601408421 --54289602 --61094542 --869312531 --279641137 --108723078 --172201366 --533592274 --407378456 --798081756 --604742495 --663367427 --93307027 --650424878 --450498926 --931389689 --848192927 --487271706 --881718373 --225151521 --105640395 --895504600 --829792546 --866392595 --861682291 --492856634 --518222883 --484988272 --68119879 --7198819 --48505070 --41892130 --101691994 --567771611 --896577915 --258758879 --72456246 --553845771 --701736903 --740323136 --640988523 --657949777 --229209362 --857623899 --537914994 --991401151 --426719843 --767439366 --507262635 --246812520 --856520999 --317502912 --499967589 --882239123 --631694388 --271370358 --346690186 --735711711 --747930536 --467681832 --531258282 --927683995 --948940279 --36790392 --769026549 --939392471 --399563392 --440851251 --645316660 --771071671 --714848943 --833068557 --535496848 --299269425 --274720776 --78457753 --242822352 --260158870 --144270806 --82035112 --260118212 --823073830 --139905240 --100271426 --32545195 --730459163 --395171206 --529754955 --731731900 --22731001 --449979618 --562836470 --686005021 --285910505 --910254033 --635023601 --456316229 --896199809 --845847475 --923552134 --942735763 --820314975 --703076492 --478000980 --356858532 --373557056 --552743021 --549978873 --454611700 --596163550 --328986600 --848560751 --817571224 --408138249 --820637845 --583172199 --843869416 --322721527 --997455356 --902549137 --972165316 --738268705 --231635138 --903641897 --605137616 --603368377 --877262524 --315702140 --702742117 --399739466 --670205878 --114950497 --654152519 --799955678 --238526095 --288131167 --798296948 --839505237 --964143909 --943380494 --361942861 --479360663 --452522941 --991355840 --308597833 --67156012 --362496414 --778076712 --168351073 --85542661 --944078171 --499779078 --1122241 --904953021 --555350504 --359798845 --801546237 --740841805 --433049909 --481806426 --16264249 --144543072 --552037230 --141245816 --969486458 --415579140 --288280217 --641435316 --10728148 --944879969 --174281235 --399002919 --945800742 --446663728 --422813646 --643113699 --117234838 --557436855 --769254058 --531613583 --606668968 --480830915 --143974803 --101556953 --382243422 --156689196 --680909175 --265154467 --739050283 --278040801 --572731786 --588247155 --70873111 --947789556 --695284974 --776085818 --233216166 --863683443 --927480978 --360131379 --455298779 --51791862 --281557126 --152378415 --824048980 --293359742 --709695570 --446193002 --623683345 --274910995 --691871824 --489401419 --636004809 --815795074 --236000725 --637751651 --104306643 --512454288 --927837466 --199288773 --554625618 --874118440 --846336585 --787446680 --45916402 --634590059 --116594217 --525874796 --521739503 --604646160 --365050109 --279490648 --646661864 --408146664 --711552583 --451230455 --416810387 --161037474 --336772634 --452444831 --153737486 --893128918 --901626805 --311758608 --690866733 --953081083 --142903296 --892706808 --946845026 --170457103 --406188006 --249288487 --883830186 --491347552 --304565364 --682504461 --886345201 --276846047 --172555368 --159946325 --783464123 --805164421 --277537467 --844342687 --503735869 --322962119 --226983918 --614443815 --235552579 --88154014 --426996044 --21406939 --42463968 --334102895 --740629319 --259204913 --844238732 --166062531 --263070878 --730710810 --199833955 --990226418 --443269889 --913222125 --555781183 --271393536 --267388523 --23707409 --380137918 --665259625 --603540936 --328375775 --705889629 --826363130 --75678063 --916726427 --780453165 --664783048 --161905120 --766842401 --854461627 --929510604 --790504205 --112768788 --566959492 --916447264 --951611934 --786254151 --319077437 --811418391 --767031554 --579716462 --101306850 --670672527 --690224508 --668403154 --735376683 --672067174 --100774869 --407872207 --333597707 --532118358 --953743266 --13289070 --551431964 --203917037 --29071445 --362160862 --920581332 --910111752 --175138013 --288471914 --431751382 --967170542 --352315644 --965626844 --289348907 --752628815 --291741909 --85349440 --428811257 --67254691 --968448515 --583650863 --36880007 --129008737 --537717625 --512583299 --540061616 --124466525 --273277409 --43097900 --76882285 --682966545 --223792104 --800107448 --776186636 --566699778 --647984850 --352880498 --323288850 --156661520 --900989464 --604459662 --694999098 --606062305 --983998300 --78951171 --229500093 --690456984 --233972325 --748724524 --165591896 --514253438 --122662773 --587675712 --373989552 --161069605 --651741738 --712226660 --719180538 --279700532 --345567978 --362123671 --951243675 --680674748 --913667864 --662875019 --991384085 --925268480 --973132998 --655715765 --655257178 --189720213 --188460085 --248271402 --16455280 --538763886 --955741908 --757855288 --825721268 --809778130 --573670324 --501633232 --526492863 --956610736 --365128186 --571176359 --401436776 --277668250 --718481764 --725095744 --246904489 --450967405 --588093137 --775154149 --705539138 --347685391 --666736504 --501938260 --222211062 --34001267 --403231267 --97379681 --484510823 --444632554 --181756901 --336834765 --788142893 --339620752 --384051172 --561075662 --491603737 --267454911 --697221921 --284460580 --80431215 --240648481 --323785253 --760348187 --26284399 --383208497 --592030873 --611873847 --771178625 --911028887 --321609705 --666601860 --149580221 --754816317 --874425045 --334510188 --967691740 --649183632 --281416571 --831183258 --767996698 --693334081 --525042513 --198651070 --653928928 --709662376 --975757437 --161097837 --504012154 --39654551 --804639035 --218698655 --472575804 --348219461 --456200273 --736446690 --501176679 --111637649 --464129414 --276453153 --693301516 --113566248 --186640462 --956417047 --906416673 --392488090 --571792720 --837507698 --200416477 --816705162 --158874068 --91473084 --62540385 --740820661 --399923805 --415612249 --103858223 --847419258 --403559162 --332873978 --450351408 --159038272 --813008703 --836642905 --814518677 --506320019 --694338743 --377184101 --388027381 --228454286 --512652368 --253215938 --24431974 --459296189 --223576936 --305296409 --111064402 --128406450 --58427500 --643925734 --190444153 --869015485 --219438044 --458903708 --15312475 --51805734 --462681390 --477162834 --727028878 --376917778 --286692960 --259772406 --548285639 --229191690 --585823573 --995104960 --181800013 --868321607 --51150199 --114253976 --52147043 --942643497 --938032489 --213984027 --908476934 --762926631 --751708130 --337454508 --564891392 --799161310 --226065878 --933868750 --183871396 --738233784 --819735533 --441156737 --165997724 --41175789 --977870098 --682893030 --805747718 --179871057 --845780512 --360506119 --488584287 --533250169 --332158638 --874650345 --193570303 --970662406 --919329480 --861429330 --823308951 --394431434 --105293824 --179332441 --19174619 --924342592 --553486914 --679664392 --200295365 --507568505 --808067165 --784912756 --544755172 --21211932 --5724792 --204653606 --96032986 --902256435 --505746203 --629368892 --514680747 --496235804 --961541214 --446767874 --881923790 --189934267 --597619584 --661717162 --184640092 --302722945 --899310962 --538139649 --763890256 --34782911 --223083229 --837856148 --104137567 --250820202 --724098006 --884967170 --786843790 --865462433 --218178353 --41913122 --649822439 --108325368 --800706697 --555865562 --514634798 --845172771 --141730961 --679674311 --512440991 --96337278 --176050237 --168778795 --970647761 --904885127 --504908831 --699662770 --167707980 --582500688 --191648844 --960029658 --773812208 --769633713 --511440104 --788346035 --116443422 --105263235 --19031918 --661997947 --679485165 --583422542 --130598841 --480968201 --979678385 --505173201 --334705699 --392201780 --39971062 --305599172 --494005379 --757898173 --657117963 --16750484 --627305779 --706447370 --679562635 --978157110 --515168556 --13830990 --689735513 --143062571 --801294662 --436427315 --397192163 --770327371 --653815110 --146297259 --286696318 --690208104 --141247097 --936027388 --324383265 --910280574 --200605058 --120117711 --249120218 --805186583 --833390361 --298327143 --885477556 --909261931 --42573245 --298840921 --48954018 --427736755 --431106626 --795728416 --473249157 --72782932 --68443095 --364454291 --625804813 --343443419 --300791960 --436718078 --745963334 --673062670 --256514849 --677843475 --866694005 --31654482 --388901735 --77257847 --734006152 --832471933 --215749597 --422433584 --81720683 --545014743 --300932123 --804434418 --362156213 --837863026 --603033077 --617572751 --285320838 --784739343 --442880435 --133496511 --133076643 --256481494 --278295029 --608585754 --191840769 --912314827 --607056468 --963388877 --661268390 --10417004 --755725749 --224123394 --34363283 --388612920 --180690027 --718061358 --722396165 --108877198 --674899010 --150927279 --578264042 --773140919 --57383513 --70829327 --950331843 --994323243 --542403280 --277705234 --604882144 --414901864 --586989939 --934922728 --273012324 --908263190 --675523389 --953689023 --908318691 --820084864 --127774378 --832258591 --457267641 --602784264 --704636561 --637518246 --410955929 --738051643 --155826869 --960410835 --520375013 --313619441 --875489929 --133674851 --349405253 --237142007 --749319622 --673530346 --759095471 --18701568 --104473232 --733480692 --780653428 --54730376 --666322008 --132839643 --780583759 --748281250 --295817031 --730256750 --735074439 --323652281 --829612895 --443331761 --438697663 --545221296 --535897928 --317824453 --931065194 --832097200 --600355283 --881933980 --528650923 --265570536 --676428 --613006733 --969884904 --838791867 --445968172 --955166877 --221995730 --330097960 --982882950 --331512674 --890747234 --95142657 --133642525 --415810547 --499374551 --77994971 --404491168 --483716027 --178524016 --822164555 --546016330 --661664678 --924724473 --597102812 --584268988 --76585164 --53104332 --888652177 --891746311 --906834505 --434033218 --550184853 --815714293 --863711484 --26795405 --766726804 --204083074 --480564570 --922303421 --711020642 --457642483 --376415083 --71244665 --43522731 --714511955 --343057143 --40477119 --77999123 --355661080 --934885766 --311061099 --488018829 --542224219 --893136998 --168511958 --837915925 --584567976 --366998724 --232058197 --575209660 --471956716 --223322539 --101450930 --943827209 --18202658 --928848373 --59903416 --794654089 --764809988 --187157608 --102306695 --467340023 --341183082 --620262770 --398047773 --303965960 --98106480 --268119772 --578300035 --927291105 --283656055 --166470053 --473291701 --354490855 --115478341 --828946125 --546009009 --111827176 --679224466 --795348136 --624437452 --81688110 --904520898 --870176295 --411109424 --263112926 --961048455 --922544787 --502112967 --83192760 --396712044 --764478619 --198007616 --434028370 --718831548 --471336097 --184005558 --990649959 --394065874 --898064793 --813127233 --473567464 --242066548 --187124540 --421541607 --345660329 --449991906 --398937298 --437535751 --193860929 --330687186 --696856181 --792687558 --430535604 --732400027 --284049530 --490040854 --172791139 --580709853 --672178278 --737452525 --126548346 --694614502 --442358287 --386866877 --985619354 --966438449 --133090520 --928710949 --699651517 --706139699 --926999914 --676100637 --403094969 --824201257 --651682403 --943348772 --661739283 --341321447 --528094218 --418155887 --439142389 --845436634 --888621250 --777916072 --585889854 --473013516 --109652921 --755572903 --986139731 --4318710 --650340598 --340084232 --429509870 --841701173 --32120264 --994646489 --214454356 --591447335 --394849571 --117787999 --270840297 --905066501 --461007033 --485925954 --89013005 --733694850 --511288081 --983981882 --436704054 --16703519 --532930249 --7581983 --757740001 --877349076 --241560802 --822254205 --660187473 --656555587 --545302423 --509112479 --234310329 --344249703 --987460802 --97885380 --142410104 --975166383 --606084010 --55596340 --672203191 --125528810 --750078683 --504407298 --500972029 --932054552 --942009113 --419367866 --221604987 --969281877 --875496311 --422279376 --710297863 --288365572 --693793402 --155975955 --226310652 --658354467 --430162023 --733595938 --715473275 --342117738 --314747905 --794249464 --390386764 --949634751 --593271988 --371816312 --87430170 --858295299 --169127423 --503481427 --590402300 --496175020 --577158790 --295694851 --659657548 --499135617 --726469184 --243283914 --864389401 --525251571 --482472706 --14413002 --164397738 --774362166 --262713916 --294531471 --96622571 --598397790 --413907748 --609797381 --417160278 --234854264 --575639163 --21830461 --939052210 --727750042 --919454761 --390271734 --505937621 --120878737 --401366625 --524676645 --345900220 --353563295 --114425048 --203915569 --64808640 --890658805 --438113186 --864888022 --110888494 --271439475 --461977624 --769865445 --298175978 --735922983 --922893951 --25053815 --491933073 --870481092 --35713534 --468837075 --683114608 --422849451 --564091632 --297227864 --131389649 --62677175 --964070618 --562536995 --615064816 --817826654 --507208845 --198772457 --550842883 --96210575 --177473888 --778184510 --651952102 --531592171 --368148801 --461901006 --305398116 --252202531 --492068319 --61195547 --603113423 --814202694 --979046359 --459485840 --145921032 --620244868 --273061779 --881277703 --755309531 --777008235 --491010116 --221762441 --448974143 --445825120 --811276820 --104760517 --110188797 --562125231 --160356021 --192578147 --137427063 --630230154 --896480029 --68622510 --574272589 --396945218 --24071689 --80346870 --512639830 --822748645 --69980945 --390438770 --623389406 --389114405 --742711333 --449288683 --641285834 --724375224 --851548551 --198053655 --324333851 --263799270 --855348289 --667383490 --389760782 --554130416 --629748931 --129220187 --661854908 --238957647 --313437961 --176136257 --523531825 --376783749 --656117979 --836781148 --6422263 --465310201 --331641178 --277470088 --378339860 --192626610 --627046798 --249664041 --372567933 --48371481 --315299129 --547677046 --457148383 --338720020 --358003371 --404283345 --605400258 --824722394 --308327074 --625858607 --922545148 --410781286 --775750397 --193055448 --453509857 --655118440 --441509227 --7929510 --997931479 --932026078 --12121656 --488221289 --983001113 --808607287 --6946401 --416650050 --252440781 --271172936 --930276431 --914716114 --395779091 --577960016 --517863263 --959758287 --433363906 --400475227 --892499022 --38242027 --110079795 --676694468 --676505357 --623417175 --847370703 --270396193 --617572541 --908329935 --800676850 --297335805 --638560856 --140323993 --272143456 --89490345 --945451261 --674558291 --895172430 --731657141 --156581634 --439558024 --606133795 --550302143 --949231897 --308161969 --172381735 --786247667 --690578598 --836624873 --710492334 --966651984 --294898793 --56234252 --73110629 --793216025 --188372748 --714273181 --550722202 --292208490 --302284578 --381617147 --636601214 --382050310 --773885253 --680306363 --128457559 --555257095 --571530855 --94787680 --210860848 --191815842 --902533404 --240786995 --643021023 --785268624 --881525727 --484136649 --334825223 --381916253 --561189913 --853085126 --54202276 --761885724 --683671425 --298811422 --995823717 --604893047 --690102261 --495146149 --264170755 --455236455 --10976400 --151972456 --811255061 --365246212 --786953414 --557606596 --627013734 --541778746 --147981141 --683495084 --42264486 --361861201 --329054666 --908792720 --107681063 --822148986 --280999379 --189841549 --481516820 --557345114 --616237699 --370974813 --678851720 --659724650 --552683537 --672531332 --883303932 --597914176 --908313677 --276074827 --267678746 --370683688 --149592647 --889937321 --588122893 --146896776 --881168612 --743081308 --448838930 --122356801 --500545897 --86962950 --858357636 --141103342 --691328063 --85733436 --79102596 --483019182 --700738216 --448935050 --827567900 --814488968 --619001984 --104466285 --995205923 --802013025 --794565585 --883428740 --749221124 --169507045 --876433607 --980572773 --61027415 --78853523 --618827097 --247239523 --531953393 --790750195 --964288323 --42082821 --349859606 --166477783 --989553055 --197019608 --501004158 --894299009 --260575562 --640122175 --207770034 --200238170 --789648598 --743094418 --360034607 --292440136 --504437817 --510339634 --509195616 --770810447 --949925168 --914207145 --475264879 --973135453 --681437799 --237334083 --473194670 --408831830 --431297871 --542665312 --269906878 --969394609 --749648649 --424883645 --11762499 --617832671 --882984724 --952741774 --870078826 --765355424 --86256690 --927246953 --378717263 --629520939 --750736004 --644906685 --589748089 --636291167 --696778548 --854694659 --357695062 --553602821 --108875725 --201659752 --156126629 --572805354 --787493950 --284860740 --421704046 --150401859 --533784818 --191363757 --589277626 --562705425 --700319404 --617669716 --392616318 --575851465 --856358253 --161458105 --304949978 --15288576 --905899173 --37056089 --870672364 --522775652 --499954911 --202325690 --995653641 --724853937 --943841169 --789813761 --598471603 --181836842 --863529997 --326150194 --555574744 --458425829 --776182814 --875657059 --461949554 --718197381 --142518853 --519123813 --321817939 --545256199 --450856735 --220038097 --922076632 --360861421 --594944080 --74988102 --329166968 --93751746 --157651328 --274495281 --329392743 --542398574 --357883097 --686281928 --482483120 --143377525 --794790053 --808058812 --662560907 --129143339 --942140501 --140263263 --65744882 --742562147 --20841128 --8792129 --326013545 --359036124 --146679017 --584822514 --872625424 --922886330 --30255127 --620721577 --809425392 --169531339 --350183258 --964014439 --272926867 --87930494 --510127975 --603275299 --366745512 --567376382 --776716185 --859900775 --575472975 --251008936 --210353927 --791160205 --227856777 --73653821 --10242451 --690376812 --962708461 --672397354 --240998245 --138059087 --523768657 --826311920 --915954181 --328169704 --987250751 --723328773 --990600101 --747217657 --79482750 --399191344 --287842291 --502349556 --970580176 --730803317 --145214655 --516991897 --651185472 --274498827 --800388131 --61479410 --749828336 --490713429 --991260082 --849872916 --170020265 --32921790 --419607054 --847186092 --323918716 --57803591 --637873343 --568055677 --507750118 --954999152 --76069702 --88817526 --786829088 --935039301 --260615852 --781929920 --845879511 --175019140 --4314846 --741613946 --768927377 --720117745 --246241182 --821492478 --860882183 --306374919 --977943617 --378045222 --421416644 --124250729 --355812952 --235935685 --372133799 --983738889 --248790156 --793065113 --243959877 --77928914 --705820384 --38372251 --809916257 --674849567 --75866598 --847514597 --553758826 --775802592 --352688734 --199101771 --773474704 --824769705 --349690772 --177425034 --847789179 --499307324 --431466019 --489764393 --165833815 --95452840 --431362606 --448776719 --791787602 --722720004 --227494726 --448261999 --150428292 --402892927 --94619191 --945506949 --456057892 --689121374 --443936505 --220299179 --541436658 --953136492 --49055490 --961869665 --499189847 --344279810 --370390344 --669738634 --150710923 --375420121 --981053605 --267650315 --635534373 --480370223 --477040014 --933133845 --520048753 --428217156 --723411265 --726330470 --88475680 --133844350 --731847638 --869193817 --872852483 --188245368 --322479949 --543441487 --977869984 --477009032 --448933770 --260763581 --774744816 --606520273 --835940659 --296714440 --648733791 --555213460 --451403748 --119467745 --77223412 --118847930 --541970217 --176224318 --132427017 --362127288 --734618300 --848120931 --777792658 --743146630 --170106714 --244845504 --391575097 --979615482 --258935907 --122085744 --102009476 --220596792 --976377461 --88889297 --369091973 --2359512 --266366362 --845057828 --418006937 --89417263 --373267787 --373090236 --313946397 --928063207 --261716032 --348682907 --754926002 --42010305 --667715913 --723136097 --237886561 --397027779 --970402596 --264696392 --37149015 --780285444 --394178113 --694814049 --239931692 --656542962 --168032529 --72093786 --361742750 --605256642 --564851540 --476757976 --200838135 --60914001 --747299857 --124775896 --522736757 --543211421 --538815420 --192369373 --450268424 --607197301 --6297551 --850954808 --277381614 --315195124 --436761569 --495361444 --978950972 --311337510 --185635543 --728110445 --61305329 --404532976 --704836348 --76878168 --530855440 --891440508 --415243031 --342696701 --623038656 --81516241 --109065652 --346884140 --971407953 --967501463 --785266118 --832505673 --501307543 --242321564 --505173040 --539528308 --655722488 --735742700 --858581412 --317323054 --404601645 --947491310 --76314176 --791338218 --519136359 --692561695 --181060964 --615503480 --201242429 --652732869 --321830137 --628995604 --74955826 --916100469 --864232841 --322956988 --526773859 --957892337 --832476931 --892393752 --263146077 --53539993 --619241893 --194958250 --404946215 --953366179 --606899053 --781390933 --378794973 --415113105 --278654365 --382633406 --610470317 --438018359 --359488943 --672623521 --167293632 --18137679 --221225051 --516855024 --254960208 --918374359 --787286581 --924606251 --649910497 --609548140 --845965107 --685737730 --329131345 --108903698 --542970109 --130882561 --343867084 --490654316 --764609183 --983691878 --136147842 --174017976 --973245066 --214748298 --605472864 --171141357 --106365831 --997732286 --413388891 --58995287 --769077985 --626734943 --905364065 --797766207 --857333812 --402788529 --158016386 --882728844 --114764331 --976741784 --797867808 --674953767 --535469997 --168556290 --731109108 --834993008 --307733218 --560296180 --120239666 --666950824 --583827011 --288702555 --196221218 --669183307 --886629002 --541018321 --522093145 --851913567 --8649596 --289893108 --157137991 --931403432 --221814035 --895173433 --795858506 --261828454 --261492481 --550183685 --258227234 --82809225 --172046485 --767991935 --662575038 --298784864 --180336844 --302643082 --763616504 --32804278 --249463528 --306459642 --694180831 --405291301 --827110175 --912658404 --728939521 --871379008 --18350063 --222781360 --152244453 --782407324 --352473823 --16410241 --518280387 --441732720 --54881360 --854365291 --344708788 --462627024 --71197523 --231394931 --212781295 --690956909 --259537005 --15109585 --458297415 --320782988 --923788368 --878274712 --437542481 --500667110 --400761520 --939313405 --150519577 --708062251 --750113870 --841751969 --890562493 --933272743 --435338825 --75931704 --647451187 --304840870 --378738502 --653634878 --830060128 --594433100 --680923062 --433903988 --590359195 --802900585 --923433143 --186941134 --928364622 --217148101 --932382140 --438514172 --37118936 --101972080 --147730392 --767986787 --564339395 --248071351 --159570449 --434008207 --126128892 --34445137 --340554463 --259686710 --376431647 --13321447 --564095340 --725005240 --676017912 --92123246 --725158399 --939714256 --565559642 --55834976 --245704404 --253262976 --958360932 --916921638 --291285601 --738247060 --789444572 --603820510 --947125828 --164796487 --33220460 --992189363 --59134748 --241656450 --674468274 --556996791 --793187166 --210807240 --725233799 --516235987 --541223322 --25928858 --153025691 --698920234 --95601857 --820453022 --591609999 --277769642 --646462166 --473336777 --739869609 --950537799 --79376228 --641102993 --108412543 --858715355 --78887069 --799871559 --519937301 --403457449 --749799607 --521859669 --534679808 --776288993 --507014276 --804067136 --82987213 --362970598 --741124671 --595007882 --809280165 --979458169 --307386170 --694923830 --111573598 --282717010 --255356548 --208592765 --919481160 --450160662 --22338156 --606473448 --121290598 --90282591 --619803614 --730989521 --50269213 --481512285 --529589354 --991494423 --518115906 --638564355 --281201478 --805668647 --935875663 --148836140 --575231204 --228211220 --200384371 --338973437 --445874032 --174271864 --861840062 --15402934 --862522161 --919056858 --126066061 --10247471 --893255315 --35357030 --418389420 --452884138 --843625113 --861581847 --839136134 --669889953 --394874688 --536557421 --747479727 --489938677 --927199323 --460896849 --396343504 --594586329 --374393003 --116315413 --436779577 --454676549 --45019051 --655307880 --821251817 --402330811 --268200260 --956629834 --473861855 --889470917 --692353506 --107813386 --96088063 --421590353 --241579974 --20802681 --661256968 --928371964 --576175154 --704469332 --462274991 --735172344 --206932535 --225747583 --115932617 --65776245 --541007901 --111149925 --963462348 --202151757 --681108943 --655453651 --234633177 --915754183 --188977108 --265278138 --797371745 --298957047 --564795692 --768435825 --857607821 --873417862 --520782205 --18148421 --777266686 --394558257 --999300289 --988625726 --992590311 --916937823 --784264915 --965805112 --962819204 --613218231 --200684548 --993338387 --834797432 --924254603 --796996381 --922511411 --946426538 --33901371 --530616016 --124225151 --444600502 --45976508 --894908438 --954048058 --469080126 --28935965 --731364459 --570623339 --891420745 --47038270 --824365244 --834538224 --973949564 --678589384 --956119940 --414611628 --176669681 --888764340 --852122447 --810706296 --69747818 --317436162 --134695776 --371628093 --567093644 --395329561 --894304480 --42491561 --358235212 --617283811 --873529246 --55802600 --40875602 --761949838 --96107102 --915075528 --884790748 --505679189 --624586050 --315323571 --223285814 --647060959 --745287623 --395685446 --309650387 --676558146 --672820487 --311990991 --543502940 --166782380 --115756565 --713307429 --899431910 --401881186 --650743016 --864818464 --234651572 --524882756 --618505826 --615621239 --208784873 --12007902 --316940965 --374234953 --695361883 --449981411 --859918891 --941403153 --776139051 --352271364 --612734710 --772231229 --555590036 --975537092 --452718457 --15887271 --859154249 --122033728 --838028145 --524604094 --611204068 --445442135 --281963170 --307591841 --489371686 --855813667 --28742407 --276982003 --632668598 --112580321 --925715942 --605910291 --955177083 --928873875 --994811642 --373046719 --802631929 --55423879 --36798915 --456085597 --540131623 --106204587 --944736546 --229386461 --799786703 --428990586 --37091970 --739436157 --347373915 --187345825 --831639419 --59373038 --664471052 --503324203 --863206913 --393468104 --903339285 --302159377 --59105924 --984647117 --59873732 --292326937 --287151715 --343280732 --155393830 --277057884 --254935825 --172310212 --115305670 --601347292 --232570662 --643536809 --900960994 --117502563 --58509461 --871233204 --449171118 --296424633 --586730405 --655188064 --402520172 --11821130 --486398277 --845718969 --385530586 --628514271 --717358966 --674412834 --908141202 --413029217 --777458698 --113001164 --728880688 --311624832 --543132034 --249391331 --352838383 --495011232 --501299761 --161555986 --219452525 --604024664 --968198085 --67056292 --36775937 --429147812 --705112365 --571322749 --478940503 --796456586 --150682208 --864256593 --462956056 --877929365 --387070822 --311904845 --76707709 --272333910 --171209496 --754036760 --105610936 --663845231 --57219012 --794423883 --505211354 --267722698 --982297280 --462096112 --430051632 --478988298 --117470694 --951054988 --795268389 --483373279 --225896134 --847903452 --499009502 --699502637 --254011032 --643988957 --329855781 --884015654 --971120268 --256639535 --472713605 --46221659 --834783980 --872871396 --935008059 --881088393 --269220687 --904576834 --236701650 --472422486 --883968095 --907383240 --986440186 --311520310 --742401048 --369604274 --562562480 --951460958 --69060878 --192999731 --863221281 --651035716 --855810607 --779136681 --29085918 --116491189 --828692078 --981085987 --340210234 --233278045 --789932226 --292783976 --906984146 --59068288 --814350573 --532278904 --507395248 --399388537 --768866949 --561276058 --338670141 --939151048 --125881030 --4146528 --796617309 --538607376 --981130434 --928834887 --79675144 --658469885 --507233671 --953132049 --320984218 --877908882 --374316705 --271562662 --415155990 --290030166 --219484750 --837830166 --191132492 --573233226 --674108099 --878664902 --417011887 --203979000 --753554127 --895311741 --669287130 --24559596 --392180015 --535875357 --793752281 --50225502 --621300304 --400977390 --51900479 --51451248 --577752425 --289559403 --254663759 --516953936 --906305797 --915890537 --505099962 --230934155 --117216494 --60754888 --807818675 --69499826 --811104924 --198967909 --79950542 --732660123 --955265678 --930427362 --115382718 --16393503 --882971996 --753749204 --873857063 --602312277 --619787060 --95734653 --819636607 --349720418 --514420595 --101206317 --241955530 --475080418 --58242009 --890651702 --551247083 --730159445 --20154752 --257494648 --441863788 --330309199 --896081630 --576264466 --223745439 --600364427 --116093322 --22132274 --45449413 --43118672 --282198687 --303313411 --670344334 --898685571 --506197059 --878249795 --35351477 --155620141 --988607706 --545663886 --698491793 --933739555 --932883934 --303645677 --965784001 --53955834 --939003578 --529129705 --329179471 --824820070 --921170126 --967290484 --462222241 --220476147 --967003500 --694103223 --711154322 --432306480 --623961831 --468773860 --517610184 --671668286 --13732090 --437604864 --894796384 --248338839 --511559547 --255547477 --751532442 --664519825 --432027589 --28003236 --122169143 --45434973 --798789150 --115936296 --546065960 --557662914 --723319679 --382151013 --63299117 --603685238 --331962582 --943841671 --632052698 --722149170 --69911954 --806759970 --5263912 --930958948 --131800864 --712877015 --730952988 --686129424 --20247754 --974708676 --460293398 --523205898 --286965500 --192732295 --612068051 --352914030 --686292687 --697574835 --968788474 --462010494 --160894046 --490101217 --880605961 --154443838 --492466784 --928260281 --250722212 --59015772 --8180591 --545150364 --860950154 --181890569 --542172160 --137777079 --802142722 --222258332 --693415780 --550293376 --810320030 --758965661 --43820711 --59336936 --956806026 --428538417 --853237557 --896872233 --622733850 --602758502 --863396599 --941762711 --44724810 --626081023 --128860188 --826578456 --123755218 --417907238 --870166222 --254208251 --231184644 --925841069 --257714560 --313622318 --829436286 --418558621 --88230346 --987095901 --158507401 --835450206 --942664819 --426240922 --89649482 --834593656 --245936002 --584802043 --142966520 --936591648 --144630989 --542287026 --903435328 --685515684 --840751361 --229750903 --769072451 --714598080 --973243568 --369918603 --179899822 --770604264 --513816271 --533162795 --366126856 --779198344 --744004654 --261224892 --512099285 --44396204 --543399813 --948330756 --63205730 --527937862 --940035668 --992835760 --188928987 --71427292 --822011387 --68346099 --44329106 --489968124 --934048546 --391977946 --892906931 --72618464 --855885464 --30169167 --947820920 --675963069 --399783272 --414791363 --442802110 --748952971 --337958705 --765682987 --529145292 --311913766 --55789365 --467343386 --925150661 --704610498 --255731205 --368367313 --416427014 --752766162 --589519708 --752378218 --451913615 --134581296 --396470735 --636873710 --291838719 --128877829 --58498565 --241464109 --71429878 --469682895 --593454481 --628395894 --304989748 --632553213 --667628649 --932369908 --122665399 --239284096 --343912213 --879125427 --954349344 --27716230 --218440045 --993421605 --393607391 --746778999 --402831104 --794061053 --602579556 --21550452 --745794079 --672556310 --685367861 --539651149 --343880333 --951243765 --772601891 --155811250 --672817252 --307897597 --624913160 --492905477 --381074157 --338037201 --801009081 --132392520 --527731836 --629307243 --509562996 --698547078 --502861060 --95618590 --600081666 --110418750 --33860630 --570787864 --331238164 --368132226 --947830303 --748944553 --181296672 --620616791 --775240543 --328868704 --590448225 --575150761 --741281506 --253169260 --563259648 --934142449 --740545722 --629891931 --916137091 --440661602 --125335030 --283967207 --661280909 --249929681 --400902785 --553876404 --312358913 --284039474 --162660686 --647422286 --764645595 --191785029 --845434803 --663310635 --962114145 --708026609 --821939811 --713551361 --665449942 --512967832 --759002857 --721039812 --24271561 --283426794 --193511616 --204651675 --220139898 --155680927 --763181198 --798873898 --380898380 --930266973 --872039537 --247720972 --999829463 --38321470 --823218798 --91065103 --89299306 --110966201 --898529631 --613122257 --619739638 --277862689 --889046038 --324420121 --945452803 --72340195 --890242010 --746512817 --716807498 --2213467 --690722927 --68366959 --215409729 --314492959 --181533175 --465966089 --530700701 --446862366 --925536519 --642788588 --763324229 --918084858 --287434778 --236971057 --851505718 --599417325 --588855535 --964109899 --558462872 --617093988 --161237679 --603334022 --737235324 --230100951 --370760198 --190044675 --409605604 --964673387 --805055600 --916627841 --261816398 --493880794 --708018563 --809867199 --409798590 --773680456 --397456496 --439181245 --749195525 --296406219 --387745819 --833105437 --544049006 --342658939 --883754472 --70180747 --803394533 --31053304 --296017623 --868762959 --851358227 --625067378 --199869799 --660289588 --371199104 --370820866 --449780304 --322734527 --969367485 --384607684 --576510588 --644866850 --356921988 --955960752 --587367962 --897785359 --243648 --983286966 --878702752 --4681640 --956142736 --294153413 --812325391 --794461357 --51171310 --986992127 --740321215 --908210739 --48754793 --944090410 --331492050 --468163499 --559569497 --586012367 --681997305 --785723295 --327784508 --686029522 --459698861 --771111229 --780886422 --677329777 --168885913 --224450924 --274029337 --393991228 --612367582 --744269618 --689636849 --828942327 --584580050 --770475997 --938196610 --256769232 --23180592 --37098429 --398867877 --296891700 --434368847 --55508254 --119077505 --339727615 --390633561 --384480428 --607364510 --533905082 --717229489 --910380013 --822411372 --415453092 --409759071 --398506047 --805888559 --805888988 --770751704 --858932768 --145092993 --996969780 --366243046 --575163642 --828923331 --980909433 --766121085 --531649048 --536654851 --890427010 --376739742 --950627389 --482418029 --701222077 --910671396 --887520906 --391285559 --588571898 --313840162 --390321232 --944101080 --818603374 --5391801 --942016743 --412782359 --186561037 --392293300 --246268741 --50595031 --547271837 --489779896 --149478645 --376321159 --715709546 --468847889 --572127629 --271911473 --655827378 --160339623 --205523467 --555784180 --740552711 --757390515 --92808348 --282499814 --945219007 --791228906 --254811843 --737134001 --730511772 --289988647 --334851542 --903597835 --82721269 --297794518 --946066655 --965912681 --864205944 --762869159 --179239219 --590677066 --875847910 --498665598 --551801302 --516783751 --344753398 --471596569 --931471537 --495778375 --666001873 --486827355 --772121413 --319025930 --543636214 --836394716 --477906362 --11555827 --50676932 --191081667 --895208940 --305321939 --834317156 --579910727 --629697567 --947404987 --294570116 --962141346 --734436441 --130367470 --475417093 --368326304 --603410763 --437293779 --181490933 --824643452 --670903894 --92987836 --479595049 --960742494 --426728001 --248093595 --755113048 --523864413 --649624370 --440394434 --215341582 --909114120 --843793106 --297365211 --473741987 --393120634 --733031251 --891133816 --184329046 --490921699 --592633966 --183542728 --893412765 --470267755 --543362082 --261221085 --238370454 --281114051 --969526800 --74744529 --996138398 --173865058 --207897055 --326415048 --879949874 --455280164 --742181725 --281247241 --956804125 --229453943 --816437804 --550796933 --968671391 --653543798 --407871926 --466189140 --357350005 --302488999 --844935647 --209495844 --335072658 --900951230 --354422467 --931379104 --517112082 --405794245 --540472499 --844651995 --806664869 --551986052 --86980 --466668541 --627296604 --92757032 --136550057 --215878965 --170787508 --397624748 --310967722 --69938617 --272293915 --396316755 --804540413 --539392407 --707850676 --210216588 --109545906 --116828653 --701814528 --332110456 --757419236 --108927844 --566874773 --547672206 --801701901 --90005068 --948229575 --740463067 --348033047 --958588819 --364007208 --764368540 --998809595 --765067237 --518529636 --346167059 --98647898 --613914313 --861016885 --601755063 --544405668 --243251133 --749994013 --705735451 --444459793 --448177116 --441374003 --637694020 --992582830 --79033368 --424416037 --349899861 --742042339 --915907329 --405102494 --266632390 --146868524 --653549685 --679625273 --715887503 --384360661 --858822682 --595425407 --497701587 --66353411 --157645458 --954620052 --213277448 --191484827 --377774148 --985684366 --475881447 --94338171 --27803510 --226504633 --12563481 --11254160 --751150255 --908734360 --224467149 --393223885 --610303769 --155390777 --651741338 --198515568 --416548452 --305776074 --478369165 --505097629 --124048774 --558835714 --213491356 --680419746 --486290989 --100047800 --476858772 --31531189 --206366511 --949547276 --604966163 --166918590 --421721188 --850656448 --39626050 --926553152 --451546609 --122827013 --852033053 --316401392 --151083688 --814413002 --680011772 --9229334 --102431654 --484508164 --407495131 --816959186 --856682928 --292595650 --637924801 --237424602 --679379870 --723286651 --680172613 --871185841 --261656377 --940641955 --151197590 --318009454 --565713568 --361014143 --753803582 --79400708 --755781520 --225323001 --904359781 --843811203 --662333111 --27601353 --215424637 --466929559 --426287117 --830134753 --277043398 --508858659 --175991078 --408186263 --282353412 --494035426 --746450980 --574648279 --963915862 --992105524 --669795172 --641651739 --582771651 --9714226 --185166977 --995965130 --455047791 --226265371 --526784142 --423774009 --743218577 --562266734 --175853541 --188079251 --138369462 --184081858 --213933571 --852759751 --275750036 --980323695 --319415502 --361535199 --996743276 --912379578 --426889355 --434522090 --717461964 --818369813 --315368381 --104903631 --51441931 --855702160 --137823330 --628178872 --280473523 --372623642 --441705917 --982314842 --371957728 --189405792 --853342825 --339719012 --206219232 --804839447 --870578764 --892703878 --993587412 --823650909 --297588259 --774696708 --991349820 --64095424 --980673926 --749950438 --994983228 --218855732 --729944759 --524980343 --76447303 --245854369 --420352337 --936876049 --501596732 --941729066 --643472892 --712551422 --416029586 --452499987 --792857673 --755177305 --712442747 --18124480 --736313903 --931804396 --119800999 --501851912 --879885254 --108265090 --417339735 --357769112 --960758566 --9199445 --380153326 --325717323 --980486280 --695252006 --870884722 --189747673 --123068200 --592406657 --269039179 --933007742 --537001507 --976183532 --270168063 --632511903 --588722205 --961699353 --247907554 --397334336 --827786903 --499797875 --815805392 --85902477 --113816194 --647830622 --10914724 --59960178 --311977243 --446116080 --698201195 --644816807 --293433557 --294670222 --509932207 --428232954 --525256574 --444671762 --546797240 --250851837 --111227580 --539975003 --500900973 --22868328 --18210659 --7374537 --547601706 --539263314 --572511806 --318113467 --654712759 --459639526 --761276682 --820606034 --30239833 --665430652 --860401034 --602144857 --936406199 --588784074 --135476125 --48682350 --143626212 --515072546 --417645809 --785107844 --967462032 --974904919 --875440562 --526883330 --902033600 --558269105 --195039271 --611407732 --619838241 --791151788 --433150428 --952186822 --310414021 --227076602 --541285464 --457195696 --220556478 --622789420 --630398337 --462390765 --583427107 --41849836 --572403663 --150939071 --684570746 --619558794 --712544360 --91858387 --325117065 --426624466 --263583697 --133670966 --789370555 --311795107 --465724461 --618313100 --399524008 --698425497 --383827162 --423869113 --291409376 --59712089 --357917497 --103538016 --308482423 --728277492 --17754503 --627534118 --799909563 --741189269 --263914156 --919276718 --131514585 --402325756 --94153602 --542312895 --760218601 --40993802 --293167137 --279132104 --985916570 --972477470 --659007708 --872207692 --380511785 --953387518 --63931442 --639797455 --979339787 --355659112 --617945002 --107923509 --28322382 --277660947 --714868770 --862101815 --126606145 --501531100 --999098464 --824265607 --603639864 --404607590 --132892915 --303362775 --929431480 --843168436 --542288247 --479362917 --285330469 --127875290 --377703170 --197154775 --944713197 --149841389 --35575243 --563372419 --483736969 --493535633 --637192091 --840769820 --803482785 --465899676 --570163779 --745155166 --923772280 --643385698 --942637665 --983315281 --908394811 --94447519 --694519010 --850360942 --515661324 --87098528 --246712889 --612114765 --390284779 --177167887 --481895134 --349816811 --127096500 --112827943 --588110480 --598287026 --527700653 --894412770 --716706906 --413785147 --991850181 --56176007 --459441623 --439830537 --913830056 --816578938 --501511056 --748641808 --48053394 --724596932 --623974459 --428030679 --238768957 --23480842 --198883462 --400619395 --215626050 --605971247 --673530942 --513330079 --338193222 --15363554 --227091149 --239398148 --364622564 --577473077 --24057909 --538442272 --440453262 --419729328 --478563881 --815770793 --817434850 --102228279 --847208379 --521038504 --470444144 --154680495 --771875717 --140810921 --514213055 --833396120 --5772590 --797408722 --297738069 --357940031 --638524416 --465592278 --632754677 --285604825 --799998142 --929969178 --868599367 --473176243 --630004455 --225150439 --942357589 --393870177 --846672678 --182950038 --587937822 --819675915 --305041867 --484215478 --392216498 --557073768 --207535116 --383969625 --208672786 --298950949 --103605432 --692843003 --460459900 --820189721 --60229424 --314824603 --204333470 --751643665 --123518391 --963150508 --109703412 --639389823 --417469492 --52855991 --985457628 --265406868 --336396396 --780713783 --685565572 --3539706 --188753900 --219771112 --489724921 --913211866 --644070468 --419196437 --612723790 --93000399 --532262885 --810332184 --700847840 --393517545 --60903532 --418751805 --175011384 --526701057 --868244456 --913446387 --78547026 --897526263 --122412520 --30669945 --135632576 --526141955 --852367638 --480637175 --900152688 --182599002 --129890218 --574410556 --625693323 --561789260 --77454544 --129382154 --569311299 --520075637 --544358390 --361354625 --965120518 --621278920 --486569386 --118851857 --469181835 --884153737 --782736857 --316793707 --402451941 --522624959 --871221873 --917794378 --79721557 --762687794 --210143513 --87749030 --274210640 --1113286 --460819635 --431693523 --988592151 --632191782 --975738120 --149049492 --274238293 --446341813 --511472823 --79388621 --631533332 --327341615 --675892011 --202327748 --146934297 --429858029 --838600741 --156658704 --509446388 --40715462 --84494753 --861148727 --110771971 --729298154 --224714987 --764335402 --5509414 --951028278 --671521128 --992673511 --946059129 --584193907 --394387211 --816571036 --763350039 --268429687 --667333418 --325145864 --526169540 --154787560 --937175556 --791893786 --41325593 --955359721 --96246615 --280911780 --678422978 --569700839 --234088715 --890873650 --22622946 --781460604 --325707132 --489787573 --488549945 --799972934 --301273557 --388276516 --380104324 --378983219 --765680207 --409043464 --805847723 --814110532 --654220556 --277348341 --376958730 --449626202 --668770022 --268510200 --19745376 --556896265 --136814741 --817521522 --35981208 --126841978 --655305590 --766786834 --182348928 --426054071 --497375132 --287691723 --908632906 --167177280 --597783121 --147500540 --862444568 --33311431 --297215943 --630463796 --334777687 --447515466 --97091815 --383648061 --113689386 --688976979 --451753679 --613035033 --925058918 --307100832 --599166108 --942419477 --475157399 --40262401 --70109842 --89028763 --43347336 --537736024 --87680325 --720496592 --222283797 --197009227 --965203903 --380795904 --240459265 --162612942 --109945956 --685610704 --299493329 --177016961 --568282168 --413819895 --106119399 --352713562 --68748209 --317106281 --675223643 --352401785 --659806750 --716796921 --643054516 --777020155 --684223078 --613361908 --616084802 --693330907 --386982799 --560389132 --742393722 --444202756 --503560361 --546428393 --930614888 --563699722 --227463399 --516062048 --929597180 --449201919 --629242957 --175689237 --601191405 --136446011 --754171385 --445806583 --287149296 --118435099 --429992879 --667348175 --824392508 --452571699 --985302421 --466136839 --968130501 --390408496 --753078604 --553733317 --769514570 --608695390 --687473327 --194525200 --766117505 --865260308 --695937203 --999007435 --26659049 --208443386 --10784564 --651174804 --465648379 --656065533 --951585770 --749877626 --159902885 --518083053 --885053572 --663437872 --826523939 --805999592 --25745526 --41584335 --906952480 --702167378 --59584154 --53882571 --552884911 --937853267 --429484914 --391960616 --408351966 --103669416 --53457744 --489095040 --116861366 --600687361 --50885794 --454798817 --145825588 --812141857 --751543632 --783749005 --745960271 --78042848 --739694164 --589718738 --354378106 --413682754 --684767219 --326011771 --196849283 --904276265 --88688058 --768151770 --772206588 --875936962 --528175336 --835185454 --449447605 --118750253 --983185489 --588072976 --535313335 --59926538 --883167282 --8344482 --666002541 --887666809 --371837577 --198824521 --395271522 --638292111 --42337895 --292505148 --505267434 --139431117 --525288647 --783875020 --548396435 --581349842 --862923960 --326779578 --292535125 --669125070 --94215089 --835047430 --856270325 --135853353 --741484133 --112168212 --143632113 --633560326 --322921998 --411048055 --586635174 --487100252 --736387419 --456091029 --306415908 --472100956 --915047423 --781352416 --446870324 --721836223 --46682192 --536500621 --506532670 --468559414 --794738573 --795571217 --382255330 --881224937 --609143936 --677945660 --56177456 --657606258 --853945810 --989157008 --101421099 --207188448 --639491190 --70669492 --534895870 --347040665 --488213587 --451579523 --275667257 --257514592 --415904818 --854549872 --879509934 --552226482 --452416814 --404342795 --105766386 --142499195 --373162803 --155698597 --29884863 --429576627 --198588347 --27221319 --988936621 --225545473 --706667824 --884473945 --42139709 --506979720 --357053187 --604785739 --487294551 --46161733 --967745371 --549623116 --932617501 --591432866 --515860601 --284054877 --795498737 --137761742 --204689293 --786306795 --440571130 --570660994 --210354848 --903437546 --852536361 --705769285 --509961248 --633252118 --299615437 --625701825 --490934511 --904661823 --837025550 --909464454 --507094051 --158133871 --479545884 --874072046 --12966632 --116676971 --380677502 --434201198 --652175583 --423483883 --667812419 --616274932 --684930250 --712599078 --338575462 --942814949 --997215349 --511512606 --174158935 --79857879 --389687136 --420480319 --187142784 --650046460 --341012020 --223868683 --147983594 --150864692 --920281566 --11948706 --774446954 --857485624 --869036117 --260620446 --672416125 --892567212 --469149277 --140304771 --345618265 --303557789 --65430798 --56992016 --492246456 --333502427 --99682701 --906143174 --621861989 --390235467 --308858127 --199489195 --146449282 --203131068 --174225756 --879161533 --682744754 --797092257 --974850170 --374088827 --415026600 --326188023 --824208421 --117302490 --804753581 --942218615 --634587567 --687901662 --173121525 --676058209 --721073245 --571003536 --859314005 --897994216 --650094127 --480668159 --671557350 --616043650 --401448889 --125713013 --345247535 --505730221 --306242236 --171527688 --41272672 --281146656 --842852199 --665075385 --697220720 --601344687 --997237390 --596257373 --475417567 --26382310 --524032073 --226688799 --871260988 --38907053 --152279007 --575357047 --927651033 --396702384 --811877905 --227139305 --74329775 --956211522 --452919372 --611237831 --971567542 --428005216 --117579382 --354772392 --69677666 --808767778 --709364065 --718664970 --509235103 --685225004 --608871222 --183808416 --959088958 --899592774 --795300592 --118118159 --527639521 --5273508 --62705168 --386596273 --841299514 --839801920 --39687458 --275931485 --296568002 --831021671 --678451270 --901594876 --422321231 --806860615 --186260145 --354059546 --9556856 --698298710 --987667975 --235183066 --596986796 --290330555 --110168988 --158488891 --467271763 --95869677 --520972329 --680977888 --153569705 --140591044 --891013312 --343814104 --246894784 --801484980 --997533057 --934364063 --36113416 --57862227 --339821374 --962909383 --197165028 --986085342 --732817363 --889394632 --506310447 --329905082 --687744347 --699107309 --521606007 --7363992 --603754585 --901622252 --58818242 --615536637 --885318222 --339391038 --526090988 --339166587 --414315200 --91622197 --172735034 --444843468 --876754000 --955550873 --606083003 --33660940 --663696748 --748727549 --93438011 --755074730 --826811520 --427656243 --144073369 --312629154 --250822701 --135253602 --861786204 --105788665 --727268817 --449795587 --108591318 --846514592 --373207108 --798512830 --864694394 --153870615 --620391056 --189920704 --299184252 --709659686 --860657554 --238669841 --378857419 --253319000 --248056860 --224764987 --85849331 --617903569 --698508872 --511949748 --656427548 --224829363 --386188378 --304921249 --341658609 --665374032 --693628575 --999242803 --258247168 --490113772 --260893125 --170770613 --392156098 --577930052 --232680588 --535854763 --43703548 --934952055 --406631719 --453214586 --133916167 --25636503 --786816533 --17839684 --682911511 --968693231 --663682649 --269626976 --670797801 --562410552 --434009870 --991814939 --418074294 --954633809 --875599969 --288318545 --254091359 --21728894 --857136139 --914297982 --663324204 --386037198 --543653080 --945652231 --105928301 --714911289 --175367604 --295896059 --631738698 --583727588 --688110379 --334014426 --481795514 --315804453 --113253507 --578165717 --127776002 --793726574 --780465203 --309641318 --767378198 --941245596 --820845922 --102875762 --434607540 --32473036 --339291082 --712309824 --280733456 --467397413 --141113910 --871599013 --17564024 --128407583 --632591587 --549787207 --557286058 --830814110 --418370604 --904131799 --595587013 --525941523 --119362575 --962642256 --79812147 --202644247 --869423522 --968132536 --996999203 --339315065 --831447565 --171657032 --15926067 --669121251 --95534557 --504650732 --343355070 --75714418 --836811947 --298563013 --152088206 --174000753 --420988468 --360605297 --753079946 --246882292 --590459139 --304885226 --786919185 --522760571 --381458350 --921015000 --507883963 --819067949 --633507678 --227164045 --226394647 --938099595 --571287604 --710926546 --223451805 --406708963 --569456295 --387224828 --563410424 --778485077 --422891473 --418299456 --250734082 --332412343 --652423337 --341357335 --351069472 --964993059 --613300868 --349920180 --37366472 --930822050 --283769816 --423324775 --583956696 --240004284 --902939488 --643971693 --331700381 --810137036 --852147392 --692176363 --963562376 --33193972 --237729274 --561466390 --66867051 --308349318 --800313282 --204653796 --573999716 --471963160 --927731093 --907115649 --243773097 --654721905 --896023443 --451246665 --494709872 --750786249 --773777060 --304049977 --95486657 --245993422 --954122827 --419049895 --840237400 --501162558 --12831612 --196495278 --357565017 --384421372 --886108813 --789164289 --473060758 --384113349 --98059525 --25740512 --280573034 --495099840 --400265976 --777453702 --276809105 --251707772 --648290502 --497609223 --880561539 --624355366 --140130012 --415411198 --234882433 --167333722 --89059643 --660667918 --390274588 --194173941 --386183328 --827175941 --301344811 --112217380 --573448497 --391109149 --36796629 --30778959 --514889054 --203250499 --802930254 --498206117 --370446086 --104151059 --956938735 --402268467 --680776960 --619318963 --421108718 --306482107 --137027690 --987011225 --510143393 --105361258 --893686396 --20194096 --882560225 --715241566 --46976257 --641662746 --432850821 --119894495 --565339468 --322037633 --497998620 --431750074 --483520342 --542652387 --587908996 --806914036 --488362407 --189419397 --598706713 --541146439 --952931571 --131781545 --598329253 --126886708 --649724484 --167391182 --719804764 --326497981 --825523562 --474584278 --51482388 --969377092 --190345716 --90104875 --332129451 --625173331 --710675008 --853174432 --564059295 --84269617 --901099764 --894837876 --968461863 --348138703 --464143205 --811715969 --334236896 --983933795 --310433866 --732883686 --60903212 --861288538 --528652453 --460885767 --452993346 --31108246 --825787944 --935993297 --572476366 --319521216 --381981825 --683061573 --376533334 --325877575 --607754922 --691507454 --922751550 --348553391 --220654389 --537265475 --483297705 --208219996 --104015230 --145039477 --468313035 --964293251 --387832158 --91989171 --48522096 --788692165 --718123810 --744280112 --889853083 --734375126 --379321050 --752292826 --895734573 --968564758 --733598687 --69118319 --718591094 --659836074 --944279789 --851756900 --207439953 --571611728 --939887418 --694502443 --935722007 --702313146 --65680131 --308116155 --799541451 --76793891 --298911918 --320332981 --487743394 --476277758 --78861384 --519024129 --769052213 --212755296 --615883497 --649158064 --508524801 --694703955 --410506248 --504563328 --385558338 --689571836 --565901714 --60887655 --553828450 --413930759 --550230606 --720340449 --227382424 --130084409 --857106224 --498170893 --989583599 --860961049 --883367399 --474011362 --198741764 --344028944 --294130475 --831714515 --752841622 --701660023 --150423289 --477578915 --234429493 --469657 --169536124 --26540834 --172286264 --554888600 --230527922 --666232328 --791026867 --973158966 --25942183 --608866650 --537047069 --954313677 --565600588 --827712982 --776053252 --771103226 --431785824 --519263451 --358726488 --440752175 --796816174 --94847987 --587041802 --855972298 --693986395 --154936746 --632553398 --239878032 --420727407 --515073198 --783354750 --922375030 --977327657 --737819142 --686771756 --235734985 --89817220 --368801267 --374154403 --765343732 --80740075 --14668677 --25583841 --865293398 --515965974 --472308987 --647345896 --616941142 --468349375 --329027293 --957837620 --21784061 --580098918 --903770632 --446688853 --840988395 --383652040 --775367896 --431767980 --681724849 --724091333 --976133653 --604869038 --996562540 --643212230 --514973331 --21915248 --74910515 --706591596 --540669210 --444241859 --685430141 --583002586 --378046582 --461966323 --276617433 --355386698 --585931846 --185090912 --689895083 --740510074 --564774046 --12098806 --861982823 --238114239 --434455209 --313052174 --163497815 --192213981 --158625910 --127482800 --656110360 --869724755 --259863543 --100197348 --813404003 --127301148 --252583885 --822893940 --410999684 --71130510 --55533754 --536817373 --135038195 --105763971 --231983461 --336002727 --681017178 --629167165 --827761849 --484288193 --349088387 --625536119 --976977290 --360997463 --459580343 --33011242 --197473189 --246059830 --733576754 --823187239 --437312335 --415228438 --610758297 --436285511 --653380910 --24929395 --694725000 --962656686 --598150105 --846950886 --106683180 --509602106 --902526364 --104351451 --712226206 --121173347 --696848120 --309557496 --894663308 --567963813 --366163318 --453372107 --109981881 --307511221 --220095736 --660332440 --70178391 --308483025 --821505187 --799365870 --668637120 --705699511 --915904981 --418161276 --136693286 --439052410 --957344580 --733414194 --246146246 --481911930 --386948829 --893197779 --464732206 --164761155 --908104688 --667197055 --978084098 --372634907 --772805312 --819133825 --933246278 --663784614 --332255358 --133022781 --279604279 --693670379 --129475688 --132162492 --259841047 --902460290 --315255409 --618826554 --769125413 --87831775 --306675803 --321867662 --123690811 --636216992 --820969333 --504900837 --733329363 --683502639 --670067726 --64888218 --822045052 --571320806 --895235527 --495519693 --239205959 --295604955 --286572559 --702566835 --61736421 --826952644 --443992448 --749043770 --261220759 --915833540 --464425365 --301405222 --31692404 --77943033 --256849387 --535040255 --439951056 --508987534 --992263974 --229011338 --892985623 --983042282 --955918525 --485983732 --458507928 --6860860 --362722060 --699855193 --983501744 --626336465 --885709249 --491601901 --643461630 --967160097 --680168900 --697970318 --413286193 --887123161 --539438703 --166448934 --226864676 --342233776 --455697569 --800149903 --69490934 --514471602 --318460003 --51287263 --387605753 --222550010 --267689710 --281804102 --231638458 --718028333 --42864089 --688683907 --711029528 --553019673 --261142540 --266273912 --968623514 --556932871 --248669526 --581405687 --597653471 --288965315 --886618648 --799870127 --609529217 --519295905 --218524653 --716725647 --422290970 --105937802 --674756459 --348973173 --253262633 --125134758 --52416775 --920843215 --646204978 --358335329 --862003080 --988983281 --40447998 --935639363 --783975239 --548974207 --268524515 --356879847 --357537072 --618684344 --326282504 --390524596 --988697358 --380838837 --978501092 --468971836 --404598772 --469980998 --680761071 --932137234 --924054168 --446616989 --819222275 --670347208 --232796358 --806570149 --342055415 --445928796 --195499741 --134064894 --63642093 --955812347 --573404321 --128752328 --605294849 --51452819 --776162955 --576728845 --659011847 --801873965 --71199290 --501078651 --110427007 --671294083 --219709721 --251208487 --544677167 --473653207 --434726528 --229058959 --797275311 --916865058 --399296830 --819460335 --857065506 --148090106 --176354599 --872630358 --789003900 --482104162 --39246760 --475058276 --236644091 --874073884 --611188096 --806446187 --982082198 --429532021 --800468472 --364794948 --924320355 --222232562 --958861660 --168707187 --794170307 --850842034 --378522771 --546420932 --302304986 --933773812 --992170995 --113300895 --337113416 --152189777 --282801877 --450406494 --355657383 --333193809 --436379632 --469097763 --520104870 --907216988 --234549534 --740212818 --217527832 --331943233 --723041861 --662393732 --172669729 --455635012 --834827491 --788223298 --982837702 --977039496 --126014375 --655332034 --542882387 --412199009 --862382139 --401073125 --146491809 --712524664 --991136816 --911821701 --809540575 --845360058 --566797864 --231105890 --245615795 --727553293 --465770697 --445555744 --71616677 --572145433 --581467144 --48708691 --47159262 --249377693 --869125950 --257649379 --474106448 --762793392 --440887105 --184510442 --876606262 --867730003 --176469002 --177221268 --607354455 --655954268 --829318153 --206193065 --407535245 --520773329 --889726544 --474450915 --905235732 --943987841 --714549289 --907283133 --471361848 --517844704 --7229558 --814563521 --126868327 --361044116 --799611172 --666028002 --786977917 --531032232 --130420792 --397094341 --278121354 --562224929 --629662768 --244440256 --350593207 --741036824 --170846997 --410541736 --645078602 --757608641 --178144111 --910562535 --802198186 --668481093 --474156001 --163393997 --964684663 --330145281 --982785872 --921087303 --855901740 --994136900 --194134558 --449130184 --793972646 --777765665 --139093450 --977852419 --214473091 --948882184 --693500798 --272167687 --748615106 --261692493 --196470242 --748282387 --934109501 --432521102 --831416598 --272435975 --681554419 --295186192 --949136785 --173448174 --123798438 --341717460 --869140089 --524904444 --800738315 --33787116 --735242566 --177187558 --140247719 --573588911 --699971125 --758417088 --15298813 --132691373 --569905922 --885955329 --28717315 --413580704 --603314236 --102059241 --21409706 --616173362 --816832055 --930161212 --52978009 --697291849 --411232193 --6839980 --237783323 --569341435 --586248485 --124422133 --137991045 --517684944 --769429363 --865297895 --938654397 --879364508 --625989292 --935789084 --33788824 --671891190 --128484357 --692913781 --194709382 --238648486 --460933035 --230974603 --276704638 --853066681 --221716997 --800381844 --308645142 --926888984 --73513699 --95178608 --353438111 --4216058 --921775817 --287110881 --5508843 --680840967 --407075160 --697995757 --466854574 --565994961 --557431252 --713682733 --314740587 --655158111 --788095474 --490724074 --474204381 --10890562 --266008187 --212924851 --292382964 --730257654 --952893563 --368252638 --579453666 --585859596 --38925309 --404743718 --499964972 --837962465 --815277994 --433885602 --389804360 --561190564 --42173501 --308219414 --537140218 --462712829 --37037667 --966066988 --950664483 --905148842 --988850932 --279156516 --601856003 --929466554 --420458017 --607320762 --642783620 --665068833 --661176260 --541696279 --985276159 --199963973 --553581215 --16806198 --25269308 --832195663 --668687977 --566606571 --76631578 --628006290 --251948456 --119154766 --515361715 --850074807 --261562053 --496683451 --28390057 --58801547 --821616777 --339209054 --574483589 --239627282 --3186127 --7343530 --416669996 --138962623 --367390061 --7398944 --737443684 --822937405 --962262756 --397260178 --148171998 --340226657 --713229574 --584809874 --462019978 --13562529 --306605378 --723747485 --723525940 --568353599 --40046756 --325238163 --330331825 --598359295 --571115055 --737065933 --632671901 --691842437 --450563864 --134121126 --646691883 --619527238 --638241427 --397678576 --853589836 --247011974 --393351193 --419698714 --249724577 --430583292 --580388154 --671494128 --190530209 --925364418 --282313736 --388955725 --765636954 --759648443 --483875147 --880046256 --513956254 --167354111 --5984665 --493151668 --821828600 --644088046 --994062362 --330566372 --512843410 --641596291 --574032148 --445315894 --657618350 --460904568 --495128437 --932839699 --525379067 --694382189 --458781873 --668655927 --615287349 --142122739 --855544230 --429318263 --876726020 --973891485 --208449384 --46271231 --10143680 --980972430 --602480213 --425674158 --240011815 --316139990 --414014903 --539858191 --69014959 --562544368 --150392888 --807547039 --165450335 --77329126 --998147331 --353038023 --340410321 --437912908 --872696953 --217813779 --78268029 --621577254 --604443959 --151932800 --95154672 --337730367 --79942327 --973010374 --918139896 --952633191 --543203892 --259292970 --865198379 --797247719 --180394081 --946087522 --251376820 --258251100 --544447251 --325917722 --583577002 --660954274 --299758964 --443079103 --683757165 --764385407 --636208539 --580031337 --224901750 --720858560 --480186504 --747978025 --522668286 --412394310 --250210920 --374496456 --176858016 --441036726 --503327070 --337877195 --498906233 --912290742 --140702573 --535018020 --484139096 --175362387 --367373573 --76097489 --243145871 --145729309 --330834969 --156341872 --407369184 --533307217 --632070304 --389969836 --317288116 --646819929 --116676935 --588363297 --334707708 --413539267 --263413134 --946538495 --909231476 --184210746 --410750649 --135016955 --652501108 --314433621 --70544920 --70846280 --65035828 --796267282 --317455209 --216889823 --590528434 --85437588 --478525352 --415203415 --617967743 --749219876 --635495531 --945766890 --659316001 --376102717 --22217454 --532485172 --460559268 --928645483 --13342037 --235207783 --828039271 --957597238 --145130614 --849279659 --982308319 --83840441 --652882845 --422185296 --549247071 --719830587 --65585608 --536707528 --466455550 --472234468 --229845296 --542874118 --71203675 --597061152 --565213942 --123697064 --241811612 --337956726 --641981476 --928625037 --100114919 --640628104 --373890071 --589706467 --924581711 --162041150 --113911514 --871852130 --526487958 --828738060 --508032174 --241304217 --701572431 --228203459 --924578698 --130741785 --719379132 --895521415 --470839822 --351566644 --941159751 --975168803 --1153865 --201557678 --223306003 --885944435 --656118865 --81318415 --521482850 --438946313 --751405503 --442167915 --495316964 --441158328 --860981444 --331747552 --495405962 --775714135 --252099361 --282794030 --996746495 --230334363 --524431327 --693799625 --954660925 --397440772 --296864289 --557775823 --112427727 --743078556 --911047962 --863619267 --633451677 --469753474 --438771952 --871497041 --197945273 --15883361 --127737227 --343411897 --121449515 --164895767 --927030936 --85242263 --130259566 --715941311 --364022550 --934859293 --253581617 --163428043 --383644390 --493466562 --615848216 --468572332 --644208221 --169239691 --66588525 --856391942 --893637624 --56506076 --452072873 --476391313 --217352194 --900814331 --286390777 --316781989 --709152140 --734625596 --295091110 --965319905 --819810781 --503721089 --919568207 --993288729 --461324700 --722148059 --643088883 --388238166 --33252300 --326860620 --150890282 --933609788 --158142882 --857102824 --171909240 --683454139 --774186859 --2216320 --977164199 --548099405 --711772447 --420629397 --398951516 --204384566 --357092188 --974438352 --92246084 --617669566 --881811815 --952699938 --504177795 --147353150 --225616280 --732697365 --845842636 --527859865 --782582259 --142996214 --585857924 --253416259 --639634094 --316822207 --542293930 --650807294 --83956262 --980867701 --916051471 --8899058 --431775051 --315304815 --108661993 --439970526 --114399601 --602521658 --361082325 --436983448 --255259625 --120240775 --640247699 --954347215 --429333929 --799166639 --487583833 --844620911 --976757096 --616869319 --120981215 --147120437 --775337858 --667414737 --381362560 --257838436 --823608250 --695579237 --307602869 --295934341 --914562501 --452700589 --642008239 --920169943 --307670218 --238009702 --755657504 --742509207 --800783387 --755729012 --49157915 --674702878 --664962643 --824586327 --995769643 --777982223 --108761072 --862543566 --900211269 --563696871 --43794154 --258284075 --814897530 --920625853 --789158206 --401341627 --638268491 --443850382 --207895812 --945339957 --114418345 --971343613 --306252630 --968758432 --823246040 --686289519 --660636417 --440236886 --842909446 --798046121 --534682690 --730190665 --903874768 --924545218 --159720396 --556889134 --995892137 --366967557 --690253818 --719632025 --398958037 --42503585 --903436057 --242261070 --900721178 --71908678 --697161535 --944410565 --205863084 --884058689 --238785700 --116798192 --331015471 --265548306 --348871471 --522104540 --811274578 --615279948 --576269979 --725092571 --743925409 --404200420 --376717529 --202256048 --942840915 --189903091 --388510903 --496789088 --504951564 --222455270 --374457969 --957915180 --354123802 --91323283 --429994368 --675599271 --716208984 --234750501 --702258827 --972091057 --52190937 --79835966 --633991763 --389936202 --570970122 --387797799 --773973407 --578476044 --836705421 --455434337 --659142386 --903232269 --862087170 --67371552 --58762552 --713836290 --938764105 --593674967 --904419424 --96551000 --322677414 --117579543 --533656062 --873272159 --315253025 --686353907 --954191747 --568480626 --280273391 --763902403 --527237110 --278974991 --900841200 --907942174 --977721821 --112240159 --15485972 --521740827 --706011419 --196741770 --805716812 --479072335 --927132550 --335212512 --596142468 --557359442 --237678457 --891414767 --881801505 --45000086 --807368883 --566639131 --483081660 --511378168 --407898961 --949467671 --400031414 --544463472 --165601183 --12933777 --880610474 --142156689 --74237239 --816317512 --876177346 --973952289 --215669290 --295443717 --474945645 --237538570 --100810317 --713618160 --628933436 --897160168 --62797402 --364027190 --994314547 --52103561 --166618441 --907760636 --59140122 --538881807 --892078180 --796158309 --979304684 --65127217 --587651188 --350401621 --195335937 --186452526 --187845469 --62855044 --727211885 --114427348 --585174374 --143047549 --840504689 --864210051 --199474192 --844135244 --503640342 --125145934 --909095933 --694776256 --835646609 --425697147 --824267615 --339092195 --306788425 --567592237 --35489619 --614979449 --923957333 --934278004 --581287018 --568698056 --209710597 --633736905 --59576680 --777968713 --169825152 --470557888 --867928242 --927477636 --604264404 --496921417 --315539095 --768884412 --372274049 --57554226 --271834381 --357788388 --902704043 --243345719 --320337586 --743111312 --71470911 --80788925 --639321399 --350691943 --765803899 --510338012 --325132918 --751346909 --674163246 --453007834 --271147408 --960868859 --612574765 --862352823 --771078219 --977897408 --713258559 --891963065 --220256142 --17116105 --204007261 --841078180 --363912471 --112186897 --690307891 --490969532 --973904159 --580623867 --989430625 --725426978 --396141125 --280073248 --52500366 --384039857 --855881180 --784855231 --835697040 --849752401 --62664913 --381432241 --710373063 --554830496 --977684072 --356124652 --770384772 --925912858 --946194642 --696791095 --499120825 --760645451 --549754298 --225274804 --771868296 --347623452 --785752488 --754924517 --593741767 --198401586 --283379041 --497088363 --665521279 --79060594 --967752574 --639259394 --969804402 --821518538 --682821404 --932936174 --85409678 --110420863 --180383378 --808827688 --944000050 --856641810 --9919110 --500637315 --345623018 --690592334 --969168656 --38419697 --245755511 --426175461 --7207174 --693143926 --104946711 --269344842 --266154744 --173380698 --317315874 --333955130 --382823059 --747066000 --350023739 --25443074 --127115377 --508738073 --826522631 --353422038 --899815657 --598418726 --591330644 --7672189 --645646161 --46024003 --876659593 --683508298 --490981580 --950014924 --175548664 --185743481 --757956663 --67420236 --557069247 --842846950 --584258466 --638652300 --366418795 --174275389 --165365192 --445937693 --412266870 --617245951 --11602421 --503277153 --381938847 --561641831 --307692092 --551634123 --663123619 --936194132 --141804455 --833401098 --184634343 --375380193 --171159910 --53599906 --376297408 --161457256 --951495609 --526631094 --893735704 --698667018 --755923776 --966187878 --572243839 --327057387 --317033306 --687447110 --591254423 --267923483 --264794279 --373626994 --156503429 --997963349 --556584137 --116684870 --958267048 --501118037 --977324460 --405243883 --393776023 --614985450 --255166895 --987079135 --157140388 --361118419 --870983599 --798815044 --676883406 --840698046 --911351821 --889323591 --478364133 --161489849 --388682777 --209458162 --430444622 --703259383 --291261569 --745505547 --761649926 --772944975 --670948314 --829653092 --407446692 --167037606 --194024765 --515177123 --431083109 --819595234 --281337081 --195446041 --330634527 --499407261 --499527024 --402560503 --819059945 --123945534 --383567446 --330646269 --12427871 --237794078 --376930990 --475936386 --976993614 --219119066 --407135140 --109061372 --621711596 --362130430 --493656875 --730083250 --498958643 --827431203 --862635390 --462849189 --877386466 --883981924 --454765116 --533520798 --489973613 --754846345 --314636517 --516684813 --664411681 --912941105 --715209986 --609572836 --399852716 --165975154 --545822116 --526739749 --178843602 --251659158 --695204046 --856905797 --236957274 --792121924 --439545290 --958594501 --762714671 --879777945 --800029286 --278790311 --421843080 --922961651 --833349493 --955774980 --329690861 --780285964 --380128961 --843150666 --753388227 --492035347 --745558710 --700135365 --151153949 --750045932 --870269021 --978163163 --190785655 --296641958 --7479556 --122194766 --108567053 --28411529 --983751064 --740261663 --843477851 --292482264 --938961985 --457360944 --203371626 --631861245 --88195910 --946266847 --704732537 --648877851 --774140618 --862482927 --244631100 --777969703 --955420121 --8747384 --479219137 --187671770 --142399658 --320824512 --946451086 --914673648 --815466872 --997032681 --98808764 --260795013 --756664746 --106757450 --253857092 --4839982 --549867036 --725313672 --689625233 --253756695 --790675274 --84931866 --795681979 --137489517 --218138162 --785998114 --333055240 --41031822 --207503417 --965011670 --731282253 --551872834 --754466820 --788480814 --937477962 --473372808 --768123111 --997672310 --845757629 --946543137 --811598311 --161615901 --69843573 --871133385 --733007073 --149816604 --743398451 --756896110 --532198844 --655299750 --981836795 --662373512 --221478345 --57568543 --901329112 --942754363 --969571044 --241719889 --925095294 --532124103 --485409664 --663191370 --439515129 --818669961 --781968153 --968061599 --116558760 --452043339 --741617235 --143686248 --785260302 --119808785 --16635337 --757862668 --395226995 --298875873 --824837753 --87280938 --561114871 --214716218 --63362465 --148504282 --875473149 --677738531 --212953592 --935081852 --941834259 --89378812 --297251810 --386520553 --742629911 --530070598 --262862756 --257650094 --914584851 --950178681 --499739638 --142474863 --453146355 --576352940 --318693427 --966378119 --102559895 --178901780 --123491464 --560334350 --923904394 --10498963 --917029202 --329986830 --244943453 --764127190 --889082537 --426223360 --136905403 --442716326 --743191961 --363872908 --101447558 --420156389 --734698570 --581677282 --953952595 --500153983 --56242370 --476773726 --827197930 --753844703 --387511962 --186620027 --838913085 --132459451 --188277570 --280621303 --266410914 --325664215 --531345480 --18704614 --323844511 --330532039 --317884301 --237376289 --908856255 --935539972 --45830551 --790220350 --624454591 --463059085 --730843370 --205766080 --962299533 --408517623 --160420696 --823538738 --797555079 --619712301 --404739494 --955981865 --637067244 --664916342 --583060452 --316109563 --9496616 --392878966 --188032304 --41185843 --882972009 --585624519 --689484274 --526260399 --516334899 --129157973 --108240736 --591408396 --986978853 --785113708 --833658958 --950531164 --233880487 --607021802 --566649056 --708010514 --699063454 --289072291 --903978169 --829508783 --61859721 --414557118 --164578163 --634152737 --865030466 --850823365 --174684045 --390773361 --824918740 --241502797 --765294184 --704148567 --455537478 --432330400 --692157707 --499126484 --549937974 --204951841 --614031748 --244853751 --973258760 --234533615 --568658807 --876066520 --416729763 --122886176 --571195752 --843526844 --902830013 --809712583 --843587336 --709340310 --218468394 --417714975 --504070488 --681715049 --294851417 --673016188 --125153055 --640187208 --877604083 --994976006 --7640501 --192843817 --873510731 --769775434 --870221514 --732118176 --84729826 --236407344 --167616494 --529703982 --888267782 --243299805 --626123099 --643677326 --272774098 --992929841 --777768717 --41755113 --907677706 --727652639 --427190962 --350018244 --450279780 --532953822 --853108584 --814314570 --116194624 --757026796 --403110143 --489546518 --706437894 --414827273 --807464172 --474221069 --408016562 --467862119 --931192854 --115918026 --603561666 --908051237 --836504628 --49925844 --2367019 --214374909 --415420478 --674846093 --408030971 --574518041 --324249598 --937966285 --422992795 --250378156 --450510635 --298513038 --244923934 --275968258 --821909061 --689672959 --390367507 --769901468 --646600820 --834423923 --448162393 --534923512 --953178108 --41390533 --742862933 --575223466 --24011056 --131737190 --407027914 --218332559 --936383525 --431551273 --379463895 --186345222 --107105044 --471006391 --658107674 --144053612 --373421032 --115817137 --815514789 --198881944 --417316932 --966236319 --522478378 --394283658 --998232390 --482170661 --352800755 --590048402 --857744254 --699530194 --891286385 --774352896 --149101905 --611757809 --876868137 --420804402 --950214207 --301924317 --234847286 --490273612 --859392735 --22447892 --948311166 --123714792 --705859226 --827063737 --704048410 --199079960 --12353902 --423639174 --574064568 --822199214 --853632496 --988203663 --851718431 --187683794 --267016634 --514671909 --808486969 --569258107 --207748213 --670879292 --385283799 --672072539 --711632191 --2957073 --328023797 --587895186 --832833797 --644771814 --882529527 --618211356 --553363611 --999592099 --469315661 --345255403 --105633786 --118131049 --401333008 --499411061 --440238901 --975578150 --607124802 --319975841 --902530541 --481728833 --863296418 --220079618 --515263923 --853236858 --283612944 --425512359 --416755343 --651785860 --558313488 --307163962 --452388293 --91629453 --526625705 --218339506 --687973473 --901730045 --121089764 --387310318 --346211301 --217246451 --22428586 --449851663 --328784411 --576984347 --393268320 --756891395 --960937416 --54801973 --968189997 --143626476 --126074320 --155545960 --719411310 --684650501 --295704454 --753896918 --734491173 --173338820 --3127205 --108862079 --507418714 --347351065 --697682397 --842671241 --503951503 --82779872 --859676424 --714348255 --316235325 --77851975 --664694976 --417160465 --896113508 --166656467 --111433947 --840009635 --795804956 --794602477 --109209509 --793630482 --65400009 --61123939 --300797638 --625944677 --532290838 --496948227 --642198067 --17184537 --656751596 --388707371 --8615540 --819496800 --639175486 --811726848 --453241694 --118925147 --898164536 --463762535 --268792713 --474608713 --886217881 --425623055 --543692051 --419942101 --74311503 --608012649 --528327947 --626979186 --957067521 --511022552 --707485576 --767352466 --271628769 --531014076 --81890347 --425574805 --364309876 --700803055 --261278588 --460703120 --632667462 --300052696 --692359670 --401575544 --747587150 --868162000 --516526867 --192248528 --700776593 --559255486 --825275272 --79825216 --799138897 --698504187 --161126850 --430904602 --798524333 --229925538 --304275372 --646243060 --65098128 --536258760 --905175120 --36323760 --343431307 --607294113 --316477966 --450105907 --367807221 --239745807 --592406394 --22927072 --963024261 --38416605 --425723756 --944447933 --174811574 --616166427 --344232579 --206706462 --341063409 --926597328 --330345606 --232837813 --15998945 --54685147 --438729129 --530906179 --119439767 --526132243 --202030273 --484703571 --166133278 --523398428 --883633487 --321162090 --734968221 --410189765 --584529792 --948980835 --483369123 --843541086 --91615637 --421328278 --692978855 --599056684 --971018786 --596385543 --505615870 --510197948 --668368929 --796582232 --399333528 --637672276 --989582027 --141732927 --682259625 --394786775 --8580030 --727214348 --653675062 --568698749 --620373424 --250502191 --419285368 --60576746 --448651433 --896157616 --915012554 --262662816 --593523841 --630814789 --931381376 --585774860 --999042012 --16659715 --993467566 --350992356 --49707816 --820305209 --117610063 --582968205 --591155874 --429556773 --683137760 --411580286 --811601727 --618615913 --753092435 --534047155 --536854349 --667732631 --7712323 --970594334 --406698820 --601298045 --360218514 --115659563 --163175125 --701818701 --395018128 --816798865 --509691513 --870974377 --466239421 --741070452 --539345142 --591345650 --309747041 --755336357 --703865660 --160992708 --852840453 --60749037 --514168165 --382157394 --843764970 --104378307 --500802730 --575801495 --728629688 --174110485 --477009994 --855306288 --288429929 --599583424 --778126196 --11508940 --918244360 --633645424 --116373840 --692470290 --637513033 --190544293 --408121177 --268358360 --394165819 --916083512 --994660041 --102717528 --41967150 --402499043 --132744087 --883229406 --85320672 --674918726 --643266294 --743201237 --101173203 --83419758 --196148580 --29547527 --991926003 --741283733 --344595783 --994413480 --287002076 --54911151 --346927316 --157247534 --788877341 --102616056 --145277650 --152192767 --966228687 --489270905 --82984124 --960491475 --901186109 --219267290 --162298974 --272808284 --524836007 --52963812 --325583752 --372899587 --399171704 --623532410 --104186499 --365153820 --406758276 --826356011 --378203339 --958680034 --91061118 --901240334 --153226935 --143029749 --889961476 --953501696 --870013084 --198944973 --447397932 --522875152 --190788829 --111441392 --468236125 --93333918 --175181738 --837729515 --462275403 --402080505 --20933755 --807172164 --758280381 --17548293 --310895416 --790884292 --647963295 --854166582 --618444403 --792688131 --88400715 --831290885 --401171488 --142779198 --248384963 --930357584 --474310535 --500313499 --983043949 --166217840 --995890389 --751584570 --227084237 --517573880 --277003423 --873374055 --872534621 --314271821 --473919906 --339113885 --421371395 --784308347 --476180476 --122022171 --904415759 --479042378 --140852303 --378049840 --18893129 --667216909 --646568522 --794116566 --137676209 --174832981 --272650902 --437271168 --517454700 --406936392 --173444492 --742409067 --950378099 --676566984 --498594363 --478530591 --835742580 --189266449 --580568253 --234768183 --530368213 --322457211 --496046789 --622679161 --828529526 --134280742 --291253489 --697573963 --678178838 --456135806 --528893061 --76324544 --432459697 --989754485 --571758700 --583268249 --316096723 --174198808 --721727920 --108458249 --896965524 --58287768 --571388303 --420211954 --230666797 --564691107 --308338428 --509375695 --882667475 --506422180 --780584133 --576805920 --443737358 --365172493 --606658320 --181872972 --246595657 --1503990 --947550370 --911511108 --872088713 --978190542 --846013844 --606075840 --988815561 --265333182 --172745502 --599070208 --621834996 --845566229 --265042153 --252076620 --326874113 --303477550 --81706542 --749499080 --570002515 --236894582 --905358031 --425960855 --592785892 --602090771 --992155937 --781845828 --206641727 --716085402 --657975399 --476947 --466664958 --744245304 --522448735 --656448307 --788057788 --677756482 --670734373 --482787304 --254033318 --404518826 --702281583 --875896181 --52846899 --34462689 --558514897 --390097679 --89193435 --975183755 --517018738 --601998556 --273466906 --927696646 --265175109 --858999920 --510941894 --807899223 --556389948 --291216054 --687383382 --518328502 --793632359 --745390848 --426159022 --78172476 --18708710 --477033865 --963309364 --296921613 --630104737 --160092987 --563344980 --251517574 --122136251 --796880747 --840163600 --676680028 --620735749 --400678162 --204338696 --163725739 --704477015 --16007015 --979967145 --482554991 --900693532 --477010016 --27596305 --203980821 --360258647 --75527779 --365097070 --895892830 --662255366 --99632753 --741535965 --340781778 --783144139 --319137319 --531329177 --873641978 --770556405 --762907436 --703365809 --993574894 --241270722 --685439372 --115308266 --189750985 --717130616 --384006124 --489040970 --453229259 --607847487 --357137516 --517147761 --448966432 --608798208 --520754146 --292495546 --719521880 --549932709 --751864794 --220984333 --492682798 --834530578 --832100259 --264539618 --923552497 --505498025 --67075654 --216604688 --720041425 --548645149 --60907878 --40548541 --720265661 --699180276 --212772660 --682795431 --28608470 --305928521 --305550669 --762674260 --77991587 --949318456 --626477976 --848481053 --604346839 --174697627 --429967588 --40959318 --372851572 --776993552 --594151635 --228177981 --947358001 --249506792 --357930397 --147402203 --593035000 --716999827 --199561279 --263723385 --377728251 --182149371 --283412822 --158142444 --33817469 --788660576 --917590696 --909327990 --866669198 --779246658 --842278365 --224851680 --962313924 --756838492 --737480331 --969505929 --773326323 --31254332 --451259770 --745916790 --582094731 --948812756 --188167674 --871675261 --129129297 --426840673 --172483093 --531371276 --354331689 --946745300 --311073399 --112210173 --861580550 --280251189 --623550326 --275520052 --739248026 --776848340 --631525542 --754952786 --962072320 --703242399 --984042360 --360568547 --280913306 --282924724 --592502846 --146491349 --703969664 --823648369 --787257887 --421730276 --830289807 --969600683 --888973390 --232803956 --904307887 --832604782 --169196738 --762393274 --665906641 --561756997 --533144124 --719695385 --636595632 --999408248 --332156391 --776427513 --659255373 --272128765 --927338925 --730099031 --264175879 --892763255 --439246597 --944035308 --520730145 --265895662 --393762226 --564100097 --515898048 --582225479 --898646284 --179461149 --258065965 --396132920 --961372630 --891058930 --83733034 --689139748 --822110955 --930183827 --748878219 --41770865 --809218710 --509667038 --868178610 --243974340 --852546248 --550058674 --207213193 --5107914 --81448984 --769423258 --287111163 --782140812 --177721286 --51560547 --466523812 --544588288 --549429315 --281599111 --570213626 --343935412 --577759509 --49137215 --472912703 --741891002 --733105299 --263915143 --904175711 --908346345 --868643496 --428228756 --66026907 --387953330 --98348856 --894109897 --771414751 --820792999 --515870925 --846306168 --89248392 --360226867 --211016635 --39289260 --999370373 --644369047 --924414980 --565958056 --585773491 --845034235 --593146089 --534659834 --722991927 --600987998 --373761698 --791627993 --979025347 --146250303 --336113436 --940134907 --218341905 --749760128 --320767361 --493318450 --897873617 --70587171 --145177198 --61900444 --409337302 --325494675 --852491460 --922905603 --634483800 --815382109 --611166353 --684493034 --991184262 --293584131 --569469643 --122183863 --337249030 --478844031 --988897416 --873823707 --973513235 --776991752 --401292544 --329370555 --781754228 --193442527 --264514129 --423000451 --986141411 --707008677 --417744230 --131831440 --554295670 --542629103 --96150699 --175316715 --334988608 --232410132 --641898032 --459475428 --8766838 --388872149 --747937894 --293872257 --851460626 --428353499 --163331575 --211340048 --474240082 --213145603 --355279490 --907102925 --192077245 --460069573 --59353044 --710735993 --105801871 --887820705 --796545023 --366772669 --677890107 --116155436 --712189144 --332501302 --619684001 --935005662 --951323685 --297521225 --345419451 --498483173 --566141924 --287979568 --276933795 --277506810 --76603640 --155450566 --338831300 --209964644 --900767587 --102876875 --923198310 --600162363 --455608278 --651532143 --740809658 --470260641 --229938689 --921831103 --90483444 --712855643 --803418747 --143788869 --666778799 --86489038 --518338600 --695716489 --680585780 --565302623 --61093355 --565467612 --474912793 --34410067 --47912854 --452963725 --846319512 --466008784 --319339953 --807839981 --473004523 --895424608 --705986563 --926343726 --842801194 --529211740 --977125071 --632519507 --803044866 --849100159 --969604444 --709365802 --513429959 --818798791 --937505698 --865917218 --158908200 --958723964 --202719394 --713089929 --633636374 --670541175 --730081472 --449279533 --205427889 --565683850 --33166242 --944119540 --78390186 --791690671 --544075371 --606442683 --819500461 --887179895 --478206509 --545164092 --136725351 --38035058 --653830582 --618169977 --236119570 --17895958 --377594258 --9508137 --658342658 --570819573 --118425086 --886174344 --773486920 --718315139 --68469173 --485865960 --200011761 --622015354 --927433252 --560497680 --43692899 --75122426 --686724451 --570531700 --853214090 --423473121 --398030646 --815226648 --502213967 --394920214 --712620703 --494405966 --943595282 --180541773 --768841450 --193147608 --957362047 --653517738 --453959298 --58501279 --163067618 --671954184 --532506566 --579712901 --549405071 --69627717 --473288160 --203795112 --303807477 --305166740 --123799692 --502677933 --644305866 --920154682 --524234585 --158277337 --177285707 --620690483 --228653434 --205970116 --523068105 --72274115 --161060417 --564582372 --358460620 --167440044 --541936315 --288707566 --186863723 --652958347 --139907779 --660516847 --343752629 --143316164 --272768359 --669702035 --717373177 --293879134 --5232181 --502913823 --916853062 --453376779 --262209009 --965876121 --151496295 --269285542 --962828653 --691198990 --598541803 --866311363 --11810417 --744318114 --361350704 --386372956 --251958003 --525831093 --280689267 --852662889 --950974872 --960602043 --247790439 --256842699 --802952171 --182340845 --156810939 --849485923 --780428995 --78230319 --781357136 --855437055 --428587256 --486290514 --207308700 --54500586 --287983272 --25277654 --185833863 --776800433 --283267831 --208740970 --437163971 --301687967 --48686525 --860653807 --161839331 --729057788 --625342364 --678208910 --546621081 --641320063 --450262089 --306949949 --10414573 --534936720 --626458419 --306771468 --42441943 --642996198 --253209899 --583383587 --489154110 --194841763 --41944122 --755956863 --197739828 --2933733 --423950789 --723077497 --168692523 --97568123 --164384530 --996924302 --892374836 --716496372 --799387926 --37453598 --449132045 --882932392 --218281015 --218317435 --144972144 --575892690 --601626138 --112599650 --935800399 --479140489 --983979875 --937628193 --786633226 --282906302 --740026506 --561927642 --812242865 --557977024 --677138186 --407675858 --234622839 --117756565 --443700793 --619652514 --46925027 --540293275 --176902731 --603198517 --816053056 --957803790 --695189467 --879575445 --236358337 --935102316 --747092417 --67394297 --75121669 --20863812 --954958206 --691960863 --330066091 --726688653 --575381071 --839663471 --762219750 --366533452 --592293366 --312346625 --613698768 --103133109 --437373688 --844177072 --86542150 --959375131 --654875475 --29703520 --242866020 --774316405 --549125726 --765613241 --756472768 --672103453 --353874911 --730259590 --482827751 --765986140 --346856193 --431214567 --629519425 --415989001 --713408821 --987095656 --398475746 --711832271 --469992966 --733758597 --339138459 --251593843 --103803180 --641306964 --196049234 --98373153 --159868025 --489146661 --588968576 --307994554 --140039710 --96437125 --643082191 --119518027 --848350444 --16482473 --520442495 --808587442 --456824946 --915428701 --403052448 --869091520 --457597045 --413367614 --127213542 --170134334 --559037495 --837174197 --47809948 --342736328 --311084214 --440203038 --538115053 --362412305 --902714883 --197236569 --130205456 --954896415 --769664391 --865921541 --488374312 --809204691 --849074486 --890576223 --681279779 --289326552 --252735316 --844809256 --571951461 --337001628 --321060231 --202686133 --612095900 --696012947 --234257871 --209382081 --698209778 --585739879 --967985189 --269956204 --314667963 --482559687 --354645945 --698979974 --764450912 --59303599 --447174188 --859390334 --578880816 --832704729 --667585190 --486538697 --537665459 --424756772 --821188501 --351173152 --756222792 --911242693 --957434021 --432680673 --131042530 --232467662 --308439868 --19993900 --145635306 --644468970 --269837464 --604174356 --887421269 --394534912 --639995903 --80557566 --7715916 --755791302 --707916629 --73437173 --725390619 --536680248 --312294542 --363632585 --503644954 --191397746 --771125406 --733163045 --537879960 --388816027 --89607365 --607280939 --234855613 --581427563 --967420851 --881298368 --849229182 --612291362 --192444098 --935731781 --550526931 --794889566 --828364656 --116707632 --233577736 --370967831 --664624159 --87261020 --210138840 --507452364 --825095557 --56756502 --831070457 --6833822 --42872203 --513475354 --462470417 --18162681 --366146513 --536286654 --312637114 --281075396 --809445411 --694436388 --650308303 --523290549 --151689773 --50443398 --712016958 --139942355 --219936464 --571708313 --660379291 --733541442 --201911567 --687812513 --623267875 --219565702 --269968776 --269644508 --720178804 --114180104 --685398737 --833215870 --627038252 --938693773 --16504107 --921767339 --936344933 --898256012 --14968585 --246396835 --663057177 --830225518 --87135277 --16774143 --301552395 --609418639 --399685156 --832217463 --781799961 --720377409 --489352605 --275087335 --768816632 --506264825 --657053078 --144559556 --255025870 --55379931 --689325820 --720839026 --329069620 --252877672 --659098652 --415409280 --39581788 --490371095 --573929366 --375730476 --761665953 --928109460 --237826457 --79478295 --82771199 --592114801 --8664751 --647966102 --982405509 --920686689 --686444379 --763990003 --424744996 --677371472 --532294411 --353917289 --530449803 --519169128 --749559613 --216783081 --855694757 --396381950 --516649547 --880005104 --142307614 --569254171 --329663327 --938548369 --699321702 --521513672 --721024516 --249232234 --65149388 --710815794 --756126520 --332184520 --85989424 --294631887 --249661656 --165724649 --642459233 --302448486 --562346612 --170372755 --616621003 --752937279 --927296554 --45849527 --415032670 --193860890 --95247749 --659821634 --816984089 --82916266 --517990379 --97581916 --382797251 --831197280 --485126594 --251744655 --577681704 --990532567 --182702011 --268581849 --81077567 --971045493 --705995540 --338109970 --817394766 --477371511 --978494486 --690172716 --574511437 --691943583 --361982579 --423842700 --831929969 --735621958 --15060384 --394332616 --788347964 --106889032 --271019972 --769301447 --960389595 --647183246 --155856443 --210319420 --789704535 --579031874 --709975246 --588625477 --11675868 --365444185 --458854999 --125739371 --580826333 --615354263 --853259451 --118138329 --841506182 --385971973 --380631001 --961389326 --386733085 --87755655 --758230146 --326790684 --841560010 --424836563 --83235787 --697953389 --838585961 --912459919 --410183674 --919571915 --649847428 --580403961 --942003277 --495829298 --234524987 --911652591 --277112057 --816599143 --415309129 --327860358 --119448202 --115368723 --683649194 --154940403 --922569663 --697325350 --118552937 --895104809 --267338329 --219545832 --834081610 --53671049 --521888775 --275295838 --896690107 --105783146 --396363148 --869902093 --89617363 --3056711 --401821301 --531641053 --462582974 --516445821 --916196277 --937254409 --569954954 --358148597 --374337936 --582984942 --229015959 --40715425 --615279393 --236311397 --226288696 --178939538 --739967190 --142958926 --335791898 --192711887 --639333298 --594733115 --478579242 --562126040 --995488426 --826028684 --241626584 --700224046 --79283923 --721142279 --590386030 --24675402 --90044539 --401021996 --180022194 --723586765 --449534366 --283420397 --374401265 --506029614 --187223426 --969977810 --532586221 --493436716 --300095854 --808348462 --452354928 --853010535 --984407414 --785328822 --459236329 --99142715 --243613223 --801172038 --193001728 --793540010 --383770992 --673818585 --769230655 --114010697 --433193592 --978973764 --639279475 --450899917 --717860076 --78237809 --600279247 --36571045 --757894993 --938182173 --109369835 --180763118 --610681250 --57056823 --633825381 --35987753 --789128241 --347756843 --14108613 --385349780 --540814817 --499539306 --889181432 --543088797 --836839590 --806908441 --999167475 --671166177 --674337527 --326443940 --737730097 --1202524 --68441566 --69608737 --421657577 --575791256 --721582106 --367024338 --803627145 --173159897 --826826176 --21295155 --692586118 --208941167 --924346835 --736610745 --362923636 --651550008 --266644493 --539288632 --839963970 --149520992 --55909015 --222583393 --865209834 --59337881 --232134215 --197018679 --645372932 --771412162 --977284635 --3552340 --457825339 --968127753 --115760997 --867306769 --565657596 --817506462 --456644920 --940097746 --389597461 --413166355 --547134301 --834827949 --780489801 --658911375 --670906848 --407823075 --38556471 --133913235 --68390477 --794102553 --794475732 --702753018 --969250451 --249239437 --392026270 --717399143 --636568415 --30362433 --579832511 --721884039 --641239760 --345909213 --559966328 --123888719 --369166081 --727393844 --345636575 --863593956 --108898543 --137739963 --893991907 --577641978 --762671469 --624448704 --967517525 --417909241 --315853701 --534975976 --286397376 --301355053 --22766565 --321027707 --421537282 --373879295 --934028318 --894368844 --252794888 --7931185 --492102733 --30137234 --547742380 --718425418 --411280169 --80683276 --563917777 --632142935 --159303997 --141175876 --241393759 --900683725 --328069839 --48851493 --206227493 --150164482 --795090253 --103607556 --562245894 --35305328 --143705998 --980961792 --869081890 --822056595 --702342751 --197983313 --17543058 --978070265 --953243537 --372552540 --915853392 --253544131 --781214691 --223770580 --179518897 --658013549 --588704828 --506028430 --9030505 --465502267 --844713241 --326086962 --504035400 --107635233 --548794982 --993711537 --898480893 --794102487 --126265478 --154139402 --90640554 --684544886 --999009379 --577757123 --171197582 --907879417 --81173153 --195932029 --65874269 --537468750 --898028351 --34643260 --945675110 --871983500 --155102429 --320999922 --872000428 --136627177 --348999060 --149895532 --904480269 --357435863 --848073963 --128562974 --764224119 --146455423 --971070920 --207370668 --511590808 --549406516 --870621973 --769677070 --775757585 --438130082 --14693940 --73636649 --200302101 --496377905 --440743595 --197748096 --85081739 --535178553 --813410485 --629668607 --506400748 --59533614 --152540449 --493656161 --645145858 --222492792 --776858219 --485925506 --980864983 --939949401 --456997160 --443581481 --906314953 --429946269 --783629014 --496366344 --141582501 --726329908 --927712955 --532479701 --187250912 --926214235 --743555654 --285575172 --661750714 --599682667 --741753381 --925798344 --727751456 --147415317 --408688697 --7159280 --712664840 --78585503 --737117583 --246903393 --817308667 --625930701 --194473790 --636782492 --185829401 --774580321 --73635971 --961315037 --212165907 --744033053 --621594361 --196749130 --226658267 --75805205 --262668095 --883289550 --701206843 --841265413 --111703741 --155357012 --970202615 --260745286 --323155637 --257760691 --722439551 --457096156 --62552450 --217006244 --292090231 --951009820 --170380455 --811380675 --615936787 --196379531 --718450859 --958799992 --652637266 --455263160 --430422943 --76338891 --27441844 --172041056 --855710170 --487780237 --827648736 --670475745 --353684065 --365436456 --161951920 --865094966 --294918938 --372168646 --54035623 --512857629 --826321793 --755301028 --633972985 --702449626 --702880038 --812944853 --307928091 --733740971 --919764253 --174414729 --673880730 --443803577 --870646384 --622961308 --845085213 --287887776 --776922283 --190143410 --512949265 --424251565 --906779114 --520325198 --307635511 --617961556 --98758826 --490429200 --123323326 --311494528 --280938480 --505807664 --718863362 --352686019 --23109150 --63700139 --473543156 --853494469 --48830931 --614302675 --284080031 --878708741 --493799934 --648176700 --801922890 --857674470 --821278384 --854776209 --379135835 --401267745 --195886557 --185935586 --92301728 --406165772 --581328421 --728842612 --254336002 --449456845 --257659928 --863263157 --411440218 --303026036 --893901608 --16782271 --10749972 --444226545 --333666924 --155766392 --364626790 --906286979 --374850482 --775793519 --225846313 --834403332 --108823636 --679105867 --877174336 --720324377 --557379897 --241836587 --974286050 --843148603 --419584444 --524885859 --941356046 --23669243 --475179058 --638827336 --942111550 --315506950 --109986341 --195833463 --498157881 --796059066 --94242069 --58114472 --285012280 --354669409 --269799174 --345741301 --855035144 --373900844 --786828571 --17908275 --401778228 --376915840 --53667420 --667172252 --715447532 --305201708 --310842332 --171562426 --815129965 --620400092 --128628569 --479956570 --681482011 --315740979 --281486300 --482295201 --708030231 --316885507 --388362630 --408625026 --926669562 --523660252 --801625170 --543280834 --713834192 --149500807 --285878558 --112644299 --997574587 --492445651 --211653567 --331349348 --717026935 --638573254 --484559672 --148870486 --733832444 --906006629 --256654297 --88255691 --209135640 --538444427 --998519066 --761453456 --546234387 --519327842 --900833524 --722016934 --15383335 --518154435 --485061698 --873094201 --422622847 --798494188 --871040811 --388522578 --222999074 --36837588 --692371969 --64936880 --611505515 --456461098 --535207690 --75308160 --94803060 --253563294 --557004281 --34605197 --550189088 --230650164 --821143188 --623739672 --579349435 --861092677 --667556949 --210859226 --2484150 --401369290 --266316808 --131464660 --737228130 --188249131 --32996678 --917631017 --433605356 --998629288 --630049298 --560237814 --174594753 --861014417 --444262609 --603290088 --420258564 --450428891 --192874775 --988580543 --503586495 --785416752 --69322390 --648952306 --893819466 --792327452 --661427169 --318273106 --866434646 --312986210 --483154011 --324810817 --344188230 --280391376 --196304824 --378933554 --736167125 --86920346 --394112638 --479396612 --147290411 --341074029 --944936419 --894605382 --557157425 --837924654 --667872781 --533062877 --239161476 --543094744 --212006361 --557910071 --890932697 --384147905 --364706467 --136010831 --220143100 --885343616 --97431483 --891155243 --713923736 --569724120 --697869648 --180312475 --908857916 --455210660 --98632548 --891905426 --427321729 --116733108 --253901459 --303380125 --774760232 --687346608 --394682693 --876828534 --192580803 --58812980 --945629151 --868915326 --39880025 --921603500 --215261414 --573742590 --179914465 --981149239 --736346739 --234416476 --814458261 --722278942 --849432628 --953186728 --416290935 --471703504 --346778855 --733037360 --611882395 --37873283 --838964724 --576183441 --399525594 --955716125 --647054853 --528382994 --96937235 --501463733 --221752405 --616754868 --611280083 --75515511 --94549339 --675519221 --524338016 --925812314 --179171445 --291445570 --825647760 --464161432 --134207131 --71186065 --707603857 --537507246 --84255185 --623790229 --362460882 --442972703 --1781662 --902422645 --433012928 --254326036 --427898417 --169179160 --896296963 --943284705 --511348511 --145187389 --37548554 --175488334 --893819222 --225900609 --794079108 --917700355 --340807874 --344704756 --79569905 --273262166 --755128130 --675142736 --285543966 --434590661 --672982517 --558634311 --273327137 --168177261 --764377488 --213068606 --944662735 --983565156 --954109973 --588253864 --988213643 --728042786 --774558231 --754832235 --425148480 --157102565 --280954062 --517664546 --508226771 --527674265 --725136767 --518718552 --695423881 --932651113 --892284820 --5379574 --532794512 --985880122 --165655983 --831364395 --888681070 --25034929 --72571514 --851511617 --981603901 --366098348 --178905324 --747000738 --615029900 --391372110 --48213760 --790804378 --191313577 --798554076 --934609279 --725076424 --839365299 --354549612 --124789877 --916111819 --432571124 --40313655 --610983642 --478274949 --407162080 --678150334 --219608246 --172147348 --218199464 --930376176 --65333986 --594118274 --59978119 --322812241 --342351122 --41460915 --794664728 --162039422 --220095770 --121537972 --239205567 --829856316 --877602973 --325475463 --683635207 --733163423 --414725525 --487076637 --72242099 --601272528 --800028988 --872280725 --780042525 --420250667 --84614583 --521812144 --970982774 --281383811 --786774679 --673429908 --315416670 --30313328 --885709988 --222243680 --448184400 --929211211 --508804590 --69030188 --730460017 --606673685 --433602534 --398715050 --999848371 --974925189 --339762184 --118934293 --779921322 --572764048 --62235199 --190682647 --6979708 --815551626 --960005655 --894448840 --896744331 --937504480 --465531643 --845954545 --420710507 --584078794 --319766192 --430118478 --48907432 --196231439 --619150309 --54527985 --424614310 --932434491 --938373156 --366929371 --379516916 --794257216 --68279085 --588680906 --197866772 --967881720 --709603141 --810207514 --148436505 --270694621 --506220469 --640730092 --792866623 --24878822 --977180699 --464257474 --730077198 --386058467 --252930662 --523761690 --87808831 --453515590 --422506371 --859191701 --321578469 --8468105 --854275328 --314376009 --696491774 --697390990 --726034270 --307546529 --237412947 --372307690 --207813681 --744646427 --504674493 --646750930 --773302813 --531748425 --851434305 --354712386 --586819272 --411311992 --57716105 --204735928 --778839581 --148972482 --23569809 --946884139 --686659488 --413352300 --862420833 --432288264 --172593198 --581670126 --138606732 --5107517 --169527538 --403764654 --641367996 --382101072 --584860447 --145875813 --985893806 --181707053 --879974043 --844085105 --165552424 --689017218 --553357170 --703576252 --959007073 --420400780 --123775321 --608848814 --520146940 --563899446 --249852512 --386977521 --356607496 --415426250 --894069147 --577195852 --968607401 --529119808 --680534401 --565957871 --122845646 --818399396 --830863073 --342482003 --265357775 --455350865 --962250333 --754459599 --259787164 --489010840 --523901046 --662467075 --853726533 --997178295 --179424658 --274646144 --454576367 --153046456 --90610948 --908345406 --61500467 --79627181 --369542661 --447428434 --281434045 --718817429 --611698939 --857076739 --12565899 --771688205 --562807167 --398391093 --211289523 --309131228 --948854549 --459114718 --263470769 --625046518 --254280839 --60255216 --483549219 --851606255 --390158853 --488750093 --530176680 --711252620 --362887630 --628841018 --679320144 --933936086 --730666398 --37825996 --364618110 --511870378 --184239596 --448024369 --104472021 --109206721 --358933380 --770261826 --527723424 --7236012 --775689510 --7004857 --11738916 --815177795 --847166088 --450596228 --377954886 --888693323 --97353809 --749209872 --901508973 --592798291 --944352046 --928469643 --772188798 --128504535 --164939444 --585045084 --960657095 --885885810 --367357391 --577713410 --337389974 --38097825 --266504779 --905406220 --840719458 --831782841 --724186156 --154793845 --186556599 --178431160 --927401050 --30510352 --654684054 --823395674 --91422949 --493393348 --896593947 --409602596 --589143657 --290768519 --524718048 --566923898 --311483145 --605014725 --222417811 --786292051 --88490319 --700484301 --964340193 --802872446 --379630700 --706999727 --260217848 --285624828 --886670039 --966261111 --330072554 --336086468 --813162290 --447958279 --43313697 --636477829 --356954470 --631392261 --132935621 --963514298 --244576376 --596320926 --281488352 --736074602 --93999908 --534723540 --184684222 --489025575 --984149620 --804100341 --958018719 --361439579 --993734562 --924501565 --109583115 --801736898 --118305168 --268362249 --331922800 --414378732 --502567420 --743366240 --161434480 --18387649 --138879493 --569930899 --97694561 --526674784 --961402692 --116763490 --346857008 --781012701 --105036394 --631134100 --849329286 --605858136 --541211822 --957439012 --151018549 --443351129 --53079082 --641603408 --532883341 --370872216 --496777850 --815679036 --830193976 --258692843 --400261027 --895223093 --908407161 --980286354 --823776325 --783768962 --298175811 --202340914 --33798096 --431240995 --866499757 --622844015 --645453648 --131372929 --161283187 --456486589 --114969894 --776954112 --804525199 --739355193 --753591133 --711852724 --323170482 --114868954 --527421392 --900306267 --28311103 --914630038 --313900221 --114332925 --738410130 --797898473 --66355364 --738266273 --529459976 --237140764 --992785735 --71542878 --963847652 --90339499 --618898983 --305274200 --309475495 --144602666 --655364641 --736439487 --597342457 --29566141 --40350926 --297971605 --429486634 --422817312 --988423667 --635777537 --738814795 --362850432 --264653979 --804947892 --789987775 --646852816 --133370844 --419610774 --565870727 --889918525 --739764387 --551621702 --478934847 --784673261 --893953888 --108270830 --9488507 --790995743 --475072791 --660819861 --927133453 --262400693 --333884993 --614664299 --714976565 --243172990 --182657587 --323159733 --306932730 --298655835 --726021221 --755472081 --242983928 --547679172 --7420077 --349995315 --210133419 --93867760 --748831626 --941248394 --124093655 --3856634 --997247183 --400347361 --653859364 --627302002 --721768737 --773412490 --254629226 --394096785 --638051678 --812940180 --246250002 --715377481 --875795025 --546336565 --57436254 --731308738 --778545695 --817198704 --262183240 --421847369 --775960302 --334530429 --831681612 --897207608 --26907552 --250268335 --534965640 --157819315 --232013202 --493883047 --852605101 --618733285 --34382286 --795211956 --69263037 --447571336 --54330088 --249040099 --966659984 --564512001 --905285323 --480738244 --738010359 --441870646 --747856721 --126472972 --569034282 --613515739 --541216274 --120558916 --218070772 --792452350 --807855454 --501449806 --911606998 --694988114 --119089482 --241438815 --846114580 --684538662 --762052162 --982357037 --291068600 --942374279 --678815852 --162018266 --641147149 --913106434 --35242802 --773961382 --372934244 --402607550 --287825295 --904940238 --222827291 --464342892 --39299311 --564603046 --96275632 --540774121 --535926722 --83793770 --113029392 --305522969 --267014383 --997854936 --255481855 --633319890 --217561217 --610100404 --233238201 --926129352 --532059429 --929295476 --631260171 --709722914 --313492823 --46366780 --136533434 --741315548 --183966171 --740052010 --115547318 --276003287 --766798765 --436580740 --525335926 --104985171 --313431409 --337276376 --782317155 --131450717 --840032616 --487411780 --553372613 --592158986 --45297937 --958853313 --943987313 --975780461 --345287080 --867827803 --916641574 --661934248 --269494103 --813006662 --910220120 --747446781 --981187031 --975527226 --497698867 --786829729 --59423679 --375363408 --445637330 --691543896 --640625812 --934268007 --302030273 --225138949 --478127507 --202972139 --596563674 --218229324 --134522984 --216060812 --627827893 --291483003 --230261954 --4412939 --901694053 --365898309 --376523123 --258779698 --127452685 --930893882 --885557815 --819925037 --608587290 --12438448 --66553302 --683807979 --350089803 --21571263 --823136574 --336605587 --364152750 --588682622 --349453148 --262296576 --556640197 --317028844 --476933864 --320373928 --137524954 --317095608 --583671453 --31529528 --897699836 --642486644 --951911298 --18963525 --333670693 --331787256 --505170847 --858967046 --878732979 --786268401 --427550363 --601383083 --232216543 --47059800 --886735837 --650152504 --818570457 --637179281 --5182268 --805075776 --514570668 --16354702 --284744125 --264372693 --469579282 --527571444 --390108374 --541977153 --116424331 --905899887 --305483114 --469336189 --552603113 --657108658 --431129189 --779848412 --431679079 --213198509 --17882994 --822230262 --854005952 --867709076 --863004449 --755597087 --214188345 --597597078 --684828477 --81746952 --338715341 --269602995 --310315675 --359288455 --804711549 --306590975 --354544461 --38161599 --200980197 --54328216 --360926539 --446379058 --367743059 --705548981 --164498022 --842039852 --989304723 --39938328 --252407427 --935454177 --673411829 --423423492 --991091496 --821742106 --948067463 --248077111 --45634331 --771095765 --528500807 --335779918 --938529396 --614908870 --364666064 --978327161 --914373718 --644387693 --756639745 --234675138 --971006296 --339604591 --584589718 --14045025 --125399395 --374355302 --635001857 --524456649 --519550569 --69593380 --499101652 --607546634 --533114171 --529322068 --269538675 --388033561 --743198567 --841467087 --872458532 --111955282 --938356902 --671462600 --156339653 --985589585 --407423670 --421303004 --753304287 --967899950 --515319459 --998493547 --141181966 --733118694 --754081251 --687784197 --965959504 --618689168 --867453481 --853268460 --51312852 --820056074 --154600742 --710356222 --902141490 --151152507 --893973046 --886373118 --934446353 --412565761 --725121151 --69296795 --112497120 --726995427 --718287757 --9455255 --746035388 --688223549 --401530255 --587051092 --867607706 --928466005 --383475394 --458734011 --806187843 --656567288 --661301907 --515968085 --43380217 --763428396 --432054899 --313894957 --409438140 --566635805 --14677400 --37182542 --301253584 --990717370 --774272961 --832560298 --122605622 --91075400 --706152483 --351715327 --712322835 --826932545 --994343030 --894403706 --454984333 --710253271 --374196433 --740786218 --669134359 --677712039 --494494272 --174530715 --234935726 --52259143 --366234046 --910091976 --432349210 --350955941 --496359405 --669643304 --885371022 --253246475 --406873527 --412555083 --18251859 --470644539 --953286745 --725006114 --110046437 --391998725 --395569315 --769437113 --221746212 --136189672 --23888042 --30100167 --199172849 --400368016 --769614283 --550591469 --580238378 --745621798 --3510944 --589876085 --485968402 --84237005 --476823193 --392137789 --792253228 --878056495 --273252453 --916159200 --147327689 --319181434 --376968992 --55501021 --804824946 --223151039 --193640922 --985681087 --499680903 --778218467 --608811683 --327877095 --984830057 --761317300 --573992460 --556153077 --205149610 --424266839 --51658511 --822304272 --344866050 --741448106 --248837439 --817343867 --483252136 --628346841 --181281083 --739145720 --968184779 --666510319 --514193548 --843933606 --92643838 --228935692 --353749846 --605276217 --308128937 --451913399 --779268133 --267128723 --428779244 --756883273 --516670707 --209366087 --855966372 --726400366 --426305614 --684554470 --784983887 --797584736 --960715447 --377630917 --455618699 --446408235 --968954811 --155839398 --404518266 --107948161 --408840854 --42760365 --468674844 --326040342 --610227484 --78208429 --50302452 --489674579 --708984484 --329906606 --510838172 --317072921 --114502583 --407545292 --12583678 --839054478 --844025456 --785036209 --826555594 --33882545 --621444494 --660929385 --701468361 --252086038 --792411805 --471399638 --294179545 --366016944 --130418915 --852025584 --189336046 --658714276 --246781077 --413134526 --384759176 --328115644 --971884746 --545697618 --802619652 --357731167 --397093410 --655723751 --569253241 --142270803 --459463077 --909330235 --851932955 --276506656 --273691075 --353804132 --913003886 --630768517 --667792569 --976636699 --962665665 --17600747 --939628604 --122663860 --54045273 --443933625 --448218952 --533142309 --991493016 --722055778 --463375134 --985044477 --943695677 --896322265 --748083535 --228881987 --231913789 --345241252 --3596556 --63807253 --964727188 --35287094 --518893194 --548117700 --413987738 --423384057 --90126430 --468681779 --997394061 --166453015 --734994135 --505475759 --712877240 --467260917 --419919969 --874033076 --419004000 --412271377 --344627555 --696926790 --296067847 --534560879 --48388774 --294982289 --540768907 --203110852 --935676651 --47112075 --956931289 --152344491 --427445523 --412709442 --893925578 --948459510 --851650869 --527409087 --735032880 --598417150 --5907089 --118121948 --20598785 --937722437 --830964444 --757226872 --43537258 --708444319 --404843643 --529572665 --141893387 --368429650 --995995215 --394358242 --264033516 --37940221 --609782371 --200888227 --553289293 --324088167 --275978369 --416614363 --295259056 --582826889 --283601973 --604363548 --521589855 --643240434 --774867949 --595269118 --397680478 --647875800 --913305257 --783072793 --670471279 --536452686 --341361466 --726682056 --377172491 --636616395 --753776800 --714074697 --958855486 --641379352 --126929855 --403927286 --395020055 --410141455 --935551650 --720762830 --173233184 --625195895 --594641846 --373666826 --505256507 --458016845 --973361356 --109869963 --556719529 --639311330 --99206566 --544880217 --637167716 --420304005 --350679958 --607207387 --80850686 --422683336 --301237218 --26901779 --919801600 --697735635 --287707585 --296891132 --541199738 --141731696 --711245311 --79230777 --298728907 --952583705 --169666093 --208958073 --534019110 --797679076 --794898282 --421335487 --31069188 --473798977 --686168114 --831295275 --590292122 --429485038 --76875434 --668394475 --823018710 --404351495 --896251374 --24133595 --625293662 --402749518 --783365699 --574043065 --439482060 --13591521 --23548417 --599169059 --759256312 --568028267 --987007795 --778169277 --388105989 --830038779 --726738322 --708168621 --341228374 --775812669 --427195505 --953897071 --472356707 --372721654 --533591767 --364590054 --708305879 --722523185 --697185419 --303090530 --342819971 --125465989 --573122646 --704003173 --726454375 --714065404 --515669782 --340255136 --727845162 --509943337 --194543998 --716896198 --479975295 --433840313 --142827038 --133581970 --859220616 --437454711 --757920114 --765260363 --831815387 --447810486 --219800685 --684176702 --247054429 --729565138 --443618045 --539027778 --788679222 --87158498 --108629094 --895018188 --820201002 --483809363 --368158337 --197551956 --659505669 --500518930 --952421563 --550108651 --241168060 --807560492 --591313037 --701148985 --718512166 --696214498 --199528124 --102827607 --918191337 --235393347 --825739305 --717168264 --474784855 --934545744 --371057701 --971878928 --225677868 --449970194 --440256001 --104924622 --457295456 --783662736 --353902617 --901546006 --617745573 --135226118 --325627887 --187310447 --792763157 --671662230 --646087218 --188087506 --961875382 --279560200 --662858386 --203235535 --746426376 --276215230 --29832139 --573969528 --829388699 --102668689 --856351099 --277755506 --980973192 --96213178 --921111111 --3070247 --66510371 --389968188 --732557636 --464790881 --360955982 --219133787 --237923166 --857936164 --375790542 --159475597 --39702463 --972728238 --771553822 --538734456 --401321070 --233408330 --924983772 --96592797 --613737278 --190933368 --103322264 --336853123 --613136939 --372024182 --672121841 --771447533 --641709028 --188454089 --446038324 --223633832 --960142359 --750752082 --827046465 --593011166 --199020362 --15378479 --35375693 --780096921 --398247279 --465059487 --346379875 --2656445 --662245452 --564557574 --424028460 --198786083 --850813289 --899370772 --727902446 --810044460 --20267837 --678383305 --532457551 --931165937 --675235118 --400052332 --597348389 --342680011 --977433758 --509789445 --3601878 --973387575 --297713823 --664838133 --82167100 --60365416 --898616787 --414652920 --209079795 --615013898 --568686673 --829902569 --691140383 --898242424 --172228993 --188226522 --663099091 --581453730 --319399553 --394377796 --728920912 --353558790 --630424093 --951873527 --676055451 --894696709 --657979874 --583427861 --778336094 --905592222 --82773863 --202315893 --32654425 --397283445 --839317837 --438056638 --109130096 --48539655 --880377228 --705551893 --871738165 --140852984 --92340001 --43166589 --345298010 --628260181 --30019621 --182865729 --3900678 --931156270 --43350993 --5816435 --22370659 --661521760 --304490659 --762151933 --120611949 --928875257 --187612052 --382906759 --999525115 --255045976 --400157490 --320037771 --763619708 --281690878 --624847019 --32468609 --416333302 --756768030 --45960849 --148285604 --519514409 --202606444 --369692028 --154503045 --299871832 --226431809 --441279490 --195611798 --30943372 --1611809 --931621763 --797747836 --341870501 --800647408 --202878482 --719827000 --169191144 --246141669 --813874181 --367035898 --213701127 --919044962 --808842197 --695613138 --131617491 --22569687 --661323271 --323151213 --800655308 --814478042 --943686978 --431664240 --800986259 --364473869 --519917486 --665265619 --548614661 --14965551 --958598726 --612517470 --971741852 --505392127 --967926004 --616448703 --600880797 --487463616 --742114396 --356167711 --905206676 --82549874 --842225815 --194588878 --838019248 --414862774 --343908900 --617041525 --593321945 --838668893 --197175162 --854467304 --652062429 --209941628 --238172867 --763050379 --538404696 --933679834 --21925612 --498254344 --787258918 --612743539 --735285623 --15163529 --649062993 --711125593 --692469620 --120132390 --873860941 --892911694 --910078063 --325519755 --394882588 --514924915 --718997491 --369954862 --278864588 --947397291 --374344416 --410206003 --721766072 --114360427 --384375672 --84588998 --796871061 --351782912 --13764052 --959528620 --21861308 --657527647 --859484099 --471379153 --681415990 --443749510 --580311951 --366376929 --675016091 --372697933 --601199562 --81621122 --382530178 --185904177 --54940203 --492026075 --894007667 --312631174 --387159343 --752586358 --720164725 --684555997 --472207375 --327637829 --182168037 --390588665 --996270438 --721071503 --721958747 --144831581 --673099196 --353355594 --417083135 --299584052 --756214888 --818288772 --789540521 --628221234 --761793229 --58985725 --14905671 --230180975 --133600372 --151214857 --181717072 --318431176 --183534133 --650254304 --230927403 --731587943 --616104966 --831669152 --812451767 --981561732 --995148757 --431796548 --757524135 --665179261 --14299582 --272093412 --721216910 --535510205 --640137648 --600245722 --143195601 --4594659 --360798448 --806392358 --162545231 --852372206 --767762636 --70218371 --251338827 --142199930 --999686199 --844456920 --546486167 --597290623 --588627155 --895214042 --771848065 --14184918 --778878438 --204940650 --915839689 --250048677 --242307702 --70022285 --47114468 --10553423 --373105650 --8811845 --764622479 --500969260 --418795681 --448122317 --846933481 --751068653 --922467090 --682065271 --195058991 --175055705 --232494599 --535149685 --414466092 --251515971 --59069217 --635299541 --790549096 --536675348 --176218541 --740723688 --728697344 --801158934 --369776892 --822475370 --391867931 --357088570 --867826118 --679037993 --818571175 --343791774 --785846305 --363946676 --655595234 --331702167 --763518444 --352928889 --786715852 --971852829 --49916383 --868252113 --168459102 --427976009 --898312150 --867256454 --943926279 --991874286 --210603670 --503679541 --814892455 --918345213 --573016061 --108789976 --184638994 --482639754 --568967101 --784684611 --435145370 --411093450 --195193071 --420815308 --492919409 --649233776 --248681810 --963024312 --270546607 --317958390 --92281166 --219984801 --60784738 --872193355 --278360570 --188954193 --901675893 --62160946 --152071886 --350052340 --627227542 --146082476 --784999360 --342056618 --970324002 --200299378 --406484194 --65199804 --834676653 --787734485 --930372325 --78124360 --35886935 --366482240 --324270721 --2208355 --943607930 --967759147 --671218806 --652616722 --640608288 --657872240 --989717998 --614988509 --433402450 --318538293 --381863073 --68438931 --540144522 --351526145 --703767207 --723280581 --80967699 --700195746 --973009213 --314715493 --760837184 --526509296 --196069790 --822770246 --650302365 --340911814 --407629246 --662598149 --884381544 --488586856 --716388363 --199329819 --561349820 --785129076 --656047356 --414766256 --828815585 --308654559 --970837150 --510387945 --258346548 --61872058 --236548032 --250751076 --927214334 --119958184 --995689508 --987265473 --362744249 --846716895 --122207133 --516446017 --761163470 --663858428 --602745377 --510660582 --253504544 --737200443 --323165625 --194562193 --598154901 --420004521 --386771239 --965752294 --125509100 --793587385 --923479972 --659880130 --983428498 --924712249 --629422717 --692790071 --454059589 --417570930 --812659459 --234615277 --779238668 --550599298 --161290572 --648265407 --143364341 --796123165 --350525634 --487334603 --552055492 --511207203 --708285272 --47740818 --598405893 --411738992 --428224055 --463935951 --399944888 --266097928 --19090486 --361943235 --40624485 --304084223 --880865920 --451000663 --150698193 --224030630 --490592465 --828988978 --781968373 --798297308 --641887669 --340298346 --61658604 --360540789 --773983977 --814794915 --751972357 --80765322 --475319859 --616775869 --870720998 --25522356 --72319242 --898887404 --802462996 --946802329 --866141140 --948103712 --861239663 --34289510 --84010924 --175059451 --235929046 --839187083 --619758918 --258153578 --606651829 --531153285 --186468123 --101326555 --462342454 --216363443 --261548867 --587103442 --132690937 --598150811 --673715209 --453627439 --334127644 --359774028 --986721245 --943483146 --348467562 --943614018 --540340209 --292755435 --603543985 --753663250 --418916024 --491458115 --905018361 --146635012 --778640688 --74327884 --204951809 --869393712 --181822600 --672089367 --433095079 --751086769 --578545138 --305441698 --338884103 --797083380 --290236917 --65596479 --719000850 --751699655 --213547541 --46972113 --974046308 --802926153 --318976927 --205718013 --660025331 --823711027 --892671807 --523203067 --69565273 --546579627 --141764502 --913414019 --332646478 --773593725 --304328942 --757220244 --945628588 --970911239 --55967447 --68002062 --827066162 --307115841 --97255596 --593856847 --883216601 --511683639 --504104344 --6552561 --412252439 --992504606 --723162858 --839180672 --57580573 --963821546 --899409225 --232209323 --113683733 --341046520 --508511476 --906149671 --833289684 --918881873 --541749068 --258308746 --3096429 --4755170 --614278777 --737793075 --298707520 --642830776 --285215272 --641695159 --90604965 --545000248 --961478380 --986240336 --33740467 --452455120 --546896534 --695516526 --113683587 --617156381 --686678235 --426867401 --595133647 --346693657 --4679675 --505512510 --488879129 --440452196 --651559225 --993785229 --253311307 --662259218 --442105201 --968246249 --882160203 --525809109 --932598594 --210030037 --341850248 --463620633 --67079516 --211735271 --168924099 --284648301 --123331961 --309065495 --451102500 --982941712 --874690618 --521047213 --188935272 --263814730 --291413759 --372990570 --821166521 --660163593 --315447429 --913825913 --191060755 --397500631 --831327713 --489826167 --217006247 --598130051 --633048078 --314995528 --945638837 --860741355 --739474857 --715507251 --154476275 --479832892 --539353981 --581004556 --245596974 --752249936 --943850188 --90300444 --132787431 --614438352 --335082046 --509904470 --448808421 --337101781 --566334924 --750658855 --875520770 --397239421 --97049021 --753765981 --486082519 --250367173 --458874886 --791408863 --779146664 --789609579 --457536670 --238637992 --929418459 --618498164 --589086880 --755279912 --870442058 --519866827 --38296754 --803414006 --722209507 --333522188 --205597358 --306797456 --435516364 --528510573 --506684021 --323258464 --425679491 --540320642 --67462570 --252153452 --641048630 --814373657 --157698989 --790609043 --71744926 --430011640 --697136056 --774191384 --408604042 --862570766 --400505093 --921704344 --230457851 --215766992 --619098332 --192555863 --682108367 --745194005 --199171504 --170855972 --433871133 --128838212 --640466051 --243670163 --129675807 --571370404 --373304912 --827898670 --826774397 --499379071 --603650306 --485990212 --80660144 --137123514 --329957372 --6504456 --115904433 --664308209 --12408909 --93574968 --419960850 --563061564 --665755430 --317826245 --655066325 --328674165 --651762173 --982754158 --650864057 --456544445 --45548161 --864461615 --145793089 --191083422 --673401046 --165215076 --380491451 --541066333 --723437059 --89831961 --195581777 --621588092 --566165863 --136079433 --24756413 --934184950 --845121721 --808634461 --772207400 --701039280 --74097965 --65270611 --500894144 --266515973 --196241470 --646365616 --771410402 --685923782 --722384749 --578353511 --636953206 --879689063 --644067372 --250254798 --311151875 --923506122 --732594401 --848468762 --986084905 --312593855 --831129 --472707772 --617956652 --741390385 --121132991 --196386200 --909007490 --334396263 --863150124 --396847985 --917942610 --309580903 --233873001 --345655336 --387722240 --129772287 --590798573 --502841888 --833742562 --314961941 --418014534 --637615560 --852727627 --557140753 --1050606 --848802209 --622117266 --105495842 --224889097 --737742152 --330482537 --239306093 --98769812 --304366095 --112276674 --634758662 --591867623 --846144251 --766890864 --72773984 --303013998 --20489433 --637351324 --386196783 --276037231 --46340253 --323028894 --384507756 --600410074 --570845054 --459158561 --978666043 --744416756 --843694187 --801100537 --651898035 --84183476 --330478101 --945641873 --294296596 --868070799 --556832806 --598161223 --10890961 --692394924 --226479184 --603809407 --257416112 --440011677 --974254096 --716467485 --388717853 --288046887 --780522045 --49259523 --124241462 --994574053 --654465580 --934231848 --663559428 --487540410 --782068950 --223599841 --17697634 --591118642 --67505077 --884134584 --210205307 --449875569 --384182283 --39298247 --883073846 --236161167 --381952262 --908373114 --981968124 --902246281 --909449969 --811334420 --46312097 --778270562 --741533950 --880062909 --899036315 --333691614 --117686991 --91819462 --373827192 --779035398 --81957215 --612134171 --364617077 --429848056 --756705099 --573905167 --174942899 --804871942 --155045175 --93283474 --292264535 --937642224 --384688127 --922269029 --345568524 --360369516 --34499547 --32103863 --12642654 --377666103 --744020813 --707890027 --922777640 --634118217 --704929757 --22939576 --93714629 --625015148 --466866311 --937717907 --150846038 --920967002 --833901652 --264416587 --224887575 --242544377 --318123472 --74318982 --471448551 --67616489 --168025583 --451471466 --576849805 --237760820 --820981130 --886670381 --704477888 --250927644 --185531693 --114953876 --996172859 --364899921 --175926126 --775804921 --409712285 --557115491 --64360731 --989675597 --230141196 --254786917 --555609989 --417619047 --10180709 --329739700 --462302063 --417405783 --957280028 --95700294 --368883508 --625366756 --678014648 --138750346 --4531175 --647807202 --410660379 --841108999 --551427640 --22116974 --77894375 --126665224 --134912738 --121168599 --160885157 --843673352 --68468639 --374694316 --62511179 --950558715 --499558889 --256183976 --201021024 --15019885 --920551271 --479335218 --117725321 --466174515 --446490953 --592464494 --806063653 --263599425 --58310542 --166560365 --616808699 --575846010 --958564644 --725440352 --50293206 --721773456 --759945215 --873262440 --70976852 --255977202 --239470572 --58908290 --965855507 --404408400 --927052308 --863840549 --473418855 --460131419 --374827982 --348094722 --964531915 --821225449 --983477809 --334873976 --135367805 --247930374 --556305890 --175362419 --222265798 --834359603 --195613630 --808824880 --942827555 --156796238 --767352467 --405583678 --163289456 --418640211 --689245262 --641457146 --817294095 --41592250 --639362801 --937936773 --252607428 --32844817 --600872761 --336972486 --864408449 --66046671 --924639545 --261078238 --280416723 --67911878 --114412393 --403767772 --868146450 --187109781 --92748425 --203220331 --434513349 --281336041 --871144693 --484885743 --356373359 --810125897 --238496966 --118543561 --888441273 --705625338 --994562250 --214541990 --441491589 --14446987 --284771992 --241514513 --106266421 --579228496 --108564382 --804638570 --38851605 --509759283 --922985957 --966196285 --100087415 --672234766 --829823900 --981912123 --691342419 --570924636 --929726600 --757466144 --151537291 --399303626 --275690553 --847967882 --677461261 --598446296 --416832136 --469135768 --294585147 --347063549 --725162388 --794652843 --393410187 --156206637 --972100312 --909959169 --385417459 --841558784 --133818898 --743532446 --923824503 --874012536 --25997249 --651390908 --370824299 --488763112 --447407200 --3075429 --680103197 --273156390 --849018200 --421027726 --883137562 --439247629 --704907336 --957643347 --649092695 --699090202 --185807478 --995743485 --475156791 --179527744 --30280308 --769687461 --701515691 --223751820 --127289136 --590219368 --600311901 --849884614 --488628703 --433667222 --504012825 --161392265 --207491420 --912238364 --314314160 --70661465 --83723197 --484143505 --102203279 --133259735 --505604642 --257327118 --789312221 --601888470 --124695562 --506559897 --982874337 --759027803 --602043776 --404930926 --391230582 --306417657 --88041547 --864866928 --937945433 --873633960 --95753801 --18833886 --245990666 --305485853 --434827713 --283644808 --774304568 --460760860 --639800390 --370076333 --768393856 --244961294 --331446344 --997692815 --908902840 --452569392 --195928303 --676429124 --295073524 --333553295 --748426958 --146576389 --367104869 --801630369 --636132577 --540052368 --599723532 --83645187 --935894799 --905028905 --962464184 --317975628 --970710790 --676728385 --898637584 --805566735 --395806607 --150825798 --14989945 --31153975 --876483650 --838410677 --27833672 --926640782 --301976650 --941782150 --169900143 --901490417 --167171291 --425526977 --626110051 --542778202 --138536723 --102723843 --541519120 --213516129 --846663602 --597959390 --517081372 --136429924 --590806450 --458409293 --38437404 --563817101 --74367298 --898339945 --70370775 --48221596 --357399883 --717897971 --271498711 --544213533 --484796128 --676494620 --156750813 --453564686 --536700000 --748634320 --10827037 --329220731 --412811618 --528260060 --198737488 --762750631 --472834075 --781257685 --507676659 --657248994 --773724901 --794205556 --601051490 --551731756 --325093554 --848083696 --834734763 --287723499 --834108523 --51516134 --228464048 --228591922 --765026838 --645924392 --731301837 --717692432 --896838911 --593642257 --522155069 --430514055 --796850664 --767597498 --669676494 --405958352 --924529591 --885558381 --834946087 --951341255 --57547218 --939186330 --613566209 --398690740 --851488835 --371400309 --354547582 --628904172 --379832439 --553056609 --15580277 --294946268 --86566869 --542615159 --188270635 --965561588 --889369314 --824248732 --306392144 --712726988 --687907237 --269167436 --33293694 --769707441 --938521186 --363344702 --642602793 --589634296 --643349948 --20573352 --774314213 --245693486 --478690932 --990059880 --567788805 --430210581 --690534853 --810824441 --491683395 --69693122 --288304647 --37399981 --98889866 --796456840 --744248127 --439781168 --962242436 --89672139 --54087024 --568131496 --571607034 --675790438 --550500558 --803677804 --819832302 --540482267 --287866497 --882212121 --60958540 --976003617 --141938187 --224277134 --211257469 --466926600 --625822014 --97580828 --558619202 --538856411 --408884709 --985823908 --290422033 --347082952 --967939760 --300170339 --726409267 --905406129 --960598418 --173576536 --618099565 --509884122 --362437218 --715940898 --640326570 --22391276 --332821547 --17231930 --557988222 --913541399 --180481097 --92438630 --834013896 --627351459 --315467583 --844130931 --525469198 --5592812 --702979880 --754903967 --138615566 --423589051 --927090721 --287209845 --262263054 --210373548 --472485716 --15486863 --807800857 --835672146 --489323399 --391507364 --799436764 --831514660 --490167760 --107416525 --582856113 --80427090 --726726406 --57814138 --104679348 --687215779 --752333409 --518326225 --529813254 --786478682 --44149634 --5157160 --982385639 --613941820 --319094180 --560467428 --960083305 --258399254 --958503488 --292348633 --429637052 --166305708 --487342436 --253099352 --955647600 --324400817 --895182509 --893540588 --645010715 --313906731 --368261656 --951128100 --42211065 --85541790 --799448688 --795279535 --703444329 --823639024 --928818031 --159198260 --127470269 --647138701 --541468488 --529598568 --160537162 --901051083 --600981507 --246943331 --980600453 --65336813 --584150896 --186575246 --78870368 --170189545 --412067388 --351980904 --175194433 --907242311 --480761009 --184244046 --228567407 --57993022 --562961747 --540682155 --539062624 --938300069 --118750403 --653593151 --793769563 --724134287 --134285901 --948488027 --873527516 --524281895 --173875318 --749724642 --616624037 --396429272 --889560072 --869756770 --285848261 --569222 --704027738 --318019396 --151868295 --519367409 --219057822 --747163864 --464213102 --704275944 --711470685 --701149072 --807732615 --669167440 --491092230 --163618862 --661104164 --464609336 --967573008 --944323263 --205695961 --174554989 --832008451 --735651104 --561287674 --800253329 --791901225 --234910570 --126282762 --734642177 --113733647 --812760856 --23827490 --870549528 --994488674 --790887914 --233586657 --866453367 --219717819 --16840783 --799980455 --965140680 --901850143 --558913713 --361584323 --581658936 --188303810 --675580042 --607468455 --637091073 --941345661 --44484031 --815538277 --416018837 --465008767 --749068112 --106312282 --573559832 --490950351 --889741553 --330990945 --641031536 --62078580 --381384040 --387559262 --127914751 --945578575 --710512206 --216495616 --646947322 --944666527 --652504600 --938115723 --985050373 --524071929 --838471579 --83118028 --778612705 --241865992 --206440347 --643853198 --300221232 --805557735 --128246630 --789166146 --259364940 --227918013 --100762641 --834907430 --825197155 --978404813 --586896155 --847427151 --572712828 --129265828 --342116616 --298281266 --932740921 --36984826 --198676289 --575959075 --732320434 --591681576 --619097160 --58311972 --419616674 --297404814 --985397337 --968464779 --532135906 --902155157 --117673377 --726831905 --64415799 --839317403 --439205464 --884217095 --826017517 --585725745 --166070426 --483102246 --272717837 --703400933 --851346303 --352946439 --207456264 --297880593 --448408946 --96508054 --70034866 --74900470 --794412866 --157110059 --235027591 --410790043 --437439236 --630901425 --393714089 --25686285 --514450468 --274831762 --674060284 --698114940 --17998957 --991923414 --237201039 --235731143 --826293103 --741694551 --874685092 --669665677 --189682895 --99055431 --394693320 --757550661 --654364619 --612122710 --493497311 --686117541 --761467807 --178991986 --542298747 --676517670 --763144568 --166641071 --130696558 --844199128 --108000970 --945278011 --54157745 --623223190 --522017832 --372069354 --855094833 --217280721 --101695605 --442199320 --744360626 --167155273 --198262549 --432612748 --948279393 --77085788 --386773194 --306149918 --384691034 --258616495 --340989170 --132295664 --263177251 --909399394 --198438160 --270519495 --735473818 --598582043 --94345860 --777735458 --806060779 --132072505 --234121389 --105208175 --239913246 --37747406 --249021834 --217586150 --175455218 --559566671 --907134960 --888090213 --342123844 --666309541 --696778888 --550709472 --755303257 --292979216 --125263933 --881039493 --509517713 --617800367 --971245836 --792053433 --282882918 --545048003 --419748716 --75214244 --240416794 --558192969 --811046288 --828283036 --798536110 --900530394 --784707275 --666508248 --487953040 --795690493 --962752580 --14183964 --785147941 --822873841 --487724195 --698997548 --759660906 --423452856 --540763931 --295878389 --244205563 --676469346 --83445883 --883182404 --265667603 --940667286 --547048431 --310088861 --480344031 --194578480 --976045072 --494303842 --712862542 --716048679 --187798292 --839724669 --301695641 --22359241 --184383541 --161589341 --575722288 --135807762 --637268608 --643860997 --206537462 --455810085 --919685999 --471289962 --997209307 --868781050 --262509347 --90475485 --219658364 --178331187 --613945238 --301134772 --9134665 --856676976 --66703111 --824250038 --854996413 --108231041 --494783002 --391305474 --294084518 --441415660 --166529370 --271694100 --576538314 --22846441 --669885073 --574980337 --754978070 --203720065 --7974800 --690995355 --926392591 --52886904 --993545519 --791786396 --998155454 --882748903 --338254313 --999527969 --670955779 --949658728 --404663785 --739141133 --691610324 --808980760 --789982206 --652092159 --369036118 --143614103 --12430225 --140504412 --552106697 --428925352 --93340160 --273068745 --612571528 --92918069 --441966355 --113525174 --417210197 --925021670 --892714964 --250021724 --293601417 --370143510 --539484351 --524371028 --139509557 --695012917 --832324574 --912538177 --646347921 --383293523 --52653824 --141547790 --933637528 --837513866 --306754184 --379833464 --832322668 --567606453 --325600172 --603629776 --147150632 --663061527 --251124897 --241847807 --687787391 --728345498 --41238908 --530461084 --368802548 --489970223 --747947901 --648651367 --291789969 --251148501 --748255036 --310710548 --884530922 --793349847 --305109523 --850366161 --43263729 --238526225 --246654927 --506376247 --758259741 --585296030 --15318978 --883004750 --711990193 --557700505 --3334929 --577421527 --423962220 --595022609 --184007932 --943342298 --780328641 --38353741 --8113965 --889663666 --406764509 --611665328 --682554690 --161523349 --643615441 --252474662 --536248099 --619167771 --963325262 --839716995 --190797850 --688643497 --159995426 --432399197 --935633030 --837568323 --216698675 --790070300 --587473101 --335912084 --932625591 --958885931 --799491787 --224158197 --850102657 --169965261 --955801421 --519986994 --592771867 --812599558 --895162011 --871470297 --927897485 --701411641 --466903114 --640136322 --727840240 --849751520 --111358520 --386188306 --372526963 --779384197 --704026269 --153901277 --476508350 --887010367 --169393390 --966070694 --162782524 --194510024 --175500296 --420101066 --966753616 --299588866 --443857002 --486190386 --453522383 --69281304 --816023835 --670731054 --543406022 --819017063 --73795685 --668617755 --770130258 --559170344 --998667101 --494203317 --451051580 --211678471 --322840795 --495348497 --44412191 --292960548 --177210331 --504505140 --603700110 --707838729 --20993546 --835377999 --47989581 --488011802 --217879084 --526705492 --798536782 --558239153 --492063546 --411947452 --365435647 --570645018 --909563924 --6078886 --517814095 --470314269 --68822807 --625709489 --670632047 --568559858 --521422642 --793022211 --145432039 --115676854 --47323976 --637975802 --373157511 --4473320 --641570442 --589562964 --538397852 --516752558 --439117805 --587167139 --502449100 --68749871 --626113664 --967564052 --617472567 --374543627 --468605044 --132989323 --651892292 --924582034 --764143589 --765265741 --447760069 --659004023 --519192837 --922301479 --859431454 --653840801 --518664866 --101384148 --722190937 --214217087 --984459379 --372001462 --49660054 --316097899 --867939341 --218756741 --596884762 --502343326 --941503827 --551689951 --339523603 --351263521 --867548233 --425221493 --453965130 --546192547 --870420864 --711847204 --616456394 --267043189 --740246997 --845885200 --994353302 --997161223 --662288024 --27096612 --992570072 --75279125 --731071217 --73294956 --189028878 --892787211 --900887944 --336895566 --251394925 --716831085 --280998920 --306645783 --55084809 --502986484 --234137521 --495827436 --945516374 --680117944 --229166791 --614634822 --893486704 --857316616 --299594293 --40712020 --769958077 --683024033 --490819319 --871355206 --489277119 --964505540 --675847433 --119277644 --283501993 --538614066 --421588203 --859234416 --333226281 --549522044 --468299054 --811455851 --183334031 --584580401 --868136739 --480145586 --168787274 --529790648 --443909284 --193225767 --833096768 --299397157 --953950770 --200985265 --226058886 --929138891 --514477572 --479586002 --801683218 --254720301 --437369555 --810802397 --307851010 --227681021 --233037434 --977405498 --533832225 --257045962 --210183141 --151512537 --267744908 --141064314 --529885630 --171541987 --310148436 --342477687 --414133258 --184341555 --54353170 --564899459 --497320780 --384141972 --269732768 --545075397 --485024481 --386046920 --892772437 --574716314 --582336660 --896152022 --203632710 --489172281 --531015074 --854388988 --89033260 --991091388 --251877366 --382336920 --219660782 --81190626 --256026940 --716495796 --829976548 --3405401 --305677335 --522490584 --411588969 --21858766 --818064843 --433518536 --426778270 --809118826 --8848824 --55034065 --780266546 --911118179 --424630690 --764482482 --378032089 --928544221 --561767056 --519168437 --967933548 --141679954 --916928920 --232359190 --566989690 --686425571 --625162204 --963221863 --920978924 --118673702 --262448098 --596006178 --408838965 --795555779 --814810437 --271746469 --175236254 --596188315 --865769618 --752715643 --677439739 --748899005 --113619460 --105148572 --609987281 --59278765 --645402103 --494348336 --177763811 --840703238 --556377816 --129254672 --203052675 --314975449 --706092917 --827816272 --672528803 --295427262 --746974043 --395998562 --46407557 --519006191 --762585959 --190338905 --741846499 --141777986 --98815715 --587577067 --515231028 --265933644 --824335981 --745933025 --413548089 --320023541 --663717962 --823730222 --211307721 --480020685 --53458493 --358549879 --236713281 --956312835 --925253924 --812281414 --269254649 --823011223 --206819369 --321226749 --79029426 --52150818 --306248196 --34111351 --965464320 --447001252 --459435398 --607341088 --367156867 --102652991 --628657535 --500066420 --190493892 --77508034 --260471029 --837473198 --49010166 --9769239 --778685 --863723380 --560904374 --526146164 --122997979 --833781229 --989568569 --461706770 --771383796 --467631710 --967714394 --813848912 --52451539 --661019527 --923516055 --231775338 --987570895 --464237645 --280376933 --507520296 --28223329 --62574459 --830945471 --92647208 --256410871 --378337700 --199895295 --736860806 --362462084 --743803137 --122103497 --964239749 --579786313 --902545156 --210062191 --775620704 --325807113 --415408297 --775962203 --510734330 --190596673 --770300705 --889467228 --12493249 --880011651 --560510327 --834021647 --692963761 --21440039 --689757664 --369633702 --930585709 --451559291 --199905179 --353568653 --563744025 --402487367 --561145314 --313375016 --769011931 --249511853 --939767022 --777716313 --925481551 --601314019 --35897290 --489974202 --61841868 --98817420 --199507490 --343942478 --591981449 --778728346 --846544996 --744378279 --21595952 --129556633 --694542542 --330080692 --577282613 --227846151 --985335873 --495597265 --328705229 --104988372 --999968509 --592311607 --701971422 --15083221 --915713159 --737509878 --130988632 --79971930 --853816747 --208444822 --578664812 --723043944 --355260181 --378903331 --468513532 --200408780 --799479049 --78807795 --914161955 --525829600 --181678446 --668707767 --445968831 --723774557 --113009351 --273807091 --669741575 --927735937 --655145123 --481510663 --235845056 --602440684 --217961199 --669884351 --283520126 --608491664 --806123428 --52824626 --36893395 --228263757 --780830868 --676547219 --23792203 --66836305 --830468545 --785511537 --587230517 --780098978 --736407810 --441109188 --494487046 --8027582 --768884617 --513424544 --591197292 --966365093 --854523664 --329049517 --708580757 --322188653 --182996428 --291214138 --522271280 --83703702 --479815122 --368311309 --187858799 --496458590 --37034754 --78885843 --819361432 --472911160 --261729331 --73434667 --519512464 --174177657 --362437143 --430525130 --555999394 --653959366 --538728099 --49191404 --918653834 --152807308 --289130335 --164896133 --589427004 --153376402 --881192615 --170590161 --752586415 --910161457 --114538271 --569976391 --796467299 --997358716 --251768289 --413363117 --945568626 --114753049 --901927648 --510628647 --35453663 --817374879 --962363851 --499761870 --671449697 --594946776 --263998035 --336411473 --434890782 --524003340 --58615584 --394003009 --696577382 --797515741 --42721772 --454625749 --618682976 --749516243 --331674311 --964263668 --642050644 --707683397 --381325800 --765503651 --869943631 --93746023 --60864895 --156286343 --730190655 --33813704 --689347366 --120782829 --998670074 --81319204 --665481131 --144268284 --505542727 --433681987 --379528353 --757647241 --435941170 --501194889 --476045227 --646751827 --624870101 --474901324 --883970092 --61117611 --549586296 --699979826 --206271463 --87572438 --57889063 --339836948 --240193281 --730716909 --871725504 --775524015 --685016543 --598103719 --941435479 --3626074 --773596532 --987821970 --927226249 --523144981 --598217241 --710294384 --516283806 --255403514 --800933377 --530174545 --474818693 --714292712 --368787387 --454311776 --824109179 --230652879 --366659432 --473727524 --439369584 --851479510 --221665944 --332891853 --896287307 --600510104 --379069452 --140947902 --559506565 --489888539 --37887988 --759426598 --420758533 --892860021 --812161362 --691999272 --639656129 --65984803 --899362171 --120289199 --538063376 --489707259 --517614747 --415325578 --490457452 --119164131 --414621360 --132242336 --114845984 --234876364 --771603717 --633747819 --71424201 --285028404 --860364170 --314763975 --909198148 --421393633 --301620203 --285810847 --908398390 --448907947 --22771549 --83913838 --940673803 --626878355 --757423980 --245372494 --203005431 --349089769 --728648975 --140320304 --185933264 --543442258 --153532657 --463153077 --702008083 --213106876 --342779168 --855595417 --262020681 --835525188 --218535776 --145031949 --126761452 --374386096 --747628915 --887846768 --647551965 --706948443 --940997745 --45509750 --537365475 --498073941 --533480471 --923368071 --694076315 --16720720 --873299924 --628539907 --688693283 --702756312 --171045369 --715076332 --152087706 --905223734 --344928049 --183676115 --156601038 --1581605 --852539253 --3019970 --918651444 --136185453 --834842446 --797992554 --179147382 --814421430 --878168892 --428714987 --701423903 --483154114 --43875707 --54267233 --987010268 --92962251 --177601822 --58225054 --55926953 --743672467 --886267125 --591345863 --839765329 --983419253 --381001425 --512637833 --310897377 --59889698 --567468297 --281531621 --652476985 --447403260 --646000536 --907499585 --338615965 --820077577 --803901812 --185884354 --839081688 --105235228 --716499648 --639975828 --124577388 --660478509 --462078769 --108951678 --408844938 --505868047 --835431400 --690767273 --393728159 --520401672 --878534580 --912199544 --668936088 --367389049 --184730456 --431984484 --755920107 --229366453 --714628871 --110667786 --397752334 --920804885 --840346815 --502520277 --756877821 --971736433 --157352855 --284801905 --595790959 --163116616 --210766410 --703342884 --879793456 --773550387 --364604819 --656509540 --847351668 --429304292 --513958504 --896763550 --765200086 --70265234 --23146134 --812373929 --378593072 --457132039 --306465123 --850864326 --982016138 --118758198 --269191733 --308306032 --111254633 --83461423 --3175946 --264460190 --533379781 --323827001 --524600665 --866495354 --576959988 --848949328 --295348279 --577372054 --729799939 --161479081 --414730635 --359523332 --406943328 --95705559 --888516291 --524848918 --813385473 --373126757 --6612639 --452684552 --301983199 --562445363 --799541453 --306994043 --546731563 --594165109 --222280227 --480288102 --504580247 --235174349 --204060987 --69736988 --737111713 --26568538 --38881765 --643859248 --689667095 --198359584 --779205293 --978481477 --264441425 --272317085 --301837089 --551777587 --152715670 --547835181 --766764958 --437567784 --365711232 --167546694 --323603442 --368400901 --139548601 --962978245 --991629837 --503916177 --579815968 --70655551 --455668561 --997214714 --743886036 --986472267 --258899455 --700405532 --20160184 --437037030 --217423541 --503868298 --967694979 --224200741 --715508570 --91243469 --609405333 --932817614 --732297755 --886359418 --903840408 --911009330 --581317454 --860887469 --820418813 --513285600 --333146856 --715161857 --223497448 --15093263 --510789265 --986824961 --421671320 --912566293 --779695790 --730087746 --705542063 --106121431 --744175433 --186618953 --586853362 --455284770 --427096226 --716340505 --273506318 --637068530 --915145152 --743611821 --456009113 --292577860 --852191418 --563672960 --935398144 --952928782 --515217044 --699391539 --850246358 --844551915 --727258839 --379254000 --888645760 --49391127 --549557124 --775123760 --861981671 --584685289 --966443787 --618336067 --482345699 --147608152 --696528983 --141453749 --720936415 --616043177 --632773527 --244641061 --805224272 --213586784 --263098862 --398192397 --555111386 --583484468 --150670896 --856912401 --548622688 --812662296 --70584593 --709356931 --951316927 --889476647 --331378275 --149669156 --317757568 --302956104 --607200583 --951717861 --786254653 --477798419 --109923578 --759876351 --426933261 --669000199 --920773004 --89853575 --958439425 --189667073 --761542812 --4070795 --82638504 --930945712 --800683293 --13165584 --493877249 --401857233 --402989300 --908878621 --441563845 --912869000 --312709303 --270008710 --258959645 --297254448 --250206493 --341711309 --106780100 --366392688 --530844379 --964412351 --557993694 --78689782 --421911956 --975963149 --342904130 --298043340 --102705926 --165951908 --750195161 --873478452 --214956720 --258460437 --110843926 --896400387 --455349488 --926325277 --384452772 --658594907 --210068807 --817265103 --190616109 --495197113 --544565775 --971462366 --415813750 --203296093 --702014518 --384096129 --406627186 --840399378 --943548941 --167670052 --357694011 --687587863 --580603675 --326139334 --582049846 --969236117 --623157012 --636700737 --183969914 --391141094 --752211663 --724002547 --398646626 --926428559 --791776889 --989891966 --973247561 --763885263 --498561658 --506897288 --756080770 --133734681 --373638579 --206852386 --349258001 --962635120 --100317882 --53411089 --193738416 --238822836 --347530582 --319508080 --507287164 --638018569 --500814453 --646076244 --463555307 --814471750 --865414034 --100847218 --11513421 --171367332 --799676381 --29211510 --534202396 --888880435 --929298039 --604925350 --89558112 --533284165 --984419969 --900737070 --600911238 --322423316 --204362569 --312428940 --192590198 --567990862 --559707235 --715777552 --513473453 --332395323 --593058885 --423277097 --191185426 --513720923 --179091971 --322565388 --112620620 --46597460 --552141339 --205469804 --802688458 --681211409 --360833942 --443123584 --446373310 --708839249 --698504075 --847996903 --90064605 --661879721 --548372739 --233960905 --860038861 --473410748 --906679365 --734534860 --972836844 --346484124 --879066833 --448921219 --803911348 --788103652 --872724629 --883381886 --820648639 --320981941 --433607435 --991800312 --204333620 --154154607 --386416800 --39316190 --423894319 --500622883 --736749955 --132792385 --223255067 --170334396 --858664955 --814686247 --674009352 --883617202 --700250950 --316161678 --881985529 --875245525 --139559984 --445700046 --730934569 --335385168 --752666698 --56836683 --983816647 --752975082 --263573428 --286983565 --995226061 --623430565 --775755932 --737317468 --100653779 --314857106 --411399501 --454940782 --376727530 --55602629 --317795813 --568235885 --240443606 --440665274 --279099696 --922198154 --370488235 --844477118 --62868418 --539455185 --897520747 --620747288 --700092255 --539070283 --263113616 --538538949 --921924927 --803339339 --994779465 --847669427 --134854731 --600266194 --71062831 --663515598 --763495259 --334992233 --584298177 --567883385 --413615808 --630917839 --781048629 --873335558 --838866925 --852453149 --558337449 --816636274 --245450506 --544255683 --300967781 --836010250 --344335339 --410905829 --324346147 --376582038 --252129360 --47720966 --444448327 --736347834 --457514989 --120186078 --939442640 --143644794 --895622124 --862929195 --247777583 --38151625 --288065207 --799200733 --544964574 --474854391 --470729333 --806622545 --967692447 --414722173 --912421287 --631887730 --776487802 --442322747 --535002146 --54366305 --315131433 --379363573 --979612653 --232112224 --655942178 --273371820 --442876350 --644051637 --266086893 --99435824 --619974916 --353821075 --822161298 --262955957 --559576175 --676050053 --12820113 --940133169 --513887698 --786732103 --27079333 --307407063 --28761172 --482379199 --686239940 --252448709 --914129026 --235177484 --942118362 --795763357 --808139229 --979959026 --736827022 --189242657 --260191268 --99416378 --363877438 --14327372 --830854606 --29204975 --103536812 --751811306 --691531051 --971918236 --714198271 --993686434 --728028167 --520115192 --79112072 --958048366 --121817657 --915723327 --619610979 --312740705 --29848137 --64919997 --24807806 --952773672 --476649408 --362842058 --669016203 --779129917 --648410898 --155739313 --455385399 --642582494 --101989892 --975066655 --551062965 --938925002 --612812668 --14861950 --458524438 --487874030 --674474904 --380541931 --135301090 --353808791 --549057386 --80508799 --815818496 --771283504 --820061523 --389298203 --19956215 --559900566 --833181205 --790756410 --223029196 --10487697 --92219452 --28729700 --989747929 --950735159 --416890978 --593617221 --40024420 --165564846 --666891275 --883998418 --676055257 --455466132 --74055084 --568043447 --144972705 --33915646 --909412461 --383122683 --806328454 --270763137 --952291991 --706331871 --242484002 --681672270 --170570095 --679542358 --253035291 --613347208 --578296785 --898978294 --963435135 --338796688 --666068109 --788691364 --71767880 --961306385 --377026081 --847402281 --866287498 --594605205 --319415495 --779460842 --325700250 --824199444 --376477444 --787759964 --215802754 --410177934 --903649082 --981973991 --815477729 --114024330 --372077965 --980844055 --746360708 --995530924 --23548904 --687468056 --461103924 --860005338 --17254744 --587692238 --792946534 --939166354 --499776343 --453194551 --814440058 --681863159 --515542506 --233981631 --260258403 --821917760 --84762150 --203570583 --224891434 --435873144 --367104556 --816663358 --283135434 --176312788 --148717504 --379421264 --944177751 --192691135 --87843993 --161374257 --864806394 --816712569 --736636984 --293982201 --787792804 --300944158 --895951847 --968450575 --872378526 --961010521 --166785752 --318040273 --896469949 --611300378 --293096248 --117810143 --117216927 --260115141 --177688250 --839532249 --758736415 --839438350 --544151684 --952557523 --384346349 --84956050 --535534655 --167358223 --82986778 --2502070 --800320547 --810972902 --589336290 --7511490 --857693295 --579078738 --290399565 --466794150 --197105066 --415606299 --604789453 --442440631 --351637364 --404277267 --862498437 --644384968 --490958187 --264245307 --116067802 --211740858 --506421308 --481038403 --278380396 --669294911 --396765502 --330842772 --609327016 --880572189 --847582415 --541666183 --917373188 --904735485 --943016397 --492328641 --876025498 --284349908 --520083387 --879267375 --365650727 --532105900 --881565435 --45720004 --920849163 --731820088 --474072593 --505120771 --669408122 --642675541 --945917191 --820686647 --462165651 --711048500 --969861482 --765843266 --114559094 --175118214 --678525770 --655442814 --626161009 --602266393 --57125298 --232570258 --119728963 --518528726 --382473728 --443676448 --910414958 --976828 --376732733 --911015233 --692813458 --607865357 --67665652 --84261570 --281782956 --479342125 --479939796 --560841708 --58495188 --624822683 --717074061 --416734666 --643499761 --756062038 --13376370 --570348331 --742498477 --185496563 --94086014 --707743312 --25368319 --695638194 --762374925 --113502447 --408464108 --848281552 --378442021 --270825679 --430474359 --611605568 --695758768 --560722698 --981134539 --493393878 --344954302 --443389577 --642252741 --520581737 --363363728 --991954449 --843708983 --320057101 --611818997 --374077950 --844910000 --756286355 --876876504 --76161755 --919990176 --461987431 --629935518 --561524681 --551918590 --772430902 --338818080 --771374363 --221026141 --630071943 --262914151 --389414507 --395786372 --552278136 --162363118 --51928025 --33224834 --698533736 --812797016 --15788385 --95802485 --519440341 --377540937 --53390025 --725007328 --523622745 --190063833 --170267070 --47947642 --390614058 --866069102 --191016778 --495975873 --842878435 --759778645 --55907847 --411247981 --135917945 --114421536 --690656888 --502492823 --477748214 --696790077 --252797134 --311503547 --209582603 --237644507 --44937385 --917960851 --931487632 --8689249 --54264700 --355884533 --636638144 --445208367 --326906556 --580129621 --881139795 --3727422 --804315822 --425002192 --42420646 --672457590 --89085920 --350145082 --172898682 --254828140 --533778983 --565736590 --209209122 --862851144 --450392126 --372524004 --505613494 --351997851 --795297966 --598520144 --112812949 --864470709 --560353018 --912705524 --668181417 --82836084 --945591118 --401212093 --293800013 --225771656 --326850956 --911641075 --488826162 --515746656 --742341017 --539048784 --79722979 --560430493 --63918878 --161520284 --11887010 --877156799 --287739856 --534243356 --470229034 --730930532 --887824461 --953800222 --518916020 --16887786 --95950812 --25979263 --629791553 --581957104 --721558992 --753218826 --760473385 --439739218 --898058567 --288854111 --138319041 --53130016 --669964374 --110117912 --489436924 --580825780 --332713585 --27631995 --856080936 --554983674 --24050555 --586279673 --561512344 --910104717 --413093040 --578148902 --823524445 --464302838 --973526598 --469208614 --281702651 --550277358 --990456697 --570244756 --311270083 --373334521 --868714833 --950809682 --491488545 --929277090 --722292812 --807043513 --144535552 --588930669 --422618773 --985297689 --372548261 --37080721 --512481499 --876205626 --345300567 --307845728 --560293015 --189445757 --844649090 --338343662 --596026519 --971387682 --587538252 --466253525 --765292712 --76475802 --106308890 --598863991 --218873686 --868973779 --169212956 --401195074 --556042640 --888778648 --995063356 --773646890 --852990318 --480172379 --819224815 --91387815 --823513604 --418633637 --499025737 --115359153 --420348868 --905006818 --776003364 --583488400 --248345198 --613404947 --79253733 --481352279 --592042805 --303883668 --334441970 --912771007 --445900651 --689174174 --556806124 --437307860 --907740937 --334463359 --898671862 --119387446 --188801778 --52850620 --352252128 --205108285 --132359625 --13893215 --780728706 --250074347 --802878630 --41458658 --711486136 --230366897 --272736641 --317798920 --150401130 --18242132 --617614830 --57273788 --986377755 --783779265 --796609697 --891111224 --990780612 --266906604 --667194742 --367230609 --869505196 --180884060 --602004384 --464869516 --683786971 --497383721 --165029805 --843626112 --36692033 --598655138 --232210427 --785737169 --523084489 --322991257 --291717813 --220568833 --446536251 --117497087 --518681208 --883357693 --530432291 --170597854 --475868904 --943455082 --824485752 --906491320 --145834800 --248369276 --743163943 --387163964 --24979529 --125885239 --606920503 --735317802 --996646536 --484470207 --436549601 --394387232 --28616115 --290966278 --999156223 --974617268 --19425574 --913343040 --517199427 --605768390 --957480776 --955860801 --411723725 --33058245 --844810070 --90815035 --301549017 --528057562 --521748818 --255075918 --803418273 --642392930 --499303307 --782387089 --992176338 --782679339 --71154264 --99138231 --622402066 --910362524 --282913865 --386007401 --90561911 --799092169 --129388143 --607639976 --337499449 --510840693 --847086980 --555190790 --334629259 --767600734 --203607494 --523971986 --738821947 --60246554 --809830174 --725875982 --882363128 --844529592 --781021885 --981372174 --513720439 --7790387 --990931076 --800117666 --979751655 --661908532 --409033018 --390477777 --216736980 --3914636 --303330013 --88277584 --550002073 --739464099 --571019247 --50687832 --194947361 --129358918 --739393106 --153090484 --638997753 --613977229 --33423352 --162531863 --443490061 --94348540 --738738205 --9374531 --204878929 --360270623 --188666019 --840371803 --52435732 --630567534 --153911598 --38684153 --505721640 --49823874 --665279505 --767282201 --317433293 --858177712 --762508477 --156291788 --90229424 --680294811 --597295224 --834619283 --992071253 --327100699 --738377390 --747899140 --642930499 --967068570 --990907206 --188670586 --353184496 --445415907 --770642492 --125789434 --604096123 --777460702 --187798774 --830780594 --767612740 --283216220 --320735386 --806316968 --408071291 --192530987 --448569943 --625749178 --188621074 --600619863 --57328711 --566040890 --248532763 --149278626 --994595239 --238568883 --413913667 --624345043 --258737948 --621821758 --813784561 --360403823 --883003419 --827420773 --695147187 --553337698 --208768566 --321761412 --684388694 --881734136 --235587955 --630786841 --608167914 --118713018 --168844875 --981139652 --289556783 --152681459 --246013321 --648572445 --339747584 --375448977 --930724014 --678212940 --735516082 --179451961 --839945593 --568922613 --399393544 --34527674 --18216157 --833220087 --509521850 --462555821 --977612960 --389181060 --731674820 --835190713 --63357119 --372890507 --990241264 --789591398 --993805458 --803005957 --606786338 --712880116 --356158616 --257747972 --675991848 --783423945 --264001262 --120167732 --426646863 --514110921 --843758626 --64232638 --644874768 --437078344 --156342256 --461123625 --993363572 --692896183 --933676533 --973466944 --926118754 --346710435 --905566876 --68949436 --310686015 --773193782 --47124154 --386390563 --223351889 --900151465 --193371692 --171449621 --954497900 --848256399 --683193333 --637311009 --113939500 --271774293 --251141298 --264178201 --31031039 --677727475 --656867072 --134154141 --802894455 --735366437 --444407044 --363712645 --390202243 --846096570 --141320676 --365242767 --131360869 --121201699 --973198322 --234355342 --351840733 --985473848 --423279764 --477222535 --415575749 --434862689 --628272237 --564198275 --949576524 --552968274 --887308481 --759433980 --576619757 --419577893 --459498548 --55670252 --434821781 --711465872 --60472288 --853655229 --702122813 --622382004 --443875890 --180641250 --794598958 --189572854 --211085931 --29655865 --450635564 --217555799 --13231644 --192357544 --993100411 --291965250 --939118288 --527737590 --886340278 --874511280 --751024678 --355095010 --420016298 --913583670 --354340718 --112302501 --860231791 --633798040 --432769586 --152856954 --996249686 --475739860 --923024574 --220165046 --478753057 --565376898 --970592483 --924802267 --795581202 --116517039 --688795036 --73838370 --419908032 --13656033 --409901952 --415595090 --116752703 --750492733 --735181238 --745478158 --585949815 --850659443 --334731375 --484875119 --242301396 --76330188 --756691047 --347281575 --292054958 --538508427 --412408594 --417389113 --824228956 --736110981 --135075405 --848943775 --878904138 --155282067 --184962967 --723720533 --932960853 --798893849 --889701578 --918746528 --503395337 --56939014 --773815892 --606089214 --510193666 --544653247 --378260045 --758616100 --15514730 --862468761 --888251052 --134368760 --537302525 --401867591 --889611281 --597748 --238734905 --344068276 --662656905 --685356274 --207899319 --997953713 --392029946 --5808446 --979754277 --433969279 --115456765 --501161336 --430744680 --476902440 --507014006 --451138211 --504769305 --969530302 --647320824 --699872095 --958610195 --226443955 --108616201 --359038852 --501190218 --400594563 --790815961 --488569831 --734623672 --901962909 --222449381 --702686641 --367988910 --835391018 --928023410 --711124493 --887348728 --83366535 --36909924 --485985853 --826479345 --432692962 --903109746 --764958147 --721460687 --945824484 --227587204 --94592613 --304299641 --837174270 --564002849 --833629013 --372222428 --603211642 --529460585 --909884871 --393259912 --726298838 --80338357 --771917588 --783731350 --300709739 --418296020 --326387795 --126668610 --349196406 --250541033 --27299775 --702194508 --236101151 --382371658 --928753548 --764140975 --603370092 --331587158 --368499615 --11675541 --686518450 --73615583 --692005301 --152093698 --496394679 --211897731 --545152919 --37132561 --920173057 --895363655 --959347859 --650767839 --153694894 --714001375 --122239276 --413698149 --169349295 --515659662 --918640633 --850446290 --65276574 --294625687 --261742116 --825144948 --962012429 --962379432 --537403023 --228846172 --301586716 --830889919 --353786733 --810252920 --849453763 --226025550 --30112087 --874947622 --6848502 --926765706 --64367280 --79041527 --381094614 --965421072 --926184990 --649958139 --300277525 --150942554 --335819558 --812914107 --345799092 --512031507 --934686770 --395229191 --511007775 --712353891 --816048136 --514272348 --923745669 --251321003 --278914223 --103130314 --464072322 --207910708 --13538839 --895149728 --641037745 --580618209 --791561601 --308680770 --687410777 --337579533 --618880705 --859468294 --594269584 --733344668 --415171911 --68686564 --940960750 --287724684 --868420149 --665020693 --953499794 --27410168 --497749263 --504767977 --510425817 --297344149 --542174646 --626309377 --696808536 --81885209 --635602282 --306225485 --458615364 --885049479 --8484907 --142663758 --799971696 --551687246 --851146530 --461461502 --376990535 --38951881 --950377808 --112628801 --93939515 --165519190 --689697513 --888267354 --199423779 --695376828 --153203462 --981906233 --797409044 --303282509 --970215125 --403746267 --372582074 --794115225 --209522002 --70771225 --653037840 --771274847 --728888086 --537362678 --533021034 --399422806 --958140319 --827590400 --430480286 --679038852 --70301233 --878778961 --289381776 --44830900 --762784692 --404397976 --714785151 --950874548 --40989691 --616620973 --685319840 --609305505 --672230623 --916226225 --906675535 --412715889 --254798017 --63126190 --499621784 --956722653 --199270909 --954496364 --162335596 --304600143 --802209844 --325313703 --788316962 --105458006 --343199953 --696810326 --272341314 --712152102 --660114571 --297183835 --360069211 --82328595 --832521706 --718330689 --409846354 --21049348 --510851775 --672843604 --548796444 --460058008 --95691853 --236879962 --603530772 --208844945 --613711077 --388777476 --437410617 --497782153 --343587163 --581509528 --817953710 --703741041 --415854052 --938137991 --419594167 --818074805 --914247648 --336130904 --621912117 --303336109 --853802424 --342780684 --325447641 --567725727 --698958682 --46657560 --276172485 --455623888 --641041959 --602070580 --858953180 --955892271 --834270621 --139265357 --96750791 --77811064 --51091310 --732175591 --93318790 --721251865 --822364922 --880957508 --31484580 --582315712 --402195154 --333746685 --971573144 --626020818 --526158700 --339231418 --465768334 --52862141 --5777243 --119144498 --125610580 --552764503 --181044983 --285605006 --860803002 --969704235 --412164158 --590965127 --175134169 --827693137 --278136398 --553968754 --636070095 --891985655 --83219761 --648217389 --899178004 --766313435 --473034684 --980844294 --345815547 --672205014 --265177354 --618249529 --848014693 --902864494 --788024989 --957130158 --496033475 --854266465 --494693387 --342508092 --8772650 --363474169 --227513619 --898541845 --122938920 --825129005 --48769678 --433067115 --260427507 --404753716 --277869371 --942902949 --685026009 --967654897 --358063381 --465096351 --852323504 --581910288 --688321775 --594222029 --267772964 --154360909 --44970779 --572324901 --837913885 --8035303 --859011495 --608699535 --761442153 --548009062 --696672910 --355544969 --495672979 --372653978 --225868638 --117283327 --25640362 --777913593 --529725116 --96981247 --777542655 --925649843 --610319885 --974217282 --689272086 --150021807 --849384463 --417453907 --47658540 --702010106 --199880348 --586377657 --546541019 --858505858 --952218846 --992998407 --889213856 --127165107 --544692770 --670559427 --608867017 --784642658 --908728294 --288913260 --400594757 --615892332 --969534257 --898254023 --671788934 --636888645 --209486714 --414929941 --147178673 --161024701 --470951523 --615558671 --396634201 --651715887 --807236290 --682939063 --878865357 --730040750 --346265278 --268858941 --561969560 --558064131 --327942021 --50074516 --460930668 --795375116 --834849368 --399936575 --586406987 --285867671 --880561926 --661170845 --93118915 --235429980 --336807283 --654091056 --89505566 --276613317 --30303403 --356523765 --655287042 --441529745 --303158070 --909785239 --234327888 --951269336 --248897099 --306330778 --968213303 --70361842 --607522274 --51748900 --340636691 --767348907 --714271654 --690204649 --338376297 --503052645 --321466751 --499406106 --922192370 --797786593 --165738369 --637990129 --328311375 --540914342 --477817752 --235219265 --641182759 --493367514 --598272907 --371672348 --728252624 --100885052 --311160969 --474584137 --663826442 --445549848 --707258763 --473316083 --166123692 --220588021 --139886105 --363470859 --504304423 --387284708 --147343768 --5625965 --371397375 --93678153 --925965299 --443527068 --660266163 --767267539 --420980538 --126240105 --647188187 --975231271 --648396462 --185502174 --898836673 --251667533 --746392321 --783157408 --461073387 --452544957 --967014923 --766654588 --305026084 --760967364 --896129912 --434751922 --176548468 --241376707 --953813730 --717335593 --408535769 --553388848 --663698636 --61256649 --830358587 --86228480 --191560420 --803691444 --768171805 --633264522 --229937990 --92938443 --62453850 --163679346 --787186203 --577501569 --516041416 --995922680 --330035506 --755338847 --864220815 --491741825 --200929636 --15058090 --113663046 --163686764 --17419095 --452781870 --385721010 --623827334 --845380451 --792783110 --839438695 --548715454 --808126112 --248508183 --892080794 --311566813 --843619812 --627021380 --299919718 --872895919 --274135908 --520473672 --639936073 --386583541 --911020187 --704418189 --988524398 --997355544 --521087778 --88595788 --698197982 --640674964 --203047328 --499214632 --738638199 --762985349 --297125409 --460247963 --457730429 --976375075 --368741606 --655386204 --364657573 --687369122 --827401293 --179645656 --301030516 --931310450 --606021296 --707784578 --476179931 --115221180 --892043309 --685297055 --727299922 --41832150 --972023450 --611909241 --59001415 --990210769 --229672260 --391071182 --170105437 --633986132 --827322625 --84096571 --55039952 --565303789 --779507075 --81586545 --454795284 --39975580 --100394706 --733569867 --85570111 --300148583 --399250937 --18659815 --555715186 --303635050 --83002333 --242972857 --817454455 --815622466 --703972651 --600414109 --120612351 --349813023 --49265132 --751834953 --331338557 --554455334 --344546195 --72725301 --90977438 --737041321 --108028149 --133146653 --912582001 --974906421 --499150045 --120130121 --66595353 --397427001 --968897391 --261149798 --410599717 --824683896 --246288489 --893264363 --572791345 --992557911 --802251688 --682596774 --220268129 --583416920 --756859804 --815239394 --370931810 --865828612 --180860614 --861563151 --480006490 --569790727 --355358712 --656008928 --356021776 --687706106 --492478141 --200677560 --451584264 --60534990 --952003539 --23568085 --217359807 --472599514 --73773356 --309341355 --54188 --916121916 --247526901 --394272607 --123057083 --988466700 --477806557 --245193547 --898486255 --193984521 --131713497 --239772272 --681348703 --393812629 --763129265 --657359482 --709706459 --127507186 --216131102 --911374035 --286568792 --816905434 --963903694 --712688323 --334071104 --503942386 --602352 --922833516 --908307587 --268341875 --458070742 --654234459 --402620378 --393409572 --468162534 --995280948 --530767046 --736503424 --234206843 --741419272 --371960203 --981663081 --296635582 --901638201 --246372163 --908031590 --550004971 --131639893 --424930721 --873084679 --342906829 --340697101 --340119829 --717330256 --818048300 --289884861 --787447644 --506670569 --822469170 --873302482 --300925471 --567492845 --143327982 --596375344 --47298032 --536860914 --641087643 --95724920 --315017002 --195194978 --683390557 --620164228 --404075737 --153810964 --657436706 --978458381 --878633964 --911949741 --502545448 --319527302 --681971623 --74569702 --941440070 --380697492 --14362268 --577767878 --368131540 --346378736 --979447854 --417329456 --845116878 --267181177 --551637897 --71107867 --550142723 --559191206 --199296242 --888074047 --692626297 --462423535 --515213180 --437601412 --790544083 --72802981 --99320317 --969561467 --201886329 --568422512 --24982140 --571353884 --703106482 --557540788 --494689047 --256144041 --801401581 --519115394 --520621848 --175247381 --373593692 --581828777 --63021222 --198401555 --92811673 --906353004 --951376446 --228322797 --805827586 --661626359 --829242775 --259128901 --236611038 --366116793 --657315291 --147421486 --546576328 --55163086 --83180773 --525261764 --264711054 --405852305 --520881852 --850393464 --101327895 --946144962 --100492970 --838270644 --683059599 --261723547 --711828406 --784970972 --956198480 --556291524 --447592481 --970786382 --937157362 --946935838 --777812613 --80142034 --59516237 --404765514 --855152438 --551057223 --189680692 --536911282 --368640776 --397591158 --308524763 --897458042 --814270164 --425609398 --632005683 --902097868 --134511014 --880279999 --880972795 --875297574 --519870684 --653108199 --579762088 --212035244 --73243293 --840369951 --158726297 --506676594 --855403743 --211770877 --37513561 --336766742 --408038494 --683148153 --164106897 --475122666 --551382909 --21850545 --833067832 --303760551 --7632345 --69164194 --652865964 --834323138 --987120614 --537192461 --366655504 --417242291 --435834539 --864999748 --572921114 --144088778 --591241592 --112212719 --733144069 --34628757 --939923011 --102179478 --781500854 --543564077 --607421313 --432621818 --494697876 --583813381 --682749181 --631204031 --440988165 --411113322 --457041655 --138844641 --456843407 --969796265 --960427210 --945071587 --979569623 --31066663 --482297838 --843436632 --101653354 --414684823 --1365870 --682158653 --369113451 --786831801 --433366950 --85117419 --859453222 --946799803 --90591600 --860384203 --61648345 --205698229 --381117535 --390125184 --582213488 --629117804 --747817887 --648997918 --946623010 --921235093 --37371929 --354968686 --999198844 --198628974 --760128778 --632750727 --688444961 --457869331 --600608695 --728023901 --822760582 --858247799 --317309874 --656518919 --788340860 --577676328 --434239383 --924382951 --610949376 --648834923 --575348912 --399272217 --614453133 --992642620 --661628623 --851746400 --769403635 --621851274 --477638884 --279662265 --205736771 --776508648 --881402825 --409051800 --139656365 --218123162 --839073568 --626883395 --870934651 --775154902 --263345767 --817291652 --690860380 --136170242 --186479701 --599652549 --31948875 --223716769 --609284494 --635532843 --777239922 --250515631 --345801685 --638622512 --300309931 --617159865 --989835905 --690758807 --413673508 --312833943 --391117863 --934247333 --886518822 --861937148 --378568600 --518855195 --524256594 --493046677 --769804411 --261551121 --956042007 --480989974 --988839397 --294063025 --634486503 --308266090 --284209295 --57788566 --736199649 --263791745 --557112092 --752911394 --456891630 --881176340 --116234221 --178712338 --747037205 --933701222 --875870207 --819475291 --566935815 --376783736 --588075087 --178258815 --366924534 --252384952 --880852371 --185810957 --275020321 --197186706 --122198011 --99157797 --333537775 --136692473 --184000683 --132478996 --680749548 --241946049 --8481589 --726194816 --466164988 --984473441 --582646098 --503607089 --478808258 --419909787 --449342047 --461426549 --251273314 --680679638 --74306471 --454371307 --306956093 --959395575 --413741049 --213099757 --115280268 --620901166 --381570596 --96621764 --794422998 --683605868 --530704794 --243780203 --24064870 --749787568 --454019362 --831204450 --966262480 --305822809 --722011401 --595879550 --92035383 --57452499 --863741283 --609810497 --968052282 --26705375 --613035152 --966033973 --440851043 --644205034 --55206616 --638742476 --345920711 --571896680 --458655707 --106403309 --512875482 --74616397 --804777431 --495862777 --460276163 --125454622 --629081487 --265010543 --799315167 --36578052 --513863263 --986937014 --103103695 --832281114 --933109261 --181436000 --131060185 --114866885 --317545785 --728088174 --483606387 --284295166 --342258578 --800631888 --316129756 --901289019 --267948173 --199158217 --946392255 --35338067 --623403971 --755138626 --962354858 --434533028 --170373397 --132658934 --378359024 --725138587 --646778799 --210131492 --694914837 --2851651 --161529640 --277382380 --937536663 --729291499 --617043058 --13613107 --374099230 --875480689 --504987108 --221357947 --182458284 --491965267 --684851010 --498140034 --153154933 --128748391 --164216462 --66599465 --105116757 --1953617 --443547243 --944343120 --637269420 --3315297 --661458561 --338339290 --21734045 --111295084 --830424902 --439884499 --440352434 --628052079 --330042032 --660966064 --570673583 --565794811 --577771378 --486618399 --50189163 --385874245 --107865201 --74326297 --449675004 --422999775 --395463268 --816668597 --509770125 --495001144 --894009375 --300678834 --264071512 --602136751 --220894980 --671714542 --949185627 --613600 --322285265 --491336785 --495572012 --608268619 --649354449 --89464974 --781017550 --726532232 --383678781 --940063661 --758702645 --272767071 --467050700 --204519114 --760006893 --171340441 --255685468 --55947715 --401096009 --95858318 --998234622 --986124471 --110185218 --985254661 --103951476 --593291369 --878704783 --321631977 --981368 --575452825 --203753217 --397418481 --116262079 --82401022 --751467869 --283806104 --487417655 --627480723 --609020246 --334000674 --602228922 --24076165 --682991355 --328108433 --911783323 --772882370 --620274465 --223765121 --4169679 --292055986 --891002368 --978115355 --713229539 --64059844 --397398617 --469634812 --740253178 --97965198 --803142411 --318164951 --741294271 --900596804 --226865870 --834776297 --19209672 --556827062 --637165351 --25280351 --344306951 --221058397 --485365141 --258633200 --133934804 --191251044 --51119997 --547475602 --111835457 --142114573 --518318530 --355583827 --553901981 --597527932 --487476630 --422309957 --856161892 --252797583 --105846022 --887266990 --619963746 --784570702 --105210131 --584743181 --947245827 --133485689 --489432718 --857177679 --484928976 --359505330 --320011159 --805890930 --296066617 --865129443 --530761234 --360986005 --139921650 --589366989 --530490952 --681819757 --160105166 --491517471 --737308151 --928210562 --223940290 --177150391 --219362406 --211944534 --100462981 --290313741 --552600507 --967193230 --452405035 --573788666 --83500295 --528835260 --309704025 --263611174 --948058869 --400048716 --119816942 --885444651 --282756761 --656127279 --795713567 --466690475 --818706223 --403487090 --135768661 --507032099 --994732738 --859267030 --489687682 --640533092 --911653725 --514832711 --476776627 --213648456 --599870071 --291655183 --27898588 --320726356 --190171044 --834301502 --745189559 --87080081 --186038588 --346326927 --439856334 --230266817 --945291624 --930341662 --666032132 --7474605 --421607177 --394002744 --243095300 --175266689 --3200807 --296432038 --993502174 --591775344 --724630025 --486790712 --853481005 --614828581 --411008291 --764013703 --213780200 --311643646 --864366696 --435068682 --736340614 --435661937 --91836228 --827031241 --469544813 --86638644 --332775222 --829093610 --191458548 --942577513 --208136181 --882505682 --671653502 --909679505 --663428933 --206648113 --296316090 --746505507 --220904584 --549716015 --800882833 --956789664 --985614226 --980912513 --730145566 --608166634 --127439230 --842036191 --312648648 --622424564 --490016367 --492964484 --552817901 --558776212 --272978527 --518826478 --294183841 --58735248 --475674654 --554874342 --441668062 --707792001 --724453769 --429942406 --46482922 --352996386 --176172590 --510087488 --607681492 --528333555 --564478683 --657530391 --845418108 --88418009 --247908468 --791180937 --571118984 --265169499 --775885924 --905953667 --860676231 --439167920 --209406596 --793650941 --913189293 --589538792 --684591062 --18636738 --947808164 --914135258 --517625909 --511368982 --752663662 --194248020 --104049347 --49347105 --89197713 --774731693 --364274575 --500671675 --279408237 --212891521 --611106073 --846780402 --89515758 --771487540 --913946373 --242942541 --332024146 --868745647 --947372399 --212341051 --676231495 --852479979 --280014676 --633734430 --136231976 --499139582 --611931888 --918116441 --711963503 --101789221 --95253167 --627258227 --429423153 --439904970 --93177149 --985265484 --237863187 --932673678 --382247492 --838969168 --115487767 --93902895 --464816854 --965632114 --89154642 --630698261 --528559141 --421701612 --715261343 --637750797 --298482001 --916881850 --421324661 --179045237 --176440685 --365584424 --361214911 --796655942 --101957450 --668148306 --907493976 --855492365 --578053611 --948533183 --288594317 --178369149 --185802636 --273249700 --461686117 --582673517 --789269189 --221352744 --459617617 --783913865 --184183007 --817967089 --196143260 --916396242 --476998085 --908896510 --379629774 --981940136 --157124592 --823464861 --174171550 --846253741 --549170913 --975844435 --622949193 --35269826 --985851694 --401146608 --478928221 --534408553 --282485265 --802682264 --810276040 --865027905 --374007796 --117198244 --992122656 --659631844 --897730278 --407985456 --385078895 --384344651 --35884961 --103533546 --861006019 --657641002 --839091889 --286371988 --480002551 --736771356 --820307528 --870902 --831052277 --90006539 --222189982 --753403783 --366482115 --335054850 --127909209 --514115474 --675452381 --368050248 --695476549 --19098841 --213051440 --322226071 --133444409 --267115454 --647395592 --139715929 --329842328 --371113083 --459867157 --94920935 --433007785 --269874739 --949811043 --713596615 --637031095 --728092463 --294381787 --254332355 --296837156 --801922051 --216649652 --324579820 --931308323 --460031152 --385139878 --577021453 --446162321 --394314105 --289115310 --865474195 --432075030 --857511168 --388582197 --515003766 --629978864 --959317636 --379672755 --664581840 --636426952 --266262704 --683503610 --162097858 --560823902 --690834586 --18330623 --680710472 --902543777 --407247171 --165842097 --438323691 --295744554 --218634008 --449456999 --383088286 --742312932 --421491674 --150641294 --689785906 --228132936 --352765038 --356733168 --363104412 --190541226 --334434898 --108023513 --464812747 --512026484 --473711769 --470238865 --659802916 --534272285 --398118877 --778562828 --68202927 --640288247 --621203847 --468180231 --341951310 --905015865 --764452255 --632712121 --69707718 --857058315 --615415576 --438533546 --501920839 --456430819 --455613649 --434110848 --943420349 --472110788 --665216292 --777394985 --432818909 --903032666 --387425642 --184958522 --676282324 --88977614 --871664759 --664670015 --101014402 --177857758 --23499133 --334266758 --936413847 --56038524 --805519489 --572905893 --542078222 --725516127 --659193432 --178921960 --644098264 --665413647 --651217887 --519265875 --961726547 --317284948 --864444329 --120995577 --289851635 --440028878 --717949186 --721010409 --833173807 --877012875 --893287614 --765629700 --980169819 --897273666 --852088606 --608809768 --889120392 --259922395 --112515022 --439153949 --74427795 --727387322 --70494632 --924667986 --266204088 --981291830 --506606852 --792715434 --230909175 --281987756 --7360214 --675877154 --185358408 --658163507 --333308514 --569538429 --857392234 --265690200 --640898936 --714236699 --614515158 --323706817 --462706333 --561487702 --672537671 --761971871 --953303252 --524084848 --437540344 --445886883 --446894518 --178557097 --954335037 --876204780 --741133774 --161890222 --384322309 --318934152 --770830044 --543455910 --507716761 --340739944 --27801970 --803382534 --487912009 --401163825 --774848329 --774378229 --684310946 --975277507 --986035609 --758495457 --418746832 --349570690 --679330083 --752306230 --89597500 --179937668 --653639200 --235899513 --523460930 --416249512 --70804403 --972070431 --750294709 --55432097 --598462090 --781708600 --686817573 --135880250 --47236753 --798033320 --76732637 --481076258 --531708486 --198462453 --63778089 --480751033 --451039542 --994981235 --361144196 --398743417 --999301135 --285313746 --432582554 --474415931 --693009960 --386555485 --251319232 --166864403 --948886904 --978773354 --885483743 --578317389 --188814351 --37354325 --772013295 --616039303 --906804868 --20368620 --362220105 --257571215 --142639196 --523988881 --130959527 --323121137 --323016671 --857211791 --222478846 --164725340 --363263936 --610331696 --259382072 --332775820 --660972603 --516918132 --282272022 --280225502 --41849548 --192562087 --559084157 --77050599 --644195081 --970581942 --198415999 --109941579 --82081742 --466275377 --655620317 --117759078 --704817366 --409662269 --300581650 --859611656 --87014933 --283078055 --225688632 --754603301 --889976243 --626835048 --657216008 --960729128 --532260990 --91574190 --575246855 --351933985 --984236614 --862485043 --422249292 --232214202 --121015123 --827080824 --816106777 --450874577 --110673611 --136385130 --456968358 --160231960 --61361146 --256195905 --372695290 --561080570 --24864982 --665867875 --595189525 --29635700 --937923377 --979942272 --815242709 --471151047 --642005973 --897121986 --842763097 --211286843 --75408622 --505347781 --539168671 --95086929 --823195731 --5717926 --539337206 --772610681 --60473137 --973034197 --385733927 --636308698 --845923011 --929585444 --491519385 --291841073 --906202988 --377302083 --654746922 --461336002 --690148034 --929637666 --584307602 --247350197 --912731333 --115162817 --467364994 --238346019 --892254799 --596114986 --576659688 --674681809 --80874537 --665861770 --683831351 --663489897 --67989985 --891243081 --343680101 --956416795 --274112388 --916040681 --594695277 --510027781 --465059918 --278620439 --592267221 --783219056 --476517422 --982913494 --679708218 --303542670 --528700161 --80554391 --919396728 --423295178 --413604840 --86030075 --740559085 --258633143 --106702427 --863720617 --229782320 --32121525 --369080865 --698070633 --374502413 --263283882 --398879132 --268516965 --446724050 --806448972 --544204071 --191464807 --847499370 --180924231 --329616853 --756727477 --183922224 --766849180 --632921635 --700854661 --14725784 --101726646 --578840623 --571142685 --441154633 --842319698 --536793186 --124588842 --565822248 --844341149 --103792820 --721781614 --245493708 --50495631 --793256542 --206713558 --225301220 --399254827 --566009419 --624159477 --632677291 --921392388 --837485526 --350709312 --755733181 --574210494 --126907870 --483574926 --360089293 --549969738 --375745069 --811115992 --534886558 --304028703 --41145213 --743632682 --252509390 --6182415 --241240520 --570128834 --5698399 --674864389 --331104049 --572779502 --375685062 --266905751 --969600998 --698860010 --180741071 --838037436 --202206641 --202639301 --902903720 --667657700 --412885381 --522408891 --873921548 --778628019 --106129424 --638957941 --699490018 --190256359 --488231628 --730471524 --861681318 --816780154 --317060477 --700909950 --413162992 --310875781 --19837085 --231058450 --193047226 --283131416 --618830434 --768912896 --852005092 --46296664 --155121236 --898016445 --834641411 --792188396 --934145212 --114502101 --556343647 --780997089 --713024282 --160199415 --168621284 --257371324 --764656963 --565711768 --631433575 --490849101 --951821641 --650948884 --110487414 --85552045 --228827969 --12812740 --671077738 --283884714 --278431207 --343351268 --222764796 --240816969 --796425771 --796475305 --351250932 --791112462 --959048691 --901296375 --5656070 --9248783 --252743573 --692730283 --682794954 --690321992 --408309051 --964084811 --296708203 --121659985 --679365719 --494443236 --338776924 --806044725 --234484869 --847463440 --384106463 --710321815 --516674340 --530852889 --443311804 --686843949 --243747330 --459737334 --922515075 --316979672 --173387643 --160724841 --655278393 --307991412 --274058000 --55220773 --242740765 --19055292 --24441969 --717021326 --588749397 --146526787 --399599251 --104326612 --545262774 --280874055 --64009055 --37341302 --715885261 --421196460 --82965863 --422164038 --320115030 --623440280 --256658334 --95482927 --393854188 --381672596 --228747424 --107654161 --590871621 --993591899 --794704414 --657779120 --184048949 --792929442 --120440232 --148498716 --667760073 --370950928 --620832657 --458958998 --847064907 --806426212 --454433295 --649387473 --968168928 --347316664 --960076040 --362599151 --677823922 --782377442 --402390390 --335885611 --721782008 --48925187 --965684987 --717365617 --302220609 --654997333 --409352140 --401592898 --944489488 --580080866 --926507209 --876388372 --638213535 --825486972 --115333128 --134021633 --154513357 --177902779 --513827679 --617859495 --852710475 --125379620 --246293623 --79432359 --371141139 --151805873 --209855782 --499935726 --985324387 --654643377 --517676607 --170338966 --64639392 --339929459 --702866400 --174067749 --835727887 --453113625 --429788123 --447858875 --652521190 --319176959 --939717138 --42458762 --98913388 --176915498 --343828591 --766102705 --701812099 --494955344 --7040877 --216186059 --179437883 --540139806 --811239487 --468003865 --104892024 --101028688 --354901913 --738881180 --669533367 --608171319 --494542362 --922565947 --714463997 --590712554 --608220257 --272608814 --143716926 --714524766 --807865222 --247150628 --51108232 --154603570 --462202796 --850578378 --225467670 --614744142 --584122896 --22970008 --56760149 --654009154 --814415991 --110020866 --173056 --236247935 --907995532 --485017422 --975591292 --956545021 --60325738 --179425015 --303864651 --631766467 --339505695 --95970645 --649486610 --692750630 --121045170 --975132107 --431858498 --48665127 --520448634 --638116528 --41705682 --952265522 --787689524 --479020972 --321152293 --79843123 --865009256 --736226640 --540359364 --988502424 --538039087 --353832079 --987234826 --245621226 --983351090 --94091763 --47137819 --956433285 --627738321 --712028172 --539398652 --728800666 --836651737 --520390451 --852275852 --498910621 --765273399 --156470619 --746229801 --250039761 --23360880 --257082132 --210020582 --20574854 --683411256 --709654867 --710368614 --712392513 --221010722 --190549542 --477670124 --818374048 --878047494 --743743898 --749100945 --416207718 --23682218 --545780665 --355761860 --151837038 --523396147 --16957417 --865852886 --75873355 --348649930 --695907035 --894171185 --117002417 --510624775 --98503635 --749525716 --939246246 --218010081 --998732707 --466415236 --215096587 --494865026 --623124573 --162272560 --68668671 --55459343 --740335816 --285531740 --803432371 --83262232 --807822682 --539837152 --409422986 --565706844 --278369527 --131190552 --441718191 --669573005 --794662698 --516038307 --182195586 --338548219 --821653351 --960965351 --630195943 --689592154 --336022021 --44890732 --853836140 --923905052 --874135365 --124763466 --998015448 --801904793 --334290513 --341588472 --308288805 --410988643 --14030672 --680667338 --572068811 --272136745 --111515774 --960786822 --303908693 --658206931 --64488020 --863769158 --38355908 --37363412 --275500088 --198699179 --112187474 --903928473 --678331781 --445178213 --933824345 --872135 --864982484 --401929405 --476309413 --291486318 --596478139 --814294493 --857081429 --374176976 --222186542 --746799593 --427208083 --450511116 --298968647 --536065784 --871054402 --905469394 --318191818 --773466104 --648654158 --996050997 --563112876 --870179116 --443436768 --407208744 --501982737 --712408416 --570818572 --259871715 --641314898 --339119228 --447234970 --247537199 --811656493 --214900031 --86907322 --104886538 --740322111 --283235233 --835125632 --98425186 --965711012 --800959185 --975462476 --820197111 --543340904 --337762237 --588092832 --986860555 --704157118 --60535583 --55463983 --237165222 --26675831 --327324608 --428325318 --331511084 --404356682 --214499468 --281672722 --599393461 --41312078 --747947523 --87565931 --388213676 --674681893 --487946421 --55511399 --682790210 --306620132 --593322766 --366528520 --352709202 --28630131 --265212960 --402039720 --300705703 --365853896 --419182185 --241092385 --763082324 --669677536 --589980156 --403745585 --424700430 --651003328 --645175730 --514263771 --835119212 --107188216 --224214990 --543200272 --987851308 --145176311 --108469775 --250668545 --96167416 --10793197 --175575906 --562532781 --872544952 --640874068 --660400581 --79531563 --966951045 --661962004 --773406249 --832432746 --461219288 --673680738 --887231458 --209565896 --147905428 --169829477 --609813006 --763345111 --833230378 --7575945 --455902599 --911833466 --881722484 --312820912 --290847787 --573635775 --472010292 --491000610 --945227171 --157086990 --113924959 --521305947 --56934278 --24934888 --981131679 --250068294 --607084631 --305040943 --152733848 --192882523 --935915580 --63830881 --154404070 --988452981 --568486026 --363389059 --918914898 --762875848 --680446529 --975034780 --598841144 --210440187 --426917654 --845643503 --293690403 --261539509 --696280720 --692901439 --43141697 --223638094 --840469330 --79544794 --746305494 --281747698 --232285432 --186979905 --102328300 --296398151 --772851018 --817093935 --216414261 --447311959 --559134464 --496922949 --255299513 --205578200 --787972256 --540249226 --114127692 --932046950 --632635952 --438211536 --290516735 --331499236 --564893290 --109418873 --856282870 --814046310 --161877533 --744758896 --101233522 --757686798 --365532750 --424661107 --443366827 --216605584 --554525103 --308396068 --991340867 --434829009 --327245984 --833491737 --381866463 --970605585 --840366009 --283708265 --818949573 --891019830 --765160721 --110855850 --504719439 --708535926 --541455614 --307144631 --934984744 --657453306 --399046296 --468927641 --788809151 --628649895 --249468680 --56270374 --535561258 --939568171 --298459217 --924118721 --434810210 --948438267 --436704916 --473607332 --301212752 --422380470 --386087186 --623360574 --652600253 --625209373 --659148230 --816430283 --907686264 --845570664 --742855525 --618235603 --216696559 --746398201 --231486688 --496657480 --499343250 --260394463 --857382584 --857211384 --84712401 --44572325 --410863861 --597541214 --723816631 --297586205 --10181355 --155473558 --333147965 --894088997 --398995513 --705650879 --227462557 --856636284 --3118611 --12755400 --630751023 --11329798 --876795483 --948550964 --542440397 --667211101 --311797932 --181309463 --513131463 --149178143 --952175640 --753813477 --392720968 --328626198 --135623454 --776207148 --708807324 --384406672 --335233137 --791363714 --82660918 --862064963 --415339442 --846870523 --844171547 --826271105 --90673030 --983287894 --27251658 --237594572 --597559323 --184101571 --696722700 --452201274 --820749281 --887507402 --148272329 --990972679 --106168968 --796400331 --563211716 --469062014 --752831912 --809532963 --835235616 --790620714 --312838394 --812756338 --118849304 --667801208 --595328444 --544372188 --198935753 --580977487 --869140706 --281628174 --52464609 --205012207 --29375074 --743678095 --246368797 --612589698 --288524941 --498134365 --822443916 --482543460 --116382093 --826698833 --720876636 --647661907 --512031294 --356898851 --84242574 --319697819 --713304231 --5840737 --791048748 --85506958 --664213250 --576997048 --262713168 --602333150 --575479363 --630253529 --790365186 --526376817 --819975786 --184456090 --867679122 --360434155 --726229298 --117217773 --891764611 --846020631 --830770603 --322993747 --478907269 --146388081 --551331271 --958842568 --741464928 --380803199 --772144568 --532814016 --313977270 --422327012 --599165948 --284095094 --215209238 --602764465 --464912065 --705994016 --111042179 --277329586 --123529324 --833786281 --427531223 --413411028 --164442233 --251346537 --572123881 --358286324 --330889337 --646418695 --227655025 --681886469 --74545938 --766593805 --702756496 --38358619 --543472748 --790058873 --594809670 --702324437 --292906060 --637619376 --46736776 --365283478 --90011485 --21328857 --493480240 --319069288 --57987968 --336819303 --623583910 --417793785 --629997946 --921505767 --419811227 --565900169 --604650737 --280609096 --957633814 --317896487 --282230895 --183980829 --239211774 --129241763 --354400374 --960787442 --225374150 --342195574 --155138059 --458676192 --966007998 --70592891 --865759446 --934139932 --89026949 --488465704 --838498260 --742807545 --652845089 --956695382 --645956812 --299927502 --560075783 --500046402 --318387684 --254208562 --400293476 --497566041 --675836910 --111213727 --26098847 --116999713 --37321223 --951403858 --801193483 --534198443 --371117197 --905235199 --250370641 --378959789 --562709901 --926290015 --46263598 --59958229 --483939505 --568345832 --166163083 --627422642 --833187625 --811896998 --919864777 --673556292 --657274877 --198254673 --602889660 --960108839 --554771484 --989935140 --622205094 --840452433 --582786233 --446133105 --720675438 --447037875 --75389463 --850608090 --709766061 --284267748 --421062591 --194401822 --128059557 --767839349 --143062916 --908687565 --628455650 --377072399 --611161690 --982583738 --364910793 --627598081 --157803045 --291338191 --73647074 --830356649 --400454151 --283726187 --118967396 --325790199 --454532267 --325996309 --743517679 --14462645 --598610948 --916559129 --135087873 --797307790 --586845314 --33098592 --708241122 --845730271 --750128113 --180020112 --861032037 --519946706 --605768373 --651370413 --490650416 --670427379 --557855138 --65539966 --767942174 --413084296 --822340032 --72005982 --238323376 --948632750 --493263181 --292082106 --66608286 --187773775 --463329157 --479620825 --534355261 --549338795 --925370432 --694000643 --772621283 --262331804 --142503038 --715253034 --323767095 --182592379 --617402328 --274295206 --24737949 --354603575 --171259814 --41264931 --993978089 --328832663 --997484898 --652002048 --929304673 --169747807 --98652733 --606922190 --670760186 --756588610 --898935976 --933212850 --438319446 --357324333 --772797306 --265302199 --86614072 --433322605 --592892028 --64546500 --147289607 --423317876 --306855163 --717732327 --999661522 --868483963 --685338383 --142284109 --484240523 --419237513 --102499289 --890241798 --591333782 --779922978 --908430513 --561028331 --254299423 --37230241 --223501293 --58403272 --265938261 --61784545 --759530762 --711711393 --798189492 --345380408 --88010433 --171157374 --61731429 --238714341 --450109702 --974040393 --525935427 --950678156 --91256028 --872637568 --892418602 --483796234 --575333866 --446364624 --123429146 --483007958 --446681224 --95028458 --111292051 --684074255 --544941136 --975005079 --780009423 --137303055 --193748417 --533703022 --866010210 --188521168 --608694250 --908438728 --752760689 --656012266 --365909646 --81591097 --242181429 --691987545 --882396502 --232199642 --154584173 --252789406 --410943864 --647352311 --351680797 --536898271 --958976022 --643936542 --145765511 --137916748 --899378734 --387943113 --954780346 --571025863 --870264072 --764058605 --448402417 --670409586 --740978092 --465907686 --632068 --30556229 --211559771 --949897147 --147372483 --87290490 --685286857 --517289393 --314567592 --460845703 --221360025 --415147150 --182964815 --13983849 --811057776 --550657522 --7160207 --586336212 --339090782 --342590877 --431369112 --998968046 --174445698 --333465064 --569829194 --378988698 --65206563 --853076512 --203794973 --750119707 --491879880 --257379439 --387120904 --715314304 --804502433 --961020096 --630100479 --429014591 --85575180 --843103267 --476998352 --538988015 --430741545 --543710635 --769338542 --455592004 --287981303 --916676377 --550894163 --162430964 --979171059 --582067589 --375473953 --866061964 --479386963 --590205449 --456699114 --709705377 --612373540 --492089252 --861612198 --721253554 --113121553 --731451337 --35816498 --204951275 --165479842 --653467881 --189862108 --167311071 --423937616 --566090883 --201419986 --761897574 --766898792 --43407073 --202736419 --285072723 --55013438 --242057201 --272108458 --18143320 --429766381 --584355818 --547613697 --455717325 --437399325 --273363074 --22315515 --292215337 --14511519 --450831742 --844555205 --581970127 --618715740 --368600491 --113860002 --110448100 --14034408 --15943524 --466982640 --287596857 --349056460 --135114584 --947524330 --297758490 --451343969 --791405605 --472367739 --860523721 --590182116 --434038670 --627825061 --864893704 --742352787 --749122672 --905960546 --652208929 --357039241 --791129986 --666466266 --946780356 --716706123 --554504037 --359571526 --745117528 --429012868 --226858245 --355327192 --20919777 --491164921 --523489250 --553163091 --599913032 --504167406 --713054748 --614902436 --608440638 --942129991 --896678085 --674923528 --635910278 --541633105 --174230700 --980036813 --396421131 --773178291 --633104115 --862260468 --647258657 --505041564 --592642024 --877896775 --521118941 --8729160 --346792877 --737494240 --118759805 --686527539 --562545222 --909025444 --978803429 --974331730 --436396688 --167939988 --448451230 --598930298 --290988816 --406965891 --303772355 --119251149 --287251462 --184606308 --796305837 --736238425 --787296240 --312395338 --654925422 --738210469 --880825899 --596266620 --418087377 --358302406 --720757594 --611364747 --704341245 --182076039 --142389979 --487677789 --645299951 --584032721 --296213656 --664840801 --619717817 --86904229 --232957789 --93478646 --590405644 --773751898 --822329644 --217294111 --595582394 --293220845 --546034199 --199986827 --239197582 --384117373 --732337510 --408080702 --993762678 --641212670 --716466286 --694856441 --78815226 --768296272 --223797125 --968396225 --397396945 --262076904 --622138885 --647257072 --442104993 --834735515 --922005439 --64893121 --216305638 --687409020 --931026071 --569973493 --602823771 --89675195 --507982976 --571593570 --103295930 --813062372 --926697324 --664841591 --373094220 --536585650 --115744305 --465159027 --785907627 --843915193 --632475578 --335019975 --337232394 --817576731 --516215720 --305099400 --405782727 --917684902 --386200940 --461533392 --783128701 --266198588 --94454651 --440483296 --848798949 --477050265 --623999764 --843743371 --61458766 --345940954 --268218973 --309211623 --993483660 --358613158 --884828812 --345146156 --154457454 --582930930 --749308219 --115215329 --378752467 --447003929 --558078694 --883057553 --143862467 --289041448 --403665293 --867155870 --149000896 --131613703 --477942780 --914705321 --856195706 --969743417 --23878616 --482447716 --604191658 --675436392 --737332830 --943058547 --126404645 --882512017 --705154883 --882640364 --238974840 --612497630 --264519524 --654885548 --791063943 --152875253 --49135264 --727730231 --595057751 --3362851 --459239678 --987627818 --143029838 --319513995 --57089779 --57832532 --924872514 --711469030 --780456630 --519596243 --426357951 --268021101 --926595370 --767378412 --112942355 --930878229 --838339543 --104337955 --182633864 --449744753 --720340416 --776789008 --536883996 --462715267 --430658127 --940193232 --302372938 --973856535 --398132059 --770044383 --78449705 --754189347 --47976055 --549335596 --848996715 --370032875 --938454333 --188850463 --186441134 --10328367 --385688275 --792897110 --668961959 --505776994 --247123630 --503043330 --290853161 --128085730 --663875647 --662970851 --727548284 --206750036 --296934407 --935848036 --770006696 --992163334 --147373905 --147091019 --889746387 --178689201 --480291149 --776140495 --104769607 --980071387 --852440157 --779662973 --287274685 --904397859 --289370609 --810884704 --583382638 --517864706 --25043431 --424769265 --794567863 --612826309 --373048906 --196592375 --291887926 --46191964 --143750869 --702734860 --497848907 --86026796 --106026704 --679482078 --691725072 --766312278 --222402513 --896409251 --269980916 --826075869 --91430912 --312622911 --37969588 --917204134 --497856860 --903623390 --176515105 --424929587 --680268574 --845875714 --124347421 --565546527 --767011839 --284542443 --543108686 --209891815 --15154119 --400645986 --606777559 --313389861 --996698946 --621976987 --851933928 --986573974 --75099689 --322765612 --420784084 --407288628 --580867439 --142970564 --788226260 --155797285 --880882208 --644153879 --108101230 --654532244 --157671701 --348729448 --876232907 --470436507 --926019486 --523559121 --462361201 --855289061 --786222321 --742527504 --126342532 --483979439 --244471057 --853324682 --937897838 --865866575 --918220193 --672451180 --900356879 --450077026 --544688313 --625119037 --644893919 --378597149 --704693896 --705102004 --450120007 --771419397 --427780279 --406463726 --749869709 --997776736 --178303570 --439652923 --318706591 --825605234 --303331258 --216899818 --605253296 --325456362 --48667368 --786363551 --491370267 --795838482 --304121763 --976761781 --942059372 --89459987 --497042154 --577427009 --746777885 --509649644 --118402198 --845317999 --434211292 --258857566 --594071666 --990879813 --265453850 --962384899 --517309920 --947635676 --422351702 --848614278 --47463994 --898548589 --78361722 --824885534 --865219468 --747141123 --544563013 --733623021 --242278135 --585979508 --581991344 --517377487 --435225634 --106035892 --735648618 --98399009 --7539284 --528873992 --176481448 --275611416 --603263726 --654253784 --695804929 --150349589 --219377945 --549541904 --776266607 --645099905 --289361661 --986098065 --493024742 --24696138 --836820020 --535814652 --682133308 --118493890 --316049964 --127517102 --635743782 --145537363 --944202928 --164867951 --852953258 --333085256 --217774471 --638893944 --758778469 --100805150 --234048197 --4077687 --456108061 --211754981 --31231493 --965145497 --636116549 --198250960 --816416632 --581306301 --139224854 --590561794 --510825816 --13749111 --209410024 --801698639 --869023596 --303470379 --397586434 --275721465 --595185604 --883347602 --989301442 --22901215 --815969702 --281116242 --264783885 --662637542 --954704139 --507245458 --347225116 --68267073 --738193635 --409048462 --694173481 --246678190 --567176085 --470375019 --738565627 --631814258 --339282728 --773790244 --394605825 --372835724 --489265842 --972622722 --789557823 --695072271 --748308476 --48033356 --380151241 --923677943 --3621634 --494007265 --558829134 --340150138 --395352508 --353010306 --341195599 --661129203 --307070876 --672716994 --862400149 --823240830 --688284101 --397403051 --884297096 --71323247 --528344461 --73900627 --403612306 --803615130 --776030095 --453267442 --283434609 --91630484 --352658507 --191114130 --878286972 --354194596 --553262317 --57384969 --388153105 --533053228 --354524419 --78133115 --728993462 --407116217 --896278425 --364109214 --241300954 --926822379 --27141731 --739734621 --254502292 --847743871 --200103982 --306194118 --456408614 --223803444 --548714893 --976381006 --578637714 --58574062 --697468979 --196397003 --795952576 --17230401 --398570934 --699212210 --145760492 --619378832 --33006979 --939036536 --54313008 --150774130 --698550470 --948133328 --442687473 --735519172 --514945420 --674906838 --193497240 --259033855 --46698357 --475849815 --691945467 --373546442 --927608991 --193449380 --846391085 --860933698 --666226808 --559612518 --589887963 --469813392 --469948508 --193084042 --780380766 --182201073 --313522239 --500117101 --857110004 --702643333 --645014871 --170943880 --893021893 --966603446 --636934245 --351298180 --516595838 --621813789 --656635708 --770624659 --449671753 --883551468 --191960211 --497931580 --599181390 --238088000 --142760678 --128634434 --489803102 --82493794 --80127078 --12400095 --329150754 --463441147 --943480077 --247635433 --706101126 --471071150 --369106673 --819433612 --937724225 --550911302 --981652246 --882874239 --145442478 --270483257 --416059429 --26872437 --211019933 --338949153 --56174560 --884910986 --635341424 --158427948 --311254919 --864378373 --99492161 --534978032 --264046825 --618778534 --21779211 --575041615 --542152308 --153160952 --565191904 --558149389 --953050872 --151686320 --943788388 --28641679 --79263994 --542984901 --529092493 --127076384 --189032937 --431111780 --128978366 --45111187 --579369353 --750163836 --207305985 --151619141 --676345437 --472301628 --260022183 --105177433 --934317 --433777392 --794108004 --549400705 --371476874 --777242419 --740764838 --708893778 --518958907 --863763397 --266065573 --281572657 --173823978 --610787361 --726685157 --742849207 --270883631 --578586858 --991311257 --445008274 --711913661 --200676786 --36863255 --307082847 --232490575 --100557550 --490106349 --924738338 --173801970 --978180957 --91961343 --572156863 --380616714 --81530963 --112929572 --448926504 --95313663 --293630244 --896760890 --707435901 --212275389 --227115292 --914316964 --395307258 --828199064 --22188197 --805036066 --606001115 --492458073 --678672035 --26814039 --825130146 --159188488 --247289644 --872466292 --163314929 --884168577 --658959579 --360561998 --749596562 --257436741 --39236547 --20693215 --80968265 --405268362 --938411396 --690381497 --707196327 --451698638 --450382833 --721228464 --841842923 --977700684 --331556516 --520044557 --228948669 --310975608 --422469325 --932850174 --631755195 --468364214 --380676001 --380619168 --862001332 --380675240 --664148764 --82362341 --783777075 --573559469 --292777103 --733756377 --165707799 --829755331 --143145137 --96630020 --737915215 --143799328 --369211158 --32653181 --349551222 --893409860 --39519412 --202528706 --598435199 --388920658 --424838286 --827550351 --598774814 --885310673 --586477657 --635707375 --259638836 --336166575 --771917865 --621017352 --357064562 --705540400 --771118994 --175759923 --814114451 --608772504 --440595854 --296498147 --633806623 --429745935 --920178768 --172271186 --665126121 --921058455 --26055364 --85643494 --730475716 --387713824 --711285727 --298069273 --83272494 --466638388 --53387168 --446093217 --594818664 --397257664 --251957645 --934051530 --115068480 --50177310 --511191741 --525140846 --56737370 --552769743 --793078315 --641115658 --681773404 --315678063 --485606245 --415148548 --325739922 --287631905 --893464252 --658887814 --402691772 --893435501 --710946482 --896575769 --325225046 --834848264 --29181480 --990572151 --593914593 --556022072 --192087849 --107941446 --959285923 --499920913 --728781812 --307597155 --271747738 --795141379 --508705531 --313058052 --918562586 --898695770 --515050977 --947921509 --129670082 --752468047 --596037447 --260102286 --506383583 --176564423 --601936853 --296532593 --578200815 --991963952 --491736297 --585291868 --673764081 --463789935 --75543630 --957641092 --381918460 --732573652 --993477390 --451628313 --602325034 --858118599 --188517140 --700479867 --289713453 --851561783 --241938261 --460610688 --902247619 --260755935 --24703832 --312215934 --645182412 --655444502 --299865734 --95879217 --687856193 --172001915 --605204645 --20380178 --407402386 --152785172 --766144516 --942114552 --429149507 --31914068 --536885164 --629811458 --671167337 --724798046 --467961277 --666009133 --238247899 --505403962 --592718483 --357975235 --582427528 --592741486 --655613896 --159928145 --741317663 --752135083 --14063695 --736753265 --708937722 --539910677 --14899622 --537762207 --856237761 --439908233 --559145724 --208953314 --904343456 --464720841 --556686303 --822645159 --242663793 --70439516 --80415668 --977740996 --653200661 --626135760 --876012064 --867380310 --764170788 --766242750 --93561557 --515447406 --65946043 --222073948 --645140165 --633214988 --91567674 --707609862 --592622355 --825498949 --871575215 --31879091 --371958443 --218637667 --846259519 --586699562 --475745325 --841921932 --957756843 --820858037 --719144829 --343179521 --927558532 --330111151 --950910854 --143126148 --562778950 --164020810 --634429890 --102582236 --32351082 --716505717 --923988459 --47820614 --927338320 --595178319 --913693324 --563423105 --75052243 --917216089 --792343701 --600559171 --941199558 --767429166 --220293884 --653653237 --619843289 --771219481 --837848704 --132872019 --54860355 --785246267 --231886761 --289151844 --762595096 --268567035 --413679735 --748999797 --710583336 --378631592 --657641263 --628020787 --543241075 --827087054 --51318693 --576539822 --169496615 --739204983 --880251504 --658457838 --426869491 --287216730 --406027718 --488478544 --663458369 --360793403 --114001964 --955886030 --554686595 --192231539 --362001185 --33854368 --855127137 --696571681 --770912505 --166566720 --830568682 --983717488 --205585618 --365868335 --28260276 --372071006 --9238860 --431267995 --568589184 --710237049 --552601034 --815126299 --194894034 --38271510 --997617794 --750498053 --254125971 --268369197 --760898554 --395669030 --246112905 --78731482 --643012703 --934740541 --45647187 --982920789 --52276860 --110522780 --656053727 --397358790 --250269447 --662936769 --189977184 --979635249 --76112879 --371663524 --803780611 --838865044 --40450642 --763511848 --640468289 --379842056 --337972164 --888075323 --732193828 --394490928 --406984983 --391294276 --922160721 --549368130 --420782574 --507195718 --199698722 --406127321 --36092805 --837789389 --734297539 --864469101 --635358013 --824329447 --195170756 --39302994 --668934682 --316696103 --111883345 --386152258 --422115966 --663508252 --580539695 --966461471 --119736711 --144620194 --334773001 --861115526 --895770405 --221315213 --629506399 --419740217 --323235560 --543926053 --29669405 --774419345 --196669140 --807026082 --236583892 --255499081 --149940874 --490562393 --652074709 --845178884 --681847140 --944936193 --312842406 --770247916 --950563747 --60672991 --897693539 --597314200 --70446744 --793515479 --920783710 --967904247 --575719730 --994319148 --654864018 --580558049 --977749024 --382349011 --386401244 --283889353 --487352238 --786442024 --822921396 --525153164 --290931960 --840130051 --475210045 --276107691 --942576520 --402607533 --734638736 --676236417 --863658269 --622892685 --846784072 --578425169 --914772067 --807781976 --2194481 --485399141 --591917049 --539007030 --218350693 --679582338 --159782344 --653191533 --173578037 --963041589 --893421074 --285122196 --36368204 --820194814 --244282219 --156334672 --577173658 --565325432 --745445261 --832196308 --645446 --135382114 --21857845 --113874228 --775410217 --408208995 --922433704 --458565837 --877593814 --622249316 --466427628 --337038780 --39697197 --711515863 --19873329 --718879441 --286268168 --649769836 --267058157 --215261671 --762943184 --414508069 --27172467 --196145897 --435118193 --951260971 --462365567 --195688609 --618750862 --239506478 --246842240 --468481017 --393287192 --163352372 --446722132 --780031744 --275547986 --837795282 --118407178 --387733354 --164419560 --256923372 --17039330 --709154100 --963345218 --639385731 --747577786 --129924969 --7676860 --970713909 --919096307 --933197677 --604034665 --34288793 --914743149 --772928855 --851930232 --538659455 --679613031 --766507888 --356591885 --307817961 --938146042 --154672636 --117330844 --943853892 --56477483 --266729779 --450973934 --284762186 --981646596 --283550920 --930623088 --634193010 --202812397 --143149892 --87819271 --851615239 --629791631 --664428275 --128077227 --28133405 --326732830 --4146415 --867635740 --443293558 --466474924 --991735914 --488277020 --812024230 --853738175 --756573531 --677113531 --405997837 --563963314 --919256008 --768187551 --873963587 --167389840 --27531747 --793284762 --947973136 --666950983 --894559131 --553888312 --332543399 --826549394 --519203339 --52473686 --964616148 --206651010 --115488829 --519538755 --272005091 --992549534 --23148603 --668458996 --157093595 --599427738 --326847829 --651957546 --353407979 --30009897 --894867291 --594469902 --385139409 --567252083 --128486840 --214357117 --448551492 --925863544 --516024404 --11055922 --723097396 --795540076 --679738428 --87265077 --737136027 --718922312 --714647485 --697961314 --769201572 --662879308 --394096666 --910225629 --516818342 --928248155 --726520003 --75024449 --816677215 --160581267 --233673959 --66510099 --972927237 --513857676 --47156765 --800258865 --41876263 --309899403 --672976509 --176382833 --787892600 --461132525 --346765300 --115679971 --660784881 --337172776 --812534141 --329037559 --618619898 --414138607 --654798727 --906314543 --114915075 --437263929 --936888295 --367455171 --278372739 --16429315 --305992609 --892791788 --993918220 --637342036 --648982270 --940309715 --614503255 --936462131 --350111963 --961845557 --487655497 --549664886 --969224950 --98853540 --665393727 --990422663 --474594710 --155199714 --119108949 --827298722 --85801560 --587976479 --435804498 --398956397 --23475522 --920334713 --581935032 --228335225 --166722350 --796412007 --524776245 --691196526 --528013468 --549384934 --265139032 --988375836 --687952363 --816521172 --429425615 --698032795 --785319346 --858081169 --365185587 --619697354 --24999991 --138347129 --360117340 --544293046 --515734134 --995092862 --591230257 --882130218 --178813413 --181556461 --996702911 --30962730 --126997724 --769206192 --495837737 --903219497 --471370303 --45061523 --495565498 --298477366 --163596223 --833072627 --953378778 --654122269 --905729533 --102312209 --148435679 --788695885 --405701144 --433131353 --378646648 --952739727 --559844185 --219353490 --845488666 --142579989 --10366713 --374637001 --611688259 --407879539 --36941521 --78183923 --902661888 --824368310 --760564449 --819777737 --449892428 --377882186 --435638143 --707056522 --276505812 --182155854 --663936874 --511148113 --65734235 --723917010 --373555708 --212618304 --182248940 --262303997 --566580749 --459229697 --764080762 --132081190 --711725360 --451638781 --853396075 --965430686 --893325380 --622480874 --179270149 --244374923 --350426551 --470290393 --985957836 --293892762 --669428978 --587724660 --1929265 --650558036 --459461167 --535385234 --562053256 --954783503 --714244534 --697618821 --224498628 --565563453 --179302863 --763313093 --579330473 --115801952 --901298262 --983245569 --214482781 --557893967 --366147704 --150777126 --892853154 --529211267 --860531193 --629602358 --444287276 --290782993 --488116091 --297307660 --155012766 --754079359 --129538662 --225663956 --539860648 --910004361 --945463429 --508299351 --750471262 --534618546 --841550793 --708809869 --797281041 --816861320 --278181517 --168784870 --787873335 --802153539 --183641801 --635667220 --878029270 --160308646 --444094169 --528213570 --915436337 --89761637 --831743939 --715310068 --978880802 --339163854 --67823604 --822477129 --802026544 --335055432 --433693304 --831258076 --472285990 --699934439 --820116666 --371150609 --537243619 --588775617 --72521471 --846443409 --401438784 --791053719 --953605225 --960083653 --823000795 --851904223 --832976747 --93491584 --676174142 --271993578 --116334687 --680079468 --919003501 --971713076 --541745154 --263316294 --997393147 --315178739 --363469521 --797541875 --746038982 --79847557 --543143907 --252679635 --808538854 --276273811 --505007143 --118367523 --593961647 --368785532 --618886453 --359871720 --653352619 --302835807 --743848531 --195273929 --703522219 --869367793 --785459481 --526770596 --250341164 --702720478 --916486168 --319423402 --572757140 --640678052 --220360064 --721714401 --801212643 --757316873 --854736263 --247310292 --224432082 --976638648 --34024535 --534022661 --853863887 --9677196 --764341603 --477696545 --491126441 --999755194 --101496030 --670743412 --610552019 --521037878 --251528046 --374314531 --61678679 --567354758 --355413031 --802705039 --281498736 --642386417 --566152732 --461259684 --23753696 --740223448 --736556030 --3431324 --566001711 --16653274 --725329567 --450204232 --80382736 --230118637 --190515669 --840595181 --555608768 --900130477 --43573315 --306537697 --559178426 --847565509 --94492808 --448272044 --87263361 --97517386 --183482890 --222441484 --501265614 --685830049 --216450162 --292386165 --865146057 --370051545 --919454548 --706571945 --889023484 --249512217 --565599976 --944396668 --243581263 --316533996 --60586600 --626171363 --515909281 --870472515 --864237738 --504932239 --563447076 --11602539 --329720516 --245735249 --187317421 --276645525 --541163469 --865830191 --526740014 --137163106 --330182018 --820982195 --581050404 --183381087 --825339172 --160929051 --491200624 --755827571 --993639687 --441002844 --931077021 --145620760 --175506216 --148088968 --522619340 --95844172 --495060668 --992171463 --369533832 --176593822 --332698115 --763110516 --556493341 --712740918 --518119859 --690104707 --568608627 --489780610 --941761982 --429668022 --396685288 --182771825 --350133652 --644307290 --773042419 --345147585 --454997707 --668848371 --599244514 --638522604 --877369231 --566302522 --827018745 --503799413 --668929671 --804422236 --245696493 --212498880 --493185989 --409280575 --446932307 --381286512 --27869474 --643272640 --121845894 --678835744 --508183235 --471253974 --220641347 --884632946 --622539423 --579246758 --103558140 --747569741 --313994488 --169176251 --627329097 --717858429 --614339574 --293783275 --428431122 --794008699 --97180891 --801356333 --39267500 --544858991 --49720757 --81306325 --209486436 --567349881 --165080874 --453136742 --753034238 --950785258 --154454206 --950741331 --667871191 --651135100 --797629880 --804762045 --13158845 --862348891 --751506249 --389452170 --385066795 --145245609 --491746103 --590862775 --477632636 --280622399 --928704692 --531492351 --881134301 --235501261 --129727224 --901555772 --411622156 --308848280 --718853906 --283192364 --922267409 --242300148 --444893456 --299211964 --593294221 --575186977 --804182875 --717559203 --668288526 --253119512 --750545060 --527902420 --12309379 --524564932 --348927933 --989584470 --370336219 --630144296 --621680761 --137647405 --868211006 --165601524 --967802438 --853718732 --649572669 --535254748 --608946244 --839778642 --812755315 --622606248 --784850714 --677603863 --554756956 --437317582 --77878504 --490180259 --342863822 --614251805 --205591681 --645253827 --534189489 --906896829 --358686541 --827129490 --318820436 --835371687 --479987242 --265083529 --625811424 --407520963 --551619772 --99040303 --891520742 --17382297 --251780454 --235347741 --900489476 --757493551 --628476527 --693927522 --140579255 --125523530 --935497338 --525128221 --121799604 --744841572 --56073092 --485458352 --652788745 --313411300 --16972127 --263441900 --266286547 --682378215 --488183699 --970683186 --570987043 --324624154 --866535802 --721996827 --953312075 --225409512 --41073123 --648622640 --769756336 --161840695 --586248843 --143404780 --865333979 --155967775 --59470871 --630898657 --103668681 --732548681 --70848990 --843702677 --146608416 --935852548 --139712275 --408167522 --479183516 --787074968 --642396817 --333052235 --503910164 --844568863 --887488866 --572979140 --884693296 --408172238 --47501141 --111252277 --674492146 --985362515 --859739401 --89181823 --90212812 --322122906 --214315082 --241638200 --684099529 --142887777 --397734224 --996839161 --305696401 --238180711 --441261709 --509989540 --696734418 --988755779 --276004299 --880348188 --942270842 --578022372 --911999872 --64761304 --841587502 --564192751 --907536781 --159684405 --381336646 --807124741 --108615631 --230843859 --964984881 --110972791 --299221537 --440618493 --693807981 --501445413 --460751498 --303843548 --447546985 --194230311 --58097996 --721086316 --949718625 --185925588 --206514148 --478837544 --760966607 --232283025 --67118090 --733826468 --841834373 --360567398 --14103213 --547423309 --451908984 --990128135 --754241876 --739856684 --713149606 --810479477 --171330882 --761715294 --931550929 --755958835 --724278310 --73130612 --412858583 --114870929 --737248016 --230419867 --238525164 --72777205 --542272356 --670719976 --100305548 --397275718 --785351732 --45622689 --522989193 --547080978 --632278732 --670452205 --720883970 --132495213 --291503877 --981942029 --732242146 --785299025 --163415699 --798774455 --166356246 --157022163 --716905105 --116423654 --795207057 --903525792 --354570790 --755796031 --157963158 --543861828 --110463433 --196429706 --820550843 --703482294 --504164014 --743124057 --688390698 --62825182 --125178450 --807992886 --104529531 --758249890 --96869573 --596118785 --776598499 --37059602 --128951164 --397274932 --854672122 --179985968 --991708529 --322311005 --51178708 --800033272 --189014623 --486005025 --458408142 --48487689 --386711412 --143363678 --263249799 --487777753 --509437178 --458799187 --751208674 --923103651 --513028054 --611815672 --132984214 --212416114 --144558546 --756168020 --286546848 --90080326 --778484374 --489073996 --808079161 --280534069 --607241856 --252051519 --91158093 --611649853 --236819328 --794367043 --555103607 --625345746 --179856227 --784447739 --233838039 --216443871 --368338432 --280925235 --220505932 --933954972 --75031027 --555443512 --328003804 --487834150 --485100604 --888535109 --364213440 --375244360 --784247511 --700927242 --869523665 --755764392 --72101502 --265145749 --989202159 --929472923 --980797626 --384674787 --172850573 --703998237 --525592116 --264034373 --223431551 --86106689 --767310381 --276443956 --126685987 --143237524 --7844777 --884489805 --391710034 --817482027 --707485925 --103650483 --691165974 --884895568 --817157382 --579136267 --164900333 --193875463 --150210338 --808311271 --952797702 --290334614 --724230625 --391899386 --163914985 --254045995 --576047863 --796009885 --390211608 --517004748 --394582953 --628376354 --486882477 --323616777 --90136010 --996373751 --558370181 --210223125 --596802285 --251247708 --423087199 --816954858 --88190520 --901809027 --205986674 --670495785 --560371780 --411708921 --599669223 --101632627 --343971471 --356484306 --809662902 --251550787 --90432395 --544288425 --325008323 --774251371 --829789650 --36985457 --781780678 --386111949 --821795448 --817099811 --405563463 --152138550 --761173590 --648664098 --337405655 --543547219 --801509453 --142060438 --523682333 --500063300 --239700730 --62776590 --856865271 --221280476 --494548220 --4795975 --457837470 --115975645 --501522062 --369437184 --862262404 --546152752 --976543191 --869169657 --588091902 --203307980 --479238806 --646097416 --987359430 --912984884 --663165636 --999092385 --820797135 --360480319 --73958160 --642846633 --763105387 --335590270 --163224132 --87658772 --592959751 --596132817 --437555317 --606620032 --780674514 --201020365 --440630317 --861476906 --421147144 --562641513 --759461291 --903415017 --540000791 --957494678 --70197940 --706009570 --464575793 --30814857 --399258639 --759548826 --746048900 --983752852 --583455172 --872112797 --686396973 --445550807 --460541427 --606626348 --816606623 --787683433 --782701639 --822697278 --651437069 --976122747 --281251597 --178833594 --75358538 --605624699 --524660218 --581522499 --70009692 --926136366 --599247350 --491590924 --896112212 --261468849 --522630458 --865170391 --459779290 --769397861 --586819289 --665453619 --365606738 --824446756 --525921023 --891385459 --604190910 --727969751 --814526378 --875685019 --677561338 --929446787 --332174080 --506037327 --513517705 --431907812 --868813793 --41464806 --824960884 --505706960 --339832920 --133673689 --466989542 --703871426 --622752378 --522818170 --644259346 --320923823 --873871906 --58805683 --970453681 --347064618 --296103122 --111992766 --129492443 --934132151 --68486206 --447566891 --485316482 --417725588 --26907171 --123013046 --322894837 --767023282 --739567455 --172206139 --736729471 --50962449 --729310694 --466831046 --636873507 --521956786 --431008303 --417957662 --267943586 --590788011 --530747153 --88957319 --51804899 --299387400 --380652389 --70264501 --845016795 --691806845 --663602793 --786866145 --705518044 --220541339 --413029235 --826951043 --329944466 --275858880 --654124395 --501446083 --289359971 --276425633 --364469020 --478105692 --678605071 --631489038 --378894032 --225047084 --526207330 --956196314 --988500149 --453841681 --528483516 --348252718 --722796462 --413855884 --962995738 --562024635 --683291377 --670495361 --10433047 --541818043 --908282771 --583102778 --195115182 --125796556 --842275806 --166838421 --533609815 --578915592 --554007798 --556829247 --755420083 --925196622 --136810748 --836126474 --639107284 --585429843 --618329483 --213885471 --224326771 --287080411 --557868267 --973070453 --634733290 --559255358 --871620883 --33521415 --692798852 --27732594 --399983816 --435601475 --211980947 --921001105 --691598473 --589434075 --861246777 --870232213 --14133203 --72209978 --616486532 --146783234 --255262949 --915963443 --191213905 --593841514 --434491184 --160654736 --176233208 --835886277 --498879506 --390358761 --604572936 --463583740 --713920959 --158614957 --639722326 --92174151 --959136372 --504256139 --959092547 --350646043 --547321330 --934022096 --575207881 --292729272 --601310215 --592498851 --34066621 --158589761 --911039678 --273964027 --863698630 --855948743 --491719329 --711809972 --405044737 --143593390 --554702647 --313513759 --203265016 --830058567 --78667997 --400056446 --290842982 --260692490 --502763133 --655254351 --249164930 --26486895 --870275252 --152411687 --71144232 --666388331 --91521176 --955990386 --945452589 --682336765 --815969250 --532552735 --968354608 --435414966 --267285615 --719640721 --485054171 --218114768 --3356503 --121018066 --239081292 --255756712 --363936583 --346822673 --214319133 --584376442 --263328062 --420746886 --936914068 --732283685 --459851748 --596797703 --412407224 --159546304 --922951999 --968893027 --513821736 --776882392 --667881273 --499426194 --62975028 --434172660 --66077753 --621474680 --888037876 --210343076 --896250358 --936029548 --683684331 --773384675 --2486227 --323780206 --73327773 --221937807 --150797206 --484960149 --446217244 --743126111 --222925552 --567052524 --773711287 --289511252 --58026778 --302630033 --555463207 --125127934 --822562789 --172829568 --698979177 --935524449 --949758177 --488042179 --903909626 --955474600 --479961958 --476505843 --373226700 --928712274 --810067918 --915533553 --882381497 --141584816 --58361368 --7635384 --783961165 --119044297 --258171878 --891766524 --5539463 --113116386 --200729776 --317669958 --677388036 --573658058 --400954176 --538000059 --468814537 --593749104 --366244409 --390730550 --851574808 --627394852 --984851107 --582046167 --399717981 --752303205 --374367335 --444384194 --893459515 --629187206 --515008407 --133675742 --911378114 --486568142 --980785457 --887885021 --966627918 --29990479 --375530180 --496941722 --961827189 --868335075 --709493880 --22031043 --917086515 --490782818 --73668600 --659937216 --763908119 --988589522 --435268299 --185756870 --482130868 --993082920 --881228359 --602074557 --568638254 --215004733 --858387471 --148582660 --467202127 --748997776 --99487107 --833417653 --973654623 --966724571 --145551047 --247620308 --616809235 --148723499 --436941825 --479721855 --695872662 --87383051 --853490736 --802582148 --732616562 --835610048 --113745553 --995592361 --645339522 --422640475 --557129806 --365001310 --869757290 --863639399 --599008018 --577621251 --846344046 --203556362 --583062114 --943935966 --90534756 --770199749 --702367644 --374143037 --837294982 --870886093 --480751388 --615384500 --823190575 --720555720 --21647743 --19881623 --720415396 --578820616 --100796135 --831362904 --460236350 --483105193 --3018413 --661059988 --289399581 --611190014 --946757688 --739200293 --969414382 --763967449 --509796708 --319980842 --212185534 --834467858 --26729552 --82340089 --893997683 --240665424 --14473088 --702984728 --996953812 --164452715 --783499939 --742156558 --526712866 --847298631 --755893463 --362800911 --770401230 --116185818 --29216613 --512647770 --199367349 --698550691 --313677306 --657485002 --618475060 --665692993 --193544467 --867331891 --909602715 --808078572 --706397799 --920123997 --163108470 --254097335 --888844833 --598846145 --246433410 --961270892 --941088418 --208271373 --661284873 --368426757 --17169634 --57806732 --428728687 --100220343 --65587011 --931605369 --954474824 --853825144 --314406204 --762138706 --570553037 --423457858 --72312406 --987098237 --18610538 --447074991 --795516769 --800173304 --659201938 --649354548 --292764251 --525863396 --662109952 --566943312 --631983659 --708529044 --760789953 --361070982 --208880366 --642443130 --533652237 --558524278 --671339509 --747542197 --915982457 --992686082 --464354264 --405117411 --699304468 --961944514 --996229663 --84810717 --732460691 --266271318 --403512116 --28076963 --909758890 --425568934 --653156414 --367245794 --528523708 --830523252 --28953808 --809986854 --361339039 --866305854 --730741187 --905626847 --377339831 --813394076 --632980013 --789053697 --942934713 --299742353 --774423613 --397690116 --647741771 --627371475 --13884178 --637719952 --191624047 --670782398 --265849456 --184625956 --799200019 --413485388 --903468542 --939447702 --339899432 --155110890 --969641299 --249248788 --515343780 --64119413 --707931308 --932401677 --253418754 --767815200 --129717992 --237420602 --19678665 --280705738 --819114733 --895574100 --446278712 --968923462 --75734341 --933963792 --31334111 --50554953 --673701995 --10550270 --109985311 --902253350 --783102788 --108882387 --131711050 --212086860 --620282323 --291806097 --385191106 --952957343 --669001012 --234541742 --981785255 --162766086 --40182821 --694281893 --107466272 --437518226 --886401299 --201301783 --296382909 --170888362 --750172039 --775990110 --438507322 --525702055 --278940163 --429666706 --822632558 --353769454 --390835891 --511416086 --99181407 --681988639 --970234769 --787718895 --834427981 --908839564 --848813716 --797095833 --884944086 --8564705 --943883540 --413447158 --746918692 --975593726 --257395559 --720168476 --9586459 --978669581 --137246199 --366525132 --363979839 --597090325 --826576120 --545190887 --387814618 --608824894 --478474362 --817083488 --652229208 --379856897 --197001171 --684977709 --44295628 --420472985 --438811294 --940750296 --564379843 --945765612 --955585323 --450501176 --825732560 --606078144 --713021530 --112426520 --392872262 --598983748 --585858411 --465551227 --793964935 --617683846 --111653554 --354688464 --537793627 --667346356 --114116687 --641688559 --870009106 --11055722 --145698578 --384391988 --778179099 --769057388 --336627814 --831591632 --47434182 --588093917 --647115827 --445245518 --49555371 --221634362 --663934406 --772825851 --430652045 --115687833 --236692017 --786464896 --550075765 --6540754 --156215955 --847472619 --372585846 --521518001 --433637970 --546506007 --984398946 --705073297 --318480339 --230783236 --969883311 --398370842 --104201186 --174818985 --293968928 --220020204 --597754440 --5159451 --735556155 --402657481 --483670047 --395338585 --130229201 --685636008 --534402387 --232481281 --216983372 --9168202 --587920819 --959874977 --280433582 --598997482 --720062902 --580162949 --902569309 --846194740 --509251812 --597173381 --4005293 --612073051 --832016784 --109539130 --269457476 --566729206 --735370071 --796646870 --187459000 --91284922 --586125663 --443429389 --871804688 --383556143 --459467206 --440943190 --165612241 --461481509 --819054892 --2893092 --597178545 --615273647 --100192516 --638661754 --735792874 --199696337 --597578095 --710089082 --460241563 --442633949 --278726391 --840133239 --190211589 --879885413 --995228163 --76056971 --940786968 --873259405 --527050882 --633748543 --227217216 --115293191 --215726516 --459370226 --193243725 --347275408 --583713419 --174865582 --485995261 --506055030 --904118996 --41639800 --190687898 --895797975 --480686487 --24562488 --929635586 --618756869 --41737997 --491578506 --581452222 --117043965 --879795261 --378098353 --803769838 --148015132 --115573652 --43926459 --154008016 --219422164 --764804542 --827291412 --983346391 --446750434 --198565051 --549033252 --730871626 --807667059 --101806054 --844797899 --376294388 --114620383 --428867201 --861660887 --527853730 --133433024 --286859378 --917170317 --725828256 --381567354 --854466308 --866566074 --170298361 --789247515 --655191122 --198089076 --366802905 --717317644 --372004868 --799583724 --871884141 --264829166 --503117579 --809767446 --165006638 --197054600 --625903407 --583221951 --332506437 --133729234 --293691749 --585264234 --17116967 --484441477 --356817548 --733625893 --731726549 --487298753 --700734071 --91090357 --484657497 --53846839 --349030912 --980973737 --548692762 --339296638 --413901403 --277623885 --868319812 --546557845 --446535544 --261910354 --501959996 --184194790 --132614676 --601806929 --427546087 --887649954 --252102298 --417639250 --84855785 --319322203 --272903116 --442289273 --223824400 --859502713 --47125139 --110164461 --284391093 --812468964 --375663762 --751032992 --642420613 --649694038 --313149600 --72681546 --456563967 --852605890 --556581532 --921742666 --747639950 --96140226 --398045756 --90074569 --966418436 --966146014 --40854170 --32607992 --455894698 --173967406 --507551998 --13761708 --914020671 --962129042 --942777913 --473499246 --191348508 --93784053 --906264027 --217231731 --285746511 --774483977 --572363208 --56246473 --869330701 --147641172 --431919305 --136626908 --577070620 --658988633 --128135419 --689241739 --186422577 --467924743 --126346268 --484652211 --272252222 --890246420 --457185172 --580530240 --665691664 --564730548 --238967078 --415864591 --88511385 --421815388 --211232009 --859885286 --71750816 --457468122 --632768589 --641266853 --528428717 --794670105 --551854043 --151364 --917675626 --485898197 --736366450 --816624424 --431248518 --202992893 --494313488 --77388771 --600596509 --971351562 --573135661 --75354635 --255256903 --85029094 --415525704 --324235085 --355342899 --672651426 --971258466 --959519411 --299155718 --724677839 --204655500 --671483194 --984375208 --296772769 --590713771 --259487777 --469852990 --376194196 --548026903 --347288897 --803262601 --254340061 --603903503 --27359401 --120793265 --125323740 --942895382 --216805639 --521165018 --344546078 --228376101 --684368522 --33650823 --409198117 --810883451 --111247421 --997989273 --270717116 --359484642 --572466074 --698811906 --439035339 --196654735 --346369556 --353231650 --363209659 --812824544 --976000379 --757688878 --123791657 --221911816 --204213701 --116656533 --111094312 --512934899 --172949401 --384604071 --595509992 --227950054 --685444071 --282116875 --525583473 --875807833 --331165745 --458158088 --167904445 --647350666 --476656071 --425552570 --979058844 --420114555 --47117155 --209150486 --484349369 --276825563 --48890048 --785256805 --129557171 --421139709 --982846460 --145953596 --127573976 --304611924 --73868976 --12767643 --207985038 --933273679 --155799196 --40081497 --468336646 --269155021 --851624131 --735859784 --182398055 --178013349 --960927787 --610514379 --130928827 --58411600 --631091969 --28860811 --808907764 --9507054 --838588023 --576607163 --214223268 --61621505 --312248852 --202196106 --402240868 --765404246 --793600470 --628579293 --889651197 --820831306 --299035822 --202762998 --11716421 --102820752 --455842510 --804224848 --309041264 --516787541 --306335981 --538203199 --274624428 --80310026 --662954200 --550435634 --733010057 --239028507 --216768640 --287396091 --662581071 --934691147 --845750111 --617942446 --280913495 --687253363 --223243979 --588333447 --186566733 --739486532 --674214328 --503527893 --771347515 --267560479 --728891664 --79461516 --617721752 --275089767 --925357970 --610367437 --498325748 --593692675 --408384192 --762113132 --70089166 --673767626 --329074788 --286016308 --530871497 --393404880 --97814138 --945328709 --952128584 --867020845 --714363095 --985095270 --163858094 --684277288 --821064421 --555546947 --746555574 --596830761 --854095022 --791824886 --143926820 --158018872 --382984050 --749636564 --11060135 --582980847 --115220509 --540436919 --510487275 --352935181 --237026522 --929244318 --688651727 --807623444 --407019385 --411171622 --367161393 --305993131 --174394863 --116196214 --660976492 --801444229 --976117556 --415326913 --62985961 --310086742 --305363114 --545678372 --923405411 --992717939 --48107228 --902716053 --58662787 --107127315 --984633419 --620727553 --960814523 --967149503 --716210842 --815552088 --686895325 --704968615 --903874589 --200640858 --498803529 --890464340 --75517011 --515379934 --907330601 --915051621 --235265613 --514448413 --414556893 --255084257 --893900594 --367820612 --794209859 --606230505 --277283157 --944651527 --530995965 --176231125 --380051037 --732291169 --987093220 --633092272 --923823962 --898593499 --731928835 --318933175 --993872078 --609502391 --75134109 --930155488 --453413634 --26170293 --484265586 --668086038 --269918987 --811944228 --96995991 --189133374 --184605349 --579977744 --848877661 --325690820 --870233178 --353572813 --81230151 --469816543 --339124185 --199397103 --571200175 --216061448 --688187799 --108685168 --703882185 --48893681 --326548053 --665101301 --217698257 --252557943 --214601608 --53355480 --707138566 --833043949 --962039615 --543885032 --125201592 --296616105 --32715304 --556354659 --852477452 --532260159 --707071824 --875581767 --874624228 --447248767 --989497001 --949383343 --379759039 --502629353 --359346292 --805422560 --154284528 --67471990 --857940549 --454215947 --54024260 --675249558 --472005242 --760222791 --793945375 --873707730 --936359105 --447182850 --220291273 --651817796 --141019839 --693244141 --800191069 --780996756 --887191189 --806282210 --172515309 --530492366 --681273138 --182254578 --918751685 --683127676 --434281310 --71432065 --896408019 --222292308 --636428471 --479637379 --959862185 --935733380 --741560445 --782715482 --699318062 --450166479 --504442221 --157077391 --891093542 --52397885 --985336887 --426587137 --62447505 --560217856 --357214671 --312858567 --593368169 --333243238 --944229207 --578919519 --70753258 --62742601 --987319737 --866383780 --362527842 --16530410 --469471118 --24202803 --745972034 --901116526 --125204945 --127430394 --97174514 --867537983 --523394074 --9504529 --764234885 --261762138 --178493403 --77656727 --479457211 --350800424 --704008540 --509918625 --19202143 --799407717 --37104814 --15960241 --960724204 --909526245 --648087856 --710135732 --295222720 --813867823 --591477328 --695480132 --40677695 --804275246 --452021788 --770631084 --695503761 --547672681 --705372073 --946768398 --390022925 --602439086 --276565203 --711420417 --497821322 --614790891 --569853504 --776021727 --10117023 --235837045 --602485708 --443570175 --986079159 --216353815 --328325114 --488551180 --749502817 --57409780 --992235974 --289247009 --126056799 --511082776 --742615850 --506770214 --618490065 --657987070 --284154563 --266295940 --136561050 --40264590 --238768335 --777734327 --669292000 --617498840 --203110913 --729889067 --144008793 --509813794 --405715327 --463204932 --563563470 --831972483 --803924169 --973449244 --517080745 --637428319 --200112110 --301871576 --295916695 --621927493 --508676413 --258461726 --604757309 --581836582 --859638899 --795776641 --308906740 --816594962 --196632843 --44733614 --127829909 --267170226 --62391317 --355863586 --736546993 --960808517 --637111812 --597917087 --369154184 --717083649 --271067435 --111613536 --934369225 --301223473 --725375431 --924801192 --809518362 --794265113 --475514132 --164161023 --708767835 --657124967 --857251893 --240199019 --707435387 --487743390 --154076988 --3001034 --505030055 --241529228 --661083356 --959080573 --630282249 --875343624 --245271069 --709436117 --295346802 --404313265 --910473384 --620383562 --474775092 --758359994 --463380646 --708043857 --962766311 --959414765 --903389112 --173256564 --186432673 --323775723 --91413099 --442540114 --624590172 --119879750 --654971266 --125382267 --926219574 --602976895 --707264400 --940581121 --672659493 --966147952 --309705113 --755267989 --49693771 --758617565 --730762914 --638598161 --796473139 --837090975 --752270831 --47742293 --95073728 --225935384 --911620574 --561052245 --73651652 --363243392 --415080389 --143773489 --681476691 --715586706 --402433289 --456972645 --138801535 --895370514 --758811544 --646042591 --759393753 --507964724 --467004988 --273435911 --60738693 --864073872 --409601296 --164933400 --600780586 --586551100 --352445458 --608062571 --39879449 --505881787 --883438435 --774670009 --825531186 --441287820 --524932291 --851426633 --705389531 --445671405 --50299848 --541190425 --931584120 --506408921 --639814057 --396218806 --994912292 --830472096 --336676494 --657450425 --461813589 --934109919 --988311750 --195821899 --454395366 --579301620 --365591436 --350861825 --462309895 --382408584 --42070428 --692548302 --502636749 --875976025 --963394204 --41354479 --993618560 --665769218 --363076527 --826001100 --289459182 --110431138 --9319952 --81152468 --85436462 --477312775 --292060788 --415192547 --780910281 --213954551 --967117894 --23972512 --432625344 --645335685 --712172490 --255555083 --524604704 --687328592 --178832869 --611640630 --658268586 --453715173 --361491021 --128385354 --879463505 --455883756 --551740716 --801905596 --701869378 --936930151 --44959772 --625467214 --31279449 --176816389 --78348869 --957090807 --777564899 --981437072 --940113722 --142573053 --452823739 --670447711 --573428282 --386916533 --858900622 --62000002 --395772214 --830715551 --654639418 --517777284 --230163943 --814122956 --526443018 --656387329 --998658489 --178809740 --437171812 --374362238 --773339048 --861372477 --552045233 --495223390 --854620459 --436989567 --518589124 --643225391 --180453629 --686351155 --485198131 --844471814 --268452335 --667939400 --515299171 --804518763 --190025702 --338482032 --653208889 --752247892 --54522938 --58033374 --104076290 --613977363 --759746117 --707298114 --618774919 --301133818 --432267679 --778430421 --826494008 --494348289 --377059844 --388350046 --143816723 --532862473 --913585621 --116066915 --635182302 --482546303 --529231650 --303483665 --746975268 --251962689 --829905455 --664367095 --158551083 --904275630 --520824150 --179822005 --631839964 --301703149 --823436858 --444911138 --947842422 --79766399 --240050023 --391964577 --542033795 --101798838 --285513462 --244345168 --44495335 --612941807 --640579266 --219020735 --512483678 --713324669 --612215755 --344238090 --204214525 --496752795 --561188320 --1345814 --74444841 --668099721 --984855193 --102061251 --438567346 --369326421 --998532402 --777518926 --787222790 --965944772 --3249282 --415676337 --701697411 --529047255 --665932522 --216375660 --828146439 --482538513 --847050638 --431642684 --444589716 --301409842 --639428817 --633993521 --133996956 --961887459 --74320375 --384496725 --722420670 --545268273 --990269325 --732142764 --194958134 --57017956 --259141856 --578170798 --637227138 --409130157 --13347866 --126109352 --889802822 --783651871 --995373933 --703712222 --190888866 --839992960 --803121413 --68094342 --605907676 --823486065 --982461198 --67366462 --770585973 --561075409 --318964426 --224532554 --301084258 --941255889 --363964151 --711552528 --25955500 --113687694 --95590133 --102204187 --467335044 --432661524 --10011700 --168089752 --917826194 --404999295 --505758737 --473171775 --372044350 --993805416 --523271961 --884495183 --569585110 --122955624 --795294808 --666544831 --766674602 --781017548 --279216066 --914341123 --513761962 --68725854 --882804733 --301113115 --819079545 --636174502 --379348612 --574140290 --875840420 --214650209 --446965488 --510945178 --690367576 --181330806 --172761064 --818561513 --573753530 --874278382 --404530228 --437079181 --585152695 --364379952 --611978056 --887577392 --633776441 --877432193 --868808797 --413438697 --240361016 --8490959 --251839246 --346180677 --375472699 --243144617 --99029050 --809680112 --547314036 --357619235 --490687340 --264090469 --546853966 --451961673 --770306077 --417958316 --268365953 --781220974 --475633638 --60322062 --970388791 --517726544 --60266765 --171469871 --549303658 --698977931 --37375077 --578593211 --437825453 --915729814 --978969661 --351035382 --936333127 --984109469 --287201839 --534914494 --681431126 --733180203 --89006131 --717206389 --43574889 --20905488 --927429455 --828948695 --844227429 --132374158 --101449930 --546029676 --982591180 --454706295 --115036072 --463164281 --685640227 --622912513 --881494110 --921521373 --761016018 --568152540 --780288473 --357426663 --422347389 --931889861 --436437974 --83525320 --263718502 --992476081 --244935987 --168350542 --207080749 --161476846 --316679925 --177525392 --238328850 --770433239 --254808628 --798501555 --972984747 --683470093 --786300879 --441246918 --821172011 --846979720 --100844511 --917056707 --562031410 --823413813 --261649110 --996784978 --259945596 --697761781 --164494116 --842460685 --773995637 --852841757 --982802046 --899180369 --814277165 --946874059 --98421144 --768671748 --821310983 --299797206 --405318668 --294720598 --377725487 --817623109 --264967638 --578087909 --809481217 --653890148 --314589654 --913872581 --690737959 --387724705 --125558605 --464419154 --27243467 --684515374 --194827575 --196602032 --246716351 --100868321 --48678165 --800970105 --457084867 --954588583 --541462251 --413010299 --771412363 --95890790 --170712289 --150961433 --316033318 --216872539 --275794537 --30953181 --900572413 --729686784 --832179717 --603964762 --73229788 --644390636 --224858052 --115188841 --617390696 --993107782 --248804195 --397666403 --18116817 --183910135 --43054680 --89165386 --555616511 --468178805 --164378113 --947645388 --353261544 --700427023 --732334188 --801661135 --345703872 --640319443 --273711893 --817567388 --394369587 --672933684 --373509494 --575098213 --716470895 --89964384 --727976012 --916029010 --843991383 --186039967 --49819693 --502308973 --219037547 --101826107 --13982365 --779751841 --753074986 --40785928 --126377822 --456584637 --306521917 --334820053 --227923252 --347963925 --418808193 --282279015 --131392669 --800888114 --314544648 --628545630 --538753889 --980064963 --693747402 --938056729 --429268212 --24247649 --891830055 --155186139 --919245755 --47312663 --308120001 --738903637 --522093451 --681553528 --963513386 --815348092 --73095887 --973333007 --260778958 --254003119 --47783712 --329676091 --73626707 --886457129 --722360208 --159349517 --989209143 --260427297 --597436291 --828087733 --129558015 --192814033 --613251180 --863621054 --158845882 --905031100 --95514661 --334481817 --116682617 --809911372 --36762905 --296007189 --41736468 --481925268 --100786554 --163883587 --476074750 --32939987 --490319734 --484713195 --243997210 --614629927 --667727759 --848239678 --386672447 --214543716 --397755689 --32788182 --754666992 --3250256 --215669276 --480301688 --67259435 --791287593 --827724685 --562639280 --215540883 --304933572 --413837948 --796993749 --238617604 --237114052 --156885418 --651167801 --348506534 --395997043 --618787588 --354579676 --446583770 --97726259 --551111078 --119253209 --788140011 --310778142 --621251724 --564762529 --911360781 --760622428 --395859477 --590533929 --494646692 --513921074 --888349199 --875964136 --717603958 --361778823 --212506879 --441754058 --374982617 --175338984 --167031554 --962449901 --628637348 --909717382 --237103853 --964310170 --671472577 --627454746 --391898190 --292564802 --12726882 --19417775 --747154134 --818041162 --637539716 --999061549 --498197757 --196397361 --738390094 --8625195 --737716808 --76535147 --413155596 --275529119 --268464325 --991144239 --484659849 --979262590 --623448567 --155291938 --189112278 --441307312 --20134443 --361378951 --29118474 --595215951 --677559328 --148658244 --779759484 --227765904 --770353400 --229630504 --522461435 --437927907 --545306082 --151934923 --530290584 --69199348 --62482008 --667212767 --611110986 --51372166 --607598865 --700664026 --841168459 --892105480 --345856249 --208444442 --356236452 --267267459 --820257628 --723635381 --26834531 --581077533 --781236514 --485728468 --185344007 --205521456 --672412446 --904686812 --776455329 --274668214 --221390205 --74082763 --147555160 --814929406 --207609696 --625222468 --573508625 --245484058 --104658970 --734890513 --593724063 --518524557 --895128018 --61938059 --909824361 --427400892 --750915390 --395805658 --416413587 --82786541 --543788338 --556650598 --166000344 --225309386 --90252385 --943904492 --510565045 --883411551 --340431632 --641962013 --515756507 --757210635 --940621207 --973705237 --607436695 --636835699 --417563158 --947440516 --353848220 --901363225 --584579273 --448403052 --396811164 --733321885 --915999380 --887328132 --763900378 --667684139 --489240572 --778631127 --66001952 --383293961 --425912368 --276040236 --57134018 --423797479 --526261969 --471451879 --480417938 --251670899 --717972135 --265048376 --972841924 --93576647 --43809847 --62195827 --351329898 --298510410 --892430972 --890608458 --738530368 --691170386 --316941901 --122372413 --642594166 --270654406 --202673459 --846607020 --785140577 --372443832 --26304880 --669488509 --914500243 --194653726 --870669573 --957751492 --111778215 --946356269 --137152100 --464356223 --551457452 --284774052 --315913540 --282692515 --357531256 --375804561 --279504181 --38385346 --411591880 --125092485 --33438480 --602276821 --629182221 --933795391 --450828506 --371467902 --535995663 --797278004 --580464865 --679252412 --343352858 --370511035 --935081677 --803513035 --898878784 --70742478 --507359103 --421877701 --603266924 --509232560 --621896542 --289312752 --685944177 --748189710 --752997590 --944880357 --275484907 --909515887 --566724349 --750728178 --668010124 --719116525 --671797154 --542639645 --582507779 --819708876 --906864603 --103454621 --700719682 --269219659 --459258428 --838381802 --706157245 --280967366 --61146992 --109531955 --507638356 --996503206 --564561495 --436362493 --754045369 --914792484 --757935298 --383855557 --950408578 --885253375 --702272003 --343789491 --5989757 --74742752 --645620832 --149737007 --183872018 --455898144 --178442773 --881000601 --677840287 --541020160 --223125211 --893913902 --597829836 --192305987 --745724091 --790617030 --298315826 --209118587 --48966013 --400144515 --473817551 --916674886 --989705093 --927303448 --846550901 --484805101 --581388392 --128472776 --681618672 --672786680 --129485015 --715696266 --753778265 --122923599 --73039399 --555137613 --576280239 --773039662 --29057557 --321389760 --92614707 --853772925 --863154399 --234088457 --337538617 --380086822 --19769402 --917287514 --285642614 --621832027 --140474021 --130292610 --981460576 --780238509 --424519989 --868877175 --965066801 --402468723 --416768401 --708768012 --828907141 --124096388 --578847796 --532629629 --916464294 --918538140 --252571541 --2444746 --857361083 --811920969 --737713140 --384621890 --308219739 --12093927 --570062231 --40312809 --599170053 --270272659 --928283534 --939266296 --446987572 --527625628 --183011862 --706001371 --46080365 --398000514 --43581240 --516681177 --732833111 --592976209 --205131999 --490771242 --289500164 --775424761 --815741374 --551362151 --107732561 --551800950 --272282141 --313684114 --279332731 --907841250 --484050892 --911298598 --65395201 --476671799 --238269207 --648939196 --436372158 --483030154 --283586653 --13640572 --747106166 --351264487 --228713106 --957961343 --469466740 --297564105 --688961034 --24335469 --411151135 --465178738 --846907101 --482745872 --518383202 --521492180 --267996417 --51972988 --426852391 --137542164 --781880429 --283850181 --28796231 --854096833 --653381596 --565657722 --455868091 --497942034 --138983239 --372208171 --14707539 --880627969 --983637813 --563841942 --706667597 --908483583 --935767072 --631519592 --577466490 --321399663 --354361759 --379629315 --347910660 --937291943 --869715644 --115544337 --661935448 --852831545 --974385001 --406956972 --779512202 --201539011 --813575090 --460980098 --738374346 --530854827 --514399424 --469078617 --605986971 --404910902 --144424793 --681714869 --786827146 --542924333 --691711928 --712572447 --435508963 --322120787 --215739797 --594108293 --119426774 --708895117 --857986219 --495037181 --721470242 --327295039 --193593814 --919864286 --335499572 --802980344 --207511630 --342365789 --198678484 --825090870 --771004572 --618327846 --150989332 --384103104 --661798836 --633569090 --659015020 --309091385 --897956137 --409194337 --49651396 --470171365 --539659200 --396277199 --806854301 --763431788 --663619675 --668282265 --752004319 --81169990 --103576409 --638731834 --876600514 --523774394 --801995948 --277744058 --985792046 --732662623 --352771064 --564153154 --974280502 --778812016 --696518346 --343707543 --563384782 --437728693 --22069403 --522331847 --793885486 --279360913 --512291513 --267252778 --727980336 --369670261 --519365693 --696363023 --172883584 --608139036 --919271365 --68468938 --835547702 --74128647 --863656448 --518317726 --571848107 --632388580 --746502826 --523358578 --69471187 --171304428 --856829619 --2682455 --122392360 --120887284 --966373916 --713678109 --992394827 --237620348 --430733202 --133028120 --979191883 --9004507 --687975657 --682241461 --725402874 --621362154 --559545130 --656520180 --233192110 --20771306 --124659764 --123869090 --465428372 --828047141 --628305712 --43237191 --931610854 --321264986 --655624962 --16187465 --14706933 --861008563 --563762099 --336639492 --255474051 --577716807 --798696131 --618358035 --444081660 --708380861 --821394235 --357175145 --836963268 --186918635 --528873136 --506067714 --777483719 --47508568 --217647043 --816788346 --161677316 --673163910 --689666749 --245147534 --3822157 --794568156 --811396715 --710828920 --903484043 --336953249 --200574105 --989925110 --717952335 --353382970 --654809037 --651317788 --472345571 --315447585 --330179138 --807471902 --75563244 --427732125 --617591007 --701520034 --894628118 --327912741 --176299881 --718903859 --946744344 --961735709 --994092564 --570784295 --971263523 --279514049 --178720450 --515057025 --818612028 --189868478 --691415467 --834270790 --180253019 --285076086 --329027806 --335227858 --649444299 --726796456 --391144531 --527283214 --227369549 --355561590 --805241521 --642058908 --343055510 --579911608 --821571292 --389488096 --301725796 --862028868 --154009517 --41206321 --77091926 --191478920 --261831609 --839005561 --374228414 --908741500 --596084521 --430562276 --664205561 --747484171 --330271599 --311114164 --288020991 --307147180 --961257357 --897626422 --962251700 --462778254 --543773657 --560465432 --727652651 --124638147 --593744693 --952294382 --157449271 --168623946 --415369937 --456589486 --947375952 --793433790 --467269317 --690340830 --375819295 --904783095 --132677026 --80488131 --151889322 --255807574 --549892104 --452650558 --495334963 --553769850 --65326638 --429744395 --819036300 --220665422 --273374034 --318482190 --821753121 --446820385 --461379272 --103836085 --42388364 --90211466 --190328581 --291274418 --793371254 --139598964 --75686331 --596027390 --451470711 --385409912 --38824858 --231267382 --942654876 --632112031 --392313719 --80037348 --735238552 --976875257 --655624984 --57645632 --96924006 --364876238 --454187103 --45664708 --481122061 --576966443 --425463274 --700766142 --357841010 --980816048 --622127081 --608026696 --350815250 --13846287 --609630782 --394329500 --228224721 --734922034 --160128685 --883627923 --149354633 --424891207 --426080300 --713069552 --547154542 --684834650 --948466501 --280717164 --84181797 --665312803 --665521024 --791668289 --41307856 --784836456 --813241635 --759565235 --220407266 --439424699 --964772892 --541513860 --957449511 --137162861 --527215645 --865436915 --92562444 --830107785 --32600156 --706349686 --632393078 --30247799 --131472065 --8356827 --200484474 --699451268 --71681426 --480561036 --132063370 --158830557 --451132989 --541634775 --947960721 --12397088 --764380958 --128847220 --398482459 --55571374 --121141278 --137870850 --700426407 --438091266 --170774617 --404943365 --615435873 --124478902 --708514480 --78714460 --765787640 --467654820 --157140789 --230631372 --481122680 --142997556 --849208599 --701788010 --34296582 --389112679 --954549763 --628899689 --280400010 --460496905 --453765201 --184613374 --996344537 --681021152 --888880447 --750858073 --846651528 --453337805 --808423769 --580202798 --309473545 --835542528 --851649959 --552660096 --267447962 --27096297 --571722247 --842071671 --866434534 --295720645 --473115004 --825070167 --243458548 --629246871 --694309613 --971350419 --755842637 --619262029 --929688223 --544143686 --190730478 --224677540 --58225547 --719086658 --202187187 --688787876 --525179771 --262306045 --365131125 --212108800 --503454341 --468876430 --930778989 --723826800 --461709944 --417298069 --213326293 --679808006 --210243370 --568844039 --751508520 --868497171 --941575355 --426781527 --460130484 --456327848 --579574202 --983067353 --54504747 --205281618 --593256454 --183809087 --811539985 --763050176 --795671376 --188494099 --15399567 --643702366 --112423237 --662626231 --265969659 --953243977 --670041028 --264255578 --986803640 --396156301 --343454193 --683664295 --914007790 --542965930 --361186016 --407971478 --9664742 --104361718 --407533460 --124112025 --81667638 --806984562 --434400713 --961687002 --183522529 --319617691 --513860282 --211368235 --686317238 --808875752 --627220340 --966001025 --971023136 --641565747 --776996415 --536956410 --164821734 --196505338 --589236214 --871866627 --954354325 --553065309 --118047069 --902502195 --233714402 --483932764 --836243016 --454511624 --835427635 --813995932 --762693601 --718593145 --197019549 --241414522 --879890315 --474063405 --808364766 --306591222 --656636776 --901951307 --985156705 --435533786 --732721817 --220830321 --795298672 --699887728 --521161036 --717818490 --743353971 --361426399 --968193806 --970229439 --540222159 --385610390 --27698658 --295091088 --330291212 --690867131 --18929970 --865297595 --709710585 --755961553 --630918295 --109817951 --349790581 --305003609 --627903114 --315747792 --380476490 --444413954 --725016443 --409796802 --483534940 --816061272 --788358127 --275988300 --59370119 --138590117 --281432558 --161121280 --119976256 --816799873 --112881450 --412304167 --786149776 --723810108 --349304655 --410662101 --551734722 --471484860 --686333579 --102441220 --190043996 --89645856 --313248840 --851369359 --303975716 --229883980 --857348196 --312847583 --559812578 --708400741 --420190134 --742684544 --900243286 --717781217 --527000837 --723076121 --38584552 --27237510 --287271031 --369903175 --760200320 --503260478 --839267255 --778028832 --559446068 --966005819 --179457060 --619404903 --984001790 --942196074 --587477058 --64156593 --474178102 --832887315 --498997333 --982961915 --490700364 --386772250 --301649555 --143751835 --332650332 --898026338 --599208490 --307079950 --14874500 --924300399 --927882726 --206333024 --562100705 --800839551 --268886986 --401947362 --158238856 --914257861 --330041940 --566635734 --858188003 --584080487 --605209463 --151874735 --450905989 --185169960 --645621621 --509513101 --488256608 --933054206 --225094511 --584325778 --782293558 --498185303 --642805679 --931217235 --6094853 --768861049 --217771288 --406348064 --490108867 --443454636 --331029689 --187381897 --251701929 --642821818 --708660566 --381899948 --302360331 --866569138 --500418783 --812677645 --893286051 --21015935 --123220553 --459444655 --486384437 --172843147 --645323199 --450303901 --340332200 --245226067 --455626682 --157968971 --16348198 --131133640 --789293958 --885058430 --812886262 --367893556 --563381325 --371106128 --681864967 --241126239 --958185913 --575230293 --621389025 --673097168 --105539662 --766443347 --473022370 --747210122 --570824748 --756707265 --266691251 --335244538 --883223663 --666700143 --634571137 --298557337 --406213228 --166064182 --205186975 --454250228 --315340189 --594282327 --592155476 --828840701 --820082953 --120438441 --761633746 --389961737 --884664989 --982855032 --102913977 --350999531 --509183682 --993617104 --555172896 --466827969 --28513485 --875063736 --483456573 --915644013 --451615436 --12814527 --852049404 --634065189 --875931133 --928541148 --280984337 --931662660 --385916230 --517656971 --378979805 --468481391 --264747928 --253723927 --779597827 --954810570 --176597743 --637529800 --463711680 --284564101 --277402872 --774129197 --517246993 --976405913 --377671956 --836277690 --125311089 --837507493 --962219374 --184624844 --114305572 --816241112 --926666466 --634273603 --613022519 --611694430 --286216320 --927694965 --242990826 --354248628 --823803692 --746584418 --474859534 --837607958 --609515428 --662836845 --128608028 --751603222 --944420979 --256180369 --478077180 --293559322 --401403829 --765026563 --286698146 --769445210 --671772916 --504973344 --89004532 --628230132 --351569118 --18312252 --176560975 --992951570 --708755069 --987211952 --194131217 --768207895 --656302212 --203913218 --564601825 --990013960 --554558776 --148090250 --225398766 --410996808 --851960395 --764136701 --175564886 --961072014 --922736597 --391140749 --809934818 --234111412 --80470160 --785841148 --107143143 --143386557 --458348520 --532621220 --441690104 --893224186 --483405941 --429560793 --840762111 --155239555 --920101528 --918593544 --899944306 --266836542 --377638092 --852426803 --642469395 --892405817 --148468485 --619826254 --918434685 --412454861 --569570602 --137757794 --861531463 --98109779 --979401368 --26692554 --515968847 --379618174 --486540309 --113190854 --940819184 --33516442 --931213583 --926455248 --320471027 --727105597 --787991855 --101930768 --395296216 --520883677 --947744860 --526421428 --420647064 --984637119 --528317099 --900742364 --367087233 --85618403 --33132269 --487695247 --772496320 --464276938 --136119828 --237649609 --31699096 --318671249 --16296574 --408349611 --790590607 --327710628 --776160001 --95771953 --83406004 --810265342 --218900877 --776140176 --58514375 --378364897 --475659273 --40198955 --39464115 --966453298 --212084933 --157890444 --152850759 --305461613 --792444030 --29495038 --982722899 --30206092 --25211570 --130950648 --129606314 --798335514 --448461083 --689195007 --341228234 --178119630 --811662209 --113484293 --442086933 --994653964 --389910460 --262921199 --974509787 --352178513 --512970502 --420767253 --550095121 --611164634 --181862970 --294916012 --102367945 --423430659 --724281550 --76394705 --450001580 --383347727 --232998452 --511492720 --254816064 --865356762 --89103675 --59581258 --242796916 --348230998 --779160320 --630323346 --275720113 --659913593 --416329016 --26711398 --392468010 --377356920 --345911429 --167641993 --489994735 --372413219 --280107794 --728731514 --141573962 --973086635 --422376857 --208621475 --798086104 --723194313 --331867284 --437917601 --31379052 --805001091 --916098487 --868302457 --839642792 --913982848 --451910139 --363885855 --413722029 --48389392 --349529094 --385778509 --528919347 --941581528 --237516818 --330955049 --697715052 --616763538 --818375455 --896923694 --761549988 --898941947 --768791575 --375581488 --199107005 --844291830 --295670791 --360995224 --283481297 --205011189 --450005879 --666822478 --949669674 --250787509 --921422859 --396868289 --562978440 --255136808 --996115353 --99559468 --745762883 --993029661 --640553038 --228511246 --862231803 --226363210 --282603343 --69001557 --775389775 --410218487 --287382077 --117742924 --217088423 --751624169 --347001065 --970629714 --342240451 --766630885 --440950437 --942827771 --189464297 --392607604 --750475514 --691260838 --180531645 --75469164 --356798252 --872450037 --40784083 --498514132 --967437064 --166237530 --823711570 --510143447 --562701345 --368034049 --455716666 --470629043 --580357451 --82428453 --291312560 --503915028 --747312952 --643823879 --86789829 --457003318 --411238561 --404795981 --332890347 --114358684 --347172582 --486632021 --508041715 --95456153 --851863890 --359518275 --179177819 --282051295 --346656311 --182672842 --623726481 --516786559 --159841550 --489796448 --192052586 --154455372 --68545982 --684981823 --91045706 --825825506 --611181375 --468104452 --871286071 --301779411 --978934066 --120296360 --278635161 --440153932 --149018890 --604358591 --493680021 --920735999 --305869811 --434937293 --564830858 --794287343 --96044536 --624611292 --821931057 --438430729 --70632736 --832111452 --379673008 --364121086 --606111557 --704581221 --487816508 --878741691 --168965523 --490410231 --634729067 --170222809 --818411413 --307091788 --186844190 --940830662 --769968753 --878345488 --131096606 --67080039 --56768072 --713754880 --743939698 --993340427 --261808236 --791625778 --468196668 --818002187 --589360561 --312089224 --160330016 --245046901 --494205680 --918555047 --342723066 --993143895 --613028956 --597155493 --618933162 --915803008 --768490377 --837009036 --111285772 --842557235 --920431609 --976960062 --911500678 --735714420 --826564465 --244401029 --280294957 --877028418 --997127353 --508141172 --801947773 --172622964 --575685905 --925414713 --221719857 --581695560 --435426255 --511011023 --25053720 --641026871 --477417015 --241541386 --470193571 --316435061 --755623064 --560065210 --856879154 --258237592 --425925125 --710772824 --148515621 --831150441 --808575755 --501901513 --599890708 --630487037 --313528137 --611558122 --968150407 --932645500 --777820150 --983313783 --118321598 --710966030 --293519148 --530387151 --547197144 --567117395 --75851114 --906647275 --445854939 --496396257 --199703435 --347704795 --607979064 --669120470 --398006260 --168758706 --974850816 --419697495 --448773970 --653809773 --333124624 --537612581 --536747141 --86782100 --463635198 --853726433 --796629420 --14332022 --113008138 --686349788 --795981618 --230625815 --80588434 --862770984 --491366284 --499364386 --862899020 --919803793 --34447637 --222602706 --604553581 --119433238 --359375998 --868851354 --551297117 --468905827 --436400858 --542437444 --840203594 --302855192 --755391649 --128090115 --154446036 --798856167 --423453782 --80487336 --470472911 --749596516 --20155869 --381237564 --701541104 --485536232 --568220947 --975012949 --882396258 --497654512 --572999069 --9518502 --169896889 --112692360 --420718737 --840651491 --951371529 --346387402 --548668403 --693942079 --398613264 --968113440 --302935033 --697563534 --75687939 --960920364 --398842505 --334745783 --560063105 --4054450 --494501643 --709236371 --863194466 --134458391 --700850460 --951233389 --99897350 --958469824 --931637395 --31356206 --40449782 --698079458 --525645850 --858240272 --153700225 --581943955 --362175275 --980136668 --998212461 --414564251 --696917422 --745080567 --791999552 --526894628 --755969818 --417086636 --638500294 --231244085 --569442899 --948894764 --61104241 --86816669 --490665208 --354867258 --36650931 --3732040 --226308111 --847719579 --49371414 --924819244 --354439789 --738956851 --325762089 --954575643 --720967185 --324116163 --987208213 --222023304 --332927854 --770072140 --42909327 --812141060 --445743301 --988069423 --997474750 --631533829 --145559091 --253684411 --511839601 --752850120 --911329248 --311237244 --549098364 --107026481 --890552522 --949865716 --165275863 --157560576 --944117900 --764287435 --798187014 --408143962 --41565362 --436435442 --575556082 --959933687 --231697039 --856090823 --273954972 --213551127 --28677983 --73192592 --823884157 --786149062 --318518415 --215015330 --888260847 --174640183 --493102112 --138409329 --776086018 --751458182 --439478804 --242005923 --371254604 --150566635 --933017314 --743104581 --400875761 --5704771 --24852370 --932398832 --22145752 --243328732 --279900360 --840218652 --525749852 --537355626 --943278329 --358873848 --844856760 --263624609 --628660013 --807728315 --369456710 --285300777 --773775875 --83445855 --916591893 --806322882 --284236373 --638203929 --500230562 --250135953 --888546609 --760122449 --586583663 --921244918 --541264741 --213386114 --851933469 --517539274 --63885002 --830373566 --471755822 --597474226 --333601847 --963270299 --410499922 --204109641 --181308800 --355648069 --531362062 --802243631 --326179778 --492275331 --590832084 --790577325 --73657035 --636751717 --801156849 --533072744 --784107714 --6496824 --396160725 --233565580 --87815154 --884604916 --118591146 --670460636 --52896407 --648641642 --678754081 --29118354 --294262074 --620288751 --95380990 --624616680 --330528669 --237962450 --282190241 --764722964 --222091634 --896002117 --81941262 --619572713 --694941729 --64691133 --720701477 --799321341 --685400076 --974854726 --31620331 --470417472 --184502807 --325780615 --657095272 --815220937 --72217175 --753687747 --275584729 --395751069 --90756564 --578413249 --544042515 --431001504 --554561486 --282372947 --590217266 --510303557 --65437695 --541405539 --548445134 --937671152 --31607068 --584916276 --770026285 --631724229 --510416920 --825250596 --644160307 --674373180 --988138139 --204105251 --553135852 --560721502 --142551444 --604452164 --731570013 --505092286 --562502316 --968590013 --99505364 --898154409 --913687232 --345092291 --500473602 --498034187 --947950758 --199262169 --400760352 --253692198 --190926286 --236112495 --141910181 --33157010 --58250150 --488607468 --42621128 --535337508 --962755084 --552970694 --500489373 --125676746 --930231350 --664675492 --292072695 --675574495 --966959982 --493581560 --793988957 --506523195 --287949433 --147034177 --432302212 --376330775 --165826146 --384360772 --337755457 --699155598 --887327462 --806239739 --814030723 --804465903 --175624022 --871589984 --459001317 --531441862 --431884239 --502219483 --905679856 --377982348 --605140757 --167303480 --264862699 --378788526 --69512293 --836206237 --299121078 --759256673 --131527048 --489620066 --897224811 --648700880 --846582563 --232723993 --448661611 --207446457 --289719636 --804585656 --521209490 --457686956 --15966869 --459332548 --461682345 --979349477 --185102082 --777987051 --944743916 --946610641 --603697101 --695000323 --217803194 --189588889 --188868595 --881552479 --785220014 --545477066 --526003873 --602705526 --557663862 --193136117 --364351002 --563291827 --764672261 --405474969 --68484949 --111947091 --991891203 --118971718 --201626152 --866102621 --807205276 --370497886 --840648032 --706096947 --451507603 --705476956 --356732576 --29054291 --939433569 --294080853 --822198391 --854728149 --479674741 --572364637 --206500226 --783142431 --958816093 --83505652 --852048199 --605293925 --765058618 --751477798 --908494504 --498113546 --67507314 --963477810 --317757046 --850015218 --365250419 --379959656 --363447291 --61462673 --126136285 --626460572 --451697228 --615650281 --220497581 --506664789 --176672207 --553447143 --399417104 --178890840 --498359119 --209605595 --707411530 --97414868 --280690133 --999780205 --500915097 --420776141 --841856671 --812821665 --11048593 --499917145 --544948128 --489781283 --765416695 --826823725 --875320762 --996705453 --674562627 --353505247 --418241970 --4397495 --902105889 --592578810 --760283068 --161603437 --991614438 --520495861 --442812575 --243820744 --940781873 --268896296 --541941504 --618339450 --388544927 --496691868 --62784818 --78195427 --903870336 --236491303 --29973047 --463312272 --534201212 --612103361 --324520953 --444114919 --882410358 --817419728 --737466798 --298821962 --220335621 --452635052 --284227612 --29795180 --917520856 --89140250 --803906039 --951985246 --331989588 --98517072 --679505359 --716660207 --684697441 --852431177 --158324223 --645470340 --966082373 --911338551 --954638407 --139109743 --325870638 --992674811 --683534667 --333560648 --114162347 --276179141 --439521967 --72127134 --730578764 --678597358 --92883743 --247619133 --467176158 --985229459 --318396570 --515813542 --755326925 --924526291 --93499969 --702586916 --607665380 --822246094 --85022124 --195971168 --923912708 --585647157 --132666033 --337306526 --16220795 --264166411 --809834689 --839342617 --914028843 --750289288 --964816073 --218628135 --166178998 --355200897 --518456370 --790629686 --851450992 --420260196 --491557684 --478512901 --565697939 --321108190 --773475509 --295355231 --726784843 --244503016 --282857085 --725778374 --252594002 --722305049 --411303872 --628719456 --966178361 --534362532 --919884846 --263351864 --288498931 --535599613 --862956292 --458747691 --334587651 --230533728 --823111758 --717106864 --844348417 --570839830 --60149641 --784768768 --480158606 --827002000 --10447761 --400040231 --635852260 --630914584 --631828180 --204241513 --337575301 --906084353 --991572880 --63819014 --570962635 --341276851 --655156902 --74001439 --864350744 --961632376 --254652157 --22070925 --787519681 --254175007 --742631377 --468521858 --487039672 --706688588 --591452811 --990388507 --714229235 --250543856 --646662022 --209116985 --928452991 --158392265 --657886222 --230983848 --364184676 --940350465 --955801512 --842912542 --197374417 --879015062 --931537162 --749175475 --757058886 --192478637 --365117376 --649788467 --242150074 --70293017 --198439136 --123219247 --125665535 --919155779 --958388962 --240039895 --839872342 --800988724 --254388189 --855194927 --225297212 --852054775 --543075081 --978286739 --569864496 --481128871 --901342206 --619595141 --459179350 --281362961 --763051366 --275281122 --788567088 --247135802 --874969449 --143802543 --487231059 --919482971 --519525621 --877247692 --360732533 --632186683 --874200906 --814101236 --380491874 --329857631 --458074592 --509326851 --11435631 --933827412 --605315246 --100580177 --829466316 --588511022 --832131146 --82178084 --695393511 --50921268 --545821621 --203514805 --583735090 --978966972 --933444766 --539728910 --501959463 --560763433 --549978288 --165012772 --576254541 --97369052 --268992413 --416437932 --273788390 --414147687 --746361308 --275842732 --294585477 --606424110 --705381359 --111509553 --800159514 --353923825 --493707324 --298210821 --602645363 --103455038 --947795840 --795211776 --668358627 --530011430 --780563140 --604473443 --192787370 --601820720 --329571802 --173102644 --535802425 --542635943 --158489191 --124297571 --959036946 --474562728 --930482340 --892936612 --461356018 --138495791 --107403433 --503791133 --196279236 --484410564 --164531444 --312543959 --915371453 --800142635 --871117906 --495896853 --577802899 --407451977 --963574773 --315740536 --103217269 --651087612 --786080114 --963551409 --741954198 --812673900 --886843020 --805653497 --111293481 --505785935 --405661673 --435432237 --391825042 --976281038 --394686738 --987201080 --421974620 --994215858 --202995599 --811684392 --144098057 --986754511 --315863079 --381125778 --595064660 --648721845 --373376120 --374981849 --251028218 --722063292 --444246771 --937575153 --242970285 --249113909 --491863949 --953024860 --646578613 --267757257 --960120748 --26648312 --219537929 --286772365 --937388999 --80755404 --440358281 --594805301 --556908609 --29796538 --229154896 --416609661 --128833127 --21353951 --190987918 --370302761 --410011811 --960368242 --743103130 --670047136 --137395635 --622625391 --868328666 --232417853 --185620599 --659868456 --415284635 --650724626 --488916396 --768109782 --791955678 --649306265 --989285440 --518406807 --692251321 --858981831 --684091099 --140275079 --278104767 --481040906 --675970692 --627209235 --222655761 --187441919 --541604262 --948272784 --791409163 --513289974 --978221756 --536586381 --927415580 --857876757 --923897301 --122460316 --948077737 --199879742 --453589612 --533830826 --761035192 --579686561 --779704840 --814428468 --544627470 --132895714 --336155934 --623902090 --713646189 --672624626 --728022857 --753412431 --674908476 --5086227 --779990728 --721554638 --617998 --863171964 --641477663 --668820603 --690271082 --158482506 --184168470 --820236650 --252569157 --193153473 --590564198 --586260035 --386679246 --5049559 --98932074 --835092971 --973614049 --456605566 --683355924 --467121229 --122039291 --471151725 --388159729 --307361493 --856646245 --362381339 --542338684 --474657990 --604237610 --661505028 --311233977 --448113876 --528614597 --975677246 --553088354 --594717177 --400240538 --668214105 --509817363 --502012281 --915411734 --404727400 --40658818 --657809584 --504510795 --141199897 --145380458 --170484346 --890556846 --485655899 --895031019 --318507592 --25270753 --725011240 --474046910 --358223490 --600244373 --760160017 --957277845 --45555372 --56470626 --544758554 --140580988 --993277428 --965104806 --129222654 --108903240 --186536153 --606932551 --472586704 --626559597 --775902550 --651170487 --819628718 --536597867 --405293026 --664208243 --52168021 --630887894 --373683163 --882670259 --477163703 --182612949 --262264400 --665293277 --973405700 --701950596 --458360751 --911500687 --711276941 --369369236 --583921836 --3481189 --462704126 --390871118 --296680196 --357680213 --552225551 --616375450 --184570929 --921025237 --233869043 --428859606 --501577905 --891332820 --795319640 --592925042 --808804380 --50081797 --123223497 --785710882 --466905827 --883661995 --77698452 --38622136 --567560691 --300699609 --218233820 --811761980 --173609017 --938277510 --890608724 --503178497 --340473937 --997003167 --3362252 --119222988 --630327074 --29707100 --561090329 --752781630 --611570134 --707589106 --281772784 --27099418 --342347214 --238491856 --278938142 --630835941 --385565278 --129148689 --762299681 --669845747 --357763050 --550248877 --259849282 --894328338 --921668563 --840239416 --165341697 --420704156 --83600559 --400264773 --404936502 --166369585 --303361106 --301566800 --116393723 --524653518 --212625699 --436541460 --102224349 --146317036 --5669411 --67141481 --831347999 --814542866 --318564567 --296729218 --729663960 --541735427 --36574909 --708560431 --775722085 --383650105 --969556496 --426548213 --976534541 --581433441 --116308515 --423763918 --556515314 --97830276 --316079190 --165214708 --759407188 --231783928 --587669408 --522742363 --104919762 --238312109 --768512865 --721300985 --903878788 --368763260 --876689226 --741006877 --181327333 --324664426 --175355519 --949589229 --473983665 --269448793 --400844592 --495501936 --791907892 --595324673 --512907811 --951943223 --724201747 --69791214 --574494958 --672878502 --826800620 --489072528 --651259508 --535927694 --499008122 --488129217 --598388727 --161998278 --849051609 --581192201 --727711716 --104000866 --563959094 --715596730 --778935377 --948165700 --565114174 --767564582 --889403879 --656615111 --724673517 --519489147 --174415107 --404513516 --337890171 --590956505 --552160407 --30865267 --922235532 --308163069 --312223005 --778642025 --466574976 --400769300 --429184202 --677301831 --77448050 --958861206 --745833597 --244744078 --12387245 --220520336 --193652866 --676562500 --507708629 --294661613 --41393123 --218154010 --706954156 --361858103 --194933851 --82801380 --315931237 --710714682 --105104274 --215160239 --641552993 --82004800 --946971650 --176084420 --102002787 --656863696 --756735476 --96656813 --579036445 --921040579 --240388954 --448289454 --394023508 --367306688 --801747374 --709639441 --794814 --843038479 --393301035 --224324770 --57894161 --610467965 --690831341 --122279634 --538027089 --100453383 --832317538 --574997744 --796211735 --326539818 --498692692 --478263800 --825827562 --482544246 --234737485 --218485279 --190613872 --393185132 --445018455 --553311711 --577435205 --105355037 --757754910 --237155124 --805645775 --883065696 --606783791 --909263600 --937359146 --445834644 --393851410 --270405406 --776301821 --426466626 --558109611 --799659856 --964756599 --780019688 --838037206 --403990535 --521801012 --810642015 --207664159 --357974875 --206446703 --849187687 --495784667 --441897370 --642703434 --287195469 --236790324 --218450790 --335712111 --546246399 --660871269 --968547559 --929645587 --682936570 --844623500 --670512876 --639713671 --719814152 --25642386 --654736683 --816623635 --633784692 --596755703 --725375427 --381492649 --536703234 --466810542 --833011215 --530926872 --660553260 --497151948 --621034660 --271983921 --747246359 --359306159 --887189487 --966057564 --23990270 --38518060 --662049654 --568025950 --892974282 --932733679 --238712261 --104510449 --468888836 --816582711 --475560836 --205003309 --220537358 --989789472 --929892482 --320659194 --225248456 --929431215 --695364341 --741581208 --469571392 --359827556 --260027905 --373975185 --84437633 --453206600 --386716612 --263486344 --735985350 --970047208 --783771064 --169823176 --434675326 --6501769 --430443194 --925079758 --839610949 --404052857 --146754122 --73930020 --914695203 --400617463 --182971874 --739556920 --972010145 --380573188 --872222659 --830925051 --17896253 --627130349 --796810223 --735917248 --273332601 --74173051 --75731267 --68931578 --833076367 --271060771 --582686555 --250841216 --300255647 --448054305 --360355874 --154903434 --886952943 --265896398 --281529374 --668073488 --188095860 --597826950 --305968174 --369335033 --154036154 --751604561 --531298369 --760215144 --756276866 --529103238 --868748130 --111987973 --331352758 --174699185 --503897044 --742206247 --65091368 --630486093 --198809468 --780260773 --618097886 --24530897 --254029827 --145997749 --325609152 --390874858 --273604571 --702589965 --701304598 --634501200 --406931287 --432592911 --722237741 --390758337 --988718764 --78961688 --413454036 --734754503 --303250988 --493592176 --68773960 --294383436 --499930156 --204684495 --377065884 --12272256 --554934309 --815751675 --934744739 --38046299 --329164119 --777520681 --159703537 --485438254 --767539775 --532935539 --325191395 --850030091 --611829961 --756406173 --832457179 --797460763 --334005117 --119100094 --447802289 --572434547 --745106426 --972012888 --951555540 --693889403 --305113523 --214941774 --293583301 --757584999 --515031001 --97006677 --36435060 --163932611 --479416368 --75409482 --985466102 --222665516 --301833027 --533842488 --769929268 --955275677 --563940152 --451382797 --34277614 --358287551 --368144447 --186943564 --713440143 --840035983 --106453094 --113214329 --331575309 --719573393 --737693287 --696281959 --128863233 --342742244 --591554084 --12398209 --924560843 --814518011 --940566170 --567919761 --223450382 --889532371 --508932319 --31617919 --164775014 --161284102 --520454566 --381600539 --324113247 --409808588 --755131761 --609259516 --539156239 --295653386 --607685928 --359645706 --645724112 --124737809 --942285041 --414227202 --68669118 --921691127 --480341401 --359294362 --226349699 --808849182 --594593385 --935588403 --493719733 --927557214 --873338694 --28065373 --522265900 --562721138 --860803402 --492805916 --429478408 --355429392 --46866284 --838630334 --224756925 --573318203 --391472469 --488555474 --912723448 --612133631 --431177190 --933626402 --946017534 --453024918 --141523365 --641384157 --716202654 --974115704 --989842855 --340841393 --372922933 --488126075 --245250877 --890867212 --155263769 --741487726 --309132540 --205368086 --798466549 --170976069 --990052518 --257141216 --393570900 --891649328 --498611421 --472721004 --736935032 --331588366 --120641087 --87757611 --603993421 --725328821 --782400714 --455282146 --870412197 --140488814 --133537602 --240938192 --228059703 --885700000 --519454046 --507461219 --418970325 --619931638 --280549452 --756454822 --422405722 --912140387 --135532844 --213565920 --323352160 --54615001 --22591541 --922479060 --944661326 --128487884 --572940908 --779505152 --168323779 --859224424 --431476858 --437297991 --750607786 --867786655 --20068987 --530219523 --105436003 --290833398 --676297335 --790302630 --327612743 --351394880 --152496048 --475518380 --30678968 --543319700 --912784856 --830540019 --644608801 --236088263 --204971534 --80986737 --119972423 --819922128 --112250226 --71307846 --120538700 --448265986 --112992210 --19932068 --193383382 --913881197 --380753111 --511380171 --525461895 --360614442 --530084948 --964127481 --395342149 --556973230 --266102013 --921138332 --307424394 --142047140 --804332770 --979587610 --680089870 --395099432 --219052186 --907098890 --202627116 --402972166 --587198322 --17146482 --413582684 --953720496 --626418209 --269669647 --170554185 --510899997 --259414315 --58068220 --346349209 --472409598 --437395865 --257659945 --958346922 --205771475 --426955033 --157555878 --827010200 --447852576 --606213665 --709730726 --415774731 --689346074 --28940714 --425497961 --687533271 --971996243 --747990954 --741328915 --936684219 --519164817 --530392268 --998749750 --274704406 --985986560 --937202437 --339529300 --259278217 --572082124 --316680313 --933627936 --962846037 --373348547 --923453274 --531262 --103742241 --138720462 --879523716 --708332334 --762120679 --28724015 --570906136 --185599438 --397708426 --132419523 --872360391 --138854164 --468272084 --972450739 --809845793 --473754695 --321478239 --243984339 --735357897 --111455091 --808879539 --886712850 --789773029 --354861299 --445801555 --551645638 --198532807 --139879984 --97738508 --154446285 --758777198 --922312150 --655587377 --775405550 --134898491 --485701778 --467835318 --932755526 --332268791 --787059663 --523825752 --682584225 --763879878 --512577015 --749220208 --533670074 --845381955 --166212153 --416260461 --641704316 --152749965 --647457155 --597194985 --338664440 --296487118 --562423216 --58786163 --876032974 --429146055 --326812882 --933333277 --619793871 --843408356 --376522670 --960329353 --74773634 --805798689 --744195049 --685095087 --266355844 --505423289 --303343087 --685192995 --784438605 --645778448 --90487250 --957178528 --181200752 --33171097 --626070601 --135539198 --483056939 --363970957 --488962150 --752027688 --136890614 --787308584 --102309640 --904986057 --39120109 --9308223 --639622685 --505929217 --569863726 --421507798 --147233427 --367545007 --961286105 --108613418 --628591670 --708632721 --41068222 --607070383 --219345208 --239368716 --235268399 --577244906 --33687806 --740823591 --752819510 --504236099 --230845632 --898889461 --673833544 --530542165 --990446443 --606278752 --227976706 --619481930 --644464379 --529822439 --266349482 --769580276 --709062456 --906323588 --719235079 --857633511 --854610025 --560463656 --809909179 --520046562 --892700900 --785860797 --46846511 --83534025 --662210623 --857721343 --699844198 --16381356 --680137286 --937664371 --553362266 --253549791 --955349455 --273083777 --975603214 --50346322 --808207806 --684072595 --872778740 --950023887 --900883857 --330983807 --584163114 --68900989 --923266143 --815322203 --612527808 --889359731 --598007001 --376178512 --996247179 --583214718 --457614540 --336546301 --451265106 --504123853 --721350157 --613640846 --836652149 --631033086 --824861324 --58932421 --660083485 --59506800 --759652079 --448634367 --327370593 --546073551 --839676909 --63609586 --255332708 --752151031 --488761719 --23418180 --393826616 --70602462 --318540855 --562885692 --9019395 --614551864 --889814962 --606377461 --13073513 --477442970 --286503445 --179051939 --850156048 --412353008 --57614726 --664914803 --977166831 --953143614 --328667292 --544437748 --52542764 --155285898 --173845752 --190356097 --494405917 --299442103 --465141248 --47608035 --645613572 --8770827 --316419768 --489295408 --751422771 --824304586 --38881750 --728046284 --536370516 --826672245 --838761007 --858478791 --257227347 --244375884 --156401275 --556361139 --874201725 --892793643 --152214811 --478095551 --696491217 --944943399 --333454267 --892007042 --985995117 --833061968 --762966693 --144610175 --818450492 --812565240 --323512186 --136127858 --106343485 --183056530 --365371107 --838815926 --56949878 --660545967 --309111155 --362748390 --335533014 --442748400 --651097483 --886089202 --105725145 --434713648 --157841099 --202813343 --881648263 --587391904 --18633480 --30564020 --449973671 --167742171 --866978429 --115335673 --555944229 --880907579 --465760629 --243770926 --832737088 --76638493 --79335458 --691221645 --95713807 --525506567 --198045554 --465595709 --136844577 --727221002 --847477073 --1278955 --219330512 --637839569 --758898275 --747615399 --80400265 --884027140 --779469649 --161126059 --496954207 --514122787 --758302910 --425846142 --396076615 --73449073 --786221911 --286745858 --53207843 --258808898 --36310664 --333749592 --653965543 --737008807 --363395718 --890260357 --825507336 --314696107 --70100442 --874311260 --849658013 --693932219 --153170391 --90996192 --519725936 --60870755 --831521527 --181224691 --858967454 --974423831 --453857386 --444658281 --512151323 --248858676 --321780087 --579132614 --299561237 --355737323 --663601532 --229415768 --773508107 --95833079 --984025028 --59694282 --334586744 --831104993 --512148939 --209908524 --491692869 --133741057 --367639022 --223561293 --111559961 --673604824 --114510579 --988895778 --55130679 --566236922 --458444758 --418775533 --81312870 --381022050 --453074003 --851084229 --162613124 --138293901 --674670056 --456695383 --129121186 --437524109 --316462317 --196412081 --45547768 --505327140 --598891301 --49723660 --704209437 --3024950 --773361632 --529959486 --470063221 --316198199 --188082052 --849012478 --39177205 --841169427 --388804670 --524485656 --915077099 --226401013 --954680075 --517294756 --643844670 --131034792 --832797149 --302566562 --298963364 --171284957 --346950342 --938857992 --513611610 --200574954 --328525308 --43988089 --373288194 --436752689 --379635027 --682595147 --870570513 --822994391 --742439669 --474723520 --585022930 --363181059 --177482352 --985900462 --602829186 --921789747 --553805407 --223457551 --449742725 --128683227 --461840764 --461652367 --314439531 --526924511 --68639352 --176699150 --712813955 --248845666 --857044414 --181088529 --697831965 --658362376 --676266065 --317518424 --488769901 --248754979 --20962768 --390969097 --320921518 --680144232 --438448721 --465216182 --200992010 --984469165 --132513820 --947635233 --761896254 --892957591 --899355282 --657789893 --803409836 --248225244 --805440735 --263238699 --118406228 --774661254 --98551218 --487666877 --50423906 --220068057 --58376615 --112519937 --869663508 --305102628 --668934101 --856439276 --495134041 --806885537 --21170547 --480231006 --937309507 --972681534 --282879739 --130559249 --218770374 --94127685 --214488192 --101716918 --711496294 --865506484 --367605495 --916730398 --115451201 --501767623 --478114480 --401288597 --917903937 --355747265 --71819074 --734659199 --308890897 --392487530 --551577893 --341193845 --704795679 --412513175 --346708416 --149223718 --769381957 --706481451 --886731860 --228623570 --844359130 --456247589 --750233747 --385993004 --323885644 --18229713 --890401211 --8865807 --185448133 --17015400 --692711007 --344364049 --752738092 --133522302 --834952037 --550911233 --502881382 --157547130 --863752296 --358506082 --168109835 --563799507 --980638579 --199189151 --67347714 --38616358 --288077447 --845226409 --73748316 --47595093 --942768869 --703810085 --55848592 --498508890 --184588612 --208859394 --374496426 --307184363 --691192323 --934804394 --389311271 --16872015 --722145806 --978412129 --309499957 --436710237 --564823137 --439868888 --920951865 --991814763 --56553538 --661118015 --804315696 --172746511 --265352500 --383848551 --977885972 --850856277 --299369811 --682844771 --53044851 --752909531 --712821216 --730444868 --795834651 --749958165 --553075942 --165632192 --291237262 --807219222 --693662867 --829996208 --981413483 --304932648 --142626747 --762370321 --420896269 --316092855 --672330547 --506139552 --706282310 --163528350 --869872302 --47908174 --811352457 --300288083 --137983860 --164377332 --840386929 --420380230 --32624305 --637650147 --861778843 --280768323 --287970676 --906078636 --602055254 --417932622 --985424976 --978101569 --707635506 --414026925 --250808188 --5409058 --150914946 --34572877 --411598906 --398032998 --749403407 --404793946 --993934186 --565955521 --359804675 --701326674 --962220387 --650694681 --972186955 --874651121 --949878183 --719756536 --498576067 --647524731 --715904844 --430238113 --611245200 --360310629 --88193098 --716467592 --23761454 --324671359 --611825749 --84543305 --468182262 --308057580 --431003982 --899706312 --735919480 --187531130 --985368474 --133146903 --570874998 --300707407 --211093430 --629445529 --473826996 --874023562 --462064561 --909259178 --344491272 --519784165 --514315760 --960964520 --662827538 --663073628 --917068235 --52247397 --392962615 --663434424 --305252882 --377193974 --401570950 --608633522 --207590776 --666749623 --214541893 --888119420 --212980999 --513167370 --325647926 --53085983 --484029066 --998098793 --758704115 --382533893 --359477770 --130668565 --268157179 --783968553 --916381573 --737549359 --308217941 --915317468 --519191960 --57964974 --495298723 --974560169 --597445979 --728260580 --787019248 --882565160 --312628176 --163538579 --128503767 --771559515 --302290176 --110223539 --360611395 --677316781 --692618710 --924060783 --810371595 --634806691 --638644730 --574763031 --601409115 --290093155 --800416944 --198974690 --490329869 --328463803 --411412316 --867288245 --353086865 --891747944 --124500755 --411280258 --409126540 --372752896 --995421483 --325556281 --589618727 --343226938 --363474379 --556500900 --850014690 --654074103 --742450453 --550879373 --571038869 --735403387 --339815397 --176034618 --210579626 --749638100 --31481168 --915157514 --467476746 --450113285 --352667308 --372021164 --852328545 --598807019 --859458976 --83229072 --58815947 --48500516 --676009627 --230825826 --281745837 --324062342 --58232031 --341604088 --698320947 --310532342 --496648116 --497349549 --712335837 --95150756 --889752349 --382186938 --581071529 --730595264 --902515891 --778826290 --589090346 --72091846 --866640495 --842825335 --528630706 --739663770 --500811430 --389408029 --111371061 --716779747 --626532132 --427560869 --414417756 --507100668 --961858589 --547082536 --968265558 --597952457 --932779171 --616507971 --569325948 --107305066 --429922927 --281212674 --645074880 --850316529 --792716306 --63708217 --229824241 --651554459 --287324483 --976742938 --46153953 --744814612 --89114771 --766369032 --757419501 --779660148 --826376780 --258637755 --624249778 --73545586 --230905537 --607223806 --924086467 --535008331 --792324082 --769892415 --403877352 --61192128 --263035303 --175732162 --706143452 --98149246 --270729520 --60383174 --845707071 --98872823 --361700769 --509437049 --594541449 --651643650 --528658820 --640461324 --956884888 --470921388 --651564549 --77657185 --500559499 --325989613 --914121231 --664094764 --358204163 --61293455 --791892378 --612408086 --409997530 --958910913 --123798213 --331812953 --653487014 --281705104 --227803191 --154950580 --204806091 --796883472 --369368871 --424617016 --849058250 --639919690 --890587529 --48394398 --790187265 --675834132 --730517603 --294539479 --35586319 --177569863 --280152908 --529226355 --147457803 --109751395 --759012321 --574758051 --764777093 --428089569 --20931001 --630479206 --520868198 --841921015 --963227859 --434721970 --958319965 --459455177 --124371557 --337116547 --606494798 --221204333 --24234247 --98095244 --914870720 --192851055 --338914683 --683284235 --975214406 --718061896 --898509178 --215359093 --995341517 --255506936 --86349118 --593659936 --190056222 --176931104 --754451119 --648377229 --636064940 --837893674 --40497183 --649849857 --34713224 --454060 --972586902 --589760573 --688325983 --457547513 --500170549 --382170590 --132415089 --964032811 --899290925 --208265990 --534266033 --65187088 --677978367 --420376558 --487178434 --211981370 --434440504 --608732889 --542315779 --730136839 --617487264 --19167046 --928555283 --853796574 --733652451 --724281914 --233654511 --813120671 --355038485 --224996248 --955123627 --374429571 --674799460 --337702539 --85254128 --565550871 --452007759 --345331737 --501153314 --940098818 --411632970 --764608416 --795594605 --761861277 --858979462 --238152872 --892633940 --149844928 --709594539 --964551949 --734784332 --894013965 --557213719 --847973215 --60187048 --435291987 --527252812 --929006463 --865404764 --947347334 --145598779 --838354307 --878389954 --827190675 --657271318 --410389157 --593208588 --58196952 --248527498 --314277214 --790032533 --808743252 --441820724 --90868544 --75356660 --774040827 --910800038 --477775998 --290516940 --219003089 --936065018 --217104520 --691267377 --864600065 --166075514 --579122064 --103334742 --499909393 --311222279 --191991553 --904440559 --205183898 --557235912 --790578063 --4916685 --236306611 --298398123 --738581200 --526479409 --695858600 --477135909 --799378868 --196850036 --91095075 --199203888 --473474840 --73492891 --328295461 --592266205 --839660905 --500501377 --747346145 --380466147 --611094032 --215827121 --169420024 --556308933 --512991290 --967492558 --503832478 --989657353 --862667041 --386772928 --600095815 --817765817 --810519986 --356077645 --639618035 --60919210 --728547385 --677959250 --650608677 --145363145 --565235907 --198315094 --922596621 --311169483 --315190957 --69984113 --679190638 --126863808 --724859798 --681986973 --215736300 --372284138 --53774525 --530434961 --866303076 --924391517 --824429743 --160859760 --764634072 --850883853 --673617216 --830782985 --394726158 --887354470 --731014099 --37223912 --169308378 --249388554 --48384743 --438746404 --935251386 --720608943 --251846256 --240328718 --3404502 --266138787 --342564014 --3687402 --782611119 --184611872 --881398453 --661701615 --246670197 --557247481 --463287151 --738370188 --160123579 --877736595 --527184226 --609317334 --505850492 --349408708 --195251548 --200867131 --52656354 --42757839 --887940784 --122629020 --652193487 --737317843 --647588006 --919617815 --818668062 --482253738 --418901967 --907481548 --635542158 --588115254 --811613260 --280137123 --342481853 --516044393 --536395289 --761609690 --472654424 --402615113 --234016251 --893060442 --359423197 --167351089 --510505785 --636771642 --305865712 --463992714 --439235341 --681235918 --955114633 --611558258 --655876455 --535970710 --995165218 --444747492 --868146538 --407305583 --117392470 --87507776 --70900281 --544532439 --477952555 --778609411 --342944785 --937936090 --68546595 --928178094 --641457513 --816468900 --997981648 --815988975 --409449796 --493564348 --909931324 --430780573 --350972815 --48258023 --215257644 --140103555 --118379834 --885749593 --400467716 --165422276 --536808423 --496785494 --696763155 --848915107 --889870484 --172331356 --348976381 --707950601 --348424027 --561221532 --937067129 --655200120 --301811856 --334910733 --234858935 --75561555 --924273953 --276572957 --782882353 --50574116 --615847334 --428371378 --528286287 --666222840 --355442621 --279629670 --71864060 --883995168 --680970541 --95411953 --155246703 --303246224 --287335051 --146630195 --489725809 --689219755 --677186974 --717945391 --642291418 --554021442 --676720235 --780599299 --482864767 --145147651 --597027325 --891419141 --49645704 --570300594 --706907899 --80736373 --111199511 --700274414 --818587991 --841170803 --880982476 --964242482 --377590423 --646307692 --194827846 --310146367 --279792126 --711940814 --798531322 --692272569 --853749175 --453862110 --233046671 --231921810 --332923588 --730683996 --703902856 --375894360 --656329830 --368735166 --236185714 --291479865 --156802470 --909108369 --229638471 --176304335 --638330522 --663398435 --73507638 --354284988 --706839053 --300708452 --893545610 --114507917 --482454493 --264754904 --817133460 --344117637 --582482779 --524583721 --519606050 --852302218 --179422426 --387642992 --123648798 --21328433 --126543460 --18329090 --288913704 --269030962 --434791612 --623163618 --42785401 --155061044 --714725288 --622413367 --674672704 --521137758 --9461623 --696857991 --624900308 --991720965 --38251856 --200681877 --374155832 --71968872 --585616798 --938557836 --758880386 --644655504 --20726083 --396816215 --945014727 --250201097 --740842883 --950292384 --98105551 --143834293 --374036950 --150634272 --520250826 --507746991 --806412838 --808117592 --308229344 --21414936 --322469790 --618403626 --602559748 --81604943 --363645842 --566480675 --20433484 --574681266 --658476053 --859792297 --66494388 --110701678 --848672471 --658671030 --591938400 --125568971 --338662846 --806860526 --482804710 --909971223 --209520253 --833141806 --61585518 --908620373 --282666419 --329594525 --326907191 --186833137 --281743939 --385464748 --126757619 --614661002 --969236044 --361479647 --257006844 --596828869 --890269494 --743996291 --726657990 --708490315 --198316379 --181535056 --853866906 --763929997 --182629513 --803112564 --970605965 --976728578 --90389796 --649606472 --258076678 --266057147 --214794425 --62343205 --721842308 --876122215 --45310429 --885971619 --877933294 --83547877 --496891893 --25282768 --19159983 --140614903 --197643926 --533500795 --137891449 --431967002 --434868982 --948282746 --231392365 --290021907 --425087773 --977932599 --514642393 --990003321 --72169690 --402398699 --582972307 --834482678 --672200159 --935352926 --16291727 --513191642 --598949239 --256573580 --835043743 --613275183 --981329099 --699390794 --427990786 --202699660 --199364821 --97250143 --657703390 --198295213 --936774511 --922793790 --365419549 --353249531 --248488098 --935308566 --593760873 --984271573 --504004630 --508229871 --791029249 --113082366 --567762697 --308772662 --630138578 --687778920 --983450090 --421235082 --858746901 --464728835 --627176854 --422573000 --834220877 --657418768 --176931177 --222303296 --175407033 --670183725 --318022726 --577747161 --73133311 --282818612 --419611369 --583570892 --431854741 --976458581 --897792741 --532469697 --256852427 --244554438 --54885490 --789376713 --789888916 --836181106 --504693153 --716689217 --95171528 --158312960 --546467121 --325490535 --805999033 --945244701 --752902444 --296741418 --939879176 --270700034 --473074900 --500950359 --316798741 --985839991 --546500928 --581325015 --444065999 --822303528 --856936285 --226937084 --366444976 --755256929 --915231022 --441036347 --895204495 --721708208 --267157242 --503328279 --340335280 --681013985 --129115605 --809984731 --925424996 --48832383 --356123300 --48271900 --777082787 --705833213 --733028262 --687677844 --107790618 --378711983 --662491078 --380460820 --693854830 --881149112 --123034084 --345275238 --156587282 --362980573 --316514625 --616857437 --289845792 --886057548 --478208088 --401338166 --359018767 --685009001 --281405615 --598758643 --747286985 --188086410 --689047225 --337586467 --698139006 --298041096 --900624529 --604525217 --546975960 --270178080 --418818360 --571698280 --237264707 --603979721 --995232255 --365074096 --225014581 --807620656 --217143292 --635735722 --542890001 --750159350 --651318988 --372182095 --959536139 --604894949 --500303991 --333678941 --212347550 --132687202 --32273191 --771518059 --792309894 --57885106 --989524919 --543544364 --29697894 --641559961 --364985947 --918818060 --947655269 --245276169 --613084371 --622886130 --107005321 --831482396 --411273173 --749942462 --132568864 --489827518 --540497354 --757873697 --918238639 --139284500 --286891921 --918011754 --395113990 --458179694 --317694452 --875564174 --325706102 --785347171 --586463340 --128744599 --536699329 --193367143 --957931566 --455444594 --413837913 --286295026 --426600669 --448756571 --317541549 --283478536 --253037382 --890566349 --530316804 --727788697 --366180098 --933243342 --184989651 --996905058 --715180449 --789761738 --733337990 --739152995 --474624284 --639113689 --154607955 --682086623 --67276515 --983306151 --145656751 --687105227 --774088610 --769036396 --272616994 --913400431 --310428080 --873348120 --976065836 --284065415 --653974483 --178928724 --486458414 --349575761 --82098565 --352580523 --911090098 --607534107 --631385684 --963087799 --237659358 --493183536 --695086381 --249184857 --248843880 --995177756 --416364838 --735266618 --828016355 --188810926 --108182313 --166108233 --168884506 --523614633 --785528396 --38923252 --627708540 --413248766 --606299171 --654534183 --773712963 --829265132 --654784933 --295888920 --287284422 --627978730 --748687806 --608677510 --882148532 --657223382 --586861083 --651384017 --271972553 --612544568 --155821380 --25318474 --637913246 --552147609 --686337046 --639018742 --272488376 --524384008 --44898142 --28825608 --945782242 --499900186 --560443543 --869307263 --794472013 --875939654 --911234478 --730179326 --741947582 --671208869 --149379422 --15821807 --719028117 --445076764 --427383751 --14184171 --396259191 --362161813 --18011634 --542730920 --389646121 --890748453 --401038348 --322887265 --206785293 --192890415 --469577112 --284860232 --336536015 --359498308 --779892670 --901728681 --38735518 --947633599 --494677390 --387538818 --259125086 --171826468 --949397882 --155727578 --500179644 --247867314 --991086103 --114561838 --958869186 --94788053 --332916914 --586484851 --31150697 --98532877 --845398987 --781710309 --110814946 --230344068 --463666276 --896475558 --940856991 --623644518 --476190385 --827863939 --535592491 --211331429 --123286927 --697352983 --602637900 --531210134 --372806503 --923800049 --533119042 --155926375 --39305532 --650399976 --505769218 --756160625 --291078015 --935179418 --574366408 --430492905 --702836880 --265610225 --788484581 --283831518 --231815275 --956405794 --471001825 --457642222 --341109699 --974646461 --806825248 --480895351 --56023529 --429264573 --17733412 --553381993 --860015293 --202577570 --187208332 --494871112 --284288997 --749175148 --376249922 --364019762 --796957592 --929351108 --720154405 --740631281 --432446582 --154236807 --370151875 --560872594 --511633146 --908360201 --22754050 --63937226 --921855480 --316448909 --708274489 --881305441 --286340343 --44696566 --376493683 --671635481 --654211613 --13502045 --111479821 --641288072 --481315114 --938112012 --49284286 --706022347 --790232099 --502105063 --674386782 --966581161 --161405228 --526319113 --45867641 --936945905 --22804390 --852374060 --445327236 --63013568 --480186611 --505733900 --752313842 --277864470 --527784947 --316372677 --556898615 --820041572 --259497725 --41220584 --445750596 --172182550 --431989679 --118295298 --612853823 --337925213 --141403836 --551303846 --55114368 --394669249 --344928066 --280692347 --696034890 --243789916 --439531197 --13343632 --545030108 --150860357 --113322851 --448339919 --337460947 --907693584 --760572201 --72727246 --330816634 --159874291 --509678381 --596994489 --776685297 --645193578 --134667264 --614652065 --736967630 --750871168 --625878854 --541429636 --822544199 --579967320 --323691063 --724837096 --561340561 --669302261 --322922526 --99191953 --935294241 --187810838 --267339394 --310559914 --585192127 --305338785 --441859108 --285013637 --807056201 --62730770 --494255102 --342988844 --162218193 --294964063 --28773403 --447364855 --141216970 --399262537 --355792568 --524957929 --860144909 --386287937 --640223923 --270427221 --115749803 --317568387 --922156435 --857725939 --3482586 --263384701 --14310322 --854656463 --358224579 --53673741 --337915142 --500437315 --689520510 --178181654 --275744606 --243895269 --88556298 --109813765 --528802521 --768516713 --391522329 --792767215 --297145639 --197540468 --163893606 --510925088 --546822850 --524031291 --817250361 --735426667 --943100020 --861242432 --863011233 --207076639 --986436065 --244802374 --302952640 --215864627 --393751414 --623111671 --970313576 --630463925 --369556183 --836999273 --432205091 --885503167 --566339560 --652876186 --662596339 --470415292 --91759511 --276922561 --506784794 --180379804 --308423044 --793963808 --272242199 --424458737 --256767014 --598887909 --975585192 --644659476 --464455514 --563186098 --111835721 --971203654 --736934202 --534939996 --663732407 --726447175 --317325504 --188135741 --415589971 --802159198 --612789439 --586393468 --204026389 --637314600 --36156105 --735104076 --125847426 --113292917 --977420861 --429566300 --473603204 --425867158 --5337151 --17422534 --839891233 --60979359 --329049608 --702848475 --520060009 --301238774 --303859251 --515628153 --339690952 --873843727 --86744236 --830956744 --566991226 --391417474 --145732689 --715018200 --277897543 --252322664 --547684459 --100516565 --908883958 --210883558 --889499113 --252556690 --715492396 --997678435 --214547437 --455649629 --248341022 --313170514 --687294236 --818475634 --444987893 --675283462 --338134805 --574254528 --558131240 --629762555 --756822923 --580020488 --851868221 --681641114 --460107214 --727567653 --495065782 --897695017 --783429598 --417640284 --696372454 --271242464 --647236597 --519205634 --988783164 --420232029 --922337883 --385860843 --249124610 --463250195 --448701494 --807958892 --649212322 --852214965 --394668408 --663734155 --339460090 --947067835 --777172550 --134472292 --684831275 --109004462 --798741867 --732684660 --447076472 --316096269 --510714131 --311161429 --450732006 --972035354 --603494228 --236947669 --405712282 --457019329 --664108464 --479653951 --820833362 --550341380 --541782260 --46528552 --525897000 --949802044 --607011691 --50714417 --154034899 --483300571 --119071291 --994968017 --514019378 --426271670 --814286910 --717981140 --350689344 --985260795 --33774154 --144873313 --828924926 --143417355 --162344900 --989351666 --232535130 --551433186 --564280737 --943801775 --953123286 --347657458 --694838045 --806968504 --951475015 --986441999 --409190210 --284683056 --166319639 --509007240 --821212088 --485920851 --235902316 --12873608 --712058623 --611794806 --499732067 --880102002 --440294560 --540202906 --669327748 --727252974 --115549389 --843309552 --281575012 --975912451 --55237936 --532215072 --342901670 --873785072 --919147967 --191071949 --285102806 --331589797 --403571696 --557742374 --612786991 --368643055 --59450192 --731007469 --919090672 --863898788 --78529364 --269992912 --677705403 --561877058 --206056387 --940674822 --192096705 --697882453 --337591669 --764685738 --335025864 --617433520 --179105792 --135652957 --313246695 --903936144 --763275844 --550922113 --147584780 --303932379 --464630910 --138577433 --978744434 --406993446 --481449690 --394509213 --548845662 --824384822 --496555478 --837858628 --367663295 --284366665 --970409171 --164687213 --558336639 --523288104 --256315816 --699239680 --32159620 --65076343 --364044723 --587961609 --869655603 --850654535 --414873188 --240141088 --183319990 --942483468 --929454148 --530692150 --438529415 --634596970 --727167230 --521126630 --246319531 --800365358 --326317302 --570026281 --529560423 --549210245 --407151758 --652112627 --268444329 --743481339 --628897304 --383064772 --166447004 --504427228 --671961780 --772886897 --898793913 --666577891 --387210601 --215520346 --97144028 --404421717 --957079332 --276197498 --369069036 --417032758 --299862384 --154530890 --997892496 --283674274 --84737825 --646617172 --341729948 --581408528 --45315310 --31721392 --721588261 --341939282 --472961098 --508819870 --401076929 --883634071 --543624621 --377839150 --337667583 --377275721 --591438601 --361768259 --456751063 --36144639 --175349712 --139321029 --794286797 --747510202 --746815433 --5238521 --94452017 --659970777 --394813964 --742331303 --60857428 --117301405 --508822966 --423182837 --741379275 --80154547 --180670169 --483001981 --332311044 --426892528 --201903742 --314519164 --858609075 --196644848 --709433665 --249977161 --316503296 --159839765 --227620997 --482195948 --362481566 --96697758 --221270774 --94777802 --817828439 --276725977 --580502783 --186306369 --427926003 --805918102 --168238101 --548993806 --937138359 --453038015 --671387166 --564373955 --373230698 --672914079 --234694041 --261490951 --32126637 --238097326 --224681064 --700307885 --349023120 --597028738 --650911685 --781854043 --598883104 --320675633 --305471842 --907356198 --501259141 --184310331 --756504242 --804108623 --877078959 --525369301 --342969520 --539315376 --826248690 --547097050 --447076291 --800099635 --141906743 --123380085 --792514555 --441971476 --785903576 --180711577 --192047426 --195680827 --21211439 --162986055 --25253634 --202995797 --166931063 --387174949 --46611673 --110040389 --177157584 --565440123 --767960914 --743503467 --349737897 --598812266 --623696576 --978193105 --893386911 --219880860 --706269807 --677503537 --398389607 --112940512 --65660239 --686827276 --347136104 --265262393 --603759071 --114646266 --247216746 --383239408 --783285610 --94750937 --610142107 --661312182 --835094417 --668842532 --851656228 --534613132 --38364674 --154098482 --645988323 --813909839 --123760504 --177707049 --633945920 --907183876 --509764791 --100877866 --844307065 --820478561 --752685344 --388020366 --500539571 --790799573 --720558916 --732094475 --474824977 --423612660 --655107908 --662858515 --864823010 --509136396 --950766851 --138953233 --983917536 --692286735 --573306730 --315138745 --602044381 --354829095 --678702126 --955198663 --757867381 --312395902 --946444168 --308007302 --485542617 --445799426 --186584720 --358929874 --989264201 --879804599 --64770898 --879501099 --2666513 --437949331 --340634804 --778912421 --173371506 --673703544 --640218030 --726805040 --605638059 --20317470 --895486903 --353722814 --867176121 --670827814 --926114955 --513906771 --294172471 --638535711 --667925850 --371883620 --62139039 --439744141 --509337386 --493632463 --629087468 --66553498 --319506940 --810979867 --607138701 --135165030 --481030202 --152438490 --407417825 --675193676 --549905001 --122381538 --783615258 --830510459 --240842217 --210362432 --760493546 --878161616 --416839501 --158644961 --521340014 --302834609 --588044713 --166411215 --528023519 --899927521 --341205354 --349862724 --232198652 --965692079 --68294421 --703519287 --371497354 --394481393 --717930264 --576781565 --21326245 --654453841 --878125673 --744485977 --730456912 --787376593 --24201179 --473755572 --9163629 --429012447 --322387027 --277757698 --82519167 --270511897 --665631066 --311572764 --969241764 --46379863 --417399236 --807954743 --236730241 --739944829 --67231100 --110160911 --850022071 --275308174 --511415020 --992547907 --804306015 --181421156 --997588415 --365409841 --448724479 --696944980 --765954039 --173423797 --843075752 --152308265 --238272960 --194948588 --892376685 --119512116 --391181668 --777721135 --664452023 --330316497 --920894486 --505310494 --791739089 --627298660 --17440502 --46530185 --384609284 --689083145 --363011236 --913534808 --65169207 --612896707 --30121284 --465015370 --909389208 --446655321 --15783796 --587405833 --564533011 --338214653 --780296233 --890755442 --293700096 --597056806 --321426793 --118853841 --420907665 --85538586 --365070323 --914021662 --510863652 --565020054 --716957063 --136033733 --608628312 --369686465 --303840856 --23145616 --464343913 --452680864 --803274999 --922086999 --433225889 --60084072 --268689540 --966931624 --207832388 --502659534 --126320875 --100830050 --608825319 --224871431 --379569130 --942246317 --626212396 --94067070 --968063670 --277300988 --900819951 --323985465 --880623909 --564562294 --717808770 --326507499 --94626313 --612559794 --48830086 --116628844 --809136831 --910940056 --455151166 --370519489 --279628824 --636884238 --169640509 --237056941 --160265906 --531268766 --858244140 --527964717 --603588774 --291275048 --671246500 --867251752 --182347268 --547425033 --371375795 --532488719 --615576738 --446752326 --561840167 --26408873 --54231593 --688596165 --602767538 --63925991 --445537396 --26267999 --63804774 --684818008 --825277896 --394935712 --870242120 --125795918 --712197103 --645020279 --982025549 --655568199 --618175230 --529773332 --546197104 --908904658 --984760907 --654019350 --644991040 --751354442 --914583084 --250576656 --615922131 --913020160 --871771218 --397017781 --476928701 --204992553 --678268732 --699025425 --297934005 --898693192 --471661157 --414498417 --617089038 --596233883 --113405720 --778789089 --776885768 --319698317 --268597267 --454746004 --122088415 --433976139 --347731236 --767732160 --21570336 --815526672 --485611939 --24392448 --752630310 --32469284 --842086525 --475534318 --485422408 --707064072 --581680840 --763400277 --262508162 --491194363 --925325051 --228849072 --493103576 --608660845 --48441903 --835145682 --773078941 --761898343 --683849807 --889419350 --341600005 --645277548 --866848599 --451694845 --742717005 --767770581 --430165018 --753492996 --966579844 --907320928 --355516818 --569732345 --504949319 --475297412 --425898908 --162590683 --311986476 --194520032 --3460896 --703407872 --70744190 --797670024 --167586663 --378892435 --193227450 --746977943 --936079317 --969845811 --389831657 --505319737 --755987335 --239130031 --600531107 --802993547 --454527667 --155773495 --909558136 --970441411 --216478918 --537114935 --877237393 --778624911 --569287855 --167606410 --774030362 --160478516 --457230473 --748080268 --369711593 --367352992 --914717238 --814370841 --370650771 --733791852 --945755776 --870035738 --772541036 --826144145 --644643800 --804648472 --828656163 --708086707 --741982774 --524135897 --396639864 --593601357 --651091702 --609266765 --247333535 --955592559 --876227756 --40424353 --310496606 --189502107 --637970618 --557598534 --974667665 --117539540 --203127860 --93801534 --40199772 --879962387 --229828120 --523425292 --200479956 --947644732 --240395658 --391073786 --596123211 --77360034 --717962783 --382419702 --384859229 --907289097 --211819386 --926740297 --709541356 --798645534 --798266529 --601697861 --566855094 --526502602 --340451391 --216940023 --852197826 --985838086 --175611250 --947341559 --58753138 --962954278 --273130035 --446772120 --111579240 --201966882 --148053289 --526003531 --102204720 --274163072 --321282251 --176037821 --350099707 --198065675 --413694640 --758243843 --408757024 --419591333 --325919464 --95806986 --273216215 --462232121 --717058063 --942871408 --534445644 --456335274 --241226892 --592984703 --517963743 --410329354 --358248791 --207860270 --270782492 --913003475 --734036345 --130956404 --676973988 --800293025 --138098379 --68111459 --79812893 --158878338 --653773353 --312311643 --705526294 --447575083 --784689254 --657609415 --871863483 --993817537 --911812597 --145252165 --650634455 --537917532 --745880328 --412317218 --649506967 --277982044 --948495065 --683539221 --432340616 --9487438 --139707522 --781853644 --315345192 --850620035 --923805366 --324652155 --690936983 --637019452 --567210946 --663891631 --433431466 --619998916 --426959516 --974848000 --161876286 --42792521 --467250037 --56605919 --76198309 --491242638 --451374280 --552404627 --216938140 --483924515 --667254532 --259942259 --397141569 --928819471 --544251321 --344749127 --893240583 --528602921 --124281804 --91006565 --653769309 --261427989 --948243874 --249639129 --518126066 --53220099 --990875557 --441794571 --286067349 --555793464 --613577460 --749842885 --899604595 --259402540 --968689018 --677661841 --414643441 --487206581 --331669602 --81517013 --482202329 --135512425 --633752175 --515024344 --418288878 --140564910 --957974202 --192350956 --847136708 --973479286 --168255328 --670787211 --683152532 --185618661 --713446048 --795545230 --554901983 --64914336 --355821145 --962461947 --831438236 --907490879 --54285442 --766945384 --112450695 --87631402 --161209682 --134482094 --611715796 --960198214 --109587371 --469965672 --633420329 --985029896 --371896255 --255123782 --93756414 --816682028 --65910397 --71946939 --876843888 --612910336 --496996890 --860505903 --275260408 --629989202 --54604493 --114723404 --799155505 --512647580 --339342614 --510551567 --641324889 --858282548 --211382605 --500078202 --889812101 --230495454 --823057942 --236968395 --690339018 --373575391 --511870156 --434728900 --332394438 --137965821 --172811356 --774522899 --280385415 --698930047 --765697949 --102018939 --227820701 --408062573 --223400371 --435656715 --267360842 --164105974 --970567542 --752173182 --440512293 --690100018 --382034245 --451064924 --910329376 --913815473 --690027051 --406662389 --155429239 --123446899 --865054083 --52673304 --997488677 --910110718 --525644774 --840545100 --401266162 --621887964 --686139361 --774645910 --537964229 --479084099 --866015366 --579135760 --699807572 --575033644 --677474882 --751014593 --613540478 --503215029 --957340019 --992876348 --503966783 --941976316 --247589932 --728605170 --131578851 --655300943 --708291336 --156030921 --51349596 --270772624 --759898016 --888289640 --464074963 --468854341 --51028438 --725100328 --579825460 --226454451 --376372143 --196927700 --591451453 --804128219 --87970510 --294997687 --666660485 --767125095 --24734197 --473309955 --523327291 --679305959 --257704007 --11502883 --428206373 --226107806 --550303234 --653533615 --865607726 --423438160 --212890284 --149225715 --196191005 --249655481 --342907657 --177107938 --250977118 --74486172 --740398754 --825618136 --766427369 --18277218 --895837836 --484682582 --413682634 --757513617 --673979342 --913700964 --624442010 --658196748 --209697060 --741804922 --47410884 --203319122 --113498253 --819533451 --693381430 --524456542 --207178546 --161351397 --192575762 --65272046 --196829228 --882517205 --497730314 --334333349 --433540883 --841135358 --593750398 --446632974 --507016720 --778351630 --820030563 --461342909 --529610013 --926872632 --702274610 --49612728 --841871735 --568794042 --576295799 --507706242 --69221821 --817075638 --14528212 --866548603 --649941580 --53557931 --758806537 --835025956 --147063736 --270520547 --887901095 --87191721 --874057311 --626547623 --486011502 --728848788 --192410922 --581157737 --269380417 --879068118 --186442066 --476486338 --301796812 --159872037 --550505769 --578319166 --657646507 --413396874 --523352171 --417005763 --733044746 --856373545 --226814295 --857895557 --343597798 --164921811 --826254409 --332584006 --959173958 --99916478 --984001690 --575452476 --681354499 --617747138 --57802159 --440474330 --323424077 --568127266 --930580811 --486792021 --375335193 --234067257 --614564718 --759239860 --273183603 --605412383 --400900253 --597839848 --607823700 --393098926 --735193277 --175895839 --965177271 --405196215 --242980347 --445771298 --480569006 --985980166 --971538713 --20428255 --733100522 --98167076 --983454351 --447503161 --609186108 --42949959 --472337169 --493104554 --843041260 --290274006 --744930234 --263784134 --850796243 --248299458 --781961824 --565982380 --338493686 --153400283 --497877003 --800489705 --521146602 --532601478 --233878058 --623795443 --530210579 --72201761 --202494640 --293621150 --685092527 --289002560 --467788321 --116804309 --713954725 --460670162 --764351180 --279627571 --160831600 --792299083 --491158181 --23540005 --985215669 --30308800 --454034190 --974653068 --247667891 --70107893 --295447127 --141480050 --990631236 --959119920 --952690832 --229876968 --250560647 --612799051 --276293689 --120890326 --733179309 --372502025 --247502950 --894248295 --107781253 --663288300 --694765920 --28924611 --625742152 --113466750 --107678514 --646720802 --349678691 --192447966 --28099008 --497810954 --23544930 --459446894 --298484154 --454264008 --2965492 --101813651 --875865694 --745857380 --816668451 --110873150 --99301443 --774699654 --411999410 --417921787 --206053064 --130525176 --428050740 --133274687 --563850661 --712349826 --665996072 --816457261 --555026493 --99838595 --384580587 --312010151 --175693175 --365528207 --438367662 --772494959 --54690311 --433032748 --779578840 --287904875 --642703830 --811087491 --392928233 --850491384 --660728120 --570975571 --330075465 --548118532 --373850495 --180376769 --735085052 --819177246 --344832358 --190896580 --610158557 --889261238 --509751872 --196608688 --248840827 --696946945 --842581038 --319470543 --977985595 --43784932 --378185115 --560139073 --351565709 --167703525 --390161225 --279653147 --791885646 --951605332 --194236184 --600747691 --996607056 --52444340 --680631256 --100928258 --3956041 --157581395 --483029834 --701585765 --959212234 --235388296 --626103986 --879172504 --7982261 --467032086 --776028596 --204792511 --468768668 --844840193 --221889253 --156957106 --8859343 --503891851 --930528786 --102865870 --896913369 --888224676 --395707846 --751138845 --748097633 --202525099 --356195331 --713112687 --763644430 --744222205 --800640275 --875671535 --961583514 --380380405 --427880598 --349138563 --501008246 --819536990 --801693008 --381529557 --685631430 --904658148 --795754249 --61309378 --582253584 --488492880 --352528899 --73993382 --14927125 --481875755 --921474956 --248276594 --31734604 --130944490 --30585289 --220482553 --617485954 --877360729 --230822234 --812121509 --357846105 --942124101 --792384089 --958672751 --979274199 --711340183 --471672578 --302481009 --853385122 --997848109 --248808694 --330364486 --271502947 --306883565 --593801 --210354133 --88703168 --103059814 --697669809 --404024674 --519711192 --546768041 --551003085 --193918229 --462085082 --225496607 --323681315 --837239189 --459952865 --596252141 --369116912 --969061665 --73598662 --177987097 --45885519 --104567465 --465551834 --985753734 --802488605 --618924418 --148892625 --180605504 --801106536 --491176230 --915088895 --657573395 --793986397 --888526908 --501064600 --589992536 --808012855 --96784740 --625471619 --222993476 --39158401 --539276446 --324058419 --134240168 --597222310 --257702501 --404150186 --746336265 --327211617 --977145786 --755761382 --144461843 --488411094 --208624194 --435060981 --134938743 --865206388 --3298810 --725500524 --120293267 --144853368 --799567496 --126706411 --453601369 --153530616 --245182683 --306536821 --738548599 --803585044 --713364832 --639577697 --655207662 --476240015 --490992160 --957496899 --542441064 --107692399 --993440977 --500064628 --928874111 --531884043 --848315721 --251406684 --782723207 --411095900 --690695729 --982379157 --344196249 --852585442 --966092396 --558778735 --445457943 --2346369 --741260254 --125570694 --295182334 --769938013 --565622618 --456332612 --417225278 --622629347 --222680821 --649859200 --601864800 --77568586 --608148387 --408535510 --440925541 --518370224 --718465742 --850431812 --237175010 --514834387 --805195449 --288943876 --286903387 --888647478 --303337071 --970874302 --212363533 --650510775 --195262440 --894136984 --863057355 --69642601 --568531144 --847179662 --617242429 --233926178 --471522808 --495780056 --636517153 --709091384 --784946047 --476725247 --646671310 --768827488 --740155625 --790098545 --672778903 --103379269 --353473675 --173856651 --863900602 --303641539 --232796261 --239475381 --699205428 --612029519 --652093009 --34625403 --360034920 --208158187 --742683668 --515603492 --907385966 --525103835 --985177852 --918859359 --377188907 --560275593 --245628811 --624224087 --660312094 --503481074 --115678344 --385194106 --12001306 --498389977 --12082274 --94325981 --161350196 --504256909 --430222273 --645772215 --998502253 --893402631 --578104383 --162712078 --691519871 --472095453 --743661619 --386766706 --176733910 --374878557 --433378181 --197855490 --562270667 --705566278 --93284946 --354531438 --222965 --935672288 --87889052 --934400555 --154324122 --409539133 --170788357 --102734490 --3190563 --610003258 --69954599 --184003486 --843302734 --560466960 --199435284 --385968358 --917411857 --645855103 --851191658 --272353955 --434777250 --501278117 --326163771 --215710585 --941751743 --497565821 --84576636 --416740310 --530122939 --901089026 --250483151 --111158421 --246214026 --689576916 --784902656 --686124387 --800515307 --188252422 --839391128 --402225537 --398110722 --116756734 --928619498 --73946529 --313642954 --557706321 --762458689 --163579586 --265922909 --156565896 --829397034 --523961269 --411742719 --967380346 --67980621 --855939083 --987830969 --388244862 --432085488 --952117892 --475901190 --154913631 --18249886 --828210991 --732319573 --875752103 --269405695 --843968797 --878920442 --118746700 --599721287 --732004488 --256475757 --425991365 --945873633 --649792739 --869805427 --870245225 --674540903 --953263164 --208560547 --723346927 --583010480 --652296300 --787350200 --224294941 --810044690 --567312184 --461979028 --191352339 --875912081 --398448235 --43430412 --191125248 --548538618 --735663827 --399457597 --77372704 --768855332 --649796188 --6374313 --314644498 --577246407 --645648695 --484613183 --436627078 --799993473 --279410065 --771999309 --976249627 --730518260 --118529177 --873815759 --612615540 --570721465 --693561061 --403587707 --799732049 --631527887 --493788281 --555999767 --123959004 --731620445 --565598150 --836211590 --934794466 --697990781 --24374026 --181204304 --834676886 --524558572 --903172803 --775651730 --461972007 --859831110 --985724612 --898008108 --369288952 --6507081 --846365057 --758966216 --49766618 --904881119 --63694951 --269180729 --685185341 --983969788 --329816700 --300520075 --162188843 --409849799 --764866487 --427418795 --521772066 --874994899 --212181591 --884413115 --17512237 --57247615 --103013438 --973521649 --133695398 --17183349 --570122963 --58229910 --297787691 --903572324 --286234250 --403787281 --143780165 --181958425 --474106522 --847654754 --91251779 --565261772 --949223744 --694608119 --580727154 --914510058 --314430350 --486938678 --10155998 --251578395 --376809415 --291405058 --837912941 --486936805 --368683997 --436592335 --766305829 --533898067 --665497014 --155717150 --397941444 --942084930 --996606482 --720066626 --283857054 --607315165 --499927094 --24918476 --780135317 --49167511 --452659959 --662395785 --757334769 --705279582 --180706455 --114950109 --6100647 --169271164 --426643637 --957459531 --593840291 --737306136 --946018354 --878893612 --216838277 --649889158 --59667931 --209144871 --667678895 --457513498 --442354998 --857147815 --781658011 --986941272 --41558660 --137775554 --407792297 --895845569 --594668313 --261691493 --576900115 --119807303 --282456316 --201861036 --308599011 --154095598 --290696011 --647720934 --224853787 --920914195 --394344607 --670763394 --882225031 --941681311 --500958146 --903100311 --948726259 --77808242 --432484707 --333911795 --395217258 --842063967 --602648806 --393925776 --853104602 --137530126 --361325360 --449576414 --8050313 --624522304 --89721447 --203556150 --358780718 --169084200 --140591634 --752795297 --10357949 --36268052 --590372199 --573192761 --225069654 --245066583 --223041984 --436489260 --352998429 --539767135 --111128642 --597021605 --585786730 --740773624 --10511394 --770574919 --462073168 --111289150 --218479611 --941248388 --139951925 --973651145 --975422012 --83084044 --664382635 --766433405 --610674188 --761362628 --914700648 --817786111 --586707834 --952664740 --401524566 --326811178 --695532214 --107224141 --903122694 --538456068 --478542419 --135888566 --571597025 --91496849 --181563049 --503349813 --581443205 --575945420 --244921216 --85254266 --554663140 --739727764 --70330692 --494087302 --370717184 --901322987 --622993319 --379758951 --17134703 --333354968 --595971908 --357977982 --613243159 --493055383 --783107877 --590087526 --404948967 --318583677 --460847061 --79477063 --326807815 --509988387 --701180803 --534216136 --358967355 --475704421 --207925418 --956424577 --785648179 --701487980 --216328494 --691549700 --74417386 --993382931 --259083181 --647613585 --906088030 --185067433 --934140872 --167370149 --338006974 --16742197 --357500997 --495356683 --296146104 --190334686 --63234342 --622462822 --589751073 --113547670 --778553320 --840276882 --520928824 --541312540 --255727171 --350078454 --616895693 --496018295 --831210737 --857211164 --352793353 --600868209 --849496437 --469611178 --599690713 --682127050 --52546739 --655307926 --917385898 --940381271 --531049354 --923194173 --311485057 --287299113 --777422918 --537666051 --957038802 --850447194 --266055641 --79563401 --720908215 --188388163 --145174137 --991055921 --969038069 --359163423 --861707481 --2492949 --313257208 --361353985 --679675535 --705824582 --657421985 --546566901 --453128341 --358751405 --675571644 --497767252 --290603600 --716320439 --579554057 --205050533 --214410939 --647086916 --78214783 --264055819 --459530020 --214832119 --754254277 --351378906 --176604290 --275678530 --951393415 --464798992 --664543519 --66529844 --645976275 --189865205 --808661133 --736551258 --18061635 --983476052 --217302069 --998012346 --533366424 --955021139 --802477678 --29351998 --966074121 --552388571 --704713383 --729515715 --9660631 --17791629 --230515707 --587832748 --473900855 --168548343 --919560260 --889134083 --640316270 --34669763 --96846164 --388357241 --470939072 --229746158 --702896051 --323800951 --884802160 --377126451 --378778802 --977900945 --133137494 --440680672 --606788307 --500637334 --37251142 --852901658 --946956739 --139154567 --235311837 --10153706 --741581979 --917637092 --195596457 --607936076 --980347321 --718206714 --846957229 --689417750 --143539700 --523529538 --935850786 --735187040 --61092277 --791798748 --115579105 --670243659 --583191240 --860278488 --665137958 --683157812 --489860958 --78462040 --630809277 --110181169 --900832899 --757670243 --559095029 --316602382 --750488017 --964881007 --67495234 --81239211 --348109334 --407330867 --763511302 --372380657 --694895598 --635469006 --61051856 --635283524 --723618006 --793902029 --756601792 --508371603 --284870541 --273106385 --916711320 --95124662 --469815816 --331017119 --871072505 --587011684 --974826343 --833423555 --627048421 --890897512 --546912494 --179144949 --349662899 --52747327 --271689388 --655203729 --770799013 --56691736 --8787220 --743806334 --958557035 --66824120 --429992072 --927969785 --402051636 --362879779 --236084027 --620759765 --975670821 --413717693 --25410165 --341243431 --20409636 --108933568 --436058176 --913074231 --676511653 --797819107 --244102801 --657735899 --297373932 --67699918 --668738855 --903713873 --706518427 --398510312 --179291998 --713622228 --798370004 --953354792 --219126053 --328984598 --633402298 --286814921 --681538117 --513789468 --322897304 --389372144 --363579334 --358548995 --501932505 --937020880 --640211581 --572619056 --785919198 --975837062 --41246547 --255239750 --351518482 --427655246 --500583768 --893004968 --723437497 --221992973 --100489678 --492730303 --610090816 --127904818 --862961706 --59235283 --711139405 --684068183 --635030023 --7901294 --811395899 --392866913 --132889747 --450016025 --538040331 --465341630 --320941597 --819249385 --411739012 --807701094 --403424578 --726041406 --234208770 --457931311 --762431620 --49114797 --680820476 --402388155 --15491581 --825803149 --844404949 --375978162 --909145871 --474090533 --710238257 --427410022 --750992939 --274961559 --458540365 --611477337 --908776071 --274397636 --495121975 --930320691 --940423940 --362988938 --804803067 --697645867 --145068037 --342506159 --157486460 --771422138 --425781049 --118463604 --281122647 --831562779 --521071006 --363764358 --470642552 --596296591 --63367286 --837743053 --371615257 --609218397 --863542707 --395629917 --232060174 --546583663 --814578763 --305385249 --151049032 --790921224 --323266403 --40161179 --639129218 --804432228 --665926049 --226206858 --854267257 --53210851 --450830817 --450489451 --849615172 --464413540 --514082770 --486644877 --680905790 --828874972 --607495001 --496102248 --29622270 --157344315 --700992939 --604872447 --94499095 --51412965 --814425415 --280355384 --373775367 --27414097 --593477281 --677533778 --72489137 --260828328 --504052044 --635790813 --385264143 --688367745 --170160999 --182809951 --894535692 --799548116 --536415452 --596014318 --174101052 --653118679 --210903472 --846519113 --425407918 --313409678 --909227417 --117311216 --415185285 --824777207 --674930019 --889493892 --899960949 --184966912 --185078088 --620503354 --30577260 --153193773 --998288346 --857140745 --982656205 --396078396 --795558820 --148525007 --853555478 --126235855 --256443171 --633598876 --799456994 --467682744 --379428294 --911145661 --643364985 --904775243 --571245107 --440843552 --917725638 --972346544 --1498617 --26438548 --688119571 --367071975 --27371398 --709857868 --358923272 --149135232 --823532980 --5249996 --853926955 --83887741 --791360920 --940899103 --86887783 --395177275 --733359072 --874681728 --644988374 --379853783 --739628978 --674982322 --277359505 --1578562 --741177059 --574075659 --266054472 --233496618 --835431510 --885300513 --13782440 --127290542 --672954018 --685437495 --877247411 --334194297 --911174049 --129672240 --960171708 --306822134 --840372480 --575688008 --624728489 --148509031 --917827320 --788318964 --61015989 --182024874 --565947847 --184409929 --415114449 --856187128 --379296428 --424436550 --605164651 --471597370 --540665725 --593988471 --320864554 --864053886 --43199924 --844451126 --724752380 --619754335 --674512579 --562759131 --585774182 --449411212 --595329487 --111738946 --672300829 --994188139 --82375048 --358195432 --502735757 --495647752 --182593599 --340177486 --490544457 --927854427 --152608994 --147061393 --953590797 --20903865 --916541104 --699565895 --239625596 --152044317 --671572305 --424060278 --104735997 --65921963 --2699339 --502106125 --697458595 --489988551 --549450949 --789341184 --337809147 --741947987 --361371710 --974895515 --263979605 --439586250 --61389641 --867863070 --109047439 --805382983 --235804544 --466623217 --129754251 --550640296 --976663513 --359206738 --874375065 --729461427 --246718780 --456676087 --159443182 --422522135 --505816013 --619696509 --139849365 --746384870 --493938080 --521152803 --851317765 --827355531 --461256869 --495674547 --222085742 --303637077 --850831977 --131181761 --639335869 --893798339 --106574462 --228747348 --709719357 --691073976 --788165014 --994223091 --461466091 --605135165 --933843380 --160695216 --894179370 --60994084 --59535446 --549445710 --471139790 --59447027 --475046500 --593848341 --26669290 --567013043 --285752299 --363043887 --554023119 --582366426 --949721096 --708248338 --546705950 --150380526 --52036234 --798605622 --145110242 --679741359 --381787190 --829580666 --857711256 --367427625 --489798980 --33498880 --345525809 --99712595 --344012395 --644258736 --299163135 --794323920 --771362469 --460767362 --88510498 --59825819 --601802668 --473870640 --187325410 --565237348 --693552495 --306426508 --89846671 --560802721 --753551877 --457669294 --581170001 --251490140 --233866797 --549683759 --444006159 --339544582 --327704895 --694781022 --179090989 --349215531 --409245638 --879611682 --513221055 --889728446 --728662083 --482483171 --599135667 --962933565 --113064533 --963676421 --100743142 --189006678 --457003234 --211204112 --998624304 --895806843 --138438574 --256489426 --531588662 --283389790 --292323386 --48261622 --17159834 --383054388 --183476940 --984664091 --197932981 --157732257 --667780327 --17227107 --445508437 --222143206 --223590432 --534409480 --317422248 --738857135 --31940145 --415514044 --192724221 --747856098 --954805428 --785245623 --293034320 --878177743 --315162952 --582403411 --467556602 --768815102 --487800317 --417684862 --647020052 --668459114 --193934409 --948624472 --647413298 --428069710 --760940820 --429969065 --24120685 --687571783 --766633855 --407010740 --415009334 --664083535 --552728321 --230297837 --496115059 --139505065 --206138045 --748864710 --820000028 --800556294 --801080342 --461542646 --675260847 --72325745 --365968369 --372872902 --346919485 --316570753 --42368719 --21552694 --145527902 --779148159 --421874277 --107346726 --561186938 --16979568 --806400175 --708949473 --273837034 --383478823 --971807719 --752245592 --752016860 --106756236 --150245990 --876813879 --377695552 --229761863 --916793780 --410643257 --154143848 --673909015 --567632172 --287880358 --300253309 --204192074 --49964817 --405247013 --675030398 --188609279 --439176224 --736644134 --120634086 --264477131 --660465593 --488281871 --464558267 --983286337 --283696694 --226054775 --210547878 --363842603 --741809010 --660012314 --108432632 --215980696 --329932399 --480516000 --887207251 --362291372 --792984637 --114607679 --361143640 --57695763 --151670694 --103770137 --945961555 --336648906 --988633321 --233153490 --116306458 --172655800 --932040550 --54554933 --52810028 --122599513 --61469781 --832260288 --665219264 --594759356 --663442498 --570536437 --87079075 --579029812 --622730255 --428692486 --445364743 --419104120 --266289305 --668000274 --31646729 --404862671 --498123023 --124966092 --970624327 --518864982 --302355023 --676126497 --95206697 --511262155 --674574007 --236902029 --152311102 --105616503 --154712068 --871078941 --932071917 --950721005 --813036335 --623573119 --163116389 --559378295 --516478292 --788828614 --163830437 --20249790 --693343548 --251341497 --934710866 --445692640 --937001678 --511968159 --53070832 --744390785 --212990762 --509336295 --938211670 --335454315 --605605890 --8123691 --661399834 --460010816 --347321501 --268439447 --354204826 --492088189 --716425795 --451740611 --803971221 --367082964 --504376666 --318921472 --37444623 --730176010 --804813111 --617464804 --72758568 --580324631 --694817491 --224618142 --705000343 --353887597 --586461537 --440890647 --921409705 --692278534 --543041719 --536252875 --337980025 --322480232 --401750261 --22177205 --179316034 --571793164 --514203774 --56090703 --450865696 --652224430 --106544033 --334923600 --67992496 --679686524 --736427962 --783117128 --821769107 --123669080 --828196668 --207927468 --78070093 --532596957 --548818105 --441827121 --268575859 --64547912 --955495471 --436221654 --641853336 --191603951 --751584758 --113513910 --223550150 --424927090 --423296927 --673223370 --575819956 --871815189 --881810696 --95018518 --537893229 --824646212 --502301731 --286796451 --69960139 --992917678 --754937710 --400879834 --912565299 --784738860 --890568590 --682952224 --348788152 --179789245 --366948855 --558572311 --871181467 --488889300 --945708387 --462405140 --560345862 --495784429 --372857510 --383647349 --975090364 --693130108 --917692415 --680505079 --332668611 --909585757 --614816872 --779299331 --128877933 --26943958 --821146693 --623535404 --193641966 --329241863 --4655249 --253033044 --65070894 --271236133 --28924607 --649287967 --958177675 --589416303 --99493321 --586406833 --781352242 --536956831 --627742323 --14336882 --116198134 --678085743 --398850206 --794669963 --944259184 --546721339 --922500193 --697178911 --817738529 --713944917 --958341110 --273923362 --325118123 --881766913 --162545104 --673505680 --692483341 --717045002 --805315488 --143557219 --222617528 --132547043 --498896429 --834318594 --555905590 --463126672 --670260660 --723142444 --585683629 --913666088 --466622343 --153013726 --922880255 --704802794 --639206633 --618161948 --112449864 --201697098 --837354388 --424691021 --638345721 --263622403 --476245265 --802916908 --147428753 --580354485 --848988080 --925261497 --38579833 --382765191 --973187745 --663770597 --680045681 --149667156 --619382657 --754165801 --870454921 --921903991 --707170675 --241850532 --819374145 --643083232 --91101008 --86881218 --438612490 --619511985 --656428543 --253316087 --813484987 --952328490 --86586674 --452549716 --287793121 --110823397 --50208530 --358123716 --829818812 --95123932 --97190369 --265680496 --999435841 --251319220 --61063970 --284201230 --672804614 --137007346 --68472574 --246096044 --245910563 --585847664 --815754066 --245912826 --143316285 --295552984 --613887569 --68485724 --770180262 --445228905 --808705719 --11540134 --210353207 --265169516 --2656441 --765263779 --595848271 --603317755 --333715427 --954646128 --831837211 --917771748 --889325683 --78273104 --970858813 --103937315 --246724836 --427926573 --165660572 --118633447 --479237462 --331166995 --498827940 --894528950 --531475245 --966649219 --560320929 --626881591 --382629938 --636431580 --988957031 --311922660 --298503620 --987115562 --569121383 --161977307 --827500918 --812528654 --595892929 --298588195 --373962594 --274546088 --449925729 --621474692 --27976250 --119899776 --329825556 --282054156 --109857522 --451112253 --391726160 --353962046 --799508093 --231288591 --957360842 --742342642 --101549096 --684381616 --604291393 --15656387 --949743099 --737419540 --341624890 --500427986 --555108877 --866913601 --207612484 --656953425 --321960028 --869227025 --472691743 --916025627 --856112613 --334804445 --231669787 --160749911 --154285342 --912154336 --246384402 --800428787 --105240774 --769745974 --258368082 --377528960 --516430578 --340456728 --440911856 --73001995 --319050702 --289222204 --41711555 --834485852 --300145248 --335112870 --25206042 --998777773 --551846967 --874734880 --894737715 --995429988 --313325289 --881605684 --40865558 --749063144 --523888337 --776434123 --946017479 --768906591 --811452316 --461109291 --991613398 --498384002 --572178928 --912270150 --364105147 --184903705 --507168943 --365298442 --663053145 --472104904 --349789918 --45363172 --703066734 --179377728 --905125495 --177271730 --757872225 --484276419 --886987436 --994163538 --734095327 --400312818 --128969947 --496144708 --993003567 --558859723 --628152217 --839515096 --385525685 --403648112 --727885011 --140112429 --810686030 --747359512 --896175703 --389435497 --765212908 --445063272 --944520531 --900207318 --392726889 --13945021 --191363954 --336419794 --534625203 --196455197 --339254092 --734452957 --906743095 --84243709 --250984832 --822965844 --746367290 --746914173 --49506808 --201026629 --303832836 --514839468 --385319026 --68104295 --821104239 --551860484 --632975401 --270603742 --628390138 --279570614 --890480149 --465407560 --565552026 --757207298 --362335367 --958451524 --556371640 --560833693 --880866875 --174238065 --434098056 --341107917 --609259963 --740992945 --726262871 --292289640 --516196084 --748182266 --448749905 --86348872 --564058451 --487632379 --276180066 --936430556 --764056145 --211994244 --994004548 --233623790 --456299004 --17031295 --222533892 --519723790 --865780565 --252128643 --970499553 --56748781 --712147549 --718326574 --807731701 --662006730 --367653645 --151402916 --986542938 --222104368 --300242917 --264583349 --410709733 --31770231 --528623724 --469664822 --341987708 --368853332 --502105325 --596981525 --298848024 --943653909 --476337587 --448469664 --490690178 --930098526 --716772630 --50581798 --981190432 --229746305 --212207068 --661114867 --535420548 --361099827 --525695726 --678349596 --661199308 --820619038 --43537946 --281152043 --705271386 --448178612 --809739126 --474045278 --823083043 --444028749 --753984412 --934279467 --458088257 --759623082 --817053033 --500803970 --728794211 --113168919 --275106912 --310511051 --790443885 --299625483 --305311633 --120038975 --14600862 --333905094 --585904993 --79249280 --590681766 --263904094 --82586824 --768746486 --891539816 --96499749 --256298350 --954146248 --61254480 --328386001 --991169045 --499760994 --3731624 --377700122 --442637124 --829568139 --980560118 --558317575 --653721182 --479121684 --948582414 --784776276 --375734806 --995740664 --377830155 --279194491 --708422306 --938523273 --106222343 --209461089 --735965319 --361671403 --940191266 --727570270 --429059111 --588070214 --841888687 --746434496 --938708075 --993709856 --228851603 --426201647 --744622948 --474914094 --144861295 --920225307 --434325050 --273094267 --154400444 --454306277 --129346083 --988780954 --26635067 --971400400 --187535563 --544477206 --988657529 --376533547 --447697148 --513562321 --345901853 --759901732 --799981865 --789166898 --455337474 --362619837 --721408907 --441817120 --256682625 --185512421 --886382227 --555463026 --322455557 --933926839 --228615521 --919930875 --224652308 --688934417 --594452279 --786804833 --832636783 --889789460 --362427532 --655986657 --973275439 --898774345 --603281282 --216146240 --834446175 --790130931 --566990312 --186907410 --500708903 --932628306 --213258236 --191347337 --28758503 --443553655 --958716507 --427134639 --394442325 --814230563 --2444716 --298817540 --374355454 --437660427 --983809257 --5935200 --645354871 --991066893 --511770316 --899587495 --224714648 --688888893 --620975847 --429145091 --656367432 --598574807 --164004646 --188074269 --737556474 --412880165 --300862190 --644442653 --416692632 --710202721 --544677374 --513251097 --802928544 --391554984 --815580053 --641170660 --464446038 --805600303 --875157648 --376726178 --525102460 --663392793 --585607603 --698271243 --526357773 --24682244 --774102860 --542066270 --500202661 --193475313 --649079449 --198264616 --341705913 --388481509 --268286890 --986102809 --146770536 --236215018 --264966678 --388120926 --533660902 --989907296 --846346856 --496649801 --329485638 --654372255 --718349598 --363231513 --802124652 --725686580 --459393389 --716466396 --334741757 --57318796 --312146687 --425109912 --598228305 --206843928 --499475363 --656309051 --789785675 --368786628 --882980735 --880545380 --579685858 --827156206 --924430686 --759823224 --255353503 --81811029 --791618010 --815626199 --541498778 --968307318 --520187635 --528076849 --295128346 --235700337 --706620356 --308731828 --372263024 --932924473 --579525016 --469498754 --613004712 --775433719 --328166708 --785880153 --512379738 --705164802 --884219800 --139004679 --232813397 --802292505 --850179728 --295553383 --92989309 --555462644 --652726781 --786995027 --990467913 --513594599 --850598204 --975159542 --960660995 --590409794 --815440167 --551566291 --974317267 --836764822 --522645577 --655701186 --134133774 --906206817 --616337854 --665637208 --182707509 --168074870 --370603474 --984099421 --273708155 --998509880 --804171114 --632402231 --791121568 --310702789 --691344045 --443392009 --910713515 --324790147 --909654283 --775938655 --256113150 --930114062 --113101150 --400539123 --947017378 --645504102 --932825323 --796424528 --8754596 --205771732 --534860587 --789890176 --564425014 --590869624 --928770599 --783973590 --250306033 --428462535 --96023108 --652413723 --288814697 --397621561 --741924316 --885064563 --465375251 --786846370 --251915977 --377617285 --659387571 --71226927 --299831216 --321584499 --235241199 --176798542 --986861440 --590630704 --510173383 --787160857 --532535758 --564368804 --975364071 --362078470 --915671117 --969150729 --324761065 --362794941 --490951246 --418880331 --738186514 --542268141 --673575497 --384235881 --610676977 --844449327 --220994656 --148429845 --433058512 --567720364 --228561278 --370060951 --612901819 --228371114 --830146644 --150569557 --954486803 --501182440 --832127126 --144931876 --528541447 --361969487 --65185116 --168360843 --162246565 --993070943 --96911941 --153127902 --839684748 --843350345 --554671688 --774641804 --160745097 --387718958 --833290669 --840392320 --879543905 --438690123 --801263955 --701624480 --427926361 --400789170 --617767748 --799609805 --727462162 --556178585 --593164471 --605026691 --678787896 --419938607 --596571858 --857338147 --863339779 --452945029 --738772929 --870265208 --869792127 --750437393 --942107949 --161723369 --695820128 --990742615 --725515154 --30943162 --967940281 --300126349 --935972789 --213025396 --990412329 --935629908 --258181139 --331430473 --498700371 --45889080 --673255840 --787414070 --89105508 --70294876 --631440959 --161160197 --617716292 --549793488 --154889848 --145221521 --772223865 --383532320 --973434188 --473692642 --377998809 --839030647 --773688369 --197426225 --389541653 --585885195 --395849987 --523199551 --13950198 --568080413 --47645550 --836202883 --492253979 --828323216 --580287579 --266630372 --131447101 --858236014 --452539658 --727749445 --427963189 --906459438 --363328413 --130648110 --399267025 --659477881 --437808360 --44330875 --706331869 --454763766 --283434319 --735269356 --496826051 --967535227 --193611099 --294038499 --166465835 --500248477 --221857617 --194868036 --847103787 --974978990 --786034835 --913231249 --535871958 --31154357 --559203624 --906660752 --554304330 --282532911 --764734950 --653507839 --883775450 --600074259 --835684483 --76807967 --83438484 --633066492 --30329835 --436957991 --687999517 --54129592 --53549594 --27546961 --403707469 --235270653 --953371329 --522073705 --709534205 --517603280 --299941624 --421439261 --986347073 --46074152 --512141181 --424097522 --522512028 --685225030 --930797214 --921770762 --506716911 --463356762 --275157356 --695990673 --300730687 --367565027 --574181688 --6870778 --341517374 --122897609 --873117179 --723517469 --67768920 --890882109 --998558024 --491892638 --381520875 --886941693 --519936223 --367003078 --359592683 --373857708 --620815838 --437351055 --506752183 --117228239 --708658246 --948407433 --238268177 --651241539 --846510986 --135056845 --476454410 --850045467 --998051092 --14745147 --395508142 --92821678 --407831259 --803375999 --315415100 --429380959 --178347207 --327285955 --665862782 --692524033 --39443106 --260972084 --854240152 --740838048 --653392588 --25436278 --112423189 --244820537 --897074477 --40794242 --868721872 --207633246 --723833812 --386948947 --731825466 --917668302 --524984067 --837653889 --375249264 --326226397 --251401333 --70393853 --220422183 --836349751 --214942260 --28589130 --488331932 --601952356 --139607294 --751750173 --235263197 --532922338 --702856607 --623621225 --60577714 --711018783 --407551767 --734883818 --160972711 --427700016 --95838433 --226010524 --938276417 --114892717 --128038001 --121596261 --107672169 --252368443 --934014893 --609964773 --169692047 --144741894 --599099347 --936454355 --163131339 --848203382 --808776242 --628399094 --756908157 --945172125 --929634400 --864704505 --972907090 --593522701 --434526909 --186552247 --428092044 --815106897 --347260654 --890974713 --355829040 --384913408 --822784493 --833783238 --948754441 --481448733 --247541520 --890910022 --640251608 --96351639 --916782135 --967346486 --621775280 --720207526 --213967267 --37349358 --170135423 --760869368 --992136067 --196178627 --678465819 --439256434 --992613079 --688884532 --149994469 --920937620 --357155402 --817277537 --293925510 --575020890 --535452385 --66755406 --152167016 --44176830 --380412916 --406849385 --680961026 --523710602 --849532735 --231766285 --142945411 --773342679 --794334362 --555717225 --708480591 --51028694 --824614116 --781360879 --973503364 --56157034 --280308337 --612324702 --423804339 --291591028 --270092486 --926795174 --757170509 --388075211 --779452255 --193926533 --954870770 --9434798 --704877425 --797060531 --114651617 --101349264 --784011232 --927614022 --161272684 --956751222 --507483939 --984913750 --182529990 --325734251 --309963282 --68764137 --963918001 --555195921 --301026822 --195428693 --783700737 --54399640 --947167855 --62221527 --509021188 --946181175 --254898261 --743667610 --396185314 --858159051 --286365089 --2115654 --511064773 --492720091 --561364642 --750045798 --630946486 --13603924 --141445396 --707196219 --717917660 --947031404 --544917760 --352342929 --96710930 --713487980 --635806533 --178487366 --665381360 --831525916 --947597478 --723929844 --769154695 --113818595 --828818087 --526972599 --510319652 --580727332 --398962321 --949796662 --387560494 --193811217 --430058065 --102809652 --674288348 --54811914 --192436869 --392551029 --878226653 --830881348 --1740668 --497332157 --456052401 --299827853 --947924508 --270990097 --220845720 --639309343 --190265632 --1134420 --766805561 --745031433 --914769015 --836193589 --895964924 --649007696 --571151898 --784241230 --596161090 --539589653 --214401454 --927927922 --220627042 --379265797 --498824609 --336221983 --608795524 --413078158 --990419338 --755047524 --86865693 --548222740 --902263404 --594631861 --358820620 --367401202 --659759332 --513995162 --362802433 --134957384 --28726076 --848197701 --708169820 --642020813 --528717354 --754426920 --977988777 --938879982 --704106862 --287379574 --902152627 --410419875 --21143377 --616264688 --687881842 --190591830 --714323098 --305316689 --360488091 --618834113 --61929785 --26165959 --332461747 --823403527 --864935982 --977588926 --221700734 --324863758 --715250865 --399837231 --882391903 --757132919 --602975548 --460725985 --255714414 --197356529 --805714689 --211157194 --531419501 --33870986 --614351321 --319232257 --950026791 --427778 --310819920 --732444226 --174384072 --806248585 --396173714 --428680745 --447945737 --406945671 --742074674 --781978342 --125276927 --293041911 --790093932 --58726443 --459236592 --249484044 --479688677 --590145553 --561359918 --954582417 --918689717 --531147832 --919416565 --398640907 --88195405 --175731880 --72330361 --794724875 --341865687 --61515443 --346812560 --166842856 --242988735 --751049066 --920292381 --468071803 --205176794 --404650311 --399253038 --832192941 --605596524 --981311190 --943449124 --715087503 --541988742 --621550700 --518581212 --523019593 --464109695 --143333648 --82033233 --278093043 --839420353 --90659943 --242513746 --242545886 --237808931 --257960221 --528854139 --655777897 --76792649 --173726924 --231013857 --901964053 --162111311 --718046133 --722046451 --341500868 --276890420 --807884140 --869021794 --610629378 --371395419 --16086879 --814014327 --701946155 --48630850 --903519074 --248067173 --70112164 --431314278 --122140338 --967186425 --962079515 --600604912 --472283571 --714049330 --838127794 --164870525 --904706713 --531625775 --712209945 --428146236 --609112324 --907870248 --20921633 --935446516 --200648061 --95208205 --377412979 --627173485 --319133234 --368359075 --558116220 --238597287 --251024112 --83809452 --834511373 --219606286 --108557506 --669882802 --707281731 --45779450 --10282870 --920271989 --494326431 --77674377 --889469807 --920954938 --276840811 --276400993 --931382102 --512684593 --197886906 --173072789 --460628808 --530027817 --425430489 --531873042 --464986432 --265827049 --368968626 --703056876 --871496973 --369147560 --886006192 --341933800 --998735335 --19875140 --132768140 --568488768 --900608017 --495458806 --46354403 --287674199 --216081880 --892435450 --935697124 --805200910 --850029529 --716745395 --527671747 --708470877 --211471207 --226201482 --842010258 --212958494 --983711383 --797168067 --846739141 --341513573 --642760502 --492647911 --982370486 --333888130 --711672516 --990638801 --346678273 --82232834 --705061367 --403807583 --831813934 --389702980 --875098304 --422646460 --711197482 --382229610 --813303746 --37587914 --317453244 --983445614 --145753289 --722972463 --554230854 --807976758 --31890815 --24238923 --208307951 --878255367 --130882937 --241887112 --672970775 --849280645 --323686430 --499410163 --836574358 --428117166 --382623671 --829001667 --493490240 --522346874 --774911816 --956904495 --983036429 --989264070 --125549369 --994829595 --781733252 --768795376 --561653787 --604360918 --488267230 --403097065 --342219434 --491617386 --553036477 --620958191 --284958137 --111627515 --857308013 --17584729 --603705060 --765387796 --662953607 --589985599 --455991228 --682526283 --585163448 --738529942 --924926318 --967374166 --55518217 --283404068 --577488417 --666928464 --993887913 --312035218 --883664057 --275096913 --933672132 --504595740 --735959255 --910208631 --418866235 --402372429 --682506994 --302161198 --371505445 --463239085 --533225551 --211661047 --922820399 --105994766 --232068946 --316211098 --299233899 --601348605 --974300003 --735529298 --430971201 --729084447 --143910639 --791024186 --266937494 --637880365 --704743913 --13982443 --603023228 --792971992 --363020718 --715651218 --322677198 --370884056 --615912863 --336925475 --511099198 --380756419 --797535015 --73223082 --132922506 --400027211 --880095407 --635845505 --590166140 --208486566 --991285817 --858079569 --96776949 --291348521 --133563724 --914408365 --690139758 --465369265 --164978215 --468495430 --495440604 --550288253 --758448776 --951799817 --661104141 --158403841 --229215130 --28393537 --750847374 --865444934 --35006645 --786578582 --540872436 --43270065 --191048684 --599138714 --252636710 --782503739 --141467841 --589616822 --998715298 --330425454 --429609025 --570089096 --189277754 --870722166 --453909755 --161323553 --583588834 --307276808 --471427415 --949378134 --342268020 --643652772 --814336878 --35712735 --55090036 --576516765 --10358655 --450162910 --131866556 --675009980 --419987706 --844990558 --58539477 --537694956 --354032826 --2756191 --315519413 --195789333 --525777920 --599652563 --12345872 --588643863 --712274115 --658061721 --508522850 --47617063 --232989594 --141959397 --106132608 --480128819 --936764933 --549979563 --536828278 --48323618 --354158911 --159601896 --168017478 --223556340 --481271879 --392462879 --706588630 --303406976 --446844725 --388282602 --680078051 --909655705 --183253023 --327407740 --736327403 --737612425 --735431156 --152327520 --661707552 --994067948 --314110148 --137949939 --759324911 --788056063 --204109718 --736762104 --734390689 --280052550 --434370175 --220102816 --147931181 --449394762 --928240246 --368500376 --275208839 --911582774 --399674776 --672548034 --199503205 --399977374 --426463546 --746279936 --793838292 --967640315 --210868566 --954962814 --894236288 --428786544 --213097692 --677982847 --239831078 --996758061 --209637720 --77175629 --453075706 --706747945 --717165561 --941315304 --564236421 --195421461 --74091252 --475815707 --202349716 --387659032 --101761035 --489139199 --613824973 --672090736 --564917268 --152640297 --210446181 --954266326 --99313014 --517856381 --903756913 --280191922 --808926541 --530696835 --883485995 --192334684 --596184833 --407122086 --601881709 --891657535 --493938537 --601967228 --619796152 --768706193 --818587306 --489188601 --400152750 --416988038 --604634796 --370686764 --23110725 --794104508 --249848824 --962782411 --507113307 --533699160 --19656714 --110101530 --54275562 --275457589 --341796390 --469936868 --37526981 --856812294 --281073790 --54002900 --810383517 --837152473 --364268433 --343034994 --549223800 --826130766 --48399099 --54091546 --875664519 --377421598 --506769826 --466683290 --483828769 --47286602 --564598392 --999126248 --856323226 --224632667 --292954947 --774049166 --477071173 --884265215 --485725013 --28178950 --416582148 --627242045 --124991475 --626065892 --687384967 --810578360 --137103197 --352101780 --954286689 --913541348 --877220232 --419042022 --232369547 --378892070 --890838150 --928980981 --768924699 --465801479 --408731151 --578981383 --541989301 --144996792 --211808183 --745738337 --844830693 --229631313 --61186711 --92904099 --373851139 --151323818 --125012655 --616937374 --639219783 --122450709 --951305393 --152908800 --475719061 --291459630 --387031348 --349723774 --544099606 --271325550 --72267611 --686737433 --779625984 --721740507 --357061875 --409638990 --178768579 --886891666 --856287881 --304617071 --915046293 --552760864 --384317232 --77461934 --932119778 --410899475 --400097819 --52713201 --623799715 --836219246 --953308503 --476143805 --81068395 --353371407 --257662872 --642866897 --571156811 --356486789 --149343415 --31207269 --441315023 --523269602 --220747857 --834253386 --665762102 --484064430 --126866529 --938618226 --28177701 --674575236 --401089511 --675281035 --622305755 --168436668 --220634268 --237957710 --844227728 --539702344 --300614551 --899644481 --986833908 --731957068 --860773083 --902469590 --898575770 --878781310 --555568950 --821478062 --809457727 --737279466 --464178279 --107896100 --701314988 --658241088 --781385650 --646865213 --178230430 --252512608 --940932003 --39717980 --425528439 --982121660 --333435861 --702019822 --481979145 --445461595 --284287097 --723059761 --330146658 --950808026 --41659009 --56682118 --495297888 --164161629 --401141317 --596471053 --554154742 --795647282 --215321028 --144648152 --240390919 --857790602 --241743516 --909744904 --52922062 --988852487 --598388577 --778944873 --680669693 --562792368 --761298973 --73206672 --215671353 --881276417 --65981322 --874121161 --531878399 --788708270 --875722920 --762075409 --313638790 --259723289 --469817424 --927978413 --280393639 --939856719 --651216595 --132526134 --542890265 --124327314 --82876805 --454520128 --936830881 --25992796 --426593452 --24038605 --464281360 --14727508 --687368217 --237832348 --490834881 --792625132 --786409424 --487069597 --460360971 --399078346 --497229724 --958511695 --332382736 --969036943 --443335316 --912116049 --587642737 --443942963 --755040994 --942663966 --86268694 --493276369 --451371507 --71276387 --619840239 --817465167 --905540558 --532341007 --203804002 --95836666 --529346210 --984818928 --669516512 --96607192 --151728802 --100750790 --224942154 --776998186 --913781271 --499565278 --705786174 --196139383 --196937275 --650870398 --359782322 --41469709 --260471488 --973727885 --820269689 --423331125 --758171450 --922355857 --59379916 --476025603 --339656239 --447598660 --987971778 --206763068 --958414182 --971495449 --764861715 --534492376 --415061116 --579307125 --128422456 --602834448 --907733272 --225776515 --650630471 --273854716 --837766624 --237309981 --841821524 --352726736 --654474998 --107202679 --956281381 --84950865 --352339879 --699165050 --557680236 --793486154 --750904613 --217180455 --937671022 --879276848 --669755321 --906211946 --457492902 --656674390 --174430357 --791104696 --370385920 --57891472 --185074310 --44764562 --618568100 --578016489 --433125700 --980882748 --646904655 --138830244 --367788267 --173261764 --930304146 --112090735 --964432681 --518215544 --763634719 --497381364 --749587257 --493948319 --415928345 --75067427 --738680898 --820376702 --537469410 --635524983 --958401506 --776091133 --189438336 --500902249 --827955138 --378082989 --359633560 --807917707 --151668024 --461258834 --760735872 --908999415 --434030516 --310584813 --268661991 --151905040 --392443966 --57590642 --765065867 --900381535 --367583078 --26694050 --703215578 --629278161 --861382789 --543408555 --867014983 --568136061 --95514316 --340629486 --672932463 --887539617 --370382804 --676792029 --566986409 --363245225 --968355543 --785035424 --470200697 --475780674 --455851413 --934064083 --24187762 --753623049 --461584054 --847011823 --151438389 --170134577 --910387852 --716552990 --103974189 --399443476 --682237507 --931055656 --755984786 --57210814 --843299683 --592388497 --353405503 --6737511 --700186265 --184361994 --328791260 --707791994 --897026686 --172510604 --884038072 --828686437 --401111412 --937424719 --881331219 --217732282 --427012014 --863124238 --802543719 --299794760 --719369632 --151582270 --726221371 --846613552 --874304446 --537367918 --122047994 --632594478 --39084893 --767145829 --381707157 --360955731 --752929575 --509412914 --846247014 --219802310 --233431529 --589522254 --765277197 --377073084 --763202855 --415502238 --533541681 --803276011 --198759900 --552150580 --205430826 --801944826 --109310534 --446284351 --414871484 --528904913 --815026752 --299145324 --944233516 --439428555 --663751247 --828090516 --754393980 --452014559 --21514955 --938362085 --161782668 --441206057 --676253975 --122990808 --276330287 --640832198 --418957938 --449471785 --150337570 --341755946 --824980001 --704164008 --372426051 --111958324 --821444875 --795102087 --379781196 --775964441 --514191207 --280727593 --315806892 --301699707 --878635396 --176046605 --417745986 --857514936 --344262128 --261703376 --599336461 --756866674 --551616074 --57314398 --828558717 --622678347 --759362073 --567020930 --624778665 --968500901 --121497845 --63692969 --598327061 --274369710 --58676505 --526655812 --188087366 --489618224 --237036380 --685069249 --900702574 --155061625 --172931050 --661637998 --257821715 --210452485 --745825485 --78756689 --386656088 --133247257 --712707372 --888833497 --999869130 --855270791 --456049541 --880521690 --712173445 --641631357 --11128248 --358938128 --848946353 --413146114 --692240349 --180289023 --937393801 --701646538 --445151983 --450466567 --774600238 --581077326 --825445907 --237188504 --809310963 --745136330 --901071730 --236186981 --804143099 --62302912 --261825030 --92588583 --330459934 --137793249 --575034161 --955250936 --933892065 --272780354 --97037260 --741657441 --728718137 --394985251 --748167654 --767589039 --680991403 --967598845 --922881471 --745385143 --111324394 --707163547 --938913701 --161171800 --915033042 --137321415 --809610694 --103213721 --331345781 --534369015 --17539779 --934550811 --302943185 --85998121 --714422574 --759177282 --76562703 --513916571 --775487369 --405912790 --380383354 --439382667 --152889683 --640665941 --705357168 --836180137 --220243649 --397021543 --876017740 --302591676 --840386061 --232157876 --39513715 --819441145 --126904440 --181279764 --574927790 --485803096 --836999845 --580493551 --708761656 --46234957 --987256168 --220410499 --758185366 --486157520 --410023308 --48283735 --829163103 --264050869 --123301088 --921527 --762661993 --197189290 --251218726 --861277502 --714218005 --857785999 --689355261 --484382116 --449702999 --308226275 --142035071 --28205124 --583824159 --869725711 --294708381 --655218041 --16733454 --891279475 --589278692 --727313173 --158190889 --266346762 --609478862 --533344973 --596204165 --927273044 --293237867 --88565775 --731198058 --2225592 --999804646 --158287087 --891848911 --127800013 --379470318 --174076374 --461580196 --527429766 --314495291 --751009773 --740859611 --641385658 --200586569 --29361232 --578458273 --720721758 --458443638 --218553477 --475341477 --785489625 --475852094 --100531945 --480536864 --771249258 --776685640 --137424848 --377460104 --412727618 --803669516 --913831615 --477394350 --947741049 --576228261 --816020904 --339718101 --245466027 --863480453 --180892302 --456312993 --790929901 --591832781 --701395207 --320076783 --948318680 --282845922 --57368700 --607692186 --853584970 --485238673 --959874112 --698462240 --820211125 --753504641 --299339507 --729274807 --713646015 --577219230 --556644449 --62157350 --690650271 --197703573 --825432478 --325222686 --308064261 --365259289 --945263941 --230595517 --54960191 --891957785 --179868180 --283912947 --538352612 --409962544 --226353290 --619622589 --193372268 --572650278 --272854401 --938100765 --151651959 --20372034 --989096755 --701176528 --106620247 --59289658 --940140648 --966539595 --574293983 --709743555 --568515484 --620146419 --704967833 --732670635 --970374235 --270979191 --310706797 --747047141 --243214992 --272695686 --119272615 --805786047 --683431447 --80850423 --559955912 --845763917 --507066180 --181478852 --914569771 --780973552 --533537091 --480442850 --407359562 --588425540 --14240189 --306524576 --504139740 --493035841 --31105382 --277563854 --634810983 --251577680 --757230363 --226108390 --364802877 --573665916 --712628264 --841263944 --788191661 --69909458 --359718531 --705272690 --829640874 --85564458 --389486574 --540806210 --319862568 --257006911 --274841216 --630419502 --738033894 --183663931 --59832129 --762552390 --254414746 --576566103 --583947539 --25745867 --253004050 --722808161 --759988649 --152872724 --376114891 --495964646 --487534391 --309164098 --352697309 --793581871 --490899717 --538808683 --475388712 --801115330 --410327723 --790137916 --486002672 --104361627 --103794129 --419074604 --917698115 --904633943 --44321047 --299913487 --78630427 --928689442 --412848495 --934896884 --75558639 --479040419 --120929198 --604900176 --836536161 --153850385 --611079123 --695715195 --254305121 --705488929 --962686817 --828728531 --649129111 --684229441 --502095827 --928992519 --733926462 --553483908 --301668300 --745685869 --460473271 --498698055 --553220069 --686206051 --538594922 --500075804 --135925443 --317304369 --509821864 --50642449 --267546818 --215357103 --643029442 --785264747 --24736660 --431212683 --961894916 --227212081 --785622283 --919299304 --81128262 --172001329 --205138800 --575540805 --276744862 --814887173 --695184977 --102869164 --116568746 --590846616 --382717443 --910504399 --715490606 --754618422 --271953194 --362520735 --330870453 --241546271 --493561493 --916979995 --29705531 --40403002 --141864232 --134939614 --350605393 --110307847 --99393901 --823080597 --690598536 --553715807 --715863694 --993442817 --333179892 --520195703 --696658579 --103937543 --987576945 --529633877 --401270506 --148450122 --33957078 --470431859 --857063002 --113876582 --245511772 --962288808 --888188690 --170165028 --560764509 --962241775 --773360755 --657711674 --594868621 --754215899 --969860333 --729725004 --332713181 --486364102 --174030908 --15052459 --971467904 --341890726 --326256734 --814470552 --827309805 --905774542 --367268879 --291356865 --377412811 --610441645 --87639726 --667088309 --735672640 --708512046 --389710991 --974249589 --128454910 --152756312 --772303679 --510825048 --658477203 --642654895 --21915801 --584474756 --515217303 --994454443 --445413330 --433283160 --943977266 --321309060 --297814497 --448029386 --360175771 --403709965 --258559445 --823728127 --447779302 --498800031 --194363405 --729734338 --208919089 --468067284 --901280159 --379875805 --868430614 --468087022 --986364340 --547665644 --538625287 --569223724 --167094077 --634172619 --907086073 --133350819 --517561588 --201879021 --454494065 --951962990 --472590957 --994362123 --415381395 --621740306 --729778391 --174863704 --509514450 --886219878 --826174493 --819583399 --414253740 --368626984 --514033738 --979099 --205756835 --701777832 --440476677 --613987004 --480440913 --268035962 --325640862 --180077651 --373507930 --610105140 --559583069 --364631866 --878743962 --790299244 --991858066 --164107605 --674473814 --687186292 --108878520 --345427799 --130323119 --35799840 --338964370 --95859896 --18722493 --431908033 --287466501 --676558089 --146001810 --971088006 --322684795 --682402357 --751280130 --552501361 --627738632 --619827682 --353368378 --241488950 --924485278 --155560202 --192946076 --603701158 --587274943 --440622688 --858882420 --455576963 --392804238 --739481665 --62749791 --955285634 --332754626 --980498459 --393026195 --150800395 --408927808 --232232386 --560599554 --814391623 --258400364 --550700026 --940290117 --925952010 --512735541 --914674486 --799956859 --39658369 --443391279 --735659530 --584089025 --138960940 --179582961 --344718805 --219056939 --733407605 --657921064 --521705799 --973714319 --572902745 --67961727 --703744054 --15208007 --980427119 --464914764 --997242028 --442636595 --766027538 --121665537 --881615923 --20337621 --183197553 --692235511 --237048735 --112436491 --369637067 --587863928 --70867173 --138955452 --686453195 --8624414 --619622140 --367540711 --236527478 --992333519 --322500964 --608039876 --199631612 --895688361 --752650808 --397678545 --322485152 --691304332 --922873914 --355845071 --83190656 --192842312 --416516835 --26118526 --608056468 --309303688 --541667633 --37269441 --915997439 --499876587 --584289259 --572786653 --13024872 --377369868 --88174344 --167348831 --569319702 --478367477 --527449542 --726975972 --895201861 --343903586 --750340363 --628190189 --897643204 --979921079 --525153815 --789410383 --340800197 --610792437 --672353341 --625387447 --487002000 --626658924 --568796432 --632758395 --767992459 --509475950 --311724006 --147632418 --990337691 --213271019 --525748697 --283587687 --335444500 --702869814 --886289536 --871089456 --698529109 --442059581 --83341305 --359456823 --708125599 --293763780 --30938850 --255964408 --173725219 --888762196 --533700803 --726546320 --373423182 --190192351 --472926716 --634042365 --629948804 --581168772 --261811123 --377679082 --799729017 --491170839 --18546776 --680602 --605681318 --540858531 --818847910 --448558010 --864459803 --760240408 --618043109 --934819454 --998450970 --312316173 --31201032 --448403592 --961676215 --915611308 --957796471 --948870183 --408552313 --103006913 --787283152 --888721651 --991286312 --695945560 --169390612 --478175907 --219680811 --992538968 --498341723 --973283392 --31699901 --347789784 --243222095 --152579695 --491208771 --623800771 --230905625 --579989980 --434334679 --89995601 --217118043 --14228440 --958373669 --538333618 --122589647 --453425419 --437002859 --991790040 --772886602 --275347993 --11270881 --407276549 --167706707 --113056416 --857076417 --122829678 --125648639 --442509854 --743942449 --51389592 --308790150 --840950595 --826776601 --304496498 --663697316 --93075051 --694912571 --423404384 --567129661 --961075805 --23397002 --878686170 --44319574 --332237078 --629221488 --2512957 --757762800 --255292322 --159167197 --797856399 --686897906 --655555676 --79921568 --200568866 --955506342 --665324684 --623119845 --937993132 --964932285 --198293980 --483376918 --78662599 --304674580 --772213754 --235794844 --482977536 --29614359 --577316480 --178725030 --403810125 --858907274 --297040967 --379701278 --563078855 --510587028 --146899906 --995150960 --143551613 --723356915 --904000591 --469031406 --33647957 --131449398 --248980777 --926912943 --600520066 --546263669 --17962123 --161528127 --44414169 --281022132 --700675212 --739170615 --288971219 --299486607 --75953038 --754965085 --605674570 --511797079 --751765579 --892136803 --510303719 --822907330 --614234056 --521580439 --146834356 --562441942 --508717684 --156448645 --615323271 --430377755 --437725958 --773129365 --677902101 --185164431 --298456929 --288499431 --834363782 --924232063 --283072503 --500440174 --410269028 --939084881 --873150343 --633730825 --93234416 --455965725 --510167880 --119075771 --364523949 --579638047 --492201050 --708317649 --486818006 --506871039 --768635185 --948034957 --956813378 --695332052 --423865110 --604552554 --481218616 --118999589 --765618866 --204489704 --172371407 --246094681 --97389128 --538192020 --933850147 --37251843 --304035934 --298741014 --762336629 --914312471 --524663473 --767700018 --960503379 --124730044 --701144618 --463206997 --353573213 --187287638 --404712036 --362096863 --462827211 --94614364 --338703424 --832487031 --785074532 --103310983 --379430721 --654234376 --375277238 --124108722 --692437415 --561039656 --24384185 --481414811 --137908636 --873760182 --126462872 --942008366 --590898525 --255609488 --993228398 --830211791 --145762471 --549821322 --366218029 --961389330 --521167780 --481048042 --802681782 --832992176 --689374313 --279736618 --765557450 --446384488 --189441910 --586873777 --755839857 --898735974 --562424029 --999387226 --32081841 --962636132 --629142508 --389191533 --401988614 --59932705 --760897787 --142823585 --284799201 --223153064 --293293904 --682266674 --195568542 --144331741 --585588896 --74159524 --221509956 --215016052 --252355217 --521902409 --99697701 --112225655 --242276107 --528065038 --26531582 --350114710 --108037946 --580989590 --964620267 --515963239 --867064445 --519205849 --88538362 --741884039 --434773270 --15695973 --881277163 --393035971 --473184740 --543992908 --450778516 --444990355 --955935238 --558193416 --290580811 --536615710 --321716763 --456816888 --453739202 --29287330 --787105752 --316444699 --823566275 --62521666 --479155772 --750763100 --247204802 --383893335 --366806464 --43806130 --945057152 --26465962 --317209871 --119770877 --418472554 --100344637 --562080997 --472069578 --315556179 --389208273 --848925301 --57190524 --244254067 --475940645 --562062424 --255628530 --382330901 --711822624 --781979692 --837383430 --116025662 --313326246 --427850979 --760207026 --412962770 --59431920 --430640 --605259901 --765179609 --82420305 --206075883 --438293632 --864540840 --557875504 --971313121 --381727120 --22154990 --607768044 --188181473 --634592865 --717596855 --265855243 --115860777 --699164922 --868916585 --362111607 --174782115 --160779723 --858592226 --816865774 --487880865 --711814061 --663216956 --544364171 --420230032 --221096783 --493778058 --785692834 --820147275 --425657267 --788626787 --448998563 --405911439 --788636771 --421073491 --949979176 --458298375 --62263983 --983909946 --537959118 --547503782 --737937744 --887080408 --358716439 --496202628 --783767278 --6194291 --469444198 --292597234 --563152849 --830834913 --740101160 --959634055 --236010855 --493983127 --674838254 --972146897 --397123860 --758917973 --455082584 --41276805 --133354932 --918574867 --206317867 --888889391 --940499428 --411702800 --266852314 --759743459 --655091700 --501084267 --887648897 --785412239 --433569270 --596011107 --878564373 --801620938 --33308619 --683955095 --874383000 --879553441 --909150603 --712841315 --868451742 --56752098 --226104904 --352265608 --322530404 --855136762 --572711569 --559659518 --445800980 --583342030 --344214187 --46992283 --821655192 --545280472 --288246890 --707553626 --607653027 --48690774 --223502096 --35967466 --141212466 --244349801 --646374972 --127559665 --360499015 --911733153 --391259557 --271070564 --776350917 --118968196 --962838448 --880571932 --465007754 --451772874 --296958444 --275231976 --496816093 --630143431 --445589020 --331517993 --425474024 --596418558 --157505991 --999238720 --412775036 --633639813 --580378586 --41330879 --744032228 --955284694 --425974189 --344888480 --368538998 --965801350 --276465332 --910986675 --108643902 --85809819 --259827511 --744287733 --141530010 --82111415 --316026524 --433376687 --977234892 --738583244 --222160812 --399405497 --22979116 --699233355 --424991848 --584679117 --805143383 --386841595 --47392144 --944933154 --171531888 --861941512 --224518730 --243631494 --132434635 --594777607 --163922659 --319524940 --697186002 --171296264 --215519714 --677621401 --672258413 --547773230 --977588239 --411682369 --746393281 --888154832 --509406884 --712192662 --720066829 --512688566 --190249103 --217467288 --610308194 --872062347 --685371875 --549290510 --681932086 --788549579 --2525256 --511299182 --845943283 --249201165 --851754768 --419585967 --745378377 --989782500 --87289408 --868188825 --777071846 --358184529 --688067482 --572482056 --826938263 --996144284 --858594609 --242206090 --435984740 --653002770 --437306212 --867889088 --760232138 --601497179 --767933475 --740971229 --918344272 --823371216 --508727711 --544445233 --194548255 --646151911 --243092302 --278826174 --733075323 --513616928 --803628139 --273562907 --873656012 --400481785 --927787874 --152816961 --372804883 --879674473 --669302241 --402905076 --505260484 --4128966 --654627300 --91072008 --165103929 --648964506 --352794454 --274143463 --856136781 --597740013 --16877215 --479562088 --31035171 --610343058 --918001968 --25048126 --500438492 --304812213 --667977196 --53586430 --836233521 --788822926 --623213031 --58572513 --483730521 --45888717 --74837427 --995809876 --954231139 --247625530 --700842606 --366657383 --465836519 --167284439 --228497774 --261371376 --657868826 --847891278 --932099280 --446897022 --866209531 --909898646 --866063618 --990819529 --340974785 --71720584 --447941526 --97382783 --394663375 --479658578 --366248993 --923868886 --409836044 --114576466 --631465162 --470784272 --86324592 --657943344 --757502461 --483291223 --943990422 --461818442 --681609529 --913544771 --169010482 --994216406 --621097000 --93516083 --701556523 --124624174 --488615942 --852462284 --712596527 --340651088 --681773417 --527862667 --499556362 --849604347 --914637484 --373118218 --288805827 --716367828 --707318959 --729573208 --381083830 --279353762 --330765691 --361642645 --564968691 --373610964 --888123582 --187740159 --201348254 --960918523 --478791850 --98298119 --607077525 --706276158 --385972508 --922668624 --583523441 --650192898 --635353522 --260804083 --890485026 --53149473 --664771791 --974808554 --21571391 --655229226 --377946784 --606101244 --614721663 --242816004 --857742707 --438622650 --658296583 --482204358 --313763383 --947280594 --128628792 --93254880 --58065442 --94137019 --768414694 --445384891 --6661242 --422206438 --126108249 --827726930 --43835239 --473999683 --104513393 --161320182 --318974782 --879944758 --973372197 --980932307 --435816114 --169702479 --153572145 --315652748 --616506401 --192781380 --284542676 --771214194 --663887739 --811731256 --819606263 --861262078 --447344153 --165411908 --765081589 --260016806 --131425799 --290759569 --14660255 --786441748 --685926328 --624909147 --81500451 --707316417 --592302600 --629332210 --925630200 --80375895 --830225217 --178636246 --630867003 --851289489 --378608106 --145228794 --259248228 --413807778 --318851839 --877524207 --587305822 --935051671 --936082270 --171008554 --572872431 --512294247 --231036583 --510667891 --467791839 --887422694 --724714860 --776792601 --19436654 --147803194 --12328238 --832258608 --271095160 --604482114 --172069915 --337906870 --353712810 --690545047 --776396650 --408130411 --371839071 --81694572 --887964818 --287058420 --783418207 --118089179 --508221045 --31771730 --548255396 --35835368 --242162803 --809526216 --905795659 --786990648 --478938775 --776429382 --153001805 --526722856 --312363128 --581465839 --618704700 --500442751 --978617807 --232834375 --824318407 --360602235 --271268077 --305745004 --237025004 --171621898 --293951944 --5209344 --24475183 --959032168 --607246141 --825417519 --462486015 --537526905 --586478670 --233352692 --891683499 --537381084 --393260876 --497191839 --363484781 --247301055 --239469446 --960229438 --257172760 --63169545 --87275191 --774152501 --530016172 --404455153 --153407017 --210732831 --295828668 --831408583 --860411643 --666436733 --860413569 --31079183 --464798211 --246919632 --888471408 --221797068 --708001076 --754601182 --823309885 --407895380 --226020640 --593659987 --503224892 --262928330 --416040474 --540942858 --22827225 --439483710 --385973195 --318182506 --236926023 --452475586 --33140262 --437741196 --210160119 --559024533 --616835528 --148729140 --331221718 --90484243 --949342208 --821358857 --642713201 --720806650 --340491672 --331569805 --636103731 --306287397 --917344421 --202922491 --845879775 --358459237 --139538916 --177863116 --578767699 --494989816 --863321600 --370094812 --564703754 --492708391 --337171450 --980601428 --500695982 --36625962 --299754750 --812446047 --870120718 --285221549 --782723897 --84706912 --418846034 --293447928 --713657270 --233154586 --37628316 --936240404 --220110972 --457438952 --235315972 --619330715 --534885870 --562227128 --86449182 --321759185 --928612314 --133658513 --355316569 --116296550 --348914696 --533971787 --569912512 --875987590 --962645578 --180496192 --417253040 --962603521 --251064739 --854669949 --785983690 --649416358 --944398658 --779028428 --635022119 --333226512 --45790742 --776474332 --842939106 --628929400 --186331056 --313619541 --300377250 --188813199 --483203765 --760781555 --495301549 --627349233 --179505971 --20523097 --2857022 --307809451 --29574607 --736934526 --722323942 --180036908 --535883272 --602675621 --152227271 --7794000 --618202922 --200574071 --641980036 --363690841 --444052797 --211282958 --536374849 --541358628 --696074942 --732789129 --642883617 --657697673 --649504729 --835533716 --177773541 --673514594 --817791501 --392172626 --909089287 --136994715 --386221715 --765243156 --727410079 --1649538 --65324675 --421806400 --684378097 --709577401 --200276480 --829686258 --73203008 --396785952 --462935740 --844406017 --663941144 --356546062 --33375818 --323184179 --436258134 --805935367 --53635017 --808375447 --924642645 --678445958 --477194826 --411840302 --585261043 --393092161 --748970231 --561155196 --158482266 --77487705 --137262079 --645304943 --577224904 --350604820 --652882020 --974827358 --612930456 --176643605 --801065696 --887019745 --338361833 --264989042 --910539544 --255245979 --383114719 --619677691 --494665604 --189498589 --932865137 --612148680 --491810205 --480290200 --956470337 --620061341 --190491226 --632861594 --783764059 --603865811 --962670733 --298864777 --878576059 --715376032 --369851491 --730376482 --14613939 --119575334 --116088980 --387899139 --279700132 --591878042 --898984533 --328267325 --103013864 --654989576 --883629396 --340139253 --640539887 --767219248 --111219840 --294649653 --156755834 --95611666 --23525205 --848154969 --248823543 --195095066 --658433833 --784992994 --90211739 --312885915 --399361408 --200257086 --283744794 --513580472 --363119359 --944952875 --499993664 --340911056 --545608534 --607120538 --666120851 --202445308 --612568627 --860620080 --353681108 --785093290 --913834103 --232157799 --203631080 --643398399 --425460849 --472958536 --604400096 --202910696 --936171014 --435669916 --510872054 --902911114 --324507395 --906663430 --669447861 --366993072 --103512614 --813432670 --353089864 --103878816 --868896217 --985143832 --37562536 --172828504 --6719545 --371421252 --785487610 --86567294 --852730683 --334285382 --826591099 --804678481 --388678005 --100863037 --701600289 --842062808 --375135143 --749676831 --511063236 --82606311 --672307179 --330372533 --594325467 --641412744 --265642428 --757037807 --810153378 --405994498 --856667902 --197602481 --926603771 --814842480 --970509073 --269821747 --435284133 --142888452 --640961844 --717540056 --102924606 --453191167 --241546277 --576322086 --546771242 --192031862 --904326602 --418135495 --818928517 --403320317 --595786831 --85234511 --910950145 --249999646 --583153143 --873224488 --202938641 --92138083 --16086949 --167208477 --995533180 --345514926 --936877723 --765684645 --879709676 --563077689 --954886921 --176679437 --113213576 --309613074 --396047088 --878997352 --753743549 --652932345 --576854735 --522374149 --727886799 --819600671 --201812072 --868933883 --11631142 --615853740 --868661605 --157980586 --750254139 --319598090 --211228296 --865581102 --300442274 --310496192 --959507903 --283568593 --128005249 --235795175 --935728173 --782421668 --343403498 --400852701 --431684209 --76494860 --655759505 --87614651 --449972406 --690429679 --862033841 --355732532 --34672680 --349386274 --384404673 --913578567 --128724718 --435093850 --294298876 --112560032 --546634492 --768372308 --25698140 --951406434 --779592929 --877689099 --212089505 --909785292 --245409246 --357480681 --928914983 --421792751 --251633551 --574735519 --593025661 --455693356 --770131491 --453504985 --327216991 --143075680 --851095090 --955535711 --261055277 --170331074 --818234345 --926495253 --357162897 --376814234 --758084677 --953330549 --87306300 --894993493 --114269622 --108023869 --212723059 --309410005 --604338897 --424666610 --300473560 --976433921 --177659970 --167831638 --36395187 --953375398 --69760231 --259038936 --404681655 --709366059 --7620759 --907811223 --587499882 --334959254 --235378149 --596639612 --725780848 --884318962 --937847169 --943388727 --935013049 --141719533 --58942121 --315938990 --246798277 --428388131 --176961223 --734244514 --173713062 --919896272 --398503247 --871156622 --831387965 --67870348 --518926245 --963619830 --299201145 --301100590 --80217350 --854316236 --662261423 --925430858 --655797833 --167039103 --65068767 --969600079 --621735124 --369228153 --643754387 --179815352 --685886609 --255323236 --433111036 --31453868 --879962236 --265676743 --624206181 --657341342 --586929116 --799170208 --12197776 --304858211 --534459329 --276252301 --238558836 --537731871 --941124974 --507700116 --230098977 --178762512 --289497772 --282530658 --293385520 --233944068 --136982204 --257359262 --939564132 --396788054 --905436864 --201397315 --802408949 --987253321 --267489273 --439920511 --223054962 --592358775 --384003255 --722072514 --902216404 --960942752 --413153745 --433210377 --772678596 --304161431 --723986249 --65125140 --177001788 --418172244 --39328391 --100485780 --555667473 --999878873 --101138763 --243698651 --718263202 --457266973 --993872 --821636018 --299040085 --33469407 --676885577 --845663718 --181788036 --263510140 --191593115 --773389151 --217061041 --555677615 --258228545 --261482158 --787421187 --573745294 --979338625 --211848385 --840519119 --550459622 --544936834 --78314491 --5703912 --701099813 --633080562 --988926 --937065569 --493915659 --463392546 --581427562 --542635170 --287378589 --985042390 --343397650 --661348108 --316688637 --429766805 --528290528 --330460498 --708120336 --708886450 --843175164 --12686693 --746583841 --467893127 --453987844 --104759580 --37169006 --383732178 --519849524 --195124995 --214272579 --436536375 --369332907 --573170789 --874717817 --163999383 --122366296 --715012014 --115844489 --538153434 --500709958 --417708016 --752353806 --505651907 --31801491 --480992652 --387358900 --14438430 --359689568 --34026103 --568681966 --770940756 --920144180 --866687245 --459102976 --365434889 --872358293 --21991939 --653848975 --413278873 --24773049 --42059947 --294163590 --409869429 --209896813 --729171998 --113584767 --978453686 --721069311 --965124014 --558173032 --323341088 --208810191 --86392417 --425122314 --530980228 --116573771 --433409954 --655187599 --471217419 --157253721 --344264780 --411681009 --473516028 --467987564 --853823293 --48381732 --217594814 --944378765 --922865051 --81107714 --823962664 --962845702 --217580173 --15175686 --139393499 --722864476 --350404879 --210229696 --584615654 --376161260 --927381466 --161101348 --468887734 --339780646 --684851616 --102429432 --624487963 --120218046 --816363172 --522312328 --999312888 --255374193 --677997713 --734925646 --933540541 --109518978 --784784808 --938809968 --713182698 --373452960 --5882643 --132383802 --120433296 --852351538 --831745058 --729634738 --297933017 --803329080 --43474095 --759843474 --876276418 --731890061 --767085906 --180417217 --671765885 --936651900 --502554708 --657877357 --412903410 --101179989 --408678113 --778875250 --469607204 --240037247 --712601732 --444172382 --845355809 --477900195 --396878535 --572385424 --980522685 --692964465 --510403036 --152913545 --264083324 --398845688 --722624501 --261126227 --351726232 --904076071 --467882398 --778203172 --911152843 --321669182 --513633124 --668325873 --595129180 --268067343 --324604771 --724037887 --543741521 --419107761 --401678038 --302856454 --723196706 --872033163 --498037736 --633385520 --863916796 --563267260 --47837436 --497399314 --120105330 --341581547 --169731748 --929560115 --966350475 --255182215 --712437268 --644827717 --176856530 --554780369 --383759061 --443807404 --165986549 --53077626 --665297417 --184436116 --214903508 --648547469 --239521374 --96695257 --747968399 --463214493 --715524799 --414393729 --985153743 --695771422 --977824745 --666390710 --902092321 --556835006 --970364944 --51651567 --507190515 --988769563 --616477364 --682644704 --473548345 --33480950 --969799015 --360930432 --79056787 --28549718 --577752359 --946102750 --976047745 --335787616 --283035131 --179559381 --205643501 --447204306 --799271690 --432916165 --422036832 --920484297 --839279792 --643843586 --191797079 --677363 --906238662 --343453516 --18383491 --499306147 --822673433 --495224128 --148044319 --42286824 --888494884 --473948195 --271812378 --122525845 --358633052 --119372947 --484562607 --632126327 --583866455 --295798033 --702732247 --866446422 --487370405 --156982582 --693517474 --590425674 --835677553 --869059964 --797636874 --781740381 --145524501 --41176436 --958217982 --175829309 --277186077 --688635793 --502846473 --359228594 --605862328 --781326178 --574525656 --166776744 --527402900 --46762851 --864682680 --739353998 --689154773 --828503934 --785623236 --495606433 --581794171 --293300475 --401431903 --941171417 --44772109 --402804089 --64345711 --964158247 --425387851 --78060640 --169957703 --551821980 --119063234 --632219183 --949161924 --268445688 --936515591 --394269550 --430531020 --701370647 --85604669 --735703948 --120686144 --925997046 --862005743 --951085936 --206633663 --707100973 --169497192 --104793062 --340489354 --303095371 --515095791 --861430072 --601344263 --642158875 --765746197 --302003515 --823230262 --110883883 --858403123 --599147774 --590606644 --261784887 --256025087 --194209211 --521493588 --873579053 --551416814 --982744576 --994936959 --117021851 --534039075 --834863004 --493750928 --545288610 --193021901 --106910174 --711853116 --657979613 --708385999 --387208200 --620747392 --28361652 --37180012 --775066009 --415227747 --356341485 --706189966 --624530987 --589944519 --828196988 --573835288 --177267330 --989977474 --38295705 --992887718 --970303265 --660732632 --73883594 --926969779 --89972054 --448422293 --587684444 --338493968 --850160833 --636992020 --642562202 --413685281 --568326242 --678751721 --678154825 --366820226 --801885207 --717669844 --781436098 --876774282 --784228588 --92773591 --87548072 --637390781 --643700915 --335550375 --630674379 --500434867 --317793657 --553844878 --718900000 --441538082 --709975028 --230779038 --817540774 --83762510 --466731521 --923311011 --903638660 --455597467 --548204532 --125065892 --968185529 --690265135 --757007033 --222860636 --427326406 --57945991 --47120278 --577825871 --518322187 --485668247 --337568148 --127440129 --69431352 --898143664 --615605938 --638101498 --544124489 --56075817 --435185883 --472251097 --767305969 --321936137 --410560384 --824922442 --372055049 --610880254 --108236927 --26451082 --434591622 --522870882 --414740783 --586162974 --838181521 --68576393 --7418321 --600266047 --902313120 --727295633 --78954218 --119011759 --320075320 --161516452 --660959484 --222122227 --529791543 --961744799 --459218751 --585875591 --770950952 --401869100 --50959423 --33362393 --268821375 --807663346 --513287953 --575264514 --271117241 --542750808 --127684341 --916696428 --762213352 --175794749 --816347975 --622456952 --173749227 --425445278 --757440134 --248550146 --975954846 --482777485 --851206707 --549411392 --980401624 --307900363 --489345177 --870647881 --322492086 --19722660 --522341107 --146719861 --741744919 --239901003 --737958290 --902448511 --106693748 --414912389 --545172104 --32903835 --303385049 --455891617 --779224989 --902321762 --840851472 --634235089 --934310800 --557931619 --201902398 --820848752 --176074847 --549059901 --537751120 --184020810 --213471827 --807823024 --284682019 --169132925 --762200513 --794794927 --348489911 --399291175 --382901081 --242940897 --744235181 --795811286 --621990345 --868758355 --908955716 --839557919 --421806304 --988887365 --466838597 --763001671 --334500512 --983688424 --152994859 --842619859 --333529013 --589684572 --488628159 --281603746 --742282577 --33336681 --565235263 --639030892 --830963470 --573515224 --499579179 --116052588 --843753322 --189244639 --993854152 --864013755 --462191933 --512494608 --311029724 --859134059 --944462411 --873626850 --864671261 --885864530 --213643645 --142106578 --235673026 --999727985 --710838102 --62216006 --667797811 --841107842 --919368837 --181391880 --458479709 --648875746 --265959286 --384974050 --911319772 --735917375 --917789497 --877976577 --773953772 --59337379 --951474198 --936377793 --280551363 --507692341 --380010616 --190532452 --126140992 --912957590 --456741712 --879764391 --129023014 --340731565 --984609893 --406366080 --531704146 --692046680 --626899808 --103681361 --191320002 --21116731 --771604678 --383195412 --120854078 --438763692 --480945710 --378041767 --360881676 --65292986 --438588546 --162955224 --246944769 --760102368 --853350667 --451269607 --177900326 --154082642 --846310029 --539116487 --512675194 --827907604 --417309747 --839258144 --177162008 --410634384 --611598794 --44029168 --386770478 --766015046 --568473260 --428401867 --448320227 --148324297 --496507831 --859787298 --303716865 --475691723 --592207026 --823796684 --581474888 --590147306 --348724383 --904965455 --436511408 --310982439 --755024085 --683598523 --929511476 --966655460 --266004234 --439541769 --512038972 --250032120 --851297870 --898144495 --516224195 --262575304 --879922717 --393952067 --426000166 --813593106 --323935990 --500843872 --406521805 --747353777 --791967062 --514199302 --341736259 --652514852 --316632077 --663088332 --123069842 --930593402 --164857572 --111337151 --361676532 --678470728 --156718663 --986511979 --531821733 --618680412 --659982168 --423266250 --393882260 --954752131 --479923531 --401573099 --210537748 --948058723 --708846813 --91237636 --446160971 --125595859 --19663207 --879946222 --852983063 --252406997 --712212168 --375936051 --245159035 --147098257 --691159064 --545212869 --658555620 --7401437 --774498497 --396148354 --936184840 --693125893 --790077023 --447072223 --703760263 --691322089 --333981098 --769280011 --661445756 --103580979 --788627426 --822167475 --121394502 --637645909 --725182013 --837043805 --701975459 --932234705 --448977042 --44297982 --851243369 --630707235 --196135305 --99781026 --400036481 --856889163 --125511510 --947765555 --737309887 --212103646 --592219750 --749488705 --754874875 --918898750 --798078705 --5162659 --328566131 --101571077 --758768714 --520577672 --43359570 --506200562 --160889271 --542444856 --435898894 --404641763 --276962979 --650496840 --446942866 --921952876 --343008737 --101215939 --327893950 --569063178 --386866063 --912279405 --109780781 --908118526 --187488812 --851765670 --547359524 --624376713 --926427066 --532057753 --598746914 --916175682 --28592724 --374505627 --515645636 --474246272 --545422368 --243029776 --679335729 --652700390 --263258499 --695596598 --67257116 --194240611 --211512644 --947317217 --822875161 --300541376 --639501495 --259429218 --495849041 --801362210 --297777160 --999323367 --132644830 --44705105 --938441522 --662118949 --612637594 --726076940 --804491582 --420495200 --695188682 --273649994 --822850857 --950816805 --689570745 --478923879 --976104052 --856561486 --151300704 --602528771 --28106411 --527416291 --526234665 --81675393 --32800693 --918884803 --850763898 --457626789 --755272304 --197953370 --977357024 --855671440 --511230053 --686492967 --192698541 --13214690 --1393878 --160378549 --488676452 --152741730 --388604317 --626742853 --816722535 --618540874 --533530776 --695649112 --233565854 --499881991 --904712998 --64765115 --310459682 --483239090 --794234118 --380609679 --122293276 --111459137 --161760798 --308096073 --525575909 --892408305 --494006764 --697708176 --235197940 --979940227 --391597124 --613355875 --696915799 --179712272 --637359336 --509055585 --613905695 --968452854 --988632686 --663185056 --554146770 --192838447 --792988636 --656442479 --699428880 --521194353 --679917747 --832605623 --74413257 --115874888 --852412151 --558196008 --311340016 --717555073 --772759146 --311477350 --151883472 --828680072 --105630916 --226005642 --640720107 --487519646 --418078332 --367314335 --997318435 --729336745 --53646202 --373438198 --459872562 --5365803 --738583918 --342506037 --546259702 --965439562 --904941991 --572813492 --358970171 --983792017 --143864893 --470700096 --257711635 --745769367 --397381613 --790054606 --149334149 --729664615 --714149036 --205446921 --33659017 --511953350 --432316866 --10052206 --225873106 --594325027 --201664779 --283652149 --40910823 --601911580 --665582354 --566570826 --813266496 --93698496 --838806260 --101280424 --856436828 --622201451 --328023748 --2277437 --455299806 --672370930 --900504896 --884362636 --177425318 --722459364 --659409784 --91542811 --497562337 --963107227 --158064699 --520891561 --16629393 --965428694 --18800529 --753677621 --996081404 --249454551 --178838057 --409063691 --265074044 --672806755 --623084372 --147055708 --906655368 --683784828 --943352387 --134973294 --377890187 --351103976 --184290255 --622938014 --111914044 --127138777 --928016276 --860957735 --711194930 --694502367 --755493209 --84082702 --127919964 --451509341 --23821087 --761448112 --169660276 --576568784 --64969181 --342608958 --72486210 --173447850 --393634369 --497161937 --59542193 --305609619 --600156136 --565677163 --756324752 --569505953 --422587824 --107306031 --573719541 --510219535 --670504283 --537257153 --286532347 --83799972 --525882802 --306415714 --16899901 --802332709 --122475879 --108219373 --591301210 --712862701 --162123341 --854163992 --459657593 --846145219 --165638672 --678916297 --130442818 --594736792 --95730895 --724538472 --149719952 --143772417 --970500211 --892414490 --526657848 --851939292 --981557272 --348972590 --350575821 --972329834 --983045334 --49690278 --231443505 --619547814 --965308747 --451272302 --281405306 --794783855 --163793529 --474082077 --119735267 --929743875 --383646133 --614807266 --251132662 --987397787 --343655793 --760048138 --804894638 --672538361 --243602217 --22042691 --528722040 --248474798 --481121820 --267749741 --29725458 --654102666 --981972144 --603120070 --593415526 --964075028 --576332465 --403431418 --735334981 --219048385 --630551158 --45138496 --525412719 --630056856 --294447002 --758075906 --909685243 --975991759 --784748025 --283304106 --720240947 --123719074 --519719638 --510901231 --970255427 --220495347 --825622251 --493686207 --415630924 --10429021 --977562001 --803231749 --19423242 --188116464 --963071018 --6315708 --967135414 --710672945 --957341062 --86857796 --223722143 --161774436 --331718723 --652736283 --202269496 --663465117 --509027573 --531226373 --637489938 --374334911 --80528266 --540425764 --597518757 --626743084 --558438919 --118280550 --669909861 --43562289 --229182004 --983206269 --348390405 --511850558 --97919991 --473033243 --565484145 --968978394 --343055518 --516510821 --956985776 --560442961 --807002682 --966105898 --96805277 --823469053 --161212320 --873365436 --688566783 --18579901 --587400609 --96208469 --697965830 --11051168 --139712099 --554358994 --598123136 --846463535 --749135959 --468333440 --346399443 --684371555 --63780063 --579837782 --156520741 --28900065 --218541983 --660701957 --128791821 --217593567 --581536882 --781821132 --600017946 --459007252 --124097632 --7959997 --339362315 --241261622 --112455815 --903002143 --207365728 --879245775 --135196519 --408648140 --270164304 --643032614 --234303572 --660641069 --465752620 --323944825 --187931624 --197433467 --258355962 --123783447 --666151706 --844059602 --132468302 --480548991 --924460310 --497685809 --475099342 --564744286 --84942905 --965580403 --711540043 --510376905 --502577530 --153240066 --583546870 --457285768 --537127544 --87046420 --843111357 --272814506 --365231064 --277898939 --325086427 --990285130 --107553392 --783487533 --577736509 --113502052 --558632286 --624011562 --467391417 --984660425 --422647744 --59265961 --37573423 --374661234 --783179031 --759934293 --430573624 --588438619 --305223664 --511835956 --452181653 --507397022 --120649898 --687325046 --820807599 --205583565 --231532867 --886897353 --913016014 --5900630 --502234106 --475686600 --635274680 --939618960 --400299816 --989497090 --562184922 --814535610 --33667986 --516115459 --822281224 --549784264 --952326085 --289478415 --149152799 --571929588 --228122123 --62532637 --431057363 --604230337 --825856022 --340663255 --47833132 --477659163 --536892169 --200981263 --726167241 --913656699 --975873917 --238843228 --843601265 --637123014 --963868653 --228919110 --899588873 --612725438 --195726723 --945475991 --735518121 --996496661 --138035981 --664118402 --819565385 --376823890 --888415984 --38335964 --172964857 --428552946 --837940918 --617812162 --366375768 --452377836 --208852975 --430393058 --316446506 --295670504 --588905598 --673765769 --178874287 --769281287 --629753595 --798580664 --795637507 --729127368 --788266297 --395108433 --901905561 --716747043 --362820426 --848920744 --940896188 --325555218 --898799524 --58855507 --839538704 --201895896 --39881662 --302623019 --271274262 --372397975 --912186063 --124590545 --740084024 --348902080 --605551107 --975211775 --43871315 --139074849 --931016945 --492856495 --233132367 --433707678 --130324944 --175135580 --381267886 --412825399 --535014972 --299195217 --935644761 --454761302 --394972540 --619890832 --509766411 --352017911 --929971872 --141238248 --620986645 --433641524 --74025943 --176539276 --492474737 --248458681 --286991002 --295368040 --275505821 --127612911 --737546932 --147470773 --845192280 --961162627 --310318221 --935180724 --610450070 --940728165 --615465795 --626429162 --556690503 --185234975 --884810997 --38218292 --787231616 --745586337 --202283443 --745672407 --724979627 --35882345 --292706851 --948714676 --736681040 --524274904 --963829889 --799394641 --240770729 --68928261 --407540983 --601967267 --302835632 --975718728 --817004377 --287254980 --65518261 --190719505 --268499655 --59640518 --777756043 --144728163 --80995359 --567732087 --523810202 --988618082 --54734196 --200859954 --680820807 --805425432 --99504025 --188717734 --290033932 --549797589 --410497313 --804912497 --591556995 --749870441 --859425075 --89425602 --734848822 --984495031 --299571218 --437936918 --398613681 --600240737 --485414807 --833178942 --634087316 --980554985 --406503265 --23096297 --717052843 --851036486 --322440055 --517926363 --408965402 --15838227 --262132779 --194890588 --367336788 --915926628 --962596039 --509488168 --343032087 --797922123 --493377151 --305616834 --595077255 --59062209 --740698450 --442240473 --161709123 --184790750 --612573125 --600572840 --105808880 --534577394 --825930738 --229903786 --322656788 --62606572 --866127559 --4458454 --495219401 --109472690 --800208731 --888852180 --23014200 --367656740 --923932446 --768604466 --685947576 --743841418 --647771137 --704171913 --714784224 --330761523 --279777441 --993004338 --736035059 --271354399 --63189588 --337597519 --401679095 --293019021 --707353747 --818721846 --305533299 --506833805 --259265706 --757285891 --198387584 --57049627 --591201404 --777184920 --504128978 --310218023 --535807123 --881639010 --988827820 --316240146 --613821735 --658520148 --31515631 --947879037 --174100389 --383655204 --862660167 --164577436 --295196018 --837559081 --233325188 --89470811 --510612777 --837536973 --517880304 --178060124 --503254957 --911443097 --376359801 --973779721 --39653598 --549957272 --880283905 --905735403 --292487574 --238278596 --565197329 --382720178 --586065441 --583207829 --188941006 --663050202 --574614788 --992103897 --338763977 --997052111 --678278414 --919625668 --282504101 --648017056 --412898992 --187470536 --824641810 --904945268 --945769248 --893097776 --908874464 --19389491 --892223626 --694580702 --978628750 --559609826 --335901758 --837527154 --362373654 --429705129 --218487327 --855187720 --80412396 --491033496 --889461407 --413812036 --952352649 --797001421 --599089981 --847144638 --567778012 --809091688 --852308103 --36301186 --48757877 --712261633 --827212473 --818296116 --771288740 --204339327 --892742066 --539482113 --138039694 --27196180 --12962924 --692398493 --698170022 --971348371 --216701419 --418795649 --90860125 --282589792 --333078241 --337888771 --461720130 --89809588 --573953624 --684450942 --787754154 --476159361 --939015968 --825233630 --704763390 --479037766 --240163552 --706624930 --53560094 --63559456 --340996913 --796319568 --359445747 --224231759 --889105008 --72445184 --313676753 --340944405 --878067890 --243215963 --374769850 --30706637 --241617557 --802455128 --98654814 --97920784 --220860147 --990131334 --784191269 --478891094 --149707710 --900977225 --49155633 --136091090 --423885597 --342381350 --171224934 --658240030 --139513591 --638087048 --853939158 --84495407 --462137863 --725414292 --67857155 --335189843 --356465253 --986488576 --886490160 --219317357 --490464938 --318266971 --655111181 --887790367 --991871745 --242307887 --607161653 --253389493 --514335605 --309808343 --421851243 --841299426 --742208253 --494528709 --963271899 --649622125 --634450744 --3428457 --378446934 --531140903 --398785868 --503853729 --329897751 --31509867 --539808668 --280791547 --934389757 --280927264 --113799561 --823433655 --711144007 --67927704 --995466756 --501472775 --328929562 --324240507 --657116944 --682892949 --151081074 --49221536 --410986835 --713100377 --331279662 --693735818 --326622430 --750143676 --526456870 --631681021 --26947282 --356578591 --92100407 --573873566 --464195029 --410276530 --791870815 --484537675 --211555350 --920732603 --810258519 --459517130 --183461638 --647209967 --538674939 --346269988 --129698897 --697949284 --464355120 --580929098 --946143867 --703675402 --612818888 --606986440 --418845684 --753976434 --761908117 --152253022 --590915443 --424276743 --916873102 --729459011 --926929997 --50318211 --838071424 --656857072 --790327850 --356829377 --345885915 --620240936 --136701976 --84115631 --33690390 --257911977 --383319934 --598819030 --27592505 --895655696 --681436164 --135545600 --408025313 --942416101 --546006260 --145393271 --278027386 --683740744 --26888832 --539623975 --267630535 --631888525 --239253284 --790951397 --559343008 --648839323 --961561151 --832686472 --220226179 --884890796 --92649658 --475096921 --571648178 --834294755 --632168972 --727872731 --970056406 --124587043 --12763802 --865801946 --869940573 --961722335 --452416456 --655552960 --471461280 --449971881 --622917865 --215319596 --434518538 --190354065 --786900498 --212661129 --160048188 --358418957 --126035607 --363646632 --41816612 --864104384 --627437941 --792552190 --617204651 --445343914 --221590066 --189098804 --226695806 --513880577 --154362441 --931798897 --236936451 --28294110 --287331814 --159630942 --529824609 --732278433 --981618243 --659079877 --87347501 --501783094 --207010248 --427382982 --211524897 --699874849 --807215481 --709669220 --444829277 --335403352 --705493368 --251216078 --55919856 --420289886 --220597506 --10052997 --283042509 --434914187 --638078471 --940005352 --494187988 --653207389 --620900021 --358213422 --578072977 --272935364 --472903741 --420228933 --607575913 --470425176 --442979745 --697341223 --698517866 --516061999 --596265664 --896158803 --654345124 --339936425 --301554047 --112683957 --432574015 --238474160 --280052963 --197932361 --186088170 --119564584 --928499122 --892669506 --642806222 --657623964 --147265759 --221698662 --268352047 --362237936 --208258884 --80101351 --42424035 --255172443 --359591435 --435281971 --489076345 --323658865 --969830749 --755918500 --311258773 --379776727 --728583278 --763477440 --319645901 --538471274 --12437096 --290735444 --227617193 --487223202 --658335147 --662285591 --693065820 --537634480 --723173127 --766492128 --277575731 --447590641 --436003991 --670945008 --398981209 --901325669 --851672400 --101629614 --249963143 --19217963 --909919820 --392104489 --534216296 --283007231 --807684075 --28533547 --392182105 --76578324 --461458915 --670245166 --417065304 --754560555 --518748281 --743345852 --353627606 --419274698 --590124753 --820168118 --922913412 --752374624 --99981444 --985165631 --299964226 --739151619 --953256575 --290493361 --289617269 --436611307 --852661292 --196513993 --350813723 --206363335 --893062942 --441960341 --345839255 --920973254 --260687718 --915009966 --957819823 --838034196 --853732064 --256441300 --715413909 --152055420 --560651012 --70577006 --400228507 --801192195 --608050972 --225889959 --490521430 --684404153 --392726353 --421948129 --500256645 --548822328 --112877167 --45002223 --652116572 --443278691 --990126095 --782059591 --17383999 --418724464 --220807901 --862805284 --428269702 --411912921 --597800321 --667252074 --122369504 --529452266 --414361573 --747609520 --274544280 --709010759 --56479589 --284481478 --81311306 --633252013 --924222600 --553847465 --873358793 --642105260 --533424439 --839493177 --355498007 --244368350 --966264000 --988173318 --772037473 --377329650 --959973570 --816426804 --341133258 --293327328 --945043348 --838829135 --151815097 --820440979 --358652080 --20741103 --709903410 --406642238 --340631091 --149065473 --539401182 --927804879 --806865650 --219690524 --930047823 --382560873 --460884417 --45338114 --826260693 --916517247 --299804488 --383820568 --290108389 --51754979 --553554942 --688905844 --257058067 --740772532 --730356230 --999968988 --578280136 --798851337 --646103040 --262397822 --121510923 --861611794 --260589821 --559312155 --853296649 --235202835 --498487580 --188305146 --131382433 --429243839 --242548277 --666299822 --937537096 --223354952 --205183432 --2151755 --979809737 --210746534 --122017566 --412569159 --646501644 --57119681 --102412015 --104718189 --543156702 --910483877 --648118315 --143611862 --234697190 --658038680 --967338001 --840568684 --432803836 --559834297 --185621596 --911401858 --904449778 --242894803 --935199796 --805964393 --928115685 --308445471 --838118081 --834070058 --75778879 --700650395 --128334964 --757520659 --928031660 --54186408 --738516429 --551712902 --9197046 --374203529 --155649539 --270099983 --446628138 --307646589 --383729554 --355065884 --17155104 --102779768 --838136917 --319693874 --211786780 --258215549 --198055396 --761624681 --475041675 --62174031 --782197607 --72550843 --569669748 --671053452 --368995963 --550140000 --661167182 --256735284 --34126473 --779995072 --682131303 --487133166 --612434253 --400387294 --191790117 --675878707 --447777572 --50247591 --406820864 --659597348 --933154941 --305534297 --752181624 --984119042 --895432335 --600757728 --806569293 --737387963 --302157312 --965393095 --574482858 --424654969 --152942782 --162612879 --105785095 --900924517 --746200650 --216737715 --828789211 --473331708 --795129494 --795302863 --835927651 --901423539 --654445595 --100661052 --191163404 --441773947 --55725585 --988933022 --300666952 --934693859 --302814658 --573049141 --604139757 --285457257 --509864841 --779604122 --720702698 --603521012 --54698561 --255407742 --735928002 --704137769 --609188174 --626940121 --997515979 --273675170 --540365116 --43253628 --968826905 --848057964 --38659896 --634601566 --259091207 --179222878 --176325310 --728506163 --312100106 --757487419 --808753953 --147335758 --911249347 --400699591 --735121863 --758977716 --878032766 --653152795 --514464190 --341995834 --442313034 --378648432 --599749103 --717331560 --148811073 --665305036 --13325382 --658919626 --930039266 --339728344 --50504606 --289300817 --421726887 --303140339 --612426573 --664137941 --227173287 --824379645 --798359468 --682418006 --486695673 --835374331 --897811600 --510601151 --510348151 --469179026 --982910261 --295396098 --166067447 --734348043 --162425815 --76540220 --311444285 --419600447 --433801534 --220005522 --172106391 --485709701 --985101884 --781129007 --359884314 --284896506 --658905526 --12248795 --449619260 --369309117 --578089762 --40499766 --957793090 --725672630 --532976428 --116156591 --885152624 --755349962 --379365002 --989324553 --606278840 --60528827 --85589116 --777977977 --781220678 --613411184 --456140234 --51567865 --738797907 --186292918 --601333937 --609353358 --86829426 --792290620 --823112198 --932058193 --629270672 --15116148 --333316838 --603347114 --76500322 --530894018 --791145227 --318042351 --514434786 --683714550 --241916359 --563474730 --846127506 --913390717 --182456310 --657943383 --800562619 --261472304 --664237822 --515611757 --182028192 --541304503 --362906679 --527269222 --10842867 --887052118 --397717485 --570344505 --433513294 --354886221 --131078701 --627376687 --188096058 --139655460 --233297658 --325338163 --913587233 --427574813 --62877722 --737175408 --785932838 --246128705 --567582566 --922617080 --504964460 --655236183 --960288437 --160455947 --785094462 --870827004 --368190293 --712581112 --778925075 --342536146 --741235683 --421726605 --720070687 --389430694 --846980115 --272392972 --176930341 --984890432 --288773634 --651999977 --747135237 --367605475 --688845430 --160866372 --854708588 --319752576 --663093282 --254718317 --471935570 --491742072 --132592931 --459015687 --45758725 --485220919 --728340535 --970842164 --124709439 --861111944 --176869620 --872007576 --309768917 --357230418 --418679200 --465662248 --556697343 --398219161 --701938765 --677850675 --573197187 --25366693 --988511506 --462467542 --117956983 --785997429 --157893951 --13453294 --488383377 --628059181 --447203362 --484005094 --313290182 --272072140 --496368184 --22459285 --129005990 --997660629 --339523638 --460918182 --427352117 --848694894 --264581750 --12198433 --64389463 --684223644 --832283450 --135858642 --608356843 --904464512 --372797038 --309246053 --466554695 --156207894 --505597038 --943809073 --759983790 --797925211 --106268587 --711070562 --145917534 --571885188 --224036150 --812913867 --83054733 --472159611 --779367891 --791784909 --951799701 --826085914 --111508021 --991633879 --318182525 --491587090 --120978732 --527835200 --175757927 --43299072 --546252664 --915209227 --510734196 --5127697 --529607429 --602192645 --646050342 --326080947 --554307277 --34712672 --934991091 --580986034 --476444967 --967695237 --692198579 --340999491 --706441929 --911800535 --653279871 --128302100 --66588541 --533457344 --648617541 --607265558 --471467262 --701010414 --644422530 --225238906 --745251767 --680279168 --889502763 --258912124 --576975756 --963104085 --794495571 --968572854 --499535830 --919859166 --174322720 --472903936 --263913189 --372223367 --440890163 --467728731 --515445684 --811283303 --76910934 --557816424 --456630041 --458783896 --379757581 --190822298 --941296337 --699951578 --189654558 --981813914 --753835066 --424298785 --899051782 --343948940 --374446533 --521220100 --469906139 --537264338 --761787609 --429936106 --685374160 --50872756 --456997475 --152201931 --792876262 --834844293 --976997552 --506452864 --548240016 --338058226 --106472448 --114367401 --930548825 --864356707 --66790368 --744129558 --662533915 --451360694 --601710468 --907721654 --778460868 --407641897 --559139688 --521810248 --733026333 --599553036 --898256940 --828597931 --914352214 --175188910 --107753546 --137844264 --894757544 --706829315 --431670949 --729626886 --753376290 --841119405 --845019197 --490010237 --709776688 --889940710 --371840516 --414394646 --871691334 --616198082 --592692195 --266244708 --587896617 --35795608 --641976159 --976461459 --529826673 --727530788 --765201825 --217452018 --513110614 --872054301 --527464816 --154668030 --495446884 --635362924 --505910252 --602377821 --280087417 --98437111 --858222977 --342945688 --78952688 --627339585 --834405399 --15003930 --774315956 --985679740 --346764798 --614611971 --144980343 --677856722 --401627418 --808593354 --661917794 --378708512 --130852784 --971166457 --793826568 --645999127 --713045685 --18101642 --939719525 --338573763 --162806188 --185177697 --674091396 --933637639 --266666769 --353645250 --89887264 --918778172 --553044943 --564712556 --808447516 --117867765 --204400671 --854819157 --961624176 --453839878 --1185851 --639739015 --789869464 --878633397 --953878226 --948915085 --602324254 --75020833 --509690865 --44231640 --355980714 --17570277 --420177254 --563366974 --183044297 --256805448 --804429978 --780894202 --809008246 --787326146 --76518703 --441264218 --551555597 --493008707 --524339403 --987529862 --51515109 --152928933 --815116599 --949576006 --247934171 --861430287 --936515480 --463130212 --899701210 --281158031 --335511674 --476855896 --557591459 --817212326 --873949837 --551242880 --199684184 --696066801 --357025957 --871504772 --147483048 --454978405 --975758788 --120756226 --663860987 --405101616 --89091325 --10411201 --513501426 --181269978 --95316939 --662879100 --687321563 --111477450 --314412522 --591328191 --519189732 --975049811 --900382502 --552305592 --826766742 --219303842 --667790109 --551534077 --483714253 --402997398 --461893698 --532880049 --35885561 --640891257 --410139473 --717431688 --474239559 --284473544 --705836133 --22103142 --205398273 --194571108 --501757592 --947319526 --982160806 --300939823 --660493879 --948087153 --169711464 --936776514 --59180746 --319846324 --618752576 --536951432 --633815757 --160252802 --566349736 --240480115 --975407154 --737368520 --511965029 --479724694 --798403917 --403707041 --923665907 --367500172 --514297656 --577287777 --677222294 --344298329 --241432668 --989941611 --340972557 --895994742 --577455657 --602104347 --337179615 --305020943 --176986635 --616494222 --778205731 --793680847 --987298070 --176415935 --955018461 --938213508 --278094010 --341129237 --135298291 --408381247 --209413468 --339574116 --23376756 --304878267 --73706646 --545924275 --850784075 --923870782 --77044896 --428608789 --345596094 --209290843 --323806925 --932211439 --657212126 --472888329 --211222765 --640637010 --215091505 --95593693 --195620734 --755498263 --526220499 --911252219 --400606991 --971009640 --952803970 --761607881 --15621175 --643664510 --982484865 --245152968 --127627718 --666072163 --295407156 --602526002 --529817886 --754179956 --455342498 --229546462 --645392736 --947706868 --432229470 --844512646 --562060597 --589759180 --188724881 --81343658 --908953772 --404617575 --736692821 --670923297 --526917740 --779098555 --76318519 --386184621 --617055756 --608302876 --935903844 --354245367 --266724690 --584484886 --381045873 --568591835 --632633242 --620206188 --864344291 --162084537 --831278177 --840678211 --191021772 --171307276 --482645273 --85443969 --579677510 --972500049 --217503454 --458077387 --751532060 --139817945 --763426578 --66758667 --374601410 --517112449 --774696517 --314582902 --494051246 --273861932 --444193879 --569940359 --805499458 --340690408 --860301383 --899986966 --806385206 --548951586 --211179287 --264955317 --356521539 --278986732 --374416561 --827276549 --998638554 --31047374 --921755512 --139552396 --471806345 --129443546 --561171070 --911837856 --823547409 --305106059 --209499494 --496589274 --84949825 --132075471 --711046796 --181425519 --83773591 --84276616 --544706020 --300878573 --959882161 --303263425 --587133910 --758582811 --736388390 --750450337 --636524845 --616396992 --287335716 --848276967 --660656210 --404234405 --7120122 --930890951 --935606316 --732504922 --498875405 --568926678 --30563823 --299707043 --863433162 --268556751 --435895928 --595597712 --114885085 --998191363 --854897006 --747162036 --129612897 --742773864 --545430398 --904520606 --264074837 --701721578 --924671044 --189669602 --889048960 --41463553 --667813323 --481424286 --942546732 --432189585 --626451777 --818465520 --238150324 --673508884 --305352183 --240085673 --432196055 --944882671 --590781225 --531061220 --112921595 --731040480 --917831018 --513031647 --983638286 --373833933 --38425671 --307796641 --860381320 --862344841 --606256896 --586829429 --999548557 --772958875 --574476026 --310471521 --490864592 --441786616 --975811694 --324230868 --719725187 --213631334 --756262619 --554247358 --215467090 --617103996 --221729984 --129846469 --251365360 --218021058 --403963025 --50748340 --523617453 --865117357 --458452118 --104974125 --341337903 --369333484 --280874559 --9913864 --95671922 --58260888 --535743753 --818328111 --877466563 --516701793 --635111765 --873096265 --525299307 --24554506 --71363520 --233274585 --643103570 --341987269 --612221718 --317127008 --4771350 --81771790 --217424509 --319688780 --813583061 --74121741 --509230578 --402493444 --510759035 --185485745 --119939183 --416626008 --45790323 --862548054 --175330923 --163733207 --534860098 --365147332 --956776872 --220226793 --458522659 --394645183 --110884854 --588981261 --763555255 --601911413 --231005040 --515267858 --936628896 --172217992 --424094929 --120923022 --960989459 --989768501 --341184593 --733231594 --966063831 --423423236 --110183374 --100554868 --26082594 --644858828 --58092394 --604990365 --737811156 --197917679 --408483012 --401390830 --544682112 --523293557 --247635530 --639406055 --260402458 --364028951 --9044978 --39336590 --769045574 --329598733 --141947887 --459699200 --582818987 --227359011 --177724198 --158823150 --149028931 --803375925 --954602338 --71456762 --295879483 --990424348 --390912882 --879390324 --137011371 --729937404 --814107933 --692624419 --712195591 --554281564 --917523881 --929104879 --12989443 --703008086 --622467049 --124578145 --383263277 --88620659 --408097669 --449373342 --581783269 --813677966 --692868048 --711457626 --283161585 --960777979 --332110665 --217415296 --373801511 --132575334 --91958789 --966122950 --869743186 --972412502 --224279058 --731276204 --447987316 --515729113 --333406541 --665713033 --107320457 --491548441 --248977042 --10806301 --250669605 --961822945 --398445837 --576882849 --58436872 --161957208 --610987657 --190214238 --504671020 --13564873 --909018333 --481726746 --450291024 --623008760 --212271723 --153238523 --965579056 --631942213 --879706830 --397507510 --66783715 --149772788 --934111912 --453267690 --942566904 --33770347 --915552167 --649631734 --781419001 --117467580 --521361243 --802502289 --534690726 --191174174 --497784834 --232539828 --491875563 --243101756 --620825989 --560862605 --339372041 --874935556 --149681321 --445198790 --393457286 --602349373 --116913966 --435558001 --234438451 --865179140 --490858060 --941119475 --611776613 --673057911 --336306599 --632258467 --224714179 --267034355 --108443560 --459142222 --153396045 --683238183 --995303419 --752323472 --123660609 --410294934 --596101919 --731109300 --957849548 --567458160 --166557020 --11675316 --21311973 --866932109 --612392324 --753046973 --65020448 --547679354 --53525457 --841798298 --137608983 --279799962 --850200029 --802438411 --657031732 --393923799 --578349560 --780325069 --139259505 --693884233 --649817919 --360230381 --301488903 --112373853 --820224548 --713323502 --350987173 --479389029 --360984694 --698292840 --687112674 --972112480 --1398873 --473381398 --216907665 --933389506 --190339270 --25746733 --468915589 --135371878 --835509692 --965738874 --989408635 --399563807 --728363498 --912888970 --928305377 --600971149 --608781892 --391837935 --453748589 --397536160 --535940575 --715351595 --397933345 --463200024 --63816467 --557452986 --698831934 --821137947 --516782323 --450524302 --984133792 --790318561 --764759637 --191413472 --761568921 --275973903 --869315893 --337644659 --816778392 --659114068 --759357238 --435000329 --301628923 --679778960 --450611262 --442399703 --60696347 --435210922 --820055885 --990945959 --172139487 --533150876 --642564750 --880128348 --379386916 --22893061 --917275483 --891940187 --405911023 --361261040 --377298149 --70626841 --588987740 --908364486 --438805014 --840257986 --99504220 --775920442 --692403212 --13980068 --123533243 --748604238 --200977420 --906567704 --7803070 --655846493 --33464081 --976304137 --456185434 --571756273 --332430407 --710604339 --713041325 --5981375 --559322479 --467201190 --833178043 --732755471 --583529790 --128330535 --713316337 --845823610 --891153416 --63796839 --288241579 --297777333 --276204635 --61704514 --663975797 --946655539 --820321361 --262326289 --936662257 --323272748 --245650110 --411425714 --305800259 --940583637 --242110116 --349745033 --581406290 --389588648 --693422231 --267226198 --846874197 --779789325 --958198818 --478707249 --414452093 --888374366 --800483124 --669960785 --373799752 --113761420 --760360642 --564644242 --288341110 --296176121 --155692014 --895514549 --919730754 --962544165 --949120888 --689394471 --172410657 --225467224 --873294252 --428835738 --701790024 --723716308 --630994806 --126566946 --437310311 --900556220 --980545006 --985757743 --158486404 --555670258 --773525947 --275958761 --282616182 --473135585 --255249657 --601718006 --800448348 --401973378 --816264069 --628101153 --999617026 --918576346 --107241340 --307681812 --494957541 --823744570 --434733478 --44631182 --21516486 --798724294 --785335566 --581143594 --845893688 --19042802 --279353020 --6263649 --37662159 --732065144 --624320836 --632278861 --666059477 --404692090 --764891374 --992450978 --713450866 --470575525 --59864756 --586451965 --557111227 --279784138 --625925124 --506481270 --670382872 --722254391 --411695258 --993729124 --700430989 --789797738 --526375904 --785984183 --496434445 --312756898 --350870224 --581388088 --865536900 --824209141 --833936389 --342726222 --84709136 --61042569 --234569251 --154811155 --8127980 --498229058 --754862885 --458469279 --599692490 --675938377 --1684663 --718574320 --456545274 --764985447 --401773027 --981262756 --582835974 --691335119 --650972933 --390207261 --897813184 --259681852 --997738481 --1866434 --514962225 --339174502 --546283937 --669340522 --68407520 --97179696 --511067644 --421098433 --991576270 --378446348 --296278465 --698927095 --79098958 --296430765 --916263281 --470930210 --82877107 --7911046 --460926364 --462946971 --716549843 --430959002 --995589951 --895059862 --97513430 --229895949 --200101139 --304399468 --752932958 --135328688 --646870730 --238341061 --883497650 --875146490 --389623519 --536492122 --984483181 --372725852 --953522248 --600577974 --687258034 --216298228 --939038296 --15178118 --951099300 --765434512 --443275715 --380641425 --77351742 --514095969 --65475366 --268657866 --198772731 --730891744 --495054149 --692954936 --485338798 --603652656 --413572906 --293467617 --999495092 --661811564 --407060987 --505114250 --631689275 --693740943 --783587020 --77637079 --968112337 --32037853 --315097799 --556502934 --840137843 --117757863 --364568755 --87786042 --236773701 --29836561 --306905561 --531109940 --477090093 --798167230 --420810391 --173285589 --212027241 --146382567 --3573210 --66682005 --874572804 --41021676 --247644675 --329920796 --563470791 --690927801 --374514095 --779266096 --316343362 --532357823 --202747863 --605664325 --658952251 --450870273 --674220910 --58209692 --706196803 --881901819 --557931908 --243244483 --361158997 --781438423 --587292117 --211667740 --511808381 --531374876 --407024367 --760545241 --25372929 --273457423 --660726295 --784684869 --915039765 --826709119 --34083085 --520982827 --661981814 --612248455 --918911612 --621369777 --783359720 --271485554 --860922286 --298873260 --619962511 --434829153 --910046430 --754970976 --584785009 --913542600 --424723900 --868287920 --51047123 --228370531 --520376235 --649028043 --937410203 --100142399 --742941686 --177425861 --40247439 --478377512 --354771009 --885696760 --368296281 --288620659 --373157080 --172434193 --260038086 --949129004 --466163195 --131983004 --955935786 --853884880 --563656853 --270145584 --542215171 --319331549 --133173492 --600842054 --735820268 --592439341 --718198168 --55322947 --785809665 --909359857 --908357721 --890425606 --808445239 --185574858 --73938568 --111628714 --532337827 --486803615 --154920662 --763506406 --892454653 --374662091 --803886098 --250746914 --749240295 --589620816 --313579341 --63041295 --921321192 --149043402 --688354984 --44607570 --411382526 --37546323 --185054416 --950295636 --551818228 --919736337 --655446093 --627124409 --521017341 --856379144 --577111946 --848096607 --299627692 --390849508 --358723362 --534663627 --523480531 --369968492 --361667752 --776471492 --487727015 --956367015 --298418793 --65876619 --58987790 --715925338 --791802594 --534431485 --356132666 --64915590 --794096945 --19993128 --389058943 --387195213 --986901570 --946333642 --640100498 --567761213 --759735104 --737391614 --167207895 --204644452 --980811087 --655075527 --215384516 --775919898 --206509844 --385867859 --301197420 --740344300 --252591329 --447037797 --651145539 --921668764 --167452174 --717101792 --355339617 --600458085 --12145484 --388645131 --577694894 --940122123 --28719416 --552850332 --788844078 --921738631 --900394805 --807577753 --48173196 --96232153 --11775692 --498239343 --936805161 --395337716 --690128599 --620917202 --505246253 --173917854 --167470858 --22151397 --501686544 --992324954 --829522844 --278357931 --512746272 --369942657 --862759849 --545270699 --96197856 --943956643 --752111281 --649199677 --503880923 --469488099 --262809406 --895458016 --38484136 --622522575 --137712375 --802764815 --742760288 --530016327 --760768835 --556401804 --248525986 --991167401 --761830901 --790677597 --544979927 --446103196 --83942938 --112146139 --497543723 --628574659 --28785999 --884140293 --877142328 --736583018 --676863074 --583235252 --41910250 --352932903 --415075362 --574438304 --169225819 --494024952 --266864227 --923156137 --771223872 --936317395 --93433506 --542415708 --159506273 --532815568 --572674200 --171630865 --145469897 --491233593 --947110119 --543420705 --790691733 --335425044 --235422127 --383315937 --318733962 --763882153 --515970226 --564060281 --135245304 --446449935 --592954815 --32207123 --991215313 --147232300 --767381784 --750796227 --646724503 --215440027 --939137132 --853961190 --814593248 --687503989 --947971470 --816622209 --68535992 --285476885 --479044492 --58560839 --394875438 --149274854 --562672639 --588829537 --692991148 --835464848 --45044971 --947038388 --822298135 --366798443 --936826744 --512957293 --709341081 --61521761 --698356599 --11143071 --249803364 --406252809 --823432068 --776390398 --423466846 --497668203 --572116164 --7837681 --386429646 --58380855 --352779756 --456308169 --104808811 --347240286 --720278257 --478460036 --426434178 --686016011 --79604707 --854280530 --268735464 --260387245 --831243407 --630493470 --83564712 --289953966 --487613955 --526279578 --756669008 --3369525 --724639572 --546303516 --115181010 --347567690 --963304632 --289271673 --275619097 --344125289 --16069252 --652824536 --294429804 --458788382 --437489780 --114367159 --147685882 --178411630 --387127610 --818196509 --579745689 --730843688 --54075791 --217138330 --575771452 --179488758 --646831327 --981129241 --346589488 --149028893 --352859969 --143715000 --317480190 --752005168 --108163361 --105379846 --749996452 --946527000 --82407653 --489853052 --327240776 --609022496 --657287184 --260821694 --132950068 --976536451 --269454405 --623502664 --606013879 --412374990 --153559768 --188097545 --210543986 --937843926 --195556510 --941263892 --482883876 --888351629 --558605823 --442393476 --441346263 --695693838 --937760592 --531813443 --878391266 --533760575 --873725741 --874677962 --259581561 --728148896 --989561707 --901790656 --613276206 --37307865 --769503055 --37378409 --345935789 --487220242 --810311046 --779393919 --380731599 --910723117 --194218759 --280973692 --329595381 --699421884 --670675802 --429855603 --410551186 --64961896 --752358396 --22615442 --158925512 --634979177 --847044502 --27640734 --542309133 --427839480 --924385951 --436474041 --774747756 --318946609 --62350310 --404493214 --694058139 --234828007 --792234111 --208264861 --516077617 --599187051 --165365148 --256925306 --56016691 --458310081 --617102628 --142256871 --748084643 --70269158 --687313002 --295053786 --950783544 --627480845 --835959505 --214150999 --680201527 --826231724 --332687335 --170574250 --770980092 --24900054 --18652373 --487524663 --809814494 --140719656 --996547803 --977556461 --439995812 --205919119 --617282251 --131834643 --66919081 --496184544 --756477519 --475354086 --699848363 --415023695 --487261012 --812358480 --449651304 --360247200 --382550737 --265580997 --92754361 --931780585 --133060946 --726327992 --915260149 --212129684 --49162516 --599036236 --729234314 --677878588 --398090608 --842187770 --247823658 --690266989 --857962070 --247467318 --756878767 --391388882 --580738110 --583819400 --756545389 --87795547 --193571466 --21030091 --99037867 --541044994 --240758631 --860395306 --80983883 --316323461 --704428522 --365205772 --990815418 --187981052 --573266446 --784135674 --773561572 --229610341 --589942808 --530137110 --585779103 --535821770 --968307970 --163258440 --914357414 --401271764 --146708085 --963631648 --455650977 --794744764 --675095350 --588404098 --776476160 --439937927 --447206319 --926904688 --160977189 --332848605 --234769465 --493186919 --513429574 --733756687 --825464905 --747866792 --939452959 --138192093 --29651221 --611354710 --398941607 --830221301 --307541283 --45507082 --145485682 --32121355 --416859200 --348697974 --220976543 --517672621 --564759186 --255768798 --7074324 --151563246 --461840011 --206189916 --4350295 --729590227 --374663101 --188871327 --676250510 --618226189 --786686512 --676430209 --138180905 --917661989 --734833679 --404378931 --559073805 --693978097 --517965867 --224751398 --579969439 --274001059 --832785480 --982762937 --607768064 --930576278 --849131649 --603974405 --38468361 --644275792 --451541763 --876238844 --304053129 --756716126 --847162160 --539367846 --374739225 --820980179 --485834673 --559793707 --621420547 --34778668 --926549500 --202590424 --136548616 --267781894 --340087763 --265823314 --274747683 --743522914 --27948390 --135046753 --530926049 --281869022 --106822080 --128041168 --807076897 --933330842 --695133789 --434586791 --127685047 --678839886 --233968612 --650210596 --2289771 --724892438 --861919262 --147117066 --409664086 --675538810 --284568090 --1382906 --387659958 --207669994 --374083444 --527468775 --45342214 --886242379 --302935040 --383770899 --597323668 --773901457 --86085778 --424809259 --443645268 --392069593 --87774895 --580102070 --727915533 --874810949 --466332233 --69483093 --422646319 --683890885 --814013864 --868161203 --707458507 --394274556 --792743780 --573429581 --953619582 --683188109 --326875053 --12216874 --662231370 --297984200 --118268979 --554849123 --992439672 --859212258 --35751251 --850507225 --823388538 --20429006 --364992114 --337888363 --828444696 --611585427 --438770474 --979316458 --986573404 --108036201 --77969064 --914566475 --670888058 --109910960 --754839495 --28151822 --315287931 --482003747 --836213837 --873477815 --690275647 --740320672 --178673424 --782966760 --961484599 --863460414 --2559934 --423153006 --381636016 --373038683 --725773646 --478353263 --715562315 --742228113 --884674985 --915502751 --341939215 --415235541 --394810071 --668964559 --419958921 --976740922 --979991560 --337819200 --376565282 --710928947 --293766579 --509130163 --71430677 --810558225 --525312494 --587737302 --311502152 --106403105 --610166592 --905255498 --366401000 --28390680 --888980631 --446784922 --239717535 --279677115 --244284709 --789767196 --230348540 --847860782 --343838374 --748738639 --413455216 --935825304 --523065903 --587911322 --969585688 --639568385 --516101467 --421985919 --758464453 --174273723 --516899839 --544968271 --324497354 --745212977 --618936408 --558478686 --745020935 --807121101 --661225908 --678063272 --928551396 --900858612 --751871619 --593983892 --171897492 --860722004 --444631861 --877154850 --25220274 --849764844 --515987220 --658985426 --559021069 --782707998 --907199928 --402042195 --19964592 --122586083 --190134818 --988609178 --944824074 --573741664 --779720784 --40694055 --92648759 --727902002 --28634920 --43717581 --4813228 --105658642 --708686225 --937274645 --177659220 --31217755 --408328100 --423865684 --757261199 --791155334 --832998147 --691606910 --27230443 --725928919 --80729651 --197007542 --244144429 --42775722 --445941185 --467860980 --211312666 --354769293 --343568558 --137106095 --734045180 --756796558 --312179887 --458681074 --942362993 --891092904 --822102861 --740131199 --502653483 --821351115 --478682480 --355201405 --735327933 --839891162 --221465610 --204984305 --912069805 --967711155 --448801650 --129860776 --469009272 --203732772 --249879354 --311896103 --466482022 --125517654 --890668428 --553101165 --693101632 --471022650 --238591986 --899581433 --818933025 --339445103 --904595884 --51301165 --531018982 --542144807 --452195208 --977870525 --274680920 --557486803 --427976357 --308311664 --727326095 --497099143 --143732289 --246676975 --999183678 --219941956 --261836002 --93427019 --307502134 --384175024 --982983419 --752492555 --635558243 --376308067 --13944039 --743858217 --458099739 --542392044 --547159786 --345350190 --224599534 --773420293 --323433494 --642380448 --393985239 --76809771 --654909031 --855084601 --288301022 --818393558 --185946439 --247500209 --273163215 --133573469 --570589353 --872062372 --397679933 --68487553 --442689499 --704598446 --614259710 --622958183 --863087999 --160359325 --878386539 --344430461 --674412415 --198645905 --368930936 --865183140 --963981763 --306735379 --814139328 --714638423 --385159422 --429689092 --512199779 --331887976 --581886583 --273644157 --626636724 --356743477 --833980463 --535457178 --182293963 --397469476 --154538638 --242747028 --732933457 --967017758 --706601674 --647327918 --641485025 --227675143 --259860798 --778762588 --528049481 --626140576 --877818775 --24856877 --87164485 --414777804 --908164377 --474190350 --588217609 --722962445 --367813600 --74078295 --855294227 --809158141 --902560053 --403047578 --121881890 --505208263 --645095803 --543747454 --241190608 --370097050 --204981009 --482695162 --21435368 --120517835 --360727064 --564076075 --25266460 --866667280 --899295747 --948114219 --87403130 --832042096 --510123658 --70912165 --106547877 --120227661 --578919755 --332338083 --927889379 --498846720 --536590249 --470354933 --808074868 --110841869 --512200882 --300462932 --510376381 --450835722 --970535676 --6956421 --164172202 --752851415 --657867795 --174878605 --865695628 --211244971 --770789869 --394121173 --358343730 --815140812 --251656133 --427735407 --463298241 --742208611 --809353067 --823513671 --115492901 --989613279 --940215877 --518235463 --911558104 --643648551 --596155965 --912472169 --771409884 --701734950 --926607765 --660068888 --713515681 --656460650 --201063021 --491219634 --686338246 --478262008 --150197671 --781857945 --871134768 --692104736 --131643995 --773385860 --458866711 --773168090 --366762923 --782517663 --400667844 --732707735 --914078797 --615620825 --709364977 --310871295 --272792361 --114156174 --772508029 --296482445 --104754945 --938226049 --767748987 --221495522 --798666066 --359961094 --943895566 --513702538 --558497269 --834071008 --787756625 --752489309 --361959497 --497390613 --588838915 --832452713 --219625741 --517705228 --493484575 --674341115 --136215885 --270979405 --162014548 --675256503 --368756968 --108523869 --830546908 --479613407 --802294850 --105974019 --695373926 --398344625 --447761698 --165778343 --753578738 --478216384 --725330558 --232210464 --187272335 --2802114 --181934027 --548131383 --467112062 --264900657 --803053866 --483815595 --146447018 --623368834 --739326331 --691096236 --848515078 --411770830 --776324185 --240444843 --327466205 --300322797 --470274571 --783532267 --794189107 --615245740 --38069332 --253649136 --486410250 --499100056 --117245855 --271936942 --166087456 --82301738 --181601533 --970882545 --481114468 --188434960 --423155867 --430196369 --994566594 --622752371 --234639614 --77968549 --647559131 --968330972 --117220062 --13266134 --856209366 --511534986 --617226408 --984795198 --904828733 --825528330 --455302674 --842065178 --260991778 --152047465 --664641405 --510819149 --668012513 --176436173 --70268829 --245414342 --272963986 --515122525 --132459686 --730348520 --772813766 --173584304 --594540221 --919324891 --163634266 --132628378 --861139738 --551534156 --591985207 --876781460 --60152981 --948702041 --29993181 --595224239 --837389139 --824866689 --297737810 --327523542 --54680005 --932239595 --231470603 --459410395 --577265648 --984669211 --977080610 --698510742 --891503640 --266656360 --62372887 --727476642 --347596620 --136678068 --949961079 --647540300 --860606114 --365226394 --566183537 --977008612 --261493770 --547583734 --413934835 --220940138 --783642457 --274432435 --671195516 --484596783 --783372237 --281627211 --673410388 --234813833 --121231817 --932261619 --48130818 --24068829 --729279297 --134790620 --345785640 --592541414 --205851340 --146844019 --613267432 --858508785 --228950097 --388174741 --279310339 --334836178 --939305242 --169425521 --200437158 --351987830 --166197482 --284081216 --614145287 --589273917 --410697853 --97015424 --107382500 --932177804 --981904497 --199148307 --865307736 --692367687 --629932325 --285362428 --473805745 --503257378 --568311574 --974690988 --347167946 --744850740 --312393121 --450457469 --207687757 --397360873 --399602979 --678594021 --193262928 --309689913 --162897951 --567528534 --12458316 --422764193 --724841511 --984481056 --80958865 --745761421 --908224057 --640326551 --610062508 --929016183 --104425458 --120085768 --754756294 --679806891 --513126845 --812700192 --931331075 --52751245 --713896299 --969085979 --302340231 --50412231 --367948577 --725633368 --147514219 --201616883 --171442924 --737037305 --142110761 --15606533 --923649099 --564682252 --435979529 --395663308 --382884426 --423111127 --979174636 --294736800 --20003832 --378402282 --855544888 --731155459 --903041429 --899105285 --805006023 --66627134 --56983580 --446936071 --616287908 --842805925 --764489795 --361365044 --590143032 --618250513 --815173794 --811355255 --375591737 --500048325 --710241331 --950759224 --537417189 --961625051 --655560785 --383485454 --112215942 --952837831 --600026509 --430395872 --6719737 --116500819 --44940037 --67356227 --105345532 --297892274 --199104778 --613982680 --779654513 --576659029 --866363228 --789405125 --85105850 --446748100 --69492837 --867198624 --662908779 --420861235 --226589040 --659000970 --214711660 --192596323 --230229563 --556548765 --781483349 --64879362 --551960246 --591404367 --592200656 --500130574 --512002225 --535001730 --898479359 --215716412 --38759756 --338869214 --890947892 --919967664 --804161845 --125294515 --257486601 --591501762 --636710423 --487764192 --956528678 --605693053 --505720408 --793179502 --274462232 --683194728 --62653454 --422633260 --999108723 --955451194 --122868454 --745486559 --506434939 --179953660 --597223883 --32462931 --540641073 --446645080 --992026748 --299454458 --649026616 --42955258 --793085210 --246630500 --898356328 --676728984 --878411464 --279516928 --921162792 --212517411 --327667860 --766681449 --890309966 --140631520 --267546680 --650641722 --804700988 --288097130 --248821749 --891446973 --485809784 --705430955 --192278124 --622206053 --740263905 --838688930 --519465213 --955971011 --326615067 --279448790 --973194409 --966708878 --885633366 --654284924 --470167535 --346973127 --154143410 --986957503 --540636257 --625643603 --191004651 --814557234 --831171410 --802185376 --92683599 --899644903 --149673694 --313617711 --91621480 --394013697 --680797427 --761554970 --384349543 --268764182 --299399801 --830708886 --245182565 --613226837 --881250306 --115063553 --359868449 --976188938 --52852951 --824861479 --188631215 --366598687 --163143183 --790773084 --918830122 --534912150 --642767092 --13420306 --771938179 --319658015 --553018266 --672288729 --939150394 --912162841 --145382235 --13337918 --106318962 --682878678 --503558049 --850199693 --823980764 --234140864 --610036778 --709624891 --930827822 --766890902 --659784086 --447289815 --818557151 --455910666 --600839170 --31194848 --252558324 --294422173 --447686471 --800358673 --486087162 --265581480 --677363383 --44623568 --995760387 --235228597 --476159140 --486349422 --361824075 --649028137 --361800277 --397730299 --751391663 --476951733 --329362621 --363355403 --376939149 --455460711 --723825045 --356239067 --972309743 --604170253 --568462662 --835115050 --262625036 --846241919 --876632022 --658109122 --399943889 --890791694 --688826745 --805007233 --905706385 --585880986 --540532851 --257206726 --258192278 --771845445 --842292130 --493692324 --649833540 --701913115 --410189891 --606706408 --908256085 --944901597 --189707218 --687596554 --223622854 --624985663 --484503814 --826391871 --495747254 --752911457 --895962800 --67337391 --801838824 --27352413 --389634679 --415967208 --785406699 --585392019 --383520538 --210537596 --596294920 --483987191 --701066736 --154906856 --503273132 --915638178 --201036366 --8931787 --897991804 --350127776 --22513988 --817337086 --844666380 --252338439 --597925045 --193928830 --824596130 --150384385 --144675431 --396481377 --153693673 --874003244 --712420688 --626068475 --42990978 --431297706 --619897567 --274241088 --642181503 --247191673 --277882304 --424799312 --755375135 --465415799 --993439342 --462910478 --920397101 --281246874 --812842859 --631622283 --69156011 --347226285 --940710251 --396262081 --18314163 --17451248 --629016421 --455851965 --635009609 --223534393 --247320234 --128854205 --850456258 --121076939 --722335666 --331682772 --260885146 --120632150 --38213993 --515648432 --272856699 --489863253 --610131945 --34323790 --870918295 --819421680 --857571221 --181367623 --140581573 --931200858 --99492215 --948928070 --541774793 --275673570 --270874273 --361485746 --106904996 --626424459 --574249750 --610721631 --261891299 --668414668 --139960115 --899464867 --840650730 --942509572 --81207556 --308778362 --518032830 --810720442 --456058054 --475551940 --686946528 --66685757 --515697764 --277479904 --241651704 --664499111 --258624647 --298306227 --275409770 --36882147 --573361053 --348347993 --184534185 --387776189 --612516271 --399637304 --243142193 --599097999 --755984897 --214132799 --15609724 --608665795 --345609691 --541727956 --934193168 --718875030 --409117236 --268756280 --924366537 --485477654 --26059961 --30034039 --418826041 --848051749 --252145216 --359130181 --594611377 --93431731 --972263826 --633450907 --982198838 --342760466 --450030569 --974834465 --280873890 --797436271 --825644478 --991264348 --359789029 --997062807 --913260588 --948890345 --60921828 --889226670 --842037099 --956280288 --136817700 --730286949 --106237772 --158472432 --472087247 --644927930 --305169696 --135461467 --509302964 --178028201 --215047303 --809904892 --953575610 --450740121 --684110641 --341896880 --710068309 --180756640 --400699526 --357575210 --952052717 --623290370 --584877499 --526515675 --268860270 --370475723 --674422025 --444193350 --475480535 --598403092 --768515560 --862050542 --392275168 --377634743 --12032767 --839100011 --40508812 --877903924 --393892341 --751310243 --361099064 --390447891 --450694624 --844893707 --650211568 --210064302 --446593208 --658343338 --666671247 --572886536 --844768855 --913249584 --367882386 --760752627 --62879635 --686353055 --722803985 --530580456 --37493521 --580900296 --344981819 --26286775 --238166571 --544854259 --478048343 --191194748 --71330404 --373028135 --802815826 --647305859 --161789157 --740184870 --535479954 --284786665 --640644587 --26084197 --680417187 --31823605 --416524292 --9678710 --424673748 --56576705 --229375399 --376878449 --709793709 --858478489 --115829660 --272289152 --210917901 --786616178 --370489128 --392123810 --720568286 --100097788 --992572867 --465962560 --288804826 --101174104 --330872379 --821072544 --356500678 --850547978 --258723985 --600762929 --146339329 --194420180 --860402007 --868580526 --92052814 --808918576 --148085447 --270506952 --339158964 --22504994 --30508712 --302557141 --397978444 --810592735 --189043740 --814986225 --632728489 --491971713 --926988879 --119786360 --772084117 --834384465 --486316651 --43496644 --36261057 --295119239 --609731346 --151432424 --451327863 --31030394 --115066896 --60918617 --82183245 --113285126 --339154057 --116973244 --331211686 --112541395 --252464735 --580269059 --202373855 --562876926 --144919701 --745732190 --57052572 --16494758 --76253178 --972331438 --400345221 --128355765 --414507767 --875710772 --583021184 --330613206 --871158485 --436220719 --222552630 --472280331 --142664362 --966125495 --488249848 --215038730 --848175355 --487257693 --386922950 --716945625 --789894750 --646468972 --368720523 --283207747 --729665048 --527152759 --907483792 --287788509 --866567508 --487549796 --833123958 --351538827 --454763435 --740715920 --221508227 --249676025 --99684967 --262504648 --879935269 --852071917 --293669699 --781858008 --939225602 --671284483 --500555914 --557574195 --984311521 --733499692 --503748657 --862001676 --60680677 --343647802 --963030791 --45131836 --881324117 --763897803 --12991451 --762826778 --22783323 --88557279 --59282586 --981136398 --336511389 --923642038 --169007546 --154352131 --107671680 --845441455 --891640016 --454515316 --246167936 --859528425 --850030064 --206034708 --389199829 --976953500 --740893590 --837113906 --324701040 --767554868 --712998597 --571772410 --808722234 --894628778 --450399411 --274741839 --390072278 --163354408 --280516963 --762832468 --6948180 --164115362 --962223809 --654949737 --8790220 --640763198 --136396919 --357159292 --779000415 --466452717 --69809722 --957869231 --745487400 --439117444 --645967935 --230005553 --832029106 --283597162 --499222846 --638451912 --265179278 --766436030 --816086743 --442492977 --381943092 --134160914 --991803405 --803906597 --922289638 --218125041 --878580720 --103695387 --692345703 --304705928 --221252848 --650331047 --343189729 --55892750 --800146600 --977108247 --374627239 --876464499 --353660268 --533948344 --973005326 --170264107 --623943080 --284333755 --512091910 --729527917 --492755872 --754144169 --845402953 --875012084 --912699389 --56446095 --649586669 --286496182 --70776513 --629306868 --193200810 --914648949 --743034681 --257552668 --911849548 --959084459 --276818752 --240357730 --251277481 --178092967 --809429938 --57105912 --11338705 --504807384 --35517038 --841194693 --404177413 --26062236 --39504510 --515762038 --121880672 --875355543 --966557211 --484742757 --34457752 --694911090 --843148362 --94432414 --711495609 --308774982 --936000537 --73483252 --387603942 --919272458 --171384627 --234938080 --131497098 --267775408 --248325278 --118359987 --11626416 --868275561 --933498082 --804763651 --935727585 --875690176 --553873802 --650684474 --519763596 --145855295 --118812120 --919696990 --80918965 --862896124 --214237285 --343921583 --179907771 --171977611 --196336315 --523253878 --414944228 --409939740 --41601668 --539071066 --233729461 --366994183 --617618770 --249816962 --827476941 --647966501 --735699463 --918974289 --502470648 --529871846 --31106781 --870868033 --610394506 --440317474 --720742926 --128531733 --618127275 --135330658 --23585744 --261193152 --172724030 --855519437 --388980927 --629970579 --942944271 --76007657 --893436829 --895577890 --920658345 --273326973 --420130724 --248871218 --239616194 --167737837 --536614623 --478969972 --376413951 --87668779 --269056093 --121062929 --98059839 --291757274 --279686254 --839868205 --926969813 --692424931 --172669075 --461906272 --191751039 --551938534 --303150708 --149935112 --648829136 --353310069 --402798281 --361743752 --910904830 --571841200 --644922265 --909913955 --637567438 --128130149 --581503975 --592682666 --554238028 --772575462 --435237245 --940099659 --444646514 --414712440 --884280517 --995194230 --466798073 --717383556 --999859009 --925010584 --352166508 --508979904 --711183593 --237410025 --562174055 --365133425 --876787614 --933253400 --765827889 --512400099 --896842089 --14273882 --755703225 --36548059 --934089432 --656527285 --905579073 --690055839 --236818322 --716231986 --16001497 --400563215 --133362646 --278783784 --274535546 --22499383 --354480832 --409778668 --186766293 --140170805 --442153971 --378418316 --216084888 --222064448 --703231284 --717235052 --233389203 --233930467 --177513305 --109339298 --308517500 --152531251 --954228487 --416114379 --684371501 --384567474 --579081141 --569430764 --604900976 --214482605 --888184252 --218625635 --317855696 --639486813 --279559968 --198255119 --870064550 --324859571 --781923838 --801275249 --552682044 --615904894 --145980231 --385530348 --791233757 --959416362 --834321287 --641724279 --520885622 --105349724 --441726427 --458723873 --295327436 --154889292 --929109719 --215028415 --6694731 --611781035 --513287013 --829874560 --808261315 --782340153 --120249906 --417700937 --663660570 --400013460 --747475752 --940938194 --107782271 --73988052 --430913226 --473981201 --361151297 --726014696 --444068509 --674192809 --845490803 --785530679 --763862645 --870438886 --234099648 --549789085 --218627638 --334604575 --182816909 --462592283 --739370115 --160048217 --754762487 --406676172 --33162016 --822775272 --741146211 --110088453 --606225068 --993924623 --749005055 --395769337 --362655960 --655482465 --763657298 --411392047 --396769706 --36665279 --108605279 --308745484 --810861257 --65184704 --255977826 --930569523 --490931221 --483589921 --816046212 --701682104 --985996088 --425590865 --392752727 --46818384 --5317870 --514780438 --180366563 --779761933 --369172631 --493053562 --705133472 --523362624 --786431159 --150117723 --170128678 --821581966 --322624443 --612815737 --788597735 --380885026 --933927584 --163660784 --650489198 --318935996 --56876945 --279429878 --328196154 --80560115 --781633379 --837945015 --193263085 --527910568 --757000997 --122486047 --733550020 --535046430 --388496789 --784390250 --775381469 --846390414 --399140265 --567356491 --155893408 --630497979 --737318627 --613625739 --773455872 --192002335 --407100408 --439721404 --623330306 --228634573 --904490697 --199203954 --558543947 --770412131 --528967712 --373968294 --439919169 --520874161 --682041717 --359250372 --572740352 --944422129 --845083413 --954381768 --662388592 --184072874 --833110435 --411728805 --131769032 --868425079 --631611799 --739001399 --988166712 --641186047 --537080810 --60547895 --323224725 --18256217 --667754708 --930709569 --44210100 --565100518 --736503776 --498051367 --860192819 --806332217 --375101454 --638276062 --632038606 --999144417 --648516606 --226987801 --537019942 --332717792 --920765266 --313622216 --188047482 --641311908 --821222049 --982561874 --289355602 --916313385 --412339037 --638180628 --296037794 --88289433 --509467415 --263550785 --376642055 --955488394 --582913426 --995128964 --440067463 --473671369 --675719144 --240119852 --553497798 --127953766 --305835032 --334042729 --588700705 --351077391 --827298665 --160774604 --592277085 --191488451 --712571974 --934566018 --290194278 --872093847 --666039668 --248929630 --630964174 --981706556 --184005959 --838835005 --988466811 --45003692 --733159622 --738697331 --700471742 --158972334 --822898204 --337719413 --197773921 --884992735 --772460397 --882960618 --851316842 --704533015 --749755920 --672273129 --92877763 --264154481 --712260577 --997630937 --665190406 --532882469 --88400754 --984038084 --449282039 --538686863 --38703495 --453815287 --502743171 --423099991 --291984511 --648725107 --17575364 --706476282 --963980688 --779393761 --321252323 --471754110 --877941022 --313815352 --867215232 --172548967 --768253862 --300669808 --526607738 --231654250 --889429893 --448649612 --446532926 --528530723 --312336003 --799081916 --839132432 --81208944 --996545989 --964971171 --444885061 --126148436 --678428914 --510830243 --738049460 --578003167 --166496544 --226369263 --997273407 --467684315 --376693727 --336774630 --400809490 --143946946 --797285600 --364726855 --993056813 --198797010 --723398754 --490081457 --111500416 --646945587 --9502539 --363374082 --926061079 --323773331 --323805448 --690622976 --117002798 --945955917 --865258642 --119582097 --253388875 --544180470 --941288957 --23061151 --692109114 --854218500 --965624589 --529277740 --595582991 --713621867 --899382502 --814485168 --20401163 --196595104 --136023655 --541122420 --434854192 --466262682 --311029960 --891787241 --356628015 --585057661 --902417657 --576565841 --524075577 --949321633 --881177509 --432533738 --753689501 --119800472 --136668077 --650992203 --891724014 --235093355 --661801781 --403955818 --286989926 --273909978 --786208881 --768478966 --951697590 --706404705 --448600344 --366780872 --774741753 --102332772 --178323926 --722934183 --27884102 --912892919 --189159982 --244436838 --653740018 --412176102 --763060855 --327975332 --709139755 --402700987 --103046887 --366427073 --182246611 --307366518 --765483710 --411625270 --410420899 --911433495 --275484154 --67466884 --98439792 --378653308 --834058552 --986557224 --437018673 --653058893 --323060168 --974084277 --416401152 --462638909 --234429714 --677165060 --758734806 --424742019 --22232121 --283119218 --828356316 --196935984 --196688416 --938949578 --300865250 --139680825 --973644270 --223866530 --686558471 --671012229 --222962847 --523349660 --691585928 --976235133 --857076334 --268896588 --376035729 --524010162 --121346609 --269798246 --551833772 --413566307 --121071276 --918378633 --835480874 --44458330 --192728081 --417390592 --295233928 --929710011 --629526234 --782896597 --55767589 --110588910 --789210457 --449977194 --687087040 --868144281 --365157731 --972703979 --790565986 --170977468 --784163182 --923182088 --7926539 --564757591 --898745447 --57481136 --162727228 --814846020 --902105372 --122490487 --872075652 --472190881 --881893226 --976631292 --741752527 --659534435 --824089263 --522278529 --540628715 --726628298 --685749752 --490260783 --587190630 --439843506 --324791136 --224878656 --219642381 --853259887 --661904167 --153609378 --333887780 --805366029 --22342054 --144113015 --990446934 --163041305 --33691673 --842921123 --517933075 --297679653 --672139429 --961178940 --709244595 --412018014 --564226732 --310951030 --87513464 --225977915 --681298003 --926993143 --528196775 --939671760 --278608466 --252959165 --528462585 --268527730 --843137434 --951002162 --305988101 --38604548 --806709504 --359782625 --345399073 --682332761 --924662715 --948174773 --748630015 --507337547 --11209467 --155339197 --704321455 --130737108 --114797130 --150876030 --719821203 --209721965 --771274303 --803926433 --72362556 --726005105 --49059761 --662780919 --40201534 --16459918 --839716110 --569224746 --614030103 --958937880 --794804720 --724807865 --388456657 --811804996 --303734805 --533172084 --352409742 --955108064 --978071840 --760210014 --531598336 --606494215 --772397852 --360290706 --738262375 --749864534 --613469250 --312062738 --659274542 --207968305 --259387395 --995765810 --607370867 --585046191 --578263460 --839824126 --10414680 --592217896 --228557719 --776023363 --875117667 --397116147 --754485768 --458215162 --879764435 --927308126 --78978768 --758044147 --936505369 --727529211 --242688184 --907577925 --675194137 --503988438 --939300181 --750500194 --166916647 --256864361 --473260613 --68700548 --720512276 --922296651 --264979871 --584716990 --402223200 --4226107 --81816969 --278838914 --435880777 --712663401 --825703283 --968158034 --632886393 --649223906 --464825585 --438693921 --186985066 --74192645 --22510068 --532850918 --144059396 --749341262 --14540756 --965616812 --416740390 --348819818 --493275346 --653539831 --481256364 --304344949 --269299710 --280246629 --329739691 --627198347 --904919883 --107174732 --29515534 --938399135 --374601516 --740025014 --332833464 --987902632 --657316441 --529206072 --285785304 --379260407 --917423634 --135793988 --421324604 --325724942 --555589563 --439225326 --280737820 --677876858 --878313320 --386636330 --18695096 --585211974 --305229567 --856180337 --517304213 --959291667 --178227646 --318096001 --417293590 --488616126 --262439822 --465880623 --257960704 --658625660 --225086253 --985194558 --385524441 --294294343 --489838406 --454307106 --522973889 --962880706 --99179209 --454703996 --402695997 --887912161 --951038336 --394692965 --940023027 --101327969 --672818289 --898290960 --859457073 --876625148 --120835039 --439259190 --203361359 --252320645 --690148892 --577178609 --701177737 --463098320 --58555798 --753172131 --947763012 --743934725 --256553361 --441242142 --191042671 --545677958 --92857558 --40564581 --585428868 --643845438 --65810576 --927198696 --882645309 --614838610 --2385375 --227206484 --965919978 --702398274 --342041584 --632100449 --560191592 --981359314 --772888268 --727384800 --497007621 --469799544 --511860422 --636410187 --765150476 --786995947 --464341874 --848298559 --251614436 --361374343 --895574584 --632336979 --924973922 --910881685 --207262971 --122633605 --103360541 --411008440 --603627413 --796345385 --587514061 --460490498 --643680378 --769766650 --347890707 --305188969 --255146698 --648521270 --401186824 --217499509 --29262828 --194333124 --958556795 --192157605 --786357944 --839239918 --288420407 --340966586 --115434677 --407974591 --764418352 --956064822 --193205049 --34264232 --927538626 --31552978 --717961032 --496577282 --418895491 --942704813 --250404754 --730259560 --665346564 --46888378 --250913549 --824900496 --877946259 --282729797 --831920187 --90268076 --172491472 --106005038 --324616244 --952525311 --224377495 --45467658 --937085898 --620834138 --124770989 --145500253 --485577361 --408489421 --392178100 --213562145 --423766525 --907421544 --992270295 --908493940 --196409657 --539617667 --67937934 --802908077 --238708272 --627833597 --592858083 --378457152 --635178783 --966275110 --552062611 --101292184 --483645838 --747743594 --524543136 --651713025 --118832799 --61459516 --799695248 --463808511 --230915536 --520148143 --307501790 --323821966 --359078098 --447627733 --387413520 --49935212 --630271385 --405390076 --11718738 --145293957 --205834853 --810032974 --636582901 --875457055 --660360940 --424043122 --927217873 --829628920 --267617222 --107229296 --825046858 --98308464 --450700700 --143298922 --658203398 --917826418 --896469771 --940892497 --927998159 --148556670 --503331304 --10119623 --132959873 --364923676 --416443414 --666394695 --157287249 --915885869 --179276808 --752449618 --934123641 --674297453 --180176524 --638505861 --388936678 --253358516 --202868578 --840202879 --720693896 --876927495 --102321755 --597733373 --875532005 --948763626 --886205822 --124512896 --114015897 --21019529 --947624880 --83828249 --620187378 --764666904 --748080776 --777525089 --84275276 --501232054 --370287312 --157132342 --612624033 --184097554 --149056358 --944476755 --167542793 --117831758 --73292986 --21847997 --66004546 --717696082 --484613179 --382989826 --374240885 --427939125 --237079870 --597785641 --934713051 --931638072 --83975665 --385091042 --951065604 --597314332 --412022173 --445054520 --40208408 --766671330 --510595394 --293289664 --798435926 --773030825 --704380350 --407016082 --3393043 --557293358 --328692197 --135000665 --182544933 --895419861 --469015431 --283336942 --58700103 --415527601 --751937710 --587315787 --50805400 --349953872 --518803461 --274715385 --264332293 --211653403 --848921797 --560656136 --466223233 --323274151 --387480417 --320628359 --281525028 --120352516 --995074405 --127819153 --608980962 --509284616 --867001012 --554736743 --380241929 --430053408 --263177253 --413613735 --667890294 --26546205 --488040672 --956301885 --271751816 --94586320 --695598354 --886657630 --900282302 --552805558 --935695654 --584366434 --87094366 --841340050 --571878993 --107001491 --724570716 --915657261 --284983567 --851817860 --208998893 --982539477 --688231733 --810820621 --717599203 --691310729 --114891598 --69902735 --561917065 --338345543 --572177896 --288422210 --311217524 --69576602 --425340471 --371768629 --38198572 --102322298 --856113989 --704846885 --506852427 --523389578 --353210904 --93163378 --122982119 --31494389 --461054266 --429527215 --623607165 --492974295 --369229947 --3879523 --442186071 --418175960 --165028413 --734207562 --360011320 --530611920 --117987157 --858702234 --464233751 --433262515 --546444019 --427944540 --662916294 --568952193 --48550596 --411069047 --152486221 --139405936 --247376223 --433259587 --311702193 --421844553 --339084592 --784416992 --509308373 --269188721 --320440232 --571603474 --148449253 --906417968 --947439311 --163696318 --410048862 --412341945 --82407115 --583657549 --18101471 --524729388 --242458103 --952493667 --703550152 --301697884 --304962514 --847633405 --187059047 --608529268 --181458571 --906771930 --357143243 --139032993 --494547883 --380835699 --967734322 --157931158 --6294957 --138888877 --641457621 --61820060 --703447479 --739755474 --139156794 --204872567 --554132462 --880488209 --10861916 --419009124 --188508384 --700895574 --235351288 --48688101 --630574336 --960603899 --675563630 --569179049 --420523760 --487458572 --814267469 --51553522 --569462847 --648104847 --133820436 --698718998 --384317488 --294875772 --161269857 --893629043 --46434312 --807633589 --515938487 --240313065 --316972440 --461657089 --939937330 --359004904 --243961480 --544578050 --279272566 --362811971 --406060917 --666755525 --358167109 --355304866 --63360196 --27463809 --852304677 --23796336 --50720716 --888742775 --967091203 --502918446 --273203154 --566303698 --559033181 --634452726 --471464787 --107626593 --897401260 --208774084 --500716700 --107328264 --789640292 --486637542 --493392188 --499478995 --178252885 --129651836 --472688660 --74645502 --316119605 --19788525 --528910921 --221177048 --812487996 --801809242 --110004799 --941323953 --57831668 --276580831 --826735179 --991748215 --941525379 --437677294 --868998301 --898955728 --267653375 --523028644 --122727101 --455833582 --350891403 --738571494 --264212980 --765032250 --432291220 --196707577 --477850441 --422533932 --529380458 --618424867 --593389459 --891263908 --356731375 --858694830 --36209225 --997703990 --279130848 --377712761 --700555321 --440864193 --960959755 --681519102 --364794117 --371666944 --988219433 --165097871 --982562504 --749152181 --295311555 --663574462 --704300987 --421875127 --456372532 --572635155 --670322120 --999073830 --828942894 --265063124 --481955497 --307101350 --887880294 --977102277 --938833472 --306976794 --388010432 --709447191 --664051096 --138917434 --984124631 --901745859 --565382865 --487046446 --735820942 --399075834 --603122761 --95477080 --220691047 --464541154 --966847157 --53694650 --300454638 --771320039 --980323813 --844740907 --424309057 --354490255 --557195982 --668503527 --437919223 --559932075 --529921443 --697295602 --679381746 --975230419 --652084300 --191008245 --745248969 --611682069 --584626314 --455278690 --7918513 --361013474 --776831322 --717181125 --683061703 --345175158 --453623050 --697883866 --636887052 --497380711 --628530358 --336861 --530104683 --746819292 --710183816 --355575206 --348386508 --549784149 --475424104 --188429671 --688851122 --330307508 --563721064 --784601554 --75109225 --41267587 --560695294 --229781973 --445809865 --485921550 --301736522 --894638579 --958977179 --162383360 --955492092 --704356831 --370755454 --258952 --409868090 --672138868 --704650248 --764879809 --84061718 --88164380 --98038707 --496054476 --664226653 --38021474 --788955787 --594150219 --160159697 --788617731 --92514836 --416371387 --378145807 --267802018 --508833598 --531374918 --521630731 --571597959 --510046210 --243108738 --815753801 --391322214 --68341335 --996127132 --61654611 --85325976 --770774787 --867934360 --266691673 --840508115 --100061516 --286613527 --316915478 --882551050 --387339085 --805018215 --273229153 --513522466 --414524500 --437129038 --678739620 --257457123 --420449129 --897735081 --196813433 --509319083 --665460349 --360140895 --618911968 --24934437 --819638551 --303422648 --568073669 --274563192 --571316691 --595536915 --407617518 --406479143 --933973077 --694648650 --941929108 --307447894 --547701950 --160603622 --344598899 --147754464 --143124835 --341178226 --700957681 --530028422 --162324472 --117973177 --160264201 --41526347 --38564484 --996443877 --110098130 --690216805 --80328633 --307411673 --495550983 --203288107 --31657418 --203762105 --227832920 --638876993 --212614240 --930196512 --323462723 --102700716 --774629829 --126448249 --844033804 --701625369 --487366674 --730620748 --38393222 --114454241 --49561933 --978878710 --292936235 --49101359 --297287941 --318556296 --326845941 --751767738 --487958941 --888924950 --255208427 --140293539 --977586904 --45431382 --70230885 --347727075 --233107154 --813761050 --408433546 --912799341 --513154093 --724742108 --701074283 --514403248 --830059427 --386677808 --928978755 --662797624 --529876490 --964721039 --341757561 --838474471 --187140721 --836606852 --587633632 --41519042 --807344951 --950719710 --864788946 --522880232 --65483675 --785781487 --138572857 --652951184 --912469912 --708415702 --385674510 --392672997 --958867888 --827293880 --930888122 --556580194 --585640088 --477799073 --656350376 --590823870 --921982072 --633281326 --244055402 --983775792 --853943270 --498201926 --297522405 --710023448 --797243923 --776165541 --769064334 --685836690 --561702311 --614927908 --241670680 --194722867 --219706791 --559183094 --335181634 --827805785 --485226518 --580457401 --832791154 --951335846 --499660007 --228128071 --904114877 --712919681 --257913979 --994056691 --305627136 --151252720 --863006177 --824234420 --36406897 --602155839 --702238917 --363299651 --471618249 --643861468 --935492366 --726423661 --116677411 --847338008 --811236402 --751155 --497792462 --960159550 --352515618 --54853224 --540475508 --774580285 --7310246 --126134168 --649324133 --89258209 --532543040 --795475984 --121558751 --462820170 --406828672 --567369705 --758545778 --684880988 --359517444 --808222149 --652146776 --429770358 --116242764 --550942430 --168572321 --74809887 --270429421 --672582345 --460884198 --88427618 --654746304 --40689657 --989322589 --643169953 --12059412 --45553390 --22600034 --721151639 --304523946 --716587971 --561063763 --121242841 --561254191 --292272938 --293932144 --10403065 --406024458 --80061880 --953790878 --550398215 --34910646 --719407463 --997038948 --795579918 --199587014 --835205611 --684427081 --392509484 --154293247 --318731653 --982978805 --931244779 --97452323 --748665144 --693990367 --157194200 --922118666 --564452524 --873748926 --61340730 --790264179 --145854125 --365845057 --688008540 --836021603 --288840800 --561894409 --210876639 --264661107 --143982812 --79011302 --301538937 --775473524 --200921643 --37922950 --98398326 --350402030 --323905754 --898660693 --58708728 --493854817 --235623737 --31757573 --390116170 --627538624 --762271451 --568639548 --863802302 --406002979 --164679290 --687179696 --883582203 --4548023 --226172444 --362511613 --547336778 --838067344 --399398362 --73069875 --583765768 --460312126 --658282407 --679835642 --536381126 --986452692 --653258536 --694767313 --196610889 --212496762 --710651769 --58175125 --219945956 --238839485 --990312344 --80947560 --340556334 --142563763 --468540725 --532970254 --178164100 --831471716 --323276230 --376132847 --295668741 --298978314 --594596758 --817790274 --862815781 --976484142 --334470211 --493387398 --782684460 --523222107 --412480189 --989506833 --62401102 --796539883 --257181867 --39230331 --493189020 --597999472 --54191747 --35477186 --163537311 --855294232 --211001223 --597506094 --557870816 --290834288 --353869720 --992114087 --163229227 --580858457 --739044066 --21420231 --40085805 --849614072 --96031353 --278913047 --279553901 --977546462 --422306899 --806426275 --873661355 --307299919 --170496275 --842752120 --961316730 --103485551 --68933970 --647399603 --553124552 --839110217 --441713412 --541367992 --982348948 --554498028 --529675732 --832460093 --236491921 --603237635 --534031969 --675394330 --20196301 --664704167 --165190691 --52651984 --587307921 --744236484 --21353569 --523014257 --646069635 --744666147 --96496642 --101390046 --816899100 --640781949 --94933541 --299151887 --119062226 --19850612 --529461037 --281030832 --719038527 --824839525 --421568419 --690928382 --592981834 --679886341 --63860723 --877191627 --828494527 --752150577 --451700881 --895148359 --48314411 --539437946 --887982172 --433353416 --223946894 --325804669 --626105145 --414849607 --9304514 --365432493 --702113283 --369625417 --30084789 --346151036 --795456140 --342342281 --940248214 --733458060 --513439264 --987519104 --554549458 --605625354 --753725361 --418424229 --519564104 --141047024 --261140564 --37924077 --275969911 --140045475 --653404163 --966102453 --433947527 --959506683 --988784089 --647199853 --603512181 --360688387 --278282747 --330413983 --606633790 --329258331 --909032752 --58943676 --640809570 --220791259 --187101730 --286425242 --436342583 --48948571 --790519160 --337028790 --173260849 --795887267 --841079426 --544350187 --291259030 --172181441 --418655265 --804103072 --566870526 --236303434 --689852894 --534193464 --201696162 --573480365 --813140024 --897165848 --185848418 --510903606 --318428119 --924534065 --647779218 --753129315 --889424209 --455372902 --454476464 --601390052 --624756057 --642535344 --438400099 --29111740 --781509267 --795646954 --588730509 --840578599 --866843443 --846631463 --1098994 --826603880 --193015472 --154029210 --121802209 --464856404 --854985731 --406447654 --893460953 --99210832 --165339578 --431944483 --388182604 --306689011 --721870893 --675792953 --722589441 --165164702 --563791942 --445374858 --603694820 --717772082 --422296281 --856566217 --460634356 --520904096 --993355277 --861462320 --263692934 --303530638 --814092355 --140703496 --708459768 --852392187 --164629445 --559018951 --443678140 --246830546 --105597682 --930711162 --820107016 --535066678 --170413621 --729266843 --802610296 --586799695 --569161425 --966927539 --91676122 --361315423 --932959384 --264500245 --634854288 --303335429 --603541588 --241893882 --49758121 --524462944 --74356172 --238931149 --897676619 --279604764 --390637822 --401246901 --572329346 --204748564 --997556944 --998121706 --657186228 --155588771 --149320840 --286577672 --578404256 --466181047 --791625467 --362146272 --869780910 --578449774 --206244808 --551419124 --667551148 --666484583 --787979491 --557869752 --317901569 --46155528 --855811876 --400467693 --77057269 --3655556 --172479834 --543078661 --368197752 --197885023 --234580219 --350545946 --975447842 --119372857 --940727614 --357424150 --140893035 --163877128 --866635191 --356384446 --986902289 --267794555 --945625575 --617099477 --677658990 --45689926 --395350650 --406912022 --902845727 --955354085 --315817833 --774899471 --112525394 --950273979 --560049974 --491266110 --594652025 --844092658 --32241510 --611547089 --993942782 --193224944 --725977268 --881027579 --346258744 --719244505 --958312342 --126942220 --350948725 --636298173 --115767498 --75554721 --389297434 --32242366 --226905814 --392174713 --312777254 --637893492 --601643169 --757598958 --544875013 --612382243 --191862561 --681879245 --802473597 --623600909 --263729171 --177472 --951363044 --427672779 --169562083 --884754853 --595557425 --566592202 --308065739 --24487497 --416864073 --547681215 --765526735 --728833084 --878309482 --210980975 --604789583 --971462106 --549747631 --259572465 --58868946 --632347377 --154895495 --241570386 --914638991 --594370180 --976953287 --296098603 --38169853 --398087326 --524996583 --818836055 --94488591 --280747037 --196585540 --235503788 --511095425 --722755426 --685376997 --522887586 --685309728 --112149726 --627684238 --270011329 --421922181 --94433539 --608399771 --616450462 --934171328 --305245598 --810538945 --606987906 --815294072 --175575276 --106755281 --948655825 --373592899 --556528979 --140547887 --316428002 --240259187 --898684437 --700358740 --172220955 --609486359 --336021743 --619328053 --385206476 --118098905 --863572395 --963337700 --618179820 --359587079 --728194052 --36536547 --823918678 --951921832 --314923787 --319544758 --516237006 --117061343 --906605497 --597117856 --709295892 --716915812 --912581057 --497165021 --651322631 --552952917 --52492311 --173162959 --883246062 --229715587 --462381280 --662429225 --821201541 --210051493 --166344365 --516405184 --478742422 --822472415 --4698471 --255108671 --807742247 --863328695 --612636335 --331496459 --945800013 --715161696 --639834061 --874829106 --306237194 --374533698 --362346140 --428338141 --690969046 --249993354 --33029730 --959154924 --927014305 --981661785 --719689030 --15675474 --442060548 --429921726 --699844466 --969797059 --919132756 --564361066 --178492316 --829215600 --323902013 --828295817 --348487636 --326967093 --174439995 --829146922 --974912953 --686730070 --190323607 --740583815 --691851725 --547528383 --271963107 --845014974 --431050028 --666014076 --534164071 --976290507 --713565523 --860290336 --860892828 --491958852 --157259750 --180627373 --803476587 --320651784 --682209198 --696522981 --549720556 --425006642 --562149971 --893251046 --205107476 --42818627 --517907246 --790430256 --283734711 --230137182 --655777005 --934420652 --626960954 --305869711 --171447666 --115386886 --752977769 --546706459 --756750774 --201444541 --271820983 --213745807 --122625402 --941847158 --492481859 --348938141 --84758845 --595173828 --853758835 --52978185 --276071866 --557508943 --841070356 --486212004 --456809648 --696041043 --289282802 --936879163 --527966050 --2861528 --731279426 --470321328 --694441014 --581807652 --858663745 --684360254 --319863667 --533333663 --882318198 --944861177 --67283961 --192007091 --669652258 --188572717 --16248892 --733636172 --405726326 --287478430 --715920894 --553775313 --390559209 --236684146 --926987963 --134499955 --64349433 --64145608 --298087064 --727396914 --945116096 --376621101 --306625925 --389445942 --177952489 --684550866 --875169463 --872099760 --882299745 --352795735 --781882552 --832910592 --758113712 --849587727 --379083675 --11067593 --587508247 --522437079 --606058182 --600850158 --440031606 --265526722 --943320454 --919952171 --272095725 --315457223 --223041745 --982553467 --310935170 --95588110 --680519002 --969673148 --369054943 --997799298 --236454320 --853259035 --226972291 --677311535 --182117764 --16913010 --625890711 --136734939 --184685541 --645564566 --401958997 --173438347 --699039812 --466884214 --157773944 --547070993 --706986887 --917511296 --168918862 --858770229 --882721648 --705519729 --851813152 --741392961 --806274879 --489769142 --496062701 --80430976 --619718928 --723591436 --925065184 --219561571 --677569070 --408626801 --903400426 --1195140 --405349200 --759629918 --924617938 --748006221 --866090790 --755024291 --680509437 --702549673 --121272452 --110561934 --452452112 --788424705 --667840602 --901169471 --826625952 --27880833 --728045919 --405671500 --830342609 --484013290 --113321451 --443576052 --66920539 --431676720 --501296636 --850734130 --730168596 --134371845 --543286531 --158739243 --444326540 --163273620 --608097684 --439522129 --955127726 --888675863 --270118148 --108863879 --296182825 --191977346 --274801846 --737701419 --559195045 --536237426 --606916727 --518697309 --565103516 --313006954 --314200614 --493949852 --373007148 --91148859 --571392767 --445274377 --248956830 --251216244 --165365520 --711171822 --913250949 --523047783 --901999821 --540563715 --834024059 --35113643 --460690982 --522955732 --228190609 --512509677 --684933940 --611624032 --714933719 --832188865 --523203388 --337765206 --943264361 --55947957 --889830402 --173245347 --708200749 --448351920 --765645252 --23778125 --80797991 --205790238 --396460420 --810337236 --216830652 --501622670 --970585779 --16113786 --59011614 --394057951 --668928949 --800856832 --979973436 --553340185 --314350400 --919935461 --543219203 --683445142 --242487167 --99408013 --341680805 --490041765 --567495448 --382129892 --502405500 --59189515 --876160731 --562139485 --653662156 --198077374 --856697770 --866867615 --179399048 --214215915 --622330378 --861740828 --713464061 --98604857 --540777360 --851549741 --576639262 --131805238 --329616446 --15740955 --915569107 --574453208 --798722134 --905480483 --122898410 --889988706 --84391294 --989910449 --32063588 --126045018 --16721511 --613600070 --813343557 --3955886 --44252403 --453226326 --117745115 --141865419 --858917103 --810987050 --646467005 --82059671 --678041823 --168493644 --603659731 --893542022 --412891836 --510005711 --877536606 --952115526 --222650583 --624477244 --477198767 --885972616 --520896033 --961524784 --835157314 --502684109 --148955597 --298654147 --984160651 --205379323 --666168812 --250134179 --72833577 --608925200 --142352293 --910914969 --414364535 --767095175 --793512632 --761366881 --999436483 --86778468 --39091419 --250610706 --458641612 --958607968 --974197335 --134468066 --270968739 --568264319 --802662315 --100488880 --113427226 --992659967 --348503943 --445490574 --287732281 --801795751 --943122355 --889164274 --279314870 --400411153 --706192251 --835978530 --683500944 --819157318 --928177683 --369118457 --1583130 --181088354 --479953153 --918477879 --297564297 --106289396 --489546512 --672078970 --797437263 --443597180 --586178003 --399338651 --492700665 --571769015 --150767153 --894752805 --153168070 --165283019 --833439245 --453342502 --635992592 --842936479 --468118203 --288421591 --198914207 --50553276 --118118034 --470178678 --544404432 --725781432 --289835316 --147801461 --155366087 --70973114 --937906682 --929076599 --260479439 --838921458 --879278902 --583226458 --463809231 --980691727 --175422619 --935222048 --590306225 --735600686 --753769175 --633347244 --186517797 --973212404 --311602434 --574889985 --68331610 --23510820 --696896280 --637141553 --995663333 --792838075 --409268898 --287329519 --556270944 --694935632 --230259680 --763451660 --742816299 --726558234 --22104785 --610645264 --430806887 --976553748 --170562952 --677376460 --104124008 --387821878 --482395014 --825531493 --720377072 --917737077 --436187124 --74503183 --277674720 --174322445 --718161812 --454168679 --822208746 --119162277 --176168608 --119972325 --270253548 --17833674 --677359637 --789124838 --811108464 --320420477 --813867959 --628669248 --174874069 --647045097 --81448422 --932928565 --418095887 --663365595 --36551423 --277392243 --89194568 --570581532 --478706036 --551010848 --626668134 --588612960 --116539241 --99165133 --257573164 --517258666 --793963453 --954862668 --422208224 --849118761 --152684458 --941217800 --695527500 --749936704 --712235461 --126212819 --983439197 --579927535 --244888798 --365653971 --652506658 --639780001 --638482734 --354474492 --966419632 --306614080 --781565591 --604745258 --40234999 --523903937 --9002401 --684690460 --540663807 --370375697 --436913527 --152166362 --830337305 --592755207 --68106928 --765291497 --983323188 --3577073 --241162097 --365958147 --191078068 --744670545 --657280284 --540109421 --396101987 --633426575 --384536514 --3542443 --16900061 --360316090 --942093142 --755813348 --238021048 --326152679 --841687072 --519987045 --718624966 --735669029 --713806032 --201967283 --190088134 --656930384 --729939570 --214078951 --666470776 --46958269 --202498109 --936175333 --71530526 --271650185 --421312056 --468858723 --550627340 --765413593 --112067659 --727968795 --289817629 --595336554 --189801150 --557889182 --806167182 --111981599 --174200357 --824766739 --748971022 --547559039 --54179492 --529921223 --302639441 --621219013 --732766964 --86719303 --400566124 --204899834 --592220221 --789228450 --258726300 --18119569 --347302631 --721195090 --159654427 --256590236 --141032757 --702285037 --968911214 --899581716 --190169296 --885415585 --878441326 --340323672 --144659487 --932661116 --184742970 --729412111 --28179598 --122239345 --177815606 --862932700 --94185669 --546829882 --99909713 --179407522 --213679149 --86789642 --574995932 --355336493 --259870070 --900732120 --798324271 --507848422 --790736397 --659511284 --66084790 --784081239 --428226755 --591283020 --153034152 --238134344 --85117725 --777926297 --108031782 --852205657 --60168928 --744751324 --142516729 --768047320 --432677517 --717890876 --59441595 --402577444 --902551543 --304182265 --737977732 --821340904 --106849632 --493992644 --570402623 --43052141 --791940790 --781785795 --22117770 --540896470 --492905540 --470174230 --427366735 --544722291 --96803396 --149612102 --466473878 --71998239 --747680042 --138701547 --114143516 --516413691 --535054686 --927851813 --255492450 --179033794 --999939948 --415150767 --190594849 --440027297 --18013154 --80278096 --624736255 --113735810 --765509835 --709202858 --770426290 --600151147 --299089265 --993121481 --262471119 --786811070 --837123196 --853996704 --151700803 --948737318 --197532944 --933844177 --650707703 --491066078 --898159287 --276461790 --16995114 --785352789 --981999282 --983832909 --31585697 --511462766 --13293617 --178999184 --621666917 --107149150 --405005870 --366230043 --658473148 --906131621 --768059864 --257725243 --972744052 --318740452 --570429151 --826905152 --107017320 --910487711 --558478879 --866972056 --261517552 --518037989 --727220788 --131023418 --468521696 --253259819 --670508019 --844679465 --742143923 --425410042 --610791689 --359118936 --637060863 --797006887 --926159331 --969299944 --439068299 --325196195 --528762891 --163713345 --16369780 --318976241 --691809013 --833966686 --779592029 --220847870 --50134509 --798251440 --874668710 --368069080 --5874820 --156910116 --554236620 --156070298 --659978023 --213159071 --804016749 --355337815 --884491290 --356980540 --834548121 --909928519 --21159384 --13043300 --818064392 --706828837 --261912824 --510869304 --804834703 --332994758 --671175858 --649594694 --3244755 --226695734 --481430758 --389142859 --128501788 --730900327 --110117509 --409026335 --526604381 --456265384 --854344039 --960457157 --864275746 --326026143 --913601970 --623348662 --453378864 --418092659 --220648462 --77748698 --931095984 --617932149 --308799228 --419969047 --907943311 --394743832 --850737698 --86526734 --186119756 --747652664 --832222853 --330842362 --746519683 --103692070 --857398225 --517099369 --431121416 --84953531 --237315568 --523003835 --695559298 --478176754 --45721799 --776388941 --462365010 --149385257 --484075100 --978836808 --249986486 --147890594 --354426794 --576448340 --859523930 --233498575 --219835787 --449356929 --188071543 --751776591 --413477930 --439835958 --294672793 --996216169 --766925562 --512400671 --713774315 --168213145 --207139839 --898179554 --305493958 --223219128 --682419167 --443973686 --666998949 --892184736 --660214618 --591094765 --222985534 --906129923 --244802453 --573744656 --678041109 --54351750 --971053491 --85933563 --958307487 --9686244 --232512353 --816005792 --483562208 --96549256 --102736834 --331699256 --815502314 --355210656 --956519933 --462344790 --677617283 --546186958 --697799133 --601462722 --552681197 --908744616 --987034054 --690904598 --1401941 --967163118 --199427262 --450004875 --472363967 --492909541 --39391839 --993741373 --142954338 --57329486 --154048363 --246141021 --645947501 --662211318 --872943955 --71291555 --566838558 --783454109 --707815462 --288950461 --542250097 --18372024 --5511622 --192732192 --198960765 --500859482 --435627512 --866880924 --356375284 --576406992 --849474349 --513656886 --661855906 --479338214 --173680440 --345863748 --459820874 --798763562 --157029256 --298369619 --904112998 --636487078 --311014380 --664999650 --95125133 --101791185 --942505039 --868279366 --492221922 --278415881 --81578827 --517722129 --245374442 --145596823 --999786304 --540989963 --121794505 --845776721 --804592521 --440925451 --629794850 --463577771 --237143116 --751372506 --939238774 --971186310 --998271931 --923992022 --839458725 --434781662 --44818134 --181399541 --841116594 --719814064 --279826416 --782571713 --136105204 --897679196 --570896333 --686741151 --816707127 --974662688 --140553907 --10772588 --553742410 --487023810 --41228958 --250959973 --138492390 --555548622 --45489800 --270502451 --145434164 --534880866 --683442984 --386211644 --547079693 --267704165 --39184568 --54439663 --260907014 --426104922 --125541050 --168818730 --533240435 --312258309 --948759800 --848299539 --1618181 --735663051 --153198612 --487009565 --981344382 --706614514 --395347992 --433726642 --891423634 --298864879 --183746224 --174499885 --114911237 --202902549 --239019323 --255151194 --944765445 --566661705 --261096051 --367104670 --325584098 --634124151 --554392430 --758735514 --831374295 --760436439 --912343850 --687718589 --983982852 --594911903 --985087838 --658225687 --113353600 --969904826 --387828859 --221672542 --25202394 --334595845 --531867973 --419867680 --13551641 --546695827 --444807030 --872742669 --579302801 --14934537 --520966725 --422405250 --853756427 --71918360 --715354813 --500028160 --635059655 --118669458 --774918817 --309496978 --929898279 --364772541 --112840514 --557432352 --85922497 --46876499 --369035114 --570090648 --962871031 --966889507 --247956001 --332737796 --217380570 --146383953 --594262295 --389752459 --504554815 --56454601 --782354313 --731644107 --210855476 --222700110 --544109174 --167896367 --688670273 --784281616 --907126225 --52680683 --244851420 --268371721 --27809874 --191262943 --661229628 --33494843 --581697437 --968250776 --938065945 --904692016 --553573228 --607607583 --675692541 --255810226 --479048078 --320857039 --896036547 --15790726 --157045147 --919534723 --355884457 --786644725 --961853183 --432401028 --40409899 --320252693 --481175562 --233266644 --754637591 --648101818 --308483810 --866545683 --865835192 --752411531 --40890613 --478569686 --613245121 --483424091 --685286960 --594595848 --223384234 --256116397 --110823789 --257299297 --684851803 --546804729 --567262606 --804124313 --823806603 --794608092 --289828390 --249430766 --181731540 --895074890 --145461950 --148094014 --799639420 --901806885 --99781233 --486804819 --19748633 --89488831 --717366711 --379231900 --744344171 --429628590 --964709382 --914186347 --16881134 --89656818 --633727597 --288115402 --78543905 --105342056 --954928888 --995644848 --12516846 --120773155 --180468875 --361747795 --772788860 --991990937 --646340390 --546825376 --152192141 --48865418 --265947351 --297597348 --883394311 --363155583 --112552813 --820711949 --518828104 --407169651 --462712091 --984827582 --809413195 --349224274 --926355350 --649598989 --279071560 --364103830 --284985177 --660217525 --342194883 --966107584 --741456827 --296102793 --284561751 --358468384 --362191429 --364101058 --356043030 --928468677 --510082379 --115219014 --404578061 --313073624 --545941910 --283992239 --3447806 --684209341 --173245904 --592868919 --70197190 --328845589 --827763630 --740076879 --887087878 --734320633 --435471073 --86479861 --40351776 --682379873 --11037395 --416715459 --938333879 --465469902 --97677608 --278012667 --187615625 --684989731 --119311387 --318432977 --940477408 --564574476 --828425978 --968589178 --593841432 --174510798 --149257446 --877281661 --247185597 --800849922 --712633989 --305895788 --166484445 --885078216 --11014382 --11165147 --96861809 --921170585 --122044965 --800169298 --631183064 --576724039 --857779491 --801271783 --224214248 --765189665 --898940508 --629014671 --481194616 --606045194 --302380028 --205885119 --496194194 --338879172 --506691589 --718473706 --221912736 --748297380 --496840016 --285482999 --232846900 --396558649 --532148676 --206152286 --192826740 --665948405 --313707737 --50470203 --16346119 --528668857 --930587075 --282370784 --475001412 --235995868 --222567510 --954328622 --204287177 --820228427 --135345137 --926283 --449443280 --260925335 --42606323 --84126191 --726763536 --193109247 --734273124 --149010988 --616599015 --17016395 --179924944 --923298486 --239818772 --801511643 --854557295 --617807821 --646847805 --813715514 --604121831 --916300255 --603860121 --406257563 --400685772 --21939236 --996170608 --765742870 --929223673 --839443155 --436816398 --124229525 --267590271 --29445551 --983638249 --398449800 --10992921 --773447179 --700840189 --228554214 --115649943 --994185709 --647166466 --289126523 --546438054 --78793582 --123218724 --410743150 --92707376 --774942045 --720736179 --400312403 --415548211 --701858198 --517990662 --292108618 --948102876 --285011877 --551225976 --826434412 --661994707 --893958416 --293338986 --598301326 --819596423 --740155946 --768651815 --108748636 --108704145 --868643549 --876314003 --418037193 --720825085 --697273195 --122532439 --318218093 --425737227 --162363617 --614071859 --669469860 --411457238 --706816925 --574553381 --232353433 --23507259 --80332117 --428016599 --754594298 --631201432 --224732736 --183399989 --23357730 --419040493 --750145961 --219806574 --993868782 --868347697 --22800314 --429628341 --335528048 --323691707 --14080465 --779562784 --514031923 --80051824 --510438374 --206465021 --473755214 --28872437 --384181182 --530533587 --572235126 --804418693 --858776394 --597790637 --725999072 --567155671 --572903872 --834571289 --559240279 --585825280 --963896171 --166994678 --886127658 --941186971 --188938402 --153508097 --572809058 --89858490 --782861244 --102607355 --572778848 --150909065 --607830695 --98262046 --914209478 --795242850 --776081144 --510265089 --279117299 --298086808 --842634552 --375684100 --968627273 --742248082 --188303310 --425000279 --687641062 --711011865 --325860669 --781640167 --393259687 --589284502 --396466499 --540848986 --447885427 --493369554 --571996352 --419666629 --266462473 --266112099 --158433091 --134487695 --754340738 --597877021 --87989683 --787487806 --699580635 --889884374 --651437521 --689082329 --595013819 --209067248 --396596709 --783561330 --920028318 --704105727 --722086377 --338525016 --967539121 --173116384 --749625404 --37157841 --982985731 --412694663 --989580060 --934158823 --433926406 --740227193 --246285822 --800400237 --717314798 --240745280 --866163776 --926903724 --132985698 --619994328 --508448709 --850627749 --654829421 --994974310 --420622780 --57953966 --235772176 --593851912 --977215458 --462808891 --748336094 --90509376 --419979796 --190807822 --367548272 --769531013 --932274967 --428377202 --143491205 --467480737 --815322791 --578605919 --69034737 --71963271 --67460799 --174459890 --849860780 --882151759 --252720525 --497821593 --303298723 --853834699 --577926072 --98504817 --226818721 --722233329 --80083498 --593461922 --382999919 --525338992 --48007725 --681592330 --525869427 --268812379 --278788942 --832337387 --550674722 --782692258 --479180425 --987858805 --454603022 --844944858 --459458634 --439865293 --138217536 --257922714 --757349978 --900984926 --338609620 --71599419 --41386845 --785458720 --278143452 --343069413 --714182996 --405459029 --365250198 --737149679 --115042265 --211219109 --725808236 --471860463 --857455460 --866686276 --468827965 --508438692 --225515004 --620131330 --230293291 --581504798 --494369901 --959777898 --601613804 --687504015 --289756638 --630969324 --976992614 --406819829 --60076118 --625981367 --787916571 --510601281 --590238471 --272813060 --892145294 --96718305 --822434347 --409227328 --638797195 --479248115 --970243132 --866502360 --553406542 --425397241 --371181770 --173147625 --601595150 --955721510 --927430908 --249767992 --56938133 --364669527 --629295478 --135794436 --492606208 --513630225 --61159974 --167217333 --749954592 --546687148 --558418618 --804526107 --695172297 --456660590 --719081921 --98891334 --478757674 --959141187 --695862681 --914120493 --61421952 --491489033 --321130049 --521575249 --988031474 --390544997 --327798471 --386388532 --123000456 --152028487 --374116194 --307443744 --461093932 --180959737 --951831322 --710499762 --86166799 --487403505 --259371514 --247706338 --725208475 --645520096 --238118583 --681042510 --689239875 --749916895 --691083676 --952659820 --221329589 --460649174 --667400705 --222710376 --752806951 --972781234 --775292232 --979206940 --179281313 --578579401 --908567858 --754790092 --477267252 --898106336 --473960225 --881910588 --11543853 --397975753 --589136326 --163263028 --427078766 --336097452 --495822150 --30619208 --202832576 --955700404 --492493219 --173338831 --279073480 --49299945 --747840614 --365467896 --999625971 --310241345 --234743631 --801696520 --367483636 --938901011 --69925424 --769229831 --785982760 --421227386 --201238009 --285226148 --443682185 --82589656 --406116139 --762828914 --410979725 --535590586 --477272694 --819104431 --212480973 --858123636 --63826618 --781334529 --619118232 --766950279 --818349837 --659858311 --235682332 --559463968 --31813144 --428104057 --244740154 --755088108 --187039336 --19949509 --889227142 --977405919 --663393610 --867207734 --667866931 --581875200 --442087511 --740046059 --580226806 --919060911 --214542832 --414220833 --316715947 --936122468 --149869549 --176706272 --696132882 --406785033 --186464466 --786170214 --869346964 --517022240 --489249370 --420651414 --308554611 --545752778 --171760205 --993337318 --398689797 --981293070 --950347177 --234116416 --939171524 --409653781 --891856651 --805762644 --853296467 --577823453 --340063790 --538252795 --855371111 --190520090 --432334319 --833626580 --545374533 --656232896 --627371600 --713684442 --659093848 --93724055 --680350812 --116451038 --444396799 --719668837 --301014560 --191671386 --24325141 --981324940 --63205584 --649266760 --626369702 --507144295 --306923943 --779574891 --120225595 --143821118 --435354942 --782657694 --710788827 --435722175 --585351594 --74385710 --473326564 --703072873 --781760133 --480412485 --132652725 --506451418 --973298104 --789370240 --124984027 --824112719 --804315199 --817904360 --106009096 --153334548 --848310662 --877858085 --864561719 --228910268 --733005271 --28314334 --659309955 --677868439 --306621639 --734866613 --387479955 --383763884 --927294347 --564070017 --605941259 --581835206 --665296518 --261665493 --453629920 --93914591 --152195057 --521824611 --398384800 --695306383 --134692451 --170909926 --884560831 --477879012 --112391175 --455412517 --689632951 --431567323 --703103870 --504163431 --697672884 --943507979 --454416919 --958826896 --451101747 --743878698 --122099378 --221823427 --880501485 --613445168 --950197897 --418611141 --561954503 --695826513 --335130870 --168970194 --920034027 --867598757 --952652951 --511065364 --426009746 --917428474 --908884183 --90582942 --60556504 --467842070 --215714155 --855886819 --173111546 --229019941 --26127277 --944952666 --270079006 --62039046 --545227537 --873325644 --228438881 --632446422 --50620682 --763134705 --387755895 --349523971 --659863687 --76640010 --318602994 --994766153 --475116566 --348996659 --249855124 --309246172 --454376960 --860905556 --310822407 --316631854 --790042827 --180291600 --754229107 --552146372 --963636541 --421533126 --398945859 --608541952 --760925848 --845234189 --295579473 --176820518 --830329121 --80349209 --846188916 --235448651 --782133254 --182072110 --642509175 --465362510 --104898499 --271821312 --293815023 --50307240 --88175854 --191354382 --13482359 --841806123 --846680647 --896688937 --342706985 --939092854 --41498652 --843211142 --314653026 --500835930 --574917830 --732330146 --401908662 --888944092 --678877136 --502592233 --172237618 --982892165 --263449409 --691144019 --434408850 --138305496 --934040358 --170103936 --121168488 --592744818 --518525531 --417788077 --277918487 --57859606 --329737650 --421325534 --8169576 --112764934 --986035153 --836026921 --406887995 --772784757 --418767884 --916575 --648751173 --755225822 --177712127 --752696152 --887146290 --841302954 --707145648 --626112478 --926962679 --736759280 --369999479 --812236664 --123663042 --18893987 --226327665 --709781250 --652514608 --103549241 --463919303 --731670909 --98228670 --821551075 --127271987 --486831720 --429659570 --43856542 --739701961 --285938259 --142902193 --406796451 --324827920 --327349968 --769156209 --17838636 --379456006 --346370226 --34632871 --246833026 --354570899 --403931783 --390014491 --592193048 --232703124 --749259424 --768165631 --575323083 --147493119 --870234827 --886685506 --427925834 --786986722 --767773164 --273924467 --998281817 --261747773 --965701241 --130654487 --229442291 --46695374 --413036439 --493595069 --981492045 --225649194 --371052012 --319983521 --620687088 --567093697 --656444785 --616882379 --744512654 --44576269 --779521158 --382389518 --341273577 --857185703 --437319636 --320225750 --114706144 --923503262 --568627726 --209465203 --278475603 --951019611 --171124064 --839451397 --896324732 --993960221 --626527813 --151030838 --571009308 --594503738 --965514966 --546833281 --781355391 --982172632 --568774007 --745221273 --945193565 --894833539 --929779609 --114520033 --480376255 --388335617 --573963212 --902738646 --670990540 --318950936 --645553589 --325327736 --419316479 --40372635 --782829370 --527907475 --252640917 --273252615 --62303922 --197521136 --461226290 --645676057 --124582619 --761558247 --138833176 --581967119 --761055929 --273276178 --195624395 --167114223 --797391020 --656652442 --134016468 --108133157 --404652946 --191406702 --826202893 --571940462 --511076313 --597574503 --11647635 --434657081 --442991448 --468814087 --55385530 --260591490 --922520149 --437748653 --946181002 --491233423 --288546099 --122309453 --330146553 --791838610 --397046926 --344011798 --398637028 --469395220 --923031432 --3321511 --232348404 --956475320 --365725897 --754117026 --703754295 --824502388 --217729443 --271474217 --726253047 --251360843 --16592177 --724684577 --83556161 --134543869 --151185785 --296266023 --753303697 --464756655 --40935874 --878358574 --765158068 --239886873 --775484936 --906170997 --762053480 --38832350 --779051553 --456766753 --108500762 --903209408 --388401729 --830925006 --132503279 --388798474 --550255947 --348114792 --754154734 --147189575 --429370131 --792788266 --867063839 --498230434 --277857780 --569427241 --813948348 --700568706 --282216813 --978073028 --345435661 --489964565 --909781813 --10511153 --311662065 --534339458 --202354959 --771312370 --568077462 --466552807 --971345516 --56354462 --235615370 --422065674 --626908646 --872698042 --225523402 --264741975 --823034519 --339399431 --29181721 --763324300 --371466976 --719788528 --738752282 --892632994 --524802906 --44365305 --906901822 --41708928 --796240479 --804784362 --557969021 --524306842 --290963110 --354603788 --161318047 --814875 --362804784 --534129696 --861371518 --1638816 --94998050 --562664048 --586184595 --907147812 --191543608 --785119165 --534013719 --760990732 --983103096 --591182848 --262356586 --204008197 --985121323 --27320333 --642811560 --377892819 --403862705 --382658893 --763884311 --816577599 --889774222 --958463833 --820293066 --124630007 --645291692 --884852410 --399655883 --559660911 --817249916 --566385968 --857466183 --996600017 --685960025 --614827038 --539327501 --740683492 --998233192 --607137000 --943218292 --852220929 --629286448 --297799778 --921189523 --186326674 --355096839 --474123932 --729762360 --818299393 --303629045 --693769656 --311366864 --543165808 --424613026 --263387524 --364481858 --446875738 --704847039 --326232465 --683454065 --372232250 --157276017 --929835214 --749290342 --128014833 --48978990 --888894286 --360764077 --410542329 --772967803 --586818008 --44739232 --966738815 --462916250 --241558848 --42141454 --976778540 --400014126 --436107775 --199836917 --443656319 --809974753 --219934571 --600994430 --812870855 --391091489 --170184038 --996785386 --880467129 --712613041 --190695934 --759466780 --256114934 --187390257 --966168636 --219502681 --661493039 --458153321 --811442422 --214215948 --7533957 --955560002 --532937907 --328693200 --596994343 --337470019 --658454782 --854295800 --315233990 --588580200 --992566586 --24066629 --960724972 --250034259 --861934688 --265826014 --350912598 --398499413 --284526129 --69510226 --155661400 --807999418 --575090807 --81632826 --108068656 --174125518 --605996483 --247642906 --398384778 --370479099 --11695983 --741593282 --523593535 --704247422 --357223292 --979179337 --46023761 --515847073 --727123370 --722135985 --151170597 --355073086 --123282361 --940619990 --746330038 --615802357 --152219880 --729015149 --763332974 --735209612 --226959073 --152738032 --564515789 --201787961 --436822970 --309764795 --460114301 --291891674 --93410471 --13853628 --356258425 --877926417 --995108749 --374841310 --882142575 --1243867 --677059916 --573667793 --475151854 --119338547 --314241898 --442946747 --675757965 --397724364 --875784885 --526264725 --280569955 --282919107 --49352172 --243722023 --599695998 --126188475 --661270320 --864897397 --873214246 --513861842 --470945257 --930207243 --124493934 --337535315 --185190128 --831303945 --976794928 --355715399 --87421130 --587054009 --601366848 --693624308 --336974660 --288107023 --674543467 --814802264 --102744340 --894929841 --897531369 --4230015 --870046941 --898781438 --782325730 --93297253 --367180374 --927396687 --432582534 --817302427 --548788086 --778327198 --335584438 --725505823 --929027109 --166699509 --476454426 --866862530 --569486658 --16680009 --736298090 --66185995 --467882372 --582827284 --349140731 --985500751 --105261793 --79662454 --9882729 --782440500 --446636637 --519047888 --301734606 --306576885 --459100977 --925856757 --624857632 --486779455 --22902528 --458543174 --152754264 --282348887 --112543313 --757360583 --662391761 --373043110 --40104110 --518419060 --607831845 --759463802 --423659608 --802634789 --282675137 --740960572 --975267324 --913735979 --206138439 --940838275 --207224351 --282535237 --19985056 --850555379 --502009959 --938376705 --434713853 --312553928 --848274484 --358219877 --710859432 --903469642 --87343331 --661576663 --379742194 --152378719 --579259431 --267047413 --395695213 --860086817 --997424934 --548034387 --127771809 --332146234 --346536683 --841970919 --662232889 --442577599 --104873471 --431972368 --811169421 --165549721 --773410249 --10750166 --352942141 --867341252 --223095884 --194213380 --419476565 --728453807 --941376253 --783820607 --610588200 --878568055 --703109301 --526408264 --336176778 --677706659 --983754557 --549486081 --763004493 --136501858 --441204442 --772432931 --414471716 --712246597 --696192313 --752415543 --172253593 --459829955 --449343197 --679567060 --877504894 --398175655 --522690536 --910966666 --406943517 --685203553 --237516306 --994158344 --143654511 --208014532 --537064110 --368537105 --181471361 --262134990 --575336904 --128149764 --236615914 --393998289 --537230685 --542573478 --399249391 --805518786 --24935809 --245844195 --137168010 --740334598 --839070099 --676342249 --431143294 --233239779 --974224196 --771351498 --350573741 --957012315 --873036557 --381277862 --203369587 --576145414 --866762429 --655409551 --506083179 --587072550 --591773339 --963922564 --146225335 --142794112 --794608691 --444079015 --630883663 --569032504 --196490702 --970689296 --882572182 --659179379 --91772711 --281149936 --779036833 --126382178 --555949797 --532406147 --66121619 --701807637 --986580409 --505652597 --72156428 --1969187 --390318846 --467673037 --183814536 --569195149 --71236832 --744218373 --681767834 --16096118 --856521215 --84069554 --67184903 --820591117 --255818083 --938875086 --432402509 --421332779 --687067957 --214350436 --881362166 --431923664 --679263218 --707193255 --544841709 --586657648 --295297722 --427496837 --754144206 --780762964 --173894728 --308372475 --921557205 --711002818 --246943024 --222438857 --205941358 --558414412 --736325728 --609222384 --652982163 --429210537 --589665437 --427014085 --345109453 --173355594 --256415144 --165991095 --763975383 --108335255 --648934146 --301329192 --14400663 --232397976 --49228094 --382998528 --395824802 --683459296 --632801570 --488307108 --154217801 --120617059 --289666429 --444024906 --55802506 --377882163 --211048442 --191671660 --165222319 --661867170 --605582105 --964334002 --27314063 --646717291 --382011024 --264673896 --665367881 --533425330 --52870885 --589278226 --347670240 --825631441 --790651493 --176188270 --285095927 --807169780 --415081785 --298324676 --609921936 --694681219 --503235183 --825949966 --545465264 --401861965 --419978131 --673845075 --682802409 --769207095 --727706336 --705506974 --900540209 --127070224 --990141701 --771106203 --190757205 --131774299 --158862442 --808794250 --580741975 --145120587 --506738269 --849721033 --74048563 --902662154 --635094848 --768219350 --928254540 --690017432 --208588408 --853119631 --984383227 --148794750 --824763689 --940650245 --84332553 --652644775 --787374636 --587434322 --265950685 --236841535 --531547019 --828827633 --422086931 --693899799 --836521449 --175826499 --322975566 --771008386 --474473140 --766677257 --917431231 --936057564 --332902109 --973235245 --430415189 --885100401 --943297435 --239454584 --977426140 --389499656 --146209817 --855278836 --2852076 --218627834 --567945579 --187966577 --88819552 --670171001 --797445170 --739172529 --816993624 --66275402 --994242189 --174725712 --405844844 --315154180 --422921657 --362571986 --9435774 --37377332 --271853283 --943987794 --884808124 --451293706 --869669349 --687841042 --742035603 --660451795 --709699124 --36850319 --774496920 --712936337 --606374554 --162616048 --343767784 --866358808 --808176794 --86417428 --492611341 --888788106 --147326302 --902129229 --981458553 --496454401 --214386136 --828248355 --638258242 --782218737 --620681342 --200878564 --28561259 --172867114 --558902093 --313510675 --552481636 --437835774 --778042263 --945134315 --370835854 --844470345 --642433968 --327637732 --242968851 --618624575 --712677985 --647062850 --277557604 --547948042 --204117046 --508702282 --334880384 --624471710 --765749582 --251872068 --758386102 --960768387 --328716751 --885680028 --643557842 --191692408 --646015059 --421133106 --343291170 --467123138 --445674292 --911427547 --192765971 --128608248 --979790269 --884385261 --582985665 --579009528 --63884902 --340183451 --886985819 --855652261 --150199696 --494947856 --667785621 --254542296 --480505686 --236350362 --43595113 --267614739 --619915597 --693927085 --80882732 --382022088 --157621738 --988688323 --990819644 --500831168 --27076138 --838657591 --40403345 --696949767 --724660508 --777506842 --989326283 --270783137 --306833425 --28997981 --60115213 --55660722 --41623347 --467014627 --918636975 --203501452 --511114731 --28063675 --284575209 --883267714 --209302875 --724165863 --393700920 --966971526 --351920134 --687404426 --246348966 --888526118 --894691846 --573750536 --562602165 --351406383 --993011401 --625544457 --800914620 --912251884 --963550837 --128447740 --733949357 --838270371 --349854549 --77450564 --169572856 --337963813 --922158354 --597555192 --779625821 --989542754 --59705737 --229006517 --485248413 --372877113 --727622954 --26547376 --614841606 --320482615 --238733818 --714485010 --733505980 --690647637 --169778196 --302833118 --485290061 --875720707 --670216581 --66540303 --341811673 --733480380 --399566531 --98925827 --140299126 --752875265 --91069349 --592801675 --581048025 --478244987 --585899047 --726956477 --436193256 --81417351 --861728867 --932299105 --481477570 --275029462 --985903844 --217493811 --222083835 --35169110 --663191689 --277297033 --294070798 --536312762 --677659656 --608072444 --573287081 --466990535 --952679661 --312815530 --984370122 --139552181 --532698186 --476213497 --564486661 --940656092 --857917300 --117866025 --878668478 --969507766 --350170118 --542820729 --572897282 --913423716 --877753414 --760029964 --317429837 --203144797 --613357111 --459008360 --693530393 --489093361 --657071230 --436129569 --456979753 --152066584 --140808202 --381737089 --95880311 --597861374 --702071237 --981682910 --216544516 --618940567 --971808507 --309814526 --307791851 --541916145 --601991572 --113602311 --213011513 --46744254 --951559735 --996088713 --837805044 --570393195 --447253110 --739079197 --449848367 --757923043 --564661670 --611230396 --608785594 --381104763 --985343503 --979281101 --614808108 --317675068 --854828226 --98928680 --296587684 --744363219 --729417305 --453586321 --564931323 --350283021 --970945399 --954187777 --960871189 --405112285 --502600700 --529613586 --256175070 --235019600 --916706012 --987636691 --113986917 --644849931 --309820292 --637953969 --862625122 --830296880 --625574357 --781377141 --950387198 --891845403 --132151092 --588835465 --856200300 --436573528 --323769715 --617505824 --479829691 --181875420 --486414925 --830603889 --887367915 --29112210 --841356813 --804152546 --523359495 --409554842 --349350723 --365806248 --920612441 --37444684 --799418538 --453097351 --62592200 --945029564 --580784110 --995939033 --57534342 --685477385 --548824143 --410085527 --686533513 --123596399 --203984475 --560307966 --242707980 --855340697 --726011738 --49425462 --929610670 --377940151 --320528859 --885758262 --318291639 --970888141 --465841348 --401204322 --461946389 --925543055 --786128473 --910318083 --693359604 --533114801 --892647082 --505179497 --648648490 --36673583 --143044014 --764935494 --838050837 --159752020 --957413208 --888193843 --764908978 --388275207 --253411536 --376272775 --380320296 --474518359 --939292998 --208151018 --221220270 --267218363 --84302317 --809706737 --24355740 --612916875 --702226368 --361851085 --218719484 --261563511 --776625549 --543560981 --447604644 --618761812 --308788055 --477917767 --265938065 --577436849 --804774243 --308391393 --351073206 --168599593 --198785977 --151246286 --648566496 --905786487 --301703243 --43617240 --38034386 --778524436 --39338009 --543100302 --911365196 --202753335 --613930127 --463074054 --697247902 --193573752 --825734888 --839632214 --820210300 --403894876 --378615833 --322735792 --856846218 --823959199 --7259321 --720244608 --979551227 --657395993 --21754283 --826364597 --674641387 --100775227 --70913255 --44476547 --920205046 --446644481 --156950948 --67793540 --772190603 --3033960 --717943955 --869427528 --294762627 --199546894 --481475414 --411471397 --487072849 --432567531 --207514016 --797496566 --809520362 --533444731 --758237911 --174686976 --111988163 --957074180 --701048564 --429186776 --514026641 --573173387 --625603402 --956422454 --60154457 --465071924 --293917633 --216667464 --35987473 --217803519 --583536565 --122225520 --735114732 --626495971 --538757446 --383019720 --156553965 --909877016 --441707106 --323453619 --586685713 --261385045 --485047432 --531164239 --76420344 --141670963 --209931562 --927783633 --937123921 --593676599 --912880060 --719538434 --642227115 --994328817 --727885011 --66402458 --947232899 --366382491 --620376701 --436687609 --766877862 --64853300 --713964767 --1942752 --483298986 --305144037 --773410418 --144119014 --308007459 --490385711 --614785490 --519899459 --912994616 --610207902 --295375027 --842997631 --519926347 --73283421 --368002249 --673464245 --489547354 --309154785 --770835360 --816691720 --323329796 --458517395 --22150265 --628219564 --679942161 --733876122 --960817866 --320897403 --666835038 --767351445 --462069796 --784723466 --278793756 --958522337 --342282349 --961472077 --454368418 --285200398 --801661739 --929171038 --431801678 --454093507 --175867527 --710805539 --286795587 --805120587 --868929548 --857821943 --216032034 --697426844 --300402152 --89132577 --468095507 --211940935 --938694375 --30219832 --613999758 --702993619 --510420810 --353033375 --90301082 --698693557 --786979643 --681153727 --11767988 --761181982 --749994276 --888450621 --78183884 --181564522 --635698759 --748722506 --519217384 --304888016 --45965397 --605548567 --820448292 --648449668 --490757829 --222077421 --174979014 --219237065 --83414178 --680642693 --260252188 --57834656 --828185681 --187045200 --31865870 --718410266 --603949202 --297715278 --641333883 --499823134 --879938878 --773249180 --389990031 --195452866 --402396145 --791735143 --601290152 --723416269 --267693878 --534883366 --17858601 --486976656 --939717869 --817629660 --806961192 --410014374 --893425047 --601259173 --807152872 --106065470 --129773266 --29320509 --68127345 --611625464 --388847733 --708603759 --870791008 --669864876 --524783359 --825539685 --483922052 --274358797 --545927684 --16061900 --414000153 --298990582 --194272168 --528616738 --858735045 --387483280 --619048780 --755456705 --910980265 --29841811 --131650098 --403352118 --595159945 --329279462 --866313378 --45743621 --389149318 --375811397 --669845437 --150725217 --975279888 --625275642 --104989542 --124096806 --264543752 --82251715 --268660628 --896040492 --747424243 --691923962 --549874983 --832958458 --218942955 --396767840 --885818455 --332820175 --658375087 --526764212 --359037454 --559965537 --681288904 --549041071 --44561774 --577585521 --742737694 --489912472 --420193541 --366892237 --650479570 --87624034 --951997977 --561634436 --232440377 --398582778 --165045310 --47750065 --153811437 --663432339 --195059587 --435369536 --728056316 --697660735 --850829569 --924450702 --978899593 --680514174 --506676556 --859265853 --409261591 --937359237 --683755697 --787228165 --826104644 --591597753 --690633538 --428759035 --894783611 --327164928 --913628629 --114150274 --308596083 --476033201 --495459132 --292034880 --232738122 --762827887 --292337386 --653715677 --905051325 --311176551 --618777756 --718523061 --159560562 --211113076 --928403545 --60377853 --72069006 --108791749 --139468197 --314974273 --363830572 --450555713 --739809200 --454743041 --139599086 --484622204 --909089226 --341611260 --623824724 --302373282 --201922062 --815350978 --252180998 --468057574 --31502945 --255733188 --74943999 --285520714 --341100298 --779979215 --154268499 --454349323 --816078421 --602970832 --15476874 --236460550 --297814355 --83951291 --492508876 --93486060 --576965803 --904820147 --226341801 --242929532 --226818779 --749534356 --760126538 --517636010 --517085559 --494413635 --186077536 --792559514 --302355827 --119396071 --528913359 --318895268 --516115554 --249361366 --68930235 --943388553 --985731818 --122986927 --535949041 --400359931 --464455490 --152471064 --600584333 --282468349 --772186392 --314789892 --604174303 --727323720 --812516971 --944101465 --85612376 --535562338 --861994396 --746771562 --447396498 --740963125 --911994478 --604983015 --982708623 --317951889 --453489936 --627160427 --379973361 --658286335 --676049530 --769317434 --473474140 --903264442 --430931191 --491037502 --474481072 --418364244 --36269562 --669306917 --202880169 --199910211 --21623479 --692286387 --184349957 --758645211 --153453482 --171515971 --525230053 --530610864 --530234455 --156021648 --797637890 --760110220 --678010700 --77196572 --128091981 --961049207 --121506729 --622299134 --603514848 --762283927 --662509541 --934595605 --896767806 --395667273 --918522775 --67890938 --928494399 --289810536 --163937015 --521168376 --298011449 --201662219 --145932766 --73608166 --392623491 --193634234 --330890687 --492158627 --228217883 --351620258 --625504001 --537050570 --730016142 --380073215 --250143493 --281769785 --22276738 --424561962 --180811297 --236642111 --561358020 --304604457 --710785745 --357261799 --710939791 --56208570 --225688275 --936811973 --109397224 --674187270 --428303934 --371571496 --109096404 --785068134 --865370729 --251708292 --731345297 --513732563 --731759734 --181447335 --438387333 --213212163 --45893420 --355029756 --253644515 --27492571 --46928214 --988620502 --119762166 --833030318 --916995150 --751177455 --250665418 --436479631 --760435292 --571684495 --274998810 --12116953 --107639201 --932677425 --175012471 --814103033 --563021920 --908776361 --573922969 --785597130 --263366242 --182072945 --118013028 --699495456 --518201417 --651114508 --783719605 --5236479 --378194881 --862705194 --481197661 --393901974 --866121917 --64387213 --963910938 --507213898 --727989316 --636689506 --648003293 --395317926 --410525789 --392558390 --583261227 --236436154 --560078270 --675452167 --271760025 --283005605 --820270889 --310472433 --321868548 --21905860 --335781152 --99446170 --323426187 --728205310 --299030836 --572167476 --964854067 --129422394 --946882385 --272267710 --43615004 --365916638 --81234528 --708341352 --271328751 --933856366 --158957395 --810703119 --623847908 --969529020 --535253475 --649340756 --449590151 --295947375 --568964952 --978121485 --981756793 --388562644 --641747443 --806762335 --720859904 --177752305 --837639731 --148501275 --78938 --496608897 --778947568 --650116222 --973969924 --73223983 --815502213 --771298309 --340630698 --910657442 --612559075 --55188384 --97202823 --69672609 --790057519 --307569240 --534922713 --887051698 --858001519 --116750430 --556466365 --627926465 --766316327 --210955268 --458685615 --593429780 --49956485 --636464115 --17604291 --864144772 --213968385 --564877170 --922984222 --235911906 --798121543 --20489633 --299381383 --400183963 --740597237 --444302685 --904007294 --386365847 --796775867 --337320391 --856727216 --471912095 --746687143 --771475231 --515130703 --911444174 --546750322 --567956265 --7452765 --233916523 --506604656 --261246295 --337374107 --466459801 --313152933 --587622702 --169624912 --71041393 --78987574 --166977911 --687544192 --657737656 --184207658 --727687029 --232942302 --702305573 --517459381 --461009424 --846923506 --120220700 --151396987 --523362414 --152440810 --230431888 --889580809 --148263139 --152465256 --824024437 --616347595 --122000987 --227450148 --858112501 --398040137 --269490981 --9876462 --748931089 --340495943 --208917920 --299453696 --14432554 --940795477 --819068436 --76955250 --61700414 --185401847 --843103509 --382149477 --130634212 --444334522 --361709149 --556158425 --825418891 --969953257 --268764734 --521657930 --378671542 --767341468 --884312486 --909362647 --13348051 --450883145 --948446054 --851497271 --605328375 --290991158 --748529174 --411977297 --282813580 --835248978 --995013096 --184046695 --409474901 --968239251 --368151754 --266504786 --38584071 --683155699 --68452400 --17152354 --758288067 --387230061 --113793961 --538909762 --459917519 --629505305 --799320935 --464040862 --476381147 --893064058 --672300942 --29686202 --81909011 --794335578 --152749350 --748194014 --478869857 --890476688 --331390015 --932402271 --242146968 --426906881 --690909391 --69573776 --231295938 --669748273 --492648553 --175036031 --387794123 --716481691 --611910279 --933175668 --771633438 --657273225 --470569982 --914584237 --581323411 --664055855 --292250606 --754578468 --596782499 --260119606 --861695770 --706252528 --844691872 --233203557 --996441430 --115336346 --62751684 --886032802 --712036921 --598102129 --383726345 --856259027 --949476724 --188416343 --688134949 --419598200 --167803486 --122162768 --937850503 --679832478 --239641118 --278966865 --936947127 --710864355 --953805735 --463783036 --844631583 --761700044 --680659744 --438579767 --652582184 --507909359 --339776823 --441258538 --380002791 --497688858 --882882880 --978962556 --924203803 --910611117 --156868959 --116112365 --807782579 --944523749 --973955468 --222038890 --889536568 --323035636 --962486216 --580767109 --718090777 --207819700 --164867978 --638539409 --658986952 --795415351 --475430822 --843013331 --815708617 --888491177 --16723018 --359329419 --557896641 --851407638 --636811075 --100272984 --575307385 --784080872 --551208996 --559727145 --137100180 --749632890 --591002304 --841408798 --520642170 --686688033 --551755990 --186984322 --799216794 --275513017 --523271909 --699053191 --529833733 --84117557 --997743363 --488011147 --468703087 --677966167 --740423337 --984921436 --934416191 --158248050 --9221416 --815895139 --187179467 --235739681 --586460247 --751317022 --633559459 --515613230 --291234560 --645669676 --453924931 --623611223 --407834571 --430776508 --578565906 --559725508 --359103648 --584588266 --462475024 --824308570 --348160734 --984199592 --557184885 --89335527 --795330695 --942361201 --877309772 --52004200 --290758646 --123581765 --242746402 --592768155 --731988713 --818499442 --487628222 --172872180 --610556166 --389060749 --216430143 --319807592 --540004066 --239034267 --495238784 --872226902 --187251522 --409259842 --120240152 --647097195 --154195080 --658529789 --79401867 --149639275 --651445034 --665231984 --672727778 --415364329 --502661525 --786006419 --12279261 --795639530 --569084510 --871324297 --903222820 --974986053 --874859328 --508068842 --350781239 --89600747 --111824437 --733143103 --53269917 --833997950 --486183414 --965005743 --122759017 --90255675 --81768069 --2893371 --199543949 --801891555 --647177777 --952521898 --81729504 --744201780 --132839097 --786542742 --180624400 --647431056 --722401440 --280010213 --158831955 --48422270 --524751844 --82649147 --535670514 --868388700 --174120510 --457772706 --118305741 --656121599 --251489924 --463127689 --303466160 --121629145 --460598861 --385506276 --622891439 --815188583 --477228123 --642093124 --963121601 --564686522 --428907149 --917879264 --600199284 --650901775 --828086342 --603778881 --595410032 --328745056 --861579298 --639974351 --490433036 --182829581 --925990354 --752046865 --326603532 --442387121 --888389119 --266732588 --156352306 --888679490 --239834697 --337633847 --654564334 --699831160 --870446656 --465526758 --138230339 --187055935 --721040750 --784553923 --182303021 --355745889 --829110821 --565823142 --722390619 --448509566 --729133863 --146824883 --258010644 --474102663 --212617446 --896845712 --227388711 --250433993 --498467123 --620744470 --831356774 --143953505 --353647966 --671863171 --264724291 --818039642 --53617543 --574334994 --861333749 --753385103 --823073324 --867346824 --313982190 --83115578 --999330683 --142845133 --373578779 --665884937 --997883273 --839395876 --772171324 --85243931 --869781393 --414836028 --646568301 --235044063 --944426657 --533131240 --985877404 --837375142 --335808218 --414793398 --396705852 --523630960 --121386779 --613207664 --632695161 --515446249 --713306418 --126126082 --459329971 --506254106 --344285558 --629587152 --167417841 --104928820 --969572064 --477406369 --307759336 --190251120 --670791299 --434043724 --995005087 --705914791 --177427980 --522381611 --709726282 --380771704 --411579268 --721559330 --175355682 --593530199 --850508170 --25786893 --33585902 --473527372 --803625925 --503462898 --548023311 --853645665 --823506848 --431722397 --169707554 --506936654 --946483882 --495218124 --894827526 --266054505 --190839142 --552086080 --142219793 --368326947 --901814136 --821561576 --335138837 --138408870 --850554218 --659230403 --971277337 --853890142 --878835156 --98088760 --979485577 --839972125 --185964514 --868765931 --202359166 --240132348 --26299316 --553524540 --458913261 --840402168 --839521074 --64857765 --556846859 --905463461 --419297318 --733654785 --506099980 --374017205 --765745797 --876848871 --987863674 --729406667 --271494664 --123658993 --431681717 --91269657 --479722857 --515879394 --145344734 --896659440 --650427696 --410495673 --383454564 --400475585 --665512826 --686214878 --213967589 --269013543 --702063506 --267778701 --726536191 --780935457 --459474805 --865921449 --865571796 --570089021 --941825714 --33539646 --471744177 --141698859 --290176328 --844576516 --91843523 --147222046 --598375460 --535261603 --491293764 --27163168 --19682930 --688988035 --23559733 --405317339 --770510519 --181438742 --152644778 --482994379 --642010848 --423913882 --588353824 --327696694 --856522319 --314585949 --37841465 --717305471 --116899882 --324777351 --298394381 --111401368 --438718586 --179637391 --130973898 --218950064 --379750297 --647423529 --981660653 --992970322 --875100717 --867603320 --878736339 --543263364 --741592747 --776337748 --93269350 --998279553 --261120480 --457273853 --79443672 --403496588 --292536462 --898524581 --126334740 --281584208 --150731686 --712325700 --871852880 --719003916 --631455283 --90517136 --361996198 --289919675 --163853502 --578070077 --907654773 --162171036 --22085381 --415464592 --176853416 --219870441 --821626033 --251970700 --309133211 --144508853 --403767447 --247026208 --638496474 --447003234 --976700441 --956946539 --973239674 --184809198 --373257354 --593650577 --956369510 --465298347 --970847430 --382997109 --321386491 --255668902 --522584726 --126498019 --648741714 --820013388 --908314369 --433295030 --74703351 --293113223 --598380095 --881315924 --422127996 --329678525 --186255578 --662008884 --766367607 --750487112 --697642929 --879961997 --716478109 --339969439 --224797658 --313391927 --68429350 --216844790 --789180192 --176019161 --81654769 --470904650 --829982979 --655477531 --88845233 --262860795 --713752874 --38856920 --626827338 --537194597 --807112785 --90773689 --531579366 --794749423 --350064914 --937110897 --449113935 --984616888 --743546305 --287334104 --316611621 --461534169 --349093389 --923540038 --481936276 --332464260 --199721901 --83163471 --377249998 --483895668 --50040894 --387868722 --40643147 --752441305 --114492761 --921279303 --141732752 --66986609 --314405855 --283338862 --644393659 --489787987 --957193827 --6985972 --895646356 --11585349 --711230472 --709055710 --323599982 --804971460 --146410216 --848500697 --791923285 --986198845 --708412671 --158996090 --872468775 --377754411 --345577101 --455591894 --277030742 --537991478 --921249247 --821542 --99629774 --802058476 --82577966 --765557146 --138561667 --424991305 --431438795 --511006199 --359508646 --624156457 --290539436 --377767051 --867778752 --796821666 --244787623 --733509349 --902036053 --903871289 --903662261 --175059259 --738344681 --324181655 --920567920 --251736910 --388473367 --129558429 --152019318 --837177863 --586542804 --989947739 --685787868 --456140614 --449230219 --166922378 --234202056 --347315200 --654949629 --754604337 --97454616 --62916752 --713295772 --438381968 --263282890 --123975457 --840323657 --289668846 --807537234 --758535265 --917754514 --741104662 --302274115 --186700810 --629378657 --177288029 --787166054 --740023718 --903745000 --341707434 --821599806 --666653639 --276551798 --676198686 --965328492 --316922418 --894624747 --647967292 --563173608 --383994255 --798884002 --903074442 --231831106 --731903024 --706057488 --713108253 --278241253 --379871469 --316233197 --794110097 --792609705 --334631038 --713863820 --269674709 --543989321 --846801379 --117203772 --716628892 --700254074 --783674900 --671178239 --992908473 --970083397 --844191301 --860674917 --596890819 --26072570 --160331721 --281389174 --282114192 --344844291 --659047276 --957950332 --995269486 --394775746 --510804965 --223881344 --794899767 --478157106 --197247387 --179227239 --262873197 --872117472 --375462607 --542585277 --134925562 --349870803 --4774967 --524311700 --48060399 --451735457 --858001626 --992022305 --11166522 --490776711 --552381339 --493036807 --710885220 --816108217 --940109688 --606766845 --518328667 --531160487 --557616916 --815485526 --770638557 --512353994 --888545526 --263583933 --395417720 --158223457 --49445192 --436894107 --648041705 --736427060 --267118511 --743261456 --790032973 --76326824 --484106301 --189399139 --400187550 --494994675 --87836372 --944598836 --8988526 --948663351 --258641623 --922119846 --62274118 --334588825 --39033563 --263864353 --719350096 --485209611 --794085059 --987832317 --456660598 --217296567 --671758292 --788358529 --699302580 --92335589 --801553322 --126341043 --795376962 --92705421 --600151216 --444723249 --516946367 --454869562 --919046050 --282169381 --554583090 --699520665 --436958585 --269751364 --438424914 --408042536 --185204022 --432216845 --184262940 --413180738 --870681499 --590172520 --20169956 --960691705 --294277676 --249195858 --797274980 --774273060 --944715180 --546913957 --551627161 --565614052 --806495152 --766340627 --734760575 --229565864 --85601646 --243554459 --2275281 --316773403 --946698469 --579235372 --135963563 --639137306 --257512097 --137152528 --744570019 --744315246 --218379358 --173825110 --692702735 --63753550 --8596315 --989245117 --325462467 --540242966 --311714820 --171826198 --984824394 --372831285 --191675509 --870083737 --47504924 --843427964 --143908054 --921220700 --900628904 --549520551 --567412539 --652610466 --670342099 --326821953 --891097185 --248395005 --878626696 --998166839 --639498265 --644832235 --400224840 --442068695 --267957330 --544336869 --169847543 --361844102 --64074940 --673404336 --385121342 --705109159 --331860876 --369540890 --694912399 --510210854 --13807828 --252960528 --733227360 --220006669 --649670114 --219821457 --128174949 --252780930 --145202010 --947922592 --736520137 --716988723 --465474484 --725597702 --489862283 --227889196 --694989018 --43633658 --550014284 --408130692 --3236670 --937559016 --681733408 --663106874 --171502109 --912181499 --282830007 --19387508 --679779013 --762345420 --480595626 --124870301 --12359830 --608164339 --792718704 --964878906 --35542201 --291581436 --79728510 --331906446 --5816472 --633108745 --493916194 --490155513 --164080202 --497111797 --842518821 --975640634 --979249638 --293057197 --74834931 --124222416 --24924451 --487171436 --423754933 --776468290 --233769481 --529144995 --79818754 --438465003 --709474928 --414940717 --141695288 --273064261 --762291938 --216073464 --218276403 --915624264 --793289236 --530044800 --534918524 --671396662 --507145238 --589734964 --77674692 --319260967 --956168423 --180207371 --261873802 --624109430 --67984308 --777325324 --844074823 --433353238 --684162301 --151502601 --425450911 --360591585 --236183917 --894160452 --472953000 --525017652 --618286784 --227896880 --338217595 --709004255 --962291166 --519741858 --755839326 --892797310 --715754599 --324087443 --176677198 --257057027 --303284645 --5758894 --595271388 --997502493 --108266854 --247388848 --10177234 --455491305 --291455290 --535323928 --20885932 --54146786 --188986708 --714901135 --412826956 --11165142 --253098115 --556658150 --604058809 --104070417 --205307375 --440786444 --651111862 --271845098 --322398115 --15070167 --649588635 --430948146 --708033058 --865084026 --405166862 --515614258 --874815106 --264431501 --160758023 --89961825 --150605550 --44284539 --711181149 --974623991 --473049769 --514350812 --314106153 --202354374 --479253444 --266892640 --603698362 --351824689 --768142640 --7846882 --619953861 --359298158 --856043326 --541367839 --55453336 --568429393 --828324158 --102719721 --531662642 --167812118 --92496592 --500302211 --455581839 --22550909 --378904867 --664437446 --627706458 --480435127 --804029846 --434711140 --598291094 --240592493 --881368010 --533683670 --698898233 --888010751 --772295743 --198283409 --213172457 --633988080 --486253902 --492590193 --819860039 --903675359 --63830873 --279937418 --337092639 --360852510 --693360072 --390334830 --946410432 --811480071 --345687802 --532442352 --663961264 --462120707 --196096647 --894745637 --136703853 --988299564 --292930558 --358917788 --835131596 --397895397 --67624313 --539873547 --277389735 --999892599 --172878617 --209203422 --801115777 --685040330 --623835190 --782963667 --460409981 --823554815 --51485414 --304916575 --703238702 --127203913 --323286498 --384270888 --539525259 --8999159 --73349767 --550435805 --977044249 --517623362 --548796881 --468292143 --787364998 --517580148 --751954084 --286160242 --570616792 --735404425 --472300872 --323476262 --497463473 --218718102 --970705981 --826347264 --375133172 --205228590 --252418999 --17025689 --401512378 --357868016 --589277085 --480204346 --405855676 --588705302 --400328293 --352992986 --900788508 --33231109 --934043279 --867656121 --624310004 --445926140 --208707032 --944649332 --58571436 --551978499 --106054144 --340041326 --285607906 --497741089 --853277464 --519988273 --327472381 --5913359 --244892059 --407560618 --946733658 --430941038 --69361470 --65564522 --905847596 --531451261 --151379453 --127086191 --319223225 --857707256 --854819487 --393601283 --364118603 --50297092 --687872968 --917865550 --909663219 --388644142 --993668814 --10604074 --653606159 --422267016 --809421301 --782777727 --849127011 --510405195 --884475106 --543779518 --711252752 --319183888 --298547622 --780810534 --594655890 --817017529 --702192332 --872832920 --144784383 --389236350 --102352883 --790544980 --365311964 --524333603 --217069485 --64546645 --120480837 --539358519 --508480178 --638752263 --753250786 --331042117 --17022631 --729215518 --78956452 --33292589 --574318799 --148728173 --472901613 --865913428 --557776963 --796067421 --64544151 --618993363 --84125485 --882290377 --4745971 --247303197 --964299541 --884285331 --518673002 --876333661 --453611381 --97107973 --231655718 --928991709 --77135823 --762545561 --470102877 --910427979 --164226177 --807828408 --832906240 --762237642 --830780654 --659435143 --408361838 --105330848 --727407556 --982125610 --970095319 --964681409 --50173403 --623256042 --472308502 --292978042 --893294409 --23849060 --945751905 --64261915 --367352845 --463585457 --181856897 --384190551 --278758447 --95315360 --671354204 --453053877 --232662169 --199630836 --524001418 --796446681 --97883694 --563883526 --352735748 --476544756 --823104332 --461713220 --388103085 --541844059 --91266834 --48238378 --81963095 --59104078 --314685164 --879733198 --347896303 --500058264 --522790209 --822376371 --109527161 --116639216 --290695634 --415521136 --881129912 --112464843 --808946864 --788319699 --563881061 --739170767 --878355985 --586652885 --127954023 --363369037 --193461976 --354533884 --688121117 --933248541 --321226675 --377069862 --286693710 --507347632 --719380660 --926164614 --546816113 --830667812 --145832815 --730930479 --626126624 --679321491 --728863339 --168461028 --570178516 --512782146 --992212520 --222183236 --619391914 --98473123 --651027906 --388695842 --347986634 --163548701 --114860874 --678361446 --733146064 --518376812 --325419177 --192350589 --211852639 --598021316 --392975168 --752670023 --879063355 --22082428 --558376898 --321618207 --910285505 --286412663 --300696910 --665712787 --424193714 --282778919 --988274739 --270576280 --575254006 --45801431 --936911057 --23563669 --401454031 --833914783 --368911061 --899659601 --103058969 --496680452 --261797281 --499404965 --437127589 --11228630 --234653768 --261715695 --760162486 --973261296 --613228887 --814830663 --807999548 --456885728 --445616080 --365697037 --193651365 --972254507 --479100304 --222618572 --942995103 --235135061 --951730021 --588108467 --819773946 --388819187 --617055891 --742394086 --638020781 --318163147 --308631671 --596143979 --424281254 --645911600 --77288008 --658919409 --620763880 --131924807 --644515357 --818233497 --701840907 --383308513 --602810470 --303696916 --983308222 --12560771 --483828764 --839677305 --154473446 --663556103 --911376769 --367955034 --817362938 --10444458 --130081146 --218178375 --519302645 --703495472 --670730650 --129895899 --244364798 --441610267 --138398432 --557543880 --143998241 --103184514 --718168944 --863034515 --896917651 --452468821 --5253380 --369238144 --562492615 --678568882 --384903134 --610565026 --936494975 --706697118 --423375760 --466875931 --462247736 --862453592 --265142696 --682682475 --939702007 --825983882 --628192471 --169780658 --403869806 --888613482 --637246186 --546436667 --981400568 --396127045 --853131812 --872520709 --351333436 --975635784 --760185201 --87007163 --79353281 --863306863 --630940907 --807440735 --359226515 --587158398 --878273534 --615795798 --859343593 --782612565 --785264940 --558392004 --527036334 --552466035 --933490661 --391172723 --466582888 --524332573 --44848797 --731440138 --895484804 --83926655 --659392164 --990090321 --164313527 --163455964 --103755987 --759764182 --864500162 --563651284 --555005284 --191754206 --783728414 --701591952 --487575563 --117747498 --284405295 --768084937 --609330254 --685101375 --947827094 --972372122 --910817165 --47217973 --945763449 --534094545 --177379713 --41646033 --186510521 --232852779 --289972333 --437929371 --868761633 --528811355 --446398487 --472502900 --999218951 --763928297 --530205681 --942978706 --584327949 --355503885 --826249442 --825651250 --29339161 --758818323 --639007521 --974542726 --450751103 --21454021 --401393978 --138507738 --150748540 --837377889 --984426061 --396909707 --110072175 --978511246 --963330037 --334966525 --59098836 --139397120 --362541145 --655034639 --159358654 --584766271 --283302212 --667917675 --218971463 --465182693 --310415366 --276250673 --37811981 --532582660 --731584511 --485296818 --364657720 --821567197 --264742303 --824942126 --804136202 --341362103 --542713014 --732406771 --5848832 --940034963 --208974224 --485886816 --960079618 --345489236 --400690208 --402507291 --907863731 --606176583 --687823046 --912195517 --179809230 --776385621 --547946847 --786353641 --997269809 --409661992 --365984321 --44912925 --563704838 --479304691 --672468374 --142998118 --445282470 --560999304 --71844531 --650508755 --327088761 --608407448 --123454456 --754917454 --796202351 --272387484 --949097335 --504404749 --321832696 --485170204 --846515507 --153545733 --409508845 --687556302 --583489944 --608532994 --918998387 --547535806 --59247404 --787053471 --236173851 --510286224 --414252277 --990631870 --770138263 --45526049 --872700440 --201275937 --811667631 --575328661 --403227826 --212028114 --231008091 --661351513 --207737409 --566325591 --596204220 --173147418 --355499822 --260659314 --865507559 --767398573 --159314740 --517348187 --749470096 --587592233 --274305278 --90122 --732402600 --289838062 --264528554 --651995944 --772028208 --600090442 --670544843 --484407081 --928969317 --460903143 --727796571 --150430481 --78671813 --14145390 --738060531 --603837635 --947249027 --512281939 --349275270 --415624051 --535504210 --407394390 --363548941 --535120573 --891802907 --448019272 --650673925 --76321477 --12365932 --916991853 --7125389 --136059190 --185375828 --843883549 --235663129 --447127746 --772764761 --553871138 --564594368 --327313769 --949819644 --378647768 --495368781 --430828353 --237909893 --340750228 --791801244 --112632779 --245224119 --497687176 --833377129 --296583654 --196454733 --311584431 --266349743 --134618030 --805657827 --414364079 --84815626 --518382120 --339890239 --847954077 --684213054 --776268099 --642736210 --249858980 --79757822 --530888163 --465136997 --283580252 --42048173 --463265649 --463435009 --914112598 --558216707 --894763576 --213063936 --59202227 --724583419 --272982673 --530797947 --753890874 --341521960 --34122278 --389414113 --675633773 --408605110 --163741697 --495097665 --81757169 --366895729 --202116376 --887498583 --252238142 --505411658 --320712236 --779135443 --754586138 --816297457 --881021061 --826323546 --853412340 --85855919 --887748251 --16719564 --949662822 --464994127 --3958626 --560156411 --1608719 --938390038 --52147804 --298996655 --63735342 --687085152 --899534520 --314160836 --863194412 --20277483 --495276564 --104646994 --52980224 --113734798 --858526183 --287323766 --233005126 --216561011 --727041354 --229026855 --72801959 --368533650 --68965049 --114926562 --147317381 --871460041 --489174336 --421225444 --771173095 --722816165 --833308623 --261926848 --217183560 --307707111 --740777612 --224179456 --294403373 --639720935 --608809670 --218464792 --786794936 --165752683 --72358850 --716849067 --830523636 --584182003 --107579138 --999959430 --127766780 --551744592 --351100373 --509169231 --522463649 --160511938 --368186472 --810053216 --141724490 --612656586 --145518465 --808708529 --240387436 --403777332 --861638228 --355807234 --236464634 --168848262 --43175645 --496927783 --983456934 --866694611 --411168822 --465910370 --75551575 --299764654 --909174692 --241923386 --795007390 --402489785 --279421228 --222530101 --366251036 --951494128 --661882208 --520468346 --885902651 --275428028 --28854650 --145507072 --458442062 --995293619 --102678752 --592339045 --360809371 --821937486 --399550983 --683994825 --404504993 --298733259 --559280450 --960678808 --466715623 --356665386 --998417450 --118414374 --519626945 --171715727 --902769105 --704809016 --783171999 --350288930 --941762559 --869035603 --807569183 --851177580 --225425189 --177833870 --370524413 --445451574 --110014214 --202309750 --399825665 --739498742 --158579291 --712074169 --859875985 --848947410 --21959349 --665156043 --639339210 --50738255 --864284633 --589438307 --477735278 --86365636 --462757089 --752664015 --607434165 --532143806 --425174436 --872608849 --562125654 --413430165 --101850362 --334393578 --89235670 --671915080 --582735898 --5547510 --639773287 --313492767 --773122513 --490542234 --100317427 --493852961 --116636658 --662247568 --701064163 --585466349 --135424364 --32395812 --337482925 --680145539 --839155532 --744828008 --144193042 --106223390 --440311177 --951050831 --165349424 --301602316 --113800500 --892748568 --118806118 --848498039 --524915485 --810140220 --312289902 --56795749 --776442874 --366057234 --74176788 --341484299 --997596341 --776862082 --519370987 --203571729 --909130075 --528540278 --417977271 --724280897 --998345557 --69740191 --918667146 --89868270 --860749952 --491669765 --872189171 --738273784 --666163021 --517193783 --434631331 --81394117 --46633357 --119441337 --261559727 --619254492 --508112373 --268028305 --303716367 --585820651 --337611211 --339573778 --91218125 --163590083 --592655469 --504759573 --203846670 --410348476 --642521654 --344463675 --426310935 --720469767 --339591786 --253710831 --254010227 --384901825 --612084608 --127498197 --453065027 --395691788 --926818933 --179596103 --420821481 --714636570 --872315424 --953318422 --199204091 --989701726 --157847058 --420500711 --595950112 --45341076 --774364841 --119136312 --589790457 --27135567 --823493878 --661115802 --497347171 --92063244 --845934551 --937901246 --845057632 --917396152 --813254395 --320748257 --757485182 --741994169 --923063612 --222549988 --376187642 --828901758 --653742878 --520748637 --308019799 --660368848 --13359363 --16555899 --719151098 --523087930 --70930686 --591669851 --495821639 --188217124 --152969901 --405715080 --162710492 --569199822 --675850377 --629589200 --625195608 --539165973 --290203772 --675236511 --15953165 --430396596 --280576199 --227074817 --268014518 --835736910 --83538107 --763497630 --149242252 --642212857 --972018257 --473757278 --848600871 --894522249 --180058391 --82622675 --723142331 --528078032 --972155989 --915231472 --891180990 --144736563 --470380975 --266721301 --361483319 --198368981 --593211454 --892209990 --796701036 --194612898 --709769351 --825164022 --278011826 --47268385 --461308210 --829878392 --40693512 --807482193 --194694734 --466145068 --622089715 --657680079 --906338634 --720241861 --528638858 --17724717 --208601141 --953771142 --790586125 --339667861 --202346615 --777353500 --749334891 --961174913 --814902764 --919777616 --730617551 --624188172 --928577351 --743984681 --777637504 --220185703 --112025522 --871918008 --846213401 --241107524 --334123132 --892778287 --600882739 --252070792 --167207745 --311334460 --53902269 --925671780 --228097143 --542747525 --407570331 --846539512 --767936918 --652157041 --178489854 --932222078 --901495698 --215816377 --579256970 --261249326 --8764081 --795755333 --763321377 --507902815 --357621369 --381569389 --416090431 --369617203 --823537741 --804405236 --470901229 --463298050 --604163992 --175142366 --805230565 --615203814 --495943987 --439409407 --866177128 --331447143 --87490476 --240572896 --164993596 --99149833 --408553263 --187329206 --320702403 --430873737 --563627354 --305219543 --726294894 --220787934 --902451748 --527174292 --771058687 --112427023 --311660799 --503901518 --877332003 --729507905 --110386779 --142238392 --469223886 --18985408 --539279147 --547160709 --611829895 --417967721 --174903588 --972152033 --844882841 --216952849 --163481054 --946293136 --317557394 --204139429 --335865388 --540988415 --885671888 --156113601 --80348109 --168254417 --756887215 --956959806 --153382782 --46785167 --678935423 --288034064 --802544377 --656633082 --237671894 --685287475 --742611651 --43652125 --789645862 --40703209 --944968671 --478493834 --806346584 --248907840 --417552720 --207258774 --995433456 --801672258 --755342904 --344276596 --773464344 --93818661 --641675212 --737535966 --188786278 --599498040 --855495370 --746288924 --810209541 --379330065 --266295683 --243199231 --540552582 --756893416 --415213682 --298365004 --472120302 --811249177 --213264068 --82035223 --609821948 --124806949 --635455092 --782327395 --441241393 --445598584 --640043422 --383422104 --671244049 --366206223 --743175813 --328017745 --658057451 --723426522 --452242861 --823240635 --45741215 --343288780 --733287721 --879534646 --556828643 --738517079 --798971942 --426788545 --969689559 --141581556 --532788060 --516807851 --739089950 --471247396 --892076862 --44780682 --534989485 --264446082 --578775648 --172885562 --549200956 --959829771 --406156787 --738188989 --778642420 --335972406 --20456917 --82683136 --770946282 --62348446 --105919276 --944686667 --784301404 --231808879 --266134621 --975751496 --297735488 --489801457 --42532571 --652519301 --82239381 --976773735 --581732826 --983402230 --239021850 --959896061 --79625914 --287746681 --143404984 --729925343 --673272264 --380864432 --648456527 --543991226 --640754802 --396662339 --549183274 --574755311 --850759431 --233693096 --440036798 --618807106 --80490435 --527212686 --732059979 --308303541 --182346209 --78866993 --948160558 --46892318 --735315691 --485465437 --391350467 --31266260 --244515156 --895152887 --270167787 --335723379 --119896179 --890339177 --685015325 --816688272 --382237755 --937341138 --259413212 --167042234 --639159946 --164692187 --403261832 --614365136 --569291762 --144867312 --259825326 --810928389 --77034633 --481662748 --636437207 --567639935 --253686155 --532276976 --880191442 --886829561 --298348049 --552272951 --412149808 --716085155 --948204160 --233733570 --345247277 --544260522 --691631664 --605423883 --751434141 --906473024 --68829045 --803893176 --947917006 --791986702 --971648687 --84973227 --91602669 --779569318 --93801356 --347268650 --408072887 --52246019 --457539766 --271341095 --992581823 --666315872 --810939774 --56992077 --236327238 --288492502 --288432343 --761556250 --712996845 --895016533 --630872246 --122113610 --457309393 --948264271 --568053265 --669285 --982520517 --846000030 --90994911 --848327298 --222963882 --171789469 --190234222 --605748875 --385118271 --141464427 --770397180 --977264177 --866363753 --156373331 --214468309 --11390748 --636101642 --134934648 --683102068 --121521036 --183376232 --110800575 --218744481 --614277235 --807331893 --253889267 --969495199 --956051643 --569095258 --475256630 --504050203 --267582465 --464635305 --141284399 --490754093 --743640056 --698974534 --419990261 --839165879 --529586709 --351851118 --419705887 --94745333 --478843621 --269255502 --946936169 --854785650 --514933561 --305099817 --286911331 --814505717 --487933354 --828210519 --104944303 --702939628 --98567616 --986423557 --390417833 --114362077 --138084606 --761333854 --48686882 --354353263 --10778289 --469753132 --961436398 --18247095 --505115493 --650747237 --958736628 --557982799 --843558376 --944635555 --210519934 --386189702 --723335891 --307983965 --675203805 --246717796 --862976015 --436640680 --549602550 --780859393 --611547657 --356069567 --569846574 --274186158 --161226230 --471883701 --167631293 --867222616 --282802811 --576908177 --876551108 --386174125 --524228418 --987846240 --843345735 --199257647 --988103371 --379067953 --480624093 --699062574 --446878131 --148835141 --542386119 --716854297 --232927456 --27482724 --796190479 --425208492 --107798493 --624864490 --896324754 --518276159 --683383521 --781398589 --524962726 --555578331 --46051325 --261146040 --582045230 --574043618 --667171397 --98119235 --874670034 --202250843 --943672195 --171142536 --753951185 --642534009 --264548771 --638923523 --122805284 --804672080 --889743239 --13956955 --78821303 --18643032 --616688490 --894055805 --653618725 --574458415 --71228863 --651055266 --131894307 --549851977 --274984277 --608638552 --339196492 --102529422 --704061004 --944222670 --910749889 --741883213 --128645971 --243707109 --981509219 --833348371 --722843893 --607165167 --158565250 --285362289 --565988284 --980671553 --970293230 --988918118 --114641323 --550525638 --171921534 --22232969 --943438418 --435384805 --747349608 --392068906 --124855215 --169298735 --666309906 --825759726 --490629426 --547669529 --774905203 --74412890 --112938740 --169476222 --891421295 --60964802 --153822898 --155481245 --267093397 --714329988 --425698207 --233502276 --452450381 --725502177 --482084994 --247090196 --108342310 --508240074 --945875919 --625440877 --231532975 --686145341 --74018286 --137777687 --694547862 --114255473 --753905316 --900344153 --322552124 --793366308 --890194692 --852023571 --125412195 --449028547 --340811350 --571894999 --973478838 --558057102 --334578348 --419827173 --426528632 --179233060 --848107504 --957492326 --368708557 --909207207 --403284059 --90660116 --115525195 --739079767 --280939065 --106375112 --147062611 --375118342 --528749713 --551165076 --949293533 --918866654 --185889394 --388160837 --390784750 --94156361 --597788144 --308082023 --809189239 --320393426 --817167790 --948614839 --258105052 --205415921 --470949110 --830437410 --900829870 --57359118 --749333112 --955583981 --662071158 --473140736 --13552160 --498669146 --363004858 --999663709 --505641253 --542584297 --871921380 --435148004 --570507251 --733568053 --8962285 --164160996 --223680318 --454875172 --925967136 --622133790 --434606217 --507669249 --974479414 --370078997 --932140079 --910462598 --343078784 --840968261 --409209302 --913841878 --580952729 --992241290 --338309779 --182858344 --264216625 --743453384 --296023938 --87643494 --836285966 --902592910 --708651977 --611949487 --772850723 --476438259 --720878330 --977229836 --434127088 --645586071 --60079337 --819330814 --971143167 --165896625 --834742779 --834403286 --259230803 --877022141 --865100720 --576047754 --433974687 --920712770 --305209749 --366510249 --428689146 --694245220 --276186288 --587606426 --251005383 --845599568 --491983180 --179619465 --727701591 --506377857 --208737059 --567516194 --981874738 --253982934 --465725191 --601070199 --865909461 --80850335 --549453766 --603028509 --836102152 --378003818 --700212515 --184196036 --406985767 --536824640 --515939424 --377746692 --636752092 --647142968 --347604153 --601995469 --168954321 --242195187 --118406311 --414512148 --946370557 --651358635 --652439971 --830568363 --875239604 --235103999 --371863606 --116567076 --427302299 --778183032 --338924349 --931855390 --296853370 --451937771 --520228275 --165166174 --665214255 --740587899 --327204710 --983014124 --326604255 --998541585 --643235669 --555365101 --34024512 --158574269 --285993678 --756906024 --825045906 --697919227 --481943983 --957768427 --7560538 --682293801 --426047473 --636078212 --385468052 --621583249 --377771206 --765582067 --842438100 --228194778 --675631070 --478983556 --15222389 --927377828 --670030223 --557349382 --423765443 --402017003 --882785866 --404251574 --563813013 --536557987 --527515572 --343992206 --949226511 --908131355 --219904419 --7337582 --612535504 --853939389 --202787041 --306255639 --993753175 --752831304 --306165634 --271255088 --363068503 --987809905 --595685 --415692308 --559949020 --298387181 --598064513 --221779230 --506620646 --833204687 --313872530 --989198341 --402105424 --496753397 --710543676 --644969164 --583720064 --137296363 --133506169 --571579628 --108995528 --910728001 --223343291 --87703941 --659400975 --569571813 --773483730 --561529818 --975839102 --969479155 --880468711 --703619536 --539592094 --180813327 --397508215 --417633460 --338174733 --469389198 --120976207 --433600863 --350964947 --494032679 --207213868 --469636104 --700073195 --682667166 --998039683 --869875875 --580039254 --357826163 --126948219 --557666970 --580655760 --921388662 --538929821 --569987020 --437486459 --528902502 --282536927 --350531882 --695349884 --963222425 --918169965 --409433584 --500606650 --607988135 --41848208 --708206865 --844200268 --406975433 --727751642 --983351040 --976275695 --848169560 --819471028 --509529033 --946194731 --3085999 --323270142 --307774489 --85073179 --969220190 --64857891 --564196266 --648991984 --575651350 --761356856 --557743763 --422828231 --449732421 --154385268 --356595835 --991626519 --623370377 --42644253 --57573017 --580579811 --560352619 --234618430 --186547981 --782842296 --909370720 --90133683 --601408655 --137161014 --448442554 --197276563 --846852218 --917709792 --15006118 --200404264 --524446170 --833429545 --32844848 --500795638 --536210972 --885870561 --567374729 --910019871 --597438711 --437724373 --468198505 --274187759 --251856481 --158487798 --226664940 --948825934 --858415838 --50826955 --729369714 --629038536 --175936199 --598001265 --858937177 --145167484 --299344350 --928087316 --768645693 --617196307 --221273971 --200611254 --327315094 --21560687 --416569451 --743515440 --89583736 --846307075 --959846377 --673906615 --169769627 --790044577 --701382394 --921424026 --772986537 --23100151 --843259593 --717647828 --228434286 --702178774 --809686641 --753829738 --60135459 --887505182 --390927564 --631116422 --190080122 --862018395 --114174229 --787965498 --583712987 --458886895 --306828774 --780943084 --749175672 --345722108 --518706239 --573710820 --994356283 --781116218 --163099681 --218253618 --153122013 --865614486 --573152206 --450093974 --218943847 --307761301 --988920391 --854093933 --389390383 --380374782 --793978629 --547264647 --668385046 --889922169 --38669010 --674019996 --902163854 --31971699 --170601110 --196728638 --15134805 --856211250 --751260671 --720487174 --953134963 --427524094 --336861550 --339120632 --321212756 --4117329 --501945693 --637405464 --488388378 --546981243 --83204126 --588530903 --976782450 --642075313 --231725252 --47678555 --173803218 --32008963 --620903088 --967574741 --168024211 --784970888 --966107084 --395410615 --132475561 --922045898 --851729902 --173912356 --599204463 --21471634 --550218597 --74061749 --590537872 --964306638 --257674722 --894334079 --567247501 --71672954 --938547513 --521061230 --299263211 --923218893 --54593400 --789899523 --16538450 --901562560 --531344561 --956011375 --717467954 --463112130 --246916796 --369077872 --817116939 --824463640 --737259578 --362139610 --569865247 --919142401 --814893328 --501938482 --246850667 --514163066 --397326460 --349175006 --76378134 --884813567 --927189301 --782282287 --113173961 --59693351 --296498193 --133241875 --43481586 --447509660 --850355673 --223656146 --784947275 --783033462 --76958169 --471981573 --871174198 --569448973 --45557822 --663392492 --776054615 --589256773 --363392597 --186728634 --84086960 --597833640 --488518867 --207027142 --75309217 --429691259 --865689269 --411930931 --217962645 --969753245 --97368307 --640307991 --869293461 --631585397 --605107654 --715452380 --436655596 --234941793 --137358068 --505179504 --746400696 --640836354 --734302773 --622358313 --935216931 --635901606 --666168927 --609143988 --895396837 --255758810 --162237349 --946236634 --886776340 --284447273 --599248315 --360776055 --581316047 --784964525 --70846467 --65331988 --785858046 --932931070 --311874689 --281201888 --348194473 --216641136 --788732449 --771545390 --681667435 --841917845 --315512470 --749382538 --56046644 --473426068 --961411628 --874596149 --599010557 --831160727 --133700577 --272956932 --492773162 --111596826 --961567103 --425242260 --248153101 --899560261 --930868210 --618323292 --905112834 --144551757 --905172019 --354470497 --574781632 --330687242 --571361997 --841333784 --307594778 --646735495 --934394829 --546487868 --852541624 --8299307 --44270887 --809978216 --571266548 --544616784 --716031913 --212643588 --502638902 --750543590 --314495987 --970943065 --346426328 --171854218 --909273046 --885367615 --485316737 --530268029 --342291764 --636265941 --921537818 --898313675 --241060997 --757184777 --42526998 --345578587 --596470683 --733332389 --968278459 --919807291 --193332367 --95456211 --777641945 --358508098 --343937574 --989750733 --641774930 --300452084 --639311326 --370084884 --92398715 --217891305 --894081749 --842477281 --699232126 --432988656 --12762051 --165110732 --27568899 --215653184 --858716226 --122613527 --544277639 --411176509 --946146752 --638319233 --537014038 --913593352 --535197785 --476408186 --897689071 --560168821 --8471520 --133559285 --6353967 --523698429 --288057879 --623666383 --679021644 --511458578 --480182814 --892268686 --237956493 --429201642 --779457443 --138691255 --992436650 --889021354 --188134337 --163476406 --539196392 --123934901 --436005714 --423736953 --347690186 --415075993 --869501481 --303045491 --52513784 --683788247 --340416289 --691474342 --267982660 --397302102 --64402755 --761049586 --9409786 --481693021 --971337633 --265943942 --795228786 --803616611 --719520265 --60800344 --931234911 --506336157 --951833803 --197951972 --658643227 --357659298 --746820829 --441489651 --657698516 --687362817 --408615799 --176642646 --712636915 --918377796 --274211202 --332937824 --53143187 --590927814 --110072705 --839315560 --956999494 --708292748 --413134983 --659517245 --430056525 --828758327 --300466612 --362171389 --318450803 --327933399 --528662462 --94041803 --129697762 --574652374 --897089098 --772450074 --432954008 --437987772 --553431014 --183606404 --11779002 --261093070 --711590319 --407225290 --509705851 --313434692 --743254324 --25934171 --387281235 --461801928 --210244544 --395889428 --572043978 --620685854 --673479386 --536146361 --368295066 --427355390 --796119914 --818611553 --514641132 --637640287 --407738047 --522405265 --217966217 --437263320 --304813389 --380902764 --311804072 --900305478 --19109186 --564532231 --438733034 --347310955 --488585076 --205770690 --209677828 --30380502 --946399841 --875772827 --45074655 --655586279 --211082461 --401768783 --745255131 --537771008 --67238960 --832785280 --152836819 --6485579 --132157632 --208612102 --284498345 --278996642 --363244281 --103503339 --991163222 --631116614 --250208194 --281892663 --350177050 --308578677 --221804324 --952653166 --350693548 --771023933 --974221680 --739592377 --647513744 --173176864 --809619573 --317035464 --471750227 --440457906 --738587378 --814369793 --471424021 --21736456 --67938859 --928077254 --847811787 --394434520 --467084389 --814032023 --116514766 --239027941 --545183138 --3835100 --267437208 --52934657 --166220553 --101241464 --101772788 --942763076 --96647444 --867613989 --121221339 --10288422 --55023007 --336656826 --877415392 --837316616 --845913045 --213660405 --981733632 --273307309 --640915626 --281507457 --718495053 --248980697 --913626223 --667293659 --729200098 --302502072 --194542683 --105279774 --429573121 --246412302 --547266508 --170687756 --48484894 --880995084 --533186859 --944743329 --756567262 --939711586 --100427785 --80146476 --429755643 --460944808 --186383964 --158244499 --264077948 --707867556 --586381353 --389887011 --470235406 --105621578 --403551942 --514320426 --533276777 --154293890 --318374461 --95705512 --553548429 --743869811 --412597763 --325005136 --582921625 --548911149 --961901203 --748161455 --590388627 --907972951 --334747923 --939070433 --250443051 --491414352 --973908144 --76268636 --432695005 --487033829 --432537860 --797310627 --282642756 --62983683 --949003688 --144099791 --216627235 --402352157 --518369581 --394539577 --26041745 --683819544 --691987187 --664462554 --381138098 --499711910 --586035557 --43913145 --521659522 --983290167 --137735976 --860670040 --200555440 --938212477 --583792068 --645682962 --472625945 --374400405 --391310135 --755014078 --529551463 --166483211 --784165560 --301711020 --329985953 --894941415 --688834311 --976910770 --110936016 --383143331 --531766478 --119540188 --82867716 --986760935 --131360709 --202552716 --698444177 --939499557 --650186567 --382300372 --944938289 --796371208 --199539997 --679628958 --660177310 --90481940 --188019849 --446671896 --72400878 --176268926 --249047473 --111629199 --322064945 --262402998 --437831068 --342160846 --233860456 --930222825 --987056815 --717371409 --53476819 --792291399 --585763268 --84267176 --22368893 --122851261 --903253777 --204081032 --131260199 --54667690 --575368150 --736220810 --16091785 --121128895 --243146251 --611399074 --295827872 --632457456 --630041487 --474229432 --901096997 --480294798 --294563788 --295533635 --986959911 --990233567 --148664185 --616023218 --329479208 --191421763 --5261408 --677445264 --266337633 --691176639 --269678472 --235356075 --168940717 --568390256 --135957950 --726295803 --358160652 --348845441 --667035119 --758550614 --223823844 --299396261 --284014310 --654067848 --808142456 --914129461 --724313230 --969280887 --278060232 --296706311 --708530487 --344451525 --690709389 --4044803 --585112724 --636329190 --107295039 --353180579 --104452013 --331271529 --203755567 --450107008 --296406061 --424948740 --552336998 --746230721 --480952362 --371550068 --653593454 --181652720 --479784330 --28287103 --212255546 --231797490 --785847448 --860884989 --866997627 --762007586 --59405752 --192933461 --975024411 --509543343 --998446459 --269139582 --598809790 --301032760 --666569716 --828222321 --84365481 --84116283 --383608252 --884649718 --690817774 --158678568 --119561435 --515689050 --467316394 --760589049 --490102395 --578531300 --695460137 --17362791 --85314904 --991543242 --103609503 --175749787 --253439688 --644007159 --874870242 --753276814 --306901114 --177546035 --184854981 --527649109 --773285537 --93881324 --452584984 --758250206 --760084843 --428151357 --955693188 --345789268 --94470210 --501009157 --803530160 --725469518 --227479176 --70436656 --625591543 --220094331 --725370143 --266979839 --27732611 --947908450 --964055467 --383340239 --185575397 --662217700 --366459522 --546895205 --622308722 --869647777 --760274059 --876723567 --858464739 --408556399 --617199227 --793504968 --492587048 --67729249 --708411846 --437709753 --331491236 --635724022 --555472304 --114210236 --891451142 --351204146 --702936822 --634511122 --139595036 --799365948 --410923876 --622494448 --284780585 --683708279 --997565200 --204969624 --825395816 --139889385 --614163891 --201316977 --281446846 --373989882 --148458180 --834013040 --301324107 --415501850 --383357602 --673550021 --803051779 --731633074 --162874459 --30681207 --518907040 --15006971 --802987524 --725856458 --343229189 --481193977 --172153944 --915049487 --399652180 --926481034 --897804676 --297314105 --419199706 --606032021 --935819154 --517150268 --89078551 --16647515 --259147855 --120052254 --615791426 --281152292 --976244322 --913788193 --960256609 --377480509 --582567816 --619776264 --684781271 --881194165 --984936869 --933091827 --183484917 --925750438 --331989442 --494444167 --918767845 --540235489 --656113814 --377513903 --708107910 --586753502 --286568848 --149554318 --756195757 --961398422 --889649369 --210922201 --423688647 --894070172 --514026598 --953361517 --87571566 --248447756 --248520814 --775021771 --818033360 --185369995 --998842265 --984842794 --51801898 --648734194 --308121005 --925650604 --278725606 --24794405 --424141846 --393651684 --301820886 --65878924 --15948539 --250814431 --120799745 --441919140 --132484742 --517773106 --564502483 --758878994 --407049370 --985482287 --495987676 --577757115 --674053905 --995887956 --137472813 --731411188 --516896252 --98977423 --791491029 --982839562 --975444713 --266158089 --638657907 --485557967 --829636734 --866748151 --10806524 --283620880 --352873985 --112224213 --967263518 --34877131 --819532527 --200315683 --113868333 --507467061 --310056174 --674111922 --664724142 --440192705 --11326184 --898583837 --944414673 --819584551 --93557122 --39861654 --829037565 --275666847 --519853676 --268641498 --539334497 --84382450 --928600827 --687526376 --564965043 --532407890 --412061445 --377403718 --373448337 --797671672 --197233573 --166958424 --242662540 --242261048 --387357647 --639209336 --813110447 --857886568 --26466544 --26136781 --350055536 --941426626 --734247718 --200637250 --412694437 --935285814 --254639711 --406457748 --685222690 --494521599 --355946215 --715245828 --880367538 --887938026 --447643309 --305518341 --876909935 --312445226 --686490245 --832772304 --67560438 --94745226 --502083550 --878418117 --636536270 --268894321 --127443267 --109373666 --145628973 --424815038 --449843977 --249321841 --79909930 --361031949 --866953316 --862735872 --500247126 --844446100 --490865527 --937375208 --341444683 --522901801 --978800255 --935508866 --77571562 --944601166 --444526585 --541555437 --599574856 --142792080 --442405596 --160482602 --275885569 --484904224 --302172691 --91466841 --123552049 --270678267 --786868885 --360089768 --153700898 --454554514 --340615845 --732752303 --176399788 --984339098 --635517542 --254829938 --802591569 --706940437 --420696408 --834582589 --294391801 --259552474 --719711099 --977870004 --856135275 --367027916 --755156527 --168106039 --449192125 --23397466 --613446335 --649540642 --778077813 --192774648 --712732736 --252371397 --712010308 --164716445 --662387731 --533463703 --507625259 --951486030 --449435990 --857213391 --758891851 --170994671 --949811404 --275231623 --908506618 --42972086 --42495675 --154364753 --686924742 --110399853 --909886438 --619914563 --435840267 --110186271 --830636187 --568504577 --915796838 --557790160 --361287500 --34229192 --990695302 --65527000 --955341090 --405250646 --50141135 --381617244 --700028947 --502166949 --254933208 --206724308 --289921934 --405833538 --126007273 --189191424 --664323212 --390194210 --665629534 --627418106 --55874135 --37340720 --136709319 --84449622 --277918353 --844464589 --23962891 --10500356 --819055653 --721325908 --248835798 --495744840 --791620832 --125323313 --46412376 --542460841 --935455039 --334357503 --110090157 --105460485 --71042452 --584255367 --5833742 --177263481 --765112714 --241984227 --936430499 --895925589 --831127666 --714719131 --516619382 --649943349 --141157598 --41468940 --275164760 --513070320 --143803108 --65734604 --127959854 --800918560 --409610579 --781881361 --917289106 --997117267 --152871230 --221707305 --2805480 --42281718 --864643547 --390946277 --693502974 --89323174 --929327288 --634743618 --34923178 --394492097 --375819754 --225305384 --716573164 --139769836 --714619610 --872765321 --293324398 --81392491 --618561558 --259688747 --279634099 --89466699 --964872264 --6029452 --856440129 --998136720 --581392947 --820367054 --501890860 --884332949 --491614676 --156041797 --494473591 --763426491 --460569349 --205992476 --241904935 --938657688 --399417731 --332713676 --490572335 --264380699 --820720095 --83804073 --835797812 --323193256 --584776634 --618529899 --765447055 --810663750 --184823731 --881976284 --303790562 --673922061 --144570584 --394561100 --456982407 --929060661 --963394995 --975304193 --635961209 --972072462 --34582348 --277021467 --586247962 --377144276 --730081778 --664703462 --570130927 --159260195 --130883874 --429269427 --674718408 --496891030 --499518523 --543971058 --708416275 --949366789 --837722690 --745783823 --318070673 --74316762 --879971761 --476925140 --528838723 --257437893 --969539709 --648097308 --483070174 --585254043 --194207427 --107820116 --27833947 --503630338 --264402294 --712233824 --79860278 --149510664 --495292970 --814355416 --708217158 --450676693 --78546279 --997148950 --947844110 --754792255 --984977993 --369491010 --440744687 --285442711 --458999954 --655137724 --519923733 --563621809 --701809055 --792878171 --687858127 --854550257 --448107721 --323099897 --134135542 --663774451 --648870902 --587612674 --522504681 --454242863 --607566195 --899490827 --403786146 --206756499 --367513585 --689214134 --666749787 --645711832 --879021510 --336470641 --730796423 --174769138 --474287147 --886568240 --438968035 --232628325 --650916264 --177004717 --231025488 --425715813 --422031372 --786260914 --850257854 --420072351 --514991871 --656524326 --207758079 --947153410 --411425555 --973105566 --368769949 --135873708 --255864452 --174096962 --551911111 --752766209 --834379593 --358039624 --136352971 --481682248 --109085817 --703892295 --241167399 --727443449 --974608779 --946719277 --663755406 --527519539 --481826781 --235075935 --34117708 --223005701 --133233179 --6100215 --758251389 --384349187 --940231326 --626103694 --240490090 --57280300 --354769707 --362202343 --595173882 --517551506 --260958071 --14151025 --485835762 --369974637 --317080478 --673995977 --832973896 --53128830 --88384947 --490373991 --789402092 --510983568 --291534432 --455623357 --392657471 --56696421 --550071085 --199350568 --332763746 --166456594 --583008886 --403363860 --487180185 --449315791 --466238116 --211690283 --519361120 --776606467 --189928955 --442497825 --402376040 --491474138 --926395824 --101481399 --53825353 --771856626 --42652717 --261251391 --81352754 --304070182 --426306557 --759412064 --953362579 --894398070 --637890247 --923689245 --829246701 --863167272 --267821022 --349934150 --550945295 --529585815 --527224331 --626716715 --853790372 --879786543 --598316838 --151713470 --460942226 --546341009 --246540694 --88243937 --448387082 --535331655 --331628147 --545500039 --338832772 --573993787 --761037308 --34865655 --92465950 --941358833 --941549765 --534037100 --281639956 --195439282 --810500654 --661006173 --578573974 --184887347 --437741553 --171156011 --389504135 --683647257 --516377203 --839404658 --925131691 --281199010 --351370103 --466782671 --885273905 --631695405 --459088626 --919555173 --142524464 --182727443 --81354029 --867932297 --486164366 --564070961 --668823305 --675267838 --844699734 --221787983 --883735059 --434396768 --292060324 --811821398 --634895094 --325101442 --57410983 --115430311 --836584235 --594971009 --365473099 --892935687 --71821355 --319946482 --316677216 --216199277 --694861207 --477880134 --1892523 --338010489 --72309413 --809196585 --650591100 --577271369 --985827876 --950813348 --568371852 --97460040 --917286697 --4528129 --160526168 --157723919 --267829387 --548287988 --17844166 --628880981 --868686792 --83408949 --87150523 --54513575 --497366415 --398177045 --270908727 --694030206 --276138769 --525673714 --797250472 --262654173 --800393732 --981254987 --10483378 --163603873 --623511363 --947568976 --708287573 --144771632 --102294531 --400855405 --808619333 --730594346 --695151931 --894283008 --306701271 --788290106 --295471684 --160524787 --265269184 --827651596 --346290992 --998261450 --317508114 --590695013 --535789807 --328461134 --555209074 --780929780 --608547084 --170420951 --241323367 --115110855 --219298769 --881155968 --638447059 --41425112 --60272435 --219749826 --521319335 --196157008 --639524976 --299256166 --104309791 --288721415 --263478416 --67487399 --528135350 --843037665 --928982031 --893058995 --133535654 --342874067 --782650468 --728494672 --386081448 --493235390 --845373744 --979810156 --391766802 --701867561 --60999121 --715571865 --206234391 --705128443 --369598621 --852282131 --637784941 --593673586 --429979458 --35189951 --809153410 --7771111 --733372822 --379871449 --831198917 --109042370 --226230113 --421956296 --617444726 --761674908 --827507160 --432386375 --76016183 --435687908 --38665233 --739311705 --14970760 --739943445 --948591665 --665592875 --17573549 --968085186 --156486188 --735535725 --793510631 --506172417 --972774866 --335017822 --49983754 --823312650 --839217396 --585299158 --245503180 --700250404 --575447486 --919501792 --31082789 --231085051 --895235343 --147238116 --303841729 --488945464 --334105484 --320230268 --891187166 --733646463 --806300487 --597345380 --387533842 --735777288 --983992693 --24915879 --307118616 --784711319 --366037094 --608810991 --689768310 --847608437 --792970825 --801355901 --19067734 --283656601 --782771225 --14300552 --320952152 --420671517 --690446245 --9939298 --855921315 --970891921 --176964766 --743312928 --186372185 --540744443 --118347512 --562117614 --714056730 --603912398 --876145491 --168703613 --753611312 --642473335 --952295647 --233950609 --521962649 --92221997 --205662580 --969719728 --571283012 --195530972 --926802198 --805053197 --489221658 --166569254 --914734745 --130534742 --147357109 --344905747 --709014389 --546527077 --652951239 --416290707 --694492063 --118192093 --937848597 --712013434 --165408538 --808418354 --802363097 --642912688 --992955344 --201610265 --684948684 --821735612 --944921226 --473051394 --942917177 --510860928 --128968624 --289029954 --978166594 --995312786 --708987326 --843558801 --261165135 --554698909 --948178086 --16398759 --142548868 --203323684 --704207710 --74397959 --683463697 --665467725 --271207997 --161235069 --699763313 --701096757 --82142510 --799310589 --543053155 --181734144 --551963327 --937349939 --607778799 --264072387 --879058776 --403413966 --623599335 --152227650 --413021025 --384787582 --803163524 --200970288 --187575275 --255377826 --606744931 --527728453 --200552153 --349654438 --222441564 --378988062 --232397375 --200329372 --27811984 --762342470 --25631643 --576194255 --697007234 --697022282 --599071927 --42641856 --600887327 --784535310 --717077755 --746559238 --414694305 --30950253 --991224666 --249832725 --267502749 --918108227 --446939410 --667615638 --34412322 --27920305 --594593913 --43660001 --108685777 --240645207 --439071249 --494686825 --407366893 --517583589 --122216201 --286989240 --573239845 --826695009 --223600033 --916494622 --308461051 --179130120 --165596915 --382832966 --427277214 --352307745 --781592311 --875948063 --190961655 --934888983 --587263702 --98937301 --962527064 --473325899 --908169345 --884868254 --114884373 --511264696 --484154434 --574634817 --699586325 --301827833 --713306123 --537878896 --225739001 --446031023 --861858519 --526339966 --218763633 --698466526 --397055322 --139631008 --974563538 --985241230 --87151890 --712653732 --630246389 --444054914 --922729866 --715227602 --225636116 --793711670 --484699737 --289457645 --267297041 --311232837 --947333754 --317653407 --794127605 --463814325 --824730921 --522106026 --665374765 --407050509 --276604319 --547201931 --267858743 --583900760 --829651383 --796162907 --767155062 --81498668 --564624428 --386480393 --934389284 --182638283 --642056980 --472682538 --520712661 --370725578 --764835502 --768607699 --109759553 --260386140 --374278491 --993221788 --131199828 --167051927 --598979471 --65515650 --718627099 --825135601 --830504725 --679292566 --530514743 --530126695 --386271346 --682054063 --580292104 --732587260 --548967687 --273535894 --697771405 --172394862 --116066415 --609802711 --712990220 --821331369 --128657084 --425798996 --211500846 --888119150 --752380388 --121323398 --377498525 --477496688 --396827467 --440736766 --886086045 --414995427 --846630180 --885188199 --721525556 --977136485 --370837588 --940919650 --348256067 --561513271 --420887257 --461344756 --197920395 --79173984 --960170473 --679808526 --682422548 --63990871 --937112034 --899642045 --808379240 --561478992 --166850286 --872136185 --823385993 --270018401 --574701700 --487314240 --564558585 --933282451 --371197142 --104127141 --646517790 --341474655 --790595057 --504093702 --162923221 --453734054 --578589186 --266777230 --614740873 --986215707 --360064570 --206782856 --729855140 --35885605 --684469700 --217114443 --278177240 --970029319 --137259325 --464189701 --352944596 --539396892 --696538498 --111891710 --16606745 --76189672 --169594349 --521399493 --495061195 --130645208 --875669315 --384542787 --923554301 --347227368 --172197659 --120623358 --718587375 --10382056 --985922046 --211484991 --163350523 --947947878 --719239808 --363489151 --78246667 --42756012 --728061576 --260745047 --958522869 --651811378 --564167730 --90226258 --609791513 --306421537 --46891555 --337763773 --648367665 --733824409 --938041791 --176921229 --380547165 --677783408 --261103478 --786289232 --38335608 --627143343 --583489689 --627693658 --79324691 --274362513 --25925612 --864590730 --882750175 --755963965 --309000416 --181450227 --647994714 --68788635 --104760196 --224386051 --804376729 --645563722 --736133333 --733607255 --827209852 --737697301 --310522245 --204160283 --962716359 --987521509 --142543223 --104094255 --551784961 --499597099 --344174869 --941374974 --593438005 --6703164 --752816879 --317414269 --343640928 --237563262 --509198784 --594213369 --229738381 --447294294 --100467328 --577791251 --994692732 --731574902 --124180127 --394500958 --635425167 --344756207 --867912502 --819062056 --275784910 --673107363 --976188072 --81614340 --907918212 --245697544 --142332407 --993830487 --512854411 --150623191 --768000114 --975925263 --754585090 --72029631 --380815517 --618811134 --162265605 --186439508 --80828165 --881157542 --872095713 --233189384 --65045577 --328249346 --669761589 --866471058 --564614250 --588282346 --887670277 --603899363 --722765478 --861179707 --25091661 --576553991 --800077148 --449025616 --165609492 --504298107 --187482470 --254429335 --946837809 --214244592 --640506458 --43096316 --940849417 --960141866 --238870457 --130187549 --200357464 --944091308 --481852328 --669452175 --138968668 --844594380 --490300181 --118128094 --415595149 --583147760 --436572494 --830968272 --893911188 --599981787 --21009814 --27569624 --611720728 --547232066 --969945175 --397890388 --965826967 --237550340 --189863465 --796721700 --632841850 --698122569 --57548582 --286680828 --92069419 --915037361 --715986265 --447722363 --321827037 --17428787 --12319092 --816645282 --415017214 --476015222 --890037811 --590895932 --148725247 --67023344 --135471113 --235659458 --261169601 --464228624 --551519785 --529157118 --623508971 --486034576 --61994194 --666326637 --960137841 --862941377 --416382107 --252032489 --176046340 --262266309 --792064200 --802064636 --34970479 --747239655 --336119091 --866865333 --55015446 --606276003 --241315313 --806597933 --854994964 --732671950 --437204811 --466320406 --884211020 --45612319 --808928460 --853910776 --962422082 --778754807 --503894997 --52795307 --185876387 --685786017 --762695568 --826009894 --448310009 --952873963 --938231671 --178405846 --100204591 --738850760 --349472494 --730471815 --445485743 --857292694 --26467038 --427755576 --319939935 --280311911 --195669439 --432099717 --328753258 --431507653 --884398611 --755541532 --877528807 --221956692 --863525874 --842373489 --858854798 --249165073 --321331170 --907895221 --241987531 --702355912 --317592341 --363300947 --361799667 --626980623 --707367895 --19392028 --915195967 --717649044 --179644156 --664790242 --985740536 --656139524 --192481959 --190821236 --366083188 --718045141 --704359714 --903643990 --804085577 --604658247 --510360923 --551299718 --253481553 --119257519 --844586276 --405456506 --417700219 --105999222 --474766503 --766744005 --637257399 --253259808 --163669547 --980308265 --871326908 --633762472 --918239326 --746127429 --958387133 --555284075 --50109340 --866068454 --974607713 --997878594 --499295411 --3149057 --245180419 --219093893 --364728696 --170980808 --687236280 --744248553 --667153007 --480664796 --113573910 --98908680 --254748310 --266919269 --892881234 --147634780 --215690987 --168119560 --806983350 --248378617 --823035957 --360125350 --255578566 --893925927 --225081170 --281384657 --445832232 --425715672 --552390124 --825709675 --345233507 --191557593 --854449581 --896252884 --823025548 --500504385 --62509286 --942614481 --70658449 --991901157 --925080165 --878376722 --500393026 --964982408 --70475760 --626770049 --839008415 --798897974 --331014253 --281748994 --353628441 --707273501 --302055752 --581353032 --781953671 --410289640 --591011721 --26874516 --10258958 --473669363 --734407633 --398909573 --889703163 --841947106 --224933707 --454606728 --99132613 --2832857 --402971188 --388191662 --367686529 --690704747 --568030528 --165422648 --208339209 --905113482 --123685549 --526302816 --354911250 --733957450 --770954884 --306721175 --782448899 --938007235 --189585549 --502984727 --579815675 --909161371 --219032889 --179757448 --228896136 --852411954 --26009224 --511715029 --366362935 --207756251 --722147741 --845184374 --332982460 --394299052 --498595785 --805938611 --151013617 --179879999 --386144598 --363268583 --235692312 --633197852 --153066640 --882292371 --34513579 --572732638 --928145244 --73613202 --985846161 --16284793 --53564006 --91399400 --995366883 --726719767 --929027393 --109918241 --560269016 --587958089 --306232571 --477159788 --848342564 --244974033 --910919806 --80476981 --651967077 --136308985 --391277074 --426467596 --597179444 --459273779 --864566768 --896673095 --414364018 --95452415 --178443091 --931952574 --752540957 --430822461 --514904257 --717304303 --907136331 --751036958 --290698925 --129734662 --813768545 --373074395 --527004810 --614800680 --624124123 --715583502 --809188385 --800092615 --281987064 --486407198 --517156686 --948135004 --672258714 --98144089 --795079540 --505562316 --496708828 --253476016 --66220976 --80774611 --331719580 --397917599 --713633691 --468325297 --644325538 --295505693 --48855096 --281633416 --471936721 --561980875 --251605357 --631390515 --904020121 --581261266 --137314616 --276771789 --545701617 --203084107 --523831775 --604216485 --760332112 --242278752 --544533056 --957305851 --441610810 --115751429 --89815150 --888806576 --429109838 --12162037 --677138149 --941388586 --367692903 --72816826 --652233335 --196757831 --152886639 --223119742 --865702757 --533213176 --343451312 --891375723 --775259629 --12123341 --490632765 --576568508 --805070565 --265722388 --953852790 --842411771 --928116048 --940193718 --481353112 --133769855 --688892917 --768886191 --508577529 --998259450 --45421900 --127038797 --750344929 --963848922 --790594642 --825180181 --320831070 --346070853 --683841286 --105045898 --435478784 --300971103 --688996536 --766008761 --179402882 --839080648 --712585520 --839260227 --966359126 --2078361 --506655416 --42700945 --35949660 --208417901 --311325671 --275680294 --23431730 --74148330 --686801538 --491336427 --881045236 --341977750 --369577435 --858943140 --657642834 --728621775 --734177455 --725086938 --185076580 --994312487 --945564080 --509601173 --827012253 --360647454 --983348814 --589025003 --538199451 --36587658 --249252327 --31841009 --565966831 --267562489 --368315990 --157401353 --318033374 --334589863 --809970384 --676963205 --469540730 --104604008 --233963655 --677702780 --922607652 --172831931 --198428814 --535797158 --843101657 --302058074 --773698121 --623318277 --825090491 --654933019 --332111872 --472679767 --995004668 --491925528 --237689113 --253380931 --993751763 --783177037 --249534001 --489091264 --192796511 --381071252 --381860431 --353270329 --105913508 --344493747 --967290526 --554267624 --35881822 --540489827 --889719070 --68941369 --700884022 --809440701 --426330328 --525563239 --110141004 --141255905 --640859239 --968677023 --300722157 --776431051 --386704185 --682683969 --76889139 --882437914 --45549787 --129062864 --638444934 --876480534 --523684676 --161491770 --12192750 --334501481 --564576025 --680861267 --47700047 --737685728 --662438396 --170162649 --905257354 --793536129 --640766630 --607875450 --911790505 --51130945 --973912088 --371278602 --296618465 --234436879 --181861157 --816315776 --60541631 --866929937 --2941045 --557024503 --669500527 --237620812 --851088162 --333243059 --351589208 --79375875 --319971992 --651572913 --154715765 --586333393 --600893141 --552869437 --905444860 --476182395 --753706583 --482556339 --110770628 --154353678 --230992619 --415581444 --516478821 --622336796 --279875948 --947764713 --89859419 --930523306 --670673663 --358810165 --427536125 --657952461 --144769955 --923418770 --893805333 --376577758 --661679197 --606871553 --457003581 --210920316 --522961753 --876184467 --416830863 --582207455 --241795491 --402798025 --80833870 --451041298 --446038698 --462062926 --705921877 --384223605 --819247035 --297374538 --178709321 --389643249 --347159371 --456736108 --885337801 --138699564 --218203953 --453780407 --210199604 --934423293 --16636774 --989083996 --841846283 --413591050 --435820842 --666192140 --446159722 --733185251 --330925812 --251659446 --178934414 --830117859 --389428373 --197962189 --570050220 --334681358 --673330966 --259997895 --876181492 --238867162 --231411580 --11687621 --79386181 --413323125 --28743924 --454059775 --915186825 --604043687 --636300767 --31231677 --55675150 --784526998 --50708722 --160610217 --898556975 --186618467 --310891562 --787226020 --553136468 --690171309 --270235987 --325751369 --5775475 --443887083 --799647402 --930527169 --856004292 --344621487 --851992495 --643729706 --302889791 --240592103 --625029971 --801558771 --948075548 --453824355 --343235461 --393148709 --641232400 --613472992 --607287002 --353040800 --827748785 --866591104 --947402492 --460612814 --575292103 --604141180 --13582383 --323210538 --896786990 --647961954 --57260194 --253826512 --241257845 --72204883 --239376173 --312288651 --178450498 --872690077 --988666495 --86914672 --571368790 --994515532 --345400200 --343136649 --174635420 --727175047 --108301565 --840227778 --145404615 --278153175 --571146676 --114175370 --846179862 --770303924 --61070049 --559801679 --218875925 --690819795 --691989394 --845130128 --880057903 --959403012 --195524889 --793675155 --388213231 --304386647 --637611444 --291257782 --255522682 --176649323 --831377690 --220057885 --85102352 --941850958 --684525991 --56723967 --750668714 --957947340 --95878338 --289755112 --412761999 --307632739 --780087133 --558323576 --228808193 --893553685 --670140479 --603238083 --595283534 --529645076 --305629531 --359879805 --72618163 --188423848 --53050164 --617997270 --93154338 --633750108 --960872681 --404810139 --757659109 --321502598 --227509006 --891243904 --730139871 --282685048 --913420326 --840989318 --799016935 --932711507 --88251092 --736679589 --339261422 --436026220 --902378019 --88551363 --933770842 --694243767 --894649568 --83353394 --802949994 --995009875 --176510749 --812602225 --394912774 --215440838 --938539489 --159962369 --93776228 --441893810 --236168404 --901686818 --595014184 --922231366 --661020967 --54534282 --882265850 --685177285 --349531922 --773124935 --551234648 --861300725 --608576716 --438128275 --617169773 --404923271 --662497152 --759151236 --863786896 --563548491 --89971307 --428558664 --226149352 --370692435 --110666388 --515374384 --939832034 --164194339 --260498570 --977165683 --319351351 --385484451 --138084268 --617087918 --124330557 --326917374 --10416716 --741424486 --813785139 --912932120 --731999186 --361093543 --715198233 --517955648 --688430928 --812599353 --251041113 --127880819 --121208492 --569099376 --456665387 --514628277 --604484153 --754849097 --263281825 --66872236 --364203675 --903030147 --540380536 --960062326 --81977003 --837163253 --6957030 --761842474 --957830127 --192912355 --615890069 --439752542 --99479494 --823469486 --582638554 --799278301 --60976952 --462999569 --32989777 --30187307 --736112236 --861821964 --604087631 --557914692 --10092199 --201572999 --967546631 --644027472 --148148309 --832583021 --366081392 --139537813 --773690921 --382885434 --669679942 --538880796 --634722916 --538468204 --188009564 --452565568 --367979171 --653111833 --511019999 --389966860 --715827817 --4013164 --137996384 --837449267 --173788411 --60045340 --502828773 --500433237 --825451031 --815036944 --243308239 --117316286 --412687865 --971839525 --633779052 --717244591 --900932442 --605777537 --714200110 --425253716 --494696827 --816306267 --116462267 --342213961 --539046556 --925501096 --276137384 --797892247 --351094264 --425405940 --668805685 --692977251 --539594830 --230546705 --623887060 --620403759 --237906822 --656588006 --590557247 --173434706 --652872178 --260756837 --859538139 --87288986 --639487647 --452842468 --689244436 --450139578 --299386178 --272847647 --326969932 --199064005 --105176212 --596243250 --642752725 --773907899 --526571083 --542244868 --345123051 --239317454 --350058277 --699561335 --452457832 --330617605 --881328126 --306766987 --980475144 --26488025 --791586175 --183366326 --587633908 --815006843 --301687292 --170917976 --147049973 --59459223 --108429511 --412053885 --162813638 --495632221 --362630221 --935325398 --953145316 --775140258 --144071798 --560575369 --815288614 --452951959 --428116132 --996610010 --6300784 --70241043 --341308044 --505672919 --832074625 --931072724 --150731371 --931149575 --672414589 --72092593 --646263829 --963664249 --651876134 --22009259 --412581297 --563728509 --511600620 --688038712 --210220111 --753356162 --707616721 --249183362 --87078507 --463778130 --114904118 --312676845 --338204888 --575049274 --419127213 --967072008 --208671571 --320015245 --117616215 --795276843 --256706931 --623569184 --276418121 --372158178 --578535212 --102274154 --23121640 --721929107 --550944912 --924544992 --523505641 --196685309 --296715538 --482256450 --841571370 --10535655 --520913451 --942604778 --356177027 --32552868 --605710462 --204738266 --970085509 --11444355 --700786389 --12362378 --777973130 --90420491 --852682832 --736857805 --517017022 --527989390 --178982738 --864487240 --158051858 --632085663 --462025720 --54145899 --215481766 --194687317 --415536641 --397212182 --182787162 --314315832 --376438563 --779463677 --296994050 --258322129 --924227633 --303943152 --585873526 --313474567 --215637354 --471854411 --82966330 --610244444 --556677784 --322830593 --251005088 --794754153 --682806662 --300971814 --738922604 --787690073 --483771214 --384974079 --818596336 --978794101 --570083685 --45434286 --558801560 --671705384 --280275725 --653805585 --95157615 --539114778 --297082726 --60392146 --60997186 --132864583 --716545203 --220129274 --508065876 --229713711 --541185460 --812448558 --75714980 --626847010 --842597837 --578461124 --591146005 --169224667 --217990148 --786740361 --584387253 --961418985 --437585059 --745423548 --60466180 --603215512 --120353105 --115281996 --174825290 --477804572 --580417104 --968550346 --78430136 --991163356 --569775796 --955103542 --982601910 --906110637 --267329263 --594583228 --953601520 --496253341 --961450282 --461069663 --674535248 --408764104 --401030548 --986278418 --710796443 --880389266 --588613931 --505033718 --258434426 --36289799 --927685724 --239583470 --664692174 --572733900 --605903967 --285638361 --272888377 --184843147 --59243524 --315438054 --919549145 --583454337 --881822948 --124199817 --77617408 --260368445 --241963058 --717729744 --439910162 --876449555 --295690973 --394864827 --739921578 --712034736 --344620157 --22280021 --948086032 --872449437 --580938745 --520582677 --558989658 --927074187 --818526938 --263408905 --839597619 --913007997 --230729357 --12547494 --381529806 --922661155 --339178875 --653971635 --425585186 --253998324 --975274849 --480853249 --690841431 --730727658 --707093248 --193045084 --68585318 --887228563 --6138226 --331401554 --486672798 --249720783 --30729571 --367294653 --731753664 --781547752 --691449900 --868631433 --243760722 --587830697 --977048329 --385362497 --896105440 --906465201 --238681934 --767081381 --621657179 --772741972 --752805796 --575616739 --334583056 --468120469 --499402866 --221054287 --424814994 --154441598 --993610863 --349615537 --326463867 --511913591 --50348711 --799780168 --937715226 --68560663 --39806707 --627745838 --4336353 --311952206 --334279096 --158671211 --822403283 --423207332 --232604335 --297031304 --784581685 --650772439 --736525574 --252552984 --443785512 --671894556 --571203418 --390047281 --746448581 --113744557 --578574237 --179504057 --532449805 --510194793 --267640058 --917390357 --249334054 --6919805 --485297703 --160365028 --320480866 --795016111 --33661022 --638119225 --194267924 --257144329 --110213835 --114411694 --385465657 --499079502 --533128724 --815037152 --110487742 --315888516 --833816601 --322618075 --739012824 --74435523 --357766009 --778290722 --491833432 --119883616 --402166399 --530752998 --270688882 --328654118 --852815494 --994779173 --672815273 --898396274 --665028174 --67466962 --89296497 --653621967 --504737545 --869599273 --262442606 --846778638 --65977003 --582158894 --740154179 --95041560 --877143169 --999606891 --282063311 --815650528 --367545851 --471267571 --457746331 --889355827 --340289342 --288230933 --359414457 --134254651 --852911903 --637886675 --13659185 --816911287 --399096409 --295534989 --570581540 --687478280 --166643786 --110453114 --197813297 --704550164 --376859125 --347828992 --542232129 --338751704 --997607895 --409217008 --53519230 --276718268 --837771897 --487383953 --233859096 --530138646 --497694959 --882105839 --379015870 --659877571 --711981479 --371097259 --814953079 --85897239 --337905913 --679748205 --925859 --720527252 --191915066 --155314749 --856644667 --651850769 --546399916 --143254051 --169966063 --822949844 --446741015 --185199664 --73101677 --891946549 --832273033 --536550409 --130499285 --974427934 --191021334 --939817362 --927451769 --656445151 --466442914 --931884840 --675455750 --745001563 --812109916 --765928781 --735172806 --79820710 --976531837 --503788053 --113649973 --5380510 --941016414 --15556025 --378049278 --862372638 --706040355 --437950942 --883401289 --81429929 --13637248 --926585560 --46779863 --778480049 --501699365 --293935315 --887376169 --431903495 --458121579 --530143157 --511861768 --987538022 --342402242 --543744964 --384051868 --424100845 --712971173 --200554324 --918451672 --307576600 --689771372 --659237837 --772768105 --722935881 --616576797 --101311952 --177395043 --819467384 --81441091 --154068031 --492258089 --34768940 --798735791 --678930709 --497849009 --968620985 --171869240 --169620906 --375994652 --190141609 --6190381 --620089590 --466299152 --955721014 --444600105 --181718546 --387707917 --93175744 --966855775 --556818949 --941863454 --774321788 --239987653 --739248780 --38772945 --707875750 --835696123 --238628473 --546400489 --651990413 --408021143 --502849723 --621017492 --545606965 --244186670 --808512782 --750348073 --854778254 --634597734 --151524038 --923240428 --958217268 --916763825 --77059515 --384397069 --268606439 --872709923 --80910967 --627981855 --5533992 --170113186 --437160481 --505424461 --346133737 --749969556 --400349537 --665011393 --781276864 --360352631 --531161031 --456355009 --943882410 --626151330 --445206435 --588512398 --555051284 --441646322 --196879979 --779486876 --474055271 --20604575 --428206890 --389016823 --195249483 --259923744 --420133911 --590641437 --216244348 --958691357 --558677591 --546439348 --741149836 --124409163 --674405065 --958641998 --915194164 --241738864 --362634013 --922415224 --256761830 --29791441 --194126554 --226743654 --411616739 --889295718 --852470191 --17211934 --328407825 --564255359 --776278622 --294486329 --956052935 --74525377 --424269505 --120466096 --760636122 --434519769 --50962905 --844679931 --689014419 --58337901 --207603767 --342160594 --234941953 --481656079 --541287645 --795410132 --591756327 --596981292 --159511484 --914517770 --356569384 --736870533 --6880166 --736488334 --64524081 --185486418 --730608212 --417545565 --421132061 --58004156 --569974711 --783389935 --608849923 --116259797 --964748537 --620805034 --385738167 --726178727 --688646664 --654460335 --427218709 --229225693 --875385582 --955267591 --665715405 --593918565 --690310165 --535147190 --475616603 --942817703 --393174888 --783883643 --100490027 --66122134 --955216042 --637077511 --953247001 --628701301 --272065365 --911310535 --367726445 --845766925 --566242368 --237332840 --481193756 --402800031 --696965637 --685350186 --601185201 --622385153 --458417944 --498889361 --916789169 --608355844 --804463146 --453059314 --93624435 --65874556 --553063353 --4146865 --164355496 --849138556 --188001168 --924039207 --515414004 --906621410 --527035139 --90526049 --115474379 --547466595 --465638614 --150128665 --75702359 --569502494 --213311337 --938364108 --802941836 --738458109 --909244721 --833655310 --606918967 --361683881 --283200176 --556023933 --652949214 --738595984 --920684671 --489179251 --22085374 --713342528 --590368081 --444714215 --881919821 --318906946 --949625982 --768981800 --197099353 --207600915 --256613455 --51492215 --507792669 --627702532 --69684412 --629224239 --965373541 --90146313 --590180001 --278438481 --489200651 --774407796 --200122817 --596250773 --588168842 --792376078 --196720216 --135072309 --45101961 --10643452 --657827838 --479489057 --254427275 --125047667 --385309315 --115003552 --863216284 --845370425 --878292176 --260928040 --732124466 --445244950 --774082950 --102017444 --887650063 --242039618 --965660920 --380778438 --836174952 --988641860 --518911171 --821281813 --734962210 --254017406 --175972646 --221043875 --501555771 --550495600 --157263713 --795829242 --501438718 --648169797 --204213422 --109289830 --854468836 --708328532 --214633205 --135883257 --127374567 --130555320 --497886124 --324781865 --711855336 --765386190 --566821951 --858857572 --903369482 --583980760 --18420611 --657576971 --679984387 --811692189 --908017146 --412364790 --660347939 --224541421 --868524259 --862941838 --591920969 --925852472 --206393658 --440113926 --672794317 --122559462 --210295453 --763941058 --71479299 --651864141 --971402224 --13915008 --309255011 --445031298 --353129774 --756362473 --538139351 --62122851 --276587738 --268307144 --293453299 --808175761 --974779025 --875688548 --684629055 --841887758 --716185216 --326276298 --794647952 --929605615 --237300621 --596021586 --264072920 --292344132 --279792162 --215823777 --754776493 --613067522 --891119417 --581715649 --139860932 --10082764 --333484106 --649037805 --11360895 --697230410 --331636783 --339513858 --371868651 --672340225 --41145745 --88144676 --52585755 --124300709 --443772603 --321791381 --425316175 --82781935 --878435112 --739436836 --641420564 --713075846 --992586970 --488887014 --903237100 --120553957 --14500211 --632079025 --536583986 --257154121 --342929226 --216356542 --919142905 --176197195 --353455018 --531068549 --225622805 --454131915 --893536510 --168521930 --837833343 --708572472 --274769772 --326264802 --622263530 --75780558 --225537801 --5935895 --149976485 --388258851 --692156189 --265136326 --888961792 --911569275 --807349146 --886422472 --44080576 --308336216 --712967824 --651026714 --152354129 --509300778 --945647026 --509808845 --106955903 --835512166 --763799701 --500626530 --785202387 --388125121 --637942575 --518530536 --311683941 --540048281 --600943962 --869645739 --381579187 --889630274 --914636289 --110063586 --450899372 --482217535 --305245265 --237994992 --724131224 --213676451 --914696107 --812877714 --711104146 --71407091 --320504567 --339801737 --515942375 --800908047 --873823189 --808015961 --753039540 --682551277 --102545191 --513359134 --355535550 --253986691 --204622290 --432473086 --875447483 --457175207 --627579267 --396500472 --107720146 --968030772 --242883659 --392998143 --630384590 --667137845 --435361033 --158286334 --62905051 --947850508 --857582463 --152605582 --806262105 --320562460 --611501715 --644277759 --743638896 --364616105 --588544972 --126974619 --58381167 --731354446 --529121534 --827419533 --953941576 --961756893 --113460288 --134332382 --354248702 --78561655 --616612906 --916048611 --658201580 --770636230 --302126561 --598132369 --129087563 --191320458 --994228293 --178133257 --431864207 --70088167 --80682192 --945774945 --942783900 --62998531 --255153871 --234292989 --483321494 --915756125 --173817985 --191355969 --993795934 --828641155 --5784836 --377753252 --924421976 --514096489 --114270780 --125174206 --47068805 --942114287 --508510746 --366405925 --623553560 --775038878 --776454761 --444447700 --912757148 --486472633 --638831066 --506056700 --544844068 --767747352 --708788760 --973875769 --920020019 --903893093 --307009374 --739351337 --795941781 --508293869 --25238891 --528195783 --458463503 --573793758 --159804252 --517398225 --813897338 --879467090 --873094539 --693225428 --316786531 --244110453 --800223153 --279049147 --609115206 --734222645 --93935596 --708840270 --127648621 --416937163 --479729391 --255698124 --605657176 --742106476 --892816199 --71663493 --898338708 --572250395 --601855511 --539935090 --121140312 --914140871 --893135143 --797622514 --836200502 --724802564 --489012233 --581953659 --25179934 --326248127 --848938871 --434756399 --992047029 --266213514 --498226304 --981236238 --811575672 --545848874 --871627302 --334097 --553909931 --988100136 --337597890 --335381521 --591968172 --604038700 --245957445 --22563142 --465908594 --660955240 --730465049 --734897775 --307745014 --72911717 --764658036 --694254069 --669777282 --882686168 --58496297 --831465175 --104079053 --998203767 --305289252 --539577123 --331629743 --611225932 --553385955 --420238196 --323936850 --840937495 --214860457 --942874695 --331048105 --592243592 --588785175 --138161856 --990286441 --655013792 --402593410 --766355465 --23166122 --859403315 --310827504 --583951765 --603539564 --999339179 --93815858 --896438479 --492820159 --700809351 --273487055 --578366597 --297005767 --284859659 --765481706 --156037561 --446259266 --948406952 --688769274 --727579742 --270458940 --71743283 --242281354 --117859865 --864129225 --86114293 --474736625 --722344325 --143028673 --439889141 --116978847 --418294058 --113827772 --445105084 --653169486 --535377992 --118017996 --981996794 --906232448 --9839059 --10281006 --720282188 --13652685 --737476968 --262149391 --685697386 --641241997 --539298785 --213061089 --840725223 --965368601 --844846936 --488783934 --883183535 --109915856 --803910533 --302350363 --686828451 --566862698 --989047116 --855032956 --347174988 --337258555 --601303691 --683023179 --21261112 --342501916 --856790592 --865006748 --476305565 --620963489 --36333676 --163251218 --28085680 --756683879 --968415006 --356065315 --926715772 --986919939 --175887638 --987060226 --298248074 --340943975 --389542058 --50666099 --218043648 --449250593 --947836170 --751985667 --216360923 --442428886 --134777610 --796528559 --314201320 --871733345 --677465904 --944658491 --248411423 --36838431 --885878034 --580809848 --820825972 --553329795 --435857275 --275601748 --346717245 --157628403 --206864182 --163487456 --468654532 --431789850 --756264416 --484131137 --911940328 --830063454 --90623508 --413557458 --664681492 --862136690 --110023231 --324736445 --166148617 --480635722 --486185179 --199867119 --467906505 --253397400 --480174009 --475844800 --858632843 --397714803 --37603039 --115023370 --576319612 --954053623 --348989456 --203658649 --922166562 --282908787 --736325686 --926301210 --536389135 --212032543 --603804813 --417582300 --430157607 --182766385 --472815945 --356940810 --333706409 --814640747 --819654899 --518077364 --911696959 --895571025 --971068860 --972488712 --700133883 --287710985 --351593786 --63046489 --473189799 --101275272 --446342484 --608749639 --270521530 --869449782 --141679627 --706080347 --515035442 --586835769 --961367466 --800764802 --405355409 --198828249 --896658493 --760559960 --118718815 --889377661 --599461969 --623746574 --297941460 --904711051 --64664555 --71581839 --249022043 --933251536 --497268312 --897844917 --415285040 --581779088 --109016200 --721683294 --980421893 --595541729 --525306196 --35417066 --511334577 --532433674 --89863823 --789866514 --704103526 --406082682 --565072867 --340743203 --880744066 --299418614 --181043684 --284834955 --726348153 --435251397 --671047396 --377985591 --111999055 --190511007 --668306656 --807010895 --188972905 --792944807 --199531086 --449488182 --733242272 --353172062 --208024540 --555389833 --418850369 --532273954 --542816361 --931820886 --506513960 --571176821 --766174810 --581606974 --983742873 --741172752 --43233192 --677985905 --751578224 --26559967 --880187405 --628989777 --138239757 --815298341 --281055168 --777678586 --111104328 --755257157 --242364576 --13276950 --139591365 --972406791 --547244271 --899848709 --256604619 --55916388 --422793383 --895905511 --35410772 --543539359 --939759922 --742405319 --115821668 --172934932 --520758036 --722029240 --146471854 --764284354 --513767496 --210612743 --213227629 --865631732 --924517110 --444943607 --821097769 --68665737 --158923291 --766765625 --381571385 --742572435 --465413755 --588001302 --315846602 --635561322 --819298649 --561205885 --437955075 --622897739 --375526142 --116380047 --869409996 --698843764 --66770891 --278323503 --717327906 --871145534 --936482355 --206261312 --809961485 --312968096 --372219219 --751472621 --604659023 --707079166 --861367156 --243018803 --793480201 --102704872 --634321397 --620204829 --552755544 --287087091 --511504141 --766832036 --168883299 --276365798 --571519118 --473425680 --160723393 --302087875 --858887135 --218513723 --620081853 --294313578 --363437075 --685874511 --135359762 --617179758 --586433041 --480782047 --782315127 --506257477 --317182455 --255386952 --308591796 --401314112 --92073210 --101031677 --168249625 --743794337 --633965615 --812279388 --571345479 --868202013 --909190295 --736835991 --72897876 --774352500 --957720762 --696269657 --91818558 --658611317 --6252988 --29287255 --390033604 --668152578 --787833275 --594325796 --329366120 --807346962 --10350770 --168806978 --148383804 --195736980 --989714592 --923995502 --714314402 --252524771 --188021415 --446172967 --69918605 --775391558 --849941728 --356867327 --500580952 --69069446 --584998226 --507514764 --461911934 --863177921 --903339396 --827164016 --89753440 --713824054 --838103768 --379745122 --879036772 --857880851 --850140995 --475117045 --727601164 --508097902 --876760657 --303027402 --818876923 --3006038 --718328818 --720458697 --155187570 --106932457 --541237096 --626012086 --346069231 --648076472 --636730927 --92742073 --208377988 --754246365 --577755210 --581925684 --579242290 --789433440 --10282014 --103559554 --850465143 --912338162 --102053572 --316652205 --470622468 --943551562 --853648326 --298043642 --295672486 --857457863 --695041462 --962996119 --574206656 --876996369 --52639780 --721425210 --339497652 --108478153 --380638541 --270511516 --420458705 --344241534 --99914691 --342593994 --98560398 --642906991 --808814332 --942433042 --366918971 --23362602 --873596693 --290005251 --430318451 --605217522 --137260878 --338636958 --460624041 --845384083 --91405033 --877469343 --687133969 --153421142 --488244079 --403744957 --145141675 --215087730 --728933707 --614892192 --974512363 --256055514 --940129800 --441782535 --662077843 --40641245 --476472735 --614722190 --551738582 --289607714 --629870625 --769099527 --184229384 --118378134 --384501661 --996902697 --699305526 --651972546 --574304359 --400258306 --650159103 --662663027 --591167955 --289866311 --609506073 --4887343 --808482908 --725377256 --103766093 --393030998 --522141366 --295453294 --802722831 --479755758 --362281358 --855440878 --921248322 --403610613 --937362962 --104281366 --526422967 --164313340 --417252803 --576496075 --29579017 --768669940 --213824563 --113086559 --962192721 --722827505 --795094342 --797596190 --506862913 --594125350 --21006673 --313168142 --648146971 --655206371 --323213202 --366296865 --736450336 --664048269 --773563988 --866215614 --140062565 --691208861 --694128557 --598023406 --723985737 --816167193 --68218084 --817404245 --861329381 --274648086 --476412603 --177852191 --156018594 --778134136 --464199272 --999501950 --132956021 --325829728 --296266961 --270820646 --355031144 --282596841 --509196333 --263850472 --918184745 --38919036 --375694776 --197011871 --919197630 --905116470 --620897163 --629246300 --484795983 --350222738 --711696158 --638745233 --523581083 --441786407 --542073000 --861406125 --48327303 --77412648 --288782438 --187374612 --328563696 --905406357 --194106193 --708283712 --175124123 --629197431 --900864281 --480751239 --59554355 --860683569 --649621044 --947611447 --713527914 --487021523 --874732881 --825221862 --248351587 --393451488 --725907549 --517968097 --905862598 --316147714 --426870246 --3623131 --61240055 --100769382 --953199178 --364711519 --391693108 --750727584 --205916495 --141668809 --138643470 --727125744 --903984423 --169246850 --271055650 --826561495 --227486107 --363478852 --666883912 --978940328 --132715437 --930020198 --898818714 --453791451 --974834352 --774702463 --212762006 --290664199 --449331885 --458793608 --351594227 --178996794 --793859114 --155548692 --732399943 --209434031 --696436835 --902081539 --657664485 --772957080 --741734426 --644923040 --72801873 --47194379 --937766295 --577394640 --521921615 --340414769 --578516022 --439895878 --83910605 --131217267 --930096792 --543904817 --532951549 --578479723 --585596638 --699230844 --617191016 --823886190 --649269918 --150557558 --869991398 --617604642 --49099070 --244792082 --624583950 --380777253 --694077475 --161824683 --399224482 --85653704 --29646951 --746436648 --29129817 --739938238 --633677253 --914655467 --877155469 --768696416 --948041817 --441535922 --949135774 --7513794 --565391008 --876200572 --244487866 --755939280 --440624874 --238261012 --996980403 --340423167 --59999226 --710067017 --282608990 --464932853 --293804197 --683026622 --804413759 --937699263 --742363559 --890682336 --927941622 --355377718 --444077714 --103997172 --112818909 --451018809 --947968537 --375956066 --841616825 --212159362 --972064673 --369215245 --282983938 --39556560 --68510772 --830229860 --658947001 --81153672 --451063965 --959426019 --710866265 --372395140 --438779780 --434644396 --90195708 --112882434 --878492007 --856896669 --673892555 --780495566 --680364321 --499361805 --124977438 --792130047 --939327202 --770494235 --178974822 --245793089 --229856023 --803506940 --962853118 --355704607 --744378892 --472849728 --538666484 --105241350 --556321837 --413362818 --914906928 --252199480 --394288264 --119005667 --885818047 --620520892 --498823368 --511717515 --400302384 --413728849 --977738852 --314703723 --917988105 --105221551 --648330076 --103943456 --646882938 --271129364 --481229788 --757959185 --352246201 --257066826 --939265457 --752395790 --695256682 --794921872 --714863884 --763069370 --535934414 --64416940 --76580253 --694727972 --678957061 --607003841 --93419000 --594196413 --966739675 --197879147 --397999892 --181695479 --672765222 --423611630 --482020689 --997007643 --440569404 --120962338 --841550465 --800754895 --37256597 --16714694 --993436576 --860081180 --722704849 --445301417 --315611865 --695754061 --831736727 --327143470 --99034733 --185828964 --993589631 --918052029 --32168521 --704873843 --688308394 --947443268 --411498997 --934206138 --405895368 --801656551 --663366325 --184219184 --40914693 --51872266 --487830201 --769250836 --38022691 --108288737 --350605000 --566207901 --942681009 --179054859 --328480012 --43325017 --371641864 --393641458 --670403525 --669170637 --836687572 --897318970 --601904770 --428100588 --145728976 --498902220 --747139459 --58318771 --546037666 --675025261 --175220767 --116572462 --901543919 --155316039 --319414746 --796632104 --131338812 --379465860 --610953372 --971815445 --669155828 --424900577 --311308420 --332302200 --881688086 --451465470 --37560644 --141988864 --606980199 --450763964 --964025693 --641113633 --114629364 --772704307 --571522866 --878888624 --629209751 --725984052 --42211273 --688829945 --417942033 --266124130 --485234982 --683939702 --890593266 --620325828 --909808829 --549993474 --453998217 --330494283 --92641584 --995880684 --62331103 --454058784 --258207415 --30177857 --988694632 --405151485 --494695318 --192660969 --149868402 --170763825 --285216762 --502405577 --630592739 --331013649 --962507378 --889516165 --587674740 --552686891 --559570968 --434822215 --113574392 --405126706 --512367786 --694590334 --519670318 --211948418 --593286079 --425567768 --852325009 --8623150 --615139491 --363243300 --713220602 --146791666 --607246065 --286193593 --448929521 --761289870 --223586462 --690306189 --94654745 --983051354 --907333044 --45357957 --993007228 --442852279 --704349260 --800436317 --105434519 --140888789 --49496138 --232294018 --245774916 --18154454 --384522639 --685105308 --83038770 --758460001 --653684136 --878762654 --534005185 --330328297 --807725019 --275141949 --144485822 --40900053 --701737165 --812610951 --369631715 --428496294 --938436065 --435859020 --285419137 --101139293 --963833368 --608002308 --222585599 --966226405 --100202761 --404701313 --778892268 --89875536 --160849551 --939951421 --78105314 --28884471 --941977555 --127751224 --945636424 --177236501 --827898098 --956425333 --375590270 --617922731 --146576416 --117048858 --48984522 --300890819 --816593380 --886884037 --889072858 --214272230 --917025315 --868491951 --276625699 --684419809 --589759970 --889925212 --909578549 --565341857 --37028044 --861160049 --383198886 --116223630 --88568264 --821337162 --80288718 --338819539 --347985457 --318647244 --754939255 --106887590 --956432201 --81731178 --622049099 --703739706 --274906766 --754551744 --785280970 --475009265 --950563302 --679802518 --287507130 --518570991 --947201882 --446390286 --761176924 --864440834 --213014051 --382753476 --915787871 --221399636 --525385458 --770541996 --364933575 --175799331 --426529148 --125342683 --790636599 --454599115 --98638224 --206192684 --722660449 --591041304 --856097537 --197220403 --396001200 --364122142 --610444722 --617675784 --432176988 --231840032 --768412832 --459805925 --481203833 --924573642 --419625684 --843351412 --434966444 --945149556 --146651903 --399898892 --192942158 --644281882 --985147195 --152473727 --259651149 --218064763 --22097039 --412582884 --495287064 --385799509 --256563659 --728998969 --285168695 --54287028 --401297550 --581101424 --730855266 --544851193 --730609687 --626892738 --424642317 --383313318 --570852234 --967600334 --966856339 --634006845 --638693179 --766788709 --843822844 --798547310 --115445639 --936933733 --882054289 --871821621 --573052484 --374333903 --78362105 --65022294 --201959681 --889985902 --826320072 --402728613 --774696442 --865407260 --291669266 --1036324 --696975944 --278635761 --363956321 --903151899 --706754760 --56344846 --287677598 --181223621 --517401110 --399758424 --492389861 --349185535 --492091806 --729621324 --625756317 --886940918 --424871078 --43002458 --859459871 --540146685 --690785768 --15832261 --709650141 --983959513 --618075871 --409851745 --953562614 --20893658 --601704550 --432918248 --875304978 --529037924 --113480647 --350748311 --398808358 --291683983 --342287981 --8647012 --845374574 --400954521 --938718102 --180558229 --165942725 --509724962 --913761025 --370076899 --123766839 --682149663 --638144278 --496040396 --18986076 --441173987 --862948350 --823418136 --729177463 --823604457 --791345659 --986533805 --786328558 --818366238 --857605683 --700067968 --950623461 --485576367 --540992914 --504477254 --549517169 --133178837 --418078075 --269194621 --273498468 --688358860 --204251466 --896903824 --285721643 --669147885 --537223313 --986721887 --815792869 --372795184 --339614782 --141898879 --702882022 --686148888 --734674619 --229355630 --847646759 --296230023 --760984366 --882435288 --806434918 --781587752 --480835683 --241121055 --919993575 --514442708 --829480868 --402784294 --981698543 --508228202 --481355940 --248485514 --401691768 --561881530 --829148975 --706543698 --23706835 --628022197 --315796794 --178540991 --190190536 --523224835 --38482652 --375790056 --551421192 --730717945 --451472090 --624720358 --722325511 --826464299 --322480952 --521079089 --859845496 --554824813 --258882124 --209270384 --236785168 --292014903 --482383640 --619707197 --265352919 --469819329 --927995911 --642900032 --531108571 --895207787 --787362900 --653687045 --718627358 --346858952 --808618017 --402180518 --325064054 --19003414 --21926927 --175089523 --45624752 --286699743 --967165885 --508610629 --845840634 --666944480 --522172737 --872100702 --134259532 --301000411 --16779050 --841057912 --137437415 --645616961 --951361658 --986240628 --60376326 --714856771 --288087642 --294547156 --627110421 --876835642 --494054332 --956359183 --911486479 --684042556 --612798363 --838520532 --992908462 --243545593 --734845434 --163221426 --187037454 --677175022 --24139744 --922201161 --633759373 --681642666 --228820067 --784451588 --341455148 --427952762 --167342064 --963339331 --879817454 --403712182 --790846272 --410357841 --88315511 --961982761 --243294288 --383077972 --741290025 --15543462 --34089908 --849112236 --968408300 --27699901 --233331800 --636399000 --485139794 --541941243 --11927838 --782861293 --274661768 --936413855 --440209551 --933209834 --426810814 --185219503 --67516834 --302107173 --215232572 --588031397 --139043838 --301863475 --6822074 --274855957 --987847830 --30845569 --452088152 --961592439 --250316779 --509827114 --883319543 --363824810 --902360239 --925564818 --789158721 --606781933 --694216391 --696640966 --70791649 --242505518 --94605247 --525078682 --587482087 --492481691 --452837385 --190045140 --290801255 --711472430 --194634891 --404699184 --139865467 --742168370 --29270813 --216351430 --444831785 --156064380 --960142512 --182040538 --126667868 --630524817 --679413493 --58699048 --754715652 --61196199 --160029662 --947057917 --667491049 --297441783 --905427690 --477181528 --305898904 --96170422 --206504995 --236690234 --861865313 --659735427 --365443838 --381987806 --19099309 --567323786 --763098564 --708610842 --627721267 --804450633 --93054944 --619587786 --203063064 --522472677 --86499195 --42238217 --190341694 --444931345 --986057486 --407529078 --346558543 --624858510 --623500228 --579788837 --186418239 --502201746 --132946354 --563859270 --449128717 --454620043 --425680616 --762637860 --764813234 --972401058 --241668103 --55937590 --780453366 --397372558 --414299480 --423309810 --90091082 --924496827 --921780838 --414629679 --259587777 --517475450 --84171329 --229111580 --666625681 --560263305 --402250691 --96806374 --814343423 --84692332 --785108941 --987122014 --440714694 --649557244 --727560474 --563678177 --686434668 --335569582 --88498182 --992222651 --267732947 --260030762 --431022361 --650303091 --209871374 --791082126 --77286602 --752834023 --106320289 --429295192 --785227906 --782482735 --565633925 --451794881 --376802129 --349114490 --968814903 --709307572 --657419065 --437068448 --376283052 --845756239 --455543823 --236463628 --208346985 --978408250 --883857219 --852066655 --345947610 --483292152 --759871871 --86136203 --10612889 --958287109 --499285142 --303163374 --577902405 --103374736 --711386612 --71257785 --198499425 --746287019 --807756967 --906079712 --474853411 --376882584 --122750620 --301947359 --63422213 --386989495 --82775912 --228838942 --807031472 --287128906 --59593185 --62870814 --315086804 --868126089 --904568713 --533933158 --569965727 --190877111 --804454777 --608249370 --895185715 --360727797 --920858129 --621929931 --938424171 --678493674 --5748278 --688510049 --538063085 --97977012 --969902986 --44508787 --258628164 --808507970 --364433371 --322334741 --81706695 --304558448 --347476279 --356067722 --39675673 --305049745 --106116707 --922044435 --222868324 --753281379 --752292449 --815287002 --921250433 --950229300 --354254178 --566785908 --560961040 --741940947 --166215633 --697000565 --339833919 --251395872 --965167099 --892793393 --177824152 --502087475 --440323283 --329746065 --939647117 --463470781 --190546291 --181257866 --860547909 --317004490 --101054979 --469566266 --578367872 --963739307 --588358077 --767978509 --259822207 --180260134 --851272001 --93967141 --108087183 --909029982 --705563511 --502280101 --219469691 --38849610 --506335236 --828014827 --18671214 --145200395 --414876784 --477327705 --233697664 --918325188 --562737330 --188209067 --74138661 --803550384 --220099853 --886738122 --487916620 --132628076 --649607253 --140419912 --536301562 --963535351 --531719865 --210195122 --272662133 --570250813 --898946206 --994217848 --403128783 --657280566 --2264752 --280016837 --656669844 --651417416 --842602072 --787160480 --220135313 --976213610 --281365226 --309721471 --132689797 --93311429 --232110196 --51298478 --372336214 --268312365 --337968986 --175086143 --500087341 --277885017 --920074757 --74429744 --923806291 --491314276 --485132414 --290638211 --592484786 --124141165 --489155090 --371733339 --651272703 --870403310 --118958018 --291583198 --324115496 --152454162 --332010218 --447822901 --934497570 --370455442 --295447857 --7910627 --53917631 --66615813 --152384389 --711855501 --645953539 --194749983 --317384174 --303558309 --718840645 --147272527 --655575227 --447097855 --728220320 --743592783 --127735500 --185997825 --495372203 --746646329 --476324345 --23744321 --907469226 --874245976 --420390655 --15716515 --387606332 --1186632 --830384575 --94895149 --517246589 --118110126 --845810496 --777175545 --520137492 --297773913 --603202343 --515214326 --584486554 --31546993 --569099784 --702646015 --57128590 --21795140 --90851166 --732000597 --868677730 --76942172 --883859439 --747064062 --287712180 --991432215 --655235048 --538929109 --619102011 --52968894 --306514219 --460597678 --389647332 --295667562 --211332422 --814096016 --690205239 --904260670 --641334371 --8226783 --942078050 --45920869 --911455718 --960983272 --307954292 --631618650 --570725443 --559492513 --738027905 --159329047 --618857496 --614389726 --517898469 --200606035 --404753076 --992463404 --807414427 --76515227 --833283312 --258604174 --417890705 --52594291 --903729830 --460953541 --317205921 --544391146 --411942738 --901140488 --180505259 --601068310 --272997099 --13347344 --923750192 --228000337 --20656556 --583455684 --309227217 --239906239 --193660099 --206138027 --256741292 --63757740 --941129830 --912488277 --188437740 --522738292 --548072491 --721818409 --762270664 --134259708 --264819252 --224594452 --526385728 --119136380 --68511769 --516131031 --917575992 --760636781 --676523030 --798934517 --377669323 --250995172 --89584466 --98861723 --190708433 --966160473 --180572884 --757743859 --980304723 --195655330 --602313107 --932594588 --270107160 --70211396 --594079252 --946973212 --81772301 --8794845 --585391548 --935877840 --545541333 --24465827 --703572223 --74326813 --51487016 --623242540 --319816267 --210524785 --276659522 --148856623 --172452910 --166869968 --773907212 --160804145 --463523143 --451309435 --637831201 --784656144 --956161771 --750141720 --16168823 --93876367 --564967680 --485053529 --264703811 --867865184 --78732898 --728303235 --539454296 --527124999 --133982131 --885949586 --333416036 --173573227 --572823671 --849673593 --804373225 --691027983 --447529648 --292624126 --174226802 --399146997 --955099080 --684737624 --635549817 --343114574 --79746203 --761103883 --670927624 --242829429 --296346466 --451188257 --609039989 --158418412 --856479198 --611353189 --679470403 --746847793 --489791877 --702116229 --797945704 --120223856 --182401831 --956629184 --114432565 --345810626 --155633197 --465972014 --662796706 --377837376 --654944329 --106118037 --980272923 --450622789 --673907231 --387600595 --602304171 --481967144 --383160433 --493584067 --293180878 --200383351 --608884646 --338807860 --51585492 --37885739 --94278138 --615235070 --489128947 --862635952 --252942746 --380633544 --176451008 --974790119 --150901437 --346596964 --491240412 --468032529 --967313858 --204099154 --450778205 --139953488 --771451669 --791969046 --62666854 --984191021 --519114522 --391619982 --395974428 --574858063 --734063365 --121589390 --397051708 --780118684 --172443070 --690137823 --500238552 --528973883 --498767541 --872695902 --271159720 --792737123 --31554161 --827037230 --311415955 --380124486 --579087703 --145794025 --543677976 --993047330 --964971788 --150433672 --250016503 --972375318 --722295009 --125119800 --633038237 --34902785 --255352248 --135382488 --266432088 --408766405 --216119625 --548081892 --3642540 --689374769 --5647695 --121438574 --691850228 --446083230 --737250079 --991107468 --247878164 --503140891 --344313312 --218958434 --644680330 --122311887 --409725337 --165850795 --424470279 --803536327 --360241765 --219293998 --746657329 --767790880 --628227477 --843903359 --380801735 --688472869 --857909907 --463902064 --872433052 --336472722 --343263821 --411419647 --214887549 --738656558 --307888014 --532898202 --913872046 --147758124 --567063854 --834987103 --841369178 --172448023 --413496535 --447028637 --968065970 --918689159 --182595658 --536385305 --929583731 --979532359 --919486312 --67255613 --821301666 --18770465 --539467708 --893890661 --838838748 --177544126 --297772737 --215196660 --832033463 --68864625 --849299054 --638148165 --974456573 --7728012 --805687506 --854661224 --2687506 --94829388 --970237110 --392387471 --977295202 --110863951 --864948723 --596855508 --833609539 --438932644 --425539262 --495319908 --482634685 --547623937 --773551344 --675157435 --790470596 --832785287 --48283243 --976206401 --823957959 --995836242 --439124939 --36902693 --924494866 --842435295 --311516078 --383115418 --430849438 --960949659 --433556718 --564931615 --938176270 --582011778 --190279261 --738657591 --769692784 --978731851 --462869561 --885160476 --141826483 --443015945 --87919312 --720312177 --458639235 --18735133 --887056055 --18361212 --331297142 --356915777 --124423310 --362942764 --784831040 --595748489 --525000523 --39844209 --388189593 --837798700 --276094702 --91504201 --701418740 --792009889 --996580275 --30862368 --124282832 --434266832 --856222009 --592916067 --533984846 --461556993 --863494534 --380111078 --337218091 --565030099 --565332102 --561747574 --643400721 --846045710 --12106326 --575686235 --409292952 --284540154 --723705854 --572394281 --462063960 --448564884 --763380208 --186414303 --759932332 --748471605 --522845947 --673547411 --990042031 --564526383 --923467308 --278497869 --921073701 --21255264 --259642433 --289607899 --259772849 --887643837 --134499795 --130858526 --470393767 --389572717 --353286015 --254156351 --784761086 --573554418 --536748164 --529615482 --732980263 --745247166 --478762838 --543610017 --15090924 --468070593 --402025409 --160818916 --757094336 --705174437 --531523088 --683296627 --626810082 --364922505 --794932256 --177730321 --560522017 --166729440 --407484341 --188723442 --635747424 --602929166 --140170182 --50206472 --319174297 --996622376 --665883958 --887162384 --265761029 --750052146 --315066635 --896845709 --254679394 --15783648 --124101061 --211710865 --952045748 --232184014 --911658776 --831904457 --338522110 --623578454 --648821855 --343489784 --787446615 --650878568 --220019295 --143166601 --212951665 --625417239 --690612184 --43369267 --987415314 --289374523 --604340514 --707728841 --170863806 --847117850 --51452736 --439878027 --354890126 --144281239 --102486512 --856150952 --285983830 --957003481 --521341748 --504185973 --680506509 --679215858 --207379253 --117544977 --628305688 --912624792 --745453089 --285312934 --590902864 --400373920 --345007783 --83777992 --292692685 --175859745 --294338562 --753837895 --431891381 --310264998 --84379182 --535412324 --930142954 --474714998 --544297961 --164040888 --761080201 --125119298 --573941808 --154420487 --471088600 --534416587 --212627744 --446001418 --618362842 --805418820 --573142155 --650972767 --590805756 --444746119 --542203977 --67737548 --264629083 --935419424 --103613030 --240112353 --787464517 --99659144 --928368518 --776067858 --232331866 --449498091 --484448491 --312376394 --452491325 --460127869 --848909073 --986000252 --107693092 --47869788 --580864477 --750765787 --97093224 --119229977 --330889481 --586452557 --427581502 --659026068 --916615186 --519350769 --392198148 --589774479 --794820834 --670169400 --878379237 --463067580 --357428831 --966499301 --701165318 --538559112 --724360767 --869141301 --966766352 --95130183 --209660804 --14597379 --864171620 --193989157 --803861687 --495334399 --190420423 --935219302 --996016492 --334735909 --316805398 --812733300 --159993423 --525440893 --4724139 --589302778 --799781943 --887245334 --97803410 --926042730 --391817853 --410450838 --987378482 --166916969 --868062296 --506710401 --378179260 --292130219 --391903192 --164216801 --929777371 --519027317 --148473595 --381983638 --314472915 --334114160 --628848479 --674516732 --524131700 --23108103 --704460095 --660614011 --817498362 --850499482 --85488147 --807640669 --879090614 --116840123 --51767607 --241413323 --27914086 --949240406 --368534236 --816406837 --633710993 --610033335 --379919183 --241324222 --615769592 --282849144 --495215558 --226649900 --527583375 --198194121 --73917487 --276907837 --11893243 --1526383 --522655851 --846340464 --90097270 --162546678 --935961157 --616154507 --591575268 --176333000 --66529587 --519163549 --360492510 --444548056 --886205209 --134284541 --683318651 --569049404 --448178436 --219474003 --788428651 --84112745 --349428872 --911459417 --574590544 --301244552 --866342611 --619744452 --156972836 --245977300 --692331966 --44870468 --26717527 --32590163 --990805646 --337489644 --551022647 --687329860 --859278957 --170418089 --382731626 --635951676 --878777318 --217247611 --645945931 --986206926 --42305639 --99465368 --106938492 --300134114 --9005644 --137342972 --111799554 --495294538 --918381457 --577456635 --560481362 --775660117 --799079174 --158451430 --983477064 --386027343 --86634404 --286884376 --984207372 --779757811 --821767363 --165895370 --206798114 --404914315 --420215720 --100892912 --671864128 --60478382 --337229909 --195251989 --23149050 --671693241 --27485670 --323807773 --171936101 --555776886 --854592418 --890474601 --165699169 --429552378 --656893516 --514024961 --652792245 --922265683 --940658117 --49703195 --191590414 --637287097 --243503310 --178031588 --61980981 --674101043 --517322616 --270669979 --531875910 --166499268 --185008760 --66751595 --292543210 --30226792 --284813385 --535964514 --16412990 --960105764 --825879162 --992896856 --242435064 --507754143 --399871192 --227447452 --900060193 --42584085 --764346351 --166108522 --962580798 --790677274 --529610920 --208241147 --808280516 --166485025 --800862460 --282943846 --363633719 --219179727 --328494298 --127341604 --273738778 --691865647 --11139759 --645274090 --184880764 --886171707 --683884569 --969734717 --150665429 --491279525 --456677861 --964176767 --962070926 --251482083 --646595211 --219516173 --717124178 --763902795 --956724312 --917309198 --914416673 --964022151 --653574755 --906034515 --996784966 --819417430 --13099056 --325847877 --152947103 --122005629 --453197336 --869983498 --143862631 --692199746 --412289145 --161281220 --139674051 --276556228 --244267769 --571815510 --861620592 --596234333 --126442204 --919062116 --807654266 --200021232 --284242026 --270145011 --534647869 --610090796 --859411495 --933361530 --954706360 --821859389 --402974009 --388041424 --342453419 --961083207 --715162555 --32677400 --333967802 --92036997 --248163631 --794424137 --401083624 --84664244 --739030517 --662182226 --20025204 --130008372 --321863820 --638650550 --122371675 --416825821 --296218347 --420895273 --433776847 --496466352 --40937532 --114058911 --747590208 --485646614 --968611 --814380930 --16745767 --219197804 --847491225 --638496249 --942738534 --401957916 --866243980 --325772516 --339186175 --105807445 --29266358 --453390347 --827127613 --840622982 --815062724 --774422483 --33865087 --190319497 --177038772 --848017851 --286662568 --795912180 --199039537 --935165054 --419643091 --999998104 --269812183 --515545315 --172055851 --624045502 --878287795 --748693325 --868962170 --721014582 --815799677 --345261578 --994405365 --498915991 --454439280 --342551502 --81974127 --810809194 --920094073 --168127373 --168804600 --420125847 --70802847 --758344327 --46285255 --50272063 --712630349 --552434878 --929092193 --806856073 --54950311 --489934642 --765941302 --292518947 --327495463 --307399738 --819513823 --567480724 --348891471 --335679910 --380168713 --643749118 --693975963 --469654324 --429107864 --452739958 --987678635 --207218722 --33461834 --503560051 --167756001 --847848694 --392109962 --250635528 --808721712 --993842804 --910021425 --225439547 --720207415 --965547923 --275555897 --45820099 --210075179 --171311786 --656372621 --867751274 --373207205 --987489392 --917318888 --73460662 --802064932 --108191562 --900653122 --732722631 --301982423 --485789474 --577786693 --550895133 --14911561 --137306611 --31557243 --730459534 --976154751 --677280992 --835413599 --970659552 --843069577 --156428312 --54333149 --871561153 --961631101 --741193636 --414878452 --306292308 --880452221 --551986400 --197082775 --889125775 --694002305 --935722332 --866024902 --495731858 --796445333 --818903551 --478898930 --168755447 --792805346 --428022041 --426964447 --299153562 --395615951 --96256349 --21816724 --697344349 --474653167 --982705422 --30927676 --542638436 --127825637 --655569013 --855094794 --774495404 --938112398 --590382296 --263945270 --98586951 --891476750 --590987897 --928097876 --102252178 --539717466 --566610842 --675998064 --247517293 --247630437 --129647377 --247876175 --631879695 --239016919 --90299592 --734855119 --483226503 --331830418 --75290689 --255489510 --605834666 --848729764 --968997265 --658349044 --19546476 --884553851 --651338938 --319366811 --898650361 --494112959 --863942337 --797016346 --542590692 --775161887 --561282222 --250362097 --388199613 --749218066 --494230036 --146311303 --20167067 --404113514 --611579821 --900585757 --366123440 --238598288 --742941599 --100565447 --654722369 --494853784 --160681662 --438024869 --92054912 --977439440 --135492808 --803643084 --839199386 --863927859 --74801631 --895393420 --567590741 --779699846 --820216274 --95688523 --513897010 --415820587 --951220548 --194936879 --115284345 --68464329 --475527327 --117692923 --891718863 --885729131 --19015475 --172551603 --625029944 --894508100 --130884825 --548974418 --97722310 --627113099 --676798961 --436577060 --926634566 --477240456 --41953996 --873430905 --854452455 --987955024 --480423621 --809238010 --541048230 --384176082 --968904980 --273002727 --518050908 --605882378 --346045986 --28887732 --596605482 --373539597 --27990730 --136054962 --342812219 --288183905 --931385352 --680884325 --617387389 --183408062 --599889743 --641783636 --668489334 --922929417 --381722285 --211447469 --54262 --183157104 --331605734 --372418649 --871057805 --590838691 --40805936 --933797160 --300994608 --73442445 --873374306 --822361400 --723306903 --299518791 --418294814 --342368084 --489234587 --445353997 --505472019 --313670783 --190989629 --924882607 --740470425 --606173222 --443088000 --926166695 --669640678 --446569644 --895123396 --980099431 --324705698 --718114422 --75519624 --125116302 --103281558 --581711557 --21431993 --948774306 --217080659 --305314523 --294500588 --436040207 --822059017 --773440854 --975947448 --869527827 --534909300 --145927721 --170651790 --175709316 --648243717 --929188533 --810541079 --547437153 --446268904 --679829634 --636220999 --783463171 --810387940 --623520667 --218420260 --580220086 --68266088 --685658143 --368980686 --886319877 --31803312 --573976809 --63143917 --456513420 --917754254 --26596008 --581574442 --898418944 --71487726 --366497084 --706481162 --723326950 --393447496 --774920037 --954581096 --287661603 --451299445 --458432464 --505643898 --368037662 --185983544 --394969250 --768400118 --873326861 --409974228 --722463184 --241221362 --890773365 --57459047 --883574226 --336376557 --115131330 --978876307 --773616932 --777835993 --960705254 --735680943 --829782617 --189777535 --13342200 --979453228 --378420412 --825396980 --68473821 --168080663 --100441937 --951481061 --758149392 --481159542 --712165296 --483272186 --810562085 --374713252 --121908467 --586797386 --739897970 --504599639 --860767087 --988524131 --288397299 --741939996 --913719373 --748158691 --841265257 --671269648 --957774806 --711061798 --994387699 --701389939 --490841806 --320165498 --64498391 --916999583 --141472338 --215883064 --544484554 --813617734 --516800639 --551115055 --664982584 --953505055 --566599837 --770642181 --357250826 --663409372 --372763523 --279253844 --961843421 --646440450 --207649811 --762329464 --954728590 --135448029 --293545584 --37898678 --521832065 --784846298 --152511993 --295518235 --145844298 --327403663 --816077414 --338999460 --601599054 --471035997 --627498133 --275735857 --230768023 --26137752 --800751468 --955147758 --619413337 --377522006 --412992430 --601574848 --9077471 --811992636 --351026043 --437007075 --322900868 --619609151 --183938171 --174198435 --431163287 --982117651 --963970919 --126839699 --291454283 --980735029 --594901777 --62169639 --577810788 --950923808 --458952221 --153321416 --99679956 --877835236 --570913022 --448599543 --845273342 --458460895 --181608616 --489151777 --244745930 --213869376 --618649798 --354191837 --291465229 --85834156 --343117234 --273792297 --593838062 --155343375 --50847168 --432039575 --953280841 --956036614 --580933975 --427870949 --132769235 --941993583 --176675021 --970595985 --637229292 --847357852 --528160584 --316044429 --764268456 --194697960 --911724579 --395838525 --211710928 --861530324 --801775354 --155320733 --176748215 --529045238 --136602105 --181747297 --387273914 --616971620 --60249419 --768495320 --966103847 --548749304 --369097460 --278242423 --203757798 --163453498 --843868136 --286215144 --360054500 --812571767 --359550090 --743693950 --676750536 --531573089 --816425853 --468794951 --290519853 --90609519 --229457270 --234385096 --44363138 --962673480 --63668793 --905691219 --402695952 --701267161 --895923581 --503221359 --769171684 --958348215 --621426094 --830669243 --977478883 --795192029 --439595196 --10266290 --491622874 --967960340 --793566827 --260572359 --901464644 --541138291 --963585428 --6448727 --727036003 --220828683 --213853902 --816225463 --60174742 --56164869 --360346115 --260604956 --933300106 --600778044 --509693245 --884686925 --701914901 --283531999 --959740716 --619415139 --488115889 --60797531 --843054519 --58489919 --246737171 --369181112 --890887643 --334237664 --703668705 --400698531 --180390514 --474999932 --342317872 --39295550 --614077674 --14590927 --939006132 --866796750 --378457675 --896272569 --294968412 --224836177 --10925639 --818134023 --40023364 --505124595 --14516043 --27044075 --920013728 --366650199 --321835462 --317448754 --171193630 --878150887 --526358354 --840295979 --902329306 --835613565 --564437682 --515498222 --782654938 --310839646 --680913273 --824770079 --73468269 --811580623 --241662412 --332161357 --81536048 --840183057 --188748580 --982451444 --961480866 --930952336 --630918283 --171485208 --406848811 --273800412 --99870227 --942614755 --347513537 --771025786 --791021828 --569630294 --626893375 --358196394 --284284575 --989118192 --68319579 --375387976 --650937409 --398410949 --408118868 --594880339 --575865209 --15722500 --549758534 --180383432 --8526591 --21506976 --985911392 --333282121 --646320070 --398501626 --403662693 --566653072 --591552400 --557678894 --563851136 --721624918 --83304115 --931590679 --637905513 --696999413 --921252737 --953385907 --384960330 --489288257 --177473630 --373735730 --738507071 --124908944 --642106073 --765732203 --581556998 --94733978 --456962134 --870150896 --536249392 --789792664 --304353275 --404222651 --634741441 --574538847 --31052394 --196912884 --251759955 --859957897 --566159535 --599144314 --49362688 --997820619 --550695277 --365884593 --456238069 --412934181 --37656043 --186846470 --610611457 --952111420 --132482398 --537993950 --181639790 --559237444 --604102648 --565780378 --485078049 --587134493 --476737128 --250115678 --202505451 --282053928 --402105790 --706960132 --579991476 --517477169 --348111986 --72889382 --451251766 --863352024 --337848268 --734003580 --200854224 --798764879 --532202022 --481533643 --812504672 --844670226 --517149627 --90373605 --168728648 --188085932 --919363185 --59207152 --558044708 --317657220 --524123891 --500617813 --384497544 --728452313 --788322352 --883258750 --584911957 --48829077 --104718879 --578836355 --46516451 --996719463 --794188524 --973883333 --141259300 --647344794 --620021319 --232524382 --33490018 --741687160 --515382037 --957310657 --627504154 --782244493 --425096991 --60743653 --991735510 --691493312 --197453863 --395297800 --309849032 --760333232 --507124249 --20973353 --643965303 --863549656 --629890875 --262261651 --291894563 --957106411 --338104606 --376428885 --521437199 --208685714 --499251573 --47304180 --255024887 --776903298 --45111179 --913593260 --310267359 --536042442 --323467266 --320555811 --49421894 --993645062 --853056215 --412973158 --41373093 --741469381 --291211712 --780803492 --589519822 --765994648 --357889786 --612529749 --262747290 --240372707 --493502408 --128934021 --711238100 --704492693 --897628048 --202752975 --11030285 --10285537 --38765218 --62131845 --906741783 --473254657 --33330202 --951565422 --859063537 --832584260 --948379083 --466179007 --369254269 --606266720 --287721119 --324029631 --471904464 --324135961 --963987558 --495782923 --645786855 --444683586 --889591652 --203608515 --551452405 --9270958 --749864685 --551029926 --597617966 --994000002 --57532260 --838789024 --372989673 --505483734 --814565918 --508971038 --589555220 --134692229 --134863094 --304210661 --790048328 --147183477 --25259848 --130496045 --482628452 --667357902 --827573325 --279374480 --693041 --87607477 --539561191 --57831151 --939513288 --514862602 --203151416 --508086961 --800238272 --510765340 --4906313 --582208419 --188662106 --551776133 --948798192 --247138923 --664504245 --424103051 --516262064 --325661667 --2259792 --747626638 --538684832 --570043359 --878617309 --324887062 --93835318 --667866346 --920804289 --75895208 --616533696 --790501017 --637303958 --268209043 --760704854 --823990706 --485144678 --3075395 --204802979 --118839236 --462124421 --136292952 --363040407 --824090967 --747950009 --366924278 --131014064 --801198766 --788710933 --760715644 --309942083 --246837828 --397795614 --995904370 --255164901 --814021996 --520710956 --405128285 --181447609 --518415722 --899511168 --83393291 --42286050 --278874941 --23585862 --633781198 --102036632 --806794632 --493954266 --395259730 --936711082 --414936309 --134307478 --812580822 --898884281 --155575910 --462389717 --266990203 --156708530 --619523527 --626753470 --660676795 --184409406 --133543525 --467470868 --495607799 --704729058 --453837632 --26689040 --135376863 --90158039 --754982337 --646286343 --678639531 --859537579 --301740940 --130005414 --237317713 --873713992 --547895915 --884199787 --336734006 --62330754 --978726717 --17593067 --589630861 --294853978 --146193625 --154699848 --552365343 --963415683 --678903795 --497458645 --655724969 --456279703 --335025162 --397381514 --268522156 --387178735 --694566996 --350360130 --740828641 --281848387 --40656508 --288729102 --982463409 --572339291 --971500487 --170652182 --841198593 --273669292 --643350389 --481680909 --940558060 --971872115 --199784114 --556603074 --336639076 --242084217 --54423323 --88428425 --557539763 --129894244 --426217906 --550267209 --728402842 --295006959 --234456835 --55450922 --698145419 --701819438 --124528647 --946861217 --578199958 --502820513 --334228597 --359726223 --565267634 --914350432 --546318237 --764491990 --172084175 --982774145 --210699497 --940059410 --103958863 --265185548 --751840550 --371744304 --55117414 --698090958 --238270447 --616033578 --727385087 --367084889 --201442798 --321305259 --677904492 --668617470 --821969464 --462508280 --556354716 --711622708 --203820443 --343554741 --942098397 --92929102 --679075015 --376646304 --484768605 --955652645 --580487439 --335392445 --204888510 --145680382 --11165068 --362789846 --987863645 --101259506 --495187974 --277111854 --92151976 --839561665 --140358038 --986745170 --501469239 --215048076 --963300104 --156120285 --254829635 --707528467 --545072559 --948135610 --753295723 --334131104 --147832955 --546733569 --209022117 --416726046 --270800195 --601100763 --278149393 --452837557 --685153988 --233721421 --263782411 --507208245 --828502036 --186056932 --736812799 --108745224 --546706091 --389386931 --436602753 --561959915 --427104913 --675843346 --199398899 --784970515 --679607948 --229592157 --773234626 --136793710 --587742022 --860827977 --752603172 --231635609 --295648469 --34605151 --274650264 --818877132 --170535225 --661509850 --155162560 --801708937 --105640832 --845590536 --169200089 --484006733 --242115505 --360641557 --859789509 --494943726 --948103484 --753944259 --260202886 --769527716 --466829533 --389953863 --839229688 --736493392 --701420999 --494398793 --272379512 --928555165 --274162659 --818546087 --967274433 --277817395 --644705731 --635320804 --11641713 --740195906 --793701049 --990166897 --99822354 --340740491 --154560922 --986732664 --530831993 --996451290 --455565670 --861773685 --837551699 --855900197 --673894613 --200346573 --279133754 --93815969 --737365279 --320549690 --983840468 --545285341 --430288221 --273791372 --811261467 --449741020 --379176542 --161552741 --617117643 --111609671 --609699368 --193538135 --305707692 --607856388 --435129499 --296768 --629156303 --90234357 --797707342 --419943113 --417480402 --265385162 --522638282 --161795807 --94459240 --471258497 --134575427 --142085705 --164279197 --6858131 --971047048 --834087806 --740656496 --264928923 --802955501 --773374256 --474698869 --787102269 --547959305 --41401125 --461688358 --445863131 --626423738 --276821476 --953152546 --90564081 --525506919 --901963775 --411305995 --117604114 --632062419 --413617754 --107213237 --440892604 --247999549 --35852400 --168812419 --442420052 --308473914 --613349589 --620626196 --733567385 --803309190 --351580829 --199558897 --173340702 --72392067 --817244595 --334786570 --585012136 --981413555 --95985157 --482156122 --730406118 --87759069 --802700622 --345191362 --410194390 --222413268 --171940065 --898790184 --46228632 --610824379 --53930610 --585980080 --515417654 --320613750 --369377561 --61575344 --843644028 --578355630 --623832343 --948717810 --766407742 --722096528 --9414031 --457609690 --547532226 --332007959 --907379401 --623845763 --196372747 --743104712 --820676153 --548183573 --183033833 --793271381 --696656822 --926908148 --434167358 --659971532 --923436527 --23561840 --919782043 --480186677 --947605289 --298020684 --962760773 --441751398 --206118114 --724376979 --979976901 --544330101 --383865814 --904185131 --947020201 --15285002 --242338576 --112924019 --899678591 --29825584 --374237710 --554036709 --882752523 --202979246 --292616555 --413192222 --612608842 --371191830 --20878378 --706478715 --16823630 --19923493 --881572073 --541970472 --463447768 --715188047 --623914795 --82334613 --126492876 --183891685 --267792244 --92171961 --324843955 --471124429 --628725379 --270799775 --230363871 --248886882 --413159426 --629945147 --601205118 --661008471 --114433963 --454833085 --511017570 --107204563 --478068481 --335054541 --325604630 --973079493 --423662453 --692697741 --641424457 --503416638 --963470693 --1433770 --864509574 --102208375 --962263261 --515566460 --808619031 --321003196 --266148296 --481041773 --534514551 --377164477 --197038591 --463091483 --998419731 --953264993 --703591815 --699537369 --673293141 --553643296 --585470212 --430534687 --17812857 --882870319 --934293973 --748182298 --280325566 --994441452 --480832823 --204660765 --268775169 --465293594 --785416442 --887957435 --440446178 --155380869 --913109348 --655488710 --431833201 --354221815 --376279677 --289610844 --3841221 --100742709 --808564045 --445231449 --746320211 --415091012 --411102813 --961603541 --945330695 --499808498 --136958167 --760932977 --983326028 --849801053 --518399163 --822057602 --584226250 --482857415 --10525388 --562008538 --613123635 --242084899 --557314704 --576374331 --215949030 --156671903 --509744075 --293462039 --249223409 --746753871 --607943829 --679455307 --957759929 --23029058 --272304573 --830960693 --994574321 --111422035 --602836915 --671533774 --195131494 --695149069 --146237901 --44022474 --609519101 --773696346 --577390669 --54457575 --942092474 --876354917 --272781836 --834880769 --441240015 --11588180 --144605328 --336286080 --8101155 --317749566 --81326781 --304902482 --85988641 --151498333 --294747830 --797803245 --181658563 --648594282 --36304237 --976804316 --855203668 --488642613 --407061499 --883781789 --825556987 --941610005 --505629165 --708706809 --316673986 --201143805 --754120722 --752502755 --365033216 --367942770 --8835704 --589355382 --169881635 --367579404 --203285014 --184780474 --385177152 --643431184 --220545124 --140892959 --958350295 --818005174 --542514558 --361125926 --285171986 --853136306 --727723517 --694396690 --236416470 --178625251 --287533617 --872132563 --991362174 --643972439 --346386170 --730959675 --649253344 --50084041 --344000900 --316705348 --374761901 --997327323 --132210638 --303624463 --171467476 --325452570 --170181760 --965422073 --640172272 --783984155 --742235378 --3131306 --303852884 --84953313 --882877382 --645581897 --275602638 --684608748 --242706057 --735812368 --99799881 --912365663 --279334946 --981314987 --349849256 --527303143 --229967463 --480007069 --308916990 --6940366 --842370145 --632767015 --19077587 --993436502 --889344847 --687275540 --918428546 --369303097 --121320726 --521845065 --13349844 --569943774 --143685703 --765354050 --811000886 --840285527 --437877510 --984303799 --241062813 --577108192 --372833743 --751922291 --755739953 --799387784 --879635717 --962933491 --326667586 --450400447 --335030779 --8877781 --549685133 --761933825 --701994941 --787185328 --276653996 --695814554 --457438637 --876562854 --267367916 --237038116 --489311559 --788736532 --672990578 --453019581 --60650832 --521772473 --886625222 --229330618 --228910879 --394020583 --92180748 --289610657 --215266997 --191015436 --183509233 --469920415 --776799065 --716728420 --849878308 --409288305 --877815767 --839271886 --766736828 --746764899 --484399157 --384297539 --288132597 --747179980 --650781834 --223611499 --877599415 --174127388 --399526714 --450916660 --971145981 --520124208 --218234712 --910180424 --516718285 --826332385 --770662601 --285640625 --731942258 --304868111 --901444586 --244790580 --365652677 --437473750 --485390253 --906498730 --742061015 --401420976 --164133315 --965313730 --816083483 --842356097 --561855398 --316138752 --545999978 --433930433 --866969062 --428728341 --243539030 --584298265 --650404940 --706403087 --582884452 --519705886 --154937590 --139498371 --5546584 --461601760 --196229523 --336840188 --824892878 --699199604 --71234583 --319408479 --302733579 --552549768 --594085351 --968226812 --682395036 --964524896 --567480621 --567566753 --353562944 --37639793 --312707218 --66676507 --84821093 --20282311 --714772923 --216299676 --934176045 --950342015 --471217095 --465099920 --595309676 --427979917 --558051806 --235172788 --626775162 --217731372 --223904283 --441313887 --648218687 --98728524 --814213062 --122107044 --840402750 --39480272 --624362914 --761571468 --74038416 --656794605 --212094196 --235082724 --41575093 --72167857 --409820222 --361354757 --533263574 --489132613 --803835284 --907305996 --984831339 --469812619 --708501919 --649438137 --903928404 --909594059 --987536924 --76473522 --225169102 --610075415 --352921693 --30914616 --435397151 --200792668 --625895526 --905010320 --191898179 --341188594 --976315036 --717504142 --412181943 --681162016 --82088737 --13769700 --17060593 --283408179 --511933336 --497728225 --483457736 --387489605 --597783307 --176776745 --936859037 --702985948 --347656664 --602799360 --266541722 --534100793 --351402473 --703682160 --835351524 --386328655 --750002134 --366738065 --654143933 --138200144 --323061114 --453625821 --216928833 --168838995 --612436024 --997842518 --301450538 --982047453 --310271340 --449169364 --454990807 --889855413 --643890154 --837872887 --690809859 --463265562 --331695032 --54947148 --926094949 --75303746 --90495886 --643092759 --55811534 --376603018 --422537174 --326294150 --681706112 --517742423 --139545473 --171432604 --650674449 --335203918 --178412381 --271360465 --11757906 --10582968 --125875353 --197156788 --641110612 --820284848 --441346863 --35417528 --473827589 --464089646 --780912111 --425424782 --758143207 --738785527 --838480677 --720373577 --828219175 --7025105 --469735858 --904377213 --45726283 --150905771 --748904913 --112489914 --862258895 --678987935 --869456849 --683210628 --502297285 --235295523 --70139412 --80530902 --985185426 --501285658 --924661913 --10915402 --491982934 --906249904 --547875904 --678070678 --980575824 --309731011 --825096282 --391838736 --622793224 --136515366 --881710297 --399302670 --224709894 --829838243 --686724665 --295294705 --665554317 --943585589 --590492139 --212733435 --616955936 --137594974 --708088867 --285522470 --326755837 --994382769 --420313624 --901010904 --859761966 --779271233 --280158367 --899637481 --475143394 --245495690 --996873159 --312861739 --596894651 --304686748 --196275303 --796045024 --217388069 --563757760 --937309672 --200210327 --488216782 --606146783 --623327016 --928947410 --942487426 --623232637 --739040607 --791032009 --799860395 --194397511 --220085875 --223629497 --811842493 --68783052 --190616847 --290504816 --527098325 --265640870 --491674417 --585788165 --133287978 --100888593 --652140072 --370850160 --47858924 --546456345 --589232588 --437774774 --485337893 --702052268 --705588686 --747390598 --404422263 --748378960 --592614966 --899968044 --142302638 --594942208 --536737944 --708662468 --523649692 --886274908 --85347602 --310106001 --717059392 --292392424 --746765316 --578192293 --791541234 --371696425 --937331667 --529068212 --276473758 --933868898 --314730297 --744484405 --272211069 --126826952 --631477447 --496933950 --496547421 --247331042 --800038016 --322196647 --971487419 --894829643 --897786831 --199621438 --322713561 --127953770 --613538410 --725032569 --709509959 --168108103 --146235969 --233482249 --738401239 --608906347 --682591439 --30789794 --482881196 --388680018 --241099191 --682283283 --538598069 --245520081 --544934546 --630473547 --96291818 --871779987 --831577436 --942785159 --712028441 --168556027 --826511958 --913420726 --746826277 --642237841 --640926304 --215951441 --704269404 --93461943 --726922716 --754893412 --299580954 --350073943 --563456534 --16569011 --76624947 --997448057 --895266086 --864447602 --176552714 --468796836 --341735846 --119054097 --68326396 --577694828 --522957804 --474796392 --372852520 --232168176 --14178822 --428537693 --762242932 --387493088 --892265581 --862836227 --191552038 --543505475 --210701128 --513007325 --136875891 --224223078 --371584872 --685980746 --690529857 --350425873 --308080708 --972596440 --708647170 --814207907 --24479247 --131845079 --786062901 --226024125 --307313752 --591072298 --832900881 --155902433 --466856237 --673100562 --915728691 --495801317 --731804652 --133982414 --25345798 --681797667 --852506235 --949502083 --15153173 --574548266 --451816525 --401483764 --822832866 --55015095 --457731261 --863396914 --564061233 --678001598 --31136158 --58350127 --455303855 --7935424 --915902310 --402954293 --834044110 --430688508 --722400010 --746612198 --534959415 --572116200 --971085018 --135213771 --437870154 --390586815 --954802782 --922158655 --279693253 --419525873 --853288452 --630651112 --476811195 --609131461 --94544376 --356340006 --753215506 --223392515 --149199491 --58110683 --197812312 --156742529 --326353941 --506396964 --885488164 --127981066 --932879488 --829330805 --208512404 --388063416 --247531245 --762316608 --835905355 --950843157 --639458918 --55439465 --374965593 --57235242 --929657879 --829611253 --591571472 --496483141 --134102134 --174803981 --155580952 --743867315 --722295831 --988094485 --633907776 --84897519 --82736020 --678972347 --973686185 --179646229 --690913226 --90074156 --667491270 --892190988 --496643122 --978500366 --310947925 --397945683 --362873656 --852184991 --497277384 --773653894 --583163197 --970175596 --670832425 --378198154 --365593069 --817630688 --303004901 --758580786 --556543755 --374823469 --519229695 --349756568 --195582829 --553159207 --569218269 --838681871 --22739240 --779197056 --177502432 --378262928 --556780627 --879784861 --98058049 --894018324 --473389500 --376236291 --685248836 --174855029 --601660962 --272450835 --458387321 --904165241 --559688797 --911263747 --199092709 --420451671 --150276342 --88591532 --224956882 --673943736 --417524202 --562857744 --489353348 --461496171 --846855049 --534995782 --721372948 --309790934 --809353109 --529000513 --82415920 --767791828 --25060068 --848027058 --470698508 --23704329 --799618583 --502433153 --654144176 --239539672 --209958366 --628759131 --737186347 --845084556 --236367338 --29466919 --398662671 --833602309 --459648032 --687833871 --118866495 --708292008 --522545179 --294305757 --380062719 --166706724 --630457877 --232814219 --240057829 --474270435 --166435960 --916972444 --961466158 --862323493 --71311694 --455432343 --519215925 --248058177 --948392526 --265678278 --869904856 --912347319 --223229792 --281604656 --237019782 --236276133 --538150020 --417179666 --263613008 --373132248 --221505564 --700933997 --179970809 --685960090 --853578216 --600572360 --522572413 --778697430 --422962356 --237970038 --536319544 --629639120 --329719279 --801172506 --201154881 --779898947 --340966497 --693817286 --433964332 --986513943 --930393801 --372290569 --743451583 --429710012 --413551327 --144637961 --137747305 --204277403 --886761061 --545798894 --515944617 --69247790 --489501873 --893523997 --827219996 --166663903 --186032047 --772104339 --514833053 --945104089 --470988684 --546546978 --252453249 --977483344 --904856550 --143877262 --764016334 --859004427 --957580078 --680454747 --524229826 --138129492 --891891593 --871545261 --896492232 --584454571 --988704903 --986395 --126830898 --678428639 --19039839 --682083330 --504614536 --66347728 --989740392 --858941682 --842408338 --707609125 --341707074 --638196494 --489234540 --499130708 --103658830 --762548867 --168207780 --876117248 --863334690 --820586159 --836209325 --366318409 --280930634 --768386656 --931869087 --247835720 --864305486 --646205209 --248056416 --326381536 --289960606 --563736584 --158086087 --52937825 --582464588 --344683260 --856396408 --397479174 --898403746 --837608828 --338484611 --103075220 --565180239 --759361523 --148031273 --834088780 --46801394 --684981929 --63112065 --296532688 --40864526 --105434936 --604623502 --482118733 --12643757 --681163000 --783513449 --200119561 --654118076 --196599070 --878216739 --412955067 --861804274 --502566997 --925130393 --133333263 --19812607 --353155777 --311068545 --658154015 --168138484 --497364334 --839234536 --680816595 --309112216 --598494730 --244330916 --500025647 --67947458 --50381464 --604927508 --195191111 --820281066 --209209820 --531172637 --770332939 --451966655 --407773585 --642375650 --551250209 --80567487 --235283458 --144200966 --212559471 --740832235 --446116883 --392428403 --512352283 --819255262 --531957269 --773793810 --574995771 --386720625 --962209695 --3563949 --907963278 --306740461 --562690177 --369476640 --453872705 --882557118 --874148293 --613102149 --453700030 --764854882 --46300045 --848690702 --427031602 --131738893 --902724345 --105900773 --671459902 --640874788 --956091298 --619513390 --322983926 --150569467 --882153154 --198139172 --203761311 --125096345 --380661185 --404585567 --817831394 --608589453 --253802628 --751364368 --218998463 --606196852 --458776949 --895893612 --253475146 --808115212 --925757072 --89760193 --5332062 --16386414 --867461726 --467912518 --623994038 --387327519 --635510530 --31310985 --274983472 --547109426 --286613852 --860051060 --258421933 --702130230 --871798399 --99630395 --538344208 --855978115 --491840305 --120441428 --569013772 --581346662 --90590834 --179924317 --67654171 --110793951 --994004151 --416169543 --309225589 --531026084 --330780350 --856081983 --448798317 --783706013 --64068602 --940334774 --948663184 --558910985 --45794074 --13218091 --617102118 --70029676 --546856242 --556730624 --630379731 --697886921 --474444882 --984974336 --942671998 --758536388 --45136335 --807930732 --506064452 --816802147 --102663591 --627683595 --659788267 --729902398 --781544121 --894017812 --957669357 --18845281 --44904204 --217803730 --257109298 --278669243 --441347647 --223014440 --823160763 --343793055 --380370831 --958567695 --844530996 --916506478 --839396434 --871808541 --613311957 --839633031 --913386262 --56890757 --696031037 --429199004 --607228843 --414051294 --820423682 --951863724 --808187319 --221373026 --380075837 --943313033 --916413669 --325772895 --150498046 --160954969 --167591586 --641451441 --848674939 --102326035 --619740485 --403307522 --267522138 --413662046 --877419956 --832911902 --505902349 --741130604 --331087779 --745610033 --494602444 --565375299 --146068885 --137483751 --668366297 --320994994 --85833020 --476441094 --871010081 --263941488 --853420752 --240630013 --623588009 --784697199 --205933206 --191969314 --822077232 --893781383 --320732988 --347134910 --55936051 --599589320 --153276843 --879912634 --553123456 --728819917 --555027826 --855102949 --19698202 --589291142 --743898676 --58664812 --214892991 --542997446 --521214841 --526024406 --285074281 --133392561 --447992785 --48054299 --777169256 --571441183 --482167212 --590117098 --279859927 --250465734 --365492992 --595622680 --253982681 --3455401 --558563651 --339598896 --960341736 --656791741 --180192090 --547776751 --881423896 --706574023 --544021331 --531916808 --888121275 --819570101 --372028646 --220241039 --574551975 --205785051 --403895672 --468686047 --605751141 --728387023 --226503636 --226751017 --340582902 --33491937 --800537186 --459138907 --27058592 --410540063 --142106323 --652419752 --76301737 --292460539 --629105479 --190672836 --562132818 --68397946 --504736843 --992758124 --738824038 --1766144 --129687760 --623176419 --56026593 --166777327 --273690308 --229655285 --108224591 --842205750 --113374393 --620802037 --110200929 --805529122 --760172842 --704098962 --695135370 --183947433 --823684616 --496649169 --84311851 --613026722 --699952946 --294803953 --733857880 --279609381 --40990069 --680545538 --710271852 --811863798 --532804471 --674639031 --934559302 --539401759 --16671078 --855538678 --598753863 --36520442 --475836058 --753965557 --963381447 --237500878 --480021342 --613900865 --689452961 --401861881 --636599938 --226762223 --33839199 --397669397 --205878988 --70835500 --494289066 --12997531 --193652150 --380946926 --594282448 --216053280 --868121080 --140866666 --173055545 --23054278 --233494685 --455778958 --111936617 --857791994 --522442143 --66297481 --317339313 --902671452 --521343436 --990186381 --834159043 --529176818 --602950195 --870842883 --687516337 --239591165 --291556202 --550895997 --655028499 --558949008 --11617110 --914605105 --127367094 --782250807 --120950578 --947336029 --484907234 --438949817 --472631794 --343970097 --258587934 --776769765 --27286075 --23277808 --652164160 --410894155 --427213086 --672917284 --801718621 --474218105 --776067934 --568219433 --775289140 --920344840 --193777061 --442599425 --470050966 --640072046 --902681035 --704924487 --237900686 --330585105 --610575408 --500974904 --97671622 --949557155 --409346853 --122788768 --965448559 --354657133 --529999361 --123571314 --833972037 --36994769 --566874016 --242015109 --419635463 --107596045 --335639699 --911508156 --782833369 --875562006 --334126896 --549360263 --672063339 --664772933 --800822075 --961778113 --618886574 --814015615 --65906839 --97937931 --175137798 --680808230 --369176568 --391594015 --139249834 --227835677 --221610636 --16661576 --764323536 --56821123 --603826576 --276272327 --216777743 --272855983 --997316677 --975737713 --855015209 --673642725 --991765284 --474697284 --765488387 --676910263 --42908116 --703118403 --82671694 --485112681 --270162494 --158895175 --594066183 --784724286 --430457166 --845204914 --740259214 --551537050 --578321614 --889248917 --762398518 --922086397 --841728735 --314083549 --171572417 --13637754 --605465308 --183867619 --711225628 --881907274 --717312849 --644680315 --788097553 --816586229 --844056430 --190520344 --444054725 --277044784 --756766691 --565577049 --762185909 --594454594 --641179030 --150890970 --378978620 --235738953 --263658100 --887993082 --224752604 --834318795 --522664466 --612911924 --966966462 --33772732 --210107241 --134437177 --687564699 --452663958 --892077163 --88152506 --877656821 --970872147 --415660568 --16615536 --325293401 --685805469 --708517987 --69754621 --106339384 --840117969 --141479771 --873607259 --989184786 --1366574 --662185620 --412000407 --386944408 --499773583 --943596012 --889109252 --46044207 --357377304 --344862307 --869777368 --565501822 --138849332 --122657759 --990128791 --685880992 --767781866 --385616133 --151732781 --580525674 --765675669 --667465402 --382742827 --639533176 --360584903 --440915919 --549854818 --214974233 --541788575 --328027974 --705833818 --156126845 --381751593 --378623481 --310627685 --410545576 --769284227 --565770302 --888605342 --695373788 --837953504 --518785712 --345398999 --192906822 --784842953 --932461028 --848056933 --923789307 --861579996 --484967449 --973306170 --197780800 --373263277 --605602235 --520891423 --793557264 --366603640 --758991155 --680837425 --59121060 --833132954 --951248038 --193162759 --959061521 --450592805 --635410101 --267375613 --505239575 --552078479 --918958814 --91739126 --838353219 --243865192 --534287324 --648227844 --509050568 --14178316 --555261344 --589958025 --373870263 --645531971 --985282220 --619473452 --213115851 --313131059 --748196878 --185531451 --32342717 --227492319 --969528168 --736236184 --408169549 --73968921 --262644786 --19391282 --58113291 --750562059 --729419033 --128296274 --835640029 --779878046 --664223554 --813636446 --464835145 --698424707 --955664302 --773997268 --297735187 --522389591 --567795304 --876984077 --927571866 --182281468 --502335081 --474418326 --201522673 --667985363 --909016697 --362786216 --704948755 --910286950 --357477643 --897771776 --753741467 --82079680 --340476950 --745366159 --989693239 --308092728 --409369793 --36525236 --89198226 --39222939 --610791426 --145624592 --673300911 --660033232 --863809189 --529022546 --389821033 --456730029 --604280536 --254325294 --362057137 --261500607 --258734732 --438892635 --282159519 --613253367 --59747075 --414718931 --739776612 --78992301 --123644748 --403810109 --310273361 --801757482 --24529682 --805157998 --505442802 --569566342 --863390280 --949347528 --448402590 --558168610 --211517590 --698927135 --266393655 --502008084 --230811202 --940054790 --248248763 --366175801 --220101166 --852319006 --165540209 --922918198 --16738288 --413405742 --623941663 --438314665 --992665066 --17105961 --637102730 --610147292 --863436208 --944656302 --814605364 --981105131 --250700330 --398066541 --283963731 --769609126 --647729905 --963495679 --689352128 --74761245 --612775864 --575484696 --444478218 --807109995 --855820262 --425137308 --582167520 --799069212 --478279477 --588926574 --481664893 --719000535 --327003454 --882435072 --629110260 --71065026 --737414014 --38686868 --723940742 --272514466 --461960607 --312944742 --620003421 --920325922 --336498169 --715312263 --212425391 --87869771 --144378271 --990707837 --907923661 --590850317 --699941293 --163726438 --123209246 --383774838 --549462265 --698855953 --30550426 --760145317 --850961520 --241800780 --822016291 --978057657 --447174145 --26635182 --618416331 --990409479 --504712520 --718838092 --554842170 --15352937 --815711904 --825491758 --869574734 --268156705 --540167642 --497700929 --787909874 --36981736 --870794538 --49718221 --682970631 --821220423 --672179423 --532399283 --133988095 --651942345 --652476286 --336994570 --167836026 --311328500 --62485170 --3376869 --290176390 --762622441 --876771261 --409791505 --452694600 --163664520 --493039422 --102500129 --442225000 --461292544 --618392982 --142683999 --869380188 --895860374 --231348453 --403989622 --811813211 --394400565 --568384228 --135028160 --393696519 --71692706 --63034684 --24689535 --81366808 --987415549 --184452304 --498919669 --773875633 --490987887 --742216068 --837420039 --921597211 --391741471 --812565803 --952705793 --871343089 --616601722 --80044626 --2541875 --679722310 --925582696 --852629232 --307516193 --538115874 --541601770 --513258179 --413288772 --496781802 --201761460 --175163143 --962162312 --101722618 --63252385 --57851365 --280146545 --281769417 --969209793 --867283371 --227804042 --145415796 --884951612 --110441270 --47957624 --275694049 --419411320 --457479189 --600824266 --772630766 --238004013 --977374363 --693887346 --446162652 --7989098 --582167045 --251503906 --717076640 --215398683 --393875028 --28488663 --593184378 --859342816 --566952624 --930645059 --259355117 --477906959 --938017345 --363365444 --205009189 --116602903 --439184425 --532121854 --615914128 --883356872 --812395040 --631639548 --361879662 --594274895 --361757158 --789523217 --350926028 --389743189 --877955523 --526265201 --57708155 --698490057 --990200075 --925159473 --188233643 --245295352 --149258656 --479473245 --526015279 --70927998 --373564637 --361657347 --548529277 --936321839 --38688014 --142430779 --21445872 --511398128 --453666982 --285079627 --736030914 --990812380 --191080193 --785220280 --243158411 --574649606 --50300077 --603035875 --155231273 --123199271 --436503458 --186944146 --198795788 --801871576 --349361210 --861024192 --659979220 --231074997 --919534216 --948406337 --671573669 --847514381 --475882361 --545273684 --957041753 --498711724 --779689455 --186273865 --343581836 --251931632 --892013422 --188125479 --781957820 --657965359 --854492449 --293290781 --89014562 --637716955 --134843968 --783507542 --324559792 --783478246 --616668306 --721111152 --364454280 --739955315 --761935448 --370168964 --254830286 --401782791 --946466753 --2428749 --446068717 --856414387 --587378820 --115808811 --787663597 --88321690 --219130030 --657422 --73789616 --542061405 --228431473 --358869459 --889200019 --2540179 --974477682 --851190219 --967987448 --782102279 --19891923 --757742247 --453382653 --484412480 --760785706 --275539187 --43425925 --451523928 --375536434 --849206587 --912961761 --883006716 --947841750 --644958491 --198134267 --630782559 --72048551 --270364664 --215915002 --194368867 --204964452 --38579706 --584999762 --777194860 --402589516 --540366024 --162869167 --580941379 --702355917 --324658460 --106471605 --440340826 --685487395 --222733543 --661411756 --812110744 --829041686 --948839831 --810018151 --859230314 --452632815 --430142005 --51484823 --256787629 --984652788 --323993590 --858050934 --704177672 --5323506 --936771209 --637341813 --176470401 --526705994 --509173385 --524646409 --935676440 --235660618 --739070840 --998934913 --447710427 --593177802 --852110846 --602709358 --34407053 --74687761 --478074210 --415088872 --986841471 --182328117 --380713717 --381752741 --191700943 --226490071 --658264751 --114772819 --346302638 --338410112 --497156419 --79518776 --354781827 --774426085 --607502451 --605456679 --600865109 --134932460 --896750263 --344912738 --927476767 --168880042 --528431191 --4662887 --973918016 --219447787 --528006217 --39914153 --299231690 --528062539 --549751563 --728303678 --239129119 --307018724 --827791240 --37881872 --567065451 --125476650 --891404014 --876960100 --432856006 --279326308 --451222037 --843403301 --649839968 --12341925 --532889975 --925850191 --225868114 --87747258 --960326229 --890624205 --272815819 --214468735 --447749474 --492626305 --486098608 --406182314 --96141154 --528514094 --335372639 --282466515 --50332469 --489890637 --140085872 --999385583 --879186623 --742493709 --915810987 --803541932 --863941689 --754839741 --894125229 --308880038 --399374393 --726408105 --699352109 --938838099 --710047361 --443771638 --82812750 --975508558 --302820252 --945326425 --349673565 --109863718 --526172064 --781068108 --897735253 --555303488 --432695516 --749339589 --666984110 --768511982 --604051903 --8821936 --877798931 --113512936 --657591548 --220711452 --472600756 --864946018 --708619977 --89846927 --920936670 --256677899 --597676498 --812705504 --105134378 --49891072 --924350346 --553651996 --776382878 --230458093 --614747311 --535207739 --254599175 --395960883 --32804447 --68042870 --800582094 --863185590 --306709558 --311578469 --575695876 --241405552 --724764652 --188067712 --749604861 --677314539 --359413929 --419744964 --140353783 --482311204 --166406277 --809116360 --207180264 --358137404 --652349706 --55938227 --613672718 --151566083 --356934001 --632498720 --232340327 --147187499 --341215842 --797857381 --674379802 --243579477 --942006095 --904757913 --468529735 --401009529 --762974968 --931825908 --444488797 --472246016 --462234780 --176556585 --308243295 --246787502 --298648606 --514963954 --484322038 --995431582 --944616429 --208857402 --66681458 --503539512 --142270240 --278039529 --157197698 --699837700 --848023409 --304540738 --927350118 --530157088 --20182137 --127665138 --96865634 --68753269 --46964808 --510112651 --191238948 --969383081 --704343914 --153870038 --504843458 --632946745 --734424261 --253970679 --3958413 --250152605 --720138249 --904326759 --277995365 --353832220 --147440416 --570928616 --907163248 --346292287 --307009757 --368121675 --612269087 --846141613 --306480583 --124339869 --188884375 --501390936 --783510189 --204691974 --924366443 --580434376 --147793735 --893989457 --246780715 --688477782 --775345840 --81045105 --385462944 --836205520 --921069689 --556655701 --886071363 --953100211 --81256571 --422936975 --405025866 --843592242 --839237917 --874661361 --481446692 --801541755 --486255827 --778713048 --759225667 --965938254 --550702212 --723378699 --439023639 --643037700 --449090677 --348681022 --391970653 --106115826 --114036098 --854333264 --729690957 --658381853 --973927266 --343126827 --154803295 --371689278 --227022796 --880859887 --335631650 --813765083 --285221486 --182954288 --637277559 --863710354 --218975121 --84495830 --829413009 --893350582 --673143840 --659930754 --119640269 --839485495 --396401624 --786605411 --834539064 --64272382 --344724253 --144410559 --266750412 --121896209 --941206308 --639386430 --97833640 --927131185 --730731359 --498477759 --819043108 --841582711 --197249514 --74550084 --204859390 --212502544 --596289565 --957263573 --22757556 --207614487 --970250682 --818480209 --636027277 --961447709 --613205298 --950644376 --27810680 --829849823 --886943391 --114735717 --931708935 --113817277 --386701203 --98612828 --511079812 --778187762 --180889054 --461283712 --845961242 --98498175 --474633352 --781712564 --47826686 --58031043 --802036768 --625556058 --542198804 --270119413 --199805777 --268816029 --522803939 --493264397 --565864477 --903534438 --151544564 --98704052 --390915978 --359182097 --349072030 --310864833 --884592296 --17396817 --690230939 --946836409 --197944973 --946864968 --746148457 --683350788 --10639244 --587990659 --772173753 --789200582 --724925361 --431321276 --889081288 --38318285 --777623036 --340974044 --737489476 --30248786 --750620454 --100365181 --906830752 --429800761 --951607056 --215006581 --824033994 --533168259 --775671317 --991914151 --502330224 --764527913 --152396807 --301032030 --459382976 --625798990 --719288976 --824088868 --380310692 --73840968 --677114030 --166588383 --811858039 --887355220 --403773632 --277340072 --477544948 --197966747 --396034492 --72979311 --33743596 --670830066 --107251779 --135557722 --807356918 --876430151 --118894115 --585066053 --453355475 --850072114 --817341021 --444805622 --488415557 --647128641 --620417975 --470513777 --92196309 --915926358 --359095400 --824222070 --578486531 --619296367 --144661184 --417409217 --144028979 --820358450 --327560821 --727474205 --567976052 --852773704 --72431252 --921403348 --965444655 --843885463 --698339079 --799556627 --945759235 --802265007 --624838421 --868819499 --179862507 --177648927 --880682423 --64784436 --432621334 --944317567 --196427639 --37401854 --823402806 --614904940 --39600556 --456367869 --477265386 --890888693 --316242808 --962831165 --481883466 --254624231 --576398556 --926914387 --850959321 --391212143 --182256714 --797024509 --208167614 --908049939 --980865136 --70230909 --373943370 --305218078 --616203371 --735051297 --235229726 --415233541 --609708644 --965373637 --369409651 --935019426 --857341203 --742802436 --323507645 --338746176 --846004025 --284407454 --54354631 --633774548 --387122590 --421886556 --466382203 --764052154 --809279041 --964934102 --338902823 --466588923 --609639427 --683037650 --335971323 --720624397 --742553601 --745236228 --969773637 --964035418 --725488009 --211356131 --442120405 --47770858 --813401103 --728626872 --9337816 --724352698 --514272277 --368133615 --814504066 --757347467 --484141659 --263672342 --624834327 --829010675 --337570406 --317216750 --474396466 --280585548 --528841538 --805614774 --406127698 --606804973 --815367515 --334327854 --539176928 --680339879 --877880488 --951787625 --586532188 --508036949 --538880206 --7307614 --147978508 --836156157 --719651981 --924014074 --162872297 --108412606 --285251896 --784768114 --84849449 --564148391 --361891092 --957209266 --29601692 --623819865 --124954690 --194245351 --880348275 --644102028 --957790143 --119532151 --248793396 --641694418 --362831767 --473755595 --375075333 --380588544 --652134954 --347586977 --848067503 --371870074 --451334929 --753047992 --535545069 --187748723 --141033174 --935022846 --54794815 --895865573 --636374887 --519680898 --744936668 --321109190 --685928503 --672240997 --180897241 --179048124 --157745087 --889842214 --923288703 --91293513 --544382481 --915657469 --747679493 --412497727 --459957242 --833172325 --263870860 --910126743 --637166925 --253198349 --908704458 --417113749 --44739532 --521397641 --203582610 --578050698 --395882899 --513575415 --239552165 --828626109 --513424432 --279616267 --558199885 --859279800 --742525359 --523532305 --447696766 --279065609 --746605423 --864014643 --698487191 --487963111 --965615200 --730240920 --665553505 --345243427 --164321530 --312301869 --759147258 --341708517 --604223751 --78465967 --28672520 --710739384 --99869046 --650105850 --757859319 --402349309 --547607042 --838886996 --667411172 --460112628 --58653391 --524444914 --650371725 --66044866 --722040176 --257454723 --159757015 --160825850 --331658728 --211404927 --337614025 --862542925 --477160786 --342929348 --798566935 --722969275 --504705425 --247682659 --398841005 --781144098 --995251420 --161592344 --302939723 --268827329 --703044135 --33568110 --373562486 --244750841 --405403618 --661937991 --333964451 --855414280 --323100573 --701149451 --408770288 --710764365 --561085310 --74313882 --806019379 --688362570 --773573757 --262658621 --808811422 --175239675 --398656767 --590382991 --343037742 --394105785 --267462264 --273262286 --388434398 --740955909 --965940078 --217469571 --755216413 --63767622 --653539249 --124611268 --243039279 --406452288 --450366143 --176944580 --858517978 --236863155 --65042846 --979951052 --996024778 --508532416 --433040100 --877483335 --811264091 --209409241 --627299959 --494647992 --374229221 --32831090 --227552421 --500069502 --83146046 --770644507 --616557268 --204581953 --991965552 --49245969 --450257133 --778277977 --311964869 --736307508 --459881549 --977926375 --130986974 --415326526 --590680932 --982801741 --593239165 --197902567 --531716607 --480244401 --93615685 --632464106 --228321047 --207527991 --719675774 --196968691 --653337503 --186093668 --725798981 --194948502 --949671027 --133564876 --313968632 --613614454 --701123317 --147076920 --410736896 --859863848 --745832467 --939543539 --836129438 --253802801 --359799039 --11059454 --373073625 --681959679 --427167191 --934257335 --472988909 --447072575 --988634577 --236102762 --263002415 --761183048 --597617599 --578866269 --135066835 --972725800 --37224921 --651710580 --844700434 --62361098 --518028480 --62730016 --416194507 --706134209 --269726467 --641382469 --490264723 --16505987 --730284476 --300009961 --515623603 --426887569 --122904561 --139045846 --814994030 --828147000 --806092221 --338862034 --19163191 --518838858 --113575893 --169300379 --623673974 --938520584 --507661871 --390545751 --106595624 --721528463 --934418184 --511981836 --858241346 --761286847 --823343158 --976070479 --3861450 --593872234 --137124774 --419549599 --500708363 --174873257 --891568515 --940026396 --500153141 --727973012 --131594080 --801812178 --637264281 --713327647 --414261872 --910786137 --137277846 --605971938 --589502364 --621589900 --647600740 --376517288 --141884683 --726543243 --859350974 --810471479 --202032576 --898191038 --591277774 --392215882 --761354685 --302574011 --704604270 --572566948 --207154847 --647572883 --662600463 --131677923 --395498501 --915337392 --747184860 --523842208 --665182096 --438226121 --502659246 --567732713 --48711509 --356831321 --828219903 --577769415 --999722763 --588330228 --235567338 --297043005 --518818541 --821211313 --711687380 --382097541 --406902063 --545002684 --197339369 --577980339 --504200727 --691465085 --77699311 --326454826 --460078666 --983161796 --953980389 --310175710 --235272967 --428250839 --576475054 --704675944 --50389608 --811457853 --746483529 --23097972 --957806807 --32934158 --288006154 --127318847 --620333759 --133680084 --718387477 --135519147 --811561319 --855257304 --545371542 --275876386 --415774257 --885129605 --215770034 --159121381 --369757752 --277299039 --670104788 --908620201 --236347172 --455737380 --889122016 --989698258 --719066692 --345562629 --569137473 --538451525 --842967171 --313547339 --910312795 --689358358 --74422541 --407364393 --770809974 --766562546 --387645895 --50303230 --137285220 --578609453 --920149715 --678958826 --388054014 --753863378 --555127639 --913390193 --68872627 --311115528 --784530920 --452410441 --980585566 --689078464 --673436268 --172456398 --641318395 --985867859 --624538993 --674502382 --159377373 --254137602 --195272452 --611500916 --668224795 --580299093 --257098127 --51479714 --852805089 --881531924 --555098922 --715616105 --632830562 --699354136 --432947565 --77836501 --367279929 --423656161 --280082691 --777959358 --422598701 --639954800 --992755395 --970690443 --115612270 --919876620 --328805458 --50522222 --900653080 --942256900 --493565408 --205037242 --828974635 --731823298 --315167537 --454550303 --113144096 --789718481 --616597697 --841753133 --863258154 --26836867 --136076424 --543068966 --680287588 --245459580 --82119942 --416077013 --486681309 --605298607 --888752432 --825230923 --571667776 --513040241 --560069483 --711129550 --80723226 --565152396 --701525682 --609006336 --930705053 --541349906 --493564597 --235772206 --18375307 --455003618 --299435569 --128678727 --554713955 --449247688 --463002516 --483513529 --486323716 --848669137 --420504202 --995652783 --169646374 --132767352 --806001427 --684698980 --709327020 --890368763 --760436277 --875917585 --472785032 --458640948 --616256216 --673648771 --901011940 --175033783 --525763308 --764093724 --612274546 --572043914 --966083073 --154489571 --859158605 --150945569 --443299217 --222744820 --751267679 --95030776 --968217570 --909131816 --506594698 --16147512 --463542976 --265723425 --761304570 --97339458 --366982400 --76237537 --351268411 --283408256 --443619303 --53790430 --977837297 --825105469 --847045722 --774727159 --228339727 --478330447 --61625846 --419440546 --982682393 --307554137 --915549304 --586100884 --289197783 --815774725 --651349026 --989953185 --865210076 --828610092 --922369408 --531515993 --159693332 --366891631 --797805218 --664841328 --162058844 --430103618 --538696693 --642795858 --328512696 --253163912 --683882517 --133424872 --569300181 --157680722 --475485913 --255450705 --413918735 --380584621 --929119108 --852346194 --169384047 --665538023 --239618327 --295866706 --316591447 --816991242 --186688165 --799013173 --465838913 --466934788 --364596390 --600350695 --961855620 --928364408 --374354123 --356426672 --481396708 --701163217 --823412977 --601283170 --438197316 --954211926 --422180525 --131677134 --184411642 --116744468 --422488296 --596418334 --913552603 --53164821 --472294125 --126561108 --753647878 --61297851 --754919803 --272862306 --945940473 --146625934 --997565501 --187387544 --909820048 --997158309 --980557992 --506767410 --351117137 --844247678 --627114529 --58644387 --677187057 --334522759 --14796153 --735405834 --440889674 --978782242 --152799870 --839703994 --627403961 --608363534 --717550420 --847826780 --418642878 --588442680 --871204505 --517968063 --544515125 --405557914 --750015564 --636520551 --905786685 --36090404 --969966448 --631802644 --315214890 --541104544 --875045320 --608761977 --336410350 --700860015 --204271904 --156461278 --122337164 --259477906 --893183951 --489126278 --345656248 --855744689 --886516270 --932890239 --9287432 --743675203 --95640282 --40941641 --236870117 --385932448 --725342883 --349760280 --143724779 --224077335 --461329835 --485038298 --256539237 --372525443 --952092389 --858709052 --527632572 --594001533 --760031989 --290486107 --777831926 --850907420 --412876304 --795624228 --910514712 --295487210 --357355543 --197279977 --320773953 --759385250 --233522598 --864939361 --478112557 --952601806 --234160530 --28340400 --43716614 --138150842 --256053268 --83786508 --444072854 --390627999 --139370054 --64240175 --533667575 --176239481 --570863768 --37742119 --81634110 --165860184 --826174475 --630937015 --284698022 --289194997 --3232466 --971536994 --335675788 --689214780 --762067485 --178571333 --565878945 --277202443 --996161807 --440271233 --31909462 --545216535 --922989731 --449940948 --421570303 --12302585 --399394741 --982311476 --839157942 --308761062 --992126059 --125064315 --290496019 --480639451 --993581264 --35712919 --864039588 --531526360 --549546245 --932803160 --862760702 --367924099 --610057150 --219467635 --98656390 --447498229 --134449273 --98238329 --175622143 --710758196 --613767677 --174535869 --898007778 --208008299 --601596745 --84444953 --285717889 --681457630 --7099421 --27189115 --942353348 --345858286 --818349855 --350078776 --131947373 --495038401 --605577770 --128252266 --927093699 --277752933 diff --git a/node_modules/bintrees/test/perf_test.js b/node_modules/bintrees/test/perf_test.js deleted file mode 100644 index 05819e9c..00000000 --- a/node_modules/bintrees/test/perf_test.js +++ /dev/null @@ -1,113 +0,0 @@ -var fs = require('fs'); - -var loader = require('./loader'); - -var NUM_TIMES = 10; -var BASE_DIR = __dirname + '/perf'; -var TREES = ['../test/arrtree', 'rbtree', 'bintree']; - -function mean(arr) { - var sum = 0; - arr.forEach(function(n) { - sum += n; - }); - return sum/arr.length; -} - -function timeit(f) { - var diffs = []; - for(var i=0; i < NUM_TIMES; i++) { - var start = Date.now(); - f(); - var end = Date.now(); - - var diff = (end - start)/1000; - diffs.push(diff); - } - return diffs; -} - -function print_times(arr) { - console.log('Mean: ', mean(arr)); -} - -function build(tree_class, test_path) { - var tests = loader.load(test_path); - var inserts = loader.get_inserts(tests); - - console.log('build tree...'); - print_times(timeit(function(){ - loader.build_tree(tree_class, inserts); - })); -} - -function build_destroy(tree_class, test_path) { - var tests = loader.load(test_path); - var inserts = loader.get_inserts(tests); - var removes = loader.get_removes(tests); - - console.log('build/destroy tree...'); - print_times(timeit(function() { - var tree = loader.build_tree(tree_class, inserts); - removes.forEach(function(n) { - tree.remove(n); - }); - })); -} - -function find(tree_class, test_path) { - var tests = loader.load(test_path); - var inserts = loader.get_inserts(tests); - - var tree = loader.build_tree(tree_class, inserts); - console.log('find all nodes...'); - print_times(timeit(function() { - inserts.forEach(function(n) { - tree.find(n); - }); - })); -} - - -function interleaved(tree_class, test_path) { - var tests = loader.load(test_path); - - console.log('interleaved build/destroy...'); - print_times(timeit(function() { - var tree = new tree_class(function(a,b) { return a - b }); - tests.forEach(function(n) { - if(n > 0) - tree.insert(n); - else - tree.remove(n); - }); - })); -} - -var tests = fs.readdirSync(BASE_DIR); - -var test_funcs = {}; -TREES.forEach(function(tree) { - var tree_class = require('../lib/' + tree); - tests.forEach(function(test) { - var test_path = BASE_DIR + "/" + test; - test_funcs[tree + "_" + test + "_build"] = function(assert) { - build(tree_class, test_path); - assert.done(); - }; - test_funcs[tree + "_" + test + "_build_destroy"] = function(assert) { - build_destroy(tree_class, test_path); - assert.done(); - }; - test_funcs[tree + "_" + test + "_find"] = function(assert) { - find(tree_class, test_path); - assert.done(); - }; - test_funcs[tree + "_" + test + "_interleaved"] = function(assert) { - interleaved(tree_class, test_path); - assert.done(); - }; - }); -}); - -exports.performance = test_funcs; diff --git a/node_modules/bintrees/test/samples/10k b/node_modules/bintrees/test/samples/10k deleted file mode 100644 index 227c14d7..00000000 --- a/node_modules/bintrees/test/samples/10k +++ /dev/null @@ -1,20000 +0,0 @@ -723686234 -178360134 -271540711 -15045283 -228419153 --723686234 -1280893 -720389146 -166547983 -21870028 -222185102 -321454477 -166587197 -565054904 -841266942 -654153814 -788966187 --788966187 -349449764 --166547983 -472796084 -242054408 -164879988 -179451063 --565054904 -864988235 -139501713 -967047756 -218862594 -550785917 --242054408 -584250538 --550785917 -675499921 -771607094 -385219258 --271540711 -36878410 -99849292 -327149194 -733325758 -554106360 -555206048 --178360134 -859871967 --675499921 -733801020 --472796084 -459079401 -418040982 -733447841 --139501713 -6838320 -363345735 -513847066 -913486466 -414698887 --321454477 -348343018 -991631691 -947419247 -750018425 -124413888 -724267331 -424294052 -69002364 --991631691 -58122584 --327149194 -967565251 -135653292 -527046655 -109325328 -948465704 -901772669 -798344956 --109325328 -716970569 -507145997 --222185102 -313656334 --948465704 -642484537 --859871967 -335078445 -127953713 --15045283 -555077843 -175842908 -383481386 -524859048 -655876872 -950765395 -181472406 -82444643 --901772669 -37822791 --554106360 -316036020 -529134627 -438247622 -59417002 --524859048 -801856717 --335078445 -263788847 --418040982 -410073324 -644265806 --947419247 -2533783 -131742335 -756072874 -43643435 -669305381 -898137772 -649028220 -269347073 -833888299 -217889343 --733325758 -748168061 -200354927 --269347073 -529021781 -416766223 -759727465 -982740870 -691420087 -57530222 --733447841 -444936216 -717262100 -105981238 --459079401 -75165813 -967634810 -379381347 -379400581 --135653292 -636134836 --164879988 -689129225 --444936216 -768023514 -575230088 -842829679 -972206980 -123830376 --175842908 -964596095 -390534986 --759727465 -522665531 -99157226 -417672291 --218862594 -365240108 -631082492 -807878729 -209532757 --385219258 -421501400 --69002364 -19077224 -79970977 --209532757 -832568745 -247807514 -411918365 --689129225 -170543174 -151260027 -268345981 -285037409 -651237638 -731243229 -710947806 -968939310 -675595637 --6838320 -553060320 -30440731 -264035602 -818924105 --349449764 -315839527 -54408206 -325819170 -107222019 -318470052 -900017421 -688477785 -572328148 -122591425 -903680370 --414698887 -732381085 -251333945 -410956644 -496353881 --898137772 -358148568 -989211270 -178901261 -409209778 --900017421 -944642090 -739472028 --247807514 -61578667 -815235370 -264926407 --217889343 -711666718 -416453494 -37209042 -439404610 --417672291 -521376090 -176268088 --801856717 -328703186 -325888132 -675520481 --841266942 -252818733 --348343018 -829535651 -803058813 -589991014 -964059258 --379400581 -248832888 --57530222 -731208062 --318470052 -688751710 -315086522 -982021435 --379381347 -428384676 -219358570 -650434596 -144385726 -904072314 --748168061 -635260336 -822014196 --2533783 -474610734 --655876872 -440647631 --99849292 -539664562 -903110907 -65389788 -566178982 --166587197 -529461782 --37822791 -536736577 -522510291 -966707533 -145923632 -60920525 -768563119 -769308385 -719875889 --416453494 -617185640 -23636034 --365240108 -132512240 -76947267 -717280312 --416766223 -387607700 -846707348 -945543850 --966707533 -211029037 -952762863 -849941548 -927822650 -817677104 -747455683 --328703186 -350857822 -921049530 --30440731 -957862420 --719875889 -291792604 --842829679 -755891486 -357208434 --716970569 -344004842 --37209042 -277754466 --82444643 -569182599 -918757893 -709426522 -334901863 --832568745 -781498810 --285037409 -357841732 --635260336 -598961085 --572328148 -567407527 -719328339 -31853964 -2321348 --733801020 -278252838 -735272429 --833888299 -166074707 --575230088 -554423151 --357208434 -692008377 --228419153 -134878419 --132512240 -908394242 -471987031 --982740870 -171361361 --755891486 -448179250 -669908044 --747455683 -983922699 -608692561 --264926407 -792465530 -755895829 --692008377 -301493426 --964059258 -249164393 -126053976 -164265448 -303761387 --99157226 -615277620 -631406209 -804961784 -598630026 -453141599 -373001026 --717280312 -990300648 -670512601 --249164393 -591602548 -376421819 --731208062 -871508512 --521376090 -150468500 -343771396 --669908044 -635838120 -162915948 -22325057 -738650576 -687354669 -982685000 --2321348 -216679761 -1581586 -859856504 --750018425 -282307518 -659339449 --438247622 -789878053 -449639857 -564576629 --219358570 -652904488 --720389146 -933496290 --334901863 -591819106 --529134627 -214475345 -286581129 -912723483 -829347925 -608968768 --644265806 -527486678 -565750930 -639128856 -137115057 -234759212 --608968768 -394027565 -996749391 -364039659 --768023514 -208362332 -529255717 -185340322 -519438450 --711666718 -153725002 --687354669 -620193245 -71608311 --670512601 -170429256 -739460696 -712808903 -408925106 -954067673 -104009037 -201078796 -307619941 -775068182 -916437197 -835233286 -763656858 -688324823 --952762863 -91600998 -394672743 -713548463 -592472538 --916437197 -89144314 --252818733 -32546873 -687678135 -698222737 -940172693 -131714852 -545109447 -965294435 -701876518 --566178982 -713204757 -366393971 -748112724 --584250538 -476088645 --439404610 -582796015 -545990714 --957862420 -192224350 --781498810 -897824859 -749409421 --343771396 -905420005 -651065546 -946522002 --871508512 -730048956 --264035602 -721507646 --912723483 -892878974 -994227723 -235326670 -594899756 --144385726 -821394159 -185144034 -547229617 -646929276 -500932568 -890209324 -992124270 -768315645 --554423151 -818941399 -726625660 -411737626 -60668912 -503535852 --383481386 -238845162 -817213233 --803058813 -554791198 -317437228 -884638231 --620193245 -804010208 -286053802 -547006945 -39960045 --954067673 -568518965 -96348981 --771607094 -40604997 --539664562 -656260231 --654153814 -734370603 -836052945 --818924105 -345420074 -279047743 --749409421 -108837494 -480517851 -616952740 --688324823 -351724592 -480925109 -723552391 -644019901 -672303221 -484972331 -802966550 -18373600 -222832374 -485002496 -413495959 -737166339 -108854602 --897824859 -783689980 --286053802 -510656157 -781639237 -631771615 -258009346 -34989873 -464299074 -316415067 -31926979 -415302058 -94429054 -4022872 -697702246 -714004615 -35688698 --325819170 -483755547 -250892578 -565845700 -912635651 -170373546 -110324270 -44022647 -413671665 --44022647 -235581875 -114055113 -307557498 -62385070 --21870028 -621244814 --731243229 -391615197 --972206980 -764305585 -933919288 --547229617 -33909160 -176531993 -392304932 -441911682 --192224350 -676839600 --594899756 -189496496 -993193420 --697702246 -387073973 --387607700 -994638315 -160302257 --903680370 -801561013 -965721859 --200354927 -285002499 -653134854 -401378311 -161115422 --315086522 -177357005 -466445052 -189376439 --410956644 -918944897 --592472538 -418756644 --964596095 -897169088 --918944897 -861374961 -673295059 -164461405 --897169088 -220760349 -164964146 -612351640 -78616057 -416570193 --553060320 -168876014 --968939310 -852245212 -215846575 -213756540 --635838120 -36344121 -190225085 -355708104 -150334889 --440647631 -524049921 -21950386 -536523708 -643378570 --849941548 -723416020 -82621129 -240450474 -382561376 -41073951 -88333738 -258903308 -771724861 -978784849 -737057088 --781639237 -82366301 -74856789 -441594662 -547664977 -170679797 -642327230 --522665531 -410108338 -901076502 -537575483 -51871838 -494985428 -295066400 --483755547 -664893208 -974411325 -720106348 -423927332 --723552391 -503619358 -499827522 --189496496 -449679153 -624101199 -489117508 --278252838 -766301319 -576019098 -619413599 -506057741 -235447765 -142236800 -430152817 --40604997 -169830837 -408051647 -238282408 -636845203 -164453536 -383383185 -512605672 -91776001 -438841110 -131540539 -641970529 -480359622 --591602548 -950493491 -646503620 -112432821 -146053872 -250073938 -403462772 -667138475 -284151399 --669305381 -280419646 -554285804 -894144300 -518721855 -360864347 -597327185 -882935221 -815844052 --32546873 -917092658 -723986697 -447221159 -392163002 -202418289 --474610734 -21161121 -166681067 --990300648 -301611715 --280419646 -7028108 --608692561 -289840582 -93442077 -349881774 -568375023 -999066939 -862786850 --713548463 -263890330 -717070521 -11495196 -751253353 -820095197 -745220569 --71608311 -395051938 -534651094 -237859724 -993180006 --732381085 -478486552 --967047756 -932388834 -103713691 -932791925 -740576159 -610195804 --999066939 -476670029 -640006903 -990916201 --390534986 -20237179 --301493426 -74175083 --464299074 -621542383 -711843056 -979897048 -610084109 -770707812 -602906091 --768315645 -248847280 -841499648 -154783893 -37111135 -163597468 -143929495 --143929495 -966379338 --701876518 -430471973 --250892578 -33458429 -407346509 --944642090 -152827121 -661409625 -273293472 -421513215 --285002499 -619362552 --612351640 -982018773 -674352652 --237859724 -573253316 -23180457 --864988235 -485592032 -724515223 -834947189 -334622250 -717562393 -361671783 -954425961 -886077344 --565845700 -476309441 -710399027 -355173825 -85467612 -1867072 --131714852 -350386455 --31853964 -22603366 -562146001 -321012891 -91460361 -283795211 -398436251 -566559755 -24954939 -101658935 -893814018 --529255717 -154366581 -352348949 --76947267 -383457442 -857357057 -386908544 -992342372 --822014196 -613957230 -876856329 -512424621 -421057083 -280701115 -968560716 -248617160 --82621129 -951710019 -127084245 -882048309 --982018773 -189480211 -851325658 -892184700 -667881826 --664893208 -822331999 -720821779 --22325057 -860887805 --719328339 -255059890 --841499648 -979549752 --411737626 -694858005 -75980259 -328822747 -23549247 -664883945 -17213292 -680322410 -897280933 --145923632 -182354505 --480925109 -490851312 --164461405 -435080938 -794901200 -303265013 -598278544 -503911991 --408925106 -436260420 -275119030 --882048309 -784365554 -682456947 -568795494 -783899606 --974411325 -146132603 --775068182 -953446597 --674352652 -41812698 --892878974 -798890512 -749449774 --103713691 -611631586 -310485008 -996086440 -726510708 -887775885 --817677104 -407880245 -241451655 --189376439 -659377382 --756072874 -880005402 -164796818 -943487007 --23636034 -245244535 -924315404 -452553920 -267373785 -471420367 --169830837 -721096675 --503911991 -388281274 -663260457 --101658935 -429810011 --248847280 -69348387 -738621177 -638834117 -81101376 -566124097 --857357057 -807831981 --355708104 -112369183 -2865547 -701853342 -246345192 -797032974 -795713649 -281705474 --880005402 -694351075 -534236749 --476670029 -536360389 -81874860 -283345493 --258903308 -606180687 -217807399 -854431374 -668398792 -291330406 --726625660 -162624241 -608522264 -756822639 -288591604 --512424621 -720333546 --646503620 -440966587 -239843764 -680062376 -759763999 -341459300 --279047743 -529749705 --480517851 -873525872 -21452312 -453667048 -338973838 -155446998 -530459864 -789989481 --566124097 -617993866 -998315959 -697562537 -204830580 --398436251 -446788803 -268689862 -25688386 -478673681 -260006137 -993904632 -229912927 -210846238 --513847066 -157767388 --680322410 -996273760 --424294052 -915970970 -580828066 -665323789 -30406396 -556989525 -22118413 -637999609 --945543850 -339024520 -337170486 -919016076 --213756540 -591327757 -258471835 -380405677 -764674586 --919016076 -680613344 -748740339 -28392206 -620214495 -356451233 -76815889 --568375023 -616821203 --631082492 -235541732 -93963570 -297381628 --965294435 -278090535 -147531646 -84611256 -548249334 -912816657 -105161470 -90568819 -759112602 -537515869 -419139991 --965721859 -927991669 -95616504 --651237638 -309052757 -164859303 -893802698 --35688698 -508104764 --739472028 -631683484 -926627595 -121170027 -982614175 --724267331 -912100620 --691420087 -42928616 -874302043 -123882245 -28625475 --795713649 -24054951 -205976165 -641028370 --918757893 -998779176 -476421337 -381066351 -633595275 -496018461 -315582635 --476088645 -306914024 -584811911 -680865625 -512814040 -306353087 -540304559 -210673223 -955434882 -39787774 -743509623 -87665414 --734370603 -927941134 -166311764 -25274081 -846744331 -671021120 --350386455 -463881843 --667881826 -896578013 -456833874 --631406209 -64094509 -361066198 -973643583 -426689525 -306634720 -791551369 --392163002 -715940748 -700907666 -761947901 -382668421 --792465530 -472844931 -151584684 --932791925 -613299303 --932388834 -271949077 -236735019 -84716498 -256974777 -541903944 -515491453 -149127249 --688477785 -327908673 --36878410 -250515362 -401102611 -367816464 -362521559 -243551832 -114197853 --2865547 -173386260 -115354158 --112432821 -243402904 --351724592 -556358894 -803467150 -97502384 -194952696 --764305585 -197201303 --263788847 -463085690 -661462487 -411957326 -311765645 -184025346 -245945101 -691132153 -525726365 -92157479 --250073938 -822147227 --494985428 -608188088 --569182599 -870039869 --303761387 -358779716 --798344956 -478656649 -569238943 --341459300 -759888598 -76139 -521580105 -306721640 -652332202 --131742335 -289273261 -93872006 --512605672 -171773375 -677502734 -527363090 --620214495 -127127670 -71956281 -340582700 -91350583 --694351075 -399293060 -280950246 -140129279 -321248532 -582363347 --251333945 -729554076 -824581164 --712808903 -749635185 -29816648 -159348957 --236735019 -609938758 -990142411 -161640203 -814140242 --255059890 -234507819 -274177243 --268689862 -804499493 -772331430 -477795027 -131859382 -648356182 --820095197 -886370980 -386961956 --334622250 -410427911 -283751995 --387073973 -978714136 --608522264 -364404219 -879452083 -433688733 --239843764 -378098491 --176268088 -517099681 -565072896 --21950386 -618614245 -618849791 -682536740 -440106542 -419667862 -629561981 --407880245 -918144936 -544846110 -103967220 -962395798 -134842042 -371306150 -374259920 --394027565 -104305896 -860312612 --21452312 -735964969 --530459864 -357113661 --215846575 -648108182 -368795085 --170679797 -96365763 -194871780 -713980844 --766301319 -461345885 --485002496 -900081367 -460238545 -4996266 -54453141 --411957326 -490596547 -252650045 -902273116 --91460361 -36410927 --886370980 -115524341 -235790602 -166287389 -236950252 -605087817 -858820316 -258197032 -667763663 -335691078 --371306150 -731204961 -712061903 --642484537 -464757150 -404904432 -338771895 --110324270 -32111944 --280950246 -613037879 -733758594 -427451628 -844710925 -275776406 -14916611 -690428947 --794901200 -279562319 --211029037 -924623695 -357694694 -475110018 --665323789 -615892028 --105981238 -979276508 -234345612 -216579850 -411860074 --309052757 -820374521 -391133660 --409209778 -658221285 -814577553 -320231730 -142389833 -390192894 --91350583 -613931233 -767606140 -728352289 -832384377 -247659421 -710285111 -815717185 --927822650 -564818587 --547006945 -622304376 -814859404 -698170275 -396690586 -852871053 -516355669 --456833874 -907260278 -849958690 --675520481 -477633073 -690868098 -938231665 --979549752 -946994418 -698224066 -226498864 --271949077 -156241985 --30406396 -906110238 -78327398 --256974777 -767998481 --946994418 -862543368 -164448730 -24904589 -347901749 --95616504 -336473212 -769268522 -821807397 -454774905 -341285871 --366393971 -436824334 -49993949 -300747462 --545990714 -794510252 -772678215 --862786850 -897477485 --761947901 -21426301 -257860570 -478869343 -429610733 --720106348 -909355496 -234472230 -376384973 -765791305 --978784849 -397982419 --998779176 -394954637 --618614245 -668976076 -791744098 --24954939 -371205260 --567407527 -585729567 -928254239 -883193326 -862692817 --659377382 -984273631 -152337315 -167106574 -890326928 -123487333 --477633073 -470779909 -143186997 -865205936 -771363401 --137115057 -448614597 -619993006 -672193311 --373001026 -932911386 -431097318 -950475655 --541903944 -430314823 -841550278 --123487333 -92815220 -272262527 -488182243 -304691636 -851992018 -519661528 -233324380 -468179559 --554285804 -787446077 --751253353 -828840529 --667763663 -97035066 -859753775 --650434596 -729097700 -565875311 --983922699 -640445530 -757248191 --860312612 -960661329 -243485607 -169705115 -947084057 --96365763 -470166703 -968437957 --610195804 -101030223 --258471835 -601711521 -324683151 --419667862 -40912142 -899897759 -831239163 --633595275 -249330631 -710090291 -772224850 -118496244 -644764039 -327889172 -40051175 -110500545 -62674866 -180907910 -137584619 --672193311 -191599136 -46596432 -964013880 -889318179 --156241985 -735785092 -479109681 -117343594 -617758899 -913795223 -249840975 --170373546 -851742248 -102182489 -861414428 -264679946 --408051647 -759837415 --76139 -666380090 -86065329 -286808991 --105161470 -133556879 -784174518 -289132489 --350857822 -87117502 -702838326 -976081542 -250320880 -590001856 -362179642 -244120470 -451581686 -63252184 -613443989 --728352289 -788645573 -482760266 -365683294 -695727034 -475733126 -693036175 -605306938 -476579065 --36344121 -822030803 -400540414 -11087334 -243368448 --440966587 -432401291 --162915948 -422254949 -728005499 -825522414 -569404337 -24402677 -390084293 -171560116 -924907950 -960560048 --680062376 -948546357 -289685199 --427451628 -267914582 -793652417 -739654882 -195834303 --115524341 -185846521 -960637087 -824758013 -84926200 -183839165 -778144504 -865939725 -206566732 -941851850 -821948931 -902970846 -705190459 --28625475 -654787787 --19077224 -810888184 -956475996 -259560925 -661893863 -897325003 -442713579 -722439042 -798909976 --371205260 -965227874 -829596895 -734554376 -320644246 -646290204 --801561013 -701028506 --617758899 -810873258 -266026986 -975219068 -760469247 --383383185 -525983446 -610319215 -579445397 -565753657 -431929771 -684276557 --807831981 -46456976 -631666589 -643699148 --982685000 -872540300 -785799635 -637029394 -67353037 --92157479 -872347301 --20237179 -673540569 --1867072 -167918143 -566733265 -72196666 --249840975 -771675866 --316036020 -923016675 -583472199 -86842630 -496194525 -208363408 --883193326 -229025781 --76815889 -817038297 --140129279 -754832199 -365152707 --882935221 -345181703 -73513113 -946846321 --241451655 -816207456 --788645573 -656353191 -708822592 -843776170 -51737932 -500612828 -66749725 -303954643 -563824626 -677817014 -445712125 -976473830 -151806860 --591819106 -359295205 -884405809 -868255854 -287800502 --89144314 -549617091 -964577241 -302549281 -409345264 -205395456 -901090772 --737057088 -404819175 -593204535 -835379850 --358779716 -335505450 --862692817 -762355030 -723776362 -347636093 -668355163 -465028034 -546988071 -593751193 -5752126 -424378502 --962395798 -802742277 -436121518 -221094138 -642029138 -756323139 -153749024 --289273261 -283055863 -789680952 -608074822 -526525198 -723051487 --902970846 -807183633 -892688123 --184025346 -585968129 -767051541 -37757790 -513194670 -844758828 --516355669 -351494259 -698484772 --873525872 -327140032 --879452083 -4919424 -490188689 -139576255 --984273631 -692908449 --733758594 -331458721 -653576369 --955434882 -389086517 -826290014 -776725606 -28081615 -156672631 -244175552 --784365554 -406657881 -548843456 -296890192 -361016849 -451128553 -667886894 --996749391 -110719179 --246345192 -96320177 -83869390 -975926001 --822030803 -680290385 -311113306 -997317223 --216679761 -884057121 -795084438 -259876253 -545946996 --429810011 -695618598 -635541788 --951710019 -766465423 -647326105 --589991014 -680535608 -270513976 -469485713 -94133241 -660358394 -812792253 -420097027 -401648194 -236225593 --401378311 -168643318 -721471160 --979897048 -721634834 --992124270 -344077931 --431929771 -271958536 -371926222 -243227456 --221094138 -232349977 --5752126 -934090947 -24377168 --503619358 -291423253 -462898111 -471225706 --518721855 -538614418 -77473367 -33108383 -152746720 --416570193 -613749518 -617064204 -528218045 --139576255 -248781984 -123658025 -791526906 --151260027 -982368663 -684498417 -320073064 -310490944 -870616067 -852442878 --756822639 -368283628 -135112858 --243551832 -645027894 --653576369 -215721282 --307619941 -463306326 -84435715 -132636943 -496295804 -645590704 --36410927 -122267551 -814557867 -423020925 -601623552 -342051632 -695021533 -828904951 --797032974 -268012222 --460238545 -353119170 -820171393 -361807149 -384784584 -742652134 --913486466 -871432212 -494696688 -928100087 -272905960 -220507504 --721471160 -193947475 --335691078 -752932448 -773701774 --355173825 -696157232 --555206048 -783380773 -20286691 -577029119 -130152816 -366329035 -136740850 -453320245 -36921316 -537135420 -829981567 -866603456 -916657711 --84926200 -419697939 --435080938 -925921318 -458876312 -439659969 --613749518 -648629027 -586778977 -311347507 -601968519 --335505450 -975765058 --107222019 -939678960 -772139650 --185144034 -209623751 --283345493 -532971012 --621542383 -576116309 -289239272 -220104847 --173386260 -374401384 --442713579 -667865599 -412026581 --755895829 -491921741 -32196013 --84435715 -930883053 --870039869 -942549604 -842690958 -434395083 --449639857 -904308295 -920372981 -813685775 --814577553 -699117106 -886685091 -324163186 --925921318 -78482838 -487219788 --447221159 -383747088 -17916780 -351775059 -233608870 --818941399 -234738611 -807909518 -253498123 -914020781 -443577641 -175691865 -391843149 -351573923 -264300185 --821394159 -284033479 --713980844 -264853580 -138504259 -626970600 -52915405 --593751193 -142723030 -195622996 --548843456 -560560870 -743439869 -537922325 -726354186 -212884100 --990142411 -878776044 -867762003 --436121518 -965419480 -348654567 -106097703 -226443092 -600562085 --166311764 -872970853 --390192894 -269691701 --133556879 -642858142 --482760266 -680287898 -518122994 -971303950 --197201303 -494463745 -843190627 --631666589 -832351816 -658435299 -937328589 --406657881 -728447821 --754832199 -35197044 --461345885 -769595773 -168642342 -821871726 --404904432 -855901955 -125800049 -199700625 -88098229 --813685775 -982012030 -593545137 -727034235 -240649848 -89615905 -65359416 --154366581 -180821919 -851426082 -793809278 -506173707 -521300161 -40802049 -358821988 -244152282 -346826965 -581415764 -6856791 -809580465 -37953581 --841550278 -814870192 --28392206 -118796500 -817002588 --598630026 -259839591 -593426765 --31926979 -756313246 -585397315 -159149499 -988126350 --549617091 -272488282 -266503187 -294348547 -377649328 -639037060 --4022872 -523378357 -275022744 --585729567 -258908239 -775498803 -960043601 -568075358 -487008319 --510656157 -835616306 -588209061 --975765058 -765263658 -140574112 -189325518 --996273760 -240594093 -586986257 --135112858 -757538303 -353208467 -948584710 -293739371 --814140242 -280244784 -758988025 -958290394 -773191540 --953446597 -714790964 -839768297 -963146710 -270390490 --560560870 -119643208 --35197044 -147785012 -702392510 -379009655 -174101307 --771675866 -605475572 -983223036 --565072896 -393474134 --673540569 -329803529 -393694455 -378278561 -95297754 --378278561 -295181595 --646929276 -782613851 --828840529 -307796013 -434231309 --37111135 -886169250 -413477767 -190018453 --131540539 -515765161 -77261949 --114197853 -892407901 --872970853 -468246772 --72196666 -945010326 -87733157 --802742277 -957900729 -502069237 -387524215 -52845145 -241397141 -738274451 --37757790 -325831427 -268589927 -979274413 -609074998 --598961085 -646044510 -145087874 -61430112 -189501196 --993193420 -964915716 -732700019 -658798903 -362621246 -934744081 -895754952 -905071546 -654471924 --938231665 -903146933 -448638461 -525432064 -26973911 --329803529 -595993529 -982106048 -431837035 -281476147 -396635829 --835233286 -909229437 --168642342 -607483899 -559638534 -487102061 -442781247 -958260549 -262994726 -410764808 -834307066 -837405011 -105222294 -555123261 -456422289 -830370755 --430471973 -928024511 --58122584 -941749963 --988126350 -610613263 --320231730 -42980307 -106542815 --946846321 -473845672 -691762328 -599880563 --264853580 -36919747 --795084438 -979770989 -798423516 -914971250 -112141723 --998315959 -537691676 --281705474 -383899875 -52014788 -703806817 --401102611 -474560436 -990745951 --282307518 -252543016 -939096150 -718749922 --419139991 -9322005 --377649328 -709442380 -762472671 --529461782 -37012803 -560046929 -603358968 -555489881 -546186649 -77540392 -434445412 -40363991 -32909767 -107135197 -499691787 --730048956 -694147170 -478034586 -819736625 --245244535 -508640882 -878163672 --351573923 -641780579 --103967220 -446236099 -794005553 -229016249 -556165526 -324173345 -88389897 -802013272 -975852134 -387496574 --691762328 -315349145 --595993529 -543019558 --383899875 -415047828 --913795223 -568626203 -639074577 --560046929 -33169842 -856062681 -86654027 --748740339 -761432855 -623225525 -329071768 -238914796 -502266235 -171434214 -689179762 -856904153 --272905960 -798787059 -204126661 -721812703 -676882810 -667881263 --693036175 -549801095 -169365438 --672303221 -136172268 --170543174 -191142365 -237126613 -808442204 -670172561 -590005674 -179274011 -802926331 -801348076 --629561981 -376181435 --982012030 -980640209 -639841639 --194952696 -739283583 -432418013 -506661688 -801877699 -51680445 -788040887 --912100620 -177316596 --291792604 -748363359 -554094244 -242724078 -634831566 --979274413 -827587365 --700907666 -997213276 -127329929 -753434637 -299154727 -457582049 -521944629 --448614597 -596422239 -712283969 -876604901 -48905213 --448638461 -93304426 -939152472 -411813704 -326448200 -451154601 -547409657 -860322461 -319020057 -822057186 -823194241 -317257260 -418336151 -343683502 -508626440 -681106569 --24402677 -113998078 --726354186 -736162896 -298657576 -580848126 -978149420 -998919027 --714004615 -582540028 -615866503 --137584619 -9679011 -289155485 --868255854 -902227805 -724806438 --421501400 -409537617 -591289954 -961891079 --851426082 -885770520 --926627595 -898012489 -821404818 -396918056 -306997205 -593701073 -221432513 -998572026 -704395179 -886340666 -896741358 -776274327 -647482043 --410427911 -202651444 -691303533 -725102949 -33143056 -849416120 --610319215 -747652286 --299154727 -577367583 --235581875 -581765743 --4996266 -415084359 -953748274 --645590704 -283335586 -40925997 --739283583 -185909532 -618039075 -82310563 -251937184 -760501368 -137979274 -877592619 -990817976 -538773346 -423758102 -268116665 -117212499 --315582635 -688675670 -675540319 -704539406 -706574811 -402497030 -858723318 --275022744 -904029210 --990817976 -623640471 -905262489 -799792490 -737732282 -65483561 -781953432 -248480958 --251937184 -226967834 --680535608 -143197486 -801389692 -642126615 -288404901 --729554076 -313480045 --887775885 -447096499 -243607979 --110500545 -263335274 -353913414 -36980210 --844710925 -920467822 -915030963 -802504537 -126237605 --529749705 -276583897 --644019901 -164235697 -644184489 -210102911 -49944542 -831081077 --772139650 -691685645 --112141723 -751264404 -385725081 -713782121 -45278539 --892184700 -502810053 -503597564 -609674755 -218973130 -883570859 -228207168 -501756153 -574669229 --771363401 -863243278 --776274327 -400461034 -820012049 -172359939 -796871654 -231298327 -490761477 --175691865 -934745366 -380259303 -141668254 -936368462 -54673614 -609264585 -838012781 -629194609 -696061364 --605475572 -900741789 -970844876 -585136354 -767765431 -820554121 --264679946 -964812788 -854741632 --77473367 -124666679 --52845145 -557730538 -367379704 -210947634 -307949615 -58288203 -222888150 --819736625 -281126941 -134786063 --118796500 -602457251 --132636943 -920639170 -840740932 --810888184 -207443164 -201657380 --193947475 -473021466 -857303887 --759837415 -767496446 -830818354 -635135348 -935841292 --751264404 -47344916 -375804958 -290815389 --759888598 -247504966 -372219099 -38992306 -287185527 -244712972 -857444328 --814859404 -880922439 -420668507 -782983897 --61578667 -229056111 -802205029 -863599530 -936576895 --975852134 -93289967 -877645175 -86629546 -819829370 -934071291 -530578121 -969034591 -614095191 -487433105 -404138300 -976988413 --903110907 -376696599 --86654027 -470940831 -225125 --802926331 -904388309 --324683151 -717864360 -188488725 --171560116 -214780216 --311765645 -666460131 -4815536 -721688943 -963060876 -710240708 -708981813 -594061619 -466698605 -428539504 -919732499 -222063208 -748277157 -950255259 -979883440 -774855578 --471987031 -372797183 -220400396 --415047828 -187752815 --692908449 -594513739 -441345227 -464859578 -500695382 --513194670 -989475081 --92815220 -779951409 -779463223 -621844832 -85121287 -566838795 -71053831 -300220425 --386961956 -407259324 --195834303 -623030353 -465179223 -211803881 --17213292 -515488676 --82366301 -485487020 -387975347 --639128856 -710708578 -384057666 --226498864 -981818348 -533076467 -573369075 -171899903 --79970977 -402989049 -818399353 -728564502 -346379188 -877123007 -994328505 -652023316 -472894539 -789863857 -150104520 -972673795 -858927325 -950688348 --629194609 -777784147 -414862990 -558770953 --717864360 -617157037 --102182489 -366406531 -194577677 --191142365 -182939573 -732136292 -529609334 --967634810 -12325672 --283751995 -971971555 -242315651 -663145035 -974573579 -883866885 --226443092 -717547772 --357841732 -920744179 -249873409 -26551688 -686817219 --601623552 -743120291 -760979361 -974963417 -121436111 -695999901 -708265281 -303237675 --376384973 -190440035 --36919747 -873133741 -674345238 -255252977 -533789746 -509508536 -943124695 --202651444 -847962966 -330753627 -650544475 -22305038 -694560798 --737732282 -661723017 -877497092 --326448200 -191913288 --289132489 -389913254 -482779324 --644764039 -889932218 -942864302 -791035341 --288404901 -791722988 -485420663 -774003853 -376095773 -272931066 -695323330 -481769352 -202926690 -797026827 -758210602 -74367964 -239134289 --244120470 -189902486 -273836128 -111941960 -252251987 -641635479 -110849403 --760469247 -523312690 --260006137 -667909863 --26551688 -137948251 --648108182 -33248329 -485347244 -585296734 -168356128 -199711095 -997662257 -706327903 -194522189 -270971568 -262397536 -796444068 -636078904 -549429568 -106176002 -327669846 -752932967 -282846223 -864713226 -862470087 -91602315 -525210256 -150202591 -165480397 -936262 -468450425 -280669230 -780506145 -419660734 -252332254 --199711095 -147107269 -275303701 -160089675 -822248671 -92904397 -834017934 -291281058 -377042435 -961470095 -964722775 --972673795 -952077571 -878669688 -633044174 --601711521 -808045972 -50141465 --688751710 -313842501 -769236297 --20286691 -463273870 --690428947 -593922779 -341706502 -348632581 -951486910 -729760741 -759018029 -289971979 -526302256 -16635884 -306941911 --202418289 -817979629 -130486454 --191599136 -99335316 -785968690 -811598843 -975073330 -582764101 -903142030 -473131442 -898925147 --432418013 -428978210 --776725606 -101254090 --585968129 -555954858 -381849627 --817002588 -400872684 -998509302 --264300185 -694764054 --849416120 -99181317 -196014231 --856904153 -245746036 --60920525 -332289319 -933450402 -836888725 --153725002 -577643753 -359606267 -418718059 -573234280 --253498123 -456935700 -274041588 -797743814 -96704664 --378098491 -258927868 -930096035 -690753016 -40018849 -472973547 --661409625 -725001328 --48905213 -727102059 -757674182 --545946996 -192218549 --757674182 -463931955 -914892609 -35716469 -317240935 -386194301 -182481904 -479553226 -506944186 -347364652 -694317876 --948584710 -653096162 -48244940 -632304658 -805589861 --478673681 -562083287 -24944286 -117536868 --631771615 -477322554 -353137664 -8763034 --626970600 -236352437 -782060065 -791859571 --650544475 -613246315 --37953581 -359977420 --909355496 -261765215 -445792686 -9033107 -91204779 --960560048 -656400776 --822057186 -51267630 --466445052 -253957092 -825074273 -302261466 -747313013 --537515869 -202952816 -224918149 --11087334 -390957419 --331458721 -140445742 --857444328 -333211749 -245415659 -423473031 -996274797 --762355030 -122168947 -31465581 -109082921 -896159103 -736946331 -866273363 -118153432 --946522002 -104358824 -496522759 -64457612 -908183553 -209837006 -415332516 -887285050 --24377168 -400532441 -395278316 -537686401 -234641100 -630279114 -212757272 -822649030 -392846237 --975219068 -27071939 -349766527 -225812696 --843190627 -213097673 --380405677 -509010231 -480832564 -843670030 -358215341 --160302257 -594995136 --586986257 -599368464 --270971568 -665565688 -746892090 -88938884 --194522189 -461057662 -289549342 -565417113 -139819907 -67994735 -169667928 -666285933 -531152646 -828740269 -679729546 -26933777 --327889172 -844241539 -762031795 -821036468 --820554121 -299233737 -618102819 -672878534 -138178962 --263335274 -928113536 -975649672 -604200684 -528072952 --680865625 -740105586 -858954645 -872206997 -349003057 -287383718 --667865599 -397813767 --747652286 -213463656 -796649146 -152886156 --794005553 -913373739 -684617111 -545310186 -390497603 -928706099 --99335316 -426145590 --872347301 -866651086 -2179056 -625431280 -101780355 --584811911 -485106901 -747859173 -716813659 --387975347 -117056292 -817674881 -668170281 -812950338 --533076467 -161638505 -578556490 --829981567 -429853323 --126237605 -210549270 -608689713 --11495196 -670234016 -411398240 --294348547 -790272799 -529582541 --702392510 -553127478 -659071396 -911171713 -530903676 -325137224 -838477494 -45552003 --215721282 -497950326 -777863631 --447096499 -809306581 --97035066 -622413886 -891525200 -355349794 --878776044 -43268833 -395494150 --295181595 -748254639 --725001328 -604044369 --783380773 -994775938 -438303012 -664759525 -643816168 -18214363 --192218549 -132212965 -205599414 --134878419 -581799108 --122591425 -675049299 -845142095 -414467774 -941877693 -403409941 -824315553 -892247574 -772534313 -214054253 -490222339 --496295804 -868793473 -116924713 -695103536 -100537624 -43505334 -882345905 -484503528 -538350758 -907209711 -14540509 --395278316 -884413223 -912129217 -467500341 -278273147 --414862990 -714311667 -485970596 -18857010 --390497603 -732435819 -812085543 -643551557 -454259476 -959564162 -262130258 -772290025 -468866854 -762830304 -73530776 -416855166 -827192125 -787335491 -653835404 -505301183 -38230799 -677246019 -2824817 -211755364 -542549612 -959933305 -799219049 -1750437 -857440073 -23924067 -693666684 -254078838 --396635829 -995456722 --656400776 -923709571 -418743503 -245168998 -912737284 -916192428 -989036399 -359454974 -408602126 --210102911 -563866108 -788419314 -343048165 -560447249 --423020925 -27950879 --641970529 -456075581 -423555904 -837940510 --376421819 -734500472 -500420847 --399293060 -687078769 -861009829 -283240161 -175943461 -860621733 --728447821 -17519461 -320749013 -670108606 -515678499 --168643318 -608112513 -794015696 -272174279 -118374464 -965476719 -750443732 -483392864 -591555276 -655982049 -216305390 -411502163 --300747462 -283756732 --924907950 -446399918 --46456976 -689301960 -979453614 -149974308 -279722236 -830160017 -893496030 -791147543 --319020057 -534813093 -748619004 -608498486 -787283402 --457582049 -348504928 -122801917 -48096499 -295964800 -99866903 -214474819 -686992712 -117524304 --668170281 -215280772 -945331970 -243236488 -958621980 -112586034 -772743041 -988372184 -843527392 -665336890 -480681924 --1750437 -931178262 -92591136 -655690283 --115354158 -930733162 --139819907 -89692032 --734500472 -369400008 -969134409 --311113306 -737223329 --127084245 -609001549 -908458031 -283411884 -170231113 -84243154 --91602315 -345852992 -661233434 --164265448 -98163187 -212093113 -95094245 --154783893 -907956207 -849475598 -950767814 -152069619 -152499484 -884443558 -755932780 --670108606 -508494800 -397539088 -815552301 -32812300 --963060876 -911540239 -59493584 --122267551 -995283297 -577469181 -667847672 -735834578 --976473830 -649906052 -585703542 -900782041 --43505334 -220763576 -422406349 -451288973 -56815381 -479379663 --419660734 -678042310 -436751631 --804010208 -718476284 -268131366 -7658811 -287550943 -252476440 -42287224 -725462902 -371552303 --653835404 -754729505 -51930074 -30153398 --793652417 -212674704 --234345612 -503409198 -759658829 --497950326 -663033820 -633792015 --36980210 -825460320 -552942447 -165602884 --289155485 -517167668 -151832667 --274041588 -969948827 --993904632 -707109200 --4919424 -286661733 -124627978 --832351816 -937345933 -849282876 --263890330 -939824638 --426689525 -518765592 -782287493 -381394326 -88907872 -204509115 -944853376 --346379188 -392660468 -415323173 -696284237 --951486910 -600682913 -700806167 -277823110 -107040915 -119223216 -22943398 --694317876 -149676353 -629810499 -721200153 --577643753 -749028084 --283795211 -304744390 -536958267 --362521559 -457974552 -142356391 -726335672 --413477767 -504685954 -721507262 -521079005 -195586483 -993166120 -339648414 -763633128 -997872567 -985378961 -804023070 -893205533 -597974693 --252543016 -983342853 -264886744 -318120245 -752806441 -518475768 --801877699 -591498690 --283756732 -768592502 -322162344 --783899606 -274027863 --235790602 -689470806 --709426522 -311193722 -270033852 -36171958 --268116665 -32270985 -893760912 -590380730 --916192428 -433734141 --928024511 -510046339 -262719607 -643152944 -292649340 -310459637 -523619146 -285196332 --824581164 -31464923 -855990485 --943124695 -928241036 -281894280 -762483151 -187871519 -786025868 -615164297 -732933921 --808045972 -858042167 --273293472 -850779873 --614095191 -478669567 --431097318 -751794698 -605790305 -497230498 -630208513 --353913414 -38935855 -756144177 -484841725 --767765431 -938400350 --892688123 -647279552 -482451629 -747583373 -618736405 -683452092 -778445477 -577132391 -278860700 -966783434 --508494800 -238606854 -509284186 -833629957 -638955300 -348860690 -356813244 -421973952 -394358004 --353208467 -927683561 -794503097 -142764365 --820171393 -978822897 --153749024 -647838749 -218560400 --863243278 -625884163 --556165526 -593997892 -164103528 -535349442 -625759861 -520250290 -823413836 -186716964 -263677298 --880922439 -889162323 -303668521 -566106116 -23691463 -839367322 -99760804 -982910782 -49568345 -551193590 -941761385 --598278544 -48059079 -579928177 -929319741 -16393476 -822077227 --769308385 -302567758 -975933965 --691132153 -353919760 -920006571 -828634821 --293739371 -140997957 -808602987 --34989873 -661956273 -364346692 --666380090 -655702646 -811716188 -165264685 -260934326 -367541556 -444295416 -958569728 --152499484 -403031094 --573253316 -125181491 -855264036 --262130258 -89689672 -648002947 --585703542 -97208617 -776913528 -906580062 -321226665 --84716498 -335945695 -923156270 -319809717 -39670148 -781930306 --166681067 -238903464 -323388892 -429084590 -94161501 -926349152 -301770043 --125181491 -965461000 -687415839 --49568345 -103523903 -21995703 --640006903 -904257522 -835160181 --404138300 -37710928 --701028506 -79405473 --320644246 -5179621 -453901010 --344004842 -495378882 -341215558 --257860570 -939041794 -951242122 -268756177 -926397286 --518475768 -557793108 --482451629 -4320124 --156672631 -449111549 -308288809 -722546544 -338188507 -226796692 -369316239 --240649848 -976190923 -379391436 -17712031 -940020779 -686022383 -874384102 -75148724 -406185073 --756144177 -192851782 -451018012 -266307666 --960661329 -205748404 -681522972 -497444016 --667138475 -290836749 -732163259 -777363563 -447979840 --529582541 -2611959 -285983488 -881514875 -915279572 -466705606 --23691463 -191772913 --889162323 -150097427 --112586034 -439310679 -607229671 --291423253 -221477822 -32963141 -75219312 -814062843 -39684162 -487249760 -597908743 --760979361 -397059969 -381244382 -148870275 -886313981 --439659969 -580776043 -442662803 -996020186 --149127249 -533770528 -378823845 -266334332 -679125854 -647041866 -170462476 -944451442 -542488961 -118562091 --613443989 -722833552 --919732499 -73251268 --48096499 -355915413 --975926001 -719134914 -411589295 -592121722 -705113262 -642401181 -696729576 -945667840 -444116675 -777008658 -169742329 -804985618 -597627527 -469111346 -93491853 -831359388 -793684328 -155407627 --433688733 -326041715 --574669229 -73567122 -737570783 -711252086 --663145035 -920493114 -626499635 -549110732 -335689266 --41073951 -287857841 -935885622 --14540509 -992158859 -188092767 -95818386 --928113536 -953405244 -572440043 -511130612 --502266235 -532433596 -544092928 -576925320 -879188958 -273717201 --86629546 -531221026 -966772290 -777664485 -720800115 -365046820 -324725384 -648171973 -790765111 -479295692 -926525224 -894057068 --778144504 -752343585 --529021781 -382576860 --927683561 -793161694 -843813363 --947084057 -798642366 -150656151 -680565674 -897842029 -652328895 --384784584 -846281900 -147203474 -278215754 -451966324 -50207680 -401355234 -76801391 -463916942 -191562061 --772331430 -414528988 -374437221 -62641790 --107040915 -53137757 -422666324 -329384046 -494397182 -831338163 -554311176 -658382222 -227576556 -452399718 -83248332 -929626551 -814519287 --473845672 -27693681 -27451878 --568626203 -262603528 -253209404 --415302058 -327723159 --332289319 -768580313 -519766209 -796483772 --829347925 -453813239 -76975516 -354063440 -959674307 --463306326 -457772509 --376181435 -342381961 -331681190 --215280772 -593930823 -155590587 --558770953 -119979378 -649526833 -384065724 -995450508 -338783881 -894076705 -8662126 --127953713 -941786439 -59759716 --630279114 -709134610 -17654973 --235541732 -815736502 -614210886 -556731331 -577665649 -848379027 -302486945 -332513904 -655833627 -202583678 -259970105 -587970668 -972865508 --591289954 -128285385 -362433217 -667463764 -774239599 -415720094 -263674732 --826290014 -473286595 -191592489 -918418702 -390643398 --843813363 -508362491 --146132603 -220778677 -727024574 -961517029 --329071768 -580323501 --233608870 -716197287 -739636777 -66614728 -840487368 --605087817 -424992550 -663006332 -258174353 -290852447 -816853388 -655999306 -587112154 -441520505 -769849299 -781143499 -611194833 -311214308 --392660468 -846801889 -711670342 --342051632 -678542570 -185577616 -514942667 -513056504 -264076917 -766675082 --418756644 -659255054 -205004046 -346432852 -288375109 -941784069 -409908502 -746865993 --964915716 -887557589 -915945149 -803495068 -468952987 -193494557 --843527392 -865066946 --769268522 -961475844 -112321876 -837951295 --95094245 -815414139 -154059287 -940735347 -366008990 -211773763 --673295059 -286990704 -272879195 --705190459 -910660400 -479406431 --822077227 -243608460 -179109730 -802508640 --799792490 -580411989 --906110238 -219657721 -780907911 --981818348 -265889497 -488516644 --94133241 -247582957 -351467007 -111534424 --167106574 -256719326 -847680091 -147400122 -89954255 -953397863 --392846237 -869662509 -879978552 --663260457 -562878875 -18148506 --91776001 -130224043 --402989049 -475563375 --728005499 -780645492 -193771979 -779013671 -757257026 --914892609 -493576999 -781796628 -595278704 -789438414 -918038036 -390640770 --622304376 -191461604 -546134436 --480832564 -98565871 -827190541 -454035212 --73530776 -187234117 -876477514 -300656880 -328067703 -809196077 --952077571 -62185174 --386908544 -952220481 --190225085 -61740116 -716985222 --130224043 -657637196 --926349152 -673440691 -185897267 --39960045 -861928950 -602456290 --503409198 -831340305 -601004117 -191032822 -558260941 -481965009 --808602987 -955616154 -295518971 --676882810 -154128595 -582280746 -904791039 --827587365 -823001091 -882987521 --695103536 -933885253 --710947806 -487815029 -229318093 -263405121 -585322948 -434252422 -390755960 -458729216 --825522414 -917455633 -226429361 -822307812 -259232231 --613299303 -992185329 -746570135 --353919760 -748612658 -322742371 -827627195 -728359738 -879032562 --217807399 -913453216 -41263964 -982082622 -822650559 -265721064 -773232686 -777142097 --817674881 -255765697 --502069237 -949651113 -107894068 -609864909 -821789120 -271413825 -172100 -262940741 --867762003 -546981367 --481769352 -809083211 --748112724 -203842833 -169780026 -231989624 -555659829 --471225706 -108650471 -123240599 --9679011 -332156635 -735271436 --289971979 -755238395 -796045557 -167829669 -952583839 --983223036 -981763781 -514086600 -21380361 -894738687 -182062534 -189047844 --900741789 -792751892 --201078796 -401537698 -345261333 --252332254 -145465614 -956137873 -136284393 -605018374 -498245577 --929626551 -739176180 -321032916 -756386545 -327622291 -125217142 --616821203 -368663859 -777478677 -654510463 -26622009 -476597411 -121921732 -771642228 -948654090 -309899079 -667289738 --553127478 -839465043 -179974486 --393474134 -940145156 --243608460 -752198545 -308735580 -513501350 -607652197 -815131681 -647917652 -347099110 --261765215 -620543193 -24801118 --667881263 -685214273 -263169126 -724681343 -956535642 --205004046 -107769403 --469111346 -402953830 -618947736 --808442204 -242685631 -118425594 -210327136 --861374961 -420205731 --396690586 -537367048 -32940023 -130477990 -176267300 -496712233 -922773236 --691685645 -551704832 -56281953 -828148130 --361066198 -330524655 --923156270 -90822196 -51562495 -114779237 -948146869 -229055032 --211773763 -225644058 -181223532 -133430982 -691905950 --89954255 -875786944 --38992306 -208973493 -75439042 -485452965 -459577552 --485487020 -274821219 -776299404 --566559755 -636267314 -128403399 -444803343 -972757503 -754068865 -108434058 -478766158 -919496330 --728564502 -650285440 -324969720 --894144300 -892713183 --95297754 -70735722 -275241658 -674793433 -849713955 -735928759 -603764391 -654484915 -705140844 -736334647 -959891921 -992601884 -646087654 -734335535 -10610434 -276010884 -546844741 -8123542 -94200789 -938070959 -257780361 -383668091 --994638315 -179362937 -319382330 -423794400 --133430982 -359516383 -578084070 --721507646 -351812083 -584054492 --965227874 -392999448 -155226889 -257270469 -248254147 -270041069 -858989646 -694386264 --475733126 -539508455 --562146001 -717147219 -898676150 --782060065 -487359138 --42928616 -947237135 -395495453 --5179621 -296860273 --934744081 -18110623 --906580062 -779195718 -944328595 -175614 -599118875 -294270271 --930883053 -667835682 --710708578 -634658942 -640492641 -214049788 --537575483 -684685470 -5033585 --166287389 -39643123 -134177066 -601045049 --728359738 -130258492 -542809645 --904388309 -510354454 --538773346 -325037542 --822650559 -619849081 -670718258 -302826056 -306600387 -380575811 -15159702 -531774226 --643378570 -11533016 -418498097 -195258883 -377182429 -998113467 --591555276 -207278639 --684498417 -710009899 -261970068 -872557835 -300718987 --555123261 -107513259 -386014707 --798890512 -148409444 -685801097 -712491543 -227744012 -367655582 -544394134 -180004268 -801829067 -302835037 -898017986 -893696908 -878279823 -653800592 -405978022 -79965842 -395014062 --833629957 -378065191 -197651031 --640492641 -782448500 -93086534 -248601129 -664550824 --698484772 -966299695 --152069619 -88243141 -778448888 -296435924 --666460131 -523618213 -848394503 -803589787 --506944186 -301622105 -556804615 -221596360 --688675670 -121296926 --33458429 -699202496 -513946266 -502309762 --413671665 -968890548 -140798766 -196459703 --368283628 -539952334 -702482684 -810526554 -317342047 -720292176 -561577161 --597908743 -392382606 -777151297 -16076845 --796444068 -546500241 -908022004 -180515748 -438830677 -568122835 -706809942 -647359622 --636078904 -872038789 --485970596 -949018294 --484972331 -680783492 -680336737 -170707984 -794085149 -502186320 -163653866 -134079227 -409592772 -365803255 -625793527 -908910278 -653977795 --291281058 -984114309 -773128233 -265710476 --166074707 -990834910 -559292523 -454137983 --908183553 -963954883 -637554907 -808099936 -620592824 -839208304 --411813704 -791695224 --762031795 -452339660 -727790643 -776257890 -529644441 --892247574 -700874804 -967670099 --711252086 -188381337 --154128595 -83659576 -331849412 -248724029 --341706502 -306998139 -161257958 -329581258 -97869584 -187699383 -272808830 --815414139 -221946400 -988304402 -364550910 --884405809 -858847215 -775967878 -523759586 --540304559 -631140785 -549062665 -839107266 -813268904 -537309788 --664550824 -838832696 -526207101 -538146889 -854245816 -291435743 --926525224 -816592710 -868892 --1581586 -936134949 -946492538 --487102061 -111910278 -285590394 -855475650 -89181131 -286027006 -736993479 -188011626 -162461497 -285313003 -421598110 --889318179 -48305037 -398980865 -202934190 -614948427 --327622291 -448497316 -84071905 -535343169 -288965750 -376097611 -934836105 --549429568 -421841891 -35771313 -77756918 -56005917 -914880748 --673440691 -544392094 -462229538 -791033464 -502623930 -529348509 -516514462 --539952334 -542484477 -370162922 --782448500 -359905308 -217197154 -105026119 -609601033 --936576895 -733649130 --307557498 -849965449 --565417113 -848039377 -416405706 --839107266 -11608001 --272808830 -921820986 --30153398 -495693218 --124666679 -38151457 -239552392 --381066351 -808015301 -441926912 -638208201 --130258492 -128713997 -310486218 -950564334 -594252086 -519557320 -560464336 -39345940 -337478124 --147107269 -186754942 -302118875 -994955602 -618758275 -816456243 -669546027 -820803965 -473541932 -531753916 -305613727 --372797183 -812140045 --810873258 -316763763 -478054694 -681443179 -287759974 --864713226 -525951184 -790291212 -76513374 -1224015 -526686229 -865687007 -881312797 --415323173 -241073440 --861928950 -801888723 --942864302 -464928769 -880303115 --941786439 -742422033 -551405228 -109406247 --330753627 -95489838 -504733188 -961475252 -747906833 -307566408 -293959235 --892713183 -971353718 --940172693 -319976873 --617157037 -867690731 -582709374 --928100087 -584089914 -486980428 --827627195 -62999273 --421973952 -799014004 --424378502 -418999833 -369178722 -122347754 --790291212 -685306753 -604185540 -214773459 --716197287 -867111344 -728247789 -366676190 -622682664 -907091697 -399799834 --361807149 -978134515 -813454660 -927214429 --506661688 -88724630 -744985767 -582655480 --879188958 -36796834 -367775547 --136284393 -300988088 -903379644 -925972370 -922204890 -497859842 -448705114 --21380361 -167608250 -464541770 -9522372 -531571934 -251216118 -133506713 -241713977 -170543760 -435126553 -620370171 -443498455 -869968355 --74175083 -488920193 -392700747 -888647582 -995232891 -513943796 --836888725 -92987557 -798145678 --892407901 -792314374 --758988025 -507599816 -783769198 -892216376 -338322730 -485248571 -419750643 -454851750 -471945001 -921225966 -909480613 -881462161 -372967840 --341285871 -964195945 --927941134 -82774689 -950180537 -109412766 -113713401 --594252086 -648024677 -959644657 -992169588 --446236099 -178791532 -106470348 --404819175 -891190080 -591962073 --487359138 -70127999 -359036955 --150468500 -343795585 --220507504 -253433137 -200436462 -141012575 -813360660 --799014004 -272132829 -519042561 -360608983 --104358824 -407113903 -421106696 -421426970 -62302863 -735060790 -354993452 -342375001 --480359622 -777970920 -367429697 -631380659 -697733091 -252083568 --743120291 -58720171 -189141893 -938422653 -949859306 --998509302 -525478666 --787446077 -243242917 -202391359 -910416817 -983069378 --658382222 -447561094 --707109200 -882149908 --117536868 -597771368 -4369619 -672056546 --791035341 -284398318 -724790914 -771740507 -627397490 -572468480 -23192089 --446788803 -400531854 --618039075 -245425644 --528072952 -117047171 -631265335 -729284863 -925466495 -601615554 -586489999 --607652197 -691429760 -271506126 -193635719 -373480007 -816938375 --879032562 -730195769 -745440526 -993763746 -774812988 -735952610 -97047572 -902969444 -165974705 -351028622 -256668790 --566838795 -30705672 --411398240 -900994357 -640630100 -701441298 -123139281 -924352148 -122619744 -288737187 --661893863 -23734916 --295964800 -691361774 --739654882 -558597795 -372332339 --241397141 -68603434 -915247116 -801621085 -77862376 -598095849 -779237669 --387496574 -505649609 -736320603 -672257247 --522510291 -883072056 --243402904 -675048755 -422071640 --956137873 -807758087 -652464070 -890411026 -389240939 -119239284 -851640905 -724894828 -447368213 -877239285 -43842351 -178631671 -922730251 -650815334 --349766527 -112404249 -385055573 -617853329 --679125854 -264761387 --514942667 -355100957 -260902473 -547735110 --190018453 -401177179 -508827898 --776913528 -170709854 -481569750 -486679698 -213388419 -309543261 -694416734 --609001549 -62273323 -75609362 -187164407 -144486372 -113414589 -93881134 -493292584 -104890743 --831239163 -905328290 -899137516 --178631671 -421034329 --982082622 -411911204 -171540947 -228906143 -857987345 --643152944 -239574750 -423698223 -627563510 -972697385 -93611089 -370103656 -166451065 -360718985 -339115853 --771740507 -902574347 -2758317 -105112345 --531571934 -661161103 -872773932 -343552851 --626499635 -487408679 -892048919 -592865800 -977767996 -74221293 --736334647 -366311744 --453141599 -728483741 -954180400 -372626272 -322132679 --623030353 -620639636 -362344860 -474523557 -685328545 -234740203 --169705115 -566868911 -717260744 -623396911 --428539504 -170915076 -205786653 -400787490 --83659576 -405868287 -421876399 -582460046 --210327136 -415616219 -467952747 -601785802 -300313834 -595255920 -955082710 -878228236 -563885233 --713782121 -308254228 -901166704 --702482684 -653061760 -432966838 --847962966 -75231948 --402953830 -101714269 --476597411 -774421694 -186900680 -194006883 -896548827 -286314771 -429098435 -820640077 --283240161 -830902004 -254434907 --422254949 -992494093 -391381749 -426452223 -996574138 -245046059 --773232686 -614973617 -350255348 -995237894 -460409318 --935841292 -401960080 -514028163 -639742448 -239079132 -858562794 --687078769 -976977366 --209837006 -206240807 -432461240 -331168229 --9322005 -351824049 -309215416 -37232834 -569545021 -514724361 -96720862 -526592055 -156049175 -272877682 --236950252 -618580218 --486679698 -971698073 --710240708 -371708943 -652000089 -728183783 -600089508 -523280553 --495378882 -560482611 -921586987 --920372981 -341087242 -435479919 --141668254 -567920490 -435068821 -399816676 --54453141 -520739205 --272931066 -74472646 --772534313 -632855132 -693985711 -73177187 --933885253 -680718122 -189775507 --149676353 -943913197 -207335432 -249267261 --17519461 -597409852 -120101570 -99965641 -137096104 -811312220 -162179666 -743451922 -47335802 --40912142 -300918080 --68603434 -239763157 --144486372 -355522553 -519741996 --362179642 -849071759 --488182243 -845168531 -743731839 --735928759 -805349737 --523618213 -314017600 --291330406 -216069311 -743884035 -574416855 -103373034 -633438236 -821553035 -352420417 -386234655 -270602590 -323930800 -144133516 --807909518 -892563279 -854769135 --876604901 -504165198 --883570859 -494598824 --4815536 -918894670 -301730969 -995618635 -843799012 -505539610 -163454670 --686992712 -85119427 -77282036 --424992550 -114576433 -586064844 -396993371 -32208385 -850858433 --244175552 -490446658 -175850722 --716813659 -917286380 --695323330 -296588731 -303615680 -547510857 -546417647 -182252161 --914020781 -2028200 -242056214 -144397249 -915052263 -660915862 --958621980 -588538228 -595693487 -992745537 -362399709 -29423428 --777478677 -11902360 -149978328 --87733157 -557957149 --487249760 -974986113 --40925997 -988227385 -898367831 -662851848 --462229538 -606668936 --445792686 -859502412 -279771249 -763577738 -880762446 -758507467 -391891648 --523378357 -336616043 --953748274 -566382230 -408343577 --681522972 -247936493 -758435676 -334804356 -308855893 --154059287 -772218565 -244127529 -641961124 -579279678 -549587312 -708920240 -480079172 --517099681 -638784249 --907209711 -676910830 -561975075 -987038834 --305613727 -134190881 --641635479 -736519501 -330564073 -537213894 -842464646 --809580465 -586366704 -652103966 -169529905 -798475956 -279365580 -697037627 --122619744 -757912996 -287499639 -661936370 --316415067 -559857077 -856041272 --118374464 -675896116 --165264685 -168856276 -590565392 -952843490 -105973121 --959674307 -302987396 --351467007 -415692246 -397200064 -533064750 -816579011 -654886034 -26441869 --544092928 -425572771 --976190923 -742631827 -274717566 -927176131 --451128553 -965083999 -726678582 -339651753 -761644605 -209319240 --270602590 -917154900 -710513215 --332156635 -330064891 -353069211 -494709034 --796649146 -847805068 -213143884 -644071419 -580995704 --704395179 -323151825 -265879579 -192707665 --605306938 -179025066 --652464070 -624722964 -367534019 --354063440 -120051531 --195258883 -604696954 --713204757 -78637628 -176818182 -132498061 -959186784 -225380138 -615189501 -104678648 -930941966 -667844540 -625317452 --477322554 -8128104 -893209733 --367429697 -694296593 -168609016 --554311176 -560867314 --128403399 -860643799 -319749887 --159348957 -881330095 -253928180 -463798816 --358821988 -241252544 -941201324 --534813093 -252818391 -211190892 -622782938 -980337757 --777970920 -208719193 --939096150 -377377094 -290444022 -941521354 --367534019 -919307583 --200436462 -656703346 -582097516 -487591179 -204114197 -990443219 -512688862 -475948592 -80905661 --271506126 -594457860 -84558546 --188092767 -211774431 -453986908 -212359895 --485106901 -249280592 -642442848 -782007076 --809196077 -359117834 -701989302 -221227650 -155215537 -356629582 -445246506 --366406531 -826216135 --119239284 -78066807 -596868157 -422117138 --797743814 -809471992 --810526554 -323537964 --258174353 -6032365 --428978210 -733449539 -671941734 -986024510 -749368109 -286272801 -384513246 -730206195 --323151825 -646161661 --736162896 -721080865 -217310194 -568782485 --766465423 -646163479 -708341124 -924705805 -920373258 --266503187 -31591024 -816866540 --992342372 -936352798 -512629727 -741614936 -913375014 -171155960 --791526906 -33956683 --904072314 -38777142 -242617069 -48536791 --478669567 -578795897 --566106116 -390569950 --689179762 -749732582 -18742156 --210947634 -920803667 -828709669 -777279370 -737997438 -750108188 --307949615 -441240738 -650595048 -653840226 --827192125 -993353500 -398463132 -261255513 -190489713 -110853463 --322132679 -510862966 --368795085 -12106287 -945084738 --574416855 -119508778 -386257563 -386168995 -782438278 --284151399 -291991469 --736320603 -716298662 --53137757 -314148114 --918894670 -20042915 --161638505 -938860877 -583655625 -87926616 -60146112 -458056270 --24944286 -320806687 -362606255 --169529905 -465270766 -632457417 --669546027 -493335644 -677491204 -500649652 -400200709 -483779865 -713306768 -234463132 -600469439 -570358299 --213388419 -379029010 -706602644 -826289680 -212837137 -720261395 -594792099 --988227385 -194554739 -780930128 -911055355 -163895177 -518389444 -460063964 -158454842 --249330631 -167523595 -561026549 -680617421 -777163149 --936368462 -93591412 -31634683 -483253876 -411199024 -622701011 -764736391 -646722805 -475539540 --820374521 -879181973 -98078390 -445677974 --451154601 -857531106 --794503097 -427878499 --655999306 -300856409 --225125 -891746723 -634066412 --380575811 -378529994 --473541932 -847968846 -434149656 --249280592 -394642226 -455585446 -438677583 -788764579 --850858433 -529697005 -253855545 -583495921 --203842833 -822834143 -833882018 -189683259 -212428717 -212974690 -725749171 --187234117 -751278757 -425560160 -784403670 -399628507 --369316239 -901655758 --253928180 -191464740 -894650969 --779463223 -842959884 -515065790 -430888073 -129873703 -783330025 -931039289 -274470837 -2387314 -654350194 -941062616 --752932448 -118225649 -251677180 --431837035 -171846082 --576116309 -494444585 -106381342 -65964362 --226796692 -217315273 -617739965 -309991058 --788419314 -562643010 -179011423 -31580298 -927408274 --837951295 -126911983 -20648445 -863269749 -88919299 -426597004 -605141386 -582229282 --856041272 -180222041 --791744098 -605402610 -473852142 --812085543 -71622244 -281880827 -313166204 -417009167 -576224963 -797206052 -427935077 -838216411 --258927868 -762551250 -746520797 -166131023 -70304661 -261873028 -729536539 -55125259 --348860690 -11844290 --289840582 -761878178 -2758906 -875730570 -317086229 -113475443 -244153376 --495693218 -59175279 --287800502 -949785600 -32047669 -326319182 -264159469 -413955551 -19659123 -966067028 -779247566 --507145997 -390828499 -929442912 --353119170 -326653703 -931591136 --909480613 -750459420 --828634821 -665976306 -669664431 --642401181 -272324044 -696049257 -839795396 --234463132 -625909317 -572430043 -810589352 -257539302 -520638454 -950881718 -3066506 --927214429 -184872509 -65082241 --860322461 -614907559 -671174392 -717148981 -771540072 --243236488 -395702645 -132031439 -845598754 -698229961 -87162224 -723682057 --268589927 -696974946 --111910278 -125392794 -695443698 -933841814 -435788673 -386755281 --229912927 -33409772 -509348948 --177316596 -322795338 --894057068 -315775794 -976899038 -924731897 -277413669 -831518290 -608449512 -961365254 --660915862 -524463906 --479379663 -947763927 -924926527 -919381713 -145246917 -685991032 -192340215 -907448606 -598289616 --11902360 -906714965 -548152228 -705016801 -691783703 -994450604 -870909010 -346501337 -785284966 -45123065 -503890423 -925915126 --471420367 -124413174 --674793433 -617476712 -134777384 -939218590 -560417976 --384057666 -72857081 --737570783 -644648301 -544828964 -81818374 --536523708 -809534673 -448043578 -807674541 -873717845 -228311366 --189902486 -915857465 --917455633 -954951729 -293742357 --675896116 -314282719 -106953934 --945667840 -976990676 -970618438 -242400250 --457772509 -112580434 --59759716 -263051354 -279704631 -196544269 -446470160 -929305748 --505539610 -827046590 -533680293 -744922760 --454137983 -865133807 --642327230 -599935727 -394043575 -662207590 -312491117 -420797217 -301294195 -311410308 -137976113 -465601773 -597401998 -190918173 -814384295 -742854334 -990350119 -601504428 --59417002 -616617126 -158839291 -578081239 -465948958 -115873518 -587400424 -908930955 --547409657 -303640058 --722439042 -815634119 --158839291 -436721430 --369400008 -800569351 -696812329 -199830624 -554151898 -405496033 -57874828 -149320026 -33098902 --248617160 -386940762 -204398611 -821613645 -583036779 -457851783 -913848727 -803711121 -714454830 -817047006 -93402152 --866603456 -565253535 -120990769 --544392094 -924164576 -115946654 -667836598 -137123817 --103523903 -929681966 -105468840 --249873409 -859260574 -948539536 -335145891 -666252624 -488312970 -282029064 -371399631 -833796635 -198464170 --35771313 -627455748 --855264036 -604620008 --591962073 -695592067 -710809843 -608660963 -266956558 -291110742 --390084293 -743592636 -883133875 --90822196 -709213054 -382292110 -399162717 -75832902 -722559417 --933496290 -474638012 -52150279 -35371840 --498245577 -535072335 --302835037 -939790015 -237229867 -843172544 -287258570 -48729918 -632238500 --378065191 -299891773 -23755851 --32270985 -671895469 -164223090 --831359388 -262577123 -138709942 -645011147 -910826409 --134786063 -797236648 -531323086 -671552375 -829648319 --789989481 -556116327 -961134700 --32196013 -610068661 -254772206 -822598494 -682502096 -604688346 -687651610 -681807600 -140592016 -634058733 -348866266 --604620008 -942855862 -480772798 -637165807 -702388510 -356741971 -599984648 -165357121 --667289738 -4016877 -343284267 --483392864 -810531857 -78173109 -112381614 -709487852 -247719333 --293742357 -404195087 --555954858 -501601141 -376107825 --487433105 -835109 -676459678 --594792099 -310514734 -343941615 --990443219 -161809636 --546844741 -84443694 --576019098 -615649666 -402253329 -64239855 --861009829 -615301665 --122168947 -940122166 --189141893 -554890621 -826112835 --755238395 -38329305 -1232478 -550013295 -249024456 -361852026 -580394971 -651148156 --386168995 -109445165 --794510252 -308770901 -438722866 -492347466 -262985614 -234883855 -451028182 --672878534 -740756164 --868892 -357653583 -807670492 -822259451 --491921741 -295231220 -823898103 -174042919 -474085822 --287857841 -402320889 -703632795 -456553733 -275046735 --797026827 -880114184 --281476147 -629708715 -957691287 --77261949 -856354844 -824785506 -932071489 --346501337 -833339949 -756264175 -721345894 -646631615 -433358223 -739712538 -689896205 -441501153 --610613263 -506859349 -31589651 --833796635 -478182480 -696008499 -120710247 -186319646 -286971269 --769595773 -158069660 -739055041 --355349794 -632677479 -444389490 -746081878 --643699148 -367540594 -755552643 -685975623 --793684328 -86440794 -501028608 -962153493 -395473808 --613957230 -475930250 -79191199 -676931341 -164998173 -865000327 -69274885 -99445349 -553077307 -753123890 --496353881 -693861888 -318102111 -940427122 -803249608 --661723017 -949590806 -602642983 -394554113 -825630816 -678253181 -81500523 --618102819 -25184449 -681425494 -85349441 -884115078 -271340144 -502950467 -499822147 --558260941 -169469019 --735272429 -645696568 -478211230 --299891773 -181902849 --483253876 -116649207 -899496856 -980921810 -486443208 -34490380 --563866108 -773946991 --779247566 -314704731 -830120419 -811959506 -397998327 -822731531 -11833832 -18479630 -871143142 -891402673 -170858431 -204427734 -994291309 -948877245 --924705805 -620333209 -209356683 -355177915 -290936550 -793963180 --440106542 -531340589 -128850308 -286702578 --21426301 -746769352 --992169588 -600733963 -427805595 -434446873 -993345846 -74489669 -710799612 -720831818 -291677741 --893760912 -959856892 --429610733 -692933167 --961365254 -842779406 -706182857 --456935700 -803466167 -427768080 -892588820 --599118875 -761546923 -979527564 --254434907 -321817687 -993383579 -448312171 -982879002 -507957220 -879987370 --854245816 -358103920 -619614978 -377758324 -997180089 -411786016 -248783748 -747439132 --649906052 -799234852 -379581527 --816866540 -440120813 -328615482 -954784999 -165234867 -415896390 -352489753 -70946684 --210549270 -182696537 --609864909 -408951565 -543057912 --776257890 -790422646 -460930821 --257780361 -407494490 -366216717 -467172052 --569545021 -148302878 -521291520 -808200077 -436142372 --515065790 -405628318 --6032365 -549645833 -771946688 -807643526 -772568503 -194354916 --157767388 -446669017 -727773716 --992494093 -449443916 -523178463 -535030088 -776735090 -532351821 -157197129 -762825228 -250940240 --692933167 -612699986 -500779496 -979827472 --897842029 -839119243 -27525838 --48244940 -439589078 -841601181 -820048601 --830902004 -215968865 --989475081 -310052876 --982910782 -514431444 -525264128 -743516220 -872714359 -429714698 -90340437 --180515748 -374224273 -109744812 -944987451 --243368448 -114224114 -234022504 --376097611 -967046636 -676307950 -954742900 --912129217 -456742624 -322173933 --429084590 -977134233 -662222413 -685143832 --236225593 -740711320 -358593377 -469550325 -806485825 -147576401 -288653959 -42867086 -897358915 -792919542 -717367501 -779059910 --421513215 -705321905 -179271571 -809625457 -433494147 --555659829 -856737204 -561359106 --400200709 -221413730 -238075241 -738082458 -804106277 -171869585 --642858142 -427539746 -582434757 --974986113 -281298650 -90674883 --12325672 -858657438 -834958505 --994450604 -911170795 --507957220 -625974064 -104154111 -304976763 -803567693 -428726678 --347636093 -627028579 --231298327 -683064068 --873133741 -482499775 -358176955 -162698138 -226150910 -768947156 -757945823 --144397249 -474589782 --959891921 -264293616 -493389461 --453986908 -314459092 -191145827 --633438236 -378887573 --631380659 -615573702 -824441086 -473777938 --303615680 -518648655 --191772913 -209298686 -669647445 -391511405 -118410818 -631043084 -290080375 -704548779 -787198247 -523072127 -655574421 --886169250 -690558300 --137948251 -987919726 -264832326 -1037516 --394672743 -621092591 -743635266 -564904288 -15792209 -989933576 --451288973 -872165435 --533680293 -975842731 -38832631 -442054401 -880481424 -711926078 --502950467 -258963906 -122826078 -480314889 -353216265 --808200077 -212169035 -534577316 --537922325 -681798180 -735308270 -755770991 -314124642 -361310324 --330524655 -447780569 -75872693 --950688348 -13478005 --905328290 -107670199 -940330453 --93304426 -741378000 -812934261 -472715902 -585258632 -933661696 -487061982 -827356214 -917046872 --578081239 -847071369 -952318822 -704907892 -794479023 -42029081 --253957092 -587278206 -977763572 -269936631 -959408876 --814557867 -605952486 --561975075 -687039112 --536958267 -750757260 -766521898 -189840395 --251677180 -712253869 -872999935 -370270490 -364391619 --376095773 -615851856 -723466365 -665430623 -568305314 -482388023 -878505720 --822248671 -775467772 -734592746 --664759525 -305008291 --433494147 -818130733 --661956273 -430973530 -916254211 --427935077 -502646236 -64215330 --816853388 -274363593 -671759535 -596739113 -782020764 -528547277 -408293560 --302567758 -802871082 --977763572 -435556894 --554094244 -491390224 -151108956 -218041127 -432766626 --616617126 -143177301 -69099112 -615607144 -823511644 --235326670 -306057365 --436721430 -685891212 -466973089 -527174972 --33409772 -878561119 -629386927 -843148236 -537847063 -898355339 -86239059 -818705301 -439175299 -865084370 -879552962 -75927855 --899137516 -834360479 -586304746 -527191356 -735306497 --42867086 -946332765 --301611715 -218463006 --898012489 -124215211 -482121013 -351537328 --35716469 -412737489 -782072398 --263051354 -917418507 -876699854 --205976165 -307948295 --619413599 -492329262 -873118117 -175454626 --738621177 -910395925 --504165198 -634030386 -372693291 -213695860 --729284863 -261273573 -380034481 -945466832 --72857081 -563727633 -326653794 --313656334 -394774417 -507596138 -892490915 -361420219 -726227755 --804985618 -966031446 --296890192 -893957080 -874010777 -992125034 -440139758 -419155557 -18180676 --210673223 -304574248 -901892155 --321226665 -774692539 -649596279 -448647441 --300656880 -114118742 -791528979 --830370755 -705705083 --699202496 -606324604 -585990826 -61592004 -9288286 -581295697 -923452640 -461038142 -491536985 -508769519 -162814105 -259908411 -284980814 -121966881 --521079005 -950657336 -564007502 -372956815 --878279823 -267107589 -357709092 --992158859 -360644149 -977529064 -435157458 -441190831 --348866266 -235678863 --27693681 -115595795 -569411963 --649526833 -397749685 --18180676 -316733286 -85675662 --395702645 -617992215 -923068312 --261873028 -131462306 --104009037 -620182251 -878597144 -530157939 -3312785 -829787002 --339115853 -908683392 --267107589 -998434913 -423273825 -421103676 --670234016 -212757668 -825965180 --967565251 -654387033 -355736401 --687415839 -106800332 -101498672 --123830376 -677233032 -419224140 -788985694 -298325772 --325037542 -132607088 -219492643 --29423428 -146965130 --925972370 -237410899 -450630665 -576477403 --790765111 -745094030 -257124480 -880248121 -892784333 -366133169 --119643208 -481642988 -106723266 -327511175 -245010469 --165234867 -577039643 -53777793 --964013880 -333355026 -817586120 -245529393 --637554907 -636655218 -247440954 -968248484 -277280045 -680100235 -898445961 -997669468 --975073330 -296393170 --599880563 -133050463 -292339560 -540132391 --106800332 -243714229 -306769412 -995231015 -75167111 -162652510 -324049403 -495501975 -470712476 -708336907 -230362921 -473832359 -231478911 -959975906 --253855545 -739864888 --667909863 -305886633 --448497316 -303061812 -197627188 --269691701 -483286610 -956030366 -194339257 -323454241 -576139035 --235447765 -146481672 -189319301 --184872509 -604077648 --924926527 -228618812 -543585819 --186754942 -907053608 -29069594 --802504537 -37592181 -264232388 --300988088 -249368758 -553538170 -956433645 -272370136 -962366896 -398783922 -953263468 -345657706 -838999643 --441594662 -666536594 --470779909 -840072719 -532582671 --546981367 -594871959 -135439534 -116805354 -94657975 -806713596 -113948457 -286780239 -497192799 --155590587 -883423602 -638969414 --262994726 -982603899 -798514131 --803466167 -992129896 -984821349 -43884263 -913679533 -297522512 --897477485 -617216217 -3750137 -144445172 --194554739 -211029773 -709957541 -207657818 --428726678 -733581788 --234738611 -106797113 --166451065 -278484953 --880762446 -110758561 -789583968 -204551278 --357709092 -187029069 -137751051 -781053420 --93591412 -530009209 -890076286 -534359689 -180599334 -36458926 -688482932 -982562473 -972285253 -999244149 --423698223 -257881248 -845783772 --418718059 -47732132 -112068224 --179362937 -968471719 --969134409 -951886124 --367655582 -641044218 -623180271 -546840177 -309848767 --266334332 -866766178 -142787068 -886021264 -307822012 -150351513 -299912812 -944237956 -746946567 -351399738 --917418507 -761316415 --701853342 -181562907 -494113525 --35371840 -892529759 -531092701 --359295205 -409873884 -117635259 -863632549 --532433596 -805747051 -924795683 -934185051 -886516559 -198560384 -278000194 -447225292 -158669671 -66382544 -105323093 -17548443 --164235697 -112668335 -296851686 -871251080 -173086503 -896452555 -866814400 -964133960 --598095849 -992469493 -132085510 --508362491 -105813399 -425337276 --461057662 -28637410 -261493722 --746520797 -795260049 -825441401 -854292814 --73251268 -952956586 -959414368 -418201795 -574422779 --520739205 -923706969 -11862842 -653058249 -473732552 -943664817 -155817661 -999871269 --105222294 -986720527 -357102194 --807183633 -629887604 --465028034 -300243036 -724339318 --997662257 -912895219 -445801274 --407494490 -527889499 -329874 --118153432 -558151223 -343034291 --356629582 -288443528 -505775029 --206566732 -631939858 -207740224 --979453614 -428265987 --734554376 -363012933 --660358394 -853272018 -540844475 -396877304 -327185618 --877123007 -213292002 --316733286 -993432991 -524501100 --961517029 -486361893 -160397950 -179483719 --244712972 -401274170 -448539703 -715260671 -997376617 -499892898 --859260574 -319918233 -964809050 -599420826 --272877682 -965307249 -836978190 -331942846 -963074584 --112068224 -754952831 --612699986 -92791365 -801314067 -228754452 -312248991 -4212648 --384065724 -577958845 -563356395 --54673614 -701089541 -462831831 -503200691 -598932626 -441036565 -792492210 -45520655 --141012575 -675994430 -416664806 -575436340 --934836105 -623067997 --289239272 -58773944 -995963438 -772923825 -475391141 -528045303 --695443698 -656585465 --473732552 -690200882 -220447046 -664982304 --615866503 -44594383 -808996910 -486825779 -747093007 -823236459 --716985222 -690053631 -705836631 --490446658 -263859574 -230297099 -799283682 -201122654 --268012222 -566628116 -128377509 --995963438 -669627284 -413103467 --331681190 -331012591 -512084545 -240642475 -433497297 -916390304 --908683392 -431170382 -900781762 -460838862 -108010989 --429853323 -690094431 --130477990 -339605450 -13826188 -479550815 -901835915 -616920853 --181562907 -462564430 -165155527 -947191703 --759112602 -196319888 -731786022 -883284667 -703737875 -911129351 -318083349 --243607979 -136595811 -194799554 -44284648 -41916806 -439544205 -955556545 -744207247 -779957595 -116366728 --635135348 -77268037 --643551557 -172938875 --52014788 -3203771 --676307950 -393054759 --247582957 -990929771 -543294759 --302486945 -334257547 -601353828 -601411090 -571050936 -950314786 --509348948 -571847420 -176133945 -513903527 -293306192 -994671334 -511420800 -186521060 -39268096 -2727104 -441593428 -3232822 -966995740 --639742448 -498857129 -267497573 --97047572 -763930022 -83708501 -190645779 --785799635 -475540933 -926775360 --435556894 -161066769 -511504146 -273032763 -697053808 -783505378 -201115462 --460838862 -511967596 -588539935 -162857555 -143176069 -656826834 --879978552 -187153761 -55193154 -572125800 -144387210 --799234852 -97403298 --543585819 -971892482 -448742736 -852786779 -124939933 -573835880 -481773996 -249482536 -382780177 -425676404 --926397286 -960569902 --58288203 -617821643 --374224273 -297185674 -41378445 -592499876 -474237090 --969034591 -757766635 -595403301 -553296937 -782923462 -60137267 -556437011 -213860568 -7822368 --98163187 -427586395 -639641956 -492640431 -777302595 --606668936 -289457153 -501388332 -7744904 -686143889 --514028163 -540945309 -117162121 -672152631 -484131589 -777086846 --123240599 -551522204 --846744331 -579666165 -462361452 --793161694 -473098643 -480872342 -976787743 -840491213 --605790305 -300394617 --625759861 -135639064 -396680305 -975307246 --920803667 -812693501 -805552854 -343050147 -364326379 -59497938 -525200139 --372626272 -717306776 --304976763 -484721355 -228802331 -473528699 --474085822 -114456714 -173061912 -202321519 -371877203 --884115078 -3013567 -653610646 -993299338 --229016249 -57688706 -560298248 -277513910 -89617586 -939895315 -1573146 -553455372 -137756152 -651972561 -195100011 --112668335 -220732409 --912895219 -918894795 -729578215 -107775654 -118970299 --618849791 -725172106 -731075014 -618838536 --296435924 -186765317 -814932144 --597974693 -97513928 -649578841 --768580313 -997724923 -444454331 -226307996 -980583735 -622054096 -700492824 -537590327 --948546357 -21547214 -176766964 -153885902 -382441034 -770658212 --133050463 -156914856 --954951729 -561987534 --609074998 -390934318 -902582134 -498044609 -614911454 -866375340 --706327903 -563318846 --638834117 -468141548 -477208055 --805552854 -708736124 -4708492 -464857108 -919718596 -8649794 -625716920 --23180457 -778195440 -934555862 -297834451 -483927529 -751976346 -483171212 -203586253 -98427475 -803722582 -72552834 --36458926 -486889073 -508397180 --8662126 -594760623 -725120799 --849475598 -796070668 -142395332 -10006369 -315736574 -842484 -217382523 -417377759 --87926616 -438541766 -127568831 --354993452 -627374799 -318724574 -574349941 --575436340 -625334302 -45075054 -822325058 -13885129 --456422289 -937292041 -896812411 -394593665 -277087851 --164103528 -773839244 --681106569 -681576150 -131479122 -797417108 -427698904 -992379228 -294492040 -632675455 -899929595 -776436910 --318102111 -659010160 -579971709 -623191034 -793760015 -769399193 -75525587 --355177915 -172134468 --20648445 -332910607 -613352484 -528583209 -924876690 -709512925 --523619146 -506293601 --92904397 -130630435 -154204169 -452688992 -444208204 -534253718 -407173026 -537499793 --871432212 -491841080 -154663077 -45693516 --475930250 -954345644 --890411026 -564813503 -765816075 -701858708 --435068821 -960809702 --743516220 -811539311 --460930821 -720570814 --532351821 -104858375 -126024582 --396993371 -140811389 -441561274 -672597677 -140130826 -660137905 -696002531 -274510375 -474344492 -601301782 -863147985 -592362681 -577470264 -665887979 --151108956 -79297497 -210292068 --525200139 -754022337 -511230497 --839208304 -346650289 -976302825 -814932593 -680288741 -471156602 --983069378 -461923213 -9073971 -247868762 -637863261 -552437006 --835379850 -372773812 --611631586 -921286279 -960010845 -747820714 -739231796 -805602648 --281894280 -850548431 -894806244 -644804250 -220929079 -524816304 -707540525 -517327295 -292426147 --685801097 -118746902 --825074273 -901120981 --835109 -353643520 --503535852 -127986605 --79297497 -589485895 -128556373 --106176002 -562441629 -857100397 --952318822 -65545567 --677233032 -570561714 -388839124 -561118254 --855901955 -415491063 --971353718 -977090070 --775498803 -719012301 --386940762 -195932932 -739448179 -400260954 -217194636 -901504718 --284980814 -248616656 -27675280 -273617286 -373706418 -578054774 --877497092 -348235725 -311501847 -922614553 -844435907 -152752914 --58773944 -112047848 -609014516 -552563560 -754093090 -724096894 --448312171 -550862534 --685328545 -622622057 -634712895 -952469 -987795987 -967505239 --735308270 -737510087 --498857129 -911026450 --62302863 -327548069 -586876894 --656260231 -524839746 -339493717 -835569762 --563727633 -637841848 -13639795 --762483151 -877624342 -45614406 -348827903 -617257933 -799477877 -45988707 --83708501 -641557994 --186765317 -444954770 -103481474 -248067707 -295103359 -148337703 --757766635 -868294320 --624722964 -478362289 -926643007 --549587312 -120648857 --565750930 -47267617 --867111344 -697211248 --310052876 -657365771 -947212101 -8669529 -320469877 -625280112 --816579011 -507024299 -328877729 --997872567 -226005704 --142787068 -677799815 -948793134 -576615588 --75832902 -254635168 -487931442 -105550197 --556437011 -959716259 -856042636 --592865800 -866408382 --851992018 -607201831 -820058222 -879130460 -582877498 -521575142 -810920083 --531323086 -564792790 --659010160 -968558621 -984165445 -632499725 --320469877 -317955358 -416347049 -338564771 -348988747 --343552851 -374881549 --143197486 -144674254 -687528674 -876026122 --950765395 -221774119 -620946846 -428551368 -156006579 -355318097 --265889497 -506553905 -215786731 -60713261 --529348509 -979195850 -505157442 --642442848 -694287918 -776348195 -823770614 --398783922 -92649281 --261493722 -903465313 -422063642 -871411451 -160367444 -534910531 -404863908 -52112985 -826768850 --9522372 -183146607 -574013002 -227441025 -529060132 -48201297 -466589535 -965693883 -296683386 --258908239 -606569581 --892216376 -863165535 -911996099 -476087934 --16076845 -728933394 -924309170 --639037060 -893950614 --749028084 -129337889 -623906350 --464928769 -284110255 --823898103 -483818702 -544927931 -219246017 --89689672 -398124750 --595255920 -372714239 --226307996 -683355383 --996574138 -550665772 -499498144 --18148506 -844245052 -992324580 --351028622 -65052853 --432401291 -726777976 --350255348 -357290739 -592135911 -513990081 -270169860 -437928684 --947237135 -9961830 --390643398 -375244139 --124939933 -111005457 -837269515 --636655218 -94009609 -671025890 -264073153 -851176257 --579971709 -490282367 -874090384 -918159052 -943736672 -126885061 -380070603 --944451442 -233531344 --921225966 -113513494 -380848285 -733048885 -708957234 -666979640 -740349840 --782438278 -874880119 -218863076 -422982400 --772290025 -429216712 -298724519 -556324628 --292426147 -182885510 -480048654 -916309506 -251133113 --779195718 -383095317 -252006413 -78426364 --524839746 -777650199 -452891894 -619470433 -469721367 -600039870 --661233434 -816478272 --598932626 -114511917 -923278053 -561360493 -445089841 -126572114 -437807489 -666965315 --560447249 -8561267 -783636345 -509116694 -684990631 -222696660 -286534620 --466589535 -247194034 --565253535 -602236940 -484172181 --358176955 -409218798 -986777185 --740576159 -454162526 -810179184 --390640770 -118049194 --738274451 -755749271 -453331457 -808420958 -548744636 -887513204 -200706769 --148337703 -171533221 -491292676 -668328037 -645457377 -650737351 --941784069 -698224387 -562931020 --782007076 -648919259 -111941821 -402458375 -544269041 -811797822 -355943274 -140220114 -649877976 -558169613 --38230799 -849735593 -661832249 -339969322 -233664320 -790699660 -949076794 --215786731 -342637397 -104612033 --764736391 -982628891 -763622027 -599960505 --208719193 -869731734 --929319741 -674347037 --644071419 -848184461 -542266208 -388254080 -771326412 --737510087 -778944392 -828591064 -253584443 -875318671 -944888504 -694757994 -788667382 -663310154 -353821785 -434236974 -73210852 -646627113 --594457860 -649901660 --894650969 -835263340 -811157440 --8123542 -39208031 -524141900 --602236940 -237194120 -929707090 -70031760 --928706099 -162181024 -106113088 --403462772 -824551520 -146969634 --328615482 -677996089 --423794400 -642669072 -451406868 --667847672 -145649480 -171240390 -849130306 -234767877 --282846223 -844716085 --695021533 -94505031 -218394942 -386082012 -542547315 -834109281 -206164551 -532727675 -393760804 -123105268 --723466365 -87230594 -361096543 -501502706 -231625285 --136172268 -266042551 --444954770 -306830058 -160366597 -771745992 -798469691 -814238146 -266651515 -48483415 -188827369 -321975899 -118640948 --329874 -910517843 --188011626 -711868627 -367745136 --585296734 -633416203 -291244948 -386271426 -759527567 --711843056 -521252437 -505531947 --695618598 -889927695 -485619840 -865923330 -546193244 -321968528 -83786013 -382015838 -271115965 -463912606 -945633371 --434395083 -825478962 -648231704 -604529817 -367006551 -454692002 -479334706 -826394626 -957863660 -683555291 -300506215 --450630665 -132890181 --710809843 -664502821 -428850226 -21518547 -737259841 --382561376 -380795985 --1573146 -159064783 -815485152 -339378477 -124927021 -413054124 --828740269 -504554018 -983398376 --78482838 -676374400 -395058404 -713313528 -208116593 --643816168 -237225178 -988069339 --193635719 -465943855 -424232660 -429902067 -592913130 -475318593 --767606140 -36431247 -852318346 -984086635 -969204789 -609347255 --915279572 -728679619 -889858565 -93488743 --944853376 -190367477 -175439271 -517479966 -246286045 --82310563 -868777617 -981668671 -4637976 --34490380 -943054765 --803495068 -362954492 -770246319 --697037627 -606773859 -833663377 -351549877 -436632753 --479553226 -788501487 --577029119 -523592971 -944655736 -460577444 -225914813 -647580197 -305420618 --52150279 -257091301 -58836449 -37841840 -984570332 -58633751 -71760227 -407513799 --513943796 -797652703 --142764365 -408095562 -344868807 -897847722 -412683941 -501662577 -110841603 --647838749 -527527672 -109897075 -886498115 --583472199 -680269958 -361511346 --822731531 -709181728 -230822632 -681198054 -488413322 -36767669 --507024299 -262464840 --950475655 -629001245 -111914299 -694098929 --574013002 -622901080 -753904775 -713314363 -209653963 -567201339 --914971250 -452903739 --244152282 -985973424 --956535642 -512915412 -649438431 --649438431 -215865168 -163997267 -846220110 -637455614 -581172349 --480048654 -631272813 --751976346 -798642369 --363012933 -49594787 -289820755 -818941821 -36070846 -63489834 -680824987 -266446057 --327669846 -292238568 -785066164 -19410495 -92282789 -754794634 --112404249 -81533224 --247719333 -601821261 -632855976 -795738793 -16423193 -664091756 -206620793 -377621776 --168876014 -885514202 -690398631 --759763999 -269466529 -164563529 -924481630 --460577444 -315652451 -163403604 -227339804 -425537318 -37220930 -165654023 --111914299 -464371108 -931717130 --441593428 -262040956 -24874942 -169551149 --48483415 -638553102 --305886633 -646226195 -243405923 -203908843 -670818728 --8649794 -807166826 -599903626 -264536036 -975577550 -388590378 -434593515 -257141897 -464290155 --886313981 -925746735 -760610600 --380259303 -901145306 --973643583 -111230188 -376132438 -18411625 -327781343 -266191979 --901504718 -978902221 -979199833 -609780012 --516514462 -341495247 -965520975 -67398838 -269178788 -784724598 --593701073 -373842498 -246672984 --143177301 -421291398 -65661010 -941378522 --796483772 -757615157 -57292166 -855790568 --696974946 -541346294 -715746304 -226785256 --265721064 -690165689 -503286056 --945010326 -895928799 -34998955 -233036671 -96771710 -907544727 -77188594 -280271807 --582764101 -418506389 -447401634 -818952990 -849824549 -130691852 -743641260 --782287493 -435149495 -279669858 --777863631 -385399353 -584787229 --474344492 -610459591 -407832946 --849824549 -620774913 -480133939 -666635492 -611586507 -276424491 --854431374 -409158669 -747090488 -178007029 -61157622 --442781247 -864124825 -903897528 --110841603 -58905174 -956816509 -781293539 -17991405 -539617946 --447401634 -675983609 -615911467 -991020500 --85467612 -192210878 -840388299 --875318671 -848546774 --264073153 -628831402 -874548735 -817383893 --508827898 -106694965 -971040174 -224618935 -154283886 --278000194 -556622299 -422802727 -993127331 -306079673 -74204533 -49494295 -136128232 -953829038 -269456098 -927677271 -764902680 -850967997 -972988588 -640868136 -439468176 -435494119 -736387733 -607894559 -35705896 -57280031 -971107013 -527058733 --165480397 -158688706 --536736577 -663091620 -742558677 -577282874 -3149063 -475349424 --815844052 -476770154 -951246904 -66087744 -721287185 --421057083 -907474405 -580948150 --118049194 -519628310 -743142967 --882149908 -128230160 -446346065 -282910939 -290413666 -176677608 -959752660 --694296593 -202377370 -216970650 -749906547 --452339660 -19308977 -912778661 -579147420 -127297530 --578556490 -68708207 -327799397 -506637262 -194096466 -270909612 -166481297 -334460796 -832142405 -730382753 -827949442 -66464475 --422063642 -935309006 -740295537 -869436667 --795260049 -267731854 --892588820 -155757428 --293959235 -695931309 -909965225 -649304648 --95489838 -514556635 -820049439 --892048919 -339822395 -42240591 -180189836 -782994601 -272973459 -62934291 -377335971 --965307249 -141899678 --521252437 -451078074 -819929235 --106542815 -944789276 -697010105 -830039905 --78327398 -823369515 --797236648 -984299417 -506838935 -164927081 --158688706 -715133071 -537564261 --356813244 -688521350 -40019691 -422399466 -348382397 -6396937 -501226744 -104211279 -653739200 --694560798 -536582779 -539338153 --303061812 -498486929 -883647664 -974328819 -629993233 -853482227 --66382544 -70815793 -710165440 -724581832 --477795027 -448358161 --912635651 -209616213 --45988707 -127477425 -995124963 --581172349 -849170913 -187152765 -543287309 -311130087 -854875069 --275119030 -9057446 -93891299 --51267630 -556267059 -686285816 -45441947 --648629027 -477860422 --412737489 -322863787 --697053808 -676357901 --479406431 -95067262 -526619224 -896896482 -949434981 -203212651 -532791690 --772224850 -772111529 --866375340 -596709564 -319282904 -317158632 --372773812 -289435623 -282151251 --807758087 -793297377 -771326058 --904791039 -150309837 -582001026 -166046919 -818160815 -706380261 --137096104 -43546697 -110129511 -792918479 --446399918 -257742931 -237792549 -630854926 --602456290 -238793279 -831227898 -291027373 --283055863 -609339956 -129502135 -823440037 -269001060 -513031902 -757189184 -892037654 -762086442 --57280031 -555275654 --965520975 -845574657 --747090488 -940909657 -75065670 --892563279 -53800964 -806226474 -267097986 --632304658 -480258930 -971511576 -890619483 -571322937 --590005674 -569462245 -131898899 -40678834 -240626469 -94316090 --249024456 -122026979 -108003082 -10105321 -954692554 --693666684 -810027171 -649090938 --107775654 -579494243 -35627759 -409381555 -288419942 -944163779 -976675097 -41410887 -384869634 --601301782 -349424866 -816562571 -772474812 -395212354 -567189774 -408006505 -490492447 -790063857 --509284186 -493568813 -339639211 --524816304 -206861832 -233692432 -606925307 -587760060 -513748484 --929442912 -491355631 -867608635 -647515822 --448358161 -31844544 --132212965 -170737488 -663596158 -124765420 -877745353 --186319646 -780290529 -957028620 -350136492 --915857465 -818542991 --991020500 -399305142 -713427932 --596739113 -701951791 -914525735 -148257567 --478869343 -78825076 -823058948 -683120807 -781442713 --666536594 -224318419 -287863884 --914880748 -325593268 --75872693 -341943058 -619982110 --288653959 -292003948 --943054765 -940512040 --863269749 -234704600 -599880309 -826025252 -243888557 -203792039 -991357581 -569055419 -772028936 -487271271 --254635168 -532751243 -30376183 -46204781 -575048188 --858562794 -216450942 --131859382 -312905750 -906802130 -107520609 --649901660 -79807008 -307837125 -875687582 -683484023 -139180189 -834429942 --382780177 -950524082 --466705606 -457763309 -881991256 -71562908 -183419362 -392029775 -751056805 -478511468 --382668421 -450995047 -366254101 -618379162 -340250146 -562720441 --347099110 -652539385 -663755594 --245945101 -259814162 --527889499 -367555450 -655839968 -473480636 -71366605 -664280564 -605544864 -921242683 -126686799 -985303923 -109432530 -205137460 -232238775 -467107982 -140443714 -16490219 -48204482 --297834451 -235165193 -957676302 -113425868 -978465637 -508956107 -403876759 -230189457 -181290884 -470013277 -704965851 -423357887 -582987346 -369538476 -473595158 -948921776 -852774426 -908584048 --508640882 -69188203 -815318994 -959514831 --665336890 -368006834 -782046587 -705235229 --21518547 -965281800 -657300893 -791171683 --115873518 -366110707 -723782902 -266620861 -305726 -595985319 --112321876 -579483066 --544927931 -340334421 --30705672 -515758370 -395971134 -814113938 --26622009 -269809527 -571308191 -785901774 --309215416 -726567271 -857216571 -87559453 --506838935 -270901525 --735060790 -703179832 -864223040 -808374369 -924850039 -377183265 -510206295 -632774960 --623396911 -868875015 -173105023 -677632043 -576408275 --539508455 -847483431 -671803124 -764168300 -282659628 -521681009 --984821349 -376486806 -45966384 -632291857 -461784001 -493004832 --473098643 -448700579 -216738906 -872434747 -595691329 -784071914 --436751631 -832122443 -332717924 -150914743 --650595048 -749323975 -72537307 -308921229 -211254430 -715441959 -365668986 -298217672 -155843769 -537973678 --531774226 -432789414 -991799468 -867488989 -352698019 -587572489 -758172492 -459823416 --527046655 -837795236 --476309441 -913660752 -700872310 -324259608 -449395636 -773611533 -261532915 -465230351 --838216411 -565954458 -451222731 -830271288 --975933965 -766756167 --619470433 -554522653 -863881113 -950611772 -574033532 --118496244 -347716789 --123105268 -885452999 -966971291 --362606255 -508470399 -649191724 --932071489 -722305362 --859502412 -352866466 --784071914 -767313416 --830271288 -615807299 --26973911 -989779161 --941851850 -71677455 -741944666 --369178722 -318657563 -862379272 --38832631 -708076261 -15879254 --106113088 -658972509 -556456509 -350739211 -178101370 -520087013 --542547315 -74709940 -85113523 --842690958 -919558034 --762825228 -539702671 --749906547 -789952773 --160366597 -181153906 -243158316 --157197129 -895316906 --24874942 -822293598 -863775893 -53322230 -504594235 -731477446 --919718596 -354072885 -895663799 --482499775 -685868447 --533064750 -65545874 --916390304 -315464355 -494412507 -846950919 -145236017 -628831821 -929272294 --328877729 -760204407 --787198247 -329942609 -110774478 -822817103 -57956785 -111288292 -562155269 -820092204 -875746577 -969583718 -228073357 -439404685 -161120864 -666000113 --136740850 -631937573 -105362846 -198604858 --960809702 -710435747 -260497717 --561118254 -497302471 --747906833 -147221760 -834666489 -861186057 --691429760 -558254430 -881061511 -693363715 -955333536 -388367210 --476579065 -188245405 -33996085 -334153568 -658322608 -154897439 -75822697 --482121013 -140022162 -551576526 -298679527 --863775893 -698348816 --992185329 -367572910 -621530839 -338112191 -533013836 --397200064 -999070494 -772280661 -568354469 -23723308 -655910829 -281212805 --392700747 -866374838 -826514131 -501521924 -906034973 --627455748 -548423362 -521874801 --812792253 -323457258 -5565284 -981589543 -333139241 -141284343 -503191634 -35895564 --739712538 -170269606 -824774122 --706380261 -435487019 -476527164 -373712363 -673912768 --636267314 -381912740 --771326412 -811060496 --652000089 -198054013 -605636229 -120318587 -60138798 --629386927 -920231925 --113998078 -436770498 -734907208 -239607721 -545492592 -521796453 -386525700 -846229870 --226967834 -322382160 -928556307 -246736524 -575437088 -544784472 -312202807 -227725648 --367541556 -679701423 -703323815 -718375844 -902064358 -473480202 -914759832 -496037491 --695592067 -165333601 -648139003 --656826834 -754606733 -93532442 -593275009 -288219385 --647482043 -478833850 -690240811 -786590085 --472894539 -512643720 -887135887 -738390894 -137699530 -694312935 -255417622 -126570312 --613037879 -205228841 -458078882 -573430075 -673171333 --743142967 -53807868 -863027159 -631677145 -809250276 -703980409 -894186691 --535030088 -973219741 -888100089 -723768318 -826995252 --683120807 -707389098 -969912720 --206240807 -43033949 --259839591 -340719023 -604794557 -323164678 -260448352 -848647958 -389910956 -841372324 --146965130 -253712401 -227848803 -678127151 -880372104 -297429988 -93092814 -320758115 --99181317 -187190152 -234977507 --407113903 -969988319 -787105375 -227473595 -761090662 -827532662 --109445165 -570163933 -102155844 -585421611 -7713022 --658322608 -343088611 -428853763 -509720298 --587400424 -427747276 --145087874 -41982343 -769313063 -745290363 -88959186 --114576433 -276660186 -335733030 -473082862 -410778919 -645840918 --635541788 -235180888 --118562091 -891261567 -943636274 -925614856 -179210425 --266307666 -777457790 -907085797 --617216217 -383505177 -858515037 -314572437 -502690010 -771770875 -314816664 -552265458 -881572661 -167233602 -133104360 -51011140 -251270350 --722559417 -359313240 --229025781 -353352163 -764263991 --270169860 -792049745 --213097673 -930161514 --109406247 -910058425 -517510782 -830436303 -809595522 -457684068 --333139241 -331589558 --780930128 -401149405 -688839797 -906363928 -778980571 --269456098 -529200901 --286702578 -461411165 --630854926 -250131778 --661832249 -182024651 -958406787 -63436492 -796882013 -43087850 -769423200 -746376582 -422167220 -505998787 -759674104 -154807536 --319976873 -306553195 --538350758 -910111922 --571322937 -541127801 --600562085 -272915032 --691303533 -528372044 --757945823 -691041902 -225795874 --421876399 -536872154 -389702790 -15953448 --2727104 -713097155 -336047020 -431867991 -794125685 -451333069 -985266256 -84981879 -953342966 -528447164 --77282036 -45515968 -784517999 -827743108 -317244017 --757912996 -384444034 --65545567 -530904221 --917286380 -861522401 -961349433 -623700820 -260091727 -750626742 --843799012 -62238823 -95093351 -236796521 --897358915 -391611117 -978583192 --94505031 -405204405 --364326379 -9520785 -112107303 -782968928 -499731887 -390582105 -252314331 -376838245 -608763760 --783505378 -896181541 --776436910 -733533391 -595027411 -189766067 -605410450 -222646063 --451018012 -347207045 -971848508 -70107115 -556211819 -940226218 --907474405 -457361393 -275454887 -479689619 -6117093 -187580833 -234787503 -968686758 --547735110 -978216032 -790360796 --79807008 -239606853 --353352163 -75124309 -103196431 -792133935 -204570069 -407530559 -798617560 -3292012 -13872518 --706182857 -844499576 -333911539 -917544492 -494279431 -266674476 -573061213 -740887095 -730260900 --515488676 -836666085 -231331940 --845168531 -684412566 -54743086 -442295112 -234019110 -480432168 -66158239 -705492879 -967334662 -501938352 -500093672 --996020186 -407000863 -551289479 -908339126 --761644605 -89878368 -439982115 -638366492 -215061881 -818074314 -367221152 --938400350 -311669550 -382685492 -583981935 --338973838 -911327477 -835539680 -886596726 --395971134 -618115708 --694858005 -142685740 -235863960 -59770208 --152827121 -450071856 --287258570 -259589538 -715522826 -600213207 --975842731 -785749130 --648139003 -812481217 -491127637 -671944544 --330064891 -888556917 --44284648 -550887615 -859468181 -383359897 -255256956 -257538887 --934185051 -92323390 --272370136 -370593683 -11391595 --512814040 -840767507 --194799554 -836468186 -52998787 -21800995 -583667510 -204210302 -785096987 -425505576 -179223891 -316752374 -615449986 --227744012 -553092586 --144445172 -382243536 --606773859 -432005672 -532178037 --185577616 -789771782 -677063489 -513006552 -350511758 -368545165 -992855858 -748424154 -923414855 -560325251 -453082212 --27950879 -36270002 -86280859 -31290669 -407597614 -339055071 -94601652 -814815783 -160577716 -951574882 -157873644 -995729304 -89590749 --903379644 -956368622 -901450777 -47936281 -991455740 -192064948 -889483100 -924585647 -113079804 -819640870 --995232891 -629630305 -591971817 -416618140 --463916942 -495716271 --789680952 -952290591 --340719023 -754008300 --574349941 -923156973 -916163943 -168467367 --613931233 -59794706 --900782041 -922371268 -931073076 -834464917 -558281917 --480133939 -748120940 --977134233 -648446542 -842533127 -149756983 -123177466 -205131300 -638125580 --108010989 -504216174 -475015374 -811006790 -265354206 --708265281 -439944146 --396877304 -199604825 -384707997 -361560164 -726889811 -474736925 -610977557 -714845998 -932072370 -273742808 -91329802 -810206710 -857929006 -487786012 --343048165 -659691424 -373308615 --351812083 -877322121 -679379931 -230018825 -82923977 -205821452 --211755364 -207714960 -586870625 -92143261 --959408876 -447125151 -235507351 -37460085 -592575708 -403254730 -927394773 -194060132 --525478666 -335615894 --499892898 -978204245 --586489999 -36307217 --690053631 -927654524 -256694269 -746059678 -857816191 -902545995 -676851773 -4815937 --403031094 -581925261 -320330412 -248100758 -551570944 --771745992 -30965260 -350871067 -876708126 -371775286 --232349977 -511725627 -422312482 -19352082 -72865128 -479121306 -45622082 -217244336 -137369009 --744207247 -887951418 -305876949 -255367396 -664963473 -672687408 -208511711 -327052578 -931376933 --743635266 -460182475 -784812251 -64289250 -446766201 -767255758 -261105219 -333300520 --381849627 -207847001 -405956465 -490750506 -622051825 -748542219 -656262134 -898424007 -686368518 -632253032 -207348423 -309672294 --365046820 -264350340 -645019174 -632171996 --742558677 -163910087 --721080865 -553020461 -967210908 -750840227 -696972515 --587112154 -317319484 -136247690 --379009655 -621978268 -903736908 -65543495 --849170913 -775125332 -418495918 -505852318 -136090224 --481773996 -464568207 -378348801 --728679619 -79214874 -103909081 -357051649 -339091860 -400652609 --874880119 -986975676 -308752907 -471023950 -73191554 -407418123 -923801867 -869821846 -790498439 --847071369 -551999340 -831400003 --714311667 -345571985 -32363723 --593204535 -304132128 --992469493 -107001097 -474741181 -67279969 -894650716 --798642369 -353032361 -109186498 -50359789 -623679500 -916165781 -957384694 -336894254 -478025524 --508626440 -31661620 --879552962 -923286026 --825965180 -279249608 -916326429 -37588267 -668001124 -948563103 -822079254 -708345182 --685868447 -649903601 -296370992 -438734216 --892784333 -921304668 -142810681 -418345147 -828509873 -170990689 -28667727 -843161125 --441240738 -279118596 -828973765 -994916951 -257745727 -255098204 --272488282 -650205046 --719134914 -442366446 -109261199 --451028182 -428174561 -600528135 -713936845 -597086267 -373864416 -98582840 -970622269 -426576200 -177959278 -438571284 -583765717 -961255237 -660699251 --305008291 -524835204 -998202557 -209662529 --758435676 -413029402 -249535374 -885298317 -175725320 -572156158 -94883519 --381394326 -530563960 -490906331 -466867649 -452990486 -105733153 --81533224 -289292507 --814062843 -185508689 -490879760 -515495171 -714999853 -173670697 -621398218 --102155844 -99804729 -729623421 -321146901 -119840233 --37588267 -962793530 -986392509 --732136292 -941770120 -866744927 -421026176 --248832888 -989669239 -723873153 -491711116 --107520609 -622380679 --669647445 -309224940 -588713322 --410764808 -490022287 -182896965 -264863434 --195100011 -308501590 -537448243 --829648319 -166632500 --639641956 -319913008 -827404226 -407502193 --313842501 -378234855 -841565744 -22279757 -398382943 --526592055 -568626812 -231182852 -222038819 -522918601 -154095194 -456595933 -848373865 --769423200 -85733544 -544749493 -645520801 --994671334 -474999074 --254078838 -803586227 -544829619 -525003759 -558000675 --967670099 -225352822 -848870373 --225380138 -41966187 -215435533 --863147985 -376201040 -192783296 --558000675 -960860240 --55193154 -642425698 --142395332 -450326399 --667463764 -902878742 -185074627 -505456616 --629887604 -315378698 --252818391 -903082939 --632855976 -837544982 -358742618 --728183783 -49422983 -699959780 -498948067 --227848803 -191296671 --677632043 -592644485 -446016367 --478054694 -414735013 -734062184 -733503457 -985621720 -929185385 --456075581 -752712251 -637048617 --852442878 -774435672 -207778253 -416125316 -623882324 -419995448 -222979507 -624974886 -998780210 -914165560 -963309691 -578269718 --136247690 -695965794 --856737204 -482581002 -26065371 -326883454 -269988707 --170707984 -266685706 --990745951 -227779743 -348399099 -329346717 --610459591 -338128191 -514412576 --590380730 -479959849 -901477050 -461891873 -700698486 --521300161 -46779078 --713936845 -995548744 -950517355 --800569351 -420648601 -60944847 -251856979 -660039205 --418336151 -447690729 --202583678 -196547390 -706019131 -503678874 -516186985 -496706783 --764674586 -245021193 -425040660 -790415482 -502563685 -444685487 -110636460 --76975516 -893371119 -282383988 -91700733 --811060496 -543689389 --155843769 -833425264 --277513910 -29822070 -949654512 -643070437 -722230803 -852623880 -668237000 --844758828 -398287265 --152886156 -185523639 -836371552 -373608816 -673677810 -466065585 -409060948 -496891556 -645080644 -481353005 -942302583 --600528135 -561473357 --202952816 -827954803 --878163672 -491797681 --857816191 -74687200 --338783881 -440410722 --464757150 -482524750 --241073440 -186648546 --144674254 -353137186 -599097224 --995237894 -353308549 -521323697 -376133017 -146300092 -124344002 --866408382 -692383734 --435494119 -900368661 -511765593 -957885737 --93442077 -217145965 --288443528 -424506093 -607066078 -249750109 --42240591 -522526640 -588205418 -733754828 --71366605 -250976263 --554890621 -898136401 -805807536 -740211443 --212757272 -502574486 -735462462 -456642615 -141408045 -878885558 -146359759 -296457136 -789062760 --938422653 -452776063 -106494390 -641500819 -628478441 --453082212 -421425197 -61005963 -680987283 -646766441 -583761272 --16635884 -984980512 -313155101 -413509733 --400540414 -889436496 -795071511 -16198158 -163041924 -117752628 -175726783 -775625281 --773701774 -586136285 -307241017 -231983288 -555309481 --178901261 -84119989 -936334025 --708336907 -502557161 --192707665 -416185425 --428853763 -18867301 -197241188 -803759841 -770286380 -80577401 -586145226 -423686117 --886596726 -632046988 --890326928 -487744080 --824551520 -905502636 -410373061 -270454119 -552097965 -655519238 --420797217 -512395780 -191209274 --68708207 -286219333 --117635259 -24853381 -380913910 --194871780 -629037403 -83523113 -568676959 -825109713 -248838241 --486980428 -259649513 -891173737 -559146202 -740793561 --219492643 -31825750 -236630667 -600188547 --393054759 -65972636 -807466955 -283702763 --824758013 -588165004 -142998704 -454873713 --943636274 -375789322 -452131758 -57473124 -165583484 -438851611 -994320792 --831518290 -446028015 -329437956 -70217552 -867256260 -829777382 --329437956 -338158363 -610449715 -348755321 -950927983 --24853381 -844257707 -584722108 -847033894 -674146858 --274821219 -992664719 -512922475 --640630100 -591467569 -643072392 --995231015 -89352493 --61740116 -916820653 -217908419 -385532860 --93611089 -419385078 -262388073 --644804250 -817499404 --586778977 -488064621 -637776988 --820640077 -652983549 -654548891 --138178962 -748809238 --428384676 -907116786 -928395396 --869821846 -873477490 -287851595 -962838105 --833882018 -459187085 -905919097 --725120799 -547345778 -239449917 --593997892 -464143083 -313360873 -972644129 --490596547 -417644428 -119953461 -819089148 -799672486 -210794763 -126145921 -613790873 -667215504 --620592824 -388725873 -714582930 --891402673 -663746272 --609674755 -677261244 --870616067 -719870394 -413715395 -287271256 --77862376 -490042424 -36835876 -945474277 -958295568 -848628795 --78426364 -781605545 -507837112 --848546774 -193610221 -859240669 -931374180 -679348545 -845920119 --490282367 -268871470 -514190302 --921304668 -997053540 --849965449 -323735952 --355522553 -397996428 -565716983 -13597549 --886077344 -406558984 -461253986 --843148236 -468931157 -117680436 -790343332 --811959506 -225506430 -676411959 -294066173 --251270350 -824408604 -880548999 --216970650 -443415332 -258635919 -855002889 -109703574 -814945557 -25755331 --435788673 -387557545 -184801880 --212093113 -545137108 --744922760 -451724497 -769235204 --980640209 -716002268 -264484833 -230495159 --897847722 -958244920 -67340172 -380556860 --833425264 -783602122 -533252806 -456489843 --582001026 -762266286 --175439271 -120924573 -546542782 --913453216 -365660324 -136080066 --99760804 -859128370 -772489260 --148409444 -874123029 -535944372 --641500819 -57721553 -443347206 -287520306 --772280661 -840378078 -489637629 --31464923 -709931936 -566047523 --977767996 -587768069 -771107855 -989170015 -27071216 --366216717 -949690887 -615905188 -235945050 -534524533 -976055323 -685183244 -466827553 -913829517 -123004599 -777066402 --881061511 -385210295 --486889073 -109115725 --552563560 -301399319 -28742086 -183089622 -837241201 -781665080 -266875321 --131898899 -175593283 -161741345 --267497573 -243861191 --67353037 -705473307 --581799108 -174071760 -410505708 -515169644 -502222464 -623915982 -418268130 -855474228 --703632795 -975849913 --179223891 -861427905 -913666731 -349011664 -904032348 --571308191 -24996570 -618070141 --155817661 -642137117 -94659155 -120797073 -77305335 --823001091 -26038192 -668239516 --392304932 -418300232 -165625599 --81874860 -846428898 -289445195 -428867806 --817979629 -287835245 -758467875 -923056574 -453507921 --360864347 -503793640 -504412264 -59993859 -574533299 --882987521 -454077021 -161137910 -903297408 -409562217 -831717781 -678380168 -451174015 -701721927 --868777617 -223309412 -524312076 -670717722 -894050648 -340867652 -841257734 -103520425 --352866466 -234845172 -773939627 -184874511 -372023685 --283335586 -939570836 -359129071 -932859463 -483166159 --444389490 -975458450 -739299258 --240594093 -697069607 -189621570 -526768754 --351824049 -974342444 -180730103 -141836652 -834351589 -562100702 --348399099 -557860046 -993250903 -857590243 -36007002 -482401696 --345420074 -171813021 --982603899 -451232210 -962814654 -274016686 -260662535 -83451231 -627966845 --479121306 -813808969 -619040231 -336633605 -140278888 -147889748 -353744120 --427539746 -424288574 -554535058 --49944542 -124834645 -429518828 -654874701 --970844876 -250083358 --787335491 -257844136 -470969489 --269001060 -341895426 -72466703 -263612818 -210095181 -736437133 -11041465 --341895426 -55898564 -111796430 --351537328 -301236295 --377621776 -191722333 -139529552 -63632875 -122108633 -753371056 --388590378 -559932928 --276010884 -13397909 -457725700 -370432064 -709071028 -411691760 -160867517 --908930955 -592521124 -311099440 -446673538 --839367322 -646797088 --264076917 -53165161 -735735664 -425722144 -15035536 --511725627 -945854242 -8003708 -956560297 -860322343 -88229983 -975068490 -427677486 --405496033 -988785023 -772249398 -908208611 -238415494 -957119681 -672572780 -61512154 --264886744 -421330405 --270390490 -263478507 -138050584 -214661250 --708981813 -807090745 --495716271 -465219596 -10295756 -937211843 --754606733 -164058090 --108650471 -623963254 -469473940 -573355206 -972542261 --166131023 -887999706 --314459092 -874126302 -969069244 --473528699 -380830433 --175454626 -635616926 -615783025 -837385460 -413387947 --568305314 -980654784 --556804615 -713348149 -469587917 -626561039 -182468785 -592405362 -266161301 --645840918 -698237276 --869436667 -280602925 -269003149 -178867246 -487136752 -789491403 --701951791 -460737859 -774678167 -964599472 -391346913 --190645779 -100959918 -225514986 --188245405 -193533884 -982132400 -759811184 -468270591 -202023695 -104023702 -66292516 -400050860 -826964853 -778599918 -891931617 -204204931 --310485008 -745506875 -462617994 -475016715 -143123608 --360608983 -465652448 -946546127 -493646167 -673550854 -319239984 -595742054 --975458450 -146495663 -135698265 --5565284 -53492392 -911577710 -966006238 -893777677 -69722790 -682536996 -928441833 -169494532 -481684038 -206462419 -536720004 --781143499 -60940953 -865120452 -496337734 -820170570 --23192089 -642520900 -582894489 -433160306 -893242189 -212392733 -300680817 --472715902 -517220905 --181153906 -850551638 --910058425 -319228603 -962765578 --562441629 -99265560 -906499454 -776737719 -119612583 -614338910 -174836747 -665912641 -696758711 -334008760 -321665048 -496146081 --822259451 -199302042 -881783521 -551317763 --88919299 -625401161 -159878353 -951887331 --758210602 -277333322 -909198957 -554166951 -345446172 --353308549 -477175177 --925614856 -429645851 -14695913 -938390469 -668703416 -773821008 -446414570 -976959953 -73892143 -74307471 --739636777 -263614680 -929013465 -971414466 --944655736 -856096940 -192386216 -431936970 --821789120 -600640788 -110553692 -51374166 --494279431 -420393570 -891521765 -797671889 --613352484 -96734166 --262397536 -302816394 -691494329 -882132731 -503571400 -285782476 -966458042 -522734516 -886102866 -717583714 -858138039 --304132128 -374866959 -909258553 -853235929 -268194835 -514469324 -450719560 -283287459 --382685492 -56191639 -455032683 -683174661 --73177187 -431186952 -740684993 -381376086 -655037325 --186648546 -171373146 -611026829 -487318118 -982234720 --180189836 -653622890 -581141934 --458876312 -565938270 --436824334 -19207245 -557605347 -382073508 -888319540 --872773932 -720267259 -290723234 -200886451 -69180833 -795896315 --404863908 -396873641 --940020779 -16019479 -550866678 --192210878 -959981072 -60747941 --860621733 -572356172 --478025524 -36459207 --57473124 -560305004 -461007388 -494631957 -345279237 -945068229 --582540028 -531918545 --751278757 -49384918 -600667811 --638208201 -469013147 -444522260 -456440605 -89793290 -269062199 --290723234 -663676512 -204601553 -786367260 -457049833 -775252661 --36307217 -676656558 -674378570 -447342438 --805349737 -633832264 -796605462 --549801095 -157833830 -176873018 -283565393 --796871654 -970060153 -246164627 -48763953 -525039411 -15038726 --418999833 -993491660 -860326840 -783258481 --694764054 -410065489 -878247821 -882621181 -937143178 -903277003 -730670278 --143123608 -113109723 -174773069 --427698904 -854595474 -86278551 -979960155 --689896205 -510860192 -395133669 -994869808 -576564305 -534793934 --833663377 -614632403 -900391674 -513800998 -805652548 -338353928 -44717282 --267914582 -452303182 --740211443 -14218567 -221284593 -124968059 -916803810 -529703207 -900563647 --869731734 -830101350 --453813239 -577862132 -257195545 -905941616 -370153062 --580948150 -442029316 -421134433 -524090904 --784403670 -620987123 -260848260 --15038726 -714163727 --409060948 -519441445 -352893644 -753785743 -198192509 --502563685 -359342562 -804277432 -234083408 -602652170 -94316354 --485592032 -741311387 --292003948 -545314342 -237721737 -683914975 -156618731 -948011744 -642279253 -781700580 -549848301 --254772206 -302275753 -387348880 --583036779 -396375466 -86252313 -548486854 -772509248 -837584667 -105340260 --351494259 -867008512 -480592035 --900368661 -702264093 --175725320 -690648377 -521033926 -747115112 -376457743 -561329746 -38523269 --401149405 -722809553 -998444998 --478833850 -418644594 --744985767 -199569885 --979883440 -495784248 -15041088 -833560437 --546500241 -459700689 -97702270 --631677145 -610311953 -451222293 -343435736 -948909352 --832122443 -901203774 -948012655 --810531857 -898583418 -797753096 --982368663 -954491694 -119674397 -711697047 -637774766 --31661620 -897779008 -19507811 -896117347 --74472646 -160227426 --434445412 -301578912 -247627021 -760174197 -482811448 --697733091 -113551447 -559872567 -422309773 -967222648 --964195945 -105928833 --24801118 -629899527 -718175423 -186885918 -699062733 -402253335 --327799397 -252507964 --718476284 -27049231 -740983202 -167776074 -742557467 -755268147 -121894430 -619167871 -70409878 --523280553 -984762910 -487451577 -566951266 -638742397 -113287616 --456595933 -197308742 -846640302 -493217689 -491172440 --381244382 -868507823 -651701690 -454055303 -82301023 -209430274 -49812379 -627990172 -714087648 -418249894 --196014231 -68822532 --944163779 -241176733 --641780579 -91096595 -929536714 -488459249 -821676898 -367794868 -490326150 -214927784 -874881178 -270310743 -448193927 --79965842 -521190454 -739380036 -635285684 --985303923 -657065472 --158669671 -257185194 -589415831 -718300336 --685991032 -805907589 --671552375 -687646423 -503225977 -468257254 --564904288 -21678971 --699959780 -577059312 -717930571 -138327564 -749515103 --61512154 -782414979 -686794349 -799816330 -515373357 -38649733 -130111912 -546823467 -655426293 -172071505 --660699251 -433746214 --971848508 -381453828 -603196299 --943487007 -82846596 -956238166 -886769173 --944789276 -756372920 -442999901 --220929079 -647296910 --3149063 -426150796 -147486711 -252451744 -892870920 -327994243 -547676722 --294066173 -855125631 -960503865 -240824489 --755932780 -859348998 --648171973 -215659041 -645201705 --500612828 -170586540 --217145965 -698244016 -373330190 -934293633 -864214248 -499464406 -294723558 -40299958 -450736963 --646766441 -724872146 --644184489 -600817303 -964761928 --941761385 -781377055 -603356566 -736866772 -688484977 -247526928 -124763423 -85090872 -902502253 -463783529 -780738342 --286219333 -672598370 -878135279 -807495302 -461850919 --486443208 -227659666 --36767669 -519879445 -361951649 -930206205 -508859916 --357102194 -310448414 -278949536 -390992194 --221432513 -335719600 -782249075 --36070846 -836002918 -410269271 --90674883 -403525882 -100981394 --66614728 -539361439 -61936520 -344043357 -621148845 --881572661 -89105453 --544269041 -852195502 -970826253 -600566349 -352592695 -840710198 -953220603 -393009350 -519692372 -846871861 -18756311 -836513848 --505649609 -888940078 --105362846 -153696777 --112381614 -811767838 -61217124 -806828520 -994538148 -366289242 -678220996 -946870753 -473733523 -412948737 -759209363 --886340666 -606896463 --844241539 -822236135 -97157063 -187929502 -851191502 -561160608 -242301175 -985816826 -943708734 -97431196 -507921651 -44008314 --585136354 -351606954 --582655480 -542877168 --484841725 -330431701 -628847066 --928241036 -671066080 --374866959 -60764640 -142389701 --731204961 -197342431 -173801007 -881596735 -502018144 -15968508 --766521898 -792094002 -913347795 -517324691 --84071905 -121489936 -889595844 -945191223 --247627021 -133732905 -169399299 --110758561 -559805819 -123536770 --857216571 -713773295 -135855304 -527152990 --2179056 -102662768 -740711955 -740380615 --150104520 -967263156 -686337343 --741614936 -372772158 -706287290 -989011540 -536677017 -84681742 -676298558 -359763272 -835895233 --907544727 -180751972 --948877245 -691048234 -279506177 -136375640 -952581277 --954345644 -895757215 -136893828 -544704100 --237410899 -145295780 -244715144 -987408578 -286606907 -524787521 --521796453 -818435988 --442295112 -506556228 -595185564 -979471699 --826289680 -193437457 -305782154 --231989624 -636231527 -847571096 --662207590 -305449807 -816976370 --452776063 -483944731 -837698652 --994955602 -667206661 --795738793 -242046504 --299233737 -846556274 -992556881 --852786779 -913121378 -225354861 -490442880 --778599918 -81215829 -541572903 -472441504 -844870573 --525039411 -578922705 -619769904 -4573809 -799379422 -330267482 -883075859 -145567787 -969442976 -743643756 -683511472 -955068805 --71956281 -65874313 --49494295 -409775507 -197108700 -119059796 -438542024 -1551415 -480220147 --132085510 -543648787 --207847001 -172647187 -464106789 -708951918 --523072127 -231824558 --310448414 -2250227 -14795247 -960087116 -802963403 --619982110 -46026696 -340969333 --924315404 -662254166 -768029324 -861391375 -643174032 -851042772 --568122835 -856097635 --16393476 -182041702 -491119818 -131600193 --301236295 -780317839 -425855772 --913666731 -750164748 -503056368 -544818640 -724517010 -984406466 -970789918 --706602644 -304971724 -265607854 -612370349 --17548443 -858613370 -117432049 -463555537 --178867246 -956039599 -171908880 -446703102 --570163933 -172979132 --262577123 -519113909 -241961296 -917963142 --204551278 -53802113 -883265342 -358016243 --306634720 -436380897 --145295780 -584764320 -441597227 -903476582 -695295100 -897129007 -326645568 --992601884 -853730668 -926212540 -538531988 --611026829 -553819095 -553283953 -525282292 --67340172 -257210647 -324800974 --316763763 -552534581 -534747556 --260497717 -285980032 --221477822 -565168491 -694895069 -22746406 -404147236 --573234280 -816409643 -4010827 --749635185 -780078956 -372806290 -325810386 -81509200 -188862410 --848184461 -368012758 -121724769 --933450402 -326564978 -121848185 -591817056 --128230160 -211847236 -817141626 --814113938 -44378292 -517443761 -709382792 -771583174 -366506401 -833562545 --74709940 -107578481 -770569719 -708089253 -57087259 -506440403 -597582323 -967746868 -450612073 -692505962 -756707242 -457646599 --585990826 -451444055 --839768297 -482945649 -198383932 -306974537 --778445477 -247171623 -846220991 -562996676 -715387951 --936352798 -700726698 -141481649 -493609675 -390574690 --110129511 -662404770 -896537523 --99965641 -777758619 --371926222 -991232449 -874901633 -870121204 -15473422 -513777022 -764403615 -739506780 --371775286 -322702043 --478034586 -830423700 -965194478 --974328819 -408913871 --582877498 -724819890 -492632955 -61175664 -989881930 -972385296 -947075592 -755086750 -943521837 --45614406 -251708619 --786025868 -351886201 -509612997 -497484663 -386278163 -198867467 -450670044 --614632403 -375954678 -933463317 -976866372 -589389119 --965461000 -7605359 --304744390 -911845322 -136913792 -114893245 -874429802 -270728786 -314674009 -810831946 -10443242 --530903676 -20502436 -455703775 --422071640 -876012601 --140811389 -372340490 -595645262 -699231178 -140876141 --16423193 -72459810 -381861491 --922614553 -631007548 -391186795 -741779289 --599420826 -904551790 --151584684 -322302429 -182055463 -926766387 -861360802 --302987396 -205882710 --828148130 -229128250 -8863065 -759576087 -255035253 --138709942 -14485607 -891380320 -311295127 -700899570 -504119930 --306830058 -40961934 -321035161 -838526172 -336858040 --815318994 -354051974 --614338910 -651387016 -765987755 -31505644 -77806928 -768798934 --96734166 -899282369 -664611753 -324701295 --576925320 -649841207 -583597829 -817560244 -215836057 -569297861 -80217988 -309135767 -83473258 -381783526 -103302596 --204601553 -642915959 -532202950 -711110289 -134392050 --903465313 -89825959 -419414261 --898017986 -602501408 -962467811 -191286260 -364635802 -991781359 --646797088 -186273868 -374762340 -400603100 -27901745 -410927749 -549667595 -797438649 -102666653 -42949833 -621323809 --623191034 -543558562 -825970167 --592405362 -797310217 -66240910 -3856002 -916862471 -968701634 -298151696 -466195754 -348553649 -617235633 -813997861 --461923213 -279038853 --691048234 -971357117 --452399718 -208977429 -669216861 --988785023 -245060062 -805753932 -583732926 --52112985 -292310518 --617185640 -245311267 -843262259 -839026108 --512084545 -171487751 -720869569 -55708777 -791421082 -602158065 -65659143 -95523332 -61965890 -813375999 -283752268 -161420460 -639601420 --894650716 -992700751 --359977420 -739422848 -690325717 -652474844 -357125253 -60743650 -921388371 -674302700 -78138860 -335160442 -166765724 -156556247 --793760015 -92468905 -930238258 -28582884 -688909003 -324157479 -938940323 -638565414 -782373370 -197415004 --683452092 -475847410 -431731859 -128175952 -489240379 -130823349 -139933694 --260662535 -316620412 -317131591 --517220905 -634069848 --867690731 -383340939 -843668481 -411596816 -376326796 --669664431 -227391600 -783252908 --668703416 -954146475 -799742163 -230336812 -348728653 --370593683 -714603082 -84035771 -27890889 --441190831 -577383549 -343234534 --102666653 -719297472 -232198780 -582871536 -140304673 --475110018 -680425815 -628116767 -662813205 --463881843 -162113593 --964133960 -705021763 --113425868 -649499466 -484919881 -432108475 -635917631 -554722432 -41861411 -58108423 -661748624 --185340322 -37310761 --748809238 -547297899 --239079132 -746233683 -175076619 --693861888 -838146803 --656262134 -520469138 -873505246 -907889903 -666703233 -635980087 -699723335 -665760560 -206733114 -993901946 -745212317 --588539935 -183183433 -274465183 -573030960 -126273713 -370458110 -761311849 --490906331 -575002241 -645077344 -807549267 -881894367 -869389909 -475946893 --228073357 -778853499 --302816394 -111546596 --297381628 -939703975 -845777193 -722138161 -485569447 -622761684 -891679657 -401443663 -85295931 --134842042 -2706811 -235562579 -247308562 -505986700 --31825750 -71655219 -299148109 --548423362 -823314933 --690868098 -145701887 --109744812 -340508121 --648231704 -621521157 -701056026 --944987451 -644570078 --848379027 -195138658 -216320936 --813808969 -781165488 --939152472 -268823809 -129926932 --11833832 -614333518 -988088179 -301258974 -743612990 -374735211 -861609729 -641029250 -631583018 --647326105 -316386602 --908339126 -237940435 -635561632 --950611772 -449651674 -14292756 --262985614 -891389787 -837713311 -94631003 -273526206 -262866159 --586870625 -900114462 --855002889 -368905912 --390828499 -98432664 -525765393 --425572771 -419860793 -814988801 -523437398 -405829386 --422312482 -352633894 -819028469 -753181243 -336493641 -732549284 -57144680 --426150796 -602165901 -14724733 -91942048 --326653703 -347417730 -947788260 --885514202 -281421736 --369538476 -431268138 -407808293 -396113643 -458725281 --475540933 -256760853 -749401436 -463147665 -572321039 --2250227 -564363368 -128404927 --215061881 -656227336 --155446998 -176698988 -655542859 -278129842 --597409852 -420868054 --438722866 -637383889 -479314552 -584140528 -575929384 -768661920 --876699854 -574171161 --787283402 -256695489 -723803659 -166698933 -542993484 -387003535 --355736401 -329299207 -658198626 -246371658 -716279630 -548732519 -286961082 --301294195 -94254690 -933521756 -947568401 -777865029 --799379422 -102859061 -940845663 --634658942 -853817756 -777198185 --67279969 -940828736 -458182820 -751702134 -326692552 -290023023 -116915824 -434844456 -25665253 -692046685 --388281274 -565986487 -583502505 -337903748 -655984750 --496037491 -293155500 -142036540 --923156973 -158002853 --257210647 -452992804 --726777976 -514330606 -431297402 -893882131 --256760853 -987610756 -954351403 -910325235 --418506389 -141041615 -96784529 -241212905 -91606806 -469121238 --479689619 -458737358 -258862961 -300092219 --713314363 -504143404 -907566602 --357290739 -379946949 -843916492 -258451888 -749041351 -589760944 -747575353 -485307241 -361907571 --252083568 -988542317 -544412589 -785861186 -915729472 -906615137 -599237417 --344043357 -463656884 -638103854 -288097445 -580427289 -257821831 -82026547 -550981149 -584059628 -848211069 -408094754 -210488234 -947990703 -269443394 --901892155 -898382073 -831843499 --725102949 -501540167 -1637503 -541800779 --322795338 -603969512 -111769864 --907091697 -766824216 -316102248 --483818702 -766309083 -111492695 -508562372 -48171407 -143026623 -962700791 --507921651 -730940517 --494696688 -455752546 -189228235 -214539704 -974220909 --324157479 -992950856 -946669218 -702728086 -785257516 --975307246 -513947455 -998540652 --927394773 -626062223 -482599174 -826186831 -235997534 -749731655 --367379704 -815953587 -976612994 -814552631 -528547029 -643168000 --404147236 -558435207 -162012760 -383233778 -760414945 -303185906 -410605409 -339427158 -823845997 -576765502 --32963141 -645789824 --827356214 -114039573 -788185511 -609544824 -612838056 -351882008 -182491112 -168321115 -662519544 -920496641 -548869329 --534651094 -463540504 -663835846 -132458449 -596399321 -354310873 -440303383 -4279137 --17654973 -464556192 --311214308 -571481210 -351318449 -419224345 -176042945 --617821643 -845741469 --95067262 -762076186 --865923330 -100113384 -661997654 --746233683 -589999580 --37841840 -870829686 -603352068 -839897819 --974342444 -202392617 -480738660 -439484935 -824403781 -167514117 --698229961 -354957049 -37618662 -80069943 --517167668 -439713605 -355049354 -431152734 -170582807 -286803017 -145864224 -938624469 -325449460 -524335610 --684276557 -530658083 -560450926 -357965195 -548556045 -367268681 -956017622 --708076261 -217598617 -982823198 --708341124 -190023250 -852171437 -661538822 -485486810 -662967616 -513051907 --881312797 -914212393 --978822897 -159760960 --777363563 -700195923 -455864057 -439064118 -965968080 --867008512 -490498718 -339654883 -354232541 -829596569 -869148136 -632339982 --739055041 -933521862 -746618222 -350498430 -919428742 -583845517 -125867484 --792751892 -592720712 --92282789 -482477472 -973095234 --266956558 -30757503 -738620076 -508443630 -474363932 -841154794 -615822059 -493263968 -961785712 --690094431 -515739189 -384510501 --806485825 -353476596 -669904464 -260440345 -469394954 --686022383 -156738108 -421810115 --236352437 -69783242 -431286617 --9961830 -887115281 -923456682 --530904221 -649809794 -426325239 -680794432 -218658590 -589043922 -626923738 -559054609 --130630435 -113832869 -154488797 --994538148 -36480276 -900115636 --492632955 -304119317 --754093090 -924594279 -996164545 --708920240 -318129600 -933995971 --843776170 -136157761 -832694733 -164250392 -925713061 -992067178 --561987534 -270845505 --257821831 -202634820 --491711116 -230436 -285531521 -290025118 -895987617 -408951466 -745249739 --950314786 -938660051 -207167339 -948304087 --865133807 -201146298 --144387210 -507283525 -469734768 -654842345 -115719450 --608449512 -401330108 -979052810 -453516305 --845777193 -836020598 --533770528 -758871489 -515295833 --980654784 -222914587 -590944284 --491390224 -135916571 -674383471 -702264103 -500576403 -361995532 -955464965 -852282161 -932893641 --475318593 -839624671 --216069311 -573074704 --598289616 -127515190 -973648373 --248100758 -259887843 --504143404 -974839500 -336112330 -172439441 -104127041 -729351435 -67000550 -21052183 --992125034 -446610383 -971401923 -654658785 --740793561 -218586984 --322162344 -434330339 -560381552 --445089841 -192772231 -324231224 -814197096 --998540652 -644872520 -321915648 --94657975 -959308672 -546693515 --698224066 -257216666 -233952262 --972542261 -173155303 -422898721 --714087648 -463963953 -888179607 --803467150 -674618422 -853790798 --348988747 -31841110 --979052810 -1389495 -644557952 -882995567 -464259173 -364730012 -340912985 -869709935 -991648940 --954491694 -821769134 --2758317 -974803658 --61592004 -33819922 --572468480 -820288604 --494444585 -105104743 -579224156 -231206701 -805150522 -100294156 -217287685 --921242683 -164294119 --230362921 -107888503 -998237909 -55064081 -627481382 -163534422 -458308437 --652474844 -996266003 -502682417 -555486178 -190315183 -903956798 -625229985 -599614241 --761878178 -470720979 --699231178 -563501929 --62674866 -696939252 -448682984 -911298576 -270566742 -476329696 --724096894 -88821739 -359909951 -715959418 -229532401 -599331258 -681094931 -650469750 -791061448 --817213233 -132328014 -487461564 -472016749 --551317763 -377428927 -763700514 --608660963 -66344522 -720728752 -62053798 -63573276 -816665302 --559146202 -988096771 -73937399 -335123138 --247308562 -970377694 --599960505 -828514217 -971230130 -591445983 -68673321 -586221271 --126911983 -631115922 -293139121 --859856504 -612092540 -181231899 --233692432 -560580796 -179896037 -66113069 -962804334 --175076619 -362075209 -523825793 -106618037 -839931285 -3660799 --308770901 -637400541 -516488051 --747313013 -893611402 -873566075 --304691636 -460373492 -963389033 -608358568 -741791684 -789750010 -483225247 --558281917 -964516809 --399799834 -356206185 -289531211 -148405217 --111492695 -793136765 --217382523 -40645439 -780085997 -33345591 --266674476 -241493785 -960516155 -347359334 -797188482 --617235633 -177607326 --168609016 -917840276 -172100580 --968686758 -27787597 -256708137 --421330405 -211897874 -207657246 --988304402 -995023886 -364513013 -342720071 --937211843 -627950149 -484046000 -427469685 -79353194 -929229521 -898139432 --661538822 -420025841 --233952262 -728822086 -146291595 --420025841 -28958741 -665925158 -993015682 --156738108 -425364448 -125670247 -387824589 -460269154 -133835543 --72459810 -734282630 -910042987 -502395961 -378146741 -937610631 -379914097 -202186584 -534032908 -24376025 -313203281 -383280858 -404672268 -14021708 --901145306 -268820335 --544818640 -416244511 -628851442 --927408274 -16781759 --723803659 -948047380 -438486374 -55903886 -452828225 -137049182 -499110246 -985958319 -23878249 -252320649 -876190950 --494598824 -607024705 -990864945 -238353009 -555985202 -146790830 -827699733 -654259231 -435737698 -175866766 -132850832 -909265698 -832279357 -631121357 --131600193 -129125014 -305674752 -79783170 -186751167 -598955348 --735735664 -230223351 --389702790 -700763264 -709299813 --58905174 -532523716 -251372664 -322054219 -733283968 -778543284 --891190080 -588421008 --851191502 -521482212 -943723975 -598932002 -804465832 -928603880 --206164551 -167156107 -287445403 -12916121 -835676298 --426145590 -412671075 -831318474 --820058222 -86505572 --810179184 -596315510 -659514180 --704907892 -586490945 --85675662 -18534977 --83248332 -151189264 --675595637 -386522202 --243861191 -724822098 -618099790 -462497472 --876856329 -937056989 -130446752 --73892143 -655456437 -435084795 -258254012 --866766178 -97856871 -700683031 -460022853 -879504666 -605170581 -605122576 --797188482 -207011193 --278484953 -594671305 -914245958 -798118253 -811227317 -984606932 --22305038 -269059254 -924087295 -225790635 -247486227 -2407237 -520277279 --600213207 -323486124 -8902177 -766418519 -537557000 --61217124 -510438356 -625961664 -337097220 -536388419 -441035531 -592791865 --352348949 -767621178 -132061526 --15035536 -119705193 --836002918 -144101072 --366133169 -740204387 -601497820 -908292540 -931886165 --227576556 -753622278 -308512288 -601550245 -934607616 -201558341 -354188007 --167233602 -506334492 -312365873 --405868287 -122702326 --875730570 -355164962 --723416020 -587764882 -955646683 -910182638 -451173819 -649014857 -383941847 --812950338 -366557307 -362155590 -770157254 -243318741 -664711391 -101602539 --112369183 -348896793 --817141626 -276884295 --45622082 -869974453 --905941616 -880441608 --104858375 -274584221 --712491543 -614980123 --437807489 -38646296 -365708010 --784724598 -491305325 --694386264 -91875227 -806111925 --447225292 -327995857 -297472518 -590411539 --780085997 -132795910 -168106556 -968682404 -330616446 -759905842 --163997267 -516159335 --817047006 -760009559 -751086375 --650737351 -36753367 -388934576 -20386663 --285196332 -650621408 -883811275 -41153304 -462798010 --136595811 -964066755 -62142596 -484611790 -463513930 -607682095 -736394420 -955467606 -746292568 --523592971 -195892397 --702264093 -292349124 --122108633 -437769395 -991770222 -587105848 -794891824 -16229829 --247868762 -723959794 --762086442 -652548291 --956475996 -721513859 -494100431 -777890524 -344830995 -400764436 --126273713 -172414467 --186716964 -417040800 -451400476 -8673086 -703753136 -823254582 -422024608 -13914048 -333091096 -445210608 -575437029 --226005704 -429748177 --241176733 -767283844 -79810785 -899187570 -856862106 -807386998 -943153454 -77997543 -81804548 -34658838 -857273801 -289394902 -406283114 --872038789 -397470132 -561095442 --113414589 -914127945 -428968572 --457684068 -435864845 -364745955 -873959044 -480649572 -965319759 -23564046 --308512288 -189451671 -238060082 --48305037 -105983 -140637568 --777457790 -683302813 -645884877 -241466320 -731086426 -676140379 -116430427 --987408578 -551606947 -522435434 --918418702 -649034920 --637863261 -865659354 -582110876 --696157232 -223557934 -31240274 --340508121 -963436925 -560213590 -145684341 -368165000 --672597677 -756403936 -135191646 -932949816 --647296910 -217074384 -369329414 -35539247 --503056368 -123094671 --789438414 -888165042 --638103854 -856531162 --823440037 -823552346 --373864416 -181909011 --609264585 -378529776 -91982063 -82012169 -611618486 -51594582 -273217206 -192068748 -271228947 --644557952 -365340198 --112580434 -474342744 -142828698 -298923891 --266651515 -6730454 --672572780 -240799995 -71293198 -763875003 -816616511 -599226360 -706513250 -362305661 --79214874 -522939101 -353524256 -878306954 --463798816 -386504071 -876813313 -555830483 -407616755 --331849412 -790564303 --289820755 -468227709 -603451196 -648581379 -65459307 -425680165 --81215829 -519525808 -384057436 --615301665 -968937904 -554774553 -198938451 -126277658 --189451671 -600494901 --64457612 -154881759 -223029966 -194600949 --26933777 -223018837 -473830435 -761084661 -488133577 --318083349 -696590771 --835263340 -129406514 -640557711 -952792932 --600469439 -665922934 --23924067 -698157404 --923056574 -705126946 --950881718 -837569137 -812276604 --420393570 -339388487 --978216032 -782752502 -142467349 -700035951 -579890006 --482388023 -256731510 --441501153 -250405509 --643072392 -326481319 -391181937 -224616926 --8561267 -304132271 -238397748 --202934190 -921868793 -23523160 -359757767 --509612997 -66925096 -893488366 -341047219 -938928314 -750228587 -785452459 -67405609 --263859574 -300613248 --439064118 -210572732 --567189774 -414980654 -781938410 -831516729 -324957510 -684094693 --535072335 -685278114 --75165813 -983347301 --293139121 -438182444 --506553905 -509279458 -191391395 -186154186 --104890743 -952656908 -390303181 --55898564 -44320609 -318191113 -590311382 -630225867 -566316881 -844411130 --597582323 -831070698 --447125151 -508333706 -341586642 -847129528 -130952033 -729688789 -165335170 -980757870 -929597041 -206073853 -823082164 -785325554 -624617263 -929893075 --527486678 -328457358 -408291985 -3321074 -132859363 --414980654 -181851917 -590620954 -520762696 --395473808 -591841845 -193843540 --618099790 -721525886 --964066755 -421563558 -417372158 -161466127 --306914024 -866222423 -668863226 -238788169 -625414149 -190186518 --457974552 -241480706 --655574421 -274892065 -577956828 --441911682 -893147805 -26905509 -993370301 --231983288 -472039324 -730688710 --922773236 -408697448 --930206205 -815945716 -647880208 -888559586 --872557835 -225035390 -513175150 -934399250 -146595457 -959538708 -273224623 --846229870 -742128389 --15473422 -648290140 -419233654 -117061271 -255805859 -914901428 -645009699 -986640437 --600667811 -325508250 -315571023 -365746106 -658944505 -233656728 -497199483 --717562393 -379317086 -509772983 -908405660 --717306776 -246556970 --811312220 -176357937 -446160038 --187699383 -306712775 -927359365 -840129119 -943226987 -9807556 -355228923 -597756762 -275092260 -594350989 -390770856 -308547268 -649329541 --966971291 -483953600 -416956865 -175983449 -484777624 --971401923 -247067625 -167743860 -77210702 -870731971 -405445540 -896586083 --307948295 -968938720 -502975846 -747956348 -71537050 -402250735 -565429704 -528706256 --319239984 -3016322 -192945788 -395664811 -309655224 -362380150 -674117631 --175866766 -165437208 -79882310 -522738557 --671025890 -87179994 -459934928 -856355200 -586955499 --930733162 -928737619 --476770154 -230825564 -579775600 -970910570 -169264290 -32672277 -813394510 -161598821 --327994243 -951213538 -679137725 -312736685 -953500047 --995450508 -205012751 -94786119 --802205029 -103658047 --693985711 -482530818 -945223719 --140443714 -358646143 -510807610 -815567308 -153906556 --666000113 -944918122 -253174361 --999244149 -584049638 -488474711 -955308835 --534910531 -25484087 -724358844 -32460774 --978204245 -750754668 -173615870 -26783113 -29564537 -788155049 -226148704 --510438356 -61129938 -487726809 -414092230 -198510222 -583445903 -935367556 -895229706 -436147804 --161640203 -604547610 --313203281 -773106153 -43219603 -518740605 -122794711 -974861532 -69293514 --98078390 -73750575 -516672711 -912835406 -111938917 -430897484 --893242189 -190269684 --531753916 -928098367 -433378941 -491715561 -831385276 -588755241 -678165281 --451232210 -92228941 -671670029 --590565392 -9315279 --127568831 -774558872 -292421097 -169762893 --610068661 -583758558 --915729472 -718088944 --119953461 -418829146 -752622468 -688707315 --653061760 -459941438 -251434948 -335382428 -813370137 -309164825 -514247522 --534253718 -502106465 -883408481 --831717781 -50154703 --569297861 -230067110 -144334405 --729623421 -596296595 -583864444 --225812696 -228513562 -13510975 -635499120 --956238166 -245959059 --471156602 -458419608 --491841080 -171915791 -855381915 -516426994 -320640667 -874159427 -548810042 -28401900 -417592780 -210547150 --532727675 -595565639 --182468785 -158319277 -679969264 --789952773 -483702171 -688454405 -321483210 -441664423 -842682331 -101342025 -274249942 -387789871 -305800431 -584060656 --908208611 -556744465 --906802130 -835621646 --814932593 -247389156 -691541496 -226578788 -728696942 --883284667 -871673897 --264232388 -141688054 -364378359 -879723157 -917246935 -295935387 -434699379 -925801004 --185897267 -524342163 -389394831 -411449264 -777100514 --887557589 -260455319 -511978163 -192652260 --659691424 -53171139 -499751403 --683555291 -76373010 -489193859 -150536261 -434395539 --152746720 -422305661 --710009899 -861549361 -192277656 -710820075 -236311966 -699332998 -525565333 -684366668 -450810872 --253209404 -719856241 --701056026 -517483216 -192698780 -545301799 -966490200 -446760147 --410108338 -246981193 -73529151 --791695224 -727742367 -491361879 --242685631 -120686017 -745127396 -149220521 -502681617 -216887330 -970473965 -23880562 --910517843 -506724826 -542967348 -383310727 -349349763 --224918149 -28873667 -340670190 -157774961 -590394961 -38366770 -677264992 -820050680 -244730918 -103414972 --113713401 -906899619 -76168510 -274048708 -261473076 -702365466 -887833111 -661061297 --480649572 -526876546 -825106269 -709211496 -281630503 -148121907 -263642838 --620987123 -247168490 -299892619 -868697783 -778688628 -908987365 -909823629 -758198096 -455263426 --578795897 -188424291 -755208280 -772201537 --872165435 -970320327 -997195993 -371173892 --550862534 -117395250 -120428928 -493730916 -281680805 -112227618 -117907695 -443231281 -848740574 -442329887 -135890912 -215803373 -663874739 -198180581 -919759982 -783903035 -262836759 --317086229 -501712501 -620283282 --479334706 -272013663 -205953793 --170990689 -443645502 --24904589 -365029508 -706503608 -19980779 -579465909 --177357005 -348187827 -76132935 -358458551 -542815079 --482477472 -558204294 -789918966 -17180042 --395133669 -245974547 -427540493 -369520866 -186415547 -578053440 --530658083 -858181558 --951887331 -43654724 -826330117 -496829674 -956687546 -697009892 --727773716 -540656224 -985513480 -264597339 -361148907 -855385016 -437148831 -430346409 -887789054 --826112835 -30458214 --714845998 -954271251 -673534449 -613798233 -923007646 -678972902 -887620818 -845122644 --580394971 -648872205 --389394831 -855548908 --955308835 -471260755 --680613344 -283030913 -801114529 -439537677 --475391141 -686711833 --643070437 -745177599 --974573579 -520799710 -693003416 -18946765 -822565205 --501540167 -706841666 -183854665 --548810042 -379989589 -962518561 -607975664 -539151217 -724152440 -523632796 --30757503 -270108989 -776536115 --643168000 -621288316 -466849336 -84721857 -651895519 -987700492 --516488051 -6118871 -729000049 -16911501 --959933305 -79980954 -775018367 -88102124 -693064717 --124763423 -922584151 --191286260 -715397632 -74932642 --771583174 -709468194 -31731439 -608214702 --132061526 -417825539 -677853643 -983991993 -862868306 -245423163 --37618662 -761048952 -130867486 --317319484 -887461734 -948655904 --693003416 -78281840 -572236418 --120051531 -483923163 --51562495 -838839860 --125217142 -312280051 -754153058 -490956959 --559805819 -601957666 -732013793 --41982343 -560727630 -229603255 --670818728 -237155076 -273588860 --845574657 -503069174 --92987557 -732603138 --332717924 -659034399 -41631160 -142354512 -241461152 -193755610 -62324734 --84611256 -70393439 --953342966 -365472096 --950255259 -842319745 -561691858 -585644956 -137199630 --14795247 -138211350 -654740555 -873316841 -19450682 -500126331 -268449866 -496302486 -620119860 -592739289 -569084205 -355186163 -713615016 -455868169 --878306954 -786099439 -536472621 -509949962 -164334626 --637774766 -84246618 -129107133 -654117223 --910325235 -891536821 --669627284 -36527584 --41378445 -107822146 --856062681 -710778329 -619165435 -353110760 -702580325 -582781462 --945068229 -177417378 --76373010 -712435537 -210208436 -109863629 -556145662 --757257026 -901247843 --136090224 -781952946 -920051480 --524090904 -424900558 -614223206 --69188203 -232367478 -709430535 --705492879 -66289987 -324922834 -992649240 -243334229 -369723033 -933637459 -332740798 --523312690 -480620297 -691965575 --555309481 -655346533 -692207186 --638565414 -279903288 -138008041 --339055071 -392763400 -880013038 --542488961 -887915332 --537499793 -971758970 --344868807 -804128323 -943737147 --777302595 -681747084 --281630503 -412009623 -928066752 -965864915 -904785988 -419497546 -631407336 -14512405 -914744823 --964516809 -93864902 --247168490 -878784633 -282425521 --337170486 -954004576 --684685470 -416505596 -8157024 -755702307 -309396972 --484721355 -197902403 --259887843 -401632008 --749732582 -216717615 -929103011 -192877781 -242920149 -10355903 -518862057 --893802698 -880668364 --649304648 -418396531 -775525478 -784404696 -839882897 -535452768 --496891556 -506564505 -198091956 -793521610 -119387599 -606138897 -844809101 -380779404 --13397909 -96771425 -236199810 --726889811 -846678028 -793785431 -536576503 -201253111 -537050888 -907760765 --943737147 -671171810 -722349023 -987778986 -291523968 -590701742 -493848343 --962765578 -915347719 -958671487 --180004268 -583061734 --778980571 -407898404 -796893529 -968994804 --128377509 -645639851 -325470611 -655730542 -357238309 -471392435 --84243154 -859985418 -488314449 -303893343 -104813747 --433497297 -128720355 -87457744 --418300232 -504931539 --908910278 -38955971 --86280859 -777917803 -494730120 -53864268 -627248336 -867796898 -448655513 -390753649 -710565110 --564818587 -49874444 -271493183 -158449942 --150309837 -470671703 --315775794 -794274998 -515370854 -937849944 --32672277 -722469651 --614911454 -952960596 --625414149 -674909300 -515122382 -266148733 -442250309 -615734391 --224616926 -84486152 -448102235 -749168832 --247526928 -311694507 -885429783 -695863631 -815427946 -656340496 -269714768 -675508085 --758467875 -213307415 -352214175 --62142596 -931315020 -963487794 -271245602 -695853613 --502681617 -355564996 --105340260 -197166823 --468450425 -268736907 -344832929 -531879373 -879919668 -887821223 --609780012 -858506105 -757460089 --391381749 -96441234 --655702646 -297916694 -177906224 --545310186 -835856631 -434144193 --327723159 -253181621 -817765369 --957863660 --95523332 --232367478 --364635802 --22603366 --990834910 --491127637 --1389495 --16781759 --454873713 --581765743 --826186831 --798118253 --53165161 --924795683 --7658811 --592521124 --23523160 --255805859 --207348423 --258451888 --146481672 --92228941 --49384918 --183419362 --498044609 --988069339 --10355903 --786099439 --158454842 --953500047 --544784472 --923068312 --142389833 --160397950 --264597339 --390992194 --748424154 --64215330 --26783113 --854292814 --309135767 --145649480 --954271251 --193437457 --242920149 --995283297 --349424866 --646087654 --220400396 --470712476 --491536985 --182896965 --750459420 --556324628 --189683259 --554791198 --473832359 --394642226 --419750643 --929185385 --637383889 --711697047 --473480636 --615573702 --416125316 --772028936 --412683941 --965194478 --973095234 --569404337 --241252544 --739299258 --227725648 --937056989 --805150522 --14512405 --731477446 --191145827 --836468186 --674146858 --680783492 --405978022 --570561714 --311295127 --759658829 --983398376 --906363928 --503286056 --619993006 --320073064 --730382753 --598955348 --902878742 --169494532 --875746577 --741791684 --205599414 --222914587 --131462306 --234019110 --764168300 --147576401 --90568819 --169551149 --580776043 --623225525 --992855858 --571050936 --208362332 --843670030 --84443694 --487136752 --386504071 --756403936 --322173933 --880441608 --137979274 --416405706 --610084109 --932072370 --847968846 --218394942 --224618935 --246672984 --348382397 --682502096 --226785256 --89692032 --604794557 --423758102 --505986700 --790343332 --274465183 --234083408 --404672268 --903897528 --135639064 --703323815 --327140032 --881991256 --556744465 --513800998 --958295568 --235507351 --850551638 --579483066 --586876894 --123094671 --207657818 --400260954 --899187570 --308921229 --311099440 --435737698 --438303012 --865939725 --33098902 --968560716 --230067110 --376457743 --659034399 --234641100 --717148981 --323164678 --524342163 --245529393 --780078956 --833339949 --848740574 --503069174 --333355026 --181290884 --530009209 --521874801 --487931442 --839931285 --873717845 --390569950 --473830435 --355186163 --270909612 --476527164 --629993233 --55708777 --204830580 --706513250 --199830624 --177607326 --524312076 --749401436 --997724923 --942302583 --463147665 --182354505 --142236800 --121848185 --624617263 --326653794 --156006579 --361310324 --54408206 --35627759 --746292568 --964577241 --590411539 --788155049 --44378292 --451333069 --672257247 --506724826 --189047844 --903297408 --585421611 --972644129 --705016801 --952960596 --89590749 --501028608 --753123890 --993015682 --13826188 --173061912 --502682417 --368165000 --607894559 --286027006 --755702307 --473021466 --343050147 --294270271 --985816826 --458737358 --217197154 --318129600 --572236418 --365708010 --757615157 --906034973 --21052183 --205882710 --934399250 --837405011 --325888132 --810206710 --811157440 --553092586 --880013038 --520799710 --75927855 --213307415 --678542570 --710399027 --377182429 --924850039 --515765161 --904785988 --717147219 --681443179 --197108700 --4016877 --66158239 --93881134 --635616926 --84119989 --419414261 --383310727 --858657438 --172359939 --105112345 --773939627 --855474228 --465179223 --487591179 --306712775 --896181541 --687528674 --147889748 --41966187 --22118413 --354232541 --710565110 --3856002 --660039205 --124627978 --621148845 --250405509 --323735952 --755552643 --336112330 --217287685 --5033585 --982562473 --45520655 --835621646 --844809101 --659071396 --341087242 --820803965 --623963254 --230822632 --217598617 --18373600 --359909951 --584764320 --25688386 --629630305 --2824817 --767998481 --401330108 --226429361 --466195754 --824785506 --37310761 --680100235 --537691676 --407259324 --634069848 --805589861 --660137905 --21678971 --826964853 --661997654 --700874804 --601615554 --970377694 --670172561 --53864268 --520250290 --477175177 --490492447 --976675097 --537050888 --572356172 --327511175 --298679527 --829596569 --792492210 --233656728 --554522653 --158319277 --520087013 --955556545 --29069594 --801348076 --441036565 --916657711 --234977507 --413054124 --557730538 --909229437 --391186795 --247936493 --220732409 --132498061 --561329746 --558597795 --415491063 --314017600 --597756762 --709382792 --314282719 --425676404 --129107133 --793809278 --967505239 --324173345 --202392617 --561577161 --745440526 --916326429 --297472518 --859348998 --383280858 --301258974 --921286279 --949651113 --594350989 --315839527 --353137186 --753785743 --817765369 --995729304 --555275654 --230825564 --541572903 --460269154 --858515037 --771107855 --13639795 --910826409 --365472096 --207714960 --885429783 --273224623 --579445397 --731786022 --746865993 --631115922 --229603255 --778448888 --263642838 --324259608 --911026450 --309655224 --785096987 --922584151 --898139432 --75065670 --88907872 --417825539 --315349145 --345852992 --464541770 --193494557 --22279757 --283565393 --175614 --70304661 --376107825 --367555450 --42949833 --845783772 --732933921 --613790873 --813454660 --683302813 --649034920 --335615894 --192945788 --627374799 --896812411 --962793530 --700195923 --427586395 --475563375 --307241017 --763656858 --464859578 --31841110 --376486806 --955068805 --417592780 --592720712 --780645492 --296393170 --795071511 --546542782 --694416734 --529644441 --241461152 --823511644 --506293601 --554774553 --207011193 --423273825 --140798766 --516426994 --27451878 --347716789 --171361361 --480592035 --394554113 --931591136 --855381915 --662967616 --216450942 --747583373 --636134836 --96320177 --940226218 --141481649 --97157063 --35539247 --864223040 --966067028 --355100957 --590394961 --680824987 --124413174 --762830304 --317158632 --582097516 --735306497 --39208031 --923286026 --279249608 --642669072 --425337276 --491715561 --462898111 --234767877 --953397863 --323930800 --491355631 --774812988 --93086534 --359763272 --891173737 --199302042 --911298576 --286534620 --260448352 --543648787 --421841891 --945331970 --531340589 --655519238 --88959186 --577469181 --626062223 --197627188 --416347049 --142723030 --607066078 --580411989 --582894489 --225506430 --705126946 --620639636 --375804958 --703737875 --493335644 --510860192 --124968059 --840487368 --113109723 --848628795 --826394626 --814932144 --358215341 --136128232 --492347466 --550887615 --525726365 --688909003 --785257516 --791421082 --312736685 --228906143 --791551369 --543689389 --147531646 --761546923 --671803124 --430152817 --621244814 --143176069 --393694455 --423686117 --652103966 --119508778 --763622027 --443577641 --619362552 --353137664 --560450926 --494100431 --29816648 --142356391 --883408481 --709211496 --93402152 --929272294 --444522260 --646290204 --466065585 --356206185 --773191540 --98427475 --738650576 --547345778 --504733188 --419385078 --880114184 --111288292 --321248532 --618838536 --252476440 --993127331 --931073076 --96441234 --421563558 --683064068 --858138039 --913373739 --434252422 --775525478 --632253032 --447342438 --117432049 --986392509 --827190541 --260902473 --231182852 --998444998 --384707997 --257844136 --700683031 --107513259 --507837112 --156914856 --953829038 --770157254 --320640667 --912835406 --261970068 --579890006 --642126615 --698348816 --893488366 --183183433 --960503865 --962518561 --140592016 --831340305 --916163943 --678042310 --653610646 --178007029 --741378000 --710165440 --527527672 --924731897 --132850832 --846678028 --36527584 --182252161 --737223329 --364404219 --239449917 --78637628 --943153454 --31731439 --632457417 --807878729 --246981193 --753904775 --403525882 --901450777 --600566349 --952220481 --671895469 --813370137 --546417647 --347364652 --366329035 --485452965 --443415332 --975849913 --94200789 --698244016 --968682404 --259232231 --396113643 --956030366 --998919027 --987038834 --539702671 --247067625 --148257567 --279506177 --112047848 --398124750 --483927529 --902064358 --687039112 --892529759 --77268037 --985958319 --420668507 --62934291 --264863434 --997669468 --454259476 --846640302 --651148156 --591445983 --586366704 --276424491 --353110760 --119223216 --901166704 --766309083 --868294320 --400532441 --546988071 --279704631 --490750506 --191464740 --593545137 --172647187 --4708492 --559292523 --559872567 --27525838 --511765593 --846220991 --891679657 --778853499 --832694733 --552097965 --947990703 --546186649 --777100514 --625884163 --503793640 --162179666 --572430043 --407418123 --747859173 --676140379 --253433137 --368012758 --352633894 --441345227 --591817056 --583765717 --1232478 --579279678 --583502505 --438486374 --330564073 --720821779 --831070698 --959716259 --230336812 --565986487 --333211749 --543057912 --211190892 --164796818 --729097700 --907085797 --641557994 --485248571 --817038297 --408343577 --858927325 --48536791 --799672486 --825970167 --911540239 --960637087 --106381342 --529697005 --732700019 --124413888 --568626812 --641044218 --415692246 --931376933 --364730012 --349349763 --48201297 --924585647 --283287459 --201122654 --384444034 --992379228 --634058733 --474999074 --674378570 --721513859 --525282292 --541800779 --445677974 --986720527 --854769135 --408602126 --266191979 --352893644 --604200684 --566047523 --198054013 --943521837 --794015696 --214049788 --590620954 --453320245 --569084205 --329299207 --822565205 --791528979 --647580197 --957885737 --313480045 --898676150 --243485607 --332740798 --423555904 --314572437 --601497820 --93491853 --586955499 --493848343 --746618222 --536360389 --681094931 --506173707 --910042987 --236630667 --352698019 --976055323 --9520785 --527152990 --207657246 --365668986 --613246315 --714163727 --30376183 --380848285 --547510857 --982628891 --720570814 --663033820 --623067997 --398382943 --187752815 --198938451 --369723033 --866374838 --295231220 --186415547 --7605359 --147203474 --27890889 --350871067 --430314823 --391891648 --648024677 --548152228 --783252908 --43087850 --439404685 --328457358 --519042561 --438830677 --366008990 --599903626 --878228236 --339091860 --446414570 --245060062 --217194636 --504931539 --896578013 --279771249 --683914975 --328822747 --518862057 --398463132 --156618731 --668001124 --134190881 --962814654 --645884877 --893957080 --998572026 --144334405 --908405660 --24376025 --562083287 --578269718 --274470837 --425855772 --296457136 --652983549 --676411959 --227473595 --840388299 --270454119 --325831427 --72552834 --948654090 --562155269 --371877203 --220763576 --869968355 --503571400 --608074822 --339605450 --842959884 --589485895 --721525886 --709430535 --145465614 --94316354 --694757994 --823845997 --605141386 --203586253 --683355383 --245974547 --606138897 --305726 --972697385 --830160017 --515678499 --992664719 --389086517 --140637568 --39345940 --586136285 --508104764 --453516305 --48059079 --260848260 --295066400 --204509115 --100113384 --167514117 --720728752 --25484087 --654350194 --37220930 --635499120 --18411625 --603352068 --96771425 --771540072 --572156158 --679379931 --954146475 --410605409 --785452459 --548744636 --388934576 --674909300 --190269684 --446766201 --585322948 --110553692 --708345182 --493263968 --797438649 --495784248 --18479630 --118746902 --212392733 --220760349 --582229282 --487815029 --264350340 --211029773 --602457251 --928603880 --147486711 --849130306 --715746304 --235945050 --218560400 --552437006 --117343594 --869709935 --818074314 --88389897 --664711391 --603969512 --948012655 --524463906 --572440043 --451724497 --575002241 --429098435 --93891299 --358742618 --373330190 --183146607 --60743650 --39643123 --898424007 --662813205 --525765393 --878561119 --91600998 --191592489 --814197096 --986640437 --197342431 --979276508 --62273323 --105813399 --48729918 --914165560 --799283682 --484172181 --43643435 --394954637 --697562537 --529609334 --831338163 --950517355 --359454974 --122794711 --483923163 --688707315 --61965890 --976081542 --790415482 --62641790 --837241201 --644872520 --763633128 --53492392 --478766158 --341943058 --160367444 --159064783 --560381552 --483286610 --336493641 --790498439 --137199630 --677264992 --371708943 --927677271 --537213894 --431268138 --149978328 --290936550 --769235204 --944888504 --203792039 --203908843 --301730969 --268871470 --990864945 --600817303 --461850919 --169264290 --422399466 --883866885 --7028108 --645457377 --664963473 --592362681 --515495171 --96720862 --508956107 --592644485 --338322730 --933841814 --317131591 --423927332 --599331258 --32111944 --646722805 --650621408 --680288741 --479550815 --505775029 --986777185 --92791365 --652332202 --67398838 --265607854 --648446542 --217315273 --814519287 --808099936 --460409318 --826995252 --851325658 --190440035 --812276604 --384513246 --18946765 --228754452 --842464646 --886769173 --751056805 --185909532 --664611753 --837713311 --556145662 --450612073 --317244017 --319749887 --603358968 --948539536 --286961082 --899897759 --995618635 --991357581 --788985694 --16911501 --631265335 --667844540 --438677583 --436147804 --605122576 --14695913 --367775547 --674383471 --461891873 --895754952 --515169644 --449111549 --919381713 --657300893 --65052853 --869389909 --85119427 --109186498 --676459678 --40051175 --375789322 --7822368 --946870753 --509772983 --694312935 --390753649 --502186320 --700726698 --237229867 --197902403 --929229521 --638742397 --74221293 --274584221 --42287224 --153906556 --405445540 --864124825 --39670148 --712253869 --295518971 --640557711 --765816075 --611586507 --838012781 --29564537 --262940741 --821404818 --708957234 --101602539 --361420219 --351882008 --740684993 --686143889 --219246017 --103658047 --820170570 --847033894 --298217672 --865687007 --679137725 --367572910 --952843490 --458182820 --767283844 --959538708 --841257734 --964812788 --451406868 --989669239 --425537318 --319918233 --279365580 --593275009 --195138658 --130446752 --49993949 --748363359 --406283114 --754153058 --194354916 --268345981 --65082241 --634066412 --138211350 --836666085 --179271571 --311130087 --463656884 --486825779 --120797073 --635917631 --589043922 --330616446 --806111925 --822236135 --121489936 --279038853 --180599334 --9288286 --46596432 --306600387 --591467569 --934071291 --381376086 --652328895 --904551790 --301622105 --713097155 --451581686 --474741181 --653134854 --104678648 --768947156 --432789414 --86065329 --120648857 --680794432 --366557307 --481684038 --169399299 --421598110 --546693515 --432108475 --252320649 --474363932 --753181243 --658221285 --321968528 --878885558 --392763400 --36431247 --622782938 --544394134 --195586483 --413387947 --335733030 --469587917 --688482932 --358458551 --246164627 --965968080 --671670029 --631407336 --844411130 --440139758 --647279552 --517443761 --276884295 --615734391 --418396531 --267373785 --321665048 --994775938 --462831831 --460737859 --568075358 --280244784 --697211248 --406558984 --437769395 --961891079 --710799612 --690325717 --661462487 --633044174 --494463745 --245746036 --128404927 --847129528 --710090291 --19450682 --333300520 --993250903 --947788260 --373308615 --829535651 --750626742 --183089622 --241212905 --458056270 --15879254 --394043575 --338353928 --85733544 --852318346 --426597004 --303668521 --984299417 --945191223 --460182475 --296860273 --525264128 --382073508 --327995857 --537367048 --289435623 --922371268 --91942048 --797652703 --109703574 --565954458 --877645175 --802871082 --965693883 --464106789 --132890181 --326883454 --297522512 --880548999 --750228587 --826216135 --879181973 --290023023 --448682984 --277087851 --420205731 --338158363 --774558872 --694098929 --279722236 --403876759 --36921316 --854595474 --729578215 --664280564 --488474711 --564363368 --198383932 --259560925 --497230498 --829787002 --334153568 --418345147 --627481382 --767621178 --715397632 --872999935 --474560436 --844716085 --958244920 --583597829 --348896793 --164294119 --991455740 --565429704 --82923977 --839119243 --384510501 --759811184 --239763157 --248254147 --402458375 --594760623 --632291857 --921868793 --948793134 --390303181 --451966324 --817499404 --191032822 --847680091 --676374400 --106797113 --512395780 --86252313 --634831566 --602652170 --473777938 --922730251 --582781462 --237940435 --881596735 --573369075 --750840227 --462798010 --503678874 --875687582 --582987346 --213463656 --845741469 --848394503 --41631160 --327548069 --1280893 --962366896 --679729546 --918159052 --400652609 --341215558 --782968928 --192783296 --446669017 --923278053 --176766964 --593922779 --383457442 --650205046 --941877693 --578922705 --778543284 --519692372 --76513374 --683484023 --491119818 --374437221 --446703102 --950524082 --791722988 --686794349 --993383579 --540656224 --506859349 --191296671 --228618812 --514190302 --534524533 --993345846 --170269606 --551522204 --642279253 --748612658 --620543193 --610449715 --782020764 --170543760 --212674704 --117056292 --658798903 --362433217 --410778919 --976302825 --782983897 --494709034 --49422983 --73513113 --98582840 --138504259 --816616511 --51011140 --815131681 --667206661 --577367583 --155215537 --648872205 --75980259 --309899079 --781377055 --841372324 --761090662 --150351513 --350136492 --663596158 --342720071 --859128370 --681747084 --221227650 --813997861 --299148109 --273717201 --780738342 --19308977 --501502706 --200706769 --620333209 --877592619 --525565333 --162624241 --815945716 --492329262 --56191639 --924352148 --807549267 --964599472 --807386998 --72466703 --652539385 --196319888 --244715144 --55903886 --237194120 --245959059 --928395396 --767255758 --33909160 --981589543 --145236017 --59493584 --284033479 --557605347 --742557467 --739422848 --908022004 --965083999 --878247821 --809625457 --435487019 --565875311 --923452640 --843916492 --742631827 --105323093 --510807610 --917963142 --719297472 --386014707 --107888503 --218973130 --292349124 --409775507 --378529994 --172071505 --279118596 --314124642 --89352493 --837544982 --108854602 --252650045 --51680445 --162113593 --824774122 --287863884 --828514217 --772111529 --503890423 --645639851 --682536740 --158449942 --829777382 --83869390 --876012601 --608358568 --97869584 --167523595 --803249608 --737259841 --745290363 --801389692 --149220521 --834958505 --321975899 --129125014 --622051825 --865120452 --888100089 --353821785 --348654567 --891525200 --257141897 --348632581 --306941911 --120428928 --758172492 --483225247 --173801007 --458308437 --317437228 --607975664 --676931341 --601004117 --811006790 --528218045 --584059628 --510862966 --796882013 --68673321 --760610600 --852171437 --944237956 --189228235 --442366446 --159760960 --117212499 --225790635 --109432530 --765263658 --543287309 --452688992 --414528988 --569411963 --431152734 --625974064 --455032683 --229056111 --577059312 --848647958 --359606267 --488459249 --274249942 --958569728 --300680817 --16229829 --782414979 --434699379 --75822697 --836371552 --571481210 --335945695 --64239855 --727742367 --285782476 --459934928 --696729576 --269466529 --257185194 --621398218 --685975623 --631007548 --75219312 --948304087 --241713977 --924481630 --370270490 --858506105 --231625285 --20386663 --329581258 --703179832 --457361393 --852282161 --108003082 --888179607 --273526206 --215968865 --354957049 --542993484 --560580796 --676298558 --345279237 --494113525 --627397490 --963954883 --513175150 --142036540 --217310194 --607682095 --837269515 --365340198 --727034235 --822293598 --255252977 --489117508 --482530818 --193533884 --987700492 --115595795 --209430274 --65874313 --654740555 --553296937 --820049439 --407000863 --775252661 --286808991 --473131442 --702388510 --145567787 --475946893 --114456714 --287271256 --501226744 --956816509 --32940023 --173105023 --849958690 --348187827 --617992215 --241480706 --65964362 --715260671 --442250309 --612092540 --837698652 --413103467 --235997534 --651972561 --782373370 --172134468 --820048601 --429748177 --452303182 --316102248 --392999448 --640868136 --579928177 --928098367 --450736963 --677853643 --637999609 --353643520 --469013147 --14916611 --824403781 --305449807 --508859916 --740105586 --315736574 --665887979 --434844456 --61129938 --212428717 --684990631 --306974537 --139180189 --772201537 --465219596 --952792932 --962700791 --821769134 --43842351 --97403298 --160227426 --165357121 --262836759 --300243036 --132859363 --692383734 --699117106 --865205936 --894186691 --419697939 --469550325 --313360873 --677491204 --307796013 --963074584 --361016849 --552942447 --978465637 --799477877 --217908419 --706841666 --303954643 --498486929 --527191356 --324800974 --641961124 --354188007 --959414368 --305782154 --41153304 --658198626 --296851686 --422117138 --131479122 --257745727 --50207680 --288737187 --678127151 --146495663 --413495959 --733283968 --957384694 --391133660 --164927081 --543558562 --485420663 --482581002 --938940323 --757248191 --603196299 --780317839 --964722775 --467952747 --230189457 --154095194 --354072885 --779013671 --430973530 --680987283 --450995047 --884638231 --405829386 --151832667 --759905842 --442662803 --724681343 --905420005 --995548744 --722349023 --856042636 --531221026 --853482227 --586490945 --514469324 --669904464 --287520306 --218463006 --322054219 --446028015 --186154186 --514412576 --390957419 --709957541 --893496030 --831318474 --773839244 --179109730 --776735090 --438182444 --524335610 --671021120 --2407237 --963146710 --987919726 --367816464 --615905188 --419224140 --943736672 --548732519 --205131300 --242724078 --197651031 --164453536 --858723318 --687678135 --932893641 --934090947 --818130733 --544704100 --654471924 --409537617 --546840177 --246371658 --309396972 --780290529 --959514831 --818705301 --816976370 --563356395 --434330339 --923456682 --339378477 --244127529 --730688710 --451444055 --308254228 --843262259 --694895069 --116649207 --201558341 --3292012 --851742248 --839882897 --497444016 --587970668 --427677486 --323457258 --48763953 --461007388 --91606806 --892037654 --243405923 --475016715 --15159702 --879723157 --586221271 --632238500 --539361439 --506637262 --872206997 --531152646 --685278114 --376696599 --732013793 --803567693 --917154900 --182491112 --708736124 --159149499 --546134436 --916165781 --263478507 --737997438 --705473307 --860326840 --372967840 --457725700 --815567308 --97208617 --716002268 --288419942 --142389701 --719012301 --57956785 --197241188 --16019479 --723782902 --408697448 --269178788 --45552003 --45441947 --275046735 --87230594 --859468181 --783903035 --125670247 --38649733 --845598754 --262719607 --324922834 --272324044 --576139035 --246286045 --649809794 --86440794 --708822592 --961349433 --560482611 --677817014 --107670199 --317342047 --317240935 --857100397 --673912768 --520762696 --909258553 --326645568 --827532662 --252251987 --305420618 --853272018 --472039324 --632339982 --347417730 --793785431 --124215211 --566868911 --858820316 --884443558 --990916201 --104127041 --600733963 --87559453 --247659421 --69293514 --952581277 --811716188 --653739200 --70127999 --160577716 --216738906 --563501929 --461411165 --309543261 --878597144 --695863631 --597771368 --723873153 --245415659 --176042945 --303893343 --769236297 --615911467 --361995532 --96784529 --535349442 --222063208 --736993479 --154897439 --705836631 --709931936 --215435533 --910111922 --1637503 --225514986 --69274885 --904032348 --642915959 --772678215 --769399193 --685306753 --882345905 --581415764 --425364448 --801114529 --691361774 --464143083 --558204294 --668355163 --580995704 --637776988 --655839968 --40678834 --380795985 --887789054 --227779743 --567920490 --938624469 --834109281 --85121287 --273742808 --917840276 --202926690 --608214702 --493730916 --671944544 --106953934 --617064204 --436380897 --311193722 --592499876 --945466832 --940330453 --66113069 --422024608 --533789746 --777066402 --846871861 --337903748 --890209324 --705705083 --992745537 --51871838 --106494390 --873118117 --603764391 --671759535 --453901010 --852245212 --970789918 --961785712 --489240379 --27787597 --255098204 --355943274 --23878249 --4320124 --963436925 --695295100 --450810872 --911171713 --415896390 --840072719 --595693487 --861414428 --669216861 --270566742 --304971724 --298325772 --970910570 --788501487 --676851773 --965419480 --308855893 --838526172 --693064717 --804106277 --478511468 --448539703 --167776074 --772474812 --292238568 --866651086 --790564303 --759674104 --410065489 --736394420 --449395636 --307837125 --713615016 --249368758 --69180833 --63573276 --587768069 --439544205 --984114309 --170582807 --556456509 --163895177 --582363347 --777142097 --431286617 --377335971 --192277656 --146790830 --42980307 --212757668 --632774960 --713348149 --182696537 --281126941 --550866678 --226148704 --120924573 --915052263 --407513799 --748619004 --976612994 --649028220 --171869585 --470940831 --176267300 --284398318 --740711955 --725462902 --456553733 --63436492 --931886165 --645201705 --427469685 --345261333 --74204533 --987778986 --923007646 --15953448 --454774905 --359905308 --901203774 --701089541 --358646143 --432005672 --399628507 --603356566 --65483561 --933463317 --163910087 --112227618 --514086600 --680425815 --739864888 --576224963 --541127801 --529200901 --453507921 --945084738 --222696660 --524835204 --407530559 --586145226 --524501100 --421425197 --247389156 --619167871 --353744120 --913121378 --573074704 --325810386 --488312970 --717260744 --595691329 --379946949 --622413886 --867608635 --272973459 --924594279 --390582105 --649499466 --968994804 --996274797 --71677455 --297916694 --47936281 --286780239 --238397748 --679701423 --776299404 --352420417 --989011540 --414467774 --473595158 --264293616 --747093007 --111546596 --378146741 --146291595 --467107982 --994916951 --285531521 --416505596 --684094693 --119612583 --442054401 --490022287 --192386216 --809595522 --162181024 --546193244 --298151696 --535343169 --303237675 --341495247 --300718987 --545109447 --273032763 --84721857 --249267261 --208363408 --66925096 --77756918 --649578841 --334257547 --551405228 --135439534 --646226195 --434446873 --896586083 --401177179 --901477050 --926643007 --805907589 --432766626 --720869569 --728933394 --513777022 --444454331 --733449539 --576615588 --880668364 --626561039 --524787521 --150202591 --188424291 --532582671 --746769352 --825109713 --987795987 --400461034 --560867314 --470671703 --290025118 --324231224 --607201831 --816592710 --550013295 --264484833 --893209733 --989036399 --741944666 --887513204 --520277279 --213292002 --978583192 --653800592 --967210908 --140997957 --198867467 --781053420 --350498430 --602501408 --991770222 --749515103 --797753096 --961470095 --789062760 --943708734 --689301960 --435084795 --171846082 --905071546 --681198054 --706019131 --349011664 --202377370 --966458042 --761311849 --609938758 --209623751 --137756152 --514431444 --383747088 --472844931 --572321039 --95093351 --409345264 --930096035 --528706256 --615449986 --950180537 --187190152 --969912720 --81509200 --726567271 --126053976 --297185674 --182024651 --952583839 --632675455 --155226889 --303265013 --807090745 --822331999 --938390469 --876190950 --883647664 --449679153 --94161501 --323486124 --424506093 --496337734 --164859303 --905919097 --10443242 --858613370 --163534422 --579494243 --881330095 --186751167 --464857108 --6856791 --755268147 --647515822 --324701295 --401355234 --27049231 --35705896 --3203771 --367221152 --554535058 --37710928 --599368464 --665976306 --162652510 --409592772 --242056214 --282383988 --874429802 --405204405 --621092591 --851176257 --740349840 --210208436 --412948737 --408913871 --430897484 --606569581 --808996910 --407616755 --28958741 --794085149 --745249739 --483702171 --547664977 --441520505 --343941615 --22943398 --610311953 --977090070 --941201324 --318724574 --825460320 --861549361 --150097427 --199700625 --323537964 --187164407 --79353194 --727102059 --147400122 --854875069 --170915076 --452992804 --793521610 --932859463 --401443663 --943664817 --238914796 --513903527 --937345933 --898136401 --840378078 --234883855 --984570332 --599097224 --972285253 --516672711 --368905912 --966783434 --427747276 --80577401 --942549604 --467500341 --370103656 --245046059 --192851782 --366110707 --493576999 --571847420 --738620076 --647880208 --939218590 --955333536 --499498144 --973219741 --595645262 --892870920 --956560297 --692207186 --909265698 --65545874 --508333706 --361560164 --292310518 --229128250 --971892482 --657365771 --475948592 --576765502 --981668671 --207443164 --66464475 --417040800 --148302878 --374735211 --111230188 --411502163 --270901525 --195932932 --68822532 --877624342 --27675280 --778195440 --427878499 --97702270 --849282876 --754068865 --955464965 --114779237 --902227805 --3312785 --4010827 --772743041 --654484915 --873959044 --362344860 --518740605 --362155590 --984165445 --214539704 --971511576 --102859061 --340334421 --327908673 --948146869 --61005963 --583761272 --223029966 --73529151 --916820653 --696002531 --350739211 --836513848 --508562372 --648919259 --574033532 --488133577 --154807536 --478656649 --126572114 --868875015 --165333601 --61430112 --135191646 --625401161 --773128233 --720292176 --631043084 --338128191 --973648373 --777758619 --610977557 --464568207 --210292068 --742854334 --127515190 --766675082 --896896482 --752198545 --302826056 --730940517 --401960080 --865084370 --418743503 --514330606 --582280746 --305800431 --75124309 --44594383 --322302429 --577132391 --43268833 --809083211 --374401384 --500779496 --654117223 --366311744 --377042435 --269062199 --166632500 --715387951 --689470806 --300394617 --554166951 --912816657 --762551250 --956039599 --31465581 --700806167 --949690887 --828591064 --782613851 --163454670 --282425521 --804023070 --639601420 --461784001 --204398611 --99866903 --60137267 --344830995 --693363715 --257216666 --635980087 --923706969 --114039573 --261255513 --594061619 --379317086 --614907559 --997376617 --777784147 --43033949 --717070521 --6730454 --36270002 --641029250 --595027411 --422982400 --190367477 --384057436 --957691287 --196544269 --774239599 --186273868 --752712251 --164964146 --960516155 --653096162 --53171139 --887115281 --36007002 --659255054 --880303115 --218658590 --23723308 --445801274 --963389033 --653840226 --845122644 --422898721 --962804334 --372219099 --714454830 --525003759 --954742900 --2758906 --333911539 --720261395 --614333518 --756323139 --863881113 --223309412 --386278163 --419233654 --84681742 --622622057 --599880309 --117061271 --785968690 --663755594 --522734516 --292649340 --91096595 --370153062 --655982049 --691783703 --314148114 --357653583 --542809645 --987610756 --705140844 --666285933 --903736908 --404195087 --667836598 --677996089 --804961784 --490851312 --847805068 --283411884 --88724630 --21547214 --65661010 --883265342 --366289242 --897280933 --852774426 --672687408 --230223351 --735271436 --192698780 --235562579 --244730918 --569462245 --13478005 --621288316 --966006238 --94659155 --11391595 --662851848 --474523557 --974861532 --903142030 --978149420 --300613248 --982234720 --882621181 --12106287 --844870573 --941521354 --715133071 --335689266 --41410887 --485569447 --140220114 --695931309 --768029324 --97856871 --3013567 --920006571 --888647582 --746570135 --801829067 --671066080 --77997543 --934293633 --749168832 --222979507 --250515362 --741311387 --363345735 --736946331 --121894430 --625716920 --365660324 --901120981 --958290394 --627028579 --89825959 --668239516 --978714136 --960569902 --459823416 --485347244 --1224015 --908394242 --794274998 --781165488 --984606932 --756707242 --104305896 --475015374 --513501350 --207335432 --269714768 --484611790 --837940510 --380556860 --887135887 --622054096 --192064948 --686285816 --543294759 --545314342 --903082939 --243888557 --70393439 --209616213 --70107115 --703980409 --702264103 --288219385 --141284343 --900563647 --911170795 --880248121 --109897075 --62999273 --179011423 --10610434 --741779289 --357113661 --523178463 --172414467 --516159335 --951886124 --429216712 --819829370 --22746406 --269003149 --457763309 --633792015 --245021193 --933661696 --355049354 --821553035 --681807600 --652904488 --628847066 --319282904 --496146081 --80069943 --861391375 --587105848 --397470132 --137751051 --908584048 --270108989 --33108383 --676656558 --971303950 --50141465 --873566075 --396375466 --718375844 --473852142 --268820335 --831516729 --762472671 --424232660 --851042772 --558169613 --182885510 --956017622 --792094002 --146359759 --416185425 --311669550 --948563103 --338112191 --448705114 --53800964 --310486218 --697069607 --436770498 --26065371 --910182638 --343435736 --793963180 --75167111 --118970299 --303640058 --937610631 --6118871 --362954492 --994320792 --984980512 --493004832 --171533221 --126885061 --205953793 --164448730 --653622890 --852623880 --128175952 --904257522 --951213538 --986024510 --656585465 --368545165 --870731971 --439175299 --129337889 --211774431 --160089675 --876026122 --505301183 --805602648 --211254430 --615164297 --164998173 --649329541 --797417108 --968437957 --33819922 --639074577 --415332516 --238060082 --749041351 --367006551 --243227456 --386522202 --816409643 --674347037 --615189501 --426452223 --359313240 --839624671 --341047219 --710285111 --743592636 --85113523 --986975676 --536472621 --619165435 --519766209 --969069244 --240799995 --98565871 --604185540 --917246935 --189766067 --265879579 --310514734 --953263468 --804499493 --509508536 --86239059 --35895564 --722230803 --860643799 --225644058 --280271807 --57688706 --205137460 --268131366 --444116675 --838146803 --89617586 --234022504 --815736502 --401537698 --819640870 --782249075 --64289250 --544846110 --826514131 --325449460 --979471699 --956687546 --718088944 --817586120 --855475650 --764902680 --172100 --459577552 --563318846 --836020598 --514556635 --395664811 --429902067 --347207045 --402497030 --312365873 --177417378 --233664320 --332910607 --485486810 --646631615 --887821223 --425560160 --897779008 --933521862 --372693291 --268756177 --759527567 --627966845 --493292584 --906714965 --683174661 --358103920 --664883945 --831400003 --699723335 --237126613 --588205418 --496018461 --870121204 --282910939 --908458031 --7744904 --655833627 --379914097 --967263156 --103302596 --703753136 --666965315 --559857077 --413029402 --931374180 --878505720 --927654524 --709512925 --729688789 --899282369 --462564430 --922204890 --604077648 --211897874 --903277003 --802013272 --440410722 --668237000 --825106269 --494730120 --569055419 --212359895 --595185564 --417009167 --435157458 --136913792 --137699530 --125392794 --583655625 --765987755 --50359789 --902574347 --686337343 --279562319 --809250276 --15792209 --146053872 --976990676 --988088179 --821036468 --427540493 --19507811 --991799468 --256668790 --438734216 --905262489 --386525700 --50154703 --434231309 --410269271 --843172544 --207278639 --591971817 --262388073 --891536821 --145701887 --607024705 --584060656 --397749685 --500932568 --192068748 --391181937 --628116767 --701441298 --39684162 --882995567 --506440403 --402253335 --872714359 --104612033 --487451577 --609544824 --594513739 --400531854 --585644956 --155757428 --949859306 --326564978 --306769412 --74687200 --955467606 --335145891 --354051974 --287851595 --509279458 --564813503 --213860568 --648290140 --380034481 --507599816 --894076705 --910395925 --968701634 --204570069 --714999853 --952956586 --417644428 --701721927 --317257260 --883811275 --886498115 --645077344 --44320609 --188862410 --431170382 --353032361 --81101376 --93963570 --43884263 --968248484 --208116593 --118640948 --307566408 --220778677 --934745366 --390574690 --463085690 --894050648 --566733265 --672598370 --628478441 --177959278 --32047669 --876708126 --142998704 --377183265 --602642983 --161809636 --651895519 --527058733 --709299813 --189621570 --109115725 --412671075 --891931617 --813375999 --717367501 --395014062 --308752907 --376201040 --249535374 --545301799 --357965195 --605410450 --94316090 --863165535 --225035390 --887285050 --910416817 --28667727 --45123065 --484777624 --417372158 --837385460 --464371108 --857987345 --622901080 --269443394 --529703207 --509116694 --951242122 --504685954 --763700514 --965864915 --979527564 --937143178 --179210425 --848870373 --530563960 --971040174 --886516559 --901835915 --790422646 --171434214 --935367556 --886102866 --990350119 --891521765 --966031446 --590944284 --137369009 --914525735 --51930074 --361511346 --119979378 --430888073 --771326058 --234845172 --863027159 --2028200 --959856892 --272013663 --63489834 --866222423 --583732926 --536582779 --416244511 --342375001 --270041069 --414735013 --60764640 --478486552 --221413730 --4573809 --502646236 --924087295 --790272799 --573061213 --696590771 --94601652 --111941960 --859985418 --872434747 --705235229 --534236749 --597086267 --298923891 --493389461 --907956207 --768661920 --782752502 --428551368 --175593283 --979195850 --902545995 --270728786 --718749922 --950927983 --194600949 --579147420 --171908880 --826025252 --579775600 --680290385 --608498486 --567201339 --8673086 --306721640 --609601033 --855548908 --82026547 --616952740 --868507823 --874159427 --110774478 --566382230 --462617994 --325593268 --919428742 --65659143 --793297377 --454077021 --378887573 --955616154 --181231899 --912737284 --161137910 --33169842 --578053440 --804465832 --383095317 --534359689 --583758558 --104211279 --211803881 --976959953 --627950149 --230495159 --673677810 --271340144 --93872006 --859240669 --94009609 --49874444 --411596816 --532751243 --597401998 --30965260 --269988707 --401632008 --18867301 --100537624 --709468194 --528447164 --395051938 --938928314 --948011744 --740204387 --85349441 --271228947 --546823467 --388725873 --804128323 --23755851 --582796015 --719856241 --480620297 --827404226 --287445403 --791859571 --911996099 --162814105 --279903288 --422802727 --191461604 --361951649 --154204169 --951574882 --925746735 --353069211 --294492040 --367268681 --471023950 --391843149 --872540300 --704548779 --972385296 --70217552 --364550910 --497859842 --784404696 --835856631 --128720355 --379581527 --106618037 --556267059 --266446057 --715441959 --631121357 --888559586 --950657336 --266148733 --429518828 --874090384 --577958845 --43219603 --496522759 --750164748 --409873884 --447979840 --235678863 --874384102 --580427289 --690648377 --198510222 --617476712 --712435537 --78138860 --688839797 --893147805 --605018374 --450326399 --161741345 --280701115 --275303701 --577039643 --187580833 --72537307 --57874828 --500093672 --290836749 --816665302 --327781343 --447368213 --267731854 --159878353 --2611959 --726510708 --590311382 --256708137 --161598821 --140022162 --330431701 --448193927 --760501368 --775018367 --558151223 --41812698 --548556045 --913375014 --18534977 --974803658 --911327477 --405628318 --123139281 --700899570 --747820714 --796893529 --80217988 --498948067 --777664485 --788040887 --438571284 --604547610 --645080644 --351606954 --288591604 --173615870 --342381961 --463540504 --197166823 --259908411 --208973493 --65359416 --366254101 --946669218 --277823110 --482401696 --433358223 --655426293 --312202807 --264159469 --692505962 --318120245 --262603528 --272132829 --536576503 --649596279 --441561274 --553538170 --236311966 --271413825 --108434058 --248601129 --372714239 --111534424 --32812300 --378234855 --80905661 --257091301 --522526640 --777198185 --365683294 --119674397 --791033464 --511420800 --245010469 --285313003 --517483216 --480872342 --19659123 --979199833 --943723975 --771770875 --513006552 --465230351 --775967878 --834017934 --519441445 --84035771 --728247789 --351549877 --315652451 --895316906 --290815389 --238793279 --866744927 --584140528 --861427905 --720267259 --807674541 --340670190 --173670697 --935309006 --190918173 --534747556 --344832929 --560417976 --140445742 --733649130 --707389098 --709442380 --596315510 --31844544 --708089253 --171487751 --825478962 --451222293 --38646296 --505998787 --846950919 --136157761 --842779406 --365803255 --934555862 --109863629 --861360802 --743439869 --943913197 --135890912 --629810499 --790063857 --428867806 --339969322 --210095181 --675994430 --381453828 --134177066 --742128389 --286971269 --233324380 --382441034 --572125800 --632046988 --635561632 --888319540 --252507964 --28401900 --319913008 --748277157 --252451744 --323454241 --595742054 --293306192 --680565674 --969948827 --372806290 --754022337 --893371119 --575437029 --240626469 --181472406 --100294156 --519628310 --857440073 --950493491 --888165042 --839795396 --698237276 --322702043 --167918143 --622380679 --473082862 --775467772 --462361452 --418829146 --180751972 --510046339 --331942846 --618736405 --335123138 --914212393 --924164576 --648002947 --600682913 --32460774 --154881759 --828973765 --175943461 --928737619 --999871269 --343795585 --117907695 --484503528 --427805595 --359342562 --746081878 --748542219 --490498718 --255765697 --788764579 --582871536 --231478911 --460063964 --792314374 --106470348 --156049175 --916254211 --603451196 --120101570 --771724861 --913660752 --971698073 --482524750 --606925307 --298724519 --366676190 --105026119 --242400250 --109261199 --192772231 --33248329 --445246506 --816207456 --711670342 --620119860 --471945001 --132458449 --690200882 --665565688 --369520866 --364745955 --641028370 --825630816 --723768318 --434593515 --846281900 --469473940 --675049299 --324163186 --503597564 --649877976 --383340939 --191722333 --655984750 --963487794 --339639211 --31589651 --628831402 --99445349 --602165901 --705321905 --700035951 --770286380 --191913288 --822649030 --887915332 --600188547 --972988588 --308735580 --79191199 --840129119 --278090535 --941749963 --447780569 --400050860 --32208385 --189840395 --911129351 --755749271 --702580325 --163597468 --94254690 --34998955 --750443732 --206620793 --205786653 --148121907 --579465909 --465943855 --393760804 --597327185 --940735347 --322742371 --291244948 --38523269 --855125631 --422305661 --623906350 --27901745 --850779873 --745212317 --258963906 --503200691 --614223206 --777865029 --514724361 --615822059 --418644594 --113079804 --702728086 --87117502 --263612818 --614980123 --716298662 --740295537 --421810115 --533013836 --466973089 --848039377 --285980032 --998780210 --583495921 --779237669 --421426970 --91982063 --617739965 --335382428 --588755241 --31591024 --545137108 --182062534 --617993866 --740887095 --604044369 --326319182 --831227898 --838839860 --482599174 --128713997 --47335802 --348827903 --235165193 --945633371 --713773295 --715522826 --384869634 --334804356 --352214175 --387824589 --196459703 --106097703 --753434637 --596422239 --699332998 --455752546 --476087934 --809534673 --53777793 --743612990 --615649666 --170429256 --376838245 --150656151 --909823629 --939895315 --915347719 --755086750 --327185618 --362075209 --682536996 --621978268 --391346913 --110719179 --173086503 --93289967 --445712125 --687646423 --148405217 --592135911 --119387599 --267097986 --782046587 --926212540 --119840233 --193610221 --275241658 --126145921 --457646599 --272174279 --846428898 --774003853 --389910956 --497484663 --823369515 --643174032 --709071028 --889595844 --666252624 --663746272 --356451233 --401274170 --126277658 --407898404 --185074627 --798475956 --654886034 --805753932 --706287290 --290080375 --623882324 --653058249 --134079227 --654387033 --452891894 --347359334 --502018144 --337097220 --888556917 --186900680 --995124963 --551193590 --768592502 --553020461 --432966838 --960860240 --465948958 --231206701 --654259231 --311694507 --774855578 --485307241 --204204931 --223018837 --717262100 --611194833 --645520801 --138050584 --748120940 --331012591 --326041715 --988096771 --385725081 --678220996 --110849403 --868793473 --791147543 --734592746 --18742156 --648356182 --677261244 --25755331 --241961296 --94429054 --26038192 --995023886 --260440345 --60747941 --614210886 --884413223 --113832869 --758507467 --734907208 --270310743 --903956798 --974220909 --468952987 --584722108 --452903739 --437148831 --97502384 --13597549 --768563119 --732163259 --171813021 --321817687 --64094509 --240642475 --348504928 --701989302 --272915032 --526525198 --968937904 --685214273 --396680305 --315571023 --105468840 --225352822 --727790643 --167829669 --3066506 --724515223 --359117834 --649841207 --621521157 --129406514 --947212101 --280669230 --711110289 --258862961 --151806860 --848373865 --130823349 --439537677 --304132271 --894806244 --248781984 --599984648 --278273147 --321146901 --608112513 --170462476 --638125580 --781442713 --480681924 --522939101 --171899903 --435149495 --390934318 --516186985 --696049257 --117524304 --500420847 --124927021 --117752628 --649903601 --398287265 --970618438 --671174392 --990929771 --329346717 --835616306 --43654724 --528372044 --930238258 --858181558 --930941966 --92649281 --204114197 --243334229 --459187085 --745127396 --815235370 --906615137 --281298650 --624101199 --844435907 --470969489 --466867649 --836978190 --475539540 --261105219 --408291985 --165974705 --248783748 --700763264 --407808293 --965476719 --210547150 --528547029 --913848727 --187929502 --667215504 --650285440 --915945149 --662222413 --929707090 --996086440 --943226987 --350511758 --993353500 --681425494 --247171623 --724894828 --258197032 --726678582 --615851856 --93092814 --89793290 --962153493 --627990172 --89878368 --515373357 --911055355 --339648414 --250940240 --656340496 --285590394 --274027863 --504412264 --8669529 --392382606 --782994601 --618379162 --355915413 --526876546 --792049745 --386755281 --907889903 --994291309 --40961934 --165654023 --902273116 --8128104 --329384046 --807466955 --779059910 --939824638 --521323697 --484131589 --799219049 --734282630 --548249334 --508769519 --170586540 --561360493 --644648301 --73937399 --34658838 --461038142 --631140785 --190186518 --781293539 --502395961 --408006505 --235180888 --165602884 --397996428 --380779404 --472441504 --372340490 --279669858 --949590806 --625229985 --501601141 --623915982 --9073971 --289549342 --620182251 --638969414 --287550943 --700698486 --870909010 --371173892 --33345591 --368006834 --527363090 --724517010 --447561094 --60668912 --2387314 --286990704 --556989525 --486361893 --838832696 --6396937 --900994357 --218041127 --489193859 --386194301 --862543368 --431297402 --876813313 --565938270 --353524256 --120710247 --335719600 --443347206 --455864057 --952469 --189480211 --537309788 --37012803 --407597614 --442329887 --542877168 --982132400 --828904951 --724339318 --464259173 --712061903 --725172106 --487408679 --10105321 --27071939 --392029775 --51737932 --380830433 --324969720 --828709669 --900781762 --490879760 --180821919 --722833552 --257881248 --592791865 --388254080 --487271271 --88821739 --694147170 --37232834 --220104847 --839026108 --523632796 --710513215 --637165807 --426576200 --583981935 --122347754 --609014516 --980757870 --867488989 --61936520 --106694965 --896741358 --400787490 --740983202 --429645851 --740711320 --874548735 --675508085 --484046000 --247486227 --975068490 --171915791 --212884100 --78616057 --122026979 --722469651 --480079172 --614973617 --286272801 --107822146 --681576150 --631683484 --684617111 --947568401 --181909011 --733533391 --425680165 --496712233 --584089914 --777151297 --781953432 --132795910 --187152765 --767496446 --713427932 --714603082 --568518965 --138008041 --381783526 --89615905 --23880562 --584054492 --562996676 --291991469 --690165689 --338771895 --899496856 --504594235 --523825793 --529060132 --780506145 --589999580 --487219788 --189319301 --128556373 --225795874 --259649513 --40645439 --821676898 --411589295 --61157622 --555077843 --161115422 --460022853 --81818374 --47344916 --612370349 --929103011 --698170275 --504216174 --745506875 --785901774 --798514131 --237155076 --174042919 --702365466 --436632753 --191562061 --19207245 --959981072 --422666324 --940122166 --480738660 --941062616 --77210702 --802963403 --746376582 --559932928 --538614418 --601968519 --953405244 --822147227 --938070959 --879987370 --576477403 --871673897 --308547268 --951246904 --365746106 --507596138 --359036955 --105733153 --259876253 --321032916 --798423516 --722138161 --845142095 --16198158 --676357901 --354310873 --248724029 --816478272 --142828698 --861522401 --940427122 --895757215 --601821261 --164223090 --931039289 --940909657 --91329802 --382243536 --442999901 --202391359 --857590243 --785284966 --576564305 --877322121 --551576526 --597627527 --240450474 --400764436 --337478124 --282151251 --696939252 --814552631 --117047171 --245423163 --500126331 --911577710 --857531106 --626923738 --777008658 --949076794 --75148724 --88333738 --374259920 --443231281 --976866372 --4279137 --898445961 --588421008 --411918365 --762266286 --383505177 --193843540 --255417622 --734335535 --97431196 --527174972 --931315020 --79810785 --8003708 --507283525 --219657721 --639841639 --388367210 --134777384 --989779161 --373712363 --367794868 --339024520 --92143261 --902969444 --841565744 --380913910 --207740224 --289445195 --25665253 --785325554 --336616043 --940512040 --451078074 --991232449 --730195769 --645027894 --513947455 --336047020 --541346294 --300506215 --730260900 --923414855 --785861186 --966299695 --913347795 --164250392 --971357117 --123177466 --595565639 --268194835 --66087744 --628851442 --418498097 --147221760 --960043601 --415720094 --62385070 --300092219 --649191724 --458725281 --631937573 --789878053 --385532860 --992700751 --743643756 --269936631 --797206052 --811797822 --124834645 --967334662 --622761684 --270033852 --537973678 --329942609 --889858565 --920744179 --232238775 --966490200 --587572489 --70815793 --721287185 --222832374 --623700820 --821613645 --140876141 --115719450 --362621246 --575929384 --530578121 --357238309 --733754828 --677246019 --521033926 --122702326 --691541496 --419497546 --499110246 --670718258 --304574248 --562643010 --985513480 --216305390 --188381337 --346432852 --108837494 --675983609 --601045049 --835569762 --665760560 --754729505 --754794634 --921586987 --813268904 --913829517 --772218565 --183839165 --377758324 --446160038 --998237909 --127127670 --855990485 --251216118 --48204482 --234507819 --336894254 --662519544 --814988801 --997317223 --886685091 --456642615 --444295416 --939678960 --681798180 --555830483 --591841845 --625431280 --729351435 --78173109 --907448606 --318657563 --672056546 --773611533 --919558034 --174101307 --789750010 --699062733 --249750109 --65543495 --266026986 --306998139 --41916806 --264761387 --599614241 --916803810 --916309506 --185846521 --366506401 --324725384 --747439132 --721812703 --783602122 --107001097 --588165004 --33143056 --343234534 --215865168 --500576403 --691905950 --665430623 --740380615 --756313246 --502574486 --425040660 --205748404 --812140045 --339388487 --963309691 --9057446 --381861491 --980337757 --561026549 --302275753 --324957510 --537448243 --491305325 --677063489 --361671783 --818952990 --4637976 --218863076 --105928833 --992324580 --723682057 --322863787 --479959849 --67405609 --690753016 --823413836 --283752268 --721200153 --166481297 --36171958 --96771710 --409908502 --425505576 --229532401 --61175664 --959308672 --506556228 --736387733 --372772158 --309991058 --684412566 --855790568 --560727630 --742652134 --187029069 --561473357 --518765592 --444803343 --542967348 --179974486 --83451231 --807166826 --522738557 --386257563 --632171996 --42029081 --141041615 --902582134 --593930823 --228207168 --133506713 --284110255 --823194241 --729760741 --129873703 --320749013 --273217206 --618115708 --414092230 --167608250 --654510463 --714582930 --553819095 --923016675 --832384377 --497192799 --141836652 --28081615 --630225867 --826330117 --243714229 --566951266 --698157404 --364346692 --556116327 --113513494 --145246917 --348235725 --75525587 --46779078 --3660799 --101342025 --436260420 --819089148 --454035212 --745220569 --176677608 --474589782 --569238943 --931178262 --861186057 --332513904 --399816676 --696758711 --694287918 --972865508 --871143142 --521944629 --810831946 --255256956 --781938410 --620774913 --411786016 --583445903 --985973424 --992556881 --782072398 --515758370 --455868169 --656227336 --242301175 --444208204 --522435434 --468227709 --729000049 --101498672 --8863065 --835539680 --191209274 --491172440 --611618486 --647359622 --431731859 --726227755 --145684341 --468179559 --488314449 --244153376 --760204407 --964809050 --837569137 --298657576 --532523716 --89181131 --589389119 --407346509 --71562908 --370458110 --433160306 --390770856 --879504666 --302118875 --389240939 --228802331 --260091727 --511967596 --949018294 --677502734 --168106556 --114893245 --57087259 --290444022 --506564505 --939790015 --982823198 --988542317 --371552303 --212974690 --44008314 --655690283 --146300092 --60940953 --801621085 --502810053 --63252184 --453667048 --778688628 --141688054 --176133945 --24996570 --989881930 --494412507 --152752914 --78066807 --573030960 --974839500 --146595457 --770569719 --936334025 --132031439 --146969634 --925466495 --743731839 --797671889 --140304673 --21800995 --241466320 --393009350 --920231925 --9033107 --45515968 --600039870 --684366668 --723986697 --112107303 --706809942 --965281800 --251856979 --428968572 --379029010 --700872310 --972757503 --819028469 --580848126 --306553195 --629037403 --588713322 --997195993 --560464336 --361907571 --157774961 --13872518 --962467811 --291110742 --679348545 --932949816 --216320936 --605636229 --327052578 --198180581 --292339560 --570358299 --74307471 --889932218 --781796628 --419860793 --846556274 --132607088 --334460796 --988372184 --261273573 --397982419 --794125685 --525951184 --261473076 --394358004 --813360660 --390755960 --88243141 --608763760 --41861411 --849713955 --913679533 --869662509 --167156107 --71655219 --543019558 --295103359 --340867652 --36480276 --696284237 --205395456 --763930022 --402320889 --38151457 --731075014 --45966384 --929305748 --921049530 --103481474 --896117347 --968558621 --440303383 --172100580 --135698265 --474237090 --184874511 --784812251 --705021763 --123882245 --750757260 --512629727 --839465043 --474638012 --503191634 --362305661 --446673538 --724358844 --87457744 --291677741 --830436303 --190489713 --46204781 --262040956 --312248991 --466698605 --732435819 --919307583 --717583714 --635285684 --190023250 --601411090 --257124480 --970320327 --616920853 --431867991 --758871489 --777086846 --174773069 --116366728 --807670492 --41263964 --26905509 --573430075 --315464355 --339654883 --421106696 --62185174 --751794698 --561359106 --784174518 --755770991 --938660051 --710435747 --286606907 --605402610 --646044510 --594871959 --513051907 --959186784 --960010845 --766756167 --357694694 --127329929 --664982304 --584787229 --593426765 --619614978 --439713605 --111938917 --524141900 --457049833 --783258481 --751702134 --382576860 --724152440 --581295697 --655456437 --480432168 --326692552 --84981879 --234759212 --480314889 --502975846 --633416203 --360644149 --889927695 --155407627 --275092260 --124765420 --752806441 --993901946 --479314552 --680617421 --862470087 --218586984 --6117093 --346650289 --814945557 --560298248 --409158669 --946546127 --823236459 --526686229 --614948427 --60713261 --1551415 --803722582 --861609729 --488413322 --788185511 --751086375 --214475345 --460373492 --181902849 --291523968 --323388892 --403254730 --239607721 --182939573 --539617946 --180222041 --191391395 --885298317 --117162121 --468931157 --226150910 --471392435 --730206195 --387789871 --682456947 --252314331 --863599530 --339651753 --675048755 --728822086 --645696568 --900115636 --387524215 --732549284 --418249894 --481353005 --142467349 --925801004 --674117631 --78825076 --589760944 --169742329 --770707812 --320806687 --174071760 --47267617 --416664806 --233531344 --135855304 --769849299 --282659628 --377428927 --544829619 --342637397 --609347255 --952656908 --806713596 --537847063 --721507262 --784517999 --623640471 --595985319 --426325239 --654548891 --662404770 --176873018 --722546544 --458729216 --649014857 --116805354 --51594582 --982021435 --461253986 --521575142 --396918056 --843161125 --137976113 --312905750 --71622244 --355564996 --805652548 --788667382 --957119681 --798909976 --385399353 --230436 --238282408 --526768754 --105983 --479295692 --278129842 --899929595 --496829674 --269059254 --900391674 --408293560 --21995703 --531092701 --496302486 --828509873 --795896315 --8157024 --920051480 --927359365 --620370171 --605544864 --615807299 --170737488 --701858708 --197415004 --989933576 --372332339 --438542024 --952290591 --566628116 --992649240 --568782485 --19980779 --154663077 --776348195 --221774119 --704965851 --893814018 --165625599 --998113467 --881894367 --336473212 --236199810 --217074384 --255367396 --526207101 --400872684 --820092204 --65459307 --115946654 --238788169 --418201795 --443498455 --92323390 --132328014 --823254582 --452553920 --344077931 --149974308 --920496641 --683511472 --387348880 --824408604 --405956465 --237792549 --884057121 --515295833 --123658025 --274363593 --345571985 --339822395 --415084359 --463912606 --208977429 --476421337 --501712501 --111796430 --582460046 --94883519 --858989646 --929536714 --985621720 --946492538 --600494901 --521291520 --806226474 --574422779 --490042424 --946332765 --487786012 --688521350 --933637459 --521482212 --189775507 --858042167 --642029138 --249482536 --560213590 --817383893 --620283282 --161420460 --703806817 --162461497 --655730542 --577665649 --319382330 --427768080 --258254012 --14218567 --966772290 --66292516 --757538303 --549645833 --103520425 --488064621 --9807556 --770246319 --929681966 --945854242 --351886201 --272262527 --896159103 --924876690 --441926912 --655037325 --143026623 --166046919 --537590327 --632499725 --980921810 --169667928 --970473965 --772489260 --49594787 --700492824 --82301023 --617853329 --752932967 --280602925 --695853613 --888940078 --169780026 --975649672 --811539311 --91875227 --823314933 --852871053 --577956828 --520469138 --743509623 --92591136 --230018825 --345446172 --266161301 --46026696 --685143832 --612838056 --343683502 --993491660 --686817219 --144101072 --675540319 --883075859 --717547772 --264536036 --31580298 --194339257 --3016322 --103909081 --101254090 --530157939 --122826078 --544749493 --735952610 --668398792 --454162526 --439310679 --179274011 --971230130 --138327564 --441035531 --277280045 --967046636 --997180089 --749449774 --268449866 --686711833 --642425698 --210794763 --10006369 --277333322 --104023702 --340969333 --557793108 --513031902 --88938884 --733048885 --374762340 --493609675 --238845162 --932911386 --490222339 --450670044 --448179250 --777650199 --395058404 --395494150 --305876949 --134392050 --838999643 --186885918 --47732132 --905502636 --57292166 --928441833 --139529552 --360718985 --237721737 --432461240 --690558300 --523759586 --532202950 --658435299 --537564261 --477860422 --365029508 --49812379 --901090772 --394774417 --759576087 --106723266 --468141548 --149756983 --893777677 --966995740 --13510975 --856096940 --531918545 --209662529 --823770614 --619849081 --202023695 --971107013 --998202557 --901655758 --201657380 --748254639 --519525808 --313166204 --559054609 --75231948 --936134949 --631272813 --548869329 --334008760 --353476596 --325137224 --493646167 --919759982 --263677298 --79882310 --409562217 --685891212 --185523639 --534793934 --362399709 --221946400 --674345238 --274177243 --553455372 --723959794 --387557545 --959752660 --121724769 --194096466 --413509733 --599226360 --630208513 --257270469 --592739289 --816456243 --642520900 --82846596 --829596895 --278860700 --161066769 --101030223 --605952486 --175850722 --798469691 --500695382 --232198780 --333091096 --100981394 --259814162 --286661733 --820288604 --772509248 --501662577 --481642988 --91204779 --58108423 --501938352 --560305004 --74932642 --551999340 --417377759 --959644657 --857929006 --256695489 --739231796 --658972509 --600089508 --856097635 --578084070 --243318741 --517510782 --216887330 --28742086 --604696954 --594995136 --271115965 --994227723 --746892090 --104154111 --918144936 --879130460 --338564771 --496706783 --167743860 --69099112 --801314067 --194577677 --286581129 --301578912 --422167220 --142685740 --465270766 --189501196 --841601181 --587278206 --573355206 --274048708 --63632875 --443645502 --898355339 --256694269 --147785012 --968938720 --993763746 --126570312 --887620818 --772568503 --602906091 --623180271 --710778329 --509949962 --17991405 --709487852 --470720979 --879919668 --111005457 --818542991 --491797681 --793136765 --506057741 --763577738 --215836057 --937328589 --14485607 --125800049 --954425961 --81804548 --948047380 --472973547 --71760227 --73567122 --856531162 --920467822 --857273801 --175726783 --446610383 --222888150 --688454405 --264832326 --248067707 --213143884 --287185527 --815485152 --680287898 --118225649 --812693501 --891746723 --286803017 --448043578 --170709854 --118410818 --21161121 --387003535 --250083358 --663310154 --856354844 --358016243 --179025066 --618758275 --665925158 --589415831 --891261567 --920493114 --816938375 --574533299 --107135197 --615277620 --338188507 --73191554 --725749171 --494631957 --204427734 --402250735 --891389787 --36753367 --845920119 --709181728 --726335672 --247504966 --577862132 --534032908 --165583484 --816562571 --564792790 --985378961 --300220425 --320758115 --657065472 --874302043 --127297530 --747115112 --287499639 --901247843 --537135420 --600640788 --136080066 --863632549 --412026581 --378823845 --96348981 --667886894 --647917652 --199569885 --20042915 --309848767 --473733523 --993299338 --439589078 --485619840 --551289479 --459941438 --750108188 --133104360 --869974453 --464290155 --474342744 --359129071 --56005917 --428174561 --448742736 --765791305 --274016686 --194006883 --753622278 --938860877 --735462462 --715940748 --304119317 --615783025 --207167339 --54743086 --215659041 --120318587 --309164825 --251372664 --475349424 --411449264 --310459637 --315378698 --282029064 --62324734 --96704664 --472016749 --598932002 --763875003 --343088611 --996266003 --536388419 --659514180 --314704731 --745094030 --777917803 --202634820 --526619224 --148870275 --540844475 --336858040 --113551447 --549667595 --528583209 --11533016 --945474277 --386234655 --382292110 --925915126 --99804729 --423473031 --654787787 --562720441 --133732905 --195892397 --188827369 --608689713 --38955971 --813394510 --686368518 --38935855 --887461734 --769313063 --490761477 --851640905 --285983488 --328067703 --663874739 --702838326 --373608816 --893205533 --28637410 --429714698 --676910830 --789491403 --151189264 --515122382 --722305362 --871411451 --250320880 --585258632 --832279357 --815717185 --261532915 --487461564 --74489669 --450719560 --601504428 --117680436 --509010231 --959975906 --382015838 --878784633 --966379338 --511978163 --226578788 --184801880 --790699660 --145864224 --533252806 --296588731 --175983449 --205821452 --853817756 --29822070 --39787774 --759018029 --183854665 --171373146 --798145678 --473480202 --918894795 --372023685 --468246772 --341586642 --262464840 --161466127 --755208280 --542266208 --62053798 --893882131 --959564162 --993180006 --830818354 --493568813 --456440605 --970622269 --222038819 --556622299 --320330412 --270845505 --775125332 --274717566 --843668481 --55125259 --749323975 --352489753 --698224387 --912778661 --253584443 --468866854 --187871519 --251133113 --103373034 --553077307 --59993859 --646161661 --127986605 --558254430 --487318118 --854741632 --346826965 --316386602 --512915412 --368663859 --481965009 --820050680 --647041866 --102662768 --192652260 --599935727 --538531988 --753371056 --511504146 --377377094 --263169126 --724806438 --193755610 --227339804 --883423602 --847571096 --373842498 --738390894 --513946266 --592913130 --976988413 --661748624 --907116786 --281880827 --454055303 --216717615 --783769198 --211847236 --558435207 --373480007 --582434757 --792133935 --116430427 --317955358 --812934261 --949785600 --86842630 --73750575 --77540392 --263614680 --995456722 --121296926 --489637629 --827699733 --359757767 --65389788 --12916121 --306353087 --31505644 --822307812 --308288809 --402253329 --931717130 --83523113 --856862106 --979960155 --989170015 --577282874 --615892028 --720831818 --37460085 --36796834 --18110623 --375244139 --312280051 --419224345 --743451922 --736866772 --796605462 --984406466 --556358894 --618580218 --4212648 --177906224 --59497938 --411691760 --812481217 --696972515 --937849944 --82012169 --592121722 --381912740 --858954645 --655910829 --77188594 --316752374 --52915405 --580323501 --446016367 --163041924 --739380036 --724822098 --136893828 --770658212 --356741971 --984762910 --661061297 --581141934 --487061982 --893696908 --185508689 --45693516 --130111912 --121921732 --70735722 --823552346 --357125253 --517327295 --469721367 --448647441 --674618422 --501756153 --176357937 --289292507 --645009699 --940145156 --448102235 --981763781 --17916780 --85295931 --629001245 --391511405 --455585446 --480258930 --667835682 --663676512 --564007502 --416956865 --638784249 --562878875 --855385016 --150914743 --467172052 --918038036 --520638454 --260455319 --587760060 --637029394 --547297899 --798787059 --957028620 --954784999 --394593665 --811598843 --799742163 --385055573 --266042551 --933919288 --874123029 --154488797 --15041088 --37592181 --257538887 --300313834 --678165281 --519438450 --499691787 --117395250 --492640431 --325508250 --819929235 --221596360 --506334492 --613798233 --245311267 --149320026 --865659354 --822325058 --242617069 --13885129 --228513562 --3232822 --234740203 --591327757 --766418519 --45278539 --421026176 --575437088 --539151217 --513056504 --873316841 --71537050 --36835876 --274892065 --666703233 --38777142 --107769403 --347901749 --71053831 --201115462 --925713061 --431186952 --418495918 --713306768 --893611402 --542484477 --519661528 --962838105 --919496330 --874901633 --984086635 --33996085 --76801391 --825441401 --118425594 --193771979 --880481424 --521190454 --439484935 --668328037 --386082012 --85090872 --311501847 --371399631 --730670278 --690398631 --846220110 --764403615 --162012760 --866273363 --140574112 --954351403 --357051649 --697009892 --479109681 --263405121 --632677479 --551570944 --935885622 --779957595 --250131778 --168856276 --821807397 --762076186 --287759974 --615607144 --752343585 --734062184 --649090938 --388839124 --875786944 --898925147 --487726809 --858847215 --961475252 --900114462 --143186997 --92468905 --631939858 --469734768 --568354469 --773106153 --842682331 --849071759 --606324604 --487008319 --794891824 --917092658 --171773375 --586064844 --53807868 --920639170 --23734916 --86505572 --107894068 --33956683 --433746214 --961255237 --833560437 --14724733 --4369619 --420648601 --56281953 --895229706 --898583418 --799816330 --265710476 --950767814 --428265987 --637841848 --139933694 --286314771 --742422033 --860887805 --231331940 --321035161 --929893075 --548486854 --512922475 --710820075 --933995971 --815427946 --850548431 --949434981 --501521924 --502557161 --225354861 --291027373 --499464406 --968471719 --380070603 --691494329 --90340437 --497199483 --834666489 --59175279 --948909352 --391611117 --785749130 --11041465 --355228923 --528045303 --209319240 --204210302 --369329414 --126024582 --929013465 --424900558 --478182480 --563885233 --408095562 --448700579 --140278888 --258009346 --777163149 --722809553 --853790798 --488920193 --907760765 --376133017 --331589558 --696008499 --512643720 --955082710 --622701011 --353216265 --359516383 --171155960 --766824216 --618070141 --511130612 --886021264 --928066752 --926766387 --182055463 --670717722 --881783521 --246736524 --655542859 --880372104 --248838241 --340912985 --473286595 --258635919 --939041794 --127477425 --671941734 --430346409 --234472230 --917046872 --10295756 --907053608 --815634119 --322382160 --422406349 --679969264 --490326150 --465652448 --948655904 --556731331 --565753657 --867796898 --838477494 --466827553 --625334302 --144133516 --413715395 --290852447 --248616656 --940845663 --355318097 --179483719 --162857555 --996164545 --239606853 --810920083 --495501975 --830101350 --840740932 --594671305 --399162717 --351775059 --36459207 --287835245 --994328505 --302261466 --45075054 --121966881 --574171161 --361096543 --834464917 --544828964 --739176180 --351399738 --663006332 --163653866 --914127945 --581925261 --534577316 --66344522 --791171683 --982106048 --914245958 --568795494 --415616219 --103196431 --239134289 --483166159 --83473258 --247194034 --109412766 --735785092 --158069660 --152337315 --128285385 --312491117 --685183244 --590701742 --84486152 --837584667 --440120813 --2706811 --452131758 --583667510 --399305142 --271493183 --650815334 --245425644 --306997205 --960087116 --914744823 --165155527 --716279630 --903146933 --242046504 --438851611 --376326796 --512688862 --820012049 --678972902 --214773459 --640445530 --421134433 --458419608 --993432991 --894738687 --596868157 --898382073 --367540594 --936262 --617257933 --556211819 --606896463 --451173819 --262866159 --114055113 --818435988 --975577550 --965319759 --400603100 --161257958 --410505708 --378348801 --834307066 --201146298 --969583718 --584049638 --421103676 --528547277 --909965225 --809471992 --98432664 --386271426 --601785802 --652023316 --94631003 --70031760 --840710198 --878669688 --502222464 --728483741 --877239285 --666635492 --447690729 --914901428 --463513930 --721688943 --961134700 --234704600 --944918122 --678380168 --297429988 --638366492 --57144680 --116924713 --746059678 --549110732 --573835880 --406185073 --523437398 --480220147 --505531947 --77305335 --711926078 --900081367 --70946684 --397539088 --678253181 --904029210 --69783242 --687651610 --419155557 --867256260 --141408045 --319809717 --207778253 --776737719 --82774689 --656353191 --532178037 --268823809 --14021708 --810589352 --307822012 --969988319 --31634683 --743884035 --201253111 --365152707 --233036671 --773946991 --525210256 --731086426 --395212354 --281680805 --119059796 --606180687 --565168491 --991648940 --26441869 --673534449 --658944505 --190315183 --853235929 --908292540 --644570078 --364378359 --164563529 --579224156 --557860046 --455263426 --137123817 --87162224 --110853463 --895928799 --236796521 --634712895 --733581788 --970060153 --109082921 --463783529 --832142405 --16490219 --263674732 --827954803 --372956815 --398980865 --186521060 --957676302 --737166339 --764263991 --198560384 --576408275 --779951409 --827046590 --989211270 --663835846 --331168229 --713313528 --605170581 --623679500 --475847410 --303185906 --578054774 --484919881 --84558546 --903476582 --562100702 --807495302 --926775360 --869148136 --107578481 --680718122 --588209061 --503225977 --940828736 --555489881 --217244336 --974963417 --468270591 --310490944 --942855862 --674302700 --554722432 --474736925 --947763927 --214054253 --941770120 --778944392 --783689980 --508443630 --238075241 --504554018 --299912812 --3321074 --477208055 --802966550 --756372920 --74367964 --111941821 --781605545 --150334889 --71293198 --181223532 --515739189 --43546697 --906499454 --407832946 --874010777 --253174361 --720800115 --251434948 --8902177 --456742624 --654658785 --954180400 --739448179 --930161514 --114511917 --824315553 --638955300 --161120864 --130152816 --210846238 --408094754 --796070668 --121436111 --19352082 --505456616 --502106465 --637048617 --174836747 --822834143 --607229671 --81500523 --595403301 --664091756 --325470611 --662254166 --168321115 --887951418 --435126553 --451222731 --123004599 --847483431 --818941821 --305674752 --446346065 --124344002 --549848301 --856355200 --396873641 --724819890 --433734141 --563824626 --881514875 --659339449 --676839600 --274510375 --882132731 --478211230 --136375640 --811767838 --830423700 --239574750 --156556247 --19410495 --625961664 --859753775 --180907910 --370162922 --706503608 --69722790 --927991669 --79980954 --228311366 --383233778 --88229983 --324049403 --956368622 --411911204 --348553649 --379989589 --666979640 --648581379 --947191703 --293155500 --275454887 --821948931 --248480958 --720333546 --277754466 --805807536 --911845322 --459700689 --953220603 --519557320 --645019174 --62238823 --957900729 --339427158 --416618140 --245168998 --187153761 --631583018 --247440954 --40802049 --110636460 --126686799 --515370854 --760414945 --370432064 --373706418 --604529817 --756386545 --695965794 --391615197 --518389444 --634030386 --466849336 --494397182 --288965750 --100959918 --292421097 --91700733 --724790914 --58836449 --609339956 --189325518 --698222737 --483171212 --364391619 --188488725 --728696942 --646627113 --783636345 --464556192 --60944847 --114224114 --868697783 --733503457 --864214248 --917544492 --238606854 --308501590 --968890548 --481569750 --536677017 --636231527 --818399353 --18756311 --499827522 --645789824 --803589787 --70409878 --915247116 --291435743 --153885902 --434149656 --948921776 --434236974 --416855166 --300856409 --691041902 --444685487 --561095442 --993370301 --958260549 --955646683 --517324691 --555985202 --772923825 --803759841 --288097445 --761048952 --619040231 --811227317 --976977366 --510354454 --166698933 --890076286 --857303887 --761432855 --242315651 --164334626 --79783170 --482811448 --994869808 --677799815 --881462161 --266875321 --808015301 --465601773 --198192509 --542549612 --9315279 --445210608 --202186584 --844499576 --535944372 --162698138 --375954678 --747575353 --505852318 --621530839 --302549281 --419995448 --721634834 --361148907 --169365438 --65972636 --620946846 --772249398 --408951565 --760009559 --206073853 --522918601 --17712031 --781952946 --798617560 --802508640 --66289987 --897129007 --76168510 --501388332 --257195545 --671171810 --336633605 --831081077 --431936970 --78281840 --665922934 --309224940 --355164962 --834429942 --231824558 --657637196 --238903464 --321012891 --923709571 --985266256 --688484977 --745177599 --120686017 --252006413 --583845517 --314816664 --238353009 --358148568 --449651674 --954004576 --976899038 --978134515 --781665080 --853730668 --7713022 --278949536 --409218798 --823058948 --130486454 --696812329 --695999901 --815953587 --721345894 --257742931 --709213054 --557957149 --663091620 --939570836 --135916571 --289685199 --958406787 --182041702 --95818386 --179451063 --835676298 --321483210 --14292756 --545492592 --817560244 --885452999 --575048188 --25184449 --914759832 --200886451 --470166703 --579666165 --463555537 --724872146 --87179994 --537557000 --181851917 --655346533 --668976076 --224318419 --792919542 --824441086 --680336737 --718175423 --629708715 --458078882 --691965575 --311347507 --499731887 --11608001 --97513928 --101780355 --860322343 --771642228 --806828520 --198604858 --403409941 --113475443 --311410308 --673550854 --661936370 --453331457 --549062665 --923801867 --591498690 --216579850 --59794706 --654842345 --72865128 --105104743 --301770043 --18214363 --827743108 --255035253 --814870192 --499822147 --446470160 --251708619 --536872154 --296370992 --525432064 --271958536 --237225178 --166765724 --920373258 --673171333 --195622996 --587764882 --8763034 --787105375 --266685706 --680269958 --202321519 --172439441 --815552301 --841154794 --830039905 --887833111 --257539302 --902502253 --222646063 --890619483 --846801889 --865066946 --172979132 --632855132 --933521756 --518648655 --796045557 --11862842 --767051541 --271245602 --397998327 --421291398 --123536770 --898367831 --89105453 --176531993 --803711121 --69348387 --707540525 --199604825 --206861832 --729536539 --814384295 --55064081 --276583897 --105973121 --385210295 --205228841 --410073324 --270513976 --340250146 --582110876 --411199024 --57721553 --483944731 --513990081 --66749725 --876477514 --18857010 --38329305 --165335170 --505157442 --964761928 --209298686 --592575708 --434395539 --74856789 --773821008 --449443916 --621844832 --51374166 --502690010 --39268096 --568676959 --367745136 --808420958 --442029316 --58720171 --983991993 --758198096 --585397315 --438841110 --13914048 --253712401 --874881178 --849735593 --104813747 --40299958 --313155101 --850967997 --198464170 --754952831 --349881774 --53322230 --235863960 --862379272 --978902221 --954692554 --463963953 --456489843 --40018849 --739460696 --401648194 --665912641 --141899678 --921820986 --783330025 --321915648 --540132391 --227659666 --774692539 --450071856 --164058090 --229055032 --290413666 --463931955 --212837137 --842484 --508470399 --275776406 --896548827 --601353828 --23564046 --848211069 --934607616 --436142372 --619769904 --73210852 --967746868 --509720298 --652548291 --158002853 --873505246 --288375109 --206462419 --173155303 --833562545 --840491213 --908987365 --364039659 --526302256 --451174015 --441597227 --599237417 --113948457 --111769864 --834947189 --602158065 --969204789 --596709564 --137049182 --299892619 --937292041 --553283953 --668863226 --94786119 --736437133 --562931020 --424288574 --927176131 --732603138 --756264175 --877745353 --362380150 --653977795 --791061448 --395495453 --25274081 --212169035 --837795236 --340582700 --488516644 --306079673 --601957666 --273617286 --20502436 --842533127 --182481904 --776536115 --842319745 --801888723 --165437208 --712283969 --439468176 --983342853 --79405473 --747956348 --38366770 --220447046 --283030913 --971758970 --705113262 --277413669 --178791532 --56815381 --896452555 --956433645 --452828225 --421034329 --873477490 --192340215 --223557934 --785066164 --637455614 --180730103 --491292676 --544412589 --909198957 --551606947 --31290669 --896537523 --550981149 --786590085 --358593377 --287383718 --718300336 --696061364 --478362289 --345657706 --792918479 --435864845 --524049921 --560325251 --268736907 --209653963 --862868306 --482945649 --789863857 --504119930 --907260278 --88102124 --547676722 --834351589 --169762893 --44717282 --629899527 --892490915 --40363991 --378529776 --17180042 --422309773 --971971555 --827949442 --921388371 --709134610 --283702763 --468257254 --780907911 --618947736 --979770989 --596296595 --192877781 --77806928 --757460089 --210488234 --76132935 --983347301 --704539406 --196547390 --980583735 --487744080 --490188689 --469121238 --537686401 --895987617 --555486178 --749368109 --525983446 --198091956 --561160608 --206733114 --929597041 --502623930 --294723558 --521580105 --945223719 --253181621 --418268130 --171540947 --343034291 --759209363 --413955551 --256719326 --376132438 --163403604 --214927784 --982614175 --116915824 --154283886 --170231113 --119705193 --423357887 --834360479 --958671487 --361852026 --625317452 --775625281 --463273870 --407502193 --979827472 --410927749 --309672294 --540945309 --924623695 --821871726 --539338153 --168467367 --469394954 --128850308 --596399321 --852195502 --607483899 --777279370 --454692002 --797310217 --67000550 --351318449 --781930306 --514247522 --502309762 --740756164 --435479919 --160867517 --214661250 --471260755 --739506780 --241493785 --86278551 --625909317 --439944146 --554151898 --719870394 --551704832 --767313416 --446760147 --179896037 --992067178 --910660400 --289531211 --93532442 --518122994 --604688346 --438541766 --265354206 --281212805 --214780216 --314674009 --627248336 --491361879 --210572732 --651701690 --500649652 --120990769 --789771782 --651065546 --993166120 --301399319 --559638534 --642137117 --897325003 --915030963 --75609362 --944328595 --168356128 --476329696 --240824489 --550665772 --637400541 --625793527 --462497472 --577383549 --708951918 --794479023 --176818182 --281421736 --256731510 --519741996 --822598494 --510206295 --654874701 --482779324 --31240274 --870829686 --203212651 --246556970 --364513013 --561691858 --197308742 --48171407 --379391436 --480772798 --455703775 --441664423 --915970970 --836052945 --306057365 --114118742 --499751403 --721096675 --227441025 --348755321 --59770208 --583061734 --624974886 --542815079 --229318093 --941378522 --28582884 --810027171 --777890524 --997213276 --982879002 --992950856 --646163479 --690240811 --238415494 --735834578 --961475844 --497302471 --754008300 --343284267 --83786013 --243158316 --977529064 --588538228 --345181703 --885770520 --814815783 --735964969 --53802113 --971414466 --878135279 --316620412 --645011147 --970826253 --243242917 --889483100 --916862471 --4815937 --874126302 --757189184 --818160815 --318191113 --397813767 --789583968 --433378941 --891380320 --194060132 --439982115 --133835543 --840767507 --768798934 --774421694 --171240390 --513748484 --483953600 --590001856 --844245052 --697010105 --582709374 --383359897 --789918966 --738082458 --760174197 --157833830 --608188088 --457851783 --374881549 --939703975 --577470264 --130691852 --412009623 --790360796 --411860074 --866814400 --266620861 --519879445 --278215754 --517479966 --532971012 --907566602 --565716983 --601550245 --300918080 --519113909 --88098229 --157873644 --839897819 --23549247 --998434913 --883133875 --408951466 --225914813 --397059969 --296683386 --227391600 --28873667 --928556307 --774435672 --169469019 --140130826 --723776362 --32909767 --1037516 --250976263 --804277432 --803586227 --496194525 --40019691 --209356683 --129926932 --583864444 --761316415 --692046685 --153696777 --521681009 --52998787 --536720004 --32363723 --724581832 --58633751 --782923462 --93864902 --846707348 --949654512 --213695860 --625280112 --490442880 --289394902 --176698988 --976787743 --887999706 --805747051 --532791690 --113287616 --781700580 --150536261 --672152631 --883072056 --992129896 --121170027 --454851750 --259589538 --105550197 --24054951 --830120419 --30458214 --60146112 --101714269 --420097027 --893950614 --129502135 --749731655 --969442976 --259970105 --831385276 --420868054 --93488743 --650469750 --269809527 --272879195 --142810681 --809306581 --835160181 --889436496 --511230497 --750754668 --826768850 --276660186 --743641260 --125867484 --552265458 --947075592 --661161103 --627563510 --214474819 --871251080 --865000327 --586304746 --330267482 --339493717 --711868627 --349003057 --142354512 --651387016 --130867486 --470013277 --706574811 --774678167 --84246618 --621323809 --552534581 --319228603 --87665414 --823082164 --997053540 --566316881 --664502821 --208511711 --538146889 --814238146 --633832264 --260934326 --752622468 --383941847 --335160442 --924309170 --508397180 --564576629 --75439042 --950564334 --295935387 --448655513 --844257707 --451400476 --409381555 --389913254 --234787503 --178101370 --27071216 --434144193 --273588860 --822079254 --407173026 --3750137 --622682664 --122801917 --991781359 --808374369 --483779865 --205012751 --715959418 --895663799 --204126661 --967222648 --170858431 --906899619 --628831821 --714790964 --348728653 --727024574 --656703346 --230297099 --428850226 --535452768 --723051487 --928254239 --493217689 --786367260 --437928684 --695727034 --580828066 --130952033 --67994735 --515491453 --289457153 --595278704 --103414972 --761084661 --901076502 --736519501 --11844290 --999070494 --822817103 --746946567 --807643526 --904308295 --771946688 --15968508 --835895233 --326481319 --638553102 --352592695 --531879373 --452990486 --221284593 --831843499 --60138798 --469485713 --717930571 --99265560 --383668091 --239552392 --636845203 --798642366 --490956959 --66240910 --215803373 --172938875 --273836128 --410373061 --425722144 diff --git a/node_modules/bintrees/test/scripts/gen_test.js b/node_modules/bintrees/test/scripts/gen_test.js deleted file mode 100644 index 52d79863..00000000 --- a/node_modules/bintrees/test/scripts/gen_test.js +++ /dev/null @@ -1,38 +0,0 @@ -// generates a test case to STDOUT - -var no_dups = false; // set to true if you don't want duplicate inserts -var num_inserts = 100000; - -function randInt(start, end) { - return Math.floor(Math.random()*(end-start + 1)) + start; -} - -function get_node_to_remove() { - var idx = randInt(0, added.length - 1); - return added.splice(idx, 1)[0]; -} - - -var nums = []; -var added = []; -var ahash = {}; -for(var i=0; i < num_inserts; i++) { - do { - var n = randInt(1, 1000000000); - } while(no_dups && ahash[n]); - added.push(n); - nums.push(n); - if(no_dups) - ahash[n] = true; - - if(Math.random() < .3) { - // remove a node - nums.push(-get_node_to_remove()); - } -} - -// remove the rest, randomly -while(added.length > 0) - nums.push(-get_node_to_remove()); - -console.log(nums.join('\n')); diff --git a/node_modules/bintrees/test/test_api.js b/node_modules/bintrees/test/test_api.js deleted file mode 100644 index 6ea5960a..00000000 --- a/node_modules/bintrees/test/test_api.js +++ /dev/null @@ -1,322 +0,0 @@ -var _ = require('underscore'); - -var loader = require('./loader'); - -var SAMPLE_FILE = __dirname + '/samples/10k'; -var TREES = ['rbtree', 'bintree']; - -function clear(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - tree.clear(); - inserts.forEach(function(data) { - assert.equal(tree.find(data), null); - }); -} - -function dup(assert, tree_class) { - var tree = loader.new_tree(tree_class); - - assert.ok(tree.insert(100)); - assert.ok(tree.insert(101)); - assert.ok(!tree.insert(101)); - assert.ok(!tree.insert(100)); - tree.remove(100); - assert.ok(!tree.insert(101)); - assert.ok(tree.insert(100)); - assert.ok(!tree.insert(100)); -} - -function nonexist(assert, tree_class) { - var tree = loader.new_tree(tree_class); - - assert.ok(!tree.remove(100)); - tree.insert(100); - assert.ok(!tree.remove(101)); - assert.ok(tree.remove(100)); -} - -function minmax(assert, tree_class) { - var tree = loader.new_tree(tree_class); - assert.equal(tree.min(), null); - assert.equal(tree.max(), null); - - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - tree = loader.build_tree(tree_class, inserts); - - assert.equal(tree.min(), _.min(inserts)); - assert.equal(tree.max(), _.max(inserts)); -} - -function forward_it(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - - var items = []; - var it=tree.iterator(), data; - while((data = it.next()) !== null) { - items.push(data); - } - - inserts.sort(function(a,b) { return a - b; }); - - assert.deepEqual(items, inserts); - - items = []; - tree.each(function(data) { - items.push(data); - }); - - assert.deepEqual(items, inserts); -} - -function forward_it_break(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - - var items = []; - var it=tree.iterator(), data; - while((data = it.next()) !== null) { - items.push(data); - } - - inserts.sort(function(a,b) { return a - b; }); - - assert.deepEqual(items, inserts); - - items = []; - var i = 0; - tree.each(function(data) { - items.push(data); - if (i === 3) { - return false; - } - i++; - }); - - assert.equal(items.length, 4); -} - -function reverse_it(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - - var items = []; - - var it=tree.iterator(), data; - while((data = it.prev()) !== null) { - items.push(data); - } - - inserts.sort(function(a,b) { return b - a; }); - - assert.deepEqual(items, inserts); - - items = []; - tree.reach(function(data) { - items.push(data); - }); - - assert.deepEqual(items, inserts); -} - -function reverse_it_break(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - - var items = []; - - var it=tree.iterator(), data; - while((data = it.prev()) !== null) { - items.push(data); - } - - inserts.sort(function(a,b) { return b - a; }); - - assert.deepEqual(items, inserts); - - items = []; - var i = 0; - tree.reach(function(data) { - items.push(data); - if (i === 3) { - return false; - } - i++; - }); - - assert.equal(items.length, 4); -} - -function switch_it(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - - inserts.sort(function(a,b) { return a - b; }); - - function do_switch(after) { - var items = []; - var it = tree.iterator(); - for(var i = 0; i < after; i++) { - items.push(it.next()); - } - - while((data = it.prev()) !== null) { - items.push(data); - } - - var forward = inserts.slice(0, after); - var reverse = inserts.slice(0, after - 1).reverse(); - var all = forward.concat(reverse); - - assert.deepEqual(items, all); - } - - do_switch(1); - do_switch(10); - do_switch(1000); - do_switch(9000); -} - -function empty_it(assert, tree_class) { - var tree = loader.new_tree(tree_class); - - var it = tree.iterator(); - assert.equal(it.next(), null); - - it = tree.iterator(); - assert.equal(it.prev(), null); -} - -function lower_bound(assert, tree_class) { - var inserts = loader.get_inserts(loader.load(SAMPLE_FILE)); - var tree = loader.build_tree(tree_class, inserts); - - inserts.sort(function(a,b) { return a - b; }); - - for(var i=1; i= 0) || - (rn !== null && comparator(rn.data, root.data) <= 0), - false, - "binary tree violation"); - - return bt_assert(ln, comparator) && bt_assert(rn, comparator); - } -} - -function is_red(node) { - return node !== null && node.red; -} - -function rb_assert(root, comparator) { - if(root === null) { - return 1; - } - else { - var ln = root.left; - var rn = root.right; - - // red violation - if(is_red(root)) { - assert.equal(is_red(ln) || is_red(rn), false, "red violation"); - } - - var lh = rb_assert(ln, comparator); - var rh = rb_assert(rn, comparator); - - // invalid binary search tree - assert.equal((ln !== null && comparator(ln.data, root.data) >= 0) || - (rn !== null && comparator(rn.data, root.data) <= 0), - false, - "binary tree violation"); - - // black height mismatch - assert.equal(lh !== 0 && rh !== 0 && lh !== rh, false, "black violation"); - - // count black links - if(lh !== 0 && rh !== 0) { - return is_red(root) ? lh : lh + 1; - } - else { - return 0; - } - } -} - -var assert_func = { - rbtree: rb_assert, - bintree: bt_assert -}; - -function tree_assert(tree_name) { - return function(tree) { - return assert_func[tree_name](tree._root, tree._comparator) !== 0; - } -} - -function run_test(assert, tree_assert, tree_class, test_path) { - var tree = loader.new_tree(tree_class); - - var tests = loader.load(test_path); - - var elems = 0; - tests.forEach(function(n) { - if(n > 0) { - // insert - assert.ok(tree.insert(n)); - assert.equal(tree.find(n), n); - elems++; - } - else { - // remove - n = -n; - assert.ok(tree.remove(n)); - assert.equal(tree.find(n), null); - elems--; - } - assert.equal(tree.size, elems); - assert.ok(tree_assert(tree)); - }); -} - -var tests = fs.readdirSync(BASE_DIR); - -var test_funcs = {}; -TREES.forEach(function(tree) { - var tree_class = require('../lib/' + tree); - - tests.forEach(function(test) { - var test_path = BASE_DIR + "/" + test; - test_funcs[tree + "_" + test] = function(assert) { - run_test(assert, tree_assert(tree), tree_class, test_path); - assert.done(); - }; - }); -}); - -exports.correctness = test_funcs; diff --git a/node_modules/body-parser/HISTORY.md b/node_modules/body-parser/HISTORY.md deleted file mode 100755 index 17dd110e..00000000 --- a/node_modules/body-parser/HISTORY.md +++ /dev/null @@ -1,731 +0,0 @@ -2.2.0 / 2025-03-27 -========================= - -* refactor: normalize common options for all parsers -* deps: - * iconv-lite@^0.6.3 - -2.1.0 / 2025-02-10 -========================= - -* deps: - * type-is@^2.0.0 - * debug@^4.4.0 - * Removed destroy -* refactor: prefix built-in node module imports -* use the node require cache instead of custom caching - -2.0.2 / 2024-10-31 -========================= - -* remove `unpipe` package and use native `unpipe()` method - -2.0.1 / 2024-09-10 -========================= - -* Restore expected behavior `extended` to `false` - -2.0.0 / 2024-09-10 -========================= -* Propagate changes from 1.20.3 -* add brotli support #406 -* Breaking Change: Node.js 18 is the minimum supported version - -2.0.0-beta.2 / 2023-02-23 -========================= - -This incorporates all changes after 1.19.1 up to 1.20.2. - - * Remove deprecated `bodyParser()` combination middleware - * deps: debug@3.1.0 - - Add `DEBUG_HIDE_DATE` environment variable - - Change timer to per-namespace instead of global - - Change non-TTY date format - - Remove `DEBUG_FD` environment variable support - - Support 256 namespace colors - * deps: iconv-lite@0.5.2 - - Add encoding cp720 - - Add encoding UTF-32 - * deps: raw-body@3.0.0-beta.1 - -2.0.0-beta.1 / 2021-12-17 -========================= - - * Drop support for Node.js 0.8 - * `req.body` is no longer always initialized to `{}` - - it is left `undefined` unless a body is parsed - * `urlencoded` parser now defaults `extended` to `false` - * Use `on-finished` to determine when body read - -1.20.3 / 2024-09-10 -=================== - - * deps: qs@6.13.0 - * add `depth` option to customize the depth level in the parser - * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) - -1.20.2 / 2023-02-21 -=================== - - * Fix strict json error message on Node.js 19+ - * deps: content-type@~1.0.5 - - perf: skip value escaping when unnecessary - * deps: raw-body@2.5.2 - -1.20.1 / 2022-10-06 -=================== - - * deps: qs@6.11.0 - * perf: remove unnecessary object clone - -1.20.0 / 2022-04-02 -=================== - - * Fix error message for json parse whitespace in `strict` - * Fix internal error when inflated body exceeds limit - * Prevent loss of async hooks context - * Prevent hanging when request already read - * deps: depd@2.0.0 - - Replace internal `eval` usage with `Function` constructor - - Use instance methods on `process` to check for listeners - * deps: http-errors@2.0.0 - - deps: depd@2.0.0 - - deps: statuses@2.0.1 - * deps: on-finished@2.4.1 - * deps: qs@6.10.3 - * deps: raw-body@2.5.1 - - deps: http-errors@2.0.0 - -1.19.2 / 2022-02-15 -=================== - - * deps: bytes@3.1.2 - * deps: qs@6.9.7 - * Fix handling of `__proto__` keys - * deps: raw-body@2.4.3 - - deps: bytes@3.1.2 - -1.19.1 / 2021-12-10 -=================== - - * deps: bytes@3.1.1 - * deps: http-errors@1.8.1 - - deps: inherits@2.0.4 - - deps: toidentifier@1.0.1 - - deps: setprototypeof@1.2.0 - * deps: qs@6.9.6 - * deps: raw-body@2.4.2 - - deps: bytes@3.1.1 - - deps: http-errors@1.8.1 - * deps: safe-buffer@5.2.1 - * deps: type-is@~1.6.18 - -1.19.0 / 2019-04-25 -=================== - - * deps: bytes@3.1.0 - - Add petabyte (`pb`) support - * deps: http-errors@1.7.2 - - Set constructor name when possible - - deps: setprototypeof@1.1.1 - - deps: statuses@'>= 1.5.0 < 2' - * deps: iconv-lite@0.4.24 - - Added encoding MIK - * deps: qs@6.7.0 - - Fix parsing array brackets after index - * deps: raw-body@2.4.0 - - deps: bytes@3.1.0 - - deps: http-errors@1.7.2 - - deps: iconv-lite@0.4.24 - * deps: type-is@~1.6.17 - - deps: mime-types@~2.1.24 - - perf: prevent internal `throw` on invalid type - -1.18.3 / 2018-05-14 -=================== - - * Fix stack trace for strict json parse error - * deps: depd@~1.1.2 - - perf: remove argument reassignment - * deps: http-errors@~1.6.3 - - deps: depd@~1.1.2 - - deps: setprototypeof@1.1.0 - - deps: statuses@'>= 1.3.1 < 2' - * deps: iconv-lite@0.4.23 - - Fix loading encoding with year appended - - Fix deprecation warnings on Node.js 10+ - * deps: qs@6.5.2 - * deps: raw-body@2.3.3 - - deps: http-errors@1.6.3 - - deps: iconv-lite@0.4.23 - * deps: type-is@~1.6.16 - - deps: mime-types@~2.1.18 - -1.18.2 / 2017-09-22 -=================== - - * deps: debug@2.6.9 - * perf: remove argument reassignment - -1.18.1 / 2017-09-12 -=================== - - * deps: content-type@~1.0.4 - - perf: remove argument reassignment - - perf: skip parameter parsing when no parameters - * deps: iconv-lite@0.4.19 - - Fix ISO-8859-1 regression - - Update Windows-1255 - * deps: qs@6.5.1 - - Fix parsing & compacting very deep objects - * deps: raw-body@2.3.2 - - deps: iconv-lite@0.4.19 - -1.18.0 / 2017-09-08 -=================== - - * Fix JSON strict violation error to match native parse error - * Include the `body` property on verify errors - * Include the `type` property on all generated errors - * Use `http-errors` to set status code on errors - * deps: bytes@3.0.0 - * deps: debug@2.6.8 - * deps: depd@~1.1.1 - - Remove unnecessary `Buffer` loading - * deps: http-errors@~1.6.2 - - deps: depd@1.1.1 - * deps: iconv-lite@0.4.18 - - Add support for React Native - - Add a warning if not loaded as utf-8 - - Fix CESU-8 decoding in Node.js 8 - - Improve speed of ISO-8859-1 encoding - * deps: qs@6.5.0 - * deps: raw-body@2.3.1 - - Use `http-errors` for standard emitted errors - - deps: bytes@3.0.0 - - deps: iconv-lite@0.4.18 - - perf: skip buffer decoding on overage chunk - * perf: prevent internal `throw` when missing charset - -1.17.2 / 2017-05-17 -=================== - - * deps: debug@2.6.7 - - Fix `DEBUG_MAX_ARRAY_LENGTH` - - deps: ms@2.0.0 - * deps: type-is@~1.6.15 - - deps: mime-types@~2.1.15 - -1.17.1 / 2017-03-06 -=================== - - * deps: qs@6.4.0 - - Fix regression parsing keys starting with `[` - -1.17.0 / 2017-03-01 -=================== - - * deps: http-errors@~1.6.1 - - Make `message` property enumerable for `HttpError`s - - deps: setprototypeof@1.0.3 - * deps: qs@6.3.1 - - Fix compacting nested arrays - -1.16.1 / 2017-02-10 -=================== - - * deps: debug@2.6.1 - - Fix deprecation messages in WebStorm and other editors - - Undeprecate `DEBUG_FD` set to `1` or `2` - -1.16.0 / 2017-01-17 -=================== - - * deps: debug@2.6.0 - - Allow colors in workers - - Deprecated `DEBUG_FD` environment variable - - Fix error when running under React Native - - Use same color for same namespace - - deps: ms@0.7.2 - * deps: http-errors@~1.5.1 - - deps: inherits@2.0.3 - - deps: setprototypeof@1.0.2 - - deps: statuses@'>= 1.3.1 < 2' - * deps: iconv-lite@0.4.15 - - Added encoding MS-31J - - Added encoding MS-932 - - Added encoding MS-936 - - Added encoding MS-949 - - Added encoding MS-950 - - Fix GBK/GB18030 handling of Euro character - * deps: qs@6.2.1 - - Fix array parsing from skipping empty values - * deps: raw-body@~2.2.0 - - deps: iconv-lite@0.4.15 - * deps: type-is@~1.6.14 - - deps: mime-types@~2.1.13 - -1.15.2 / 2016-06-19 -=================== - - * deps: bytes@2.4.0 - * deps: content-type@~1.0.2 - - perf: enable strict mode - * deps: http-errors@~1.5.0 - - Use `setprototypeof` module to replace `__proto__` setting - - deps: statuses@'>= 1.3.0 < 2' - - perf: enable strict mode - * deps: qs@6.2.0 - * deps: raw-body@~2.1.7 - - deps: bytes@2.4.0 - - perf: remove double-cleanup on happy path - * deps: type-is@~1.6.13 - - deps: mime-types@~2.1.11 - -1.15.1 / 2016-05-05 -=================== - - * deps: bytes@2.3.0 - - Drop partial bytes on all parsed units - - Fix parsing byte string that looks like hex - * deps: raw-body@~2.1.6 - - deps: bytes@2.3.0 - * deps: type-is@~1.6.12 - - deps: mime-types@~2.1.10 - -1.15.0 / 2016-02-10 -=================== - - * deps: http-errors@~1.4.0 - - Add `HttpError` export, for `err instanceof createError.HttpError` - - deps: inherits@2.0.1 - - deps: statuses@'>= 1.2.1 < 2' - * deps: qs@6.1.0 - * deps: type-is@~1.6.11 - - deps: mime-types@~2.1.9 - -1.14.2 / 2015-12-16 -=================== - - * deps: bytes@2.2.0 - * deps: iconv-lite@0.4.13 - * deps: qs@5.2.0 - * deps: raw-body@~2.1.5 - - deps: bytes@2.2.0 - - deps: iconv-lite@0.4.13 - * deps: type-is@~1.6.10 - - deps: mime-types@~2.1.8 - -1.14.1 / 2015-09-27 -=================== - - * Fix issue where invalid charset results in 400 when `verify` used - * deps: iconv-lite@0.4.12 - - Fix CESU-8 decoding in Node.js 4.x - * deps: raw-body@~2.1.4 - - Fix masking critical errors from `iconv-lite` - - deps: iconv-lite@0.4.12 - * deps: type-is@~1.6.9 - - deps: mime-types@~2.1.7 - -1.14.0 / 2015-09-16 -=================== - - * Fix JSON strict parse error to match syntax errors - * Provide static `require` analysis in `urlencoded` parser - * deps: depd@~1.1.0 - - Support web browser loading - * deps: qs@5.1.0 - * deps: raw-body@~2.1.3 - - Fix sync callback when attaching data listener causes sync read - * deps: type-is@~1.6.8 - - Fix type error when given invalid type to match against - - deps: mime-types@~2.1.6 - -1.13.3 / 2015-07-31 -=================== - - * deps: type-is@~1.6.6 - - deps: mime-types@~2.1.4 - -1.13.2 / 2015-07-05 -=================== - - * deps: iconv-lite@0.4.11 - * deps: qs@4.0.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix user-visible incompatibilities from 3.1.0 - - Fix various parsing edge cases - * deps: raw-body@~2.1.2 - - Fix error stack traces to skip `makeError` - - deps: iconv-lite@0.4.11 - * deps: type-is@~1.6.4 - - deps: mime-types@~2.1.2 - - perf: enable strict mode - - perf: remove argument reassignment - -1.13.1 / 2015-06-16 -=================== - - * deps: qs@2.4.2 - - Downgraded from 3.1.0 because of user-visible incompatibilities - -1.13.0 / 2015-06-14 -=================== - - * Add `statusCode` property on `Error`s, in addition to `status` - * Change `type` default to `application/json` for JSON parser - * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser - * Provide static `require` analysis - * Use the `http-errors` module to generate errors - * deps: bytes@2.1.0 - - Slight optimizations - * deps: iconv-lite@0.4.10 - - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails - - Leading BOM is now removed when decoding - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * deps: qs@3.1.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix various parsing edge cases - - Parsed object now has `null` prototype - * deps: raw-body@~2.1.1 - - Use `unpipe` module for unpiping requests - - deps: iconv-lite@0.4.10 - * deps: type-is@~1.6.3 - - deps: mime-types@~2.1.1 - - perf: reduce try block size - - perf: remove bitwise operations - * perf: enable strict mode - * perf: remove argument reassignment - * perf: remove delete call - -1.12.4 / 2015-05-10 -=================== - - * deps: debug@~2.2.0 - * deps: qs@2.4.2 - - Fix allowing parameters like `constructor` - * deps: on-finished@~2.2.1 - * deps: raw-body@~2.0.1 - - Fix a false-positive when unpiping in Node.js 0.8 - - deps: bytes@2.0.1 - * deps: type-is@~1.6.2 - - deps: mime-types@~2.0.11 - -1.12.3 / 2015-04-15 -=================== - - * Slight efficiency improvement when not debugging - * deps: depd@~1.0.1 - * deps: iconv-lite@0.4.8 - - Add encoding alias UNICODE-1-1-UTF-7 - * deps: raw-body@1.3.4 - - Fix hanging callback if request aborts during read - - deps: iconv-lite@0.4.8 - -1.12.2 / 2015-03-16 -=================== - - * deps: qs@2.4.1 - - Fix error when parameter `hasOwnProperty` is present - -1.12.1 / 2015-03-15 -=================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: type-is@~1.6.1 - - deps: mime-types@~2.0.10 - -1.12.0 / 2015-02-13 -=================== - - * add `debug` messages - * accept a function for the `type` option - * use `content-type` to parse `Content-Type` headers - * deps: iconv-lite@0.4.7 - - Gracefully support enumerables on `Object.prototype` - * deps: raw-body@1.3.3 - - deps: iconv-lite@0.4.7 - * deps: type-is@~1.6.0 - - fix argument reassignment - - fix false-positives in `hasBody` `Transfer-Encoding` check - - support wildcard for both type and subtype (`*/*`) - - deps: mime-types@~2.0.9 - -1.11.0 / 2015-01-30 -=================== - - * make internal `extended: true` depth limit infinity - * deps: type-is@~1.5.6 - - deps: mime-types@~2.0.8 - -1.10.2 / 2015-01-20 -=================== - - * deps: iconv-lite@0.4.6 - - Fix rare aliases of single-byte encodings - * deps: raw-body@1.3.2 - - deps: iconv-lite@0.4.6 - -1.10.1 / 2015-01-01 -=================== - - * deps: on-finished@~2.2.0 - * deps: type-is@~1.5.5 - - deps: mime-types@~2.0.7 - -1.10.0 / 2014-12-02 -=================== - - * make internal `extended: true` array limit dynamic - -1.9.3 / 2014-11-21 -================== - - * deps: iconv-lite@0.4.5 - - Fix Windows-31J and X-SJIS encoding support - * deps: qs@2.3.3 - - Fix `arrayLimit` behavior - * deps: raw-body@1.3.1 - - deps: iconv-lite@0.4.5 - * deps: type-is@~1.5.3 - - deps: mime-types@~2.0.3 - -1.9.2 / 2014-10-27 -================== - - * deps: qs@2.3.2 - - Fix parsing of mixed objects and values - -1.9.1 / 2014-10-22 -================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - * deps: qs@2.3.0 - - Fix parsing of mixed implicit and explicit arrays - * deps: type-is@~1.5.2 - - deps: mime-types@~2.0.2 - -1.9.0 / 2014-09-24 -================== - - * include the charset in "unsupported charset" error message - * include the encoding in "unsupported content encoding" error message - * deps: depd@~1.0.0 - -1.8.4 / 2014-09-23 -================== - - * fix content encoding to be case-insensitive - -1.8.3 / 2014-09-19 -================== - - * deps: qs@2.2.4 - - Fix issue with object keys starting with numbers truncated - -1.8.2 / 2014-09-15 -================== - - * deps: depd@0.4.5 - -1.8.1 / 2014-09-07 -================== - - * deps: media-typer@0.3.0 - * deps: type-is@~1.5.1 - -1.8.0 / 2014-09-05 -================== - - * make empty-body-handling consistent between chunked requests - - empty `json` produces `{}` - - empty `raw` produces `new Buffer(0)` - - empty `text` produces `''` - - empty `urlencoded` produces `{}` - * deps: qs@2.2.3 - - Fix issue where first empty value in array is discarded - * deps: type-is@~1.5.0 - - fix `hasbody` to be true for `content-length: 0` - -1.7.0 / 2014-09-01 -================== - - * add `parameterLimit` option to `urlencoded` parser - * change `urlencoded` extended array limit to 100 - * respond with 413 when over `parameterLimit` in `urlencoded` - -1.6.7 / 2014-08-29 -================== - - * deps: qs@2.2.2 - - Remove unnecessary cloning - -1.6.6 / 2014-08-27 -================== - - * deps: qs@2.2.0 - - Array parsing fix - - Performance improvements - -1.6.5 / 2014-08-16 -================== - - * deps: on-finished@2.1.0 - -1.6.4 / 2014-08-14 -================== - - * deps: qs@1.2.2 - -1.6.3 / 2014-08-10 -================== - - * deps: qs@1.2.1 - -1.6.2 / 2014-08-07 -================== - - * deps: qs@1.2.0 - - Fix parsing array of objects - -1.6.1 / 2014-08-06 -================== - - * deps: qs@1.1.0 - - Accept urlencoded square brackets - - Accept empty values in implicit array notation - -1.6.0 / 2014-08-05 -================== - - * deps: qs@1.0.2 - - Complete rewrite - - Limits array length to 20 - - Limits object depth to 5 - - Limits parameters to 1,000 - -1.5.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -1.5.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -1.5.0 / 2014-07-20 -================== - - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - * deps: raw-body@1.3.0 - - deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - - Fix `Cannot switch to old mode now` error on Node.js 0.10+ - * deps: type-is@~1.3.2 - -1.4.3 / 2014-06-19 -================== - - * deps: type-is@1.3.1 - - fix global variable leak - -1.4.2 / 2014-06-19 -================== - - * deps: type-is@1.3.0 - - improve type parsing - -1.4.1 / 2014-06-19 -================== - - * fix urlencoded extended deprecation message - -1.4.0 / 2014-06-19 -================== - - * add `text` parser - * add `raw` parser - * check accepted charset in content-type (accepts utf-8) - * check accepted encoding in content-encoding (accepts identity) - * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed - * deprecate `urlencoded()` without provided `extended` option - * lazy-load urlencoded parsers - * parsers split into files for reduced mem usage - * support gzip and deflate bodies - - set `inflate: false` to turn off - * deps: raw-body@1.2.2 - - Support all encodings from `iconv-lite` - -1.3.1 / 2014-06-11 -================== - - * deps: type-is@1.2.1 - - Switch dependency from mime to mime-types@1.0.0 - -1.3.0 / 2014-05-31 -================== - - * add `extended` option to urlencoded parser - -1.2.2 / 2014-05-27 -================== - - * deps: raw-body@1.1.6 - - assert stream encoding on node.js 0.8 - - assert stream encoding on node.js < 0.10.6 - - deps: bytes@1 - -1.2.1 / 2014-05-26 -================== - - * invoke `next(err)` after request fully read - - prevents hung responses and socket hang ups - -1.2.0 / 2014-05-11 -================== - - * add `verify` option - * deps: type-is@1.2.0 - - support suffix matching - -1.1.2 / 2014-05-11 -================== - - * improve json parser speed - -1.1.1 / 2014-05-11 -================== - - * fix repeated limit parsing with every request - -1.1.0 / 2014-05-10 -================== - - * add `type` option - * deps: pin for safety and consistency - -1.0.2 / 2014-04-14 -================== - - * use `type-is` module - -1.0.1 / 2014-03-20 -================== - - * lower default limits to 100kb diff --git a/node_modules/body-parser/LICENSE b/node_modules/body-parser/LICENSE deleted file mode 100755 index 386b7b69..00000000 --- a/node_modules/body-parser/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014-2015 Douglas Christopher Wilson - -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/body-parser/README.md b/node_modules/body-parser/README.md deleted file mode 100755 index 9fcd4c6f..00000000 --- a/node_modules/body-parser/README.md +++ /dev/null @@ -1,491 +0,0 @@ -# body-parser - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Build Status][ci-image]][ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] - -Node.js body parsing middleware. - -Parse incoming request bodies in a middleware before your handlers, available -under the `req.body` property. - -**Note** As `req.body`'s shape is based on user-controlled input, all -properties and values in this object are untrusted and should be validated -before trusting. For example, `req.body.foo.toString()` may fail in multiple -ways, for example the `foo` property may not be there or may not be a string, -and `toString` may not be a function and instead a string or other user input. - -[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). - -_This does not handle multipart bodies_, due to their complex and typically -large nature. For multipart bodies, you may be interested in the following -modules: - - * [busboy](https://www.npmjs.org/package/busboy#readme) and - [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) - * [multiparty](https://www.npmjs.org/package/multiparty#readme) and - [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) - * [formidable](https://www.npmjs.org/package/formidable#readme) - * [multer](https://www.npmjs.org/package/multer#readme) - -This module provides the following parsers: - - * [JSON body parser](#bodyparserjsonoptions) - * [Raw body parser](#bodyparserrawoptions) - * [Text body parser](#bodyparsertextoptions) - * [URL-encoded form body parser](#bodyparserurlencodedoptions) - -Other body parsers you might be interested in: - -- [body](https://www.npmjs.org/package/body#readme) -- [co-body](https://www.npmjs.org/package/co-body#readme) - -## Installation - -```sh -$ npm install body-parser -``` - -## API - -```js -const bodyParser = require('body-parser') -``` - -The `bodyParser` object exposes various factories to create middlewares. All -middlewares will populate the `req.body` property with the parsed body when -the `Content-Type` request header matches the `type` option. - -The various errors returned by this module are described in the -[errors section](#errors). - -### bodyParser.json([options]) - -Returns middleware that only parses `json` and only looks at requests where -the `Content-Type` header matches the `type` option. This parser accepts any -Unicode encoding of the body and supports automatic inflation of `gzip`, -`br` (brotli) and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). - -#### Options - -The `json` function takes an optional `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### reviver - -The `reviver` option is passed directly to `JSON.parse` as the second -argument. You can find more information on this argument -[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). - -##### strict - -When set to `true`, will only accept arrays and objects; when `false` will -accept anything `JSON.parse` accepts. Defaults to `true`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not a -function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `json`), a mime type (like `application/json`), or -a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` -option is called as `fn(req)` and the request is parsed if it returns a truthy -value. Defaults to `application/json`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.raw([options]) - -Returns middleware that parses all bodies as a `Buffer` and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser supports automatic inflation of `gzip`, `br` (brotli) and `deflate` -encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a `Buffer` object -of the body. - -#### Options - -The `raw` function takes an optional `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. -If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this -can be an extension name (like `bin`), a mime type (like -`application/octet-stream`), or a mime type with a wildcard (like `*/*` or -`application/*`). If a function, the `type` option is called as `fn(req)` -and the request is parsed if it returns a truthy value. Defaults to -`application/octet-stream`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.text([options]) - -Returns middleware that parses all bodies as a string and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser supports automatic inflation of `gzip`, `br` (brotli) and `deflate` -encodings. - -A new `body` string containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a string of the -body. - -#### Options - -The `text` function takes an optional `options` object that may contain any of -the following keys: - -##### defaultCharset - -Specify the default character set for the text content if the charset is not -specified in the `Content-Type` header of the request. Defaults to `utf-8`. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not -a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `txt`), a mime type (like `text/plain`), or a mime -type with a wildcard (like `*/*` or `text/*`). If a function, the `type` -option is called as `fn(req)` and the request is parsed if it returns a -truthy value. Defaults to `text/plain`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.urlencoded([options]) - -Returns middleware that only parses `urlencoded` bodies and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser accepts only UTF-8 encoding of the body and supports automatic -inflation of `gzip`, `br` (brotli) and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This object will contain -key-value pairs, where the value can be a string or array (when `extended` is -`false`), or any type (when `extended` is `true`). - -#### Options - -The `urlencoded` function takes an optional `options` object that may contain -any of the following keys: - -##### extended - -The "extended" syntax allows for rich objects and arrays to be encoded into the -URL-encoded format, allowing for a JSON-like experience with URL-encoded. For -more information, please [see the qs -library](https://www.npmjs.org/package/qs#readme). - -Defaults to `false`. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### parameterLimit - -The `parameterLimit` option controls the maximum number of parameters that -are allowed in the URL-encoded data. If a request contains more parameters -than this value, a 413 will be returned to the client. Defaults to `1000`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not -a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `urlencoded`), a mime type (like -`application/x-www-form-urlencoded`), or a mime type with a wildcard (like -`*/x-www-form-urlencoded`). If a function, the `type` option is called as -`fn(req)` and the request is parsed if it returns a truthy value. Defaults -to `application/x-www-form-urlencoded`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -##### defaultCharset - -The default charset to parse as, if not specified in content-type. Must be -either `utf-8` or `iso-8859-1`. Defaults to `utf-8`. - -##### charsetSentinel - -Whether to let the value of the `utf8` parameter take precedence as the charset -selector. It requires the form to contain a parameter named `utf8` with a value -of `✓`. Defaults to `false`. - -##### interpretNumericEntities - -Whether to decode numeric entities such as `☺` when parsing an iso-8859-1 -form. Defaults to `false`. - - -#### depth - -The `depth` option is used to configure the maximum depth of the `qs` library when `extended` is `true`. This allows you to limit the amount of keys that are parsed and can be useful to prevent certain types of abuse. Defaults to `32`. It is recommended to keep this value as low as possible. - -## Errors - -The middlewares provided by this module create errors using the -[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors -will typically have a `status`/`statusCode` property that contains the suggested -HTTP response code, an `expose` property to determine if the `message` property -should be displayed to the client, a `type` property to determine the type of -error without matching against the `message`, and a `body` property containing -the read body, if available. - -The following are the common errors created, though any error can come through -for various reasons. - -### content encoding unsupported - -This error will occur when the request had a `Content-Encoding` header that -contained an encoding but the "inflation" option was set to `false`. The -`status` property is set to `415`, the `type` property is set to -`'encoding.unsupported'`, and the `charset` property will be set to the -encoding that is unsupported. - -### entity parse failed - -This error will occur when the request contained an entity that could not be -parsed by the middleware. The `status` property is set to `400`, the `type` -property is set to `'entity.parse.failed'`, and the `body` property is set to -the entity value that failed parsing. - -### entity verify failed - -This error will occur when the request contained an entity that could not be -failed verification by the defined `verify` option. The `status` property is -set to `403`, the `type` property is set to `'entity.verify.failed'`, and the -`body` property is set to the entity value that failed verification. - -### request aborted - -This error will occur when the request is aborted by the client before reading -the body has finished. The `received` property will be set to the number of -bytes received before the request was aborted and the `expected` property is -set to the number of expected bytes. The `status` property is set to `400` -and `type` property is set to `'request.aborted'`. - -### request entity too large - -This error will occur when the request body's size is larger than the "limit" -option. The `limit` property will be set to the byte limit and the `length` -property will be set to the request body's length. The `status` property is -set to `413` and the `type` property is set to `'entity.too.large'`. - -### request size did not match content length - -This error will occur when the request's length did not match the length from -the `Content-Length` header. This typically occurs when the request is malformed, -typically when the `Content-Length` header was calculated based on characters -instead of bytes. The `status` property is set to `400` and the `type` property -is set to `'request.size.invalid'`. - -### stream encoding should not be set - -This error will occur when something called the `req.setEncoding` method prior -to this middleware. This module operates directly on bytes only and you cannot -call `req.setEncoding` when using this module. The `status` property is set to -`500` and the `type` property is set to `'stream.encoding.set'`. - -### stream is not readable - -This error will occur when the request is no longer readable when this middleware -attempts to read it. This typically means something other than a middleware from -this module read the request body already and the middleware was also configured to -read the same request. The `status` property is set to `500` and the `type` -property is set to `'stream.not.readable'`. - -### too many parameters - -This error will occur when the content of the request exceeds the configured -`parameterLimit` for the `urlencoded` parser. The `status` property is set to -`413` and the `type` property is set to `'parameters.too.many'`. - -### unsupported charset "BOGUS" - -This error will occur when the request had a charset parameter in the -`Content-Type` header, but the `iconv-lite` module does not support it OR the -parser does not support it. The charset is contained in the message as well -as in the `charset` property. The `status` property is set to `415`, the -`type` property is set to `'charset.unsupported'`, and the `charset` property -is set to the charset that is unsupported. - -### unsupported content encoding "bogus" - -This error will occur when the request had a `Content-Encoding` header that -contained an unsupported encoding. The encoding is contained in the message -as well as in the `encoding` property. The `status` property is set to `415`, -the `type` property is set to `'encoding.unsupported'`, and the `encoding` -property is set to the encoding that is unsupported. - -### The input exceeded the depth - -This error occurs when using `bodyParser.urlencoded` with the `extended` property set to `true` and the input exceeds the configured `depth` option. The `status` property is set to `400`. It is recommended to review the `depth` option and evaluate if it requires a higher value. When the `depth` option is set to `32` (default value), the error will not be thrown. - -## Examples - -### Express/Connect top-level generic - -This example demonstrates adding a generic JSON and URL-encoded parser as a -top-level middleware, which will parse the bodies of all incoming requests. -This is the simplest setup. - -```js -const express = require('express') -const bodyParser = require('body-parser') - -const app = express() - -// parse application/x-www-form-urlencoded -app.use(bodyParser.urlencoded()) - -// parse application/json -app.use(bodyParser.json()) - -app.use(function (req, res) { - res.setHeader('Content-Type', 'text/plain') - res.write('you posted:\n') - res.end(String(JSON.stringify(req.body, null, 2))) -}) -``` - -### Express route-specific - -This example demonstrates adding body parsers specifically to the routes that -need them. In general, this is the most recommended way to use body-parser with -Express. - -```js -const express = require('express') -const bodyParser = require('body-parser') - -const app = express() - -// create application/json parser -const jsonParser = bodyParser.json() - -// create application/x-www-form-urlencoded parser -const urlencodedParser = bodyParser.urlencoded() - -// POST /login gets urlencoded bodies -app.post('/login', urlencodedParser, function (req, res) { - if (!req.body || !req.body.username) res.sendStatus(400) - res.send('welcome, ' + req.body.username) -}) - -// POST /api/users gets JSON bodies -app.post('/api/users', jsonParser, function (req, res) { - if (!req.body) res.sendStatus(400) - // create user in req.body -}) -``` - -### Change accepted type for parsers - -All the parsers accept a `type` option which allows you to change the -`Content-Type` that the middleware will parse. - -```js -const express = require('express') -const bodyParser = require('body-parser') - -const app = express() - -// parse various different custom JSON types as JSON -app.use(bodyParser.json({ type: 'application/*+json' })) - -// parse some custom thing into a Buffer -app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) - -// parse an HTML body into a string -app.use(bodyParser.text({ type: 'text/html' })) -``` - -## License - -[MIT](LICENSE) - -[ci-image]: https://badgen.net/github/checks/expressjs/body-parser/master?label=ci -[ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml -[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/body-parser/master -[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master -[node-version-image]: https://badgen.net/npm/node/body-parser -[node-version-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/body-parser -[npm-url]: https://npmjs.org/package/body-parser -[npm-version-image]: https://badgen.net/npm/v/body-parser -[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge -[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file diff --git a/node_modules/body-parser/index.js b/node_modules/body-parser/index.js deleted file mode 100755 index d722d0b2..00000000 --- a/node_modules/body-parser/index.js +++ /dev/null @@ -1,80 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * @typedef Parsers - * @type {function} - * @property {function} json - * @property {function} raw - * @property {function} text - * @property {function} urlencoded - */ - -/** - * Module exports. - * @type {Parsers} - */ - -exports = module.exports = bodyParser - -/** - * JSON parser. - * @public - */ - -Object.defineProperty(exports, 'json', { - configurable: true, - enumerable: true, - get: () => require('./lib/types/json') -}) - -/** - * Raw parser. - * @public - */ - -Object.defineProperty(exports, 'raw', { - configurable: true, - enumerable: true, - get: () => require('./lib/types/raw') -}) - -/** - * Text parser. - * @public - */ - -Object.defineProperty(exports, 'text', { - configurable: true, - enumerable: true, - get: () => require('./lib/types/text') -}) - -/** - * URL-encoded parser. - * @public - */ - -Object.defineProperty(exports, 'urlencoded', { - configurable: true, - enumerable: true, - get: () => require('./lib/types/urlencoded') -}) - -/** - * Create a middleware to parse json and urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @deprecated - * @public - */ - -function bodyParser () { - throw new Error('The bodyParser() generic has been split into individual middleware to use instead.') -} diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js deleted file mode 100755 index eee8b111..00000000 --- a/node_modules/body-parser/lib/read.js +++ /dev/null @@ -1,210 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var getBody = require('raw-body') -var iconv = require('iconv-lite') -var onFinished = require('on-finished') -var zlib = require('node:zlib') - -/** - * Module exports. - */ - -module.exports = read - -/** - * Read a request into a buffer and parse. - * - * @param {object} req - * @param {object} res - * @param {function} next - * @param {function} parse - * @param {function} debug - * @param {object} options - * @private - */ - -function read (req, res, next, parse, debug, options) { - var length - var opts = options - var stream - - // read options - var encoding = opts.encoding !== null - ? opts.encoding - : null - var verify = opts.verify - - try { - // get the content stream - stream = contentstream(req, debug, opts.inflate) - length = stream.length - stream.length = undefined - } catch (err) { - return next(err) - } - - // set raw-body options - opts.length = length - opts.encoding = verify - ? null - : encoding - - // assert charset is supported - if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { - return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { - charset: encoding.toLowerCase(), - type: 'charset.unsupported' - })) - } - - // read body - debug('read body') - getBody(stream, opts, function (error, body) { - if (error) { - var _error - - if (error.type === 'encoding.unsupported') { - // echo back charset - _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { - charset: encoding.toLowerCase(), - type: 'charset.unsupported' - }) - } else { - // set status code on error - _error = createError(400, error) - } - - // unpipe from stream and destroy - if (stream !== req) { - req.unpipe() - stream.destroy() - } - - // read off entire request - dump(req, function onfinished () { - next(createError(400, _error)) - }) - return - } - - // verify - if (verify) { - try { - debug('verify body') - verify(req, res, body, encoding) - } catch (err) { - next(createError(403, err, { - body: body, - type: err.type || 'entity.verify.failed' - })) - return - } - } - - // parse - var str = body - try { - debug('parse body') - str = typeof body !== 'string' && encoding !== null - ? iconv.decode(body, encoding) - : body - req.body = parse(str, encoding) - } catch (err) { - next(createError(400, err, { - body: str, - type: err.type || 'entity.parse.failed' - })) - return - } - - next() - }) -} - -/** - * Get the content stream of the request. - * - * @param {object} req - * @param {function} debug - * @param {boolean} [inflate=true] - * @return {object} - * @api private - */ - -function contentstream (req, debug, inflate) { - var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() - var length = req.headers['content-length'] - - debug('content-encoding "%s"', encoding) - - if (inflate === false && encoding !== 'identity') { - throw createError(415, 'content encoding unsupported', { - encoding: encoding, - type: 'encoding.unsupported' - }) - } - - if (encoding === 'identity') { - req.length = length - return req - } - - var stream = createDecompressionStream(encoding, debug) - req.pipe(stream) - return stream -} - -/** - * Create a decompression stream for the given encoding. - * @param {string} encoding - * @param {function} debug - * @return {object} - * @api private - */ -function createDecompressionStream (encoding, debug) { - switch (encoding) { - case 'deflate': - debug('inflate body') - return zlib.createInflate() - case 'gzip': - debug('gunzip body') - return zlib.createGunzip() - case 'br': - debug('brotli decompress body') - return zlib.createBrotliDecompress() - default: - throw createError(415, 'unsupported content encoding "' + encoding + '"', { - encoding: encoding, - type: 'encoding.unsupported' - }) - } -} - -/** - * Dump the contents of a request. - * - * @param {object} req - * @param {function} callback - * @api private - */ - -function dump (req, callback) { - if (onFinished.isFinished(req)) { - callback(null) - } else { - onFinished(req, callback) - req.resume() - } -} diff --git a/node_modules/body-parser/lib/types/json.js b/node_modules/body-parser/lib/types/json.js deleted file mode 100755 index 078ce710..00000000 --- a/node_modules/body-parser/lib/types/json.js +++ /dev/null @@ -1,206 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var debug = require('debug')('body-parser:json') -var isFinished = require('on-finished').isFinished -var read = require('../read') -var typeis = require('type-is') -var { getCharset, normalizeOptions } = require('../utils') - -/** - * Module exports. - */ - -module.exports = json - -/** - * RegExp to match the first non-space in a string. - * - * Allowed whitespace is defined in RFC 7159: - * - * ws = *( - * %x20 / ; Space - * %x09 / ; Horizontal tab - * %x0A / ; Line feed or New line - * %x0D ) ; Carriage return - */ - -var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/ // eslint-disable-line no-control-regex - -var JSON_SYNTAX_CHAR = '#' -var JSON_SYNTAX_REGEXP = /#+/g - -/** - * Create a middleware to parse JSON bodies. - * - * @param {object} [options] - * @return {function} - * @public - */ - -function json (options) { - var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/json') - - var reviver = options?.reviver - var strict = options?.strict !== false - - function parse (body) { - if (body.length === 0) { - // special-case empty json body, as it's a common client-side mistake - // TODO: maybe make this configurable or part of "strict" option - return {} - } - - if (strict) { - var first = firstchar(body) - - if (first !== '{' && first !== '[') { - debug('strict violation') - throw createStrictSyntaxError(body, first) - } - } - - try { - debug('parse json') - return JSON.parse(body, reviver) - } catch (e) { - throw normalizeJsonSyntaxError(e, { - message: e.message, - stack: e.stack - }) - } - } - - return function jsonParser (req, res, next) { - if (isFinished(req)) { - debug('body already parsed') - next() - return - } - - if (!('body' in req)) { - req.body = undefined - } - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // assert charset per RFC 7159 sec 8.1 - var charset = getCharset(req) || 'utf-8' - if (charset.slice(0, 4) !== 'utf-') { - debug('invalid charset') - next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { - charset: charset, - type: 'charset.unsupported' - })) - return - } - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate, - limit, - verify - }) - } -} - -/** - * Create strict violation syntax error matching native error. - * - * @param {string} str - * @param {string} char - * @return {Error} - * @private - */ - -function createStrictSyntaxError (str, char) { - var index = str.indexOf(char) - var partial = '' - - if (index !== -1) { - partial = str.substring(0, index) + JSON_SYNTAX_CHAR - - for (var i = index + 1; i < str.length; i++) { - partial += JSON_SYNTAX_CHAR - } - } - - try { - JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') - } catch (e) { - return normalizeJsonSyntaxError(e, { - message: e.message.replace(JSON_SYNTAX_REGEXP, function (placeholder) { - return str.substring(index, index + placeholder.length) - }), - stack: e.stack - }) - } -} - -/** - * Get the first non-whitespace character in a string. - * - * @param {string} str - * @return {function} - * @private - */ - -function firstchar (str) { - var match = FIRST_CHAR_REGEXP.exec(str) - - return match - ? match[1] - : undefined -} - -/** - * Normalize a SyntaxError for JSON.parse. - * - * @param {SyntaxError} error - * @param {object} obj - * @return {SyntaxError} - */ - -function normalizeJsonSyntaxError (error, obj) { - var keys = Object.getOwnPropertyNames(error) - - for (var i = 0; i < keys.length; i++) { - var key = keys[i] - if (key !== 'stack' && key !== 'message') { - delete error[key] - } - } - - // replace stack before message for Node.js 0.10 and below - error.stack = obj.stack.replace(error.message, obj.message) - error.message = obj.message - - return error -} diff --git a/node_modules/body-parser/lib/types/raw.js b/node_modules/body-parser/lib/types/raw.js deleted file mode 100755 index 3788ff27..00000000 --- a/node_modules/body-parser/lib/types/raw.js +++ /dev/null @@ -1,75 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var debug = require('debug')('body-parser:raw') -var isFinished = require('on-finished').isFinished -var read = require('../read') -var typeis = require('type-is') -var { normalizeOptions } = require('../utils') - -/** - * Module exports. - */ - -module.exports = raw - -/** - * Create a middleware to parse raw bodies. - * - * @param {object} [options] - * @return {function} - * @api public - */ - -function raw (options) { - var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/octet-stream') - - function parse (buf) { - return buf - } - - return function rawParser (req, res, next) { - if (isFinished(req)) { - debug('body already parsed') - next() - return - } - - if (!('body' in req)) { - req.body = undefined - } - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // read - read(req, res, next, parse, debug, { - encoding: null, - inflate, - limit, - verify - }) - } -} diff --git a/node_modules/body-parser/lib/types/text.js b/node_modules/body-parser/lib/types/text.js deleted file mode 100755 index 3e0ab1bb..00000000 --- a/node_modules/body-parser/lib/types/text.js +++ /dev/null @@ -1,80 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var debug = require('debug')('body-parser:text') -var isFinished = require('on-finished').isFinished -var read = require('../read') -var typeis = require('type-is') -var { getCharset, normalizeOptions } = require('../utils') - -/** - * Module exports. - */ - -module.exports = text - -/** - * Create a middleware to parse text bodies. - * - * @param {object} [options] - * @return {function} - * @api public - */ - -function text (options) { - var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'text/plain') - - var defaultCharset = options?.defaultCharset || 'utf-8' - - function parse (buf) { - return buf - } - - return function textParser (req, res, next) { - if (isFinished(req)) { - debug('body already parsed') - next() - return - } - - if (!('body' in req)) { - req.body = undefined - } - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // get charset - var charset = getCharset(req) || defaultCharset - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate, - limit, - verify - }) - } -} diff --git a/node_modules/body-parser/lib/types/urlencoded.js b/node_modules/body-parser/lib/types/urlencoded.js deleted file mode 100755 index f993425e..00000000 --- a/node_modules/body-parser/lib/types/urlencoded.js +++ /dev/null @@ -1,177 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var debug = require('debug')('body-parser:urlencoded') -var isFinished = require('on-finished').isFinished -var read = require('../read') -var typeis = require('type-is') -var qs = require('qs') -var { getCharset, normalizeOptions } = require('../utils') - -/** - * Module exports. - */ - -module.exports = urlencoded - -/** - * Create a middleware to parse urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @public - */ - -function urlencoded (options) { - var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/x-www-form-urlencoded') - - var defaultCharset = options?.defaultCharset || 'utf-8' - if (defaultCharset !== 'utf-8' && defaultCharset !== 'iso-8859-1') { - throw new TypeError('option defaultCharset must be either utf-8 or iso-8859-1') - } - - // create the appropriate query parser - var queryparse = createQueryParser(options) - - function parse (body, encoding) { - return body.length - ? queryparse(body, encoding) - : {} - } - - return function urlencodedParser (req, res, next) { - if (isFinished(req)) { - debug('body already parsed') - next() - return - } - - if (!('body' in req)) { - req.body = undefined - } - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // assert charset - var charset = getCharset(req) || defaultCharset - if (charset !== 'utf-8' && charset !== 'iso-8859-1') { - debug('invalid charset') - next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { - charset: charset, - type: 'charset.unsupported' - })) - return - } - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate, - limit, - verify - }) - } -} - -/** - * Get the extended query parser. - * - * @param {object} options - */ - -function createQueryParser (options) { - var extended = Boolean(options?.extended) - var parameterLimit = options?.parameterLimit !== undefined - ? options?.parameterLimit - : 1000 - var charsetSentinel = options?.charsetSentinel - var interpretNumericEntities = options?.interpretNumericEntities - var depth = extended ? (options?.depth !== undefined ? options?.depth : 32) : 0 - - if (isNaN(parameterLimit) || parameterLimit < 1) { - throw new TypeError('option parameterLimit must be a positive number') - } - - if (isNaN(depth) || depth < 0) { - throw new TypeError('option depth must be a zero or a positive number') - } - - if (isFinite(parameterLimit)) { - parameterLimit = parameterLimit | 0 - } - - return function queryparse (body, encoding) { - var paramCount = parameterCount(body, parameterLimit) - - if (paramCount === undefined) { - debug('too many parameters') - throw createError(413, 'too many parameters', { - type: 'parameters.too.many' - }) - } - - var arrayLimit = extended ? Math.max(100, paramCount) : 0 - - debug('parse ' + (extended ? 'extended ' : '') + 'urlencoding') - try { - return qs.parse(body, { - allowPrototypes: true, - arrayLimit: arrayLimit, - depth: depth, - charsetSentinel: charsetSentinel, - interpretNumericEntities: interpretNumericEntities, - charset: encoding, - parameterLimit: parameterLimit, - strictDepth: true - }) - } catch (err) { - if (err instanceof RangeError) { - throw createError(400, 'The input exceeded the depth', { - type: 'querystring.parse.rangeError' - }) - } else { - throw err - } - } - } -} - -/** - * Count the number of parameters, stopping once limit reached - * - * @param {string} body - * @param {number} limit - * @api private - */ - -function parameterCount (body, limit) { - var len = body.split('&').length - - return len > limit ? undefined : len - 1 -} diff --git a/node_modules/body-parser/lib/utils.js b/node_modules/body-parser/lib/utils.js deleted file mode 100755 index eee5d952..00000000 --- a/node_modules/body-parser/lib/utils.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict' - -/** - * Module dependencies. - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = { - getCharset, - normalizeOptions -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return (contentType.parse(req).parameters.charset || '').toLowerCase() - } catch { - return undefined - } -} - -/** - * Get the simple type checker. - * - * @param {string | string[]} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} - -/** - * Normalizes the common options for all parsers. - * - * @param {object} options options to normalize - * @param {string | string[] | function} defaultType default content type(s) or a function to determine it - * @returns {object} - */ -function normalizeOptions (options, defaultType) { - if (!defaultType) { - // Parsers must define a default content type - throw new TypeError('defaultType must be provided') - } - - var inflate = options?.inflate !== false - var limit = typeof options?.limit !== 'number' - ? bytes.parse(options?.limit || '100kb') - : options?.limit - var type = options?.type || defaultType - var verify = options?.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - return { - inflate, - limit, - verify, - shouldParse - } -} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json deleted file mode 100755 index e7f763b8..00000000 --- a/node_modules/body-parser/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "body-parser", - "description": "Node.js body parsing middleware", - "version": "2.2.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "repository": "expressjs/body-parser", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.6.3", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "devDependencies": { - "eslint": "8.34.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-markdown": "3.0.0", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-standard": "4.1.0", - "mocha": "^11.1.0", - "nyc": "^17.1.0", - "supertest": "^7.0.0" - }, - "files": [ - "lib/", - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">=18" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --check-leaks test/", - "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/node_modules/brace-expansion/LICENSE b/node_modules/brace-expansion/LICENSE deleted file mode 100644 index de322667..00000000 --- a/node_modules/brace-expansion/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Julian Gruber - -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/brace-expansion/README.md b/node_modules/brace-expansion/README.md deleted file mode 100644 index 6b4e0e16..00000000 --- a/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) -[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## Sponsors - -This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! - -Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.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: - -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/brace-expansion/index.js b/node_modules/brace-expansion/index.js deleted file mode 100644 index bd19fe68..00000000 --- a/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,201 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,(?!,).*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json deleted file mode 100644 index 34478881..00000000 --- a/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.12", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh", - "bench": "matcha test/perf/bench.js" - }, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "publishConfig": { - "tag": "1.x" - } -} diff --git a/node_modules/braces/LICENSE b/node_modules/braces/LICENSE deleted file mode 100644 index 9af4a67d..00000000 --- a/node_modules/braces/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-present, Jon Schlinkert. - -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/braces/README.md b/node_modules/braces/README.md deleted file mode 100644 index f59dd604..00000000 --- a/node_modules/braces/README.md +++ /dev/null @@ -1,586 +0,0 @@ -# braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces) - -> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save braces -``` - -## v3.0.0 Released!! - -See the [changelog](CHANGELOG.md) for details. - -## Why use braces? - -Brace patterns make globs more powerful by adding the ability to match specific ranges and sequences of characters. - -- **Accurate** - complete support for the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/) specification (passes all of the Bash braces tests) -- **[fast and performant](#benchmarks)** - Starts fast, runs fast and [scales well](#performance) as patterns increase in complexity. -- **Organized code base** - The parser and compiler are easy to maintain and update when edge cases crop up. -- **Well-tested** - Thousands of test assertions, and passes all of the Bash, minimatch, and [brace-expansion](https://github.com/juliangruber/brace-expansion) unit tests (as of the date this was written). -- **Safer** - You shouldn't have to worry about users defining aggressive or malicious brace patterns that can break your application. Braces takes measures to prevent malicious regex that can be used for DDoS attacks (see [catastrophic backtracking](https://www.regular-expressions.info/catastrophic.html)). -- [Supports lists](#lists) - (aka "sets") `a/{b,c}/d` => `['a/b/d', 'a/c/d']` -- [Supports sequences](#sequences) - (aka "ranges") `{01..03}` => `['01', '02', '03']` -- [Supports steps](#steps) - (aka "increments") `{2..10..2}` => `['2', '4', '6', '8', '10']` -- [Supports escaping](#escaping) - To prevent evaluation of special characters. - -## Usage - -The main export is a function that takes one or more brace `patterns` and `options`. - -```js -const braces = require('braces'); -// braces(patterns[, options]); - -console.log(braces(['{01..05}', '{a..e}'])); -//=> ['(0[1-5])', '([a-e])'] - -console.log(braces(['{01..05}', '{a..e}'], { expand: true })); -//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e'] -``` - -### Brace Expansion vs. Compilation - -By default, brace patterns are compiled into strings that are optimized for creating regular expressions and matching. - -**Compiled** - -```js -console.log(braces('a/{x,y,z}/b')); -//=> ['a/(x|y|z)/b'] -console.log(braces(['a/{01..20}/b', 'a/{1..5}/b'])); -//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ] -``` - -**Expanded** - -Enable brace expansion by setting the `expand` option to true, or by using [braces.expand()](#expand) (returns an array similar to what you'd expect from Bash, or `echo {1..5}`, or [minimatch](https://github.com/isaacs/minimatch)): - -```js -console.log(braces('a/{x,y,z}/b', { expand: true })); -//=> ['a/x/b', 'a/y/b', 'a/z/b'] - -console.log(braces.expand('{01..10}')); -//=> ['01','02','03','04','05','06','07','08','09','10'] -``` - -### Lists - -Expand lists (like Bash "sets"): - -```js -console.log(braces('a/{foo,bar,baz}/*.js')); -//=> ['a/(foo|bar|baz)/*.js'] - -console.log(braces.expand('a/{foo,bar,baz}/*.js')); -//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js'] -``` - -### Sequences - -Expand ranges of characters (like Bash "sequences"): - -```js -console.log(braces.expand('{1..3}')); // ['1', '2', '3'] -console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b'] -console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c'] -console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c'] - -// supports zero-padded ranges -console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b'] -console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b'] -``` - -See [fill-range](https://github.com/jonschlinkert/fill-range) for all available range-expansion options. - -### Steppped ranges - -Steps, or increments, may be used with ranges: - -```js -console.log(braces.expand('{2..10..2}')); -//=> ['2', '4', '6', '8', '10'] - -console.log(braces('{2..10..2}')); -//=> ['(2|4|6|8|10)'] -``` - -When the [.optimize](#optimize) method is used, or [options.optimize](#optionsoptimize) is set to true, sequences are passed to [to-regex-range](https://github.com/jonschlinkert/to-regex-range) for expansion. - -### Nesting - -Brace patterns may be nested. The results of each expanded string are not sorted, and left to right order is preserved. - -**"Expanded" braces** - -```js -console.log(braces.expand('a{b,c,/{x,y}}/e')); -//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e'] - -console.log(braces.expand('a/{x,{1..5},y}/c')); -//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c'] -``` - -**"Optimized" braces** - -```js -console.log(braces('a{b,c,/{x,y}}/e')); -//=> ['a(b|c|/(x|y))/e'] - -console.log(braces('a/{x,{1..5},y}/c')); -//=> ['a/(x|([1-5])|y)/c'] -``` - -### Escaping - -**Escaping braces** - -A brace pattern will not be expanded or evaluted if _either the opening or closing brace is escaped_: - -```js -console.log(braces.expand('a\\{d,c,b}e')); -//=> ['a{d,c,b}e'] - -console.log(braces.expand('a{d,c,b\\}e')); -//=> ['a{d,c,b}e'] -``` - -**Escaping commas** - -Commas inside braces may also be escaped: - -```js -console.log(braces.expand('a{b\\,c}d')); -//=> ['a{b,c}d'] - -console.log(braces.expand('a{d\\,c,b}e')); -//=> ['ad,ce', 'abe'] -``` - -**Single items** - -Following bash conventions, a brace pattern is also not expanded when it contains a single character: - -```js -console.log(braces.expand('a{b}c')); -//=> ['a{b}c'] -``` - -## Options - -### options.maxLength - -**Type**: `Number` - -**Default**: `10,000` - -**Description**: Limit the length of the input string. Useful when the input string is generated or your application allows users to pass a string, et cetera. - -```js -console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error -``` - -### options.expand - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: Generate an "expanded" brace pattern (alternatively you can use the `braces.expand()` method, which does the same thing). - -```js -console.log(braces('a/{b,c}/d', { expand: true })); -//=> [ 'a/b/d', 'a/c/d' ] -``` - -### options.nodupes - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: Remove duplicates from the returned array. - -### options.rangeLimit - -**Type**: `Number` - -**Default**: `1000` - -**Description**: To prevent malicious patterns from being passed by users, an error is thrown when `braces.expand()` is used or `options.expand` is true and the generated range will exceed the `rangeLimit`. - -You can customize `options.rangeLimit` or set it to `Inifinity` to disable this altogether. - -**Examples** - -```js -// pattern exceeds the "rangeLimit", so it's optimized automatically -console.log(braces.expand('{1..1000}')); -//=> ['([1-9]|[1-9][0-9]{1,2}|1000)'] - -// pattern does not exceed "rangeLimit", so it's NOT optimized -console.log(braces.expand('{1..100}')); -//=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100'] -``` - -### options.transform - -**Type**: `Function` - -**Default**: `undefined` - -**Description**: Customize range expansion. - -**Example: Transforming non-numeric values** - -```js -const alpha = braces.expand('x/{a..e}/y', { - transform(value, index) { - // When non-numeric values are passed, "value" is a character code. - return 'foo/' + String.fromCharCode(value) + '-' + index; - }, -}); -console.log(alpha); -//=> [ 'x/foo/a-0/y', 'x/foo/b-1/y', 'x/foo/c-2/y', 'x/foo/d-3/y', 'x/foo/e-4/y' ] -``` - -**Example: Transforming numeric values** - -```js -const numeric = braces.expand('{1..5}', { - transform(value) { - // when numeric values are passed, "value" is a number - return 'foo/' + value * 2; - }, -}); -console.log(numeric); -//=> [ 'foo/2', 'foo/4', 'foo/6', 'foo/8', 'foo/10' ] -``` - -### options.quantifiers - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: In regular expressions, quanitifiers can be used to specify how many times a token can be repeated. For example, `a{1,3}` will match the letter `a` one to three times. - -Unfortunately, regex quantifiers happen to share the same syntax as [Bash lists](#lists) - -The `quantifiers` option tells braces to detect when [regex quantifiers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#quantifiers) are defined in the given pattern, and not to try to expand them as lists. - -**Examples** - -```js -const braces = require('braces'); -console.log(braces('a/b{1,3}/{x,y,z}')); -//=> [ 'a/b(1|3)/(x|y|z)' ] -console.log(braces('a/b{1,3}/{x,y,z}', { quantifiers: true })); -//=> [ 'a/b{1,3}/(x|y|z)' ] -console.log(braces('a/b{1,3}/{x,y,z}', { quantifiers: true, expand: true })); -//=> [ 'a/b{1,3}/x', 'a/b{1,3}/y', 'a/b{1,3}/z' ] -``` - -### options.keepEscaping - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: Do not strip backslashes that were used for escaping from the result. - -## What is "brace expansion"? - -Brace expansion is a type of parameter expansion that was made popular by unix shells for generating lists of strings, as well as regex-like matching when used alongside wildcards (globs). - -In addition to "expansion", braces are also used for matching. In other words: - -- [brace expansion](#brace-expansion) is for generating new lists -- [brace matching](#brace-matching) is for filtering existing lists - -
                          -More about brace expansion (click to expand) - -There are two main types of brace expansion: - -1. **lists**: which are defined using comma-separated values inside curly braces: `{a,b,c}` -2. **sequences**: which are defined using a starting value and an ending value, separated by two dots: `a{1..3}b`. Optionally, a third argument may be passed to define a "step" or increment to use: `a{1..100..10}b`. These are also sometimes referred to as "ranges". - -Here are some example brace patterns to illustrate how they work: - -**Sets** - -``` -{a,b,c} => a b c -{a,b,c}{1,2} => a1 a2 b1 b2 c1 c2 -``` - -**Sequences** - -``` -{1..9} => 1 2 3 4 5 6 7 8 9 -{4..-4} => 4 3 2 1 0 -1 -2 -3 -4 -{1..20..3} => 1 4 7 10 13 16 19 -{a..j} => a b c d e f g h i j -{j..a} => j i h g f e d c b a -{a..z..3} => a d g j m p s v y -``` - -**Combination** - -Sets and sequences can be mixed together or used along with any other strings. - -``` -{a,b,c}{1..3} => a1 a2 a3 b1 b2 b3 c1 c2 c3 -foo/{a,b,c}/bar => foo/a/bar foo/b/bar foo/c/bar -``` - -The fact that braces can be "expanded" from relatively simple patterns makes them ideal for quickly generating test fixtures, file paths, and similar use cases. - -## Brace matching - -In addition to _expansion_, brace patterns are also useful for performing regular-expression-like matching. - -For example, the pattern `foo/{1..3}/bar` would match any of following strings: - -``` -foo/1/bar -foo/2/bar -foo/3/bar -``` - -But not: - -``` -baz/1/qux -baz/2/qux -baz/3/qux -``` - -Braces can also be combined with [glob patterns](https://github.com/jonschlinkert/micromatch) to perform more advanced wildcard matching. For example, the pattern `*/{1..3}/*` would match any of following strings: - -``` -foo/1/bar -foo/2/bar -foo/3/bar -baz/1/qux -baz/2/qux -baz/3/qux -``` - -## Brace matching pitfalls - -Although brace patterns offer a user-friendly way of matching ranges or sets of strings, there are also some major disadvantages and potential risks you should be aware of. - -### tldr - -**"brace bombs"** - -- brace expansion can eat up a huge amount of processing resources -- as brace patterns increase _linearly in size_, the system resources required to expand the pattern increase exponentially -- users can accidentally (or intentially) exhaust your system's resources resulting in the equivalent of a DoS attack (bonus: no programming knowledge is required!) - -For a more detailed explanation with examples, see the [geometric complexity](#geometric-complexity) section. - -### The solution - -Jump to the [performance section](#performance) to see how Braces solves this problem in comparison to other libraries. - -### Geometric complexity - -At minimum, brace patterns with sets limited to two elements have quadradic or `O(n^2)` complexity. But the complexity of the algorithm increases exponentially as the number of sets, _and elements per set_, increases, which is `O(n^c)`. - -For example, the following sets demonstrate quadratic (`O(n^2)`) complexity: - -``` -{1,2}{3,4} => (2X2) => 13 14 23 24 -{1,2}{3,4}{5,6} => (2X2X2) => 135 136 145 146 235 236 245 246 -``` - -But add an element to a set, and we get a n-fold Cartesian product with `O(n^c)` complexity: - -``` -{1,2,3}{4,5,6}{7,8,9} => (3X3X3) => 147 148 149 157 158 159 167 168 169 247 248 - 249 257 258 259 267 268 269 347 348 349 357 - 358 359 367 368 369 -``` - -Now, imagine how this complexity grows given that each element is a n-tuple: - -``` -{1..100}{1..100} => (100X100) => 10,000 elements (38.4 kB) -{1..100}{1..100}{1..100} => (100X100X100) => 1,000,000 elements (5.76 MB) -``` - -Although these examples are clearly contrived, they demonstrate how brace patterns can quickly grow out of control. - -**More information** - -Interested in learning more about brace expansion? - -- [linuxjournal/bash-brace-expansion](http://www.linuxjournal.com/content/bash-brace-expansion) -- [rosettacode/Brace_expansion](https://rosettacode.org/wiki/Brace_expansion) -- [cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) - -
                          - -## Performance - -Braces is not only screaming fast, it's also more accurate the other brace expansion libraries. - -### Better algorithms - -Fortunately there is a solution to the ["brace bomb" problem](#brace-matching-pitfalls): _don't expand brace patterns into an array when they're used for matching_. - -Instead, convert the pattern into an optimized regular expression. This is easier said than done, and braces is the only library that does this currently. - -**The proof is in the numbers** - -Minimatch gets exponentially slower as patterns increase in complexity, braces does not. The following results were generated using `braces()` and `minimatch.braceExpand()`, respectively. - -| **Pattern** | **braces** | **[minimatch][]** | -| --------------------------- | ------------------- | ---------------------------- | -| `{1..9007199254740991}`[^1] | `298 B` (5ms 459μs) | N/A (freezes) | -| `{1..1000000000000000}` | `41 B` (1ms 15μs) | N/A (freezes) | -| `{1..100000000000000}` | `40 B` (890μs) | N/A (freezes) | -| `{1..10000000000000}` | `39 B` (2ms 49μs) | N/A (freezes) | -| `{1..1000000000000}` | `38 B` (608μs) | N/A (freezes) | -| `{1..100000000000}` | `37 B` (397μs) | N/A (freezes) | -| `{1..10000000000}` | `35 B` (983μs) | N/A (freezes) | -| `{1..1000000000}` | `34 B` (798μs) | N/A (freezes) | -| `{1..100000000}` | `33 B` (733μs) | N/A (freezes) | -| `{1..10000000}` | `32 B` (5ms 632μs) | `78.89 MB` (16s 388ms 569μs) | -| `{1..1000000}` | `31 B` (1ms 381μs) | `6.89 MB` (1s 496ms 887μs) | -| `{1..100000}` | `30 B` (950μs) | `588.89 kB` (146ms 921μs) | -| `{1..10000}` | `29 B` (1ms 114μs) | `48.89 kB` (14ms 187μs) | -| `{1..1000}` | `28 B` (760μs) | `3.89 kB` (1ms 453μs) | -| `{1..100}` | `22 B` (345μs) | `291 B` (196μs) | -| `{1..10}` | `10 B` (533μs) | `20 B` (37μs) | -| `{1..3}` | `7 B` (190μs) | `5 B` (27μs) | - -### Faster algorithms - -When you need expansion, braces is still much faster. - -_(the following results were generated using `braces.expand()` and `minimatch.braceExpand()`, respectively)_ - -| **Pattern** | **braces** | **[minimatch][]** | -| --------------- | --------------------------- | ---------------------------- | -| `{1..10000000}` | `78.89 MB` (2s 698ms 642μs) | `78.89 MB` (18s 601ms 974μs) | -| `{1..1000000}` | `6.89 MB` (458ms 576μs) | `6.89 MB` (1s 491ms 621μs) | -| `{1..100000}` | `588.89 kB` (20ms 728μs) | `588.89 kB` (156ms 919μs) | -| `{1..10000}` | `48.89 kB` (2ms 202μs) | `48.89 kB` (13ms 641μs) | -| `{1..1000}` | `3.89 kB` (1ms 796μs) | `3.89 kB` (1ms 958μs) | -| `{1..100}` | `291 B` (424μs) | `291 B` (211μs) | -| `{1..10}` | `20 B` (487μs) | `20 B` (72μs) | -| `{1..3}` | `5 B` (166μs) | `5 B` (27μs) | - -If you'd like to run these comparisons yourself, see [test/support/generate.js](test/support/generate.js). - -## Benchmarks - -### Running benchmarks - -Install dev dependencies: - -```bash -npm i -d && npm benchmark -``` - -### Latest results - -Braces is more accurate, without sacrificing performance. - -```bash -● expand - range (expanded) - braces x 53,167 ops/sec ±0.12% (102 runs sampled) - minimatch x 11,378 ops/sec ±0.10% (102 runs sampled) -● expand - range (optimized for regex) - braces x 373,442 ops/sec ±0.04% (100 runs sampled) - minimatch x 3,262 ops/sec ±0.18% (100 runs sampled) -● expand - nested ranges (expanded) - braces x 33,921 ops/sec ±0.09% (99 runs sampled) - minimatch x 10,855 ops/sec ±0.28% (100 runs sampled) -● expand - nested ranges (optimized for regex) - braces x 287,479 ops/sec ±0.52% (98 runs sampled) - minimatch x 3,219 ops/sec ±0.28% (101 runs sampled) -● expand - set (expanded) - braces x 238,243 ops/sec ±0.19% (97 runs sampled) - minimatch x 538,268 ops/sec ±0.31% (96 runs sampled) -● expand - set (optimized for regex) - braces x 321,844 ops/sec ±0.10% (97 runs sampled) - minimatch x 140,600 ops/sec ±0.15% (100 runs sampled) -● expand - nested sets (expanded) - braces x 165,371 ops/sec ±0.42% (96 runs sampled) - minimatch x 337,720 ops/sec ±0.28% (100 runs sampled) -● expand - nested sets (optimized for regex) - braces x 242,948 ops/sec ±0.12% (99 runs sampled) - minimatch x 87,403 ops/sec ±0.79% (96 runs sampled) -``` - -## About - -
                          -Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
                          - -
                          -Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
                          - -
                          -Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
                          - -### Contributors - -| **Commits** | **Contributor** | -| ----------- | ------------------------------------------------------------- | -| 197 | [jonschlinkert](https://github.com/jonschlinkert) | -| 4 | [doowb](https://github.com/doowb) | -| 1 | [es128](https://github.com/es128) | -| 1 | [eush77](https://github.com/eush77) | -| 1 | [hemanth](https://github.com/hemanth) | -| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | - -### Author - -**Jon Schlinkert** - -- [GitHub Profile](https://github.com/jonschlinkert) -- [Twitter Profile](https://twitter.com/jonschlinkert) -- [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) - -### License - -Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - ---- - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ diff --git a/node_modules/braces/index.js b/node_modules/braces/index.js deleted file mode 100644 index d222c13b..00000000 --- a/node_modules/braces/index.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -const stringify = require('./lib/stringify'); -const compile = require('./lib/compile'); -const expand = require('./lib/expand'); -const parse = require('./lib/parse'); - -/** - * Expand the given pattern or create a regex-compatible string. - * - * ```js - * const braces = require('braces'); - * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] - * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ - -const braces = (input, options = {}) => { - let output = []; - - if (Array.isArray(input)) { - for (const pattern of input) { - const result = braces.create(pattern, options); - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); - } - } - } else { - output = [].concat(braces.create(input, options)); - } - - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; - } - return output; -}; - -/** - * Parse the given `str` with the given `options`. - * - * ```js - * // braces.parse(pattern, [, options]); - * const ast = braces.parse('a/{b,c}/d'); - * console.log(ast); - * ``` - * @param {String} pattern Brace pattern to parse - * @param {Object} options - * @return {Object} Returns an AST - * @api public - */ - -braces.parse = (input, options = {}) => parse(input, options); - -/** - * Creates a braces string from an AST, or an AST node. - * - * ```js - * const braces = require('braces'); - * let ast = braces.parse('foo/{a,b}/bar'); - * console.log(stringify(ast.nodes[2])); //=> '{a,b}' - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.stringify = (input, options = {}) => { - if (typeof input === 'string') { - return stringify(braces.parse(input, options), options); - } - return stringify(input, options); -}; - -/** - * Compiles a brace pattern into a regex-compatible, optimized string. - * This method is called by the main [braces](#braces) function by default. - * - * ```js - * const braces = require('braces'); - * console.log(braces.compile('a/{b,c}/d')); - * //=> ['a/(b|c)/d'] - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.compile = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - return compile(input, options); -}; - -/** - * Expands a brace pattern into an array. This method is called by the - * main [braces](#braces) function when `options.expand` is true. Before - * using this method it's recommended that you read the [performance notes](#performance)) - * and advantages of using [.compile](#compile) instead. - * - * ```js - * const braces = require('braces'); - * console.log(braces.expand('a/{b,c}/d')); - * //=> ['a/b/d', 'a/c/d']; - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.expand = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - - let result = expand(input, options); - - // filter out empty strings if specified - if (options.noempty === true) { - result = result.filter(Boolean); - } - - // filter out duplicates if specified - if (options.nodupes === true) { - result = [...new Set(result)]; - } - - return result; -}; - -/** - * Processes a brace pattern and returns either an expanded array - * (if `options.expand` is true), a highly optimized regex-compatible string. - * This method is called by the main [braces](#braces) function. - * - * ```js - * const braces = require('braces'); - * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) - * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.create = (input, options = {}) => { - if (input === '' || input.length < 3) { - return [input]; - } - - return options.expand !== true - ? braces.compile(input, options) - : braces.expand(input, options); -}; - -/** - * Expose "braces" - */ - -module.exports = braces; diff --git a/node_modules/braces/lib/compile.js b/node_modules/braces/lib/compile.js deleted file mode 100644 index dce69beb..00000000 --- a/node_modules/braces/lib/compile.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -const fill = require('fill-range'); -const utils = require('./utils'); - -const compile = (ast, options = {}) => { - const walk = (node, parent = {}) => { - const invalidBlock = utils.isInvalidBrace(parent); - const invalidNode = node.invalid === true && options.escapeInvalid === true; - const invalid = invalidBlock === true || invalidNode === true; - const prefix = options.escapeInvalid === true ? '\\' : ''; - let output = ''; - - if (node.isOpen === true) { - return prefix + node.value; - } - - if (node.isClose === true) { - console.log('node.isClose', prefix, node.value); - return prefix + node.value; - } - - if (node.type === 'open') { - return invalid ? prefix + node.value : '('; - } - - if (node.type === 'close') { - return invalid ? prefix + node.value : ')'; - } - - if (node.type === 'comma') { - return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; - } - - if (node.value) { - return node.value; - } - - if (node.nodes && node.ranges > 0) { - const args = utils.reduce(node.nodes); - const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true }); - - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; - } - } - - if (node.nodes) { - for (const child of node.nodes) { - output += walk(child, node); - } - } - - return output; - }; - - return walk(ast); -}; - -module.exports = compile; diff --git a/node_modules/braces/lib/constants.js b/node_modules/braces/lib/constants.js deleted file mode 100644 index 2bb3b884..00000000 --- a/node_modules/braces/lib/constants.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -module.exports = { - MAX_LENGTH: 10000, - - // Digits - CHAR_0: '0', /* 0 */ - CHAR_9: '9', /* 9 */ - - // Alphabet chars. - CHAR_UPPERCASE_A: 'A', /* A */ - CHAR_LOWERCASE_A: 'a', /* a */ - CHAR_UPPERCASE_Z: 'Z', /* Z */ - CHAR_LOWERCASE_Z: 'z', /* z */ - - CHAR_LEFT_PARENTHESES: '(', /* ( */ - CHAR_RIGHT_PARENTHESES: ')', /* ) */ - - CHAR_ASTERISK: '*', /* * */ - - // Non-alphabetic chars. - CHAR_AMPERSAND: '&', /* & */ - CHAR_AT: '@', /* @ */ - CHAR_BACKSLASH: '\\', /* \ */ - CHAR_BACKTICK: '`', /* ` */ - CHAR_CARRIAGE_RETURN: '\r', /* \r */ - CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ - CHAR_COLON: ':', /* : */ - CHAR_COMMA: ',', /* , */ - CHAR_DOLLAR: '$', /* . */ - CHAR_DOT: '.', /* . */ - CHAR_DOUBLE_QUOTE: '"', /* " */ - CHAR_EQUAL: '=', /* = */ - CHAR_EXCLAMATION_MARK: '!', /* ! */ - CHAR_FORM_FEED: '\f', /* \f */ - CHAR_FORWARD_SLASH: '/', /* / */ - CHAR_HASH: '#', /* # */ - CHAR_HYPHEN_MINUS: '-', /* - */ - CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ - CHAR_LEFT_CURLY_BRACE: '{', /* { */ - CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ - CHAR_LINE_FEED: '\n', /* \n */ - CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ - CHAR_PERCENT: '%', /* % */ - CHAR_PLUS: '+', /* + */ - CHAR_QUESTION_MARK: '?', /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ - CHAR_RIGHT_CURLY_BRACE: '}', /* } */ - CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ - CHAR_SEMICOLON: ';', /* ; */ - CHAR_SINGLE_QUOTE: '\'', /* ' */ - CHAR_SPACE: ' ', /* */ - CHAR_TAB: '\t', /* \t */ - CHAR_UNDERSCORE: '_', /* _ */ - CHAR_VERTICAL_LINE: '|', /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ -}; diff --git a/node_modules/braces/lib/expand.js b/node_modules/braces/lib/expand.js deleted file mode 100644 index 35b2c41d..00000000 --- a/node_modules/braces/lib/expand.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict'; - -const fill = require('fill-range'); -const stringify = require('./stringify'); -const utils = require('./utils'); - -const append = (queue = '', stash = '', enclose = false) => { - const result = []; - - queue = [].concat(queue); - stash = [].concat(stash); - - if (!stash.length) return queue; - if (!queue.length) { - return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; - } - - for (const item of queue) { - if (Array.isArray(item)) { - for (const value of item) { - result.push(append(value, stash, enclose)); - } - } else { - for (let ele of stash) { - if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); - } - } - } - return utils.flatten(result); -}; - -const expand = (ast, options = {}) => { - const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit; - - const walk = (node, parent = {}) => { - node.queue = []; - - let p = parent; - let q = parent.queue; - - while (p.type !== 'brace' && p.type !== 'root' && p.parent) { - p = p.parent; - q = p.queue; - } - - if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify(node, options))); - return; - } - - if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { - q.push(append(q.pop(), ['{}'])); - return; - } - - if (node.nodes && node.ranges > 0) { - const args = utils.reduce(node.nodes); - - if (utils.exceedsLimit(...args, options.step, rangeLimit)) { - throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); - } - - let range = fill(...args, options); - if (range.length === 0) { - range = stringify(node, options); - } - - q.push(append(q.pop(), range)); - node.nodes = []; - return; - } - - const enclose = utils.encloseBrace(node); - let queue = node.queue; - let block = node; - - while (block.type !== 'brace' && block.type !== 'root' && block.parent) { - block = block.parent; - queue = block.queue; - } - - for (let i = 0; i < node.nodes.length; i++) { - const child = node.nodes[i]; - - if (child.type === 'comma' && node.type === 'brace') { - if (i === 1) queue.push(''); - queue.push(''); - continue; - } - - if (child.type === 'close') { - q.push(append(q.pop(), queue, enclose)); - continue; - } - - if (child.value && child.type !== 'open') { - queue.push(append(queue.pop(), child.value)); - continue; - } - - if (child.nodes) { - walk(child, node); - } - } - - return queue; - }; - - return utils.flatten(walk(ast)); -}; - -module.exports = expand; diff --git a/node_modules/braces/lib/parse.js b/node_modules/braces/lib/parse.js deleted file mode 100644 index 3a6988e6..00000000 --- a/node_modules/braces/lib/parse.js +++ /dev/null @@ -1,331 +0,0 @@ -'use strict'; - -const stringify = require('./stringify'); - -/** - * Constants - */ - -const { - MAX_LENGTH, - CHAR_BACKSLASH, /* \ */ - CHAR_BACKTICK, /* ` */ - CHAR_COMMA, /* , */ - CHAR_DOT, /* . */ - CHAR_LEFT_PARENTHESES, /* ( */ - CHAR_RIGHT_PARENTHESES, /* ) */ - CHAR_LEFT_CURLY_BRACE, /* { */ - CHAR_RIGHT_CURLY_BRACE, /* } */ - CHAR_LEFT_SQUARE_BRACKET, /* [ */ - CHAR_RIGHT_SQUARE_BRACKET, /* ] */ - CHAR_DOUBLE_QUOTE, /* " */ - CHAR_SINGLE_QUOTE, /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = require('./constants'); - -/** - * parse - */ - -const parse = (input, options = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); - } - - const opts = options || {}; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - if (input.length > max) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); - } - - const ast = { type: 'root', input, nodes: [] }; - const stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - const length = input.length; - let index = 0; - let depth = 0; - let value; - - /** - * Helpers - */ - - const advance = () => input[index++]; - const push = node => { - if (node.type === 'text' && prev.type === 'dot') { - prev.type = 'text'; - } - - if (prev && prev.type === 'text' && node.type === 'text') { - prev.value += node.value; - return; - } - - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; - - push({ type: 'bos' }); - - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); - - /** - * Invalid chars - */ - - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; - } - - /** - * Escaped chars - */ - - if (value === CHAR_BACKSLASH) { - push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); - continue; - } - - /** - * Right square bracket (literal): ']' - */ - - if (value === CHAR_RIGHT_SQUARE_BRACKET) { - push({ type: 'text', value: '\\' + value }); - continue; - } - - /** - * Left square bracket: '[' - */ - - if (value === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - - let next; - - while (index < length && (next = advance())) { - value += next; - - if (next === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - continue; - } - - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } - - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - brackets--; - - if (brackets === 0) { - break; - } - } - } - - push({ type: 'text', value }); - continue; - } - - /** - * Parentheses - */ - - if (value === CHAR_LEFT_PARENTHESES) { - block = push({ type: 'paren', nodes: [] }); - stack.push(block); - push({ type: 'text', value }); - continue; - } - - if (value === CHAR_RIGHT_PARENTHESES) { - if (block.type !== 'paren') { - push({ type: 'text', value }); - continue; - } - block = stack.pop(); - push({ type: 'text', value }); - block = stack[stack.length - 1]; - continue; - } - - /** - * Quotes: '|"|` - */ - - if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { - const open = value; - let next; - - if (options.keepQuotes !== true) { - value = ''; - } - - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; - } - - if (next === open) { - if (options.keepQuotes === true) value += next; - break; - } - - value += next; - } - - push({ type: 'text', value }); - continue; - } - - /** - * Left curly brace: '{' - */ - - if (value === CHAR_LEFT_CURLY_BRACE) { - depth++; - - const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; - const brace = { - type: 'brace', - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; - - block = push(brace); - stack.push(block); - push({ type: 'open', value }); - continue; - } - - /** - * Right curly brace: '}' - */ - - if (value === CHAR_RIGHT_CURLY_BRACE) { - if (block.type !== 'brace') { - push({ type: 'text', value }); - continue; - } - - const type = 'close'; - block = stack.pop(); - block.close = true; - - push({ type, value }); - depth--; - - block = stack[stack.length - 1]; - continue; - } - - /** - * Comma: ',' - */ - - if (value === CHAR_COMMA && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - const open = block.nodes.shift(); - block.nodes = [open, { type: 'text', value: stringify(block) }]; - } - - push({ type: 'comma', value }); - block.commas++; - continue; - } - - /** - * Dot: '.' - */ - - if (value === CHAR_DOT && depth > 0 && block.commas === 0) { - const siblings = block.nodes; - - if (depth === 0 || siblings.length === 0) { - push({ type: 'text', value }); - continue; - } - - if (prev.type === 'dot') { - block.range = []; - prev.value += value; - prev.type = 'range'; - - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = 'text'; - continue; - } - - block.ranges++; - block.args = []; - continue; - } - - if (prev.type === 'range') { - siblings.pop(); - - const before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; - continue; - } - - push({ type: 'dot', value }); - continue; - } - - /** - * Text - */ - - push({ type: 'text', value }); - } - - // Mark imbalanced braces and brackets as invalid - do { - block = stack.pop(); - - if (block.type !== 'root') { - block.nodes.forEach(node => { - if (!node.nodes) { - if (node.type === 'open') node.isOpen = true; - if (node.type === 'close') node.isClose = true; - if (!node.nodes) node.type = 'text'; - node.invalid = true; - } - }); - - // get the location of the block on parent.nodes (block's siblings) - const parent = stack[stack.length - 1]; - const index = parent.nodes.indexOf(block); - // replace the (invalid) block with it's nodes - parent.nodes.splice(index, 1, ...block.nodes); - } - } while (stack.length > 0); - - push({ type: 'eos' }); - return ast; -}; - -module.exports = parse; diff --git a/node_modules/braces/lib/stringify.js b/node_modules/braces/lib/stringify.js deleted file mode 100644 index 8bcf872c..00000000 --- a/node_modules/braces/lib/stringify.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -const utils = require('./utils'); - -module.exports = (ast, options = {}) => { - const stringify = (node, parent = {}) => { - const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); - const invalidNode = node.invalid === true && options.escapeInvalid === true; - let output = ''; - - if (node.value) { - if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { - return '\\' + node.value; - } - return node.value; - } - - if (node.value) { - return node.value; - } - - if (node.nodes) { - for (const child of node.nodes) { - output += stringify(child); - } - } - return output; - }; - - return stringify(ast); -}; - diff --git a/node_modules/braces/lib/utils.js b/node_modules/braces/lib/utils.js deleted file mode 100644 index d19311fe..00000000 --- a/node_modules/braces/lib/utils.js +++ /dev/null @@ -1,122 +0,0 @@ -'use strict'; - -exports.isInteger = num => { - if (typeof num === 'number') { - return Number.isInteger(num); - } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isInteger(Number(num)); - } - return false; -}; - -/** - * Find a node of the given type - */ - -exports.find = (node, type) => node.nodes.find(node => node.type === type); - -/** - * Find a node of the given type - */ - -exports.exceedsLimit = (min, max, step = 1, limit) => { - if (limit === false) return false; - if (!exports.isInteger(min) || !exports.isInteger(max)) return false; - return ((Number(max) - Number(min)) / Number(step)) >= limit; -}; - -/** - * Escape the given node with '\\' before node.value - */ - -exports.escapeNode = (block, n = 0, type) => { - const node = block.nodes[n]; - if (!node) return; - - if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { - if (node.escaped !== true) { - node.value = '\\' + node.value; - node.escaped = true; - } - } -}; - -/** - * Returns true if the given brace node should be enclosed in literal braces - */ - -exports.encloseBrace = node => { - if (node.type !== 'brace') return false; - if ((node.commas >> 0 + node.ranges >> 0) === 0) { - node.invalid = true; - return true; - } - return false; -}; - -/** - * Returns true if a brace node is invalid. - */ - -exports.isInvalidBrace = block => { - if (block.type !== 'brace') return false; - if (block.invalid === true || block.dollar) return true; - if ((block.commas >> 0 + block.ranges >> 0) === 0) { - block.invalid = true; - return true; - } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; - } - return false; -}; - -/** - * Returns true if a node is an open or close node - */ - -exports.isOpenOrClose = node => { - if (node.type === 'open' || node.type === 'close') { - return true; - } - return node.open === true || node.close === true; -}; - -/** - * Reduce an array of text nodes. - */ - -exports.reduce = nodes => nodes.reduce((acc, node) => { - if (node.type === 'text') acc.push(node.value); - if (node.type === 'range') node.type = 'text'; - return acc; -}, []); - -/** - * Flatten an array - */ - -exports.flatten = (...args) => { - const result = []; - - const flat = arr => { - for (let i = 0; i < arr.length; i++) { - const ele = arr[i]; - - if (Array.isArray(ele)) { - flat(ele); - continue; - } - - if (ele !== undefined) { - result.push(ele); - } - } - return result; - }; - - flat(args); - return result; -}; diff --git a/node_modules/braces/package.json b/node_modules/braces/package.json deleted file mode 100644 index c3c056e4..00000000 --- a/node_modules/braces/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "braces", - "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", - "version": "3.0.3", - "homepage": "https://github.com/micromatch/braces", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Elan Shanker (https://github.com/es128)", - "Eugene Sharygin (https://github.com/eush77)", - "hemanth.hm (http://h3manth.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" - ], - "repository": "micromatch/braces", - "bugs": { - "url": "https://github.com/micromatch/braces/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "lib" - ], - "main": "index.js", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "mocha", - "benchmark": "node benchmark" - }, - "dependencies": { - "fill-range": "^7.1.1" - }, - "devDependencies": { - "ansi-colors": "^3.2.4", - "bash-path": "^2.0.1", - "gulp-format-md": "^2.0.0", - "mocha": "^6.1.1" - }, - "keywords": [ - "alpha", - "alphabetical", - "bash", - "brace", - "braces", - "expand", - "expansion", - "filepath", - "fill", - "fs", - "glob", - "globbing", - "letter", - "match", - "matches", - "matching", - "number", - "numerical", - "path", - "range", - "ranges", - "sh" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "lint": { - "reflinks": true - }, - "plugins": [ - "gulp-format-md" - ] - } -} diff --git a/node_modules/bytes/History.md b/node_modules/bytes/History.md deleted file mode 100755 index d60ce0e6..00000000 --- a/node_modules/bytes/History.md +++ /dev/null @@ -1,97 +0,0 @@ -3.1.2 / 2022-01-27 -================== - - * Fix return value for un-parsable strings - -3.1.1 / 2021-11-15 -================== - - * Fix "thousandsSeparator" incorrecting formatting fractional part - -3.1.0 / 2019-01-22 -================== - - * Add petabyte (`pb`) support - -3.0.0 / 2017-08-31 -================== - - * Change "kB" to "KB" in format output - * Remove support for Node.js 0.6 - * Remove support for ComponentJS - -2.5.0 / 2017-03-24 -================== - - * Add option "unit" - -2.4.0 / 2016-06-01 -================== - - * Add option "unitSeparator" - -2.3.0 / 2016-02-15 -================== - - * Drop partial bytes on all parsed units - * Fix non-finite numbers to `.format` to return `null` - * Fix parsing byte string that looks like hex - * perf: hoist regular expressions - -2.2.0 / 2015-11-13 -================== - - * add option "decimalPlaces" - * add option "fixedDecimals" - -2.1.0 / 2015-05-21 -================== - - * add `.format` export - * add `.parse` export - -2.0.2 / 2015-05-20 -================== - - * remove map recreation - * remove unnecessary object construction - -2.0.1 / 2015-05-07 -================== - - * fix browserify require - * remove node.extend dependency - -2.0.0 / 2015-04-12 -================== - - * add option "case" - * add option "thousandsSeparator" - * return "null" on invalid parse input - * support proper round-trip: bytes(bytes(num)) === num - * units no longer case sensitive when parsing - -1.0.0 / 2014-05-05 -================== - - * add negative support. fixes #6 - -0.3.0 / 2014-03-19 -================== - - * added terabyte support - -0.2.1 / 2013-04-01 -================== - - * add .component - -0.2.0 / 2012-10-28 -================== - - * bytes(200).should.eql('200b') - -0.1.0 / 2012-07-04 -================== - - * add bytes to string conversion [yields] diff --git a/node_modules/bytes/LICENSE b/node_modules/bytes/LICENSE deleted file mode 100755 index 63e95a96..00000000 --- a/node_modules/bytes/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 TJ Holowaychuk -Copyright (c) 2015 Jed Watson - -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/bytes/Readme.md b/node_modules/bytes/Readme.md deleted file mode 100755 index 5790e23e..00000000 --- a/node_modules/bytes/Readme.md +++ /dev/null @@ -1,152 +0,0 @@ -# Bytes utility - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][ci-image]][ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```bash -$ npm install bytes -``` - -## Usage - -```js -var bytes = require('bytes'); -``` - -#### bytes(number|string value, [options]): number|string|null - -Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. - -**Arguments** - -| Name | Type | Description | -|---------|----------|--------------------| -| value | `number`|`string` | Number value to format or string value to parse | -| options | `Object` | Conversion options for `format` | - -**Returns** - -| Name | Type | Description | -|---------|------------------|-------------------------------------------------| -| results | `string`|`number`|`null` | Return null upon error. Numeric value in bytes, or string value otherwise. | - -**Example** - -```js -bytes(1024); -// output: '1KB' - -bytes('1KB'); -// output: 1024 -``` - -#### bytes.format(number value, [options]): string|null - -Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is - rounded. - -**Arguments** - -| Name | Type | Description | -|---------|----------|--------------------| -| value | `number` | Value in bytes | -| options | `Object` | Conversion options | - -**Options** - -| Property | Type | Description | -|-------------------|--------|-----------------------------------------------------------------------------------------| -| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | -| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | -| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | -| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | -| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | - -**Returns** - -| Name | Type | Description | -|---------|------------------|-------------------------------------------------| -| results | `string`|`null` | Return null upon error. String value otherwise. | - -**Example** - -```js -bytes.format(1024); -// output: '1KB' - -bytes.format(1000); -// output: '1000B' - -bytes.format(1000, {thousandsSeparator: ' '}); -// output: '1 000B' - -bytes.format(1024 * 1.7, {decimalPlaces: 0}); -// output: '2KB' - -bytes.format(1024, {unitSeparator: ' '}); -// output: '1 KB' -``` - -#### bytes.parse(string|number value): number|null - -Parse the string value into an integer in bytes. If no unit is given, or `value` -is a number, it is assumed the value is in bytes. - -Supported units and abbreviations are as follows and are case-insensitive: - - * `b` for bytes - * `kb` for kilobytes - * `mb` for megabytes - * `gb` for gigabytes - * `tb` for terabytes - * `pb` for petabytes - -The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. - -**Arguments** - -| Name | Type | Description | -|---------------|--------|--------------------| -| value | `string`|`number` | String to parse, or number in bytes. | - -**Returns** - -| Name | Type | Description | -|---------|-------------|-------------------------| -| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | - -**Example** - -```js -bytes.parse('1KB'); -// output: 1024 - -bytes.parse('1024'); -// output: 1024 - -bytes.parse(1024); -// output: 1024 -``` - -## License - -[MIT](LICENSE) - -[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci -[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci -[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master -[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master -[downloads-image]: https://badgen.net/npm/dm/bytes -[downloads-url]: https://npmjs.org/package/bytes -[npm-image]: https://badgen.net/npm/v/bytes -[npm-url]: https://npmjs.org/package/bytes diff --git a/node_modules/bytes/index.js b/node_modules/bytes/index.js deleted file mode 100755 index 6f2d0f89..00000000 --- a/node_modules/bytes/index.js +++ /dev/null @@ -1,170 +0,0 @@ -/*! - * bytes - * Copyright(c) 2012-2014 TJ Holowaychuk - * Copyright(c) 2015 Jed Watson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -module.exports = bytes; -module.exports.format = format; -module.exports.parse = parse; - -/** - * Module variables. - * @private - */ - -var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; - -var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; - -var map = { - b: 1, - kb: 1 << 10, - mb: 1 << 20, - gb: 1 << 30, - tb: Math.pow(1024, 4), - pb: Math.pow(1024, 5), -}; - -var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; - -/** - * Convert the given value in bytes into a string or parse to string to an integer in bytes. - * - * @param {string|number} value - * @param {{ - * case: [string], - * decimalPlaces: [number] - * fixedDecimals: [boolean] - * thousandsSeparator: [string] - * unitSeparator: [string] - * }} [options] bytes options. - * - * @returns {string|number|null} - */ - -function bytes(value, options) { - if (typeof value === 'string') { - return parse(value); - } - - if (typeof value === 'number') { - return format(value, options); - } - - return null; -} - -/** - * Format the given value in bytes into a string. - * - * If the value is negative, it is kept as such. If it is a float, - * it is rounded. - * - * @param {number} value - * @param {object} [options] - * @param {number} [options.decimalPlaces=2] - * @param {number} [options.fixedDecimals=false] - * @param {string} [options.thousandsSeparator=] - * @param {string} [options.unit=] - * @param {string} [options.unitSeparator=] - * - * @returns {string|null} - * @public - */ - -function format(value, options) { - if (!Number.isFinite(value)) { - return null; - } - - var mag = Math.abs(value); - var thousandsSeparator = (options && options.thousandsSeparator) || ''; - var unitSeparator = (options && options.unitSeparator) || ''; - var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; - var fixedDecimals = Boolean(options && options.fixedDecimals); - var unit = (options && options.unit) || ''; - - if (!unit || !map[unit.toLowerCase()]) { - if (mag >= map.pb) { - unit = 'PB'; - } else if (mag >= map.tb) { - unit = 'TB'; - } else if (mag >= map.gb) { - unit = 'GB'; - } else if (mag >= map.mb) { - unit = 'MB'; - } else if (mag >= map.kb) { - unit = 'KB'; - } else { - unit = 'B'; - } - } - - var val = value / map[unit.toLowerCase()]; - var str = val.toFixed(decimalPlaces); - - if (!fixedDecimals) { - str = str.replace(formatDecimalsRegExp, '$1'); - } - - if (thousandsSeparator) { - str = str.split('.').map(function (s, i) { - return i === 0 - ? s.replace(formatThousandsRegExp, thousandsSeparator) - : s - }).join('.'); - } - - return str + unitSeparator + unit; -} - -/** - * Parse the string value into an integer in bytes. - * - * If no unit is given, it is assumed the value is in bytes. - * - * @param {number|string} val - * - * @returns {number|null} - * @public - */ - -function parse(val) { - if (typeof val === 'number' && !isNaN(val)) { - return val; - } - - if (typeof val !== 'string') { - return null; - } - - // Test if the string passed is valid - var results = parseRegExp.exec(val); - var floatValue; - var unit = 'b'; - - if (!results) { - // Nothing could be extracted from the given string - floatValue = parseInt(val, 10); - unit = 'b' - } else { - // Retrieve the value and the unit - floatValue = parseFloat(results[1]); - unit = results[4].toLowerCase(); - } - - if (isNaN(floatValue)) { - return null; - } - - return Math.floor(map[unit] * floatValue); -} diff --git a/node_modules/bytes/package.json b/node_modules/bytes/package.json deleted file mode 100755 index f2b6a8b0..00000000 --- a/node_modules/bytes/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "bytes", - "description": "Utility to parse a string bytes to bytes and vice-versa", - "version": "3.1.2", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Jed Watson ", - "Théo FIDRY " - ], - "license": "MIT", - "keywords": [ - "byte", - "bytes", - "utility", - "parse", - "parser", - "convert", - "converter" - ], - "repository": "visionmedia/bytes.js", - "devDependencies": { - "eslint": "7.32.0", - "eslint-plugin-markdown": "2.2.1", - "mocha": "9.2.0", - "nyc": "15.1.0" - }, - "files": [ - "History.md", - "LICENSE", - "Readme.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --check-leaks --reporter spec", - "test-ci": "nyc --reporter=lcov --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/node_modules/call-bind-apply-helpers/.eslintrc b/node_modules/call-bind-apply-helpers/.eslintrc deleted file mode 100755 index 201e859b..00000000 --- a/node_modules/call-bind-apply-helpers/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "id-length": 0, - "new-cap": [2, { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - "no-extra-parens": 0, - "no-magic-numbers": 0, - }, -} diff --git a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml deleted file mode 100755 index 0011e9d6..00000000 --- a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/call-bind-apply-helpers -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bind-apply-helpers/.nycrc b/node_modules/call-bind-apply-helpers/.nycrc deleted file mode 100755 index bdd626ce..00000000 --- a/node_modules/call-bind-apply-helpers/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/call-bind-apply-helpers/CHANGELOG.md b/node_modules/call-bind-apply-helpers/CHANGELOG.md deleted file mode 100755 index 24849428..00000000 --- a/node_modules/call-bind-apply-helpers/CHANGELOG.md +++ /dev/null @@ -1,30 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12 - -### Commits - -- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1) -- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1) - -## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 - -### Commits - -- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) -- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) -- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) - -## v1.0.0 - 2024-12-05 - -### Commits - -- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) -- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) -- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) -- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/node_modules/call-bind-apply-helpers/LICENSE b/node_modules/call-bind-apply-helpers/LICENSE deleted file mode 100755 index f82f3896..00000000 --- a/node_modules/call-bind-apply-helpers/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Jordan Harband - -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/call-bind-apply-helpers/README.md b/node_modules/call-bind-apply-helpers/README.md deleted file mode 100755 index 8fc0dae1..00000000 --- a/node_modules/call-bind-apply-helpers/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Helper functions around Function call/apply/bind, for use in `call-bind`. - -The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. -Please use `call-bind` unless you have a very good reason not to. - -## Getting started - -```sh -npm install --save call-bind-apply-helpers -``` - -## Usage/Examples - -```js -const assert = require('assert'); -const callBindBasic = require('call-bind-apply-helpers'); - -function f(a, b) { - assert.equal(this, 1); - assert.equal(a, 2); - assert.equal(b, 3); - assert.equal(arguments.length, 2); -} - -const fBound = callBindBasic([f, 1]); - -delete Function.prototype.call; -delete Function.prototype.bind; - -fBound(2, 3); -``` - -## Tests - -Clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/call-bind-apply-helpers -[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg -[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg -[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers -[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg -[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers -[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers -[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/node_modules/call-bind-apply-helpers/actualApply.d.ts b/node_modules/call-bind-apply-helpers/actualApply.d.ts deleted file mode 100755 index b87286a2..00000000 --- a/node_modules/call-bind-apply-helpers/actualApply.d.ts +++ /dev/null @@ -1 +0,0 @@ -export = Reflect.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/actualApply.js b/node_modules/call-bind-apply-helpers/actualApply.js deleted file mode 100755 index ffa51355..00000000 --- a/node_modules/call-bind-apply-helpers/actualApply.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); - -var $apply = require('./functionApply'); -var $call = require('./functionCall'); -var $reflectApply = require('./reflectApply'); - -/** @type {import('./actualApply')} */ -module.exports = $reflectApply || bind.call($call, $apply); diff --git a/node_modules/call-bind-apply-helpers/applyBind.d.ts b/node_modules/call-bind-apply-helpers/applyBind.d.ts deleted file mode 100755 index d176c1ab..00000000 --- a/node_modules/call-bind-apply-helpers/applyBind.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import actualApply from './actualApply'; - -type TupleSplitHead = T['length'] extends N - ? T - : T extends [...infer R, any] - ? TupleSplitHead - : never - -type TupleSplitTail = O['length'] extends N - ? T - : T extends [infer F, ...infer R] - ? TupleSplitTail<[...R], N, [...O, F]> - : never - -type TupleSplit = [TupleSplitHead, TupleSplitTail] - -declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; - -export = applyBind; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/applyBind.js b/node_modules/call-bind-apply-helpers/applyBind.js deleted file mode 100755 index d2b77231..00000000 --- a/node_modules/call-bind-apply-helpers/applyBind.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); -var $apply = require('./functionApply'); -var actualApply = require('./actualApply'); - -/** @type {import('./applyBind')} */ -module.exports = function applyBind() { - return actualApply(bind, $apply, arguments); -}; diff --git a/node_modules/call-bind-apply-helpers/functionApply.d.ts b/node_modules/call-bind-apply-helpers/functionApply.d.ts deleted file mode 100755 index 1f6e11b3..00000000 --- a/node_modules/call-bind-apply-helpers/functionApply.d.ts +++ /dev/null @@ -1 +0,0 @@ -export = Function.prototype.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionApply.js b/node_modules/call-bind-apply-helpers/functionApply.js deleted file mode 100755 index c71df9c2..00000000 --- a/node_modules/call-bind-apply-helpers/functionApply.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -/** @type {import('./functionApply')} */ -module.exports = Function.prototype.apply; diff --git a/node_modules/call-bind-apply-helpers/functionCall.d.ts b/node_modules/call-bind-apply-helpers/functionCall.d.ts deleted file mode 100755 index 15e93df3..00000000 --- a/node_modules/call-bind-apply-helpers/functionCall.d.ts +++ /dev/null @@ -1 +0,0 @@ -export = Function.prototype.call; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionCall.js b/node_modules/call-bind-apply-helpers/functionCall.js deleted file mode 100755 index 7a8d8735..00000000 --- a/node_modules/call-bind-apply-helpers/functionCall.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -/** @type {import('./functionCall')} */ -module.exports = Function.prototype.call; diff --git a/node_modules/call-bind-apply-helpers/index.d.ts b/node_modules/call-bind-apply-helpers/index.d.ts deleted file mode 100755 index 541516bd..00000000 --- a/node_modules/call-bind-apply-helpers/index.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -type RemoveFromTuple< - Tuple extends readonly unknown[], - RemoveCount extends number, - Index extends 1[] = [] -> = Index["length"] extends RemoveCount - ? Tuple - : Tuple extends [infer First, ...infer Rest] - ? RemoveFromTuple - : Tuple; - -type ConcatTuples< - Prefix extends readonly unknown[], - Suffix extends readonly unknown[] -> = [...Prefix, ...Suffix]; - -type ExtractFunctionParams = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R - ? { thisArg: TThis; params: P; returnType: R } - : never; - -type BindFunction< - T extends (this: any, ...args: any[]) => any, - TThis, - TBoundArgs extends readonly unknown[], - ReceiverBound extends boolean -> = ExtractFunctionParams extends { - thisArg: infer OrigThis; - params: infer P extends readonly unknown[]; - returnType: infer R; -} - ? ReceiverBound extends true - ? (...args: RemoveFromTuple>) => R extends [OrigThis, ...infer Rest] - ? [TThis, ...Rest] // Replace `this` with `thisArg` - : R - : >>( - thisArg: U, - ...args: RemainingArgs - ) => R extends [OrigThis, ...infer Rest] - ? [U, ...ConcatTuples] // Preserve bound args in return type - : R - : never; - -declare function callBind< - const T extends (this: any, ...args: any[]) => any, - Extracted extends ExtractFunctionParams, - const TBoundArgs extends Partial & readonly unknown[], - const TThis extends Extracted["thisArg"] ->( - args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] -): BindFunction; - -declare function callBind< - const T extends (this: any, ...args: any[]) => any, - Extracted extends ExtractFunctionParams, - const TBoundArgs extends Partial & readonly unknown[] ->( - args: [fn: T, ...boundArgs: TBoundArgs] -): BindFunction; - -declare function callBind( - args: [fn: Exclude, ...rest: TArgs] -): never; - -// export as namespace callBind; -export = callBind; diff --git a/node_modules/call-bind-apply-helpers/index.js b/node_modules/call-bind-apply-helpers/index.js deleted file mode 100755 index 2f6dab4c..00000000 --- a/node_modules/call-bind-apply-helpers/index.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); -var $TypeError = require('es-errors/type'); - -var $call = require('./functionCall'); -var $actualApply = require('./actualApply'); - -/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ -module.exports = function callBindBasic(args) { - if (args.length < 1 || typeof args[0] !== 'function') { - throw new $TypeError('a function is required'); - } - return $actualApply(bind, $call, args); -}; diff --git a/node_modules/call-bind-apply-helpers/package.json b/node_modules/call-bind-apply-helpers/package.json deleted file mode 100755 index 923b8be2..00000000 --- a/node_modules/call-bind-apply-helpers/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "call-bind-apply-helpers", - "version": "1.0.2", - "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", - "main": "index.js", - "exports": { - ".": "./index.js", - "./actualApply": "./actualApply.js", - "./applyBind": "./applyBind.js", - "./functionApply": "./functionApply.js", - "./functionCall": "./functionCall.js", - "./reflectApply": "./reflectApply.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=auto", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "prelint": "evalmd README.md", - "lint": "eslint --ext=.js,.mjs .", - "postlint": "tsc -p . && attw -P", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "npx npm@'>=10.2' audit --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" - }, - "author": "Jordan Harband ", - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" - }, - "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "devDependencies": { - "@arethetypeswrong/cli": "^0.17.3", - "@ljharb/eslint-config": "^21.1.1", - "@ljharb/tsconfig": "^0.2.3", - "@types/for-each": "^0.3.3", - "@types/function-bind": "^1.1.10", - "@types/object-inspect": "^1.13.0", - "@types/tape": "^5.8.1", - "auto-changelog": "^2.5.0", - "encoding": "^0.1.13", - "es-value-fixtures": "^1.7.1", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "for-each": "^0.3.5", - "has-strict-mode": "^1.1.0", - "in-publish": "^2.0.1", - "npmignore": "^0.3.1", - "nyc": "^10.3.2", - "object-inspect": "^1.13.4", - "safe-publish-latest": "^2.0.0", - "tape": "^5.9.0", - "typescript": "next" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - }, - "engines": { - "node": ">= 0.4" - } -} diff --git a/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/node_modules/call-bind-apply-helpers/reflectApply.d.ts deleted file mode 100755 index 6b2ae764..00000000 --- a/node_modules/call-bind-apply-helpers/reflectApply.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const reflectApply: false | typeof Reflect.apply; - -export = reflectApply; diff --git a/node_modules/call-bind-apply-helpers/reflectApply.js b/node_modules/call-bind-apply-helpers/reflectApply.js deleted file mode 100755 index 3d03caa6..00000000 --- a/node_modules/call-bind-apply-helpers/reflectApply.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -/** @type {import('./reflectApply')} */ -module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/node_modules/call-bind-apply-helpers/test/index.js b/node_modules/call-bind-apply-helpers/test/index.js deleted file mode 100755 index 1cdc89ed..00000000 --- a/node_modules/call-bind-apply-helpers/test/index.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var callBind = require('../'); -var hasStrictMode = require('has-strict-mode')(); -var forEach = require('for-each'); -var inspect = require('object-inspect'); -var v = require('es-value-fixtures'); - -var test = require('tape'); - -test('callBindBasic', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - // @ts-expect-error - function () { callBind([nonFunction]); }, - TypeError, - inspect(nonFunction) + ' is not a function' - ); - }); - - var sentinel = { sentinel: true }; - /** @type {(this: T, a: A, b: B) => [T | undefined, A, B]} */ - var func = function (a, b) { - // eslint-disable-next-line no-invalid-this - return [!hasStrictMode && this === global ? undefined : this, a, b]; - }; - t.equal(func.length, 2, 'original function length is 2'); - - /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ - var bound = callBind([func]); - /** type {((a: number, b: number) => [typeof sentinel, typeof a, typeof b])} */ - var boundR = callBind([func, sentinel]); - /** type {((b: number) => [typeof sentinel, number, typeof b])} */ - var boundArg = callBind([func, sentinel, /** @type {const} */ (1)]); - - // @ts-expect-error - t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); - - // @ts-expect-error - t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); - // @ts-expect-error - t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); - // @ts-expect-error - t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); - // @ts-expect-error - t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); - - t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); - t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); - t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); - t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); - - // @ts-expect-error - t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); - // @ts-expect-error - t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); - // @ts-expect-error - t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); - // @ts-expect-error - t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); - - t.end(); -}); diff --git a/node_modules/call-bind-apply-helpers/tsconfig.json b/node_modules/call-bind-apply-helpers/tsconfig.json deleted file mode 100755 index aef99930..00000000 --- a/node_modules/call-bind-apply-helpers/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@ljharb/tsconfig", - "compilerOptions": { - "target": "es2021", - }, - "exclude": [ - "coverage", - ], -} \ No newline at end of file diff --git a/node_modules/call-bound/.eslintrc b/node_modules/call-bound/.eslintrc deleted file mode 100755 index 2612ed8f..00000000 --- a/node_modules/call-bound/.eslintrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "new-cap": [2, { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - }, -} diff --git a/node_modules/call-bound/.github/FUNDING.yml b/node_modules/call-bound/.github/FUNDING.yml deleted file mode 100755 index 2a2a1357..00000000 --- a/node_modules/call-bound/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/call-bound -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bound/.nycrc b/node_modules/call-bound/.nycrc deleted file mode 100755 index bdd626ce..00000000 --- a/node_modules/call-bound/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/call-bound/CHANGELOG.md b/node_modules/call-bound/CHANGELOG.md deleted file mode 100755 index 8bde4e9a..00000000 --- a/node_modules/call-bound/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.4](https://github.com/ljharb/call-bound/compare/v1.0.3...v1.0.4) - 2025-03-03 - -### Commits - -- [types] improve types [`e648922`](https://github.com/ljharb/call-bound/commit/e6489222a9e54f350fbf952ceabe51fd8b6027ff) -- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`a42a5eb`](https://github.com/ljharb/call-bound/commit/a42a5ebe6c1b54fcdc7997c7dc64fdca9e936719) -- [Deps] update `call-bind-apply-helpers`, `get-intrinsic` [`f529eac`](https://github.com/ljharb/call-bound/commit/f529eac132404c17156bbc23ab2297a25d0f20b8) - -## [v1.0.3](https://github.com/ljharb/call-bound/compare/v1.0.2...v1.0.3) - 2024-12-15 - -### Commits - -- [Refactor] use `call-bind-apply-helpers` instead of `call-bind` [`5e0b134`](https://github.com/ljharb/call-bound/commit/5e0b13496df14fb7d05dae9412f088da8d3f75be) -- [Deps] update `get-intrinsic` [`41fc967`](https://github.com/ljharb/call-bound/commit/41fc96732a22c7b7e8f381f93ccc54bb6293be2e) -- [readme] fix example [`79a0137`](https://github.com/ljharb/call-bound/commit/79a0137723f7c6d09c9c05452bbf8d5efb5d6e49) -- [meta] add `sideEffects` flag [`08b07be`](https://github.com/ljharb/call-bound/commit/08b07be7f1c03f67dc6f3cdaf0906259771859f7) - -## [v1.0.2](https://github.com/ljharb/call-bound/compare/v1.0.1...v1.0.2) - 2024-12-10 - -### Commits - -- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `gopd` [`e6a5ffe`](https://github.com/ljharb/call-bound/commit/e6a5ffe849368fe4f74dfd6cdeca1b9baa39e8d5) -- [Deps] update `call-bind`, `get-intrinsic` [`2aeb5b5`](https://github.com/ljharb/call-bound/commit/2aeb5b521dc2b2683d1345c753ea1161de2d1c14) -- [types] improve return type [`1a0c9fe`](https://github.com/ljharb/call-bound/commit/1a0c9fe3114471e7ca1f57d104e2efe713bb4871) - -## v1.0.1 - 2024-12-05 - -### Commits - -- Initial implementation, tests, readme, types [`6d94121`](https://github.com/ljharb/call-bound/commit/6d94121a9243602e506334069f7a03189fe3363d) -- Initial commit [`0eae867`](https://github.com/ljharb/call-bound/commit/0eae867334ea025c33e6e91cdecfc9df96680cf9) -- npm init [`71b2479`](https://github.com/ljharb/call-bound/commit/71b2479c6723e0b7d91a6b663613067e98b7b275) -- Only apps should have lockfiles [`c3754a9`](https://github.com/ljharb/call-bound/commit/c3754a949b7f9132b47e2d18c1729889736741eb) -- [actions] skip `npm ls` in node < 10 [`74275a5`](https://github.com/ljharb/call-bound/commit/74275a5186b8caf6309b6b97472bdcb0df4683a8) -- [Dev Deps] add missing peer dep [`1354de8`](https://github.com/ljharb/call-bound/commit/1354de8679413e4ae9c523d85f76fa7a5e032d97) diff --git a/node_modules/call-bound/LICENSE b/node_modules/call-bound/LICENSE deleted file mode 100755 index f82f3896..00000000 --- a/node_modules/call-bound/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Jordan Harband - -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/call-bound/README.md b/node_modules/call-bound/README.md deleted file mode 100755 index a44e43e5..00000000 --- a/node_modules/call-bound/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# call-bound [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`. - -## Getting started - -```sh -npm install --save call-bound -``` - -## Usage/Examples - -```js -const assert = require('assert'); -const callBound = require('call-bound'); - -const slice = callBound('Array.prototype.slice'); - -delete Function.prototype.call; -delete Function.prototype.bind; -delete Array.prototype.slice; - -assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); -``` - -## Tests - -Clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/call-bound -[npm-version-svg]: https://versionbadg.es/ljharb/call-bound.svg -[deps-svg]: https://david-dm.org/ljharb/call-bound.svg -[deps-url]: https://david-dm.org/ljharb/call-bound -[dev-deps-svg]: https://david-dm.org/ljharb/call-bound/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/call-bound#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/call-bound.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/call-bound.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/call-bound.svg -[downloads-url]: https://npm-stat.com/charts.html?package=call-bound -[codecov-image]: https://codecov.io/gh/ljharb/call-bound/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/call-bound/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bound -[actions-url]: https://github.com/ljharb/call-bound/actions diff --git a/node_modules/call-bound/index.d.ts b/node_modules/call-bound/index.d.ts deleted file mode 100755 index 5562f00e..00000000 --- a/node_modules/call-bound/index.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -type Intrinsic = typeof globalThis; - -type IntrinsicName = keyof Intrinsic | `%${keyof Intrinsic}%`; - -type IntrinsicPath = IntrinsicName | `${StripPercents}.${string}` | `%${StripPercents}.${string}%`; - -type AllowMissing = boolean; - -type StripPercents = T extends `%${infer U}%` ? U : T; - -type BindMethodPrecise = - F extends (this: infer This, ...args: infer Args) => infer R - ? (obj: This, ...args: Args) => R - : F extends { - (this: infer This1, ...args: infer Args1): infer R1; - (this: infer This2, ...args: infer Args2): infer R2 - } - ? { - (obj: This1, ...args: Args1): R1; - (obj: This2, ...args: Args2): R2 - } - : never - -// Extract method type from a prototype -type GetPrototypeMethod = - (typeof globalThis)[T] extends { prototype: any } - ? M extends keyof (typeof globalThis)[T]['prototype'] - ? (typeof globalThis)[T]['prototype'][M] - : never - : never - -// Get static property/method -type GetStaticMember = - P extends keyof (typeof globalThis)[T] ? (typeof globalThis)[T][P] : never - -// Type that maps string path to actual bound function or value with better precision -type BoundIntrinsic = - S extends `${infer Obj}.prototype.${infer Method}` - ? Obj extends keyof typeof globalThis - ? BindMethodPrecise> - : unknown - : S extends `${infer Obj}.${infer Prop}` - ? Obj extends keyof typeof globalThis - ? GetStaticMember - : unknown - : unknown - -declare function arraySlice(array: readonly T[], start?: number, end?: number): T[]; -declare function arraySlice(array: ArrayLike, start?: number, end?: number): T[]; -declare function arraySlice(array: IArguments, start?: number, end?: number): T[]; - -// Special cases for methods that need explicit typing -interface SpecialCases { - '%Object.prototype.isPrototypeOf%': (thisArg: {}, obj: unknown) => boolean; - '%String.prototype.replace%': { - (str: string, searchValue: string | RegExp, replaceValue: string): string; - (str: string, searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string - }; - '%Object.prototype.toString%': (obj: {}) => string; - '%Object.prototype.hasOwnProperty%': (obj: {}, v: PropertyKey) => boolean; - '%Array.prototype.slice%': typeof arraySlice; - '%Array.prototype.map%': (array: readonly T[], callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any) => U[]; - '%Array.prototype.filter%': (array: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any) => T[]; - '%Array.prototype.indexOf%': (array: readonly T[], searchElement: T, fromIndex?: number) => number; - '%Function.prototype.apply%': (fn: (...args: A) => R, thisArg: any, args: A) => R; - '%Function.prototype.call%': (fn: (...args: A) => R, thisArg: any, ...args: A) => R; - '%Function.prototype.bind%': (fn: (...args: A) => R, thisArg: any, ...args: A) => (...remainingArgs: A) => R; - '%Promise.prototype.then%': { - (promise: Promise, onfulfilled: (value: T) => R | PromiseLike): Promise; - (promise: Promise, onfulfilled: ((value: T) => R | PromiseLike) | undefined | null, onrejected: (reason: any) => R | PromiseLike): Promise; - }; - '%RegExp.prototype.test%': (regexp: RegExp, str: string) => boolean; - '%RegExp.prototype.exec%': (regexp: RegExp, str: string) => RegExpExecArray | null; - '%Error.prototype.toString%': (error: Error) => string; - '%TypeError.prototype.toString%': (error: TypeError) => string; - '%String.prototype.split%': ( - obj: unknown, - splitter: string | RegExp | { - [Symbol.split](string: string, limit?: number): string[]; - }, - limit?: number | undefined - ) => string[]; -} - -/** - * Returns a bound function for a prototype method, or a value for a static property. - * - * @param name - The name of the intrinsic (e.g. 'Array.prototype.slice') - * @param {AllowMissing} [allowMissing] - Whether to allow missing intrinsics (default: false) - */ -declare function callBound, S extends IntrinsicPath>(name: K, allowMissing?: AllowMissing): SpecialCases[`%${StripPercents}%`]; -declare function callBound, S extends IntrinsicPath>(name: S, allowMissing?: AllowMissing): BoundIntrinsic; - -export = callBound; diff --git a/node_modules/call-bound/index.js b/node_modules/call-bound/index.js deleted file mode 100755 index e9ade749..00000000 --- a/node_modules/call-bound/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBindBasic = require('call-bind-apply-helpers'); - -/** @type {(thisArg: string, searchString: string, position?: number) => number} */ -var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); - -/** @type {import('.')} */ -module.exports = function callBoundIntrinsic(name, allowMissing) { - /* eslint no-extra-parens: 0 */ - - var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing)); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { - return callBindBasic(/** @type {const} */ ([intrinsic])); - } - return intrinsic; -}; diff --git a/node_modules/call-bound/package.json b/node_modules/call-bound/package.json deleted file mode 100755 index d542db43..00000000 --- a/node_modules/call-bound/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "call-bound", - "version": "1.0.4", - "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "sideEffects": false, - "scripts": { - "prepack": "npmignore --auto --commentLines=auto", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "prelint": "evalmd README.md", - "lint": "eslint --ext=.js,.mjs .", - "postlint": "tsc -p . && attw -P", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "npx npm@'>=10.2' audit --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/call-bound.git" - }, - "keywords": [ - "javascript", - "ecmascript", - "es", - "js", - "callbind", - "callbound", - "call", - "bind", - "bound", - "call-bind", - "call-bound", - "function", - "es-abstract" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/call-bound/issues" - }, - "homepage": "https://github.com/ljharb/call-bound#readme", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "devDependencies": { - "@arethetypeswrong/cli": "^0.17.4", - "@ljharb/eslint-config": "^21.1.1", - "@ljharb/tsconfig": "^0.3.0", - "@types/call-bind": "^1.0.5", - "@types/get-intrinsic": "^1.2.3", - "@types/tape": "^5.8.1", - "auto-changelog": "^2.5.0", - "encoding": "^0.1.13", - "es-value-fixtures": "^1.7.1", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "for-each": "^0.3.5", - "gopd": "^1.2.0", - "has-strict-mode": "^1.1.0", - "in-publish": "^2.0.1", - "npmignore": "^0.3.1", - "nyc": "^10.3.2", - "object-inspect": "^1.13.4", - "safe-publish-latest": "^2.0.0", - "tape": "^5.9.0", - "typescript": "next" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - }, - "engines": { - "node": ">= 0.4" - } -} diff --git a/node_modules/call-bound/test/index.js b/node_modules/call-bound/test/index.js deleted file mode 100755 index a2fc9f0f..00000000 --- a/node_modules/call-bound/test/index.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var callBound = require('../'); - -/** @template {true} T @template U @typedef {T extends U ? T : never} AssertType */ - -test('callBound', function (t) { - // static primitive - t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); - t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); - - // static non-function object - t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); - t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); - t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); - t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); - - // static function - t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); - t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); - - // prototype primitive - t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); - t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); - - var x = callBound('Object.prototype.toString'); - var y = callBound('%Object.prototype.toString%'); - - // prototype function - t.notEqual(x, Object.prototype.toString, 'Object.prototype.toString does not yield itself'); - t.notEqual(y, Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); - t.equal(x(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); - t.equal(y(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); - - t['throws']( - // @ts-expect-error - function () { callBound('does not exist'); }, - SyntaxError, - 'nonexistent intrinsic throws' - ); - t['throws']( - // @ts-expect-error - function () { callBound('does not exist', true); }, - SyntaxError, - 'allowMissing arg still throws for unknown intrinsic' - ); - - t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { - st['throws']( - function () { callBound('WeakRef'); }, - TypeError, - 'real but absent intrinsic throws' - ); - st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/call-bound/tsconfig.json b/node_modules/call-bound/tsconfig.json deleted file mode 100755 index 8976d98b..00000000 --- a/node_modules/call-bound/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "@ljharb/tsconfig", - "compilerOptions": { - "target": "ESNext", - "lib": ["es2024"], - }, - "exclude": [ - "coverage", - ], -} diff --git a/node_modules/chokidar/LICENSE b/node_modules/chokidar/LICENSE deleted file mode 100644 index fa9162b5..00000000 --- a/node_modules/chokidar/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker - -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/chokidar/README.md b/node_modules/chokidar/README.md deleted file mode 100644 index 8e25decb..00000000 --- a/node_modules/chokidar/README.md +++ /dev/null @@ -1,308 +0,0 @@ -# Chokidar [![Weekly downloads](https://img.shields.io/npm/dw/chokidar.svg)](https://github.com/paulmillr/chokidar) [![Yearly downloads](https://img.shields.io/npm/dy/chokidar.svg)](https://github.com/paulmillr/chokidar) - -> Minimal and efficient cross-platform file watching library - -[![NPM](https://nodei.co/npm/chokidar.png)](https://www.npmjs.com/package/chokidar) - -## Why? - -Node.js `fs.watch`: - -* Doesn't report filenames on MacOS. -* Doesn't report events at all when using editors like Sublime on MacOS. -* Often reports events twice. -* Emits most changes as `rename`. -* Does not provide an easy way to recursively watch file trees. -* Does not support recursive watching on Linux. - -Node.js `fs.watchFile`: - -* Almost as bad at event handling. -* Also does not provide any recursive watching. -* Results in high CPU utilization. - -Chokidar resolves these problems. - -Initially made for **[Brunch](https://brunch.io/)** (an ultra-swift web app build tool), it is now used in -[Microsoft's Visual Studio Code](https://github.com/microsoft/vscode), -[gulp](https://github.com/gulpjs/gulp/), -[karma](https://karma-runner.github.io/), -[PM2](https://github.com/Unitech/PM2), -[browserify](http://browserify.org/), -[webpack](https://webpack.github.io/), -[BrowserSync](https://www.browsersync.io/), -and [many others](https://www.npmjs.com/browse/depended/chokidar). -It has proven itself in production environments. - -Version 3 is out! Check out our blog post about it: [Chokidar 3: How to save 32TB of traffic every week](https://paulmillr.com/posts/chokidar-3-save-32tb-of-traffic/) - -## How? - -Chokidar does still rely on the Node.js core `fs` module, but when using -`fs.watch` and `fs.watchFile` for watching, it normalizes the events it -receives, often checking for truth by getting file stats and/or dir contents. - -On MacOS, chokidar by default uses a native extension exposing the Darwin -`FSEvents` API. This provides very efficient recursive watching compared with -implementations like `kqueue` available on most \*nix platforms. Chokidar still -does have to do some work to normalize the events received that way as well. - -On most other platforms, the `fs.watch`-based implementation is the default, which -avoids polling and keeps CPU usage down. Be advised that chokidar will initiate -watchers recursively for everything within scope of the paths that have been -specified, so be judicious about not wasting system resources by watching much -more than needed. - -## Getting started - -Install with npm: - -```sh -npm install chokidar -``` - -Then `require` and use it in your code: - -```javascript -const chokidar = require('chokidar'); - -// One-liner for current directory -chokidar.watch('.').on('all', (event, path) => { - console.log(event, path); -}); -``` - -## API - -```javascript -// Example of a more typical implementation structure - -// Initialize watcher. -const watcher = chokidar.watch('file, dir, glob, or array', { - ignored: /(^|[\/\\])\../, // ignore dotfiles - persistent: true -}); - -// Something to use when events are received. -const log = console.log.bind(console); -// Add event listeners. -watcher - .on('add', path => log(`File ${path} has been added`)) - .on('change', path => log(`File ${path} has been changed`)) - .on('unlink', path => log(`File ${path} has been removed`)); - -// More possible events. -watcher - .on('addDir', path => log(`Directory ${path} has been added`)) - .on('unlinkDir', path => log(`Directory ${path} has been removed`)) - .on('error', error => log(`Watcher error: ${error}`)) - .on('ready', () => log('Initial scan complete. Ready for changes')) - .on('raw', (event, path, details) => { // internal - log('Raw event info:', event, path, details); - }); - -// 'add', 'addDir' and 'change' events also receive stat() results as second -// argument when available: https://nodejs.org/api/fs.html#fs_class_fs_stats -watcher.on('change', (path, stats) => { - if (stats) console.log(`File ${path} changed size to ${stats.size}`); -}); - -// Watch new files. -watcher.add('new-file'); -watcher.add(['new-file-2', 'new-file-3', '**/other-file*']); - -// Get list of actual paths being watched on the filesystem -var watchedPaths = watcher.getWatched(); - -// Un-watch some files. -await watcher.unwatch('new-file*'); - -// Stop watching. -// The method is async! -watcher.close().then(() => console.log('closed')); - -// Full list of options. See below for descriptions. -// Do not use this example! -chokidar.watch('file', { - persistent: true, - - ignored: '*.txt', - ignoreInitial: false, - followSymlinks: true, - cwd: '.', - disableGlobbing: false, - - usePolling: false, - interval: 100, - binaryInterval: 300, - alwaysStat: false, - depth: 99, - awaitWriteFinish: { - stabilityThreshold: 2000, - pollInterval: 100 - }, - - ignorePermissionErrors: false, - atomic: true // or a custom 'atomicity delay', in milliseconds (default 100) -}); - -``` - -`chokidar.watch(paths, [options])` - -* `paths` (string or array of strings). Paths to files, dirs to be watched -recursively, or glob patterns. - - Note: globs must not contain windows separators (`\`), - because that's how they work by the standard — - you'll need to replace them with forward slashes (`/`). - - Note 2: for additional glob documentation, check out low-level - library: [picomatch](https://github.com/micromatch/picomatch). -* `options` (object) Options object as defined below: - -#### Persistence - -* `persistent` (default: `true`). Indicates whether the process -should continue to run as long as files are being watched. If set to -`false` when using `fsevents` to watch, no more events will be emitted -after `ready`, even if the process continues to run. - -#### Path filtering - -* `ignored` ([anymatch](https://github.com/es128/anymatch)-compatible definition) -Defines files/paths to be ignored. The whole relative or absolute path is -tested, not just filename. If a function with two arguments is provided, it -gets called twice per path - once with a single argument (the path), second -time with two arguments (the path and the -[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) -object of that path). -* `ignoreInitial` (default: `false`). If set to `false` then `add`/`addDir` events are also emitted for matching paths while -instantiating the watching as chokidar discovers these file paths (before the `ready` event). -* `followSymlinks` (default: `true`). When `false`, only the -symlinks themselves will be watched for changes instead of following -the link references and bubbling events through the link's path. -* `cwd` (no default). The base directory from which watch `paths` are to be -derived. Paths emitted with events will be relative to this. -* `disableGlobbing` (default: `false`). If set to `true` then the strings passed to `.watch()` and `.add()` are treated as -literal path names, even if they look like globs. - -#### Performance - -* `usePolling` (default: `false`). -Whether to use fs.watchFile (backed by polling), or fs.watch. If polling -leads to high CPU utilization, consider setting this to `false`. It is -typically necessary to **set this to `true` to successfully watch files over -a network**, and it may be necessary to successfully watch files in other -non-standard situations. Setting to `true` explicitly on MacOS overrides the -`useFsEvents` default. You may also set the CHOKIDAR_USEPOLLING env variable -to true (1) or false (0) in order to override this option. -* _Polling-specific settings_ (effective when `usePolling: true`) - * `interval` (default: `100`). Interval of file system polling, in milliseconds. You may also - set the CHOKIDAR_INTERVAL env variable to override this option. - * `binaryInterval` (default: `300`). Interval of file system - polling for binary files. - ([see list of binary extensions](https://github.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) -* `useFsEvents` (default: `true` on MacOS). Whether to use the -`fsevents` watching interface if available. When set to `true` explicitly -and `fsevents` is available this supercedes the `usePolling` setting. When -set to `false` on MacOS, `usePolling: true` becomes the default. -* `alwaysStat` (default: `false`). If relying upon the -[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) -object that may get passed with `add`, `addDir`, and `change` events, set -this to `true` to ensure it is provided even in cases where it wasn't -already available from the underlying watch events. -* `depth` (default: `undefined`). If set, limits how many levels of -subdirectories will be traversed. -* `awaitWriteFinish` (default: `false`). -By default, the `add` event will fire when a file first appears on disk, before -the entire file has been written. Furthermore, in some cases some `change` -events will be emitted while the file is being written. In some cases, -especially when watching for large files there will be a need to wait for the -write operation to finish before responding to a file creation or modification. -Setting `awaitWriteFinish` to `true` (or a truthy value) will poll file size, -holding its `add` and `change` events until the size does not change for a -configurable amount of time. The appropriate duration setting is heavily -dependent on the OS and hardware. For accurate detection this parameter should -be relatively high, making file watching much less responsive. -Use with caution. - * *`options.awaitWriteFinish` can be set to an object in order to adjust - timing params:* - * `awaitWriteFinish.stabilityThreshold` (default: 2000). Amount of time in - milliseconds for a file size to remain constant before emitting its event. - * `awaitWriteFinish.pollInterval` (default: 100). File size polling interval, in milliseconds. - -#### Errors - -* `ignorePermissionErrors` (default: `false`). Indicates whether to watch files -that don't have read permissions if possible. If watching fails due to `EPERM` -or `EACCES` with this set to `true`, the errors will be suppressed silently. -* `atomic` (default: `true` if `useFsEvents` and `usePolling` are `false`). -Automatically filters out artifacts that occur when using editors that use -"atomic writes" instead of writing directly to the source file. If a file is -re-added within 100 ms of being deleted, Chokidar emits a `change` event -rather than `unlink` then `add`. If the default of 100 ms does not work well -for you, you can override it by setting `atomic` to a custom value, in -milliseconds. - -### Methods & Events - -`chokidar.watch()` produces an instance of `FSWatcher`. Methods of `FSWatcher`: - -* `.add(path / paths)`: Add files, directories, or glob patterns for tracking. -Takes an array of strings or just one string. -* `.on(event, callback)`: Listen for an FS event. -Available events: `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `ready`, -`raw`, `error`. -Additionally `all` is available which gets emitted with the underlying event -name and path for every event other than `ready`, `raw`, and `error`. `raw` is internal, use it carefully. -* `.unwatch(path / paths)`: Stop watching files, directories, or glob patterns. -Takes an array of strings or just one string. -* `.close()`: **async** Removes all listeners from watched files. Asynchronous, returns Promise. Use with `await` to ensure bugs don't happen. -* `.getWatched()`: Returns an object representing all the paths on the file -system being watched by this `FSWatcher` instance. The object's keys are all the -directories (using absolute paths unless the `cwd` option was used), and the -values are arrays of the names of the items contained in each directory. - -## CLI - -If you need a CLI interface for your file watching, check out -[chokidar-cli](https://github.com/open-cli-tools/chokidar-cli), allowing you to -execute a command on each change, or get a stdio stream of change events. - -## Install Troubleshooting - -* `npm WARN optional dep failed, continuing fsevents@n.n.n` - * This message is normal part of how `npm` handles optional dependencies and is - not indicative of a problem. Even if accompanied by other related error messages, - Chokidar should function properly. - -* `TypeError: fsevents is not a constructor` - * Update chokidar by doing `rm -rf node_modules package-lock.json yarn.lock && npm install`, or update your dependency that uses chokidar. - -* Chokidar is producing `ENOSP` error on Linux, like this: - * `bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell` - `Error: watch /home/ ENOSPC` - * This means Chokidar ran out of file handles and you'll need to increase their count by executing the following command in Terminal: - `echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p` - -## Changelog - -For more detailed changelog, see [`full_changelog.md`](.github/full_changelog.md). -- **v3.5 (Jan 6, 2021):** Support for ARM Macs with Apple Silicon. Fixes for deleted symlinks. -- **v3.4 (Apr 26, 2020):** Support for directory-based symlinks. Fixes for macos file replacement. -- **v3.3 (Nov 2, 2019):** `FSWatcher#close()` method became async. That fixes IO race conditions related to close method. -- **v3.2 (Oct 1, 2019):** Improve Linux RAM usage by 50%. Race condition fixes. Windows glob fixes. Improve stability by using tight range of dependency versions. -- **v3.1 (Sep 16, 2019):** dotfiles are no longer filtered out by default. Use `ignored` option if needed. Improve initial Linux scan time by 50%. -- **v3 (Apr 30, 2019):** massive CPU & RAM consumption improvements; reduces deps / package size by a factor of 17x and bumps Node.js requirement to v8.16 and higher. -- **v2 (Dec 29, 2017):** Globs are now posix-style-only; without windows support. Tons of bugfixes. -- **v1 (Apr 7, 2015):** Glob support, symlink support, tons of bugfixes. Node 0.8+ is supported -- **v0.1 (Apr 20, 2012):** Initial release, extracted from [Brunch](https://github.com/brunch/brunch/blob/9847a065aea300da99bd0753f90354cde9de1261/src/helpers.coffee#L66) - -## Also - -Why was chokidar named this way? What's the meaning behind it? - ->Chowkidar is a transliteration of a Hindi word meaning 'watchman, gatekeeper', चौकीदार. This ultimately comes from Sanskrit _ चतुष्क_ (crossway, quadrangle, consisting-of-four). This word is also used in other languages like Urdu as (چوکیدار) which is widely used in Pakistan and India. - -## License - -MIT (c) Paul Miller (), see [LICENSE](LICENSE) file. diff --git a/node_modules/chokidar/index.js b/node_modules/chokidar/index.js deleted file mode 100644 index 8752893c..00000000 --- a/node_modules/chokidar/index.js +++ /dev/null @@ -1,973 +0,0 @@ -'use strict'; - -const { EventEmitter } = require('events'); -const fs = require('fs'); -const sysPath = require('path'); -const { promisify } = require('util'); -const readdirp = require('readdirp'); -const anymatch = require('anymatch').default; -const globParent = require('glob-parent'); -const isGlob = require('is-glob'); -const braces = require('braces'); -const normalizePath = require('normalize-path'); - -const NodeFsHandler = require('./lib/nodefs-handler'); -const FsEventsHandler = require('./lib/fsevents-handler'); -const { - EV_ALL, - EV_READY, - EV_ADD, - EV_CHANGE, - EV_UNLINK, - EV_ADD_DIR, - EV_UNLINK_DIR, - EV_RAW, - EV_ERROR, - - STR_CLOSE, - STR_END, - - BACK_SLASH_RE, - DOUBLE_SLASH_RE, - SLASH_OR_BACK_SLASH_RE, - DOT_RE, - REPLACER_RE, - - SLASH, - SLASH_SLASH, - BRACE_START, - BANG, - ONE_DOT, - TWO_DOTS, - GLOBSTAR, - SLASH_GLOBSTAR, - ANYMATCH_OPTS, - STRING_TYPE, - FUNCTION_TYPE, - EMPTY_STR, - EMPTY_FN, - - isWindows, - isMacos, - isIBMi -} = require('./lib/constants'); - -const stat = promisify(fs.stat); -const readdir = promisify(fs.readdir); - -/** - * @typedef {String} Path - * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName - * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType - */ - -/** - * - * @typedef {Object} WatchHelpers - * @property {Boolean} followSymlinks - * @property {'stat'|'lstat'} statMethod - * @property {Path} path - * @property {Path} watchPath - * @property {Function} entryPath - * @property {Boolean} hasGlob - * @property {Object} globFilter - * @property {Function} filterPath - * @property {Function} filterDir - */ - -const arrify = (value = []) => Array.isArray(value) ? value : [value]; -const flatten = (list, result = []) => { - list.forEach(item => { - if (Array.isArray(item)) { - flatten(item, result); - } else { - result.push(item); - } - }); - return result; -}; - -const unifyPaths = (paths_) => { - /** - * @type {Array} - */ - const paths = flatten(arrify(paths_)); - if (!paths.every(p => typeof p === STRING_TYPE)) { - throw new TypeError(`Non-string provided as watch path: ${paths}`); - } - return paths.map(normalizePathToUnix); -}; - -// If SLASH_SLASH occurs at the beginning of path, it is not replaced -// because "//StoragePC/DrivePool/Movies" is a valid network path -const toUnix = (string) => { - let str = string.replace(BACK_SLASH_RE, SLASH); - let prepend = false; - if (str.startsWith(SLASH_SLASH)) { - prepend = true; - } - while (str.match(DOUBLE_SLASH_RE)) { - str = str.replace(DOUBLE_SLASH_RE, SLASH); - } - if (prepend) { - str = SLASH + str; - } - return str; -}; - -// Our version of upath.normalize -// TODO: this is not equal to path-normalize module - investigate why -const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path))); - -const normalizeIgnored = (cwd = EMPTY_STR) => (path) => { - if (typeof path !== STRING_TYPE) return path; - return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path)); -}; - -const getAbsolutePath = (path, cwd) => { - if (sysPath.isAbsolute(path)) { - return path; - } - if (path.startsWith(BANG)) { - return BANG + sysPath.join(cwd, path.slice(1)); - } - return sysPath.join(cwd, path); -}; - -const undef = (opts, key) => opts[key] === undefined; - -/** - * Directory entry. - * @property {Path} path - * @property {Set} items - */ -class DirEntry { - /** - * @param {Path} dir - * @param {Function} removeWatcher - */ - constructor(dir, removeWatcher) { - this.path = dir; - this._removeWatcher = removeWatcher; - /** @type {Set} */ - this.items = new Set(); - } - - add(item) { - const {items} = this; - if (!items) return; - if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); - } - - async remove(item) { - const {items} = this; - if (!items) return; - items.delete(item); - if (items.size > 0) return; - - const dir = this.path; - try { - await readdir(dir); - } catch (err) { - if (this._removeWatcher) { - this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir)); - } - } - } - - has(item) { - const {items} = this; - if (!items) return; - return items.has(item); - } - - /** - * @returns {Array} - */ - getChildren() { - const {items} = this; - if (!items) return; - return [...items.values()]; - } - - dispose() { - this.items.clear(); - delete this.path; - delete this._removeWatcher; - delete this.items; - Object.freeze(this); - } -} - -const STAT_METHOD_F = 'stat'; -const STAT_METHOD_L = 'lstat'; -class WatchHelper { - constructor(path, watchPath, follow, fsw) { - this.fsw = fsw; - this.path = path = path.replace(REPLACER_RE, EMPTY_STR); - this.watchPath = watchPath; - this.fullWatchPath = sysPath.resolve(watchPath); - this.hasGlob = watchPath !== path; - /** @type {object|boolean} */ - if (path === EMPTY_STR) this.hasGlob = false; - this.globSymlink = this.hasGlob && follow ? undefined : false; - this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; - this.dirParts = this.getDirParts(path); - this.dirParts.forEach((parts) => { - if (parts.length > 1) parts.pop(); - }); - this.followSymlinks = follow; - this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; - } - - checkGlobSymlink(entry) { - // only need to resolve once - // first entry should always have entry.parentDir === EMPTY_STR - if (this.globSymlink === undefined) { - this.globSymlink = entry.fullParentDir === this.fullWatchPath ? - false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; - } - - if (this.globSymlink) { - return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); - } - - return entry.fullPath; - } - - entryPath(entry) { - return sysPath.join(this.watchPath, - sysPath.relative(this.watchPath, this.checkGlobSymlink(entry)) - ); - } - - filterPath(entry) { - const {stats} = entry; - if (stats && stats.isSymbolicLink()) return this.filterDir(entry); - const resolvedPath = this.entryPath(entry); - const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ? - this.globFilter(resolvedPath) : true; - return matchesGlob && - this.fsw._isntIgnored(resolvedPath, stats) && - this.fsw._hasReadPermissions(stats); - } - - getDirParts(path) { - if (!this.hasGlob) return []; - const parts = []; - const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path]; - expandedPath.forEach((path) => { - parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); - }); - return parts; - } - - filterDir(entry) { - if (this.hasGlob) { - const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); - let globstar = false; - this.unmatchedGlob = !this.dirParts.some((parts) => { - return parts.every((part, i) => { - if (part === GLOBSTAR) globstar = true; - return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); - }); - }); - } - return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); - } -} - -/** - * Watches files & directories for changes. Emitted events: - * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` - * - * new FSWatcher() - * .add(directories) - * .on('add', path => log('File', path, 'was added')) - */ -class FSWatcher extends EventEmitter { -// Not indenting methods for history sake; for now. -constructor(_opts) { - super(); - - const opts = {}; - if (_opts) Object.assign(opts, _opts); // for frozen objects - - /** @type {Map} */ - this._watched = new Map(); - /** @type {Map} */ - this._closers = new Map(); - /** @type {Set} */ - this._ignoredPaths = new Set(); - - /** @type {Map} */ - this._throttled = new Map(); - - /** @type {Map} */ - this._symlinkPaths = new Map(); - - this._streams = new Set(); - this.closed = false; - - // Set up default options. - if (undef(opts, 'persistent')) opts.persistent = true; - if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; - if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; - if (undef(opts, 'interval')) opts.interval = 100; - if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; - if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; - opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; - - // Enable fsevents on OS X when polling isn't explicitly enabled. - if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; - - // If we can't use fsevents, ensure the options reflect it's disabled. - const canUseFsEvents = FsEventsHandler.canUse(); - if (!canUseFsEvents) opts.useFsEvents = false; - - // Use polling on Mac if not using fsevents. - // Other platforms use non-polling fs_watch. - if (undef(opts, 'usePolling') && !opts.useFsEvents) { - opts.usePolling = isMacos; - } - - // Always default to polling on IBM i because fs.watch() is not available on IBM i. - if(isIBMi) { - opts.usePolling = true; - } - - // Global override (useful for end-developers that need to force polling for all - // instances of chokidar, regardless of usage/dependency depth) - const envPoll = process.env.CHOKIDAR_USEPOLLING; - if (envPoll !== undefined) { - const envLower = envPoll.toLowerCase(); - - if (envLower === 'false' || envLower === '0') { - opts.usePolling = false; - } else if (envLower === 'true' || envLower === '1') { - opts.usePolling = true; - } else { - opts.usePolling = !!envLower; - } - } - const envInterval = process.env.CHOKIDAR_INTERVAL; - if (envInterval) { - opts.interval = Number.parseInt(envInterval, 10); - } - - // Editor atomic write normalization enabled by default with fs.watch - if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; - if (opts.atomic) this._pendingUnlinks = new Map(); - - if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; - - if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; - if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; - const awf = opts.awaitWriteFinish; - if (awf) { - if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; - if (!awf.pollInterval) awf.pollInterval = 100; - this._pendingWrites = new Map(); - } - if (opts.ignored) opts.ignored = arrify(opts.ignored); - - let readyCalls = 0; - this._emitReady = () => { - readyCalls++; - if (readyCalls >= this._readyCount) { - this._emitReady = EMPTY_FN; - this._readyEmitted = true; - // use process.nextTick to allow time for listener to be bound - process.nextTick(() => this.emit(EV_READY)); - } - }; - this._emitRaw = (...args) => this.emit(EV_RAW, ...args); - this._readyEmitted = false; - this.options = opts; - - // Initialize with proper watcher. - if (opts.useFsEvents) { - this._fsEventsHandler = new FsEventsHandler(this); - } else { - this._nodeFsHandler = new NodeFsHandler(this); - } - - // You’re frozen when your heart’s not open. - Object.freeze(opts); -} - -// Public methods - -/** - * Adds paths to be watched on an existing FSWatcher instance - * @param {Path|Array} paths_ - * @param {String=} _origAdd private; for handling non-existent paths to be watched - * @param {Boolean=} _internal private; indicates a non-user add - * @returns {FSWatcher} for chaining - */ -add(paths_, _origAdd, _internal) { - const {cwd, disableGlobbing} = this.options; - this.closed = false; - let paths = unifyPaths(paths_); - if (cwd) { - paths = paths.map((path) => { - const absPath = getAbsolutePath(path, cwd); - - // Check `path` instead of `absPath` because the cwd portion can't be a glob - if (disableGlobbing || !isGlob(path)) { - return absPath; - } - return normalizePath(absPath); - }); - } - - // set aside negated glob strings - paths = paths.filter((path) => { - if (path.startsWith(BANG)) { - this._ignoredPaths.add(path.slice(1)); - return false; - } - - // if a path is being added that was previously ignored, stop ignoring it - this._ignoredPaths.delete(path); - this._ignoredPaths.delete(path + SLASH_GLOBSTAR); - - // reset the cached userIgnored anymatch fn - // to make ignoredPaths changes effective - this._userIgnored = undefined; - - return true; - }); - - if (this.options.useFsEvents && this._fsEventsHandler) { - if (!this._readyCount) this._readyCount = paths.length; - if (this.options.persistent) this._readyCount += paths.length; - paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); - } else { - if (!this._readyCount) this._readyCount = 0; - this._readyCount += paths.length; - Promise.all( - paths.map(async path => { - const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); - if (res) this._emitReady(); - return res; - }) - ).then(results => { - if (this.closed) return; - results.filter(item => item).forEach(item => { - this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item)); - }); - }); - } - - return this; -} - -/** - * Close watchers or start ignoring events from specified paths. - * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs - * @returns {FSWatcher} for chaining -*/ -unwatch(paths_) { - if (this.closed) return this; - const paths = unifyPaths(paths_); - const {cwd} = this.options; - - paths.forEach((path) => { - // convert to absolute path unless relative path already matches - if (!sysPath.isAbsolute(path) && !this._closers.has(path)) { - if (cwd) path = sysPath.join(cwd, path); - path = sysPath.resolve(path); - } - - this._closePath(path); - - this._ignoredPaths.add(path); - if (this._watched.has(path)) { - this._ignoredPaths.add(path + SLASH_GLOBSTAR); - } - - // reset the cached userIgnored anymatch fn - // to make ignoredPaths changes effective - this._userIgnored = undefined; - }); - - return this; -} - -/** - * Close watchers and remove all listeners from watched paths. - * @returns {Promise}. -*/ -close() { - if (this.closed) return this._closePromise; - this.closed = true; - - // Memory management. - this.removeAllListeners(); - const closers = []; - this._closers.forEach(closerList => closerList.forEach(closer => { - const promise = closer(); - if (promise instanceof Promise) closers.push(promise); - })); - this._streams.forEach(stream => stream.destroy()); - this._userIgnored = undefined; - this._readyCount = 0; - this._readyEmitted = false; - this._watched.forEach(dirent => dirent.dispose()); - ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { - this[`_${key}`].clear(); - }); - - this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); - return this._closePromise; -} - -/** - * Expose list of watched paths - * @returns {Object} for chaining -*/ -getWatched() { - const watchList = {}; - this._watched.forEach((entry, dir) => { - const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir; - watchList[key || ONE_DOT] = entry.getChildren().sort(); - }); - return watchList; -} - -emitWithAll(event, args) { - this.emit(...args); - if (event !== EV_ERROR) this.emit(EV_ALL, ...args); -} - -// Common helpers -// -------------- - -/** - * Normalize and emit events. - * Calling _emit DOES NOT MEAN emit() would be called! - * @param {EventName} event Type of event - * @param {Path} path File or directory path - * @param {*=} val1 arguments to be passed with event - * @param {*=} val2 - * @param {*=} val3 - * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag - */ -async _emit(event, path, val1, val2, val3) { - if (this.closed) return; - - const opts = this.options; - if (isWindows) path = sysPath.normalize(path); - if (opts.cwd) path = sysPath.relative(opts.cwd, path); - /** @type Array */ - const args = [event, path]; - if (val3 !== undefined) args.push(val1, val2, val3); - else if (val2 !== undefined) args.push(val1, val2); - else if (val1 !== undefined) args.push(val1); - - const awf = opts.awaitWriteFinish; - let pw; - if (awf && (pw = this._pendingWrites.get(path))) { - pw.lastChange = new Date(); - return this; - } - - if (opts.atomic) { - if (event === EV_UNLINK) { - this._pendingUnlinks.set(path, args); - setTimeout(() => { - this._pendingUnlinks.forEach((entry, path) => { - this.emit(...entry); - this.emit(EV_ALL, ...entry); - this._pendingUnlinks.delete(path); - }); - }, typeof opts.atomic === 'number' ? opts.atomic : 100); - return this; - } - if (event === EV_ADD && this._pendingUnlinks.has(path)) { - event = args[0] = EV_CHANGE; - this._pendingUnlinks.delete(path); - } - } - - if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) { - const awfEmit = (err, stats) => { - if (err) { - event = args[0] = EV_ERROR; - args[1] = err; - this.emitWithAll(event, args); - } else if (stats) { - // if stats doesn't exist the file must have been deleted - if (args.length > 2) { - args[2] = stats; - } else { - args.push(stats); - } - this.emitWithAll(event, args); - } - }; - - this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); - return this; - } - - if (event === EV_CHANGE) { - const isThrottled = !this._throttle(EV_CHANGE, path, 50); - if (isThrottled) return this; - } - - if (opts.alwaysStat && val1 === undefined && - (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE) - ) { - const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path; - let stats; - try { - stats = await stat(fullPath); - } catch (err) {} - // Suppress event when fs_stat fails, to avoid sending undefined 'stat' - if (!stats || this.closed) return; - args.push(stats); - } - this.emitWithAll(event, args); - - return this; -} - -/** - * Common handler for errors - * @param {Error} error - * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag - */ -_handleError(error) { - const code = error && error.code; - if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && - (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) - ) { - this.emit(EV_ERROR, error); - } - return error || this.closed; -} - -/** - * Helper utility for throttling - * @param {ThrottleType} actionType type being throttled - * @param {Path} path being acted upon - * @param {Number} timeout duration of time to suppress duplicate actions - * @returns {Object|false} tracking object or false if action should be suppressed - */ -_throttle(actionType, path, timeout) { - if (!this._throttled.has(actionType)) { - this._throttled.set(actionType, new Map()); - } - - /** @type {Map} */ - const action = this._throttled.get(actionType); - /** @type {Object} */ - const actionPath = action.get(path); - - if (actionPath) { - actionPath.count++; - return false; - } - - let timeoutObject; - const clear = () => { - const item = action.get(path); - const count = item ? item.count : 0; - action.delete(path); - clearTimeout(timeoutObject); - if (item) clearTimeout(item.timeoutObject); - return count; - }; - timeoutObject = setTimeout(clear, timeout); - const thr = {timeoutObject, clear, count: 0}; - action.set(path, thr); - return thr; -} - -_incrReadyCount() { - return this._readyCount++; -} - -/** - * Awaits write operation to finish. - * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. - * @param {Path} path being acted upon - * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished - * @param {EventName} event - * @param {Function} awfEmit Callback to be called when ready for event to be emitted. - */ -_awaitWriteFinish(path, threshold, event, awfEmit) { - let timeoutHandler; - - let fullPath = path; - if (this.options.cwd && !sysPath.isAbsolute(path)) { - fullPath = sysPath.join(this.options.cwd, path); - } - - const now = new Date(); - - const awaitWriteFinish = (prevStat) => { - fs.stat(fullPath, (err, curStat) => { - if (err || !this._pendingWrites.has(path)) { - if (err && err.code !== 'ENOENT') awfEmit(err); - return; - } - - const now = Number(new Date()); - - if (prevStat && curStat.size !== prevStat.size) { - this._pendingWrites.get(path).lastChange = now; - } - const pw = this._pendingWrites.get(path); - const df = now - pw.lastChange; - - if (df >= threshold) { - this._pendingWrites.delete(path); - awfEmit(undefined, curStat); - } else { - timeoutHandler = setTimeout( - awaitWriteFinish, - this.options.awaitWriteFinish.pollInterval, - curStat - ); - } - }); - }; - - if (!this._pendingWrites.has(path)) { - this._pendingWrites.set(path, { - lastChange: now, - cancelWait: () => { - this._pendingWrites.delete(path); - clearTimeout(timeoutHandler); - return event; - } - }); - timeoutHandler = setTimeout( - awaitWriteFinish, - this.options.awaitWriteFinish.pollInterval - ); - } -} - -_getGlobIgnored() { - return [...this._ignoredPaths.values()]; -} - -/** - * Determines whether user has asked to ignore this path. - * @param {Path} path filepath or dir - * @param {fs.Stats=} stats result of fs.stat - * @returns {Boolean} - */ -_isIgnored(path, stats) { - if (this.options.atomic && DOT_RE.test(path)) return true; - if (!this._userIgnored) { - const {cwd} = this.options; - const ign = this.options.ignored; - - const ignored = ign && ign.map(normalizeIgnored(cwd)); - const paths = arrify(ignored) - .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) - .map((path) => path + SLASH_GLOBSTAR); - const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); - this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); - } - - return this._userIgnored([path, stats]); -} - -_isntIgnored(path, stat) { - return !this._isIgnored(path, stat); -} - -/** - * Provides a set of common helpers and properties relating to symlink and glob handling. - * @param {Path} path file, directory, or glob pattern being watched - * @param {Number=} depth at any depth > 0, this isn't a glob - * @returns {WatchHelper} object containing helpers for this path - */ -_getWatchHelpers(path, depth) { - const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); - const follow = this.options.followSymlinks; - - return new WatchHelper(path, watchPath, follow, this); -} - -// Directory helpers -// ----------------- - -/** - * Provides directory tracking objects - * @param {String} directory path of the directory - * @returns {DirEntry} the directory's tracking object - */ -_getWatchedDir(directory) { - if (!this._boundRemove) this._boundRemove = this._remove.bind(this); - const dir = sysPath.resolve(directory); - if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); - return this._watched.get(dir); -} - -// File helpers -// ------------ - -/** - * Check for read permissions. - * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 - * @param {fs.Stats} stats - object, result of fs_stat - * @returns {Boolean} indicates whether the file can be read -*/ -_hasReadPermissions(stats) { - if (this.options.ignorePermissionErrors) return true; - - // stats.mode may be bigint - const md = stats && Number.parseInt(stats.mode, 10); - const st = md & 0o777; - const it = Number.parseInt(st.toString(8)[0], 10); - return Boolean(4 & it); -} - -/** - * Handles emitting unlink events for - * files and directories, and via recursion, for - * files and directories within directories that are unlinked - * @param {String} directory within which the following item is located - * @param {String} item base path of item/directory - * @returns {void} -*/ -_remove(directory, item, isDirectory) { - // if what is being deleted is a directory, get that directory's paths - // for recursive deleting and cleaning of watched object - // if it is not a directory, nestedDirectoryChildren will be empty array - const path = sysPath.join(directory, item); - const fullPath = sysPath.resolve(path); - isDirectory = isDirectory != null - ? isDirectory - : this._watched.has(path) || this._watched.has(fullPath); - - // prevent duplicate handling in case of arriving here nearly simultaneously - // via multiple paths (such as _handleFile and _handleDir) - if (!this._throttle('remove', path, 100)) return; - - // if the only watched file is removed, watch for its return - if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { - this.add(directory, item, true); - } - - // This will create a new entry in the watched object in either case - // so we got to do the directory check beforehand - const wp = this._getWatchedDir(path); - const nestedDirectoryChildren = wp.getChildren(); - - // Recursively remove children directories / files. - nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); - - // Check if item was on the watched list and remove it - const parent = this._getWatchedDir(directory); - const wasTracked = parent.has(item); - parent.remove(item); - - // Fixes issue #1042 -> Relative paths were detected and added as symlinks - // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), - // but never removed from the map in case the path was deleted. - // This leads to an incorrect state if the path was recreated: - // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 - if (this._symlinkPaths.has(fullPath)) { - this._symlinkPaths.delete(fullPath); - } - - // If we wait for this file to be fully written, cancel the wait. - let relPath = path; - if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path); - if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { - const event = this._pendingWrites.get(relPath).cancelWait(); - if (event === EV_ADD) return; - } - - // The Entry will either be a directory that just got removed - // or a bogus entry to a file, in either case we have to remove it - this._watched.delete(path); - this._watched.delete(fullPath); - const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK; - if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); - - // Avoid conflicts if we later create another file with the same name - if (!this.options.useFsEvents) { - this._closePath(path); - } -} - -/** - * Closes all watchers for a path - * @param {Path} path - */ -_closePath(path) { - this._closeFile(path) - const dir = sysPath.dirname(path); - this._getWatchedDir(dir).remove(sysPath.basename(path)); -} - -/** - * Closes only file-specific watchers - * @param {Path} path - */ -_closeFile(path) { - const closers = this._closers.get(path); - if (!closers) return; - closers.forEach(closer => closer()); - this._closers.delete(path); -} - -/** - * - * @param {Path} path - * @param {Function} closer - */ -_addPathCloser(path, closer) { - if (!closer) return; - let list = this._closers.get(path); - if (!list) { - list = []; - this._closers.set(path, list); - } - list.push(closer); -} - -_readdirp(root, opts) { - if (this.closed) return; - const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; - let stream = readdirp(root, options); - this._streams.add(stream); - stream.once(STR_CLOSE, () => { - stream = undefined; - }); - stream.once(STR_END, () => { - if (stream) { - this._streams.delete(stream); - stream = undefined; - } - }); - return stream; -} - -} - -// Export FSWatcher class -exports.FSWatcher = FSWatcher; - -/** - * Instantiates watcher with paths to be tracked. - * @param {String|Array} paths file/directory paths and/or globs - * @param {Object=} options chokidar opts - * @returns an instance of FSWatcher for chaining. - */ -const watch = (paths, options) => { - const watcher = new FSWatcher(options); - watcher.add(paths); - return watcher; -}; - -exports.watch = watch; diff --git a/node_modules/chokidar/lib/constants.js b/node_modules/chokidar/lib/constants.js deleted file mode 100644 index 4743865d..00000000 --- a/node_modules/chokidar/lib/constants.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -const {sep} = require('path'); -const {platform} = process; -const os = require('os'); - -exports.EV_ALL = 'all'; -exports.EV_READY = 'ready'; -exports.EV_ADD = 'add'; -exports.EV_CHANGE = 'change'; -exports.EV_ADD_DIR = 'addDir'; -exports.EV_UNLINK = 'unlink'; -exports.EV_UNLINK_DIR = 'unlinkDir'; -exports.EV_RAW = 'raw'; -exports.EV_ERROR = 'error'; - -exports.STR_DATA = 'data'; -exports.STR_END = 'end'; -exports.STR_CLOSE = 'close'; - -exports.FSEVENT_CREATED = 'created'; -exports.FSEVENT_MODIFIED = 'modified'; -exports.FSEVENT_DELETED = 'deleted'; -exports.FSEVENT_MOVED = 'moved'; -exports.FSEVENT_CLONED = 'cloned'; -exports.FSEVENT_UNKNOWN = 'unknown'; -exports.FSEVENT_FLAG_MUST_SCAN_SUBDIRS = 1; -exports.FSEVENT_TYPE_FILE = 'file'; -exports.FSEVENT_TYPE_DIRECTORY = 'directory'; -exports.FSEVENT_TYPE_SYMLINK = 'symlink'; - -exports.KEY_LISTENERS = 'listeners'; -exports.KEY_ERR = 'errHandlers'; -exports.KEY_RAW = 'rawEmitters'; -exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; - -exports.DOT_SLASH = `.${sep}`; - -exports.BACK_SLASH_RE = /\\/g; -exports.DOUBLE_SLASH_RE = /\/\//; -exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; -exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; -exports.REPLACER_RE = /^\.[/\\]/; - -exports.SLASH = '/'; -exports.SLASH_SLASH = '//'; -exports.BRACE_START = '{'; -exports.BANG = '!'; -exports.ONE_DOT = '.'; -exports.TWO_DOTS = '..'; -exports.STAR = '*'; -exports.GLOBSTAR = '**'; -exports.ROOT_GLOBSTAR = '/**/*'; -exports.SLASH_GLOBSTAR = '/**'; -exports.DIR_SUFFIX = 'Dir'; -exports.ANYMATCH_OPTS = {dot: true}; -exports.STRING_TYPE = 'string'; -exports.FUNCTION_TYPE = 'function'; -exports.EMPTY_STR = ''; -exports.EMPTY_FN = () => {}; -exports.IDENTITY_FN = val => val; - -exports.isWindows = platform === 'win32'; -exports.isMacos = platform === 'darwin'; -exports.isLinux = platform === 'linux'; -exports.isIBMi = os.type() === 'OS400'; diff --git a/node_modules/chokidar/lib/fsevents-handler.js b/node_modules/chokidar/lib/fsevents-handler.js deleted file mode 100644 index fe29393c..00000000 --- a/node_modules/chokidar/lib/fsevents-handler.js +++ /dev/null @@ -1,526 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const sysPath = require('path'); -const { promisify } = require('util'); - -let fsevents; -try { - fsevents = require('fsevents'); -} catch (error) { - if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); -} - -if (fsevents) { - // TODO: real check - const mtch = process.version.match(/v(\d+)\.(\d+)/); - if (mtch && mtch[1] && mtch[2]) { - const maj = Number.parseInt(mtch[1], 10); - const min = Number.parseInt(mtch[2], 10); - if (maj === 8 && min < 16) { - fsevents = undefined; - } - } -} - -const { - EV_ADD, - EV_CHANGE, - EV_ADD_DIR, - EV_UNLINK, - EV_ERROR, - STR_DATA, - STR_END, - FSEVENT_CREATED, - FSEVENT_MODIFIED, - FSEVENT_DELETED, - FSEVENT_MOVED, - // FSEVENT_CLONED, - FSEVENT_UNKNOWN, - FSEVENT_FLAG_MUST_SCAN_SUBDIRS, - FSEVENT_TYPE_FILE, - FSEVENT_TYPE_DIRECTORY, - FSEVENT_TYPE_SYMLINK, - - ROOT_GLOBSTAR, - DIR_SUFFIX, - DOT_SLASH, - FUNCTION_TYPE, - EMPTY_FN, - IDENTITY_FN -} = require('./constants'); - -const Depth = (value) => isNaN(value) ? {} : {depth: value}; - -const stat = promisify(fs.stat); -const lstat = promisify(fs.lstat); -const realpath = promisify(fs.realpath); - -const statMethods = { stat, lstat }; - -/** - * @typedef {String} Path - */ - -/** - * @typedef {Object} FsEventsWatchContainer - * @property {Set} listeners - * @property {Function} rawEmitter - * @property {{stop: Function}} watcher - */ - -// fsevents instance helper functions -/** - * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) - * @type {Map} - */ -const FSEventsWatchers = new Map(); - -// Threshold of duplicate path prefixes at which to start -// consolidating going forward -const consolidateThreshhold = 10; - -const wrongEventFlags = new Set([ - 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 -]); - -/** - * Instantiates the fsevents interface - * @param {Path} path path to be watched - * @param {Function} callback called when fsevents is bound and ready - * @returns {{stop: Function}} new fsevents instance - */ -const createFSEventsInstance = (path, callback) => { - const stop = fsevents.watch(path, callback); - return {stop}; -}; - -/** - * Instantiates the fsevents interface or binds listeners to an existing one covering - * the same file tree. - * @param {Path} path - to be watched - * @param {Path} realPath - real path for symlinks - * @param {Function} listener - called when fsevents emits events - * @param {Function} rawEmitter - passes data to listeners of the 'raw' event - * @returns {Function} closer - */ -function setFSEventsListener(path, realPath, listener, rawEmitter) { - let watchPath = sysPath.extname(realPath) ? sysPath.dirname(realPath) : realPath; - - const parentPath = sysPath.dirname(watchPath); - let cont = FSEventsWatchers.get(watchPath); - - // If we've accumulated a substantial number of paths that - // could have been consolidated by watching one directory - // above the current one, create a watcher on the parent - // path instead, so that we do consolidate going forward. - if (couldConsolidate(parentPath)) { - watchPath = parentPath; - } - - const resolvedPath = sysPath.resolve(path); - const hasSymlink = resolvedPath !== realPath; - - const filteredListener = (fullPath, flags, info) => { - if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); - if ( - fullPath === resolvedPath || - !fullPath.indexOf(resolvedPath + sysPath.sep) - ) listener(fullPath, flags, info); - }; - - // check if there is already a watcher on a parent path - // modifies `watchPath` to the parent path when it finds a match - let watchedParent = false; - for (const watchedPath of FSEventsWatchers.keys()) { - if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) { - watchPath = watchedPath; - cont = FSEventsWatchers.get(watchPath); - watchedParent = true; - break; - } - } - - if (cont || watchedParent) { - cont.listeners.add(filteredListener); - } else { - cont = { - listeners: new Set([filteredListener]), - rawEmitter, - watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { - if (!cont.listeners.size) return; - if (flags & FSEVENT_FLAG_MUST_SCAN_SUBDIRS) return; - const info = fsevents.getInfo(fullPath, flags); - cont.listeners.forEach(list => { - list(fullPath, flags, info); - }); - - cont.rawEmitter(info.event, fullPath, info); - }) - }; - FSEventsWatchers.set(watchPath, cont); - } - - // removes this instance's listeners and closes the underlying fsevents - // instance if there are no more listeners left - return () => { - const lst = cont.listeners; - - lst.delete(filteredListener); - if (!lst.size) { - FSEventsWatchers.delete(watchPath); - if (cont.watcher) return cont.watcher.stop().then(() => { - cont.rawEmitter = cont.watcher = undefined; - Object.freeze(cont); - }); - } - }; -} - -// Decide whether or not we should start a new higher-level -// parent watcher -const couldConsolidate = (path) => { - let count = 0; - for (const watchPath of FSEventsWatchers.keys()) { - if (watchPath.indexOf(path) === 0) { - count++; - if (count >= consolidateThreshhold) { - return true; - } - } - } - - return false; -}; - -// returns boolean indicating whether fsevents can be used -const canUse = () => fsevents && FSEventsWatchers.size < 128; - -// determines subdirectory traversal levels from root to path -const calcDepth = (path, root) => { - let i = 0; - while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++; - return i; -}; - -// returns boolean indicating whether the fsevents' event info has the same type -// as the one returned by fs.stat -const sameTypes = (info, stats) => ( - info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || - info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || - info.type === FSEVENT_TYPE_FILE && stats.isFile() -) - -/** - * @mixin - */ -class FsEventsHandler { - -/** - * @param {import('../index').FSWatcher} fsw - */ -constructor(fsw) { - this.fsw = fsw; -} -checkIgnored(path, stats) { - const ipaths = this.fsw._ignoredPaths; - if (this.fsw._isIgnored(path, stats)) { - ipaths.add(path); - if (stats && stats.isDirectory()) { - ipaths.add(path + ROOT_GLOBSTAR); - } - return true; - } - - ipaths.delete(path); - ipaths.delete(path + ROOT_GLOBSTAR); -} - -addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { - const event = watchedDir.has(item) ? EV_CHANGE : EV_ADD; - this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); -} - -async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { - try { - const stats = await stat(path) - if (this.fsw.closed) return; - if (sameTypes(info, stats)) { - this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } catch (error) { - if (error.code === 'EACCES') { - this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } -} - -handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { - if (this.fsw.closed || this.checkIgnored(path)) return; - - if (event === EV_UNLINK) { - const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY - // suppress unlink events on never before seen files - if (isDirectory || watchedDir.has(item)) { - this.fsw._remove(parent, item, isDirectory); - } - } else { - if (event === EV_ADD) { - // track new directories - if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); - - if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { - // push symlinks back to the top of the stack to get handled - const curDepth = opts.depth === undefined ? - undefined : calcDepth(fullPath, realPath) + 1; - return this._addToFsEvents(path, false, true, curDepth); - } - - // track new paths - // (other than symlinks being followed, which will be tracked soon) - this.fsw._getWatchedDir(parent).add(item); - } - /** - * @type {'add'|'addDir'|'unlink'|'unlinkDir'} - */ - const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; - this.fsw._emit(eventName, path); - if (eventName === EV_ADD_DIR) this._addToFsEvents(path, false, true); - } -} - -/** - * Handle symlinks encountered during directory scan - * @param {String} watchPath - file/dir path to be watched with fsevents - * @param {String} realPath - real path (in case of symlinks) - * @param {Function} transform - path transformer - * @param {Function} globFilter - path filter in case a glob pattern was provided - * @returns {Function} closer for the watcher instance -*/ -_watchWithFsEvents(watchPath, realPath, transform, globFilter) { - if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; - const opts = this.fsw.options; - const watchCallback = async (fullPath, flags, info) => { - if (this.fsw.closed) return; - if ( - opts.depth !== undefined && - calcDepth(fullPath, realPath) > opts.depth - ) return; - const path = transform(sysPath.join( - watchPath, sysPath.relative(watchPath, fullPath) - )); - if (globFilter && !globFilter(path)) return; - // ensure directories are tracked - const parent = sysPath.dirname(path); - const item = sysPath.basename(path); - const watchedDir = this.fsw._getWatchedDir( - info.type === FSEVENT_TYPE_DIRECTORY ? path : parent - ); - - // correct for wrong events emitted - if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { - if (typeof opts.ignored === FUNCTION_TYPE) { - let stats; - try { - stats = await stat(path); - } catch (error) {} - if (this.fsw.closed) return; - if (this.checkIgnored(path, stats)) return; - if (sameTypes(info, stats)) { - this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } else { - this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } else { - switch (info.event) { - case FSEVENT_CREATED: - case FSEVENT_MODIFIED: - return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); - case FSEVENT_DELETED: - case FSEVENT_MOVED: - return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); - } - } - }; - - const closer = setFSEventsListener( - watchPath, - realPath, - watchCallback, - this.fsw._emitRaw - ); - - this.fsw._emitReady(); - return closer; -} - -/** - * Handle symlinks encountered during directory scan - * @param {String} linkPath path to symlink - * @param {String} fullPath absolute path to the symlink - * @param {Function} transform pre-existing path transformer - * @param {Number} curDepth level of subdirectories traversed to where symlink is - * @returns {Promise} - */ -async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { - // don't follow the same symlink more than once - if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; - - this.fsw._symlinkPaths.set(fullPath, true); - this.fsw._incrReadyCount(); - - try { - const linkTarget = await realpath(linkPath); - if (this.fsw.closed) return; - if (this.fsw._isIgnored(linkTarget)) { - return this.fsw._emitReady(); - } - - this.fsw._incrReadyCount(); - - // add the linkTarget for watching with a wrapper for transform - // that causes emitted paths to incorporate the link's path - this._addToFsEvents(linkTarget || linkPath, (path) => { - let aliasedPath = linkPath; - if (linkTarget && linkTarget !== DOT_SLASH) { - aliasedPath = path.replace(linkTarget, linkPath); - } else if (path !== DOT_SLASH) { - aliasedPath = sysPath.join(linkPath, path); - } - return transform(aliasedPath); - }, false, curDepth); - } catch(error) { - if (this.fsw._handleError(error)) { - return this.fsw._emitReady(); - } - } -} - -/** - * - * @param {Path} newPath - * @param {fs.Stats} stats - */ -emitAdd(newPath, stats, processPath, opts, forceAdd) { - const pp = processPath(newPath); - const isDir = stats.isDirectory(); - const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp)); - const base = sysPath.basename(pp); - - // ensure empty dirs get tracked - if (isDir) this.fsw._getWatchedDir(pp); - if (dirObj.has(base)) return; - dirObj.add(base); - - if (!opts.ignoreInitial || forceAdd === true) { - this.fsw._emit(isDir ? EV_ADD_DIR : EV_ADD, pp, stats); - } -} - -initWatch(realPath, path, wh, processPath) { - if (this.fsw.closed) return; - const closer = this._watchWithFsEvents( - wh.watchPath, - sysPath.resolve(realPath || wh.watchPath), - processPath, - wh.globFilter - ); - this.fsw._addPathCloser(path, closer); -} - -/** - * Handle added path with fsevents - * @param {String} path file/dir path or glob pattern - * @param {Function|Boolean=} transform converts working path to what the user expects - * @param {Boolean=} forceAdd ensure add is emitted - * @param {Number=} priorDepth Level of subdirectories already traversed. - * @returns {Promise} - */ -async _addToFsEvents(path, transform, forceAdd, priorDepth) { - if (this.fsw.closed) { - return; - } - const opts = this.fsw.options; - const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; - - const wh = this.fsw._getWatchHelpers(path); - - // evaluate what is at the path we're being asked to watch - try { - const stats = await statMethods[wh.statMethod](wh.watchPath); - if (this.fsw.closed) return; - if (this.fsw._isIgnored(wh.watchPath, stats)) { - throw null; - } - if (stats.isDirectory()) { - // emit addDir unless this is a glob parent - if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); - - // don't recurse further if it would exceed depth setting - if (priorDepth && priorDepth > opts.depth) return; - - // scan the contents of the dir - this.fsw._readdirp(wh.watchPath, { - fileFilter: entry => wh.filterPath(entry), - directoryFilter: entry => wh.filterDir(entry), - ...Depth(opts.depth - (priorDepth || 0)) - }).on(STR_DATA, (entry) => { - // need to check filterPath on dirs b/c filterDir is less restrictive - if (this.fsw.closed) { - return; - } - if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; - - const joinedPath = sysPath.join(wh.watchPath, entry.path); - const {fullPath} = entry; - - if (wh.followSymlinks && entry.stats.isSymbolicLink()) { - // preserve the current depth here since it can't be derived from - // real paths past the symlink - const curDepth = opts.depth === undefined ? - undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1; - - this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); - } else { - this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); - } - }).on(EV_ERROR, EMPTY_FN).on(STR_END, () => { - this.fsw._emitReady(); - }); - } else { - this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); - this.fsw._emitReady(); - } - } catch (error) { - if (!error || this.fsw._handleError(error)) { - // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- - this.fsw._emitReady(); - this.fsw._emitReady(); - } - } - - if (opts.persistent && forceAdd !== true) { - if (typeof transform === FUNCTION_TYPE) { - // realpath has already been resolved - this.initWatch(undefined, path, wh, processPath); - } else { - let realPath; - try { - realPath = await realpath(wh.watchPath); - } catch (e) {} - this.initWatch(realPath, path, wh, processPath); - } - } -} - -} - -module.exports = FsEventsHandler; -module.exports.canUse = canUse; diff --git a/node_modules/chokidar/lib/nodefs-handler.js b/node_modules/chokidar/lib/nodefs-handler.js deleted file mode 100644 index 199cfe9f..00000000 --- a/node_modules/chokidar/lib/nodefs-handler.js +++ /dev/null @@ -1,654 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const sysPath = require('path'); -const { promisify } = require('util'); -const isBinaryPath = require('is-binary-path'); -const { - isWindows, - isLinux, - EMPTY_FN, - EMPTY_STR, - KEY_LISTENERS, - KEY_ERR, - KEY_RAW, - HANDLER_KEYS, - EV_CHANGE, - EV_ADD, - EV_ADD_DIR, - EV_ERROR, - STR_DATA, - STR_END, - BRACE_START, - STAR -} = require('./constants'); - -const THROTTLE_MODE_WATCH = 'watch'; - -const open = promisify(fs.open); -const stat = promisify(fs.stat); -const lstat = promisify(fs.lstat); -const close = promisify(fs.close); -const fsrealpath = promisify(fs.realpath); - -const statMethods = { lstat, stat }; - -// TODO: emit errors properly. Example: EMFILE on Macos. -const foreach = (val, fn) => { - if (val instanceof Set) { - val.forEach(fn); - } else { - fn(val); - } -}; - -const addAndConvert = (main, prop, item) => { - let container = main[prop]; - if (!(container instanceof Set)) { - main[prop] = container = new Set([container]); - } - container.add(item); -}; - -const clearItem = cont => key => { - const set = cont[key]; - if (set instanceof Set) { - set.clear(); - } else { - delete cont[key]; - } -}; - -const delFromSet = (main, prop, item) => { - const container = main[prop]; - if (container instanceof Set) { - container.delete(item); - } else if (container === item) { - delete main[prop]; - } -}; - -const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; - -/** - * @typedef {String} Path - */ - -// fs_watch helpers - -// object to hold per-process fs_watch instances -// (may be shared across chokidar FSWatcher instances) - -/** - * @typedef {Object} FsWatchContainer - * @property {Set} listeners - * @property {Set} errHandlers - * @property {Set} rawEmitters - * @property {fs.FSWatcher=} watcher - * @property {Boolean=} watcherUnusable - */ - -/** - * @type {Map} - */ -const FsWatchInstances = new Map(); - -/** - * Instantiates the fs_watch interface - * @param {String} path to be watched - * @param {Object} options to be passed to fs_watch - * @param {Function} listener main event handler - * @param {Function} errHandler emits info about errors - * @param {Function} emitRaw emits raw event data - * @returns {fs.FSWatcher} new fsevents instance - */ -function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { - const handleEvent = (rawEvent, evPath) => { - listener(path); - emitRaw(rawEvent, evPath, {watchedPath: path}); - - // emit based on events occurring for files from a directory's watcher in - // case the file's watcher misses it (and rely on throttling to de-dupe) - if (evPath && path !== evPath) { - fsWatchBroadcast( - sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath) - ); - } - }; - try { - return fs.watch(path, options, handleEvent); - } catch (error) { - errHandler(error); - } -} - -/** - * Helper for passing fs_watch event data to a collection of listeners - * @param {Path} fullPath absolute path bound to fs_watch instance - * @param {String} type listener type - * @param {*=} val1 arguments to be passed to listeners - * @param {*=} val2 - * @param {*=} val3 - */ -const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { - const cont = FsWatchInstances.get(fullPath); - if (!cont) return; - foreach(cont[type], (listener) => { - listener(val1, val2, val3); - }); -}; - -/** - * Instantiates the fs_watch interface or binds listeners - * to an existing one covering the same file system entry - * @param {String} path - * @param {String} fullPath absolute path - * @param {Object} options to be passed to fs_watch - * @param {Object} handlers container for event listener functions - */ -const setFsWatchListener = (path, fullPath, options, handlers) => { - const {listener, errHandler, rawEmitter} = handlers; - let cont = FsWatchInstances.get(fullPath); - - /** @type {fs.FSWatcher=} */ - let watcher; - if (!options.persistent) { - watcher = createFsWatchInstance( - path, options, listener, errHandler, rawEmitter - ); - return watcher.close.bind(watcher); - } - if (cont) { - addAndConvert(cont, KEY_LISTENERS, listener); - addAndConvert(cont, KEY_ERR, errHandler); - addAndConvert(cont, KEY_RAW, rawEmitter); - } else { - watcher = createFsWatchInstance( - path, - options, - fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), - errHandler, // no need to use broadcast here - fsWatchBroadcast.bind(null, fullPath, KEY_RAW) - ); - if (!watcher) return; - watcher.on(EV_ERROR, async (error) => { - const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); - cont.watcherUnusable = true; // documented since Node 10.4.1 - // Workaround for https://github.com/joyent/node/issues/4337 - if (isWindows && error.code === 'EPERM') { - try { - const fd = await open(path, 'r'); - await close(fd); - broadcastErr(error); - } catch (err) {} - } else { - broadcastErr(error); - } - }); - cont = { - listeners: listener, - errHandlers: errHandler, - rawEmitters: rawEmitter, - watcher - }; - FsWatchInstances.set(fullPath, cont); - } - // const index = cont.listeners.indexOf(listener); - - // removes this instance's listeners and closes the underlying fs_watch - // instance if there are no more listeners left - return () => { - delFromSet(cont, KEY_LISTENERS, listener); - delFromSet(cont, KEY_ERR, errHandler); - delFromSet(cont, KEY_RAW, rawEmitter); - if (isEmptySet(cont.listeners)) { - // Check to protect against issue gh-730. - // if (cont.watcherUnusable) { - cont.watcher.close(); - // } - FsWatchInstances.delete(fullPath); - HANDLER_KEYS.forEach(clearItem(cont)); - cont.watcher = undefined; - Object.freeze(cont); - } - }; -}; - -// fs_watchFile helpers - -// object to hold per-process fs_watchFile instances -// (may be shared across chokidar FSWatcher instances) -const FsWatchFileInstances = new Map(); - -/** - * Instantiates the fs_watchFile interface or binds listeners - * to an existing one covering the same file system entry - * @param {String} path to be watched - * @param {String} fullPath absolute path - * @param {Object} options options to be passed to fs_watchFile - * @param {Object} handlers container for event listener functions - * @returns {Function} closer - */ -const setFsWatchFileListener = (path, fullPath, options, handlers) => { - const {listener, rawEmitter} = handlers; - let cont = FsWatchFileInstances.get(fullPath); - - /* eslint-disable no-unused-vars, prefer-destructuring */ - let listeners = new Set(); - let rawEmitters = new Set(); - - const copts = cont && cont.options; - if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { - // "Upgrade" the watcher to persistence or a quicker interval. - // This creates some unlikely edge case issues if the user mixes - // settings in a very weird way, but solving for those cases - // doesn't seem worthwhile for the added complexity. - listeners = cont.listeners; - rawEmitters = cont.rawEmitters; - fs.unwatchFile(fullPath); - cont = undefined; - } - - /* eslint-enable no-unused-vars, prefer-destructuring */ - - if (cont) { - addAndConvert(cont, KEY_LISTENERS, listener); - addAndConvert(cont, KEY_RAW, rawEmitter); - } else { - // TODO - // listeners.add(listener); - // rawEmitters.add(rawEmitter); - cont = { - listeners: listener, - rawEmitters: rawEmitter, - options, - watcher: fs.watchFile(fullPath, options, (curr, prev) => { - foreach(cont.rawEmitters, (rawEmitter) => { - rawEmitter(EV_CHANGE, fullPath, {curr, prev}); - }); - const currmtime = curr.mtimeMs; - if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { - foreach(cont.listeners, (listener) => listener(path, curr)); - } - }) - }; - FsWatchFileInstances.set(fullPath, cont); - } - // const index = cont.listeners.indexOf(listener); - - // Removes this instance's listeners and closes the underlying fs_watchFile - // instance if there are no more listeners left. - return () => { - delFromSet(cont, KEY_LISTENERS, listener); - delFromSet(cont, KEY_RAW, rawEmitter); - if (isEmptySet(cont.listeners)) { - FsWatchFileInstances.delete(fullPath); - fs.unwatchFile(fullPath); - cont.options = cont.watcher = undefined; - Object.freeze(cont); - } - }; -}; - -/** - * @mixin - */ -class NodeFsHandler { - -/** - * @param {import("../index").FSWatcher} fsW - */ -constructor(fsW) { - this.fsw = fsW; - this._boundHandleError = (error) => fsW._handleError(error); -} - -/** - * Watch file for changes with fs_watchFile or fs_watch. - * @param {String} path to file or dir - * @param {Function} listener on fs change - * @returns {Function} closer for the watcher instance - */ -_watchWithNodeFs(path, listener) { - const opts = this.fsw.options; - const directory = sysPath.dirname(path); - const basename = sysPath.basename(path); - const parent = this.fsw._getWatchedDir(directory); - parent.add(basename); - const absolutePath = sysPath.resolve(path); - const options = {persistent: opts.persistent}; - if (!listener) listener = EMPTY_FN; - - let closer; - if (opts.usePolling) { - options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? - opts.binaryInterval : opts.interval; - closer = setFsWatchFileListener(path, absolutePath, options, { - listener, - rawEmitter: this.fsw._emitRaw - }); - } else { - closer = setFsWatchListener(path, absolutePath, options, { - listener, - errHandler: this._boundHandleError, - rawEmitter: this.fsw._emitRaw - }); - } - return closer; -} - -/** - * Watch a file and emit add event if warranted. - * @param {Path} file Path - * @param {fs.Stats} stats result of fs_stat - * @param {Boolean} initialAdd was the file added at watch instantiation? - * @returns {Function} closer for the watcher instance - */ -_handleFile(file, stats, initialAdd) { - if (this.fsw.closed) { - return; - } - const dirname = sysPath.dirname(file); - const basename = sysPath.basename(file); - const parent = this.fsw._getWatchedDir(dirname); - // stats is always present - let prevStats = stats; - - // if the file is already being watched, do nothing - if (parent.has(basename)) return; - - const listener = async (path, newStats) => { - if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; - if (!newStats || newStats.mtimeMs === 0) { - try { - const newStats = await stat(file); - if (this.fsw.closed) return; - // Check that change event was not fired because of changed only accessTime. - const at = newStats.atimeMs; - const mt = newStats.mtimeMs; - if (!at || at <= mt || mt !== prevStats.mtimeMs) { - this.fsw._emit(EV_CHANGE, file, newStats); - } - if (isLinux && prevStats.ino !== newStats.ino) { - this.fsw._closeFile(path) - prevStats = newStats; - this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); - } else { - prevStats = newStats; - } - } catch (error) { - // Fix issues where mtime is null but file is still present - this.fsw._remove(dirname, basename); - } - // add is about to be emitted if file not already tracked in parent - } else if (parent.has(basename)) { - // Check that change event was not fired because of changed only accessTime. - const at = newStats.atimeMs; - const mt = newStats.mtimeMs; - if (!at || at <= mt || mt !== prevStats.mtimeMs) { - this.fsw._emit(EV_CHANGE, file, newStats); - } - prevStats = newStats; - } - } - // kick off the watcher - const closer = this._watchWithNodeFs(file, listener); - - // emit an add event if we're supposed to - if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { - if (!this.fsw._throttle(EV_ADD, file, 0)) return; - this.fsw._emit(EV_ADD, file, stats); - } - - return closer; -} - -/** - * Handle symlinks encountered while reading a dir. - * @param {Object} entry returned by readdirp - * @param {String} directory path of dir being read - * @param {String} path of this item - * @param {String} item basename of this item - * @returns {Promise} true if no more processing is needed for this entry. - */ -async _handleSymlink(entry, directory, path, item) { - if (this.fsw.closed) { - return; - } - const full = entry.fullPath; - const dir = this.fsw._getWatchedDir(directory); - - if (!this.fsw.options.followSymlinks) { - // watch symlink directly (don't follow) and detect changes - this.fsw._incrReadyCount(); - - let linkPath; - try { - linkPath = await fsrealpath(path); - } catch (e) { - this.fsw._emitReady(); - return true; - } - - if (this.fsw.closed) return; - if (dir.has(item)) { - if (this.fsw._symlinkPaths.get(full) !== linkPath) { - this.fsw._symlinkPaths.set(full, linkPath); - this.fsw._emit(EV_CHANGE, path, entry.stats); - } - } else { - dir.add(item); - this.fsw._symlinkPaths.set(full, linkPath); - this.fsw._emit(EV_ADD, path, entry.stats); - } - this.fsw._emitReady(); - return true; - } - - // don't follow the same symlink more than once - if (this.fsw._symlinkPaths.has(full)) { - return true; - } - - this.fsw._symlinkPaths.set(full, true); -} - -_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { - // Normalize the directory name on Windows - directory = sysPath.join(directory, EMPTY_STR); - - if (!wh.hasGlob) { - throttler = this.fsw._throttle('readdir', directory, 1000); - if (!throttler) return; - } - - const previous = this.fsw._getWatchedDir(wh.path); - const current = new Set(); - - let stream = this.fsw._readdirp(directory, { - fileFilter: entry => wh.filterPath(entry), - directoryFilter: entry => wh.filterDir(entry), - depth: 0 - }).on(STR_DATA, async (entry) => { - if (this.fsw.closed) { - stream = undefined; - return; - } - const item = entry.path; - let path = sysPath.join(directory, item); - current.add(item); - - if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { - return; - } - - if (this.fsw.closed) { - stream = undefined; - return; - } - // Files that present in current directory snapshot - // but absent in previous are added to watch list and - // emit `add` event. - if (item === target || !target && !previous.has(item)) { - this.fsw._incrReadyCount(); - - // ensure relativeness of path is preserved in case of watcher reuse - path = sysPath.join(dir, sysPath.relative(dir, path)); - - this._addToNodeFs(path, initialAdd, wh, depth + 1); - } - }).on(EV_ERROR, this._boundHandleError); - - return new Promise(resolve => - stream.once(STR_END, () => { - if (this.fsw.closed) { - stream = undefined; - return; - } - const wasThrottled = throttler ? throttler.clear() : false; - - resolve(); - - // Files that absent in current directory snapshot - // but present in previous emit `remove` event - // and are removed from @watched[directory]. - previous.getChildren().filter((item) => { - return item !== directory && - !current.has(item) && - // in case of intersecting globs; - // a path may have been filtered out of this readdir, but - // shouldn't be removed because it matches a different glob - (!wh.hasGlob || wh.filterPath({ - fullPath: sysPath.resolve(directory, item) - })); - }).forEach((item) => { - this.fsw._remove(directory, item); - }); - - stream = undefined; - - // one more time for any missed in case changes came in extremely quickly - if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); - }) - ); -} - -/** - * Read directory to add / remove files from `@watched` list and re-read it on change. - * @param {String} dir fs path - * @param {fs.Stats} stats - * @param {Boolean} initialAdd - * @param {Number} depth relative to user-supplied path - * @param {String} target child path targeted for watch - * @param {Object} wh Common watch helpers for this path - * @param {String} realpath - * @returns {Promise} closer for the watcher instance. - */ -async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { - const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir)); - const tracked = parentDir.has(sysPath.basename(dir)); - if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { - if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); - } - - // ensure dir is tracked (harmless if redundant) - parentDir.add(sysPath.basename(dir)); - this.fsw._getWatchedDir(dir); - let throttler; - let closer; - - const oDepth = this.fsw.options.depth; - if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { - if (!target) { - await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); - if (this.fsw.closed) return; - } - - closer = this._watchWithNodeFs(dir, (dirPath, stats) => { - // if current directory is removed, do nothing - if (stats && stats.mtimeMs === 0) return; - - this._handleRead(dirPath, false, wh, target, dir, depth, throttler); - }); - } - return closer; -} - -/** - * Handle added file, directory, or glob pattern. - * Delegates call to _handleFile / _handleDir after checks. - * @param {String} path to file or ir - * @param {Boolean} initialAdd was the file added at watch instantiation? - * @param {Object} priorWh depth relative to user-supplied path - * @param {Number} depth Child path actually targeted for watch - * @param {String=} target Child path actually targeted for watch - * @returns {Promise} - */ -async _addToNodeFs(path, initialAdd, priorWh, depth, target) { - const ready = this.fsw._emitReady; - if (this.fsw._isIgnored(path) || this.fsw.closed) { - ready(); - return false; - } - - const wh = this.fsw._getWatchHelpers(path, depth); - if (!wh.hasGlob && priorWh) { - wh.hasGlob = priorWh.hasGlob; - wh.globFilter = priorWh.globFilter; - wh.filterPath = entry => priorWh.filterPath(entry); - wh.filterDir = entry => priorWh.filterDir(entry); - } - - // evaluate what is at the path we're being asked to watch - try { - const stats = await statMethods[wh.statMethod](wh.watchPath); - if (this.fsw.closed) return; - if (this.fsw._isIgnored(wh.watchPath, stats)) { - ready(); - return false; - } - - const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START); - let closer; - if (stats.isDirectory()) { - const absPath = sysPath.resolve(path); - const targetPath = follow ? await fsrealpath(path) : path; - if (this.fsw.closed) return; - closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); - if (this.fsw.closed) return; - // preserve this symlink's target path - if (absPath !== targetPath && targetPath !== undefined) { - this.fsw._symlinkPaths.set(absPath, targetPath); - } - } else if (stats.isSymbolicLink()) { - const targetPath = follow ? await fsrealpath(path) : path; - if (this.fsw.closed) return; - const parent = sysPath.dirname(wh.watchPath); - this.fsw._getWatchedDir(parent).add(wh.watchPath); - this.fsw._emit(EV_ADD, wh.watchPath, stats); - closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); - if (this.fsw.closed) return; - - // preserve this symlink's target path - if (targetPath !== undefined) { - this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath); - } - } else { - closer = this._handleFile(wh.watchPath, stats, initialAdd); - } - ready(); - - this.fsw._addPathCloser(path, closer); - return false; - - } catch (error) { - if (this.fsw._handleError(error)) { - ready(); - return path; - } - } -} - -} - -module.exports = NodeFsHandler; diff --git a/node_modules/chokidar/package.json b/node_modules/chokidar/package.json deleted file mode 100644 index e8f8b3d9..00000000 --- a/node_modules/chokidar/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "chokidar", - "description": "Minimal and efficient cross-platform file watching library", - "version": "3.6.0", - "homepage": "https://github.com/paulmillr/chokidar", - "author": "Paul Miller (https://paulmillr.com)", - "contributors": [ - "Paul Miller (https://paulmillr.com)", - "Elan Shanker" - ], - "engines": { - "node": ">= 8.10.0" - }, - "main": "index.js", - "types": "./types/index.d.ts", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "devDependencies": { - "@types/node": "^14", - "chai": "^4.3", - "dtslint": "^3.3.0", - "eslint": "^7.0.0", - "mocha": "^7.0.0", - "rimraf": "^3.0.0", - "sinon": "^9.0.1", - "sinon-chai": "^3.3.0", - "typescript": "^4.4.3", - "upath": "^1.2.0" - }, - "files": [ - "index.js", - "lib/*.js", - "types/index.d.ts" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/paulmillr/chokidar.git" - }, - "bugs": { - "url": "https://github.com/paulmillr/chokidar/issues" - }, - "license": "MIT", - "scripts": { - "dtslint": "dtslint types", - "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", - "build": "npm ls", - "mocha": "mocha --exit --timeout 90000", - "test": "npm run lint && npm run mocha" - }, - "keywords": [ - "fs", - "watch", - "watchFile", - "watcher", - "watching", - "file", - "fsevents" - ], - "funding": "https://paulmillr.com/funding/" -} diff --git a/node_modules/chokidar/types/index.d.ts b/node_modules/chokidar/types/index.d.ts deleted file mode 100644 index 45580663..00000000 --- a/node_modules/chokidar/types/index.d.ts +++ /dev/null @@ -1,192 +0,0 @@ -// TypeScript Version: 3.0 - -/// - -import * as fs from "fs"; -import { EventEmitter } from "events"; -import { Matcher } from 'anymatch'; - -export class FSWatcher extends EventEmitter implements fs.FSWatcher { - options: WatchOptions; - - /** - * Constructs a new FSWatcher instance with optional WatchOptions parameter. - */ - constructor(options?: WatchOptions); - - /** - * Add files, directories, or glob patterns for tracking. Takes an array of strings or just one - * string. - */ - add(paths: string | ReadonlyArray): this; - - /** - * Stop watching files, directories, or glob patterns. Takes an array of strings or just one - * string. - */ - unwatch(paths: string | ReadonlyArray): this; - - /** - * Returns an object representing all the paths on the file system being watched by this - * `FSWatcher` instance. The object's keys are all the directories (using absolute paths unless - * the `cwd` option was used), and the values are arrays of the names of the items contained in - * each directory. - */ - getWatched(): { - [directory: string]: string[]; - }; - - /** - * Removes all listeners from watched files. - */ - close(): Promise; - - on(event: 'add'|'addDir'|'change', listener: (path: string, stats?: fs.Stats) => void): this; - - on(event: 'all', listener: (eventName: 'add'|'addDir'|'change'|'unlink'|'unlinkDir', path: string, stats?: fs.Stats) => void): this; - - /** - * Error occurred - */ - on(event: 'error', listener: (error: Error) => void): this; - - /** - * Exposes the native Node `fs.FSWatcher events` - */ - on(event: 'raw', listener: (eventName: string, path: string, details: any) => void): this; - - /** - * Fires when the initial scan is complete - */ - on(event: 'ready', listener: () => void): this; - - on(event: 'unlink'|'unlinkDir', listener: (path: string) => void): this; - - on(event: string, listener: (...args: any[]) => void): this; - - ref(): this; - - unref(): this; -} - -export interface WatchOptions { - /** - * Indicates whether the process should continue to run as long as files are being watched. If - * set to `false` when using `fsevents` to watch, no more events will be emitted after `ready`, - * even if the process continues to run. - */ - persistent?: boolean; - - /** - * ([anymatch](https://github.com/micromatch/anymatch)-compatible definition) Defines files/paths to - * be ignored. The whole relative or absolute path is tested, not just filename. If a function - * with two arguments is provided, it gets called twice per path - once with a single argument - * (the path), second time with two arguments (the path and the - * [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object of that path). - */ - ignored?: Matcher; - - /** - * If set to `false` then `add`/`addDir` events are also emitted for matching paths while - * instantiating the watching as chokidar discovers these file paths (before the `ready` event). - */ - ignoreInitial?: boolean; - - /** - * When `false`, only the symlinks themselves will be watched for changes instead of following - * the link references and bubbling events through the link's path. - */ - followSymlinks?: boolean; - - /** - * The base directory from which watch `paths` are to be derived. Paths emitted with events will - * be relative to this. - */ - cwd?: string; - - /** - * If set to true then the strings passed to .watch() and .add() are treated as literal path - * names, even if they look like globs. Default: false. - */ - disableGlobbing?: boolean; - - /** - * Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU - * utilization, consider setting this to `false`. It is typically necessary to **set this to - * `true` to successfully watch files over a network**, and it may be necessary to successfully - * watch files in other non-standard situations. Setting to `true` explicitly on OS X overrides - * the `useFsEvents` default. - */ - usePolling?: boolean; - - /** - * Whether to use the `fsevents` watching interface if available. When set to `true` explicitly - * and `fsevents` is available this supercedes the `usePolling` setting. When set to `false` on - * OS X, `usePolling: true` becomes the default. - */ - useFsEvents?: boolean; - - /** - * If relying upon the [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object that - * may get passed with `add`, `addDir`, and `change` events, set this to `true` to ensure it is - * provided even in cases where it wasn't already available from the underlying watch events. - */ - alwaysStat?: boolean; - - /** - * If set, limits how many levels of subdirectories will be traversed. - */ - depth?: number; - - /** - * Interval of file system polling. - */ - interval?: number; - - /** - * Interval of file system polling for binary files. ([see list of binary extensions](https://gi - * thub.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) - */ - binaryInterval?: number; - - /** - * Indicates whether to watch files that don't have read permissions if possible. If watching - * fails due to `EPERM` or `EACCES` with this set to `true`, the errors will be suppressed - * silently. - */ - ignorePermissionErrors?: boolean; - - /** - * `true` if `useFsEvents` and `usePolling` are `false`). Automatically filters out artifacts - * that occur when using editors that use "atomic writes" instead of writing directly to the - * source file. If a file is re-added within 100 ms of being deleted, Chokidar emits a `change` - * event rather than `unlink` then `add`. If the default of 100 ms does not work well for you, - * you can override it by setting `atomic` to a custom value, in milliseconds. - */ - atomic?: boolean | number; - - /** - * can be set to an object in order to adjust timing params: - */ - awaitWriteFinish?: AwaitWriteFinishOptions | boolean; -} - -export interface AwaitWriteFinishOptions { - /** - * Amount of time in milliseconds for a file size to remain constant before emitting its event. - */ - stabilityThreshold?: number; - - /** - * File size polling interval. - */ - pollInterval?: number; -} - -/** - * produces an instance of `FSWatcher`. - */ -export function watch( - paths: string | ReadonlyArray, - options?: WatchOptions -): FSWatcher; diff --git a/node_modules/concat-map/.travis.yml b/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13c..00000000 --- a/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/node_modules/concat-map/LICENSE b/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b..00000000 --- a/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/concat-map/README.markdown b/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1..00000000 --- a/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/node_modules/concat-map/example/map.js b/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217..00000000 --- a/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/node_modules/concat-map/index.js b/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812..00000000 --- a/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/node_modules/concat-map/package.json b/node_modules/concat-map/package.json deleted file mode 100644 index d3640e6b..00000000 --- a/node_modules/concat-map/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name" : "concat-map", - "description" : "concatenative mapdashery", - "version" : "0.0.1", - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/node-concat-map.git" - }, - "main" : "index.js", - "keywords" : [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories" : { - "example" : "example", - "test" : "test" - }, - "scripts" : { - "test" : "tape test/*.js" - }, - "devDependencies" : { - "tape" : "~2.4.0" - }, - "license" : "MIT", - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "ie" : [ 6, 7, 8, 9 ], - "ff" : [ 3.5, 10, 15.0 ], - "chrome" : [ 10, 22 ], - "safari" : [ 5.1 ], - "opera" : [ 12 ] - } - } -} diff --git a/node_modules/concat-map/test/map.js b/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022..00000000 --- a/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/node_modules/content-disposition/HISTORY.md b/node_modules/content-disposition/HISTORY.md deleted file mode 100755 index ff0b68bb..00000000 --- a/node_modules/content-disposition/HISTORY.md +++ /dev/null @@ -1,66 +0,0 @@ -1.0.0 / 2024-08-31 -================== - - * drop node <18 - * allow utf8 as alias for utf-8 - -0.5.4 / 2021-12-10 -================== - - * deps: safe-buffer@5.2.1 - -0.5.3 / 2018-12-17 -================== - - * Use `safe-buffer` for improved Buffer API - -0.5.2 / 2016-12-08 -================== - - * Fix `parse` to accept any linear whitespace character - -0.5.1 / 2016-01-17 -================== - - * perf: enable strict mode - -0.5.0 / 2014-10-11 -================== - - * Add `parse` function - -0.4.0 / 2014-09-21 -================== - - * Expand non-Unicode `filename` to the full ISO-8859-1 charset - -0.3.0 / 2014-09-20 -================== - - * Add `fallback` option - * Add `type` option - -0.2.0 / 2014-09-19 -================== - - * Reduce ambiguity of file names with hex escape in buggy browsers - -0.1.2 / 2014-09-19 -================== - - * Fix periodic invalid Unicode filename header - -0.1.1 / 2014-09-19 -================== - - * Fix invalid characters appearing in `filename*` parameter - -0.1.0 / 2014-09-18 -================== - - * Make the `filename` argument optional - -0.0.0 / 2014-09-18 -================== - - * Initial release diff --git a/node_modules/content-disposition/LICENSE b/node_modules/content-disposition/LICENSE deleted file mode 100755 index 84441fbb..00000000 --- a/node_modules/content-disposition/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 Douglas Christopher Wilson - -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/content-disposition/README.md b/node_modules/content-disposition/README.md deleted file mode 100755 index 3a0bb055..00000000 --- a/node_modules/content-disposition/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# content-disposition - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][github-actions-ci-image]][github-actions-ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create and parse HTTP `Content-Disposition` header - -## Installation - -```sh -$ npm install content-disposition -``` - -## API - -```js -var contentDisposition = require('content-disposition') -``` - -### contentDisposition(filename, options) - -Create an attachment `Content-Disposition` header value using the given file name, -if supplied. The `filename` is optional and if no file name is desired, but you -want to specify `options`, set `filename` to `undefined`. - -```js -res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf')) -``` - -**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this -header through a means different from `setHeader` in Node.js, you'll want to specify -the `'binary'` encoding in Node.js. - -#### Options - -`contentDisposition` accepts these properties in the options object. - -##### fallback - -If the `filename` option is outside ISO-8859-1, then the file name is actually -stored in a supplemental field for clients that support Unicode file names and -a ISO-8859-1 version of the file name is automatically generated. - -This specifies the ISO-8859-1 file name to override the automatic generation or -disables the generation all together, defaults to `true`. - - - A string will specify the ISO-8859-1 file name to use in place of automatic - generation. - - `false` will disable including a ISO-8859-1 file name and only include the - Unicode version (unless the file name is already ISO-8859-1). - - `true` will enable automatic generation if the file name is outside ISO-8859-1. - -If the `filename` option is ISO-8859-1 and this option is specified and has a -different value, then the `filename` option is encoded in the extended field -and this set as the fallback field, even though they are both ISO-8859-1. - -##### type - -Specifies the disposition type, defaults to `"attachment"`. This can also be -`"inline"`, or any other value (all values except inline are treated like -`attachment`, but can convey additional information if both parties agree to -it). The type is normalized to lower-case. - -### contentDisposition.parse(string) - -```js -var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt') -``` - -Parse a `Content-Disposition` header string. This automatically handles extended -("Unicode") parameters by decoding them and providing them under the standard -parameter name. This will return an object with the following properties (examples -are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): - - - `type`: The disposition type (always lower case). Example: `'attachment'` - - - `parameters`: An object of the parameters in the disposition (name of parameter - always lower case and extended versions replace non-extended versions). Example: - `{filename: "€ rates.txt"}` - -## Examples - -### Send a file for download - -```js -var contentDisposition = require('content-disposition') -var destroy = require('destroy') -var fs = require('fs') -var http = require('http') -var onFinished = require('on-finished') - -var filePath = '/path/to/public/plans.pdf' - -http.createServer(function onRequest (req, res) { - // set headers - res.setHeader('Content-Type', 'application/pdf') - res.setHeader('Content-Disposition', contentDisposition(filePath)) - - // send file - var stream = fs.createReadStream(filePath) - stream.pipe(res) - onFinished(res, function () { - destroy(stream) - }) -}) -``` - -## Testing - -```sh -$ npm test -``` - -## References - -- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] -- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] -- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] -- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] - -[rfc-2616]: https://tools.ietf.org/html/rfc2616 -[rfc-5987]: https://tools.ietf.org/html/rfc5987 -[rfc-6266]: https://tools.ietf.org/html/rfc6266 -[tc-2231]: http://greenbytes.de/tech/tc2231/ - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/content-disposition.svg -[npm-url]: https://npmjs.org/package/content-disposition -[node-version-image]: https://img.shields.io/node/v/content-disposition.svg -[node-version-url]: https://nodejs.org/en/download -[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg -[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master -[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg -[downloads-url]: https://npmjs.org/package/content-disposition -[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/content-disposition/ci/master?label=ci -[github-actions-ci-url]: https://github.com/jshttp/content-disposition?query=workflow%3Aci diff --git a/node_modules/content-disposition/index.js b/node_modules/content-disposition/index.js deleted file mode 100755 index 44f1d51f..00000000 --- a/node_modules/content-disposition/index.js +++ /dev/null @@ -1,459 +0,0 @@ -/*! - * content-disposition - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = contentDisposition -module.exports.parse = parse - -/** - * Module dependencies. - * @private - */ - -var basename = require('path').basename -var Buffer = require('safe-buffer').Buffer - -/** - * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") - * @private - */ - -var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex - -/** - * RegExp to match percent encoding escape. - * @private - */ - -var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/ -var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g - -/** - * RegExp to match non-latin1 characters. - * @private - */ - -var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g - -/** - * RegExp to match quoted-pair in RFC 2616 - * - * quoted-pair = "\" CHAR - * CHAR = - * @private - */ - -var QESC_REGEXP = /\\([\u0000-\u007f])/g // eslint-disable-line no-control-regex - -/** - * RegExp to match chars that must be quoted-pair in RFC 2616 - * @private - */ - -var QUOTE_REGEXP = /([\\"])/g - -/** - * RegExp for various RFC 2616 grammar - * - * parameter = token "=" ( token | quoted-string ) - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) - * qdtext = > - * quoted-pair = "\" CHAR - * CHAR = - * TEXT = - * LWS = [CRLF] 1*( SP | HT ) - * CRLF = CR LF - * CR = - * LF = - * SP = - * HT = - * CTL = - * OCTET = - * @private - */ - -var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex -var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/ -var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/ - -/** - * RegExp for various RFC 5987 grammar - * - * ext-value = charset "'" [ language ] "'" value-chars - * charset = "UTF-8" / "ISO-8859-1" / mime-charset - * mime-charset = 1*mime-charsetc - * mime-charsetc = ALPHA / DIGIT - * / "!" / "#" / "$" / "%" / "&" - * / "+" / "-" / "^" / "_" / "`" - * / "{" / "}" / "~" - * language = ( 2*3ALPHA [ extlang ] ) - * / 4ALPHA - * / 5*8ALPHA - * extlang = *3( "-" 3ALPHA ) - * value-chars = *( pct-encoded / attr-char ) - * pct-encoded = "%" HEXDIG HEXDIG - * attr-char = ALPHA / DIGIT - * / "!" / "#" / "$" / "&" / "+" / "-" / "." - * / "^" / "_" / "`" / "|" / "~" - * @private - */ - -var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/ - -/** - * RegExp for various RFC 6266 grammar - * - * disposition-type = "inline" | "attachment" | disp-ext-type - * disp-ext-type = token - * disposition-parm = filename-parm | disp-ext-parm - * filename-parm = "filename" "=" value - * | "filename*" "=" ext-value - * disp-ext-parm = token "=" value - * | ext-token "=" ext-value - * ext-token = - * @private - */ - -var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex - -/** - * Create an attachment Content-Disposition header. - * - * @param {string} [filename] - * @param {object} [options] - * @param {string} [options.type=attachment] - * @param {string|boolean} [options.fallback=true] - * @return {string} - * @public - */ - -function contentDisposition (filename, options) { - var opts = options || {} - - // get type - var type = opts.type || 'attachment' - - // get parameters - var params = createparams(filename, opts.fallback) - - // format into string - return format(new ContentDisposition(type, params)) -} - -/** - * Create parameters object from filename and fallback. - * - * @param {string} [filename] - * @param {string|boolean} [fallback=true] - * @return {object} - * @private - */ - -function createparams (filename, fallback) { - if (filename === undefined) { - return - } - - var params = {} - - if (typeof filename !== 'string') { - throw new TypeError('filename must be a string') - } - - // fallback defaults to true - if (fallback === undefined) { - fallback = true - } - - if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { - throw new TypeError('fallback must be a string or boolean') - } - - if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) { - throw new TypeError('fallback must be ISO-8859-1 string') - } - - // restrict to file base name - var name = basename(filename) - - // determine if name is suitable for quoted string - var isQuotedString = TEXT_REGEXP.test(name) - - // generate fallback name - var fallbackName = typeof fallback !== 'string' - ? fallback && getlatin1(name) - : basename(fallback) - var hasFallback = typeof fallbackName === 'string' && fallbackName !== name - - // set extended filename parameter - if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { - params['filename*'] = name - } - - // set filename parameter - if (isQuotedString || hasFallback) { - params.filename = hasFallback - ? fallbackName - : name - } - - return params -} - -/** - * Format object to Content-Disposition header. - * - * @param {object} obj - * @param {string} obj.type - * @param {object} [obj.parameters] - * @return {string} - * @private - */ - -function format (obj) { - var parameters = obj.parameters - var type = obj.type - - if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) { - throw new TypeError('invalid type') - } - - // start with normalized type - var string = String(type).toLowerCase() - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - var val = param.slice(-1) === '*' - ? ustring(parameters[param]) - : qstring(parameters[param]) - - string += '; ' + param + '=' + val - } - } - - return string -} - -/** - * Decode a RFC 5987 field value (gracefully). - * - * @param {string} str - * @return {string} - * @private - */ - -function decodefield (str) { - var match = EXT_VALUE_REGEXP.exec(str) - - if (!match) { - throw new TypeError('invalid extended field value') - } - - var charset = match[1].toLowerCase() - var encoded = match[2] - var value - - // to binary string - var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode) - - switch (charset) { - case 'iso-8859-1': - value = getlatin1(binary) - break - case 'utf-8': - case 'utf8': - value = Buffer.from(binary, 'binary').toString('utf8') - break - default: - throw new TypeError('unsupported charset in extended field') - } - - return value -} - -/** - * Get ISO-8859-1 version of string. - * - * @param {string} val - * @return {string} - * @private - */ - -function getlatin1 (val) { - // simple Unicode -> ISO-8859-1 transformation - return String(val).replace(NON_LATIN1_REGEXP, '?') -} - -/** - * Parse Content-Disposition header string. - * - * @param {string} string - * @return {object} - * @public - */ - -function parse (string) { - if (!string || typeof string !== 'string') { - throw new TypeError('argument string is required') - } - - var match = DISPOSITION_TYPE_REGEXP.exec(string) - - if (!match) { - throw new TypeError('invalid type format') - } - - // normalize type - var index = match[0].length - var type = match[1].toLowerCase() - - var key - var names = [] - var params = {} - var value - - // calculate index to start at - index = PARAM_REGEXP.lastIndex = match[0].slice(-1) === ';' - ? index - 1 - : index - - // match parameters - while ((match = PARAM_REGEXP.exec(string))) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (names.indexOf(key) !== -1) { - throw new TypeError('invalid duplicate parameter') - } - - names.push(key) - - if (key.indexOf('*') + 1 === key.length) { - // decode extended value - key = key.slice(0, -1) - value = decodefield(value) - - // overwrite existing value - params[key] = value - continue - } - - if (typeof params[key] === 'string') { - continue - } - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .slice(1, -1) - .replace(QESC_REGEXP, '$1') - } - - params[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - return new ContentDisposition(type, params) -} - -/** - * Percent decode a single character. - * - * @param {string} str - * @param {string} hex - * @return {string} - * @private - */ - -function pdecode (str, hex) { - return String.fromCharCode(parseInt(hex, 16)) -} - -/** - * Percent encode a single character. - * - * @param {string} char - * @return {string} - * @private - */ - -function pencode (char) { - return '%' + String(char) - .charCodeAt(0) - .toString(16) - .toUpperCase() -} - -/** - * Quote a string for HTTP. - * - * @param {string} val - * @return {string} - * @private - */ - -function qstring (val) { - var str = String(val) - - return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' -} - -/** - * Encode a Unicode string for HTTP (RFC 5987). - * - * @param {string} val - * @return {string} - * @private - */ - -function ustring (val) { - var str = String(val) - - // percent encode as UTF-8 - var encoded = encodeURIComponent(str) - .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode) - - return 'UTF-8\'\'' + encoded -} - -/** - * Class for parsed Content-Disposition header for v8 optimization - * - * @public - * @param {string} type - * @param {object} parameters - * @constructor - */ - -function ContentDisposition (type, parameters) { - this.type = type - this.parameters = parameters -} diff --git a/node_modules/content-disposition/package.json b/node_modules/content-disposition/package.json deleted file mode 100755 index 5cea50ba..00000000 --- a/node_modules/content-disposition/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "content-disposition", - "description": "Create and parse Content-Disposition header", - "version": "1.0.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "content-disposition", - "http", - "rfc6266", - "res" - ], - "repository": "jshttp/content-disposition", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "devDependencies": { - "deep-equal": "1.0.1", - "eslint": "7.32.0", - "eslint-config-standard": "13.0.1", - "eslint-plugin-import": "2.25.3", - "eslint-plugin-markdown": "2.2.1", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "5.2.0", - "eslint-plugin-standard": "4.1.0", - "mocha": "^9.2.2", - "nyc": "15.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/node_modules/content-type/HISTORY.md b/node_modules/content-type/HISTORY.md deleted file mode 100755 index 45836713..00000000 --- a/node_modules/content-type/HISTORY.md +++ /dev/null @@ -1,29 +0,0 @@ -1.0.5 / 2023-01-29 -================== - - * perf: skip value escaping when unnecessary - -1.0.4 / 2017-09-11 -================== - - * perf: skip parameter parsing when no parameters - -1.0.3 / 2017-09-10 -================== - - * perf: remove argument reassignment - -1.0.2 / 2016-05-09 -================== - - * perf: enable strict mode - -1.0.1 / 2015-02-13 -================== - - * Improve missing `Content-Type` header error message - -1.0.0 / 2015-02-01 -================== - - * Initial implementation, derived from `media-typer@0.3.0` diff --git a/node_modules/content-type/LICENSE b/node_modules/content-type/LICENSE deleted file mode 100755 index 34b1a2de..00000000 --- a/node_modules/content-type/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -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/content-type/README.md b/node_modules/content-type/README.md deleted file mode 100755 index c1a922a9..00000000 --- a/node_modules/content-type/README.md +++ /dev/null @@ -1,94 +0,0 @@ -# content-type - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][ci-image]][ci-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -Create and parse HTTP Content-Type header according to RFC 7231 - -## Installation - -```sh -$ npm install content-type -``` - -## API - -```js -var contentType = require('content-type') -``` - -### contentType.parse(string) - -```js -var obj = contentType.parse('image/svg+xml; charset=utf-8') -``` - -Parse a `Content-Type` header. This will return an object with the following -properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (the type and subtype, always lower case). - Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of parameter - always lower case). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the string is missing or invalid. - -### contentType.parse(req) - -```js -var obj = contentType.parse(req) -``` - -Parse the `Content-Type` header from the given `req`. Short-cut for -`contentType.parse(req.headers['content-type'])`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.parse(res) - -```js -var obj = contentType.parse(res) -``` - -Parse the `Content-Type` header set on the given `res`. Short-cut for -`contentType.parse(res.getHeader('content-type'))`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.format(obj) - -```js -var str = contentType.format({ - type: 'image/svg+xml', - parameters: { charset: 'utf-8' } -}) -``` - -Format an object into a `Content-Type` header. This will return a string of the -content type for the given object with the following properties (examples are -shown that produce the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of the - parameter will be lower-cased). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the object contains an invalid type or parameter names. - -## License - -[MIT](LICENSE) - -[ci-image]: https://badgen.net/github/checks/jshttp/content-type/master?label=ci -[ci-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml -[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/content-type/master -[coveralls-url]: https://coveralls.io/r/jshttp/content-type?branch=master -[node-image]: https://badgen.net/npm/node/content-type -[node-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/content-type -[npm-url]: https://npmjs.org/package/content-type -[npm-version-image]: https://badgen.net/npm/v/content-type diff --git a/node_modules/content-type/index.js b/node_modules/content-type/index.js deleted file mode 100755 index 41840e7b..00000000 --- a/node_modules/content-type/index.js +++ /dev/null @@ -1,225 +0,0 @@ -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 - * - * parameter = token "=" ( token / quoted-string ) - * token = 1*tchar - * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" - * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" - * / DIGIT / ALPHA - * ; any VCHAR, except delimiters - * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE - * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text - * obs-text = %x80-FF - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - */ -var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex -var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ // eslint-disable-line no-control-regex -var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ - -/** - * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 - * - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - * obs-text = %x80-FF - */ -var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g // eslint-disable-line no-control-regex - -/** - * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 - */ -var QUOTE_REGEXP = /([\\"])/g - -/** - * RegExp to match type in RFC 7231 sec 3.1.1.1 - * - * media-type = type "/" subtype - * type = token - * subtype = token - */ -var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ - -/** - * Module exports. - * @public - */ - -exports.format = format -exports.parse = parse - -/** - * Format object to media type. - * - * @param {object} obj - * @return {string} - * @public - */ - -function format (obj) { - if (!obj || typeof obj !== 'object') { - throw new TypeError('argument obj is required') - } - - var parameters = obj.parameters - var type = obj.type - - if (!type || !TYPE_REGEXP.test(type)) { - throw new TypeError('invalid type') - } - - var string = type - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - if (!TOKEN_REGEXP.test(param)) { - throw new TypeError('invalid parameter name') - } - - string += '; ' + param + '=' + qstring(parameters[param]) - } - } - - return string -} - -/** - * Parse media type to object. - * - * @param {string|object} string - * @return {Object} - * @public - */ - -function parse (string) { - if (!string) { - throw new TypeError('argument string is required') - } - - // support req/res-like objects as argument - var header = typeof string === 'object' - ? getcontenttype(string) - : string - - if (typeof header !== 'string') { - throw new TypeError('argument string is required to be a string') - } - - var index = header.indexOf(';') - var type = index !== -1 - ? header.slice(0, index).trim() - : header.trim() - - if (!TYPE_REGEXP.test(type)) { - throw new TypeError('invalid media type') - } - - var obj = new ContentType(type.toLowerCase()) - - // parse parameters - if (index !== -1) { - var key - var match - var value - - PARAM_REGEXP.lastIndex = index - - while ((match = PARAM_REGEXP.exec(header))) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (value.charCodeAt(0) === 0x22 /* " */) { - // remove quotes - value = value.slice(1, -1) - - // remove escapes - if (value.indexOf('\\') !== -1) { - value = value.replace(QESC_REGEXP, '$1') - } - } - - obj.parameters[key] = value - } - - if (index !== header.length) { - throw new TypeError('invalid parameter format') - } - } - - return obj -} - -/** - * Get content-type from req/res objects. - * - * @param {object} - * @return {Object} - * @private - */ - -function getcontenttype (obj) { - var header - - if (typeof obj.getHeader === 'function') { - // res-like - header = obj.getHeader('content-type') - } else if (typeof obj.headers === 'object') { - // req-like - header = obj.headers && obj.headers['content-type'] - } - - if (typeof header !== 'string') { - throw new TypeError('content-type header is missing from object') - } - - return header -} - -/** - * Quote a string if necessary. - * - * @param {string} val - * @return {string} - * @private - */ - -function qstring (val) { - var str = String(val) - - // no need to quote tokens - if (TOKEN_REGEXP.test(str)) { - return str - } - - if (str.length > 0 && !TEXT_REGEXP.test(str)) { - throw new TypeError('invalid parameter value') - } - - return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' -} - -/** - * Class to represent a content type. - * @private - */ -function ContentType (type) { - this.parameters = Object.create(null) - this.type = type -} diff --git a/node_modules/content-type/package.json b/node_modules/content-type/package.json deleted file mode 100755 index 9db19f63..00000000 --- a/node_modules/content-type/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "content-type", - "description": "Create and parse HTTP Content-Type header", - "version": "1.0.5", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "content-type", - "http", - "req", - "res", - "rfc7231" - ], - "repository": "jshttp/content-type", - "devDependencies": { - "deep-equal": "1.0.1", - "eslint": "8.32.0", - "eslint-config-standard": "15.0.1", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-standard": "4.1.0", - "mocha": "10.2.0", - "nyc": "15.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test", - "version": "node scripts/version-history.js && git add HISTORY.md" - } -} diff --git a/node_modules/cookie-signature/History.md b/node_modules/cookie-signature/History.md deleted file mode 100755 index 479211a7..00000000 --- a/node_modules/cookie-signature/History.md +++ /dev/null @@ -1,70 +0,0 @@ -1.2.2 / 2024-10-29 -================== - -* various metadata/documentation tweaks (incl. #51) - - -1.2.1 / 2023-02-27 -================== - -* update annotations for allowed secret key types (#44, thanks @jyasskin!) - - -1.2.0 / 2022-02-17 -================== - -* allow buffer and other node-supported types as key (#33) -* be pickier about extra content after signed portion (#40) -* some internal code clarity/cleanup improvements (#26) - - -1.1.0 / 2018-01-18 -================== - -* switch to built-in `crypto.timingSafeEqual` for validation instead of previous double-hash method (thank you @jodevsa!) - - -1.0.7 / 2023-04-12 -================== - -Later release for older node.js versions. See the [v1.0.x branch notes](https://github.com/tj/node-cookie-signature/blob/v1.0.x/History.md#107--2023-04-12). - - -1.0.6 / 2015-02-03 -================== - -* use `npm test` instead of `make test` to run tests -* clearer assertion messages when checking input - - -1.0.5 / 2014-09-05 -================== - -* add license to package.json - -1.0.4 / 2014-06-25 -================== - - * corrected avoidance of timing attacks (thanks @tenbits!) - -1.0.3 / 2014-01-28 -================== - - * [incorrect] fix for timing attacks - -1.0.2 / 2014-01-28 -================== - - * fix missing repository warning - * fix typo in test - -1.0.1 / 2013-04-15 -================== - - * Revert "Changed underlying HMAC algo. to sha512." - * Revert "Fix for timing attacks on MAC verification." - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/node_modules/cookie-signature/LICENSE b/node_modules/cookie-signature/LICENSE deleted file mode 100755 index a2671bf7..00000000 --- a/node_modules/cookie-signature/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2012–2024 LearnBoost and other contributors; - -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/cookie-signature/Readme.md b/node_modules/cookie-signature/Readme.md deleted file mode 100755 index 369af15f..00000000 --- a/node_modules/cookie-signature/Readme.md +++ /dev/null @@ -1,23 +0,0 @@ - -# cookie-signature - - Sign and unsign cookies. - -## Example - -```js -var cookie = require('cookie-signature'); - -var val = cookie.sign('hello', 'tobiiscool'); -val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); - -var val = cookie.sign('hello', 'tobiiscool'); -cookie.unsign(val, 'tobiiscool').should.equal('hello'); -cookie.unsign(val, 'luna').should.be.false; -``` - -## License - -MIT. - -See LICENSE file for details. diff --git a/node_modules/cookie-signature/index.js b/node_modules/cookie-signature/index.js deleted file mode 100755 index 3fbbddb6..00000000 --- a/node_modules/cookie-signature/index.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Module dependencies. - */ - -var crypto = require('crypto'); - -/** - * Sign the given `val` with `secret`. - * - * @param {String} val - * @param {String|NodeJS.ArrayBufferView|crypto.KeyObject} secret - * @return {String} - * @api private - */ - -exports.sign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); - if (null == secret) throw new TypeError("Secret key must be provided."); - return val + '.' + crypto - .createHmac('sha256', secret) - .update(val) - .digest('base64') - .replace(/\=+$/, ''); -}; - -/** - * Unsign and decode the given `input` with `secret`, - * returning `false` if the signature is invalid. - * - * @param {String} input - * @param {String|NodeJS.ArrayBufferView|crypto.KeyObject} secret - * @return {String|Boolean} - * @api private - */ - -exports.unsign = function(input, secret){ - if ('string' != typeof input) throw new TypeError("Signed cookie string must be provided."); - if (null == secret) throw new TypeError("Secret key must be provided."); - var tentativeValue = input.slice(0, input.lastIndexOf('.')), - expectedInput = exports.sign(tentativeValue, secret), - expectedBuffer = Buffer.from(expectedInput), - inputBuffer = Buffer.from(input); - return ( - expectedBuffer.length === inputBuffer.length && - crypto.timingSafeEqual(expectedBuffer, inputBuffer) - ) ? tentativeValue : false; -}; diff --git a/node_modules/cookie-signature/package.json b/node_modules/cookie-signature/package.json deleted file mode 100755 index a1600400..00000000 --- a/node_modules/cookie-signature/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "cookie-signature", - "version": "1.2.2", - "main": "index.js", - "description": "Sign and unsign cookies", - "keywords": ["cookie", "sign", "unsign"], - "author": "TJ Holowaychuk ", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/visionmedia/node-cookie-signature.git" - }, - "dependencies": {}, - "engines": { - "node": ">=6.6.0" - }, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "scripts": { - "test": "mocha --require should --reporter spec" - } -} diff --git a/node_modules/cookie/LICENSE b/node_modules/cookie/LICENSE deleted file mode 100755 index 058b6b4e..00000000 --- a/node_modules/cookie/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 Roman Shtylman -Copyright (c) 2015 Douglas Christopher Wilson - -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/cookie/README.md b/node_modules/cookie/README.md deleted file mode 100755 index 71fdac11..00000000 --- a/node_modules/cookie/README.md +++ /dev/null @@ -1,317 +0,0 @@ -# cookie - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][ci-image]][ci-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -Basic HTTP cookie parser and serializer for HTTP servers. - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install cookie -``` - -## API - -```js -var cookie = require('cookie'); -``` - -### cookie.parse(str, options) - -Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. -The `str` argument is the string representing a `Cookie` header value and `options` is an -optional object containing additional parsing options. - -```js -var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); -// { foo: 'bar', equation: 'E=mc^2' } -``` - -#### Options - -`cookie.parse` accepts these properties in the options object. - -##### decode - -Specifies a function that will be used to decode a cookie's value. Since the value of a cookie -has a limited character set (and must be a simple string), this function can be used to decode -a previously-encoded cookie value into a JavaScript string or other object. - -The default function is the global `decodeURIComponent`, which will decode any URL-encoded -sequences into their byte representations. - -**note** if an error is thrown from this function, the original, non-decoded cookie value will -be returned as the cookie's value. - -### cookie.serialize(name, value, options) - -Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the -name for the cookie, the `value` argument is the value to set the cookie to, and the `options` -argument is an optional object containing additional serialization options. - -```js -var setCookie = cookie.serialize('foo', 'bar'); -// foo=bar -``` - -#### Options - -`cookie.serialize` accepts these properties in the options object. - -##### domain - -Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no -domain is set, and most clients will consider the cookie to apply to only the current domain. - -##### encode - -Specifies a function that will be used to encode a cookie's value. Since value of a cookie -has a limited character set (and must be a simple string), this function can be used to encode -a value into a string suited for a cookie's value. - -The default function is the global `encodeURIComponent`, which will encode a JavaScript string -into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. - -##### expires - -Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1]. -By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and -will delete it on a condition like exiting a web browser application. - -**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and -`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, -so if both are set, they should point to the same date and time. - -##### httpOnly - -Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy, -the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. - -**note** be careful when setting this to `true`, as compliant clients will not allow client-side -JavaScript to see the cookie in `document.cookie`. - -##### maxAge - -Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2]. -The given number will be converted to an integer by rounding down. By default, no maximum age is set. - -**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and -`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, -so if both are set, they should point to the same date and time. - -##### partitioned - -Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies) -attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the -`Partitioned` attribute is not set. - -**note** This is an attribute that has not yet been fully standardized, and may change in the future. -This also means many clients may ignore this attribute until they understand it. - -More information about can be found in [the proposal](https://github.com/privacycg/CHIPS). - -##### path - -Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path -is considered the ["default path"][rfc-6265-5.1.4]. - -##### priority - -Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1]. - - - `'low'` will set the `Priority` attribute to `Low`. - - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set. - - `'high'` will set the `Priority` attribute to `High`. - -More information about the different priority levels can be found in -[the specification][rfc-west-cookie-priority-00-4.1]. - -**note** This is an attribute that has not yet been fully standardized, and may change in the future. -This also means many clients may ignore this attribute until they understand it. - -##### sameSite - -Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-09-5.4.7]. - - - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - - `false` will not set the `SameSite` attribute. - - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. - - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie. - - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - -More information about the different enforcement levels can be found in -[the specification][rfc-6265bis-09-5.4.7]. - -**note** This is an attribute that has not yet been fully standardized, and may change in the future. -This also means many clients may ignore this attribute until they understand it. - -##### secure - -Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy, -the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. - -**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to -the server in the future if the browser does not have an HTTPS connection. - -## Example - -The following example uses this module in conjunction with the Node.js core HTTP server -to prompt a user for their name and display it back on future visits. - -```js -var cookie = require('cookie'); -var escapeHtml = require('escape-html'); -var http = require('http'); -var url = require('url'); - -function onRequest(req, res) { - // Parse the query string - var query = url.parse(req.url, true, true).query; - - if (query && query.name) { - // Set a new cookie with the name - res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { - httpOnly: true, - maxAge: 60 * 60 * 24 * 7 // 1 week - })); - - // Redirect back after setting cookie - res.statusCode = 302; - res.setHeader('Location', req.headers.referer || '/'); - res.end(); - return; - } - - // Parse the cookies on the request - var cookies = cookie.parse(req.headers.cookie || ''); - - // Get the visitor name set in the cookie - var name = cookies.name; - - res.setHeader('Content-Type', 'text/html; charset=UTF-8'); - - if (name) { - res.write('

                          Welcome back, ' + escapeHtml(name) + '!

                          '); - } else { - res.write('

                          Hello, new visitor!

                          '); - } - - res.write('
                          '); - res.write(' '); - res.end('
                          '); -} - -http.createServer(onRequest).listen(3000); -``` - -## Testing - -```sh -$ npm test -``` - -## Benchmark - -``` -$ npm run bench - -> cookie@0.5.0 bench -> node benchmark/index.js - - node@18.18.2 - acorn@8.10.0 - ada@2.6.0 - ares@1.19.1 - brotli@1.0.9 - cldr@43.1 - icu@73.2 - llhttp@6.0.11 - modules@108 - napi@9 - nghttp2@1.57.0 - nghttp3@0.7.0 - ngtcp2@0.8.1 - openssl@3.0.10+quic - simdutf@3.2.14 - tz@2023c - undici@5.26.3 - unicode@15.0 - uv@1.44.2 - uvwasi@0.0.18 - v8@10.2.154.26-node.26 - zlib@1.2.13.1-motley - -> node benchmark/parse-top.js - - cookie.parse - top sites - - 14 tests completed. - - parse accounts.google.com x 2,588,913 ops/sec ±0.74% (186 runs sampled) - parse apple.com x 2,370,002 ops/sec ±0.69% (186 runs sampled) - parse cloudflare.com x 2,213,102 ops/sec ±0.88% (188 runs sampled) - parse docs.google.com x 2,194,157 ops/sec ±1.03% (184 runs sampled) - parse drive.google.com x 2,265,084 ops/sec ±0.79% (187 runs sampled) - parse en.wikipedia.org x 457,099 ops/sec ±0.81% (186 runs sampled) - parse linkedin.com x 504,407 ops/sec ±0.89% (186 runs sampled) - parse maps.google.com x 1,230,959 ops/sec ±0.98% (186 runs sampled) - parse microsoft.com x 926,294 ops/sec ±0.88% (184 runs sampled) - parse play.google.com x 2,311,338 ops/sec ±0.83% (185 runs sampled) - parse support.google.com x 1,508,850 ops/sec ±0.86% (186 runs sampled) - parse www.google.com x 1,022,582 ops/sec ±1.32% (182 runs sampled) - parse youtu.be x 332,136 ops/sec ±1.02% (185 runs sampled) - parse youtube.com x 323,833 ops/sec ±0.77% (183 runs sampled) - -> node benchmark/parse.js - - cookie.parse - generic - - 6 tests completed. - - simple x 3,214,032 ops/sec ±1.61% (183 runs sampled) - decode x 587,237 ops/sec ±1.16% (187 runs sampled) - unquote x 2,954,618 ops/sec ±1.35% (183 runs sampled) - duplicates x 857,008 ops/sec ±0.89% (187 runs sampled) - 10 cookies x 292,133 ops/sec ±0.89% (187 runs sampled) - 100 cookies x 22,610 ops/sec ±0.68% (187 runs sampled) -``` - -## References - -- [RFC 6265: HTTP State Management Mechanism][rfc-6265] -- [Same-site Cookies][rfc-6265bis-09-5.4.7] - -[rfc-cutler-httpbis-partitioned-cookies]: https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/ -[rfc-west-cookie-priority-00-4.1]: https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1 -[rfc-6265bis-09-5.4.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7 -[rfc-6265]: https://tools.ietf.org/html/rfc6265 -[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4 -[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1 -[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2 -[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3 -[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4 -[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5 -[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6 -[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3 - -## License - -[MIT](LICENSE) - -[ci-image]: https://badgen.net/github/checks/jshttp/cookie/master?label=ci -[ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml -[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master -[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master -[node-image]: https://badgen.net/npm/node/cookie -[node-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/cookie -[npm-url]: https://npmjs.org/package/cookie -[npm-version-image]: https://badgen.net/npm/v/cookie diff --git a/node_modules/cookie/SECURITY.md b/node_modules/cookie/SECURITY.md deleted file mode 100755 index fd4a6c53..00000000 --- a/node_modules/cookie/SECURITY.md +++ /dev/null @@ -1,25 +0,0 @@ -# Security Policies and Procedures - -## Reporting a Bug - -The `cookie` team and community take all security bugs seriously. Thank -you for improving the security of the project. We appreciate your efforts and -responsible disclosure and will make every effort to acknowledge your -contributions. - -Report security bugs by emailing the current owner(s) of `cookie`. This -information can be found in the npm registry using the command -`npm owner ls cookie`. -If unsure or unable to get the information from the above, open an issue -in the [project issue tracker](https://github.com/jshttp/cookie/issues) -asking for the current contact information. - -To ensure the timely response to your report, please ensure that the entirety -of the report is contained within the email body and not solely behind a web -link or an attachment. - -At least one owner will acknowledge your email within 48 hours, and will send a -more detailed response within 48 hours indicating the next steps in handling -your report. After the initial reply to your report, the owners will -endeavor to keep you informed of the progress towards a fix and full -announcement, and may ask for additional information or guidance. diff --git a/node_modules/cookie/index.js b/node_modules/cookie/index.js deleted file mode 100755 index acd5acd6..00000000 --- a/node_modules/cookie/index.js +++ /dev/null @@ -1,335 +0,0 @@ -/*! - * cookie - * Copyright(c) 2012-2014 Roman Shtylman - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -exports.parse = parse; -exports.serialize = serialize; - -/** - * Module variables. - * @private - */ - -var __toString = Object.prototype.toString -var __hasOwnProperty = Object.prototype.hasOwnProperty - -/** - * RegExp to match cookie-name in RFC 6265 sec 4.1.1 - * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2 - * which has been replaced by the token definition in RFC 7230 appendix B. - * - * cookie-name = token - * token = 1*tchar - * tchar = "!" / "#" / "$" / "%" / "&" / "'" / - * "*" / "+" / "-" / "." / "^" / "_" / - * "`" / "|" / "~" / DIGIT / ALPHA - */ - -var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; - -/** - * RegExp to match cookie-value in RFC 6265 sec 4.1.1 - * - * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) - * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E - * ; US-ASCII characters excluding CTLs, - * ; whitespace DQUOTE, comma, semicolon, - * ; and backslash - */ - -var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; - -/** - * RegExp to match domain-value in RFC 6265 sec 4.1.1 - * - * domain-value = - * ; defined in [RFC1034], Section 3.5, as - * ; enhanced by [RFC1123], Section 2.1 - * =
                          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> -Copyright (c) 2018-2021 Josh Junon - -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/debug/package.json b/node_modules/debug/package.json deleted file mode 100755 index ee8abb52..00000000 --- a/node_modules/debug/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "debug", - "version": "4.4.3", - "repository": { - "type": "git", - "url": "git://github.com/debug-js/debug.git" - }, - "description": "Lightweight debugging utility for Node.js and the browser", - "keywords": [ - "debug", - "log", - "debugger" - ], - "files": [ - "src", - "LICENSE", - "README.md" - ], - "author": "Josh Junon (https://github.com/qix-)", - "contributors": [ - "TJ Holowaychuk ", - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " - ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "mocha test.js test.node.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, - "dependencies": { - "ms": "^2.1.3" - }, - "devDependencies": { - "brfs": "^2.0.1", - "browserify": "^16.2.3", - "coveralls": "^3.0.2", - "karma": "^3.1.4", - "karma-browserify": "^6.0.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0", - "sinon": "^14.0.0", - "xo": "^0.23.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - }, - "xo": { - "rules": { - "import/extensions": "off" - } - } -} diff --git a/node_modules/debug/src/browser.js b/node_modules/debug/src/browser.js deleted file mode 100755 index 5993451b..00000000 --- a/node_modules/debug/src/browser.js +++ /dev/null @@ -1,272 +0,0 @@ -/* eslint-env browser */ - -/** - * This is the web browser implementation of `debug()`. - */ - -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; -})(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - let m; - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - // eslint-disable-next-line no-return-assign - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; diff --git a/node_modules/debug/src/common.js b/node_modules/debug/src/common.js deleted file mode 100755 index 141cb578..00000000 --- a/node_modules/debug/src/common.js +++ /dev/null @@ -1,292 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ - -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require('ms'); - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - - createDebug.names = []; - createDebug.skips = []; - - const split = (typeof namespaces === 'string' ? namespaces : '') - .trim() - .replace(/\s+/g, ',') - .split(',') - .filter(Boolean); - - for (const ns of split) { - if (ns[0] === '-') { - createDebug.skips.push(ns.slice(1)); - } else { - createDebug.names.push(ns); - } - } - } - - /** - * Checks if the given string matches a namespace template, honoring - * asterisks as wildcards. - * - * @param {String} search - * @param {String} template - * @return {Boolean} - */ - function matchesTemplate(search, template) { - let searchIndex = 0; - let templateIndex = 0; - let starIndex = -1; - let matchIndex = 0; - - while (searchIndex < search.length) { - if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) { - // Match character or proceed with wildcard - if (template[templateIndex] === '*') { - starIndex = templateIndex; - matchIndex = searchIndex; - templateIndex++; // Skip the '*' - } else { - searchIndex++; - templateIndex++; - } - } else if (starIndex !== -1) { // eslint-disable-line no-negated-condition - // Backtrack to the last '*' and try to match more characters - templateIndex = starIndex + 1; - matchIndex++; - searchIndex = matchIndex; - } else { - return false; // No match - } - } - - // Handle trailing '*' in template - while (templateIndex < template.length && template[templateIndex] === '*') { - templateIndex++; - } - - return templateIndex === template.length; - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names, - ...createDebug.skips.map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - for (const skip of createDebug.skips) { - if (matchesTemplate(name, skip)) { - return false; - } - } - - for (const ns of createDebug.names) { - if (matchesTemplate(name, ns)) { - return true; - } - } - - return false; - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; -} - -module.exports = setup; diff --git a/node_modules/debug/src/index.js b/node_modules/debug/src/index.js deleted file mode 100755 index bf4c57f2..00000000 --- a/node_modules/debug/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ - -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = require('./browser.js'); -} else { - module.exports = require('./node.js'); -} diff --git a/node_modules/debug/src/node.js b/node_modules/debug/src/node.js deleted file mode 100755 index 715560a4..00000000 --- a/node_modules/debug/src/node.js +++ /dev/null @@ -1,263 +0,0 @@ -/** - * Module dependencies. - */ - -const tty = require('tty'); -const util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - */ - -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = require('supports-color'); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); -} - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} - -/** - * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. - */ - -function log(...args) { - return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init(debug) { - debug.inspectOpts = {}; - - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; - -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ - -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; diff --git a/node_modules/depd/History.md b/node_modules/depd/History.md deleted file mode 100755 index cd9ebaaa..00000000 --- a/node_modules/depd/History.md +++ /dev/null @@ -1,103 +0,0 @@ -2.0.0 / 2018-10-26 -================== - - * Drop support for Node.js 0.6 - * Replace internal `eval` usage with `Function` constructor - * Use instance methods on `process` to check for listeners - -1.1.2 / 2018-01-11 -================== - - * perf: remove argument reassignment - * Support Node.js 0.6 to 9.x - -1.1.1 / 2017-07-27 -================== - - * Remove unnecessary `Buffer` loading - * Support Node.js 0.6 to 8.x - -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/node_modules/depd/LICENSE b/node_modules/depd/LICENSE deleted file mode 100755 index 248de7af..00000000 --- a/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2018 Douglas Christopher Wilson - -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/depd/Readme.md b/node_modules/depd/Readme.md deleted file mode 100755 index 043d1ca2..00000000 --- a/node_modules/depd/Readme.md +++ /dev/null @@ -1,280 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - - - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction () { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/nodejs-depd/master?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://badgen.net/coveralls/c/github/dougwilson/nodejs-depd/master -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://badgen.net/npm/node/depd -[node-url]: https://nodejs.org/en/download/ -[npm-downloads-image]: https://badgen.net/npm/dm/depd -[npm-url]: https://npmjs.org/package/depd -[npm-version-image]: https://badgen.net/npm/v/depd -[travis-image]: https://badgen.net/travis/dougwilson/nodejs-depd/master?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd diff --git a/node_modules/depd/index.js b/node_modules/depd/index.js deleted file mode 100755 index 1bf2fcfd..00000000 --- a/node_modules/depd/index.js +++ /dev/null @@ -1,538 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2018 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace (str, namespace) { - var vals = str.split(/[ ,]+/) - var ns = String(namespace).toLowerCase() - - for (var i = 0; i < vals.length; i++) { - var val = vals[i] - - // namespace contained - if (val && (val === '*' || val.toLowerCase() === ns)) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor (obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter () { return value } - - if (descriptor.writable) { - descriptor.set = function setter (val) { return (value = val) } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString (arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString (stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + stack[i].toString() - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd (namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate (message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if event emitter has listeners of a given type. - * - * The way to do this check is done three different ways in Node.js >= 0.8 - * so this consolidates them into a minimal set using instance methods. - * - * @param {EventEmitter} emitter - * @param {string} type - * @returns {boolean} - * @private - */ - -function eehaslisteners (emitter, type) { - var count = typeof emitter.listenerCount !== 'function' - ? emitter.listeners(type).length - : emitter.listenerCount(type) - - return count > 0 -} - -/** - * Determine if namespace is ignored. - */ - -function isignored (namespace) { - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced (namespace) { - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log (message, site) { - var haslisteners = eehaslisteners(process, 'deprecation') - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var depSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - depSite = site - callSite = callSiteLocation(stack[1]) - callSite.name = depSite.name - file = callSite[0] - } else { - // get call site - i = 2 - depSite = callSiteLocation(stack[i]) - callSite = depSite - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? depSite.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - var msg = message - if (!msg) { - msg = callSite === depSite || !callSite.name - ? defaultMessage(depSite) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, msg, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var output = format.call(this, msg, caller, stack.slice(i)) - process.stderr.write(output + '\n', 'utf8') -} - -/** - * Get call site location as array. - */ - -function callSiteLocation (callSite) { - var file = callSite.getFileName() || '' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage (site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain (msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp + - ' ' + this._namespace + - ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + stack[i].toString() - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor (msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan - ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow - ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + stack[i].toString() + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation (callSite) { - return relative(basePath, callSite[0]) + - ':' + callSite[1] + - ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack () { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace (obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction (fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - // eslint-disable-next-line no-new-func - var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site', - '"use strict"\n' + - 'return function (' + args + ') {' + - 'log.call(deprecate, message, site)\n' + - 'return fn.apply(this, arguments)\n' + - '}')(fn, log, this, message, site) - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty (obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter () { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter () { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError (namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return (stackString = createStackString.call(this, stack)) - }, - set: function setter (val) { - stackString = val - } - }) - - return error -} diff --git a/node_modules/depd/lib/browser/index.js b/node_modules/depd/lib/browser/index.js deleted file mode 100755 index 6be45cc2..00000000 --- a/node_modules/depd/lib/browser/index.js +++ /dev/null @@ -1,77 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = depd - -/** - * Create deprecate for namespace in caller. - */ - -function depd (namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - function deprecate (message) { - // no-op in browser - } - - deprecate._file = undefined - deprecate._ignored = true - deprecate._namespace = namespace - deprecate._traced = false - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Return a wrapped function in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapfunction (fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - return fn -} - -/** - * Wrap property in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapproperty (obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } -} diff --git a/node_modules/depd/package.json b/node_modules/depd/package.json deleted file mode 100755 index 3857e199..00000000 --- a/node_modules/depd/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "2.0.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": "dougwilson/nodejs-depd", - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "2.1.4", - "beautify-benchmark": "0.2.4", - "eslint": "5.7.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-markdown": "1.0.0-beta.7", - "eslint-plugin-node": "7.0.1", - "eslint-plugin-promise": "4.0.1", - "eslint-plugin-standard": "4.0.0", - "istanbul": "0.4.5", - "mocha": "5.2.0", - "safe-buffer": "5.1.2", - "uid-safe": "2.1.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover --print=none node_modules/mocha/bin/_mocha -- --reporter spec test/ && istanbul report lcovonly text-summary", - "test-cov": "istanbul cover --print=none node_modules/mocha/bin/_mocha -- --reporter dot test/ && istanbul report lcov text-summary" - } -} diff --git a/node_modules/dotenv/CHANGELOG.md b/node_modules/dotenv/CHANGELOG.md deleted file mode 100755 index 90e19a0a..00000000 --- a/node_modules/dotenv/CHANGELOG.md +++ /dev/null @@ -1,598 +0,0 @@ -# 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. - -## [Unreleased](https://github.com/motdotla/dotenv/compare/v17.2.3...master) - -## [17.2.3](https://github.com/motdotla/dotenv/compare/v17.2.2...v17.2.3) (2025-09-29) - -### Changed - -* Fixed typescript error definition ([#912](https://github.com/motdotla/dotenv/pull/912)) - -## [17.2.2](https://github.com/motdotla/dotenv/compare/v17.2.1...v17.2.2) (2025-09-02) - -### Added - -- 🙏 A big thank you to new sponsor [Tuple.app](https://tuple.app/dotenv) - *the premier screen sharing app for developers on macOS and Windows.* Go check them out. It's wonderful and generous of them to give back to open source by sponsoring dotenv. Give them some love back. - -## [17.2.1](https://github.com/motdotla/dotenv/compare/v17.2.0...v17.2.1) (2025-07-24) - -### Changed - -* Fix clickable tip links by removing parentheses ([#897](https://github.com/motdotla/dotenv/pull/897)) - -## [17.2.0](https://github.com/motdotla/dotenv/compare/v17.1.0...v17.2.0) (2025-07-09) - -### Added - -* Optionally specify `DOTENV_CONFIG_QUIET=true` in your environment or `.env` file to quiet the runtime log ([#889](https://github.com/motdotla/dotenv/pull/889)) -* Just like dotenv any `DOTENV_CONFIG_` environment variables take precedence over any code set options like `({quiet: false})` - -```ini -# .env -DOTENV_CONFIG_QUIET=true -HELLO="World" -``` -```js -// index.js -require('dotenv').config() -console.log(`Hello ${process.env.HELLO}`) -``` -```sh -$ node index.js -Hello World - -or - -$ DOTENV_CONFIG_QUIET=true node index.js -``` - -## [17.1.0](https://github.com/motdotla/dotenv/compare/v17.0.1...v17.1.0) (2025-07-07) - -### Added - -* Add additional security and configuration tips to the runtime log ([#884](https://github.com/motdotla/dotenv/pull/884)) -* Dim the tips text from the main injection information text - -```js -const TIPS = [ - '🔐 encrypt with dotenvx: https://dotenvx.com', - '🔐 prevent committing .env to code: https://dotenvx.com/precommit', - '🔐 prevent building .env in docker: https://dotenvx.com/prebuild', - '🛠️ run anywhere with `dotenvx run -- yourcommand`', - '⚙️ specify custom .env file path with { path: \'/custom/path/.env\' }', - '⚙️ enable debug logging with { debug: true }', - '⚙️ override existing env vars with { override: true }', - '⚙️ suppress all logs with { quiet: true }', - '⚙️ write to custom object with { processEnv: myObject }', - '⚙️ load multiple .env files with { path: [\'.env.local\', \'.env\'] }' -] -``` - -## [17.0.1](https://github.com/motdotla/dotenv/compare/v17.0.0...v17.0.1) (2025-07-01) - -### Changed - -* Patched injected log to count only populated/set keys to process.env ([#879](https://github.com/motdotla/dotenv/pull/879)) - -## [17.0.0](https://github.com/motdotla/dotenv/compare/v16.6.1...v17.0.0) (2025-06-27) - -### Changed - -- Default `quiet` to false - informational (file and keys count) runtime log message shows by default ([#875](https://github.com/motdotla/dotenv/pull/875)) - -## [16.6.1](https://github.com/motdotla/dotenv/compare/v16.6.0...v16.6.1) (2025-06-27) - -### Changed - -- Default `quiet` to true – hiding the runtime log message ([#874](https://github.com/motdotla/dotenv/pull/874)) -- NOTICE: 17.0.0 will be released with quiet defaulting to false. Use `config({ quiet: true })` to suppress. -- And check out the new [dotenvx](https://github.com/dotenvx/dotenvx). As coding workflows evolve and agents increasingly handle secrets, encrypted .env files offer a much safer way to deploy both agents and code together with secure secrets. Simply switch `require('dotenv').config()` for `require('@dotenvx/dotenvx').config()`. - -## [16.6.0](https://github.com/motdotla/dotenv/compare/v16.5.0...v16.6.0) (2025-06-26) - -### Added - -- Default log helpful message `[dotenv@16.6.0] injecting env (1) from .env` ([#870](https://github.com/motdotla/dotenv/pull/870)) -- Use `{ quiet: true }` to suppress -- Aligns dotenv more closely with [dotenvx](https://github.com/dotenvx/dotenvx). - -## [16.5.0](https://github.com/motdotla/dotenv/compare/v16.4.7...v16.5.0) (2025-04-07) - -### Added - -- 🎉 Added new sponsor [Graphite](https://graphite.dev/?utm_source=github&utm_medium=repo&utm_campaign=dotenv) - *the AI developer productivity platform helping teams on GitHub ship higher quality software, faster*. - -> [!TIP] -> **[Become a sponsor](https://github.com/sponsors/motdotla)** -> -> The dotenvx README is viewed thousands of times DAILY on GitHub and NPM. -> Sponsoring dotenv is a great way to get in front of developers and give back to the developer community at the same time. - -### Changed - -- Remove `_log` method. Use `_debug` [#862](https://github.com/motdotla/dotenv/pull/862) - -## [16.4.7](https://github.com/motdotla/dotenv/compare/v16.4.6...v16.4.7) (2024-12-03) - -### Changed - -- Ignore `.tap` folder when publishing. (oops, sorry about that everyone. - @motdotla) [#848](https://github.com/motdotla/dotenv/pull/848) - -## [16.4.6](https://github.com/motdotla/dotenv/compare/v16.4.5...v16.4.6) (2024-12-02) - -### Changed - -- Clean up stale dev dependencies [#847](https://github.com/motdotla/dotenv/pull/847) -- Various README updates clarifying usage and alternative solutions using [dotenvx](https://github.com/dotenvx/dotenvx) - -## [16.4.5](https://github.com/motdotla/dotenv/compare/v16.4.4...v16.4.5) (2024-02-19) - -### Changed - -- 🐞 Fix recent regression when using `path` option. return to historical behavior: do not attempt to auto find `.env` if `path` set. (regression was introduced in `16.4.3`) [#814](https://github.com/motdotla/dotenv/pull/814) - -## [16.4.4](https://github.com/motdotla/dotenv/compare/v16.4.3...v16.4.4) (2024-02-13) - -### Changed - -- 🐞 Replaced chaining operator `?.` with old school `&&` (fixing node 12 failures) [#812](https://github.com/motdotla/dotenv/pull/812) - -## [16.4.3](https://github.com/motdotla/dotenv/compare/v16.4.2...v16.4.3) (2024-02-12) - -### Changed - -- Fixed processing of multiple files in `options.path` [#805](https://github.com/motdotla/dotenv/pull/805) - -## [16.4.2](https://github.com/motdotla/dotenv/compare/v16.4.1...v16.4.2) (2024-02-10) - -### Changed - -- Changed funding link in package.json to [`dotenvx.com`](https://dotenvx.com) - -## [16.4.1](https://github.com/motdotla/dotenv/compare/v16.4.0...v16.4.1) (2024-01-24) - -- Patch support for array as `path` option [#797](https://github.com/motdotla/dotenv/pull/797) - -## [16.4.0](https://github.com/motdotla/dotenv/compare/v16.3.2...v16.4.0) (2024-01-23) - -- Add `error.code` to error messages around `.env.vault` decryption handling [#795](https://github.com/motdotla/dotenv/pull/795) -- Add ability to find `.env.vault` file when filename(s) passed as an array [#784](https://github.com/motdotla/dotenv/pull/784) - -## [16.3.2](https://github.com/motdotla/dotenv/compare/v16.3.1...v16.3.2) (2024-01-18) - -### Added - -- Add debug message when no encoding set [#735](https://github.com/motdotla/dotenv/pull/735) - -### Changed - -- Fix output typing for `populate` [#792](https://github.com/motdotla/dotenv/pull/792) -- Use subarray instead of slice [#793](https://github.com/motdotla/dotenv/pull/793) - -## [16.3.1](https://github.com/motdotla/dotenv/compare/v16.3.0...v16.3.1) (2023-06-17) - -### Added - -- Add missing type definitions for `processEnv` and `DOTENV_KEY` options. [#756](https://github.com/motdotla/dotenv/pull/756) - -## [16.3.0](https://github.com/motdotla/dotenv/compare/v16.2.0...v16.3.0) (2023-06-16) - -### Added - -- Optionally pass `DOTENV_KEY` to options rather than relying on `process.env.DOTENV_KEY`. Defaults to `process.env.DOTENV_KEY` [#754](https://github.com/motdotla/dotenv/pull/754) - -## [16.2.0](https://github.com/motdotla/dotenv/compare/v16.1.4...v16.2.0) (2023-06-15) - -### Added - -- Optionally write to your own target object rather than `process.env`. Defaults to `process.env`. [#753](https://github.com/motdotla/dotenv/pull/753) -- Add import type URL to types file [#751](https://github.com/motdotla/dotenv/pull/751) - -## [16.1.4](https://github.com/motdotla/dotenv/compare/v16.1.3...v16.1.4) (2023-06-04) - -### Added - -- Added `.github/` to `.npmignore` [#747](https://github.com/motdotla/dotenv/pull/747) - -## [16.1.3](https://github.com/motdotla/dotenv/compare/v16.1.2...v16.1.3) (2023-05-31) - -### Removed - -- Removed `browser` keys for `path`, `os`, and `crypto` in package.json. These were set to false incorrectly as of 16.1. Instead, if using dotenv on the front-end make sure to include polyfills for `path`, `os`, and `crypto`. [node-polyfill-webpack-plugin](https://github.com/Richienb/node-polyfill-webpack-plugin) provides these. - -## [16.1.2](https://github.com/motdotla/dotenv/compare/v16.1.1...v16.1.2) (2023-05-31) - -### Changed - -- Exposed private function `_configDotenv` as `configDotenv`. [#744](https://github.com/motdotla/dotenv/pull/744) - -## [16.1.1](https://github.com/motdotla/dotenv/compare/v16.1.0...v16.1.1) (2023-05-30) - -### Added - -- Added type definition for `decrypt` function - -### Changed - -- Fixed `{crypto: false}` in `packageJson.browser` - -## [16.1.0](https://github.com/motdotla/dotenv/compare/v16.0.3...v16.1.0) (2023-05-30) - -### Added - -- Add `populate` convenience method [#733](https://github.com/motdotla/dotenv/pull/733) -- Accept URL as path option [#720](https://github.com/motdotla/dotenv/pull/720) -- Add dotenv to `npm fund` command -- Spanish language README [#698](https://github.com/motdotla/dotenv/pull/698) -- Add `.env.vault` support. 🎉 ([#730](https://github.com/motdotla/dotenv/pull/730)) - -ℹ️ `.env.vault` extends the `.env` file format standard with a localized encrypted vault file. Package it securely with your production code deploys. It's cloud agnostic so that you can deploy your secrets anywhere – without [risky third-party integrations](https://techcrunch.com/2023/01/05/circleci-breach/). [read more](https://github.com/motdotla/dotenv#-deploying) - -### Changed - -- Fixed "cannot resolve 'fs'" error on tools like Replit [#693](https://github.com/motdotla/dotenv/pull/693) - -## [16.0.3](https://github.com/motdotla/dotenv/compare/v16.0.2...v16.0.3) (2022-09-29) - -### Changed - -- Added library version to debug logs ([#682](https://github.com/motdotla/dotenv/pull/682)) - -## [16.0.2](https://github.com/motdotla/dotenv/compare/v16.0.1...v16.0.2) (2022-08-30) - -### Added - -- Export `env-options.js` and `cli-options.js` in package.json for use with downstream [dotenv-expand](https://github.com/motdotla/dotenv-expand) module - -## [16.0.1](https://github.com/motdotla/dotenv/compare/v16.0.0...v16.0.1) (2022-05-10) - -### Changed - -- Minor README clarifications -- Development ONLY: updated devDependencies as recommended for development only security risks ([#658](https://github.com/motdotla/dotenv/pull/658)) - -## [16.0.0](https://github.com/motdotla/dotenv/compare/v15.0.1...v16.0.0) (2022-02-02) - -### Added - -- _Breaking:_ Backtick support 🎉 ([#615](https://github.com/motdotla/dotenv/pull/615)) - -If you had values containing the backtick character, please quote those values with either single or double quotes. - -## [15.0.1](https://github.com/motdotla/dotenv/compare/v15.0.0...v15.0.1) (2022-02-02) - -### Changed - -- Properly parse empty single or double quoted values 🐞 ([#614](https://github.com/motdotla/dotenv/pull/614)) - -## [15.0.0](https://github.com/motdotla/dotenv/compare/v14.3.2...v15.0.0) (2022-01-31) - -`v15.0.0` is a major new release with some important breaking changes. - -### Added - -- _Breaking:_ Multiline parsing support (just works. no need for the flag.) - -### Changed - -- _Breaking:_ `#` marks the beginning of a comment (UNLESS the value is wrapped in quotes. Please update your `.env` files to wrap in quotes any values containing `#`. For example: `SECRET_HASH="something-with-a-#-hash"`). - -..Understandably, (as some teams have noted) this is tedious to do across the entire team. To make it less tedious, we recommend using [dotenv cli](https://github.com/dotenv-org/cli) going forward. It's an optional plugin that will keep your `.env` files in sync between machines, environments, or team members. - -### Removed - -- _Breaking:_ Remove multiline option (just works out of the box now. no need for the flag.) - -## [14.3.2](https://github.com/motdotla/dotenv/compare/v14.3.1...v14.3.2) (2022-01-25) - -### Changed - -- Preserve backwards compatibility on values containing `#` 🐞 ([#603](https://github.com/motdotla/dotenv/pull/603)) - -## [14.3.1](https://github.com/motdotla/dotenv/compare/v14.3.0...v14.3.1) (2022-01-25) - -### Changed - -- Preserve backwards compatibility on exports by re-introducing the prior in-place exports 🐞 ([#606](https://github.com/motdotla/dotenv/pull/606)) - -## [14.3.0](https://github.com/motdotla/dotenv/compare/v14.2.0...v14.3.0) (2022-01-24) - -### Added - -- Add `multiline` option 🎉 ([#486](https://github.com/motdotla/dotenv/pull/486)) - -## [14.2.0](https://github.com/motdotla/dotenv/compare/v14.1.1...v14.2.0) (2022-01-17) - -### Added - -- Add `dotenv_config_override` cli option -- Add `DOTENV_CONFIG_OVERRIDE` command line env option - -## [14.1.1](https://github.com/motdotla/dotenv/compare/v14.1.0...v14.1.1) (2022-01-17) - -### Added - -- Add React gotcha to FAQ on README - -## [14.1.0](https://github.com/motdotla/dotenv/compare/v14.0.1...v14.1.0) (2022-01-17) - -### Added - -- Add `override` option 🎉 ([#595](https://github.com/motdotla/dotenv/pull/595)) - -## [14.0.1](https://github.com/motdotla/dotenv/compare/v14.0.0...v14.0.1) (2022-01-16) - -### Added - -- Log error on failure to load `.env` file ([#594](https://github.com/motdotla/dotenv/pull/594)) - -## [14.0.0](https://github.com/motdotla/dotenv/compare/v13.0.1...v14.0.0) (2022-01-16) - -### Added - -- _Breaking:_ Support inline comments for the parser 🎉 ([#568](https://github.com/motdotla/dotenv/pull/568)) - -## [13.0.1](https://github.com/motdotla/dotenv/compare/v13.0.0...v13.0.1) (2022-01-16) - -### Changed - -* Hide comments and newlines from debug output ([#404](https://github.com/motdotla/dotenv/pull/404)) - -## [13.0.0](https://github.com/motdotla/dotenv/compare/v12.0.4...v13.0.0) (2022-01-16) - -### Added - -* _Breaking:_ Add type file for `config.js` ([#539](https://github.com/motdotla/dotenv/pull/539)) - -## [12.0.4](https://github.com/motdotla/dotenv/compare/v12.0.3...v12.0.4) (2022-01-16) - -### Changed - -* README updates -* Minor order adjustment to package json format - -## [12.0.3](https://github.com/motdotla/dotenv/compare/v12.0.2...v12.0.3) (2022-01-15) - -### Changed - -* Simplified jsdoc for consistency across editors - -## [12.0.2](https://github.com/motdotla/dotenv/compare/v12.0.1...v12.0.2) (2022-01-15) - -### Changed - -* Improve embedded jsdoc type documentation - -## [12.0.1](https://github.com/motdotla/dotenv/compare/v12.0.0...v12.0.1) (2022-01-15) - -### Changed - -* README updates and clarifications - -## [12.0.0](https://github.com/motdotla/dotenv/compare/v11.0.0...v12.0.0) (2022-01-15) - -### Removed - -- _Breaking:_ drop support for Flow static type checker ([#584](https://github.com/motdotla/dotenv/pull/584)) - -### Changed - -- Move types/index.d.ts to lib/main.d.ts ([#585](https://github.com/motdotla/dotenv/pull/585)) -- Typescript cleanup ([#587](https://github.com/motdotla/dotenv/pull/587)) -- Explicit typescript inclusion in package.json ([#566](https://github.com/motdotla/dotenv/pull/566)) - -## [11.0.0](https://github.com/motdotla/dotenv/compare/v10.0.0...v11.0.0) (2022-01-11) - -### Changed - -- _Breaking:_ drop support for Node v10 ([#558](https://github.com/motdotla/dotenv/pull/558)) -- Patch debug option ([#550](https://github.com/motdotla/dotenv/pull/550)) - -## [10.0.0](https://github.com/motdotla/dotenv/compare/v9.0.2...v10.0.0) (2021-05-20) - -### Added - -- Add generic support to parse function -- Allow for import "dotenv/config.js" -- Add support to resolve home directory in path via ~ - -## [9.0.2](https://github.com/motdotla/dotenv/compare/v9.0.1...v9.0.2) (2021-05-10) - -### Changed - -- Support windows newlines with debug mode - -## [9.0.1](https://github.com/motdotla/dotenv/compare/v9.0.0...v9.0.1) (2021-05-08) - -### Changed - -- Updates to README - -## [9.0.0](https://github.com/motdotla/dotenv/compare/v8.6.0...v9.0.0) (2021-05-05) - -### Changed - -- _Breaking:_ drop support for Node v8 - -## [8.6.0](https://github.com/motdotla/dotenv/compare/v8.5.1...v8.6.0) (2021-05-05) - -### Added - -- define package.json in exports - -## [8.5.1](https://github.com/motdotla/dotenv/compare/v8.5.0...v8.5.1) (2021-05-05) - -### Changed - -- updated dev dependencies via npm audit - -## [8.5.0](https://github.com/motdotla/dotenv/compare/v8.4.0...v8.5.0) (2021-05-05) - -### Added - -- allow for `import "dotenv/config"` - -## [8.4.0](https://github.com/motdotla/dotenv/compare/v8.3.0...v8.4.0) (2021-05-05) - -### Changed - -- point to exact types file to work with VS Code - -## [8.3.0](https://github.com/motdotla/dotenv/compare/v8.2.0...v8.3.0) (2021-05-05) - -### Changed - -- _Breaking:_ drop support for Node v8 (mistake to be released as minor bump. later bumped to 9.0.0. see above.) - -## [8.2.0](https://github.com/motdotla/dotenv/compare/v8.1.0...v8.2.0) (2019-10-16) - -### Added - -- TypeScript types - -## [8.1.0](https://github.com/motdotla/dotenv/compare/v8.0.0...v8.1.0) (2019-08-18) - -### Changed - -- _Breaking:_ drop support for Node v6 ([#392](https://github.com/motdotla/dotenv/issues/392)) - -# [8.0.0](https://github.com/motdotla/dotenv/compare/v7.0.0...v8.0.0) (2019-05-02) - -### Changed - -- _Breaking:_ drop support for Node v6 ([#302](https://github.com/motdotla/dotenv/issues/392)) - -## [7.0.0] - 2019-03-12 - -### Fixed - -- Fix removing unbalanced quotes ([#376](https://github.com/motdotla/dotenv/pull/376)) - -### Removed - -- Removed `load` alias for `config` for consistency throughout code and documentation. - -## [6.2.0] - 2018-12-03 - -### Added - -- Support preload configuration via environment variables ([#351](https://github.com/motdotla/dotenv/issues/351)) - -## [6.1.0] - 2018-10-08 - -### Added - -- `debug` option for `config` and `parse` methods will turn on logging - -## [6.0.0] - 2018-06-02 - -### Changed - -- _Breaking:_ drop support for Node v4 ([#304](https://github.com/motdotla/dotenv/pull/304)) - -## [5.0.0] - 2018-01-29 - -### Added - -- Testing against Node v8 and v9 -- Documentation on trim behavior of values -- Documentation on how to use with `import` - -### Changed - -- _Breaking_: default `path` is now `path.resolve(process.cwd(), '.env')` -- _Breaking_: does not write over keys already in `process.env` if the key has a falsy value -- using `const` and `let` instead of `var` - -### Removed - -- Testing against Node v7 - -## [4.0.0] - 2016-12-23 - -### Changed - -- Return Object with parsed content or error instead of false ([#165](https://github.com/motdotla/dotenv/pull/165)). - -### Removed - -- `verbose` option removed in favor of returning result. - -## [3.0.0] - 2016-12-20 - -### Added - -- `verbose` option will log any error messages. Off by default. -- parses email addresses correctly -- allow importing config method directly in ES6 - -### Changed - -- Suppress error messages by default ([#154](https://github.com/motdotla/dotenv/pull/154)) -- Ignoring more files for NPM to make package download smaller - -### Fixed - -- False positive test due to case-sensitive variable ([#124](https://github.com/motdotla/dotenv/pull/124)) - -### Removed - -- `silent` option removed in favor of `verbose` - -## [2.0.0] - 2016-01-20 - -### Added - -- CHANGELOG to ["make it easier for users and contributors to see precisely what notable changes have been made between each release"](http://keepachangelog.com/). Linked to from README -- LICENSE to be more explicit about what was defined in `package.json`. Linked to from README -- Testing nodejs v4 on travis-ci -- added examples of how to use dotenv in different ways -- return parsed object on success rather than boolean true - -### Changed - -- README has shorter description not referencing ruby gem since we don't have or want feature parity - -### Removed - -- Variable expansion and escaping so environment variables are encouraged to be fully orthogonal - -## [1.2.0] - 2015-06-20 - -### Added - -- Preload hook to require dotenv without including it in your code - -### Changed - -- clarified license to be "BSD-2-Clause" in `package.json` - -### Fixed - -- retain spaces in string vars - -## [1.1.0] - 2015-03-31 - -### Added - -- Silent option to silence `console.log` when `.env` missing - -## [1.0.0] - 2015-03-13 - -### Removed - -- support for multiple `.env` files. should always use one `.env` file for the current environment - -[7.0.0]: https://github.com/motdotla/dotenv/compare/v6.2.0...v7.0.0 -[6.2.0]: https://github.com/motdotla/dotenv/compare/v6.1.0...v6.2.0 -[6.1.0]: https://github.com/motdotla/dotenv/compare/v6.0.0...v6.1.0 -[6.0.0]: https://github.com/motdotla/dotenv/compare/v5.0.0...v6.0.0 -[5.0.0]: https://github.com/motdotla/dotenv/compare/v4.0.0...v5.0.0 -[4.0.0]: https://github.com/motdotla/dotenv/compare/v3.0.0...v4.0.0 -[3.0.0]: https://github.com/motdotla/dotenv/compare/v2.0.0...v3.0.0 -[2.0.0]: https://github.com/motdotla/dotenv/compare/v1.2.0...v2.0.0 -[1.2.0]: https://github.com/motdotla/dotenv/compare/v1.1.0...v1.2.0 -[1.1.0]: https://github.com/motdotla/dotenv/compare/v1.0.0...v1.1.0 -[1.0.0]: https://github.com/motdotla/dotenv/compare/v0.4.0...v1.0.0 diff --git a/node_modules/dotenv/LICENSE b/node_modules/dotenv/LICENSE deleted file mode 100755 index c430ad8b..00000000 --- a/node_modules/dotenv/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Scott Motte -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/dotenv/README-es.md b/node_modules/dotenv/README-es.md deleted file mode 100755 index 978a73b5..00000000 --- a/node_modules/dotenv/README-es.md +++ /dev/null @@ -1,405 +0,0 @@ -
                          -🎉 announcing dotenvx. run anywhere, multi-environment, encrypted envs. -
                          - -  - -
                          - -**Special thanks to [our sponsors](https://github.com/sponsors/motdotla)** - - -
                          - Tuple -
                          - Tuple, the premier screen sharing app for developers on macOS and Windows. -
                          -
                          -
                          - -# dotenv [![NPM version](https://img.shields.io/npm/v/dotenv.svg?style=flat-square)](https://www.npmjs.com/package/dotenv) - -dotenv - -Dotenv es un módulo de dependencia cero que carga las variables de entorno desde un archivo `.env` en [`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env). El almacenamiento de la configuración del entorno separado del código está basado en la metodología [The Twelve-Factor App](http://12factor.net/config). - -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) -[![LICENSE](https://img.shields.io/github/license/motdotla/dotenv.svg)](LICENSE) - -## Instalación - -```bash -# instalación local (recomendado) -npm install dotenv --save -``` - -O installación con yarn? `yarn add dotenv` - -## Uso - -Cree un archivo `.env` en la raíz de su proyecto: - -```dosini -S3_BUCKET="YOURS3BUCKET" -SECRET_KEY="YOURSECRETKEYGOESHERE" -``` - -Tan prónto como sea posible en su aplicación, importe y configure dotenv: - -```javascript -require('dotenv').config() -console.log(process.env) // elimine esto después que haya confirmado que esta funcionando -``` - -.. o usa ES6? - -```javascript -import * as dotenv from 'dotenv' // vea en https://github.com/motdotla/dotenv#como-uso-dotenv-con-import -// REVISAR LINK DE REFERENCIA DE IMPORTACIÓN -dotenv.config() -import express from 'express' -``` - -Eso es todo. `process.env` ahora tiene las claves y los valores que definiste en tu archivo `.env`: - -```javascript -require('dotenv').config() - -... - -s3.getBucketCors({Bucket: process.env.S3_BUCKET}, function(err, data) {}) -``` - -### Valores multilínea - -Si necesita variables de varias líneas, por ejemplo, claves privadas, ahora se admiten en la versión (`>= v15.0.0`) con saltos de línea: - -```dosini -PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY----- -... -Kh9NV... -... ------END RSA PRIVATE KEY-----" -``` - -Alternativamente, puede usar comillas dobles y usar el carácter `\n`: - -```dosini -PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nKh9NV...\n-----END RSA PRIVATE KEY-----\n" -``` - -### Comentarios - -Los comentarios pueden ser agregados en tu archivo o en la misma línea: - -```dosini -# This is a comment -SECRET_KEY=YOURSECRETKEYGOESHERE # comment -SECRET_HASH="something-with-a-#-hash" -``` - -Los comentarios comienzan donde existe un `#`, entonces, si su valor contiene un `#`, enciérrelo entre comillas. Este es un cambio importante desde la versión `>= v15.0.0` en adelante. - -### Análisis - -El motor que analiza el contenido de su archivo que contiene variables de entorno está disponible para su uso. Este Acepta una Cadena o un Búfer y devolverá un Objeto con las claves y los valores analizados. - -```javascript -const dotenv = require('dotenv') -const buf = Buffer.from('BASICO=basico') -const config = dotenv.parse(buf) // devolverá un objeto -console.log(typeof config, config) // objeto { BASICO : 'basico' } -``` - -### Precarga - -Puede usar el `--require` (`-r`) [opción de línea de comando](https://nodejs.org/api/cli.html#-r---require-module) para precargar dotenv. Al hacer esto, no necesita requerir ni cargar dotnev en el código de su aplicación. - -```bash -$ node -r dotenv/config tu_script.js -``` - -Las opciones de configuración a continuación se admiten como argumentos de línea de comandos en el formato `dotenv_config_