[INFO] fetching crate oak-nginx 0.0.11... [INFO] testing oak-nginx-0.0.11 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate oak-nginx 0.0.11 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate oak-nginx 0.0.11 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate oak-nginx 0.0.11 [INFO] tweaked toml for crates.io crate oak-nginx 0.0.11 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oak-nginx 0.0.11 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oak-nginx 0.0.11 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded kqueue-sys v1.0.4 [INFO] [stderr] Downloaded kqueue v1.1.1 [INFO] [stderr] Downloaded fsevent-sys v4.1.0 [INFO] [stderr] Downloaded inotify-sys v0.1.5 [INFO] [stderr] Downloaded inotify v0.11.0 [INFO] [stderr] Downloaded oak-symbols v0.0.11 [INFO] [stderr] Downloaded oak-testing v0.0.11 [INFO] [stderr] Downloaded notify-types v2.1.0 [INFO] [stderr] Downloaded oak-highlight v0.0.11 [INFO] [stderr] Downloaded dashmap v6.1.0 [INFO] [stderr] Downloaded oak-resolver v0.0.11 [INFO] [stderr] Downloaded oak-core v0.0.11 [INFO] [stderr] Downloaded oak-lsp v0.0.11 [INFO] [stderr] Downloaded oak-mcp v0.0.11 [INFO] [stderr] Downloaded oak-macros v0.0.11 [INFO] [stderr] Downloaded tracing-subscriber v0.3.22 [INFO] [stderr] Downloaded oak-pretty-print v0.0.11 [INFO] [stderr] Downloaded oak-vfs v0.0.11 [INFO] [stderr] Downloaded oak-folding v0.0.11 [INFO] [stderr] Downloaded oak-navigation v0.0.11 [INFO] [stderr] Downloaded oak-semantic-search v0.0.11 [INFO] [stderr] Downloaded notify v8.2.0 [INFO] [stderr] Downloaded oak-hover v0.0.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 29f4dd7378d14d50cd74cf3a43ac73d5fc932d881d1a12b703777ce226c3bf70 [INFO] running `Command { std: "docker" "start" "-a" "29f4dd7378d14d50cd74cf3a43ac73d5fc932d881d1a12b703777ce226c3bf70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "29f4dd7378d14d50cd74cf3a43ac73d5fc932d881d1a12b703777ce226c3bf70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "29f4dd7378d14d50cd74cf3a43ac73d5fc932d881d1a12b703777ce226c3bf70", kill_on_drop: false }` [INFO] [stdout] 29f4dd7378d14d50cd74cf3a43ac73d5fc932d881d1a12b703777ce226c3bf70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3d30a394aab508feeb7d80da103a9129eecf58419136d71513d30ea132c71783 [INFO] running `Command { std: "docker" "start" "-a" "3d30a394aab508feeb7d80da103a9129eecf58419136d71513d30ea132c71783", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling twox-hash v2.1.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling triomphe v0.1.15 [INFO] [stderr] Compiling oak-core v0.0.11 [INFO] [stderr] Compiling oak-nginx v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `GreenNode` and `OakError` [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GreenNode, OakError, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct NginxLexer<'config> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 13 | config: &'config NginxLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NginxLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.51s [INFO] running `Command { std: "docker" "inspect" "3d30a394aab508feeb7d80da103a9129eecf58419136d71513d30ea132c71783", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d30a394aab508feeb7d80da103a9129eecf58419136d71513d30ea132c71783", kill_on_drop: false }` [INFO] [stdout] 3d30a394aab508feeb7d80da103a9129eecf58419136d71513d30ea132c71783 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d8b76fd1edfabb2d9a31210c0a28342b6dd882490f2de5e30e968d17f709bd97 [INFO] running `Command { std: "docker" "start" "-a" "d8b76fd1edfabb2d9a31210c0a28342b6dd882490f2de5e30e968d17f709bd97", kill_on_drop: false }` [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stdout] warning: unused imports: `GreenNode` and `OakError` [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GreenNode, OakError, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct NginxLexer<'config> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 13 | config: &'config NginxLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NginxLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling oak-testing v0.0.11 [INFO] [stderr] Compiling oak-nginx v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `GreenNode` and `OakError` [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GreenNode, OakError, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct NginxLexer<'config> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 13 | config: &'config NginxLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NginxLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.98s [INFO] running `Command { std: "docker" "inspect" "d8b76fd1edfabb2d9a31210c0a28342b6dd882490f2de5e30e968d17f709bd97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d8b76fd1edfabb2d9a31210c0a28342b6dd882490f2de5e30e968d17f709bd97", kill_on_drop: false }` [INFO] [stdout] d8b76fd1edfabb2d9a31210c0a28342b6dd882490f2de5e30e968d17f709bd97 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 59e993f6998c536b6f5e1292c6208c22f9dcd411ed2cb39620a5e40dbeb673a7 [INFO] running `Command { std: "docker" "start" "-a" "59e993f6998c536b6f5e1292c6208c22f9dcd411ed2cb39620a5e40dbeb673a7", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `GreenNode` and `OakError` [INFO] [stderr] --> src/parser/mod.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | GreenNode, OakError, [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `config` is never read [INFO] [stderr] --> src/lexer/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct NginxLexer<'config> { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] 13 | config: &'config NginxLanguage, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `NginxLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `oak-nginx` (lib) generated 2 warnings (run `cargo fix --lib -p oak-nginx` to apply 1 suggestion) [INFO] [stderr] warning: `oak-nginx` (lib test) generated 2 warnings (2 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oak_nginx-a8292422671bcb90) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/main.rs (/opt/rustwide/target/debug/deps/main-918b12babe27146f) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test ready ... ok [INFO] [stdout] test lexer::test_nginx_lexer ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- lexer::test_nginx_lexer stdout ---- [INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/lexer/basic.conf [INFO] [stdout] Error: TestFailure { path: "/opt/rustwide/workdir/tests/lexer/basic.conf", expected: "LexerTestExpected {\n success: true,\n count: 100,\n tokens: [\n TokenData {\n kind: \"Identifier\",\n text: \"user\",\n start: 175,\n end: 179,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nginx\",\n start: 180,\n end: 185,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 185,\n end: 186,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_processes\",\n start: 188,\n end: 204,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auto\",\n start: 205,\n end: 209,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 209,\n end: 210,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_rlimit_nofile\",\n start: 212,\n end: 232,\n },\n TokenData {\n kind: \"Number\",\n text: \"65535\",\n start: 233,\n end: 238,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 238,\n end: 239,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_cpu_affinity\",\n start: 241,\n end: 260,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auto\",\n start: 261,\n end: 265,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 265,\n end: 266,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_priority\",\n start: 268,\n end: 283,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 284,\n end: 285,\n },\n TokenData {\n kind: \"Number\",\n text: \"5\",\n start: 285,\n end: 286,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 286,\n end: 287,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_log\",\n start: 318,\n end: 327,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/error.log\",\n start: 328,\n end: 352,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"warn\",\n start: 353,\n end: 357,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 357,\n end: 358,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_log\",\n start: 360,\n end: 369,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/debug.log\",\n start: 370,\n end: 394,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"debug\",\n start: 395,\n end: 400,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 400,\n end: 401,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pid\",\n start: 417,\n end: 420,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/run/nginx.pid\",\n start: 421,\n end: 439,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 439,\n end: 440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"load_module\",\n start: 468,\n end: 479,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"modules\",\n start: 480,\n end: 487,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ngx_http_geoip_module.so\",\n start: 487,\n end: 512,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 512,\n end: 513,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"load_module\",\n start: 515,\n end: 526,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"modules\",\n start: 527,\n end: 534,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ngx_stream_module.so\",\n start: 534,\n end: 555,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 555,\n end: 556,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"load_module\",\n start: 558,\n end: 569,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"modules\",\n start: 570,\n end: 577,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ngx_http_image_filter_module.so\",\n start: 577,\n end: 609,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 609,\n end: 610,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"include\",\n start: 656,\n end: 663,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/nginx/modules-enabled/*.conf\",\n start: 664,\n end: 697,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 697,\n end: 698,\n },\n TokenData {\n kind: \"EventsKeyword\",\n text: \"events\",\n start: 720,\n end: 726,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 727,\n end: 728,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use\",\n start: 770,\n end: 773,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"epoll\",\n start: 774,\n end: 779,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 779,\n end: 780,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_connections\",\n start: 842,\n end: 860,\n },\n TokenData {\n kind: \"Number\",\n text: \"4096\",\n start: 861,\n end: 865,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 865,\n end: 866,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"multi_accept\",\n start: 913,\n end: 925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 926,\n end: 928,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 928,\n end: 929,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"accept_mutex\",\n start: 961,\n end: 973,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 974,\n end: 977,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 977,\n end: 978,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"accept_mutex_delay\",\n start: 984,\n end: 1002,\n },\n TokenData {\n kind: \"Number\",\n text: \"500ms\",\n start: 1003,\n end: 1008,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1008,\n end: 1009,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1011,\n end: 1012,\n },\n TokenData {\n kind: \"HttpKeyword\",\n text: \"http\",\n start: 1032,\n end: 1036,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1037,\n end: 1038,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"sendfile\",\n start: 1066,\n end: 1074,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 1075,\n end: 1077,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1077,\n end: 1078,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tcp_nopush\",\n start: 1084,\n end: 1094,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 1095,\n end: 1097,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1097,\n end: 1098,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tcp_nodelay\",\n start: 1104,\n end: 1115,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 1116,\n end: 1118,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1118,\n end: 1119,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive_timeout\",\n start: 1125,\n end: 1142,\n },\n TokenData {\n kind: \"Number\",\n text: \"65\",\n start: 1143,\n end: 1145,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1145,\n end: 1146,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive_requests\",\n start: 1152,\n end: 1170,\n },\n TokenData {\n kind: \"Number\",\n text: \"1000\",\n start: 1171,\n end: 1175,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1175,\n end: 1176,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"types_hash_max_size\",\n start: 1182,\n end: 1201,\n },\n TokenData {\n kind: \"Number\",\n text: \"2048\",\n start: 1202,\n end: 1206,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1206,\n end: 1207,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_tokens\",\n start: 1213,\n end: 1226,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 1227,\n end: 1230,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1230,\n end: 1231,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_names_hash_bucket_size\",\n start: 1268,\n end: 1297,\n },\n TokenData {\n kind: \"Number\",\n text: \"128\",\n start: 1298,\n end: 1301,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1301,\n end: 1302,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_names_hash_max_size\",\n start: 1308,\n end: 1334,\n },\n TokenData {\n kind: \"Number\",\n text: \"1024\",\n start: 1335,\n end: 1339,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1339,\n end: 1340,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_max_body_size\",\n start: 1375,\n end: 1395,\n },\n TokenData {\n kind: \"Number\",\n text: \"100M\",\n start: 1396,\n end: 1400,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1400,\n end: 1401,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_body_buffer_size\",\n start: 1407,\n end: 1430,\n },\n TokenData {\n kind: \"Number\",\n text: \"128k\",\n start: 1431,\n end: 1435,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1435,\n end: 1436,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_header_buffer_size\",\n start: 1442,\n end: 1467,\n },\n TokenData {\n kind: \"Number\",\n text: \"1k\",\n start: 1468,\n end: 1470,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1470,\n end: 1471,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"large_client_header_buffers\",\n start: 1477,\n end: 1504,\n },\n TokenData {\n kind: \"Number\",\n text: \"4\",\n start: 1505,\n end: 1506,\n },\n ],\n errors: [],\n}", actual: "LexerTestExpected {\n success: true,\n count: 1963,\n tokens: [\n TokenData {\n kind: \"Identifier\",\n text: \"user\",\n start: 175,\n end: 179,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nginx\",\n start: 180,\n end: 185,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 185,\n end: 186,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_processes\",\n start: 188,\n end: 204,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auto\",\n start: 205,\n end: 209,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 209,\n end: 210,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_rlimit_nofile\",\n start: 212,\n end: 232,\n },\n TokenData {\n kind: \"Number\",\n text: \"65535\",\n start: 233,\n end: 238,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 238,\n end: 239,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_cpu_affinity\",\n start: 241,\n end: 260,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auto\",\n start: 261,\n end: 265,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 265,\n end: 266,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_priority\",\n start: 268,\n end: 283,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 284,\n end: 285,\n },\n TokenData {\n kind: \"Number\",\n text: \"5\",\n start: 285,\n end: 286,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 286,\n end: 287,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_log\",\n start: 318,\n end: 327,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/error.log\",\n start: 328,\n end: 352,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"warn\",\n start: 353,\n end: 357,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 357,\n end: 358,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_log\",\n start: 360,\n end: 369,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/debug.log\",\n start: 370,\n end: 394,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"debug\",\n start: 395,\n end: 400,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 400,\n end: 401,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pid\",\n start: 417,\n end: 420,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/run/nginx.pid\",\n start: 421,\n end: 439,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 439,\n end: 440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"load_module\",\n start: 468,\n end: 479,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"modules\",\n start: 480,\n end: 487,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ngx_http_geoip_module.so\",\n start: 487,\n end: 512,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 512,\n end: 513,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"load_module\",\n start: 515,\n end: 526,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"modules\",\n start: 527,\n end: 534,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ngx_stream_module.so\",\n start: 534,\n end: 555,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 555,\n end: 556,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"load_module\",\n start: 558,\n end: 569,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"modules\",\n start: 570,\n end: 577,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ngx_http_image_filter_module.so\",\n start: 577,\n end: 609,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 609,\n end: 610,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"include\",\n start: 656,\n end: 663,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/nginx/modules-enabled/*.conf\",\n start: 664,\n end: 697,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 697,\n end: 698,\n },\n TokenData {\n kind: \"EventsKeyword\",\n text: \"events\",\n start: 720,\n end: 726,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 727,\n end: 728,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use\",\n start: 770,\n end: 773,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"epoll\",\n start: 774,\n end: 779,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 779,\n end: 780,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"worker_connections\",\n start: 842,\n end: 860,\n },\n TokenData {\n kind: \"Number\",\n text: \"4096\",\n start: 861,\n end: 865,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 865,\n end: 866,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"multi_accept\",\n start: 913,\n end: 925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 926,\n end: 928,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 928,\n end: 929,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"accept_mutex\",\n start: 961,\n end: 973,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 974,\n end: 977,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 977,\n end: 978,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"accept_mutex_delay\",\n start: 984,\n end: 1002,\n },\n TokenData {\n kind: \"Number\",\n text: \"500ms\",\n start: 1003,\n end: 1008,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1008,\n end: 1009,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1011,\n end: 1012,\n },\n TokenData {\n kind: \"HttpKeyword\",\n text: \"http\",\n start: 1032,\n end: 1036,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1037,\n end: 1038,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"sendfile\",\n start: 1066,\n end: 1074,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 1075,\n end: 1077,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1077,\n end: 1078,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tcp_nopush\",\n start: 1084,\n end: 1094,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 1095,\n end: 1097,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1097,\n end: 1098,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tcp_nodelay\",\n start: 1104,\n end: 1115,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 1116,\n end: 1118,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1118,\n end: 1119,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive_timeout\",\n start: 1125,\n end: 1142,\n },\n TokenData {\n kind: \"Number\",\n text: \"65\",\n start: 1143,\n end: 1145,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1145,\n end: 1146,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive_requests\",\n start: 1152,\n end: 1170,\n },\n TokenData {\n kind: \"Number\",\n text: \"1000\",\n start: 1171,\n end: 1175,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1175,\n end: 1176,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"types_hash_max_size\",\n start: 1182,\n end: 1201,\n },\n TokenData {\n kind: \"Number\",\n text: \"2048\",\n start: 1202,\n end: 1206,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1206,\n end: 1207,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_tokens\",\n start: 1213,\n end: 1226,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 1227,\n end: 1230,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1230,\n end: 1231,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_names_hash_bucket_size\",\n start: 1268,\n end: 1297,\n },\n TokenData {\n kind: \"Number\",\n text: \"128\",\n start: 1298,\n end: 1301,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1301,\n end: 1302,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_names_hash_max_size\",\n start: 1308,\n end: 1334,\n },\n TokenData {\n kind: \"Number\",\n text: \"1024\",\n start: 1335,\n end: 1339,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1339,\n end: 1340,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_max_body_size\",\n start: 1375,\n end: 1395,\n },\n TokenData {\n kind: \"Number\",\n text: \"100M\",\n start: 1396,\n end: 1400,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1400,\n end: 1401,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_body_buffer_size\",\n start: 1407,\n end: 1430,\n },\n TokenData {\n kind: \"Number\",\n text: \"128k\",\n start: 1431,\n end: 1435,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1435,\n end: 1436,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_header_buffer_size\",\n start: 1442,\n end: 1467,\n },\n TokenData {\n kind: \"Number\",\n text: \"1k\",\n start: 1468,\n end: 1470,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1470,\n end: 1471,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"large_client_header_buffers\",\n start: 1477,\n end: 1504,\n },\n TokenData {\n kind: \"Number\",\n text: \"4\",\n start: 1505,\n end: 1506,\n },\n TokenData {\n kind: \"Number\",\n text: \"4k\",\n start: 1507,\n end: 1509,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1509,\n end: 1510,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_body_timeout\",\n start: 1516,\n end: 1535,\n },\n TokenData {\n kind: \"Number\",\n text: \"60s\",\n start: 1536,\n end: 1539,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1539,\n end: 1540,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_header_timeout\",\n start: 1546,\n end: 1567,\n },\n TokenData {\n kind: \"Number\",\n text: \"60s\",\n start: 1568,\n end: 1571,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1571,\n end: 1572,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"send_timeout\",\n start: 1578,\n end: 1590,\n },\n TokenData {\n kind: \"Number\",\n text: \"60s\",\n start: 1591,\n end: 1594,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1594,\n end: 1595,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"include\",\n start: 1625,\n end: 1632,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/nginx/mime.types\",\n start: 1633,\n end: 1654,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1654,\n end: 1655,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default_type\",\n start: 1661,\n end: 1673,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 1674,\n end: 1685,\n },\n TokenData {\n kind: \"Path\",\n text: \"/octet-stream\",\n start: 1685,\n end: 1698,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1698,\n end: 1699,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"charset\",\n start: 1732,\n end: 1739,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"utf\",\n start: 1740,\n end: 1743,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 1743,\n end: 1744,\n },\n TokenData {\n kind: \"Number\",\n text: \"8\",\n start: 1744,\n end: 1745,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1745,\n end: 1746,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"charset_types\",\n start: 1752,\n end: 1765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 1766,\n end: 1770,\n },\n TokenData {\n kind: \"Path\",\n text: \"/xml\",\n start: 1770,\n end: 1774,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 1775,\n end: 1779,\n },\n TokenData {\n kind: \"Path\",\n text: \"/plain\",\n start: 1779,\n end: 1785,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 1786,\n end: 1790,\n },\n TokenData {\n kind: \"Path\",\n text: \"/vnd.wap.wml\",\n start: 1790,\n end: 1802,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 1803,\n end: 1814,\n },\n TokenData {\n kind: \"Path\",\n text: \"/javascript\",\n start: 1814,\n end: 1825,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 1826,\n end: 1837,\n },\n TokenData {\n kind: \"Path\",\n text: \"/rss\",\n start: 1837,\n end: 1841,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 1841,\n end: 1842,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xml\",\n start: 1842,\n end: 1845,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 1845,\n end: 1846,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_format\",\n start: 1887,\n end: 1897,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"main\",\n start: 1898,\n end: 1902,\n },\n TokenData {\n kind: \"String\",\n text: \"'$remote_addr - $remote_user [$time_local] \\\"$request\\\" '\",\n start: 1903,\n end: 1958,\n },\n TokenData {\n kind: \"String\",\n text: \"'$status $body_bytes_sent \\\"$http_referer\\\" '\",\n start: 1980,\n end: 2023,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"$http_user_agent\\\" \\\"$http_x_forwarded_for\\\"'\",\n start: 2045,\n end: 2089,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2089,\n end: 2090,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_format\",\n start: 2102,\n end: 2112,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"detailed\",\n start: 2113,\n end: 2121,\n },\n TokenData {\n kind: \"String\",\n text: \"'$remote_addr - $remote_user [$time_local] '\",\n start: 2122,\n end: 2166,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"$request\\\" $status $bytes_sent '\",\n start: 2191,\n end: 2224,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"$http_referer\\\" \\\"$http_user_agent\\\" '\",\n start: 2249,\n end: 2286,\n },\n TokenData {\n kind: \"String\",\n text: \"'$request_time $upstream_response_time '\",\n start: 2311,\n end: 2351,\n },\n TokenData {\n kind: \"String\",\n text: \"'$pipe $connection_requests'\",\n start: 2376,\n end: 2404,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2404,\n end: 2405,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_format\",\n start: 2417,\n end: 2427,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"json\",\n start: 2428,\n end: 2432,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"escape\",\n start: 2433,\n end: 2439,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 2439,\n end: 2440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"json\",\n start: 2440,\n end: 2444,\n },\n TokenData {\n kind: \"String\",\n text: \"'{'\",\n start: 2445,\n end: 2448,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"time_local\\\":\\\"$time_local\\\",'\",\n start: 2470,\n end: 2499,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"remote_addr\\\":\\\"$remote_addr\\\",'\",\n start: 2521,\n end: 2552,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"remote_user\\\":\\\"$remote_user\\\",'\",\n start: 2574,\n end: 2605,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"request\\\":\\\"$request\\\",'\",\n start: 2627,\n end: 2650,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"status\\\": \\\"$status\\\",'\",\n start: 2672,\n end: 2694,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"body_bytes_sent\\\":\\\"$body_bytes_sent\\\",'\",\n start: 2716,\n end: 2755,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"request_time\\\":\\\"$request_time\\\",'\",\n start: 2777,\n end: 2810,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"http_referrer\\\":\\\"$http_referer\\\",'\",\n start: 2832,\n end: 2866,\n },\n TokenData {\n kind: \"String\",\n text: \"'\\\"http_user_agent\\\":\\\"$http_user_agent\\\"'\",\n start: 2888,\n end: 2926,\n },\n TokenData {\n kind: \"String\",\n text: \"'}'\",\n start: 2948,\n end: 2951,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 2951,\n end: 2952,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 2964,\n end: 2974,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/access.log\",\n start: 2975,\n end: 3000,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"main\",\n start: 3001,\n end: 3005,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3005,\n end: 3006,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 3012,\n end: 3022,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/detailed.log\",\n start: 3023,\n end: 3050,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"detailed\",\n start: 3051,\n end: 3059,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3059,\n end: 3060,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip\",\n start: 3096,\n end: 3100,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 3101,\n end: 3103,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3103,\n end: 3104,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip_vary\",\n start: 3110,\n end: 3119,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 3120,\n end: 3122,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3122,\n end: 3123,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip_proxied\",\n start: 3129,\n end: 3141,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"any\",\n start: 3142,\n end: 3145,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3145,\n end: 3146,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip_comp_level\",\n start: 3152,\n end: 3167,\n },\n TokenData {\n kind: \"Number\",\n text: \"6\",\n start: 3168,\n end: 3169,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3169,\n end: 3170,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip_min_length\",\n start: 3176,\n end: 3191,\n },\n TokenData {\n kind: \"Number\",\n text: \"1000\",\n start: 3192,\n end: 3196,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3196,\n end: 3197,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip_types\",\n start: 3203,\n end: 3213,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3223,\n end: 3227,\n },\n TokenData {\n kind: \"Path\",\n text: \"/plain\",\n start: 3227,\n end: 3233,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3243,\n end: 3247,\n },\n TokenData {\n kind: \"Path\",\n text: \"/css\",\n start: 3247,\n end: 3251,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3261,\n end: 3265,\n },\n TokenData {\n kind: \"Path\",\n text: \"/xml\",\n start: 3265,\n end: 3269,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3279,\n end: 3283,\n },\n TokenData {\n kind: \"Path\",\n text: \"/javascript\",\n start: 3283,\n end: 3294,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3304,\n end: 3315,\n },\n TokenData {\n kind: \"Path\",\n text: \"/json\",\n start: 3315,\n end: 3320,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3330,\n end: 3341,\n },\n TokenData {\n kind: \"Path\",\n text: \"/javascript\",\n start: 3341,\n end: 3352,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3362,\n end: 3373,\n },\n TokenData {\n kind: \"Path\",\n text: \"/xml\",\n start: 3373,\n end: 3377,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 3377,\n end: 3378,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rss\",\n start: 3378,\n end: 3381,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3391,\n end: 3402,\n },\n TokenData {\n kind: \"Path\",\n text: \"/atom\",\n start: 3402,\n end: 3407,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 3407,\n end: 3408,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xml\",\n start: 3408,\n end: 3411,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"image\",\n start: 3421,\n end: 3426,\n },\n TokenData {\n kind: \"Path\",\n text: \"/svg\",\n start: 3426,\n end: 3430,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 3430,\n end: 3431,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xml\",\n start: 3431,\n end: 3434,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3434,\n end: 3435,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"brotli\",\n start: 3495,\n end: 3501,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 3502,\n end: 3504,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3504,\n end: 3505,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"brotli_comp_level\",\n start: 3511,\n end: 3528,\n },\n TokenData {\n kind: \"Number\",\n text: \"6\",\n start: 3529,\n end: 3530,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3530,\n end: 3531,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"brotli_types\",\n start: 3537,\n end: 3549,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3550,\n end: 3554,\n },\n TokenData {\n kind: \"Path\",\n text: \"/plain\",\n start: 3554,\n end: 3560,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3561,\n end: 3565,\n },\n TokenData {\n kind: \"Path\",\n text: \"/css\",\n start: 3565,\n end: 3569,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3570,\n end: 3581,\n },\n TokenData {\n kind: \"Path\",\n text: \"/json\",\n start: 3581,\n end: 3586,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3587,\n end: 3598,\n },\n TokenData {\n kind: \"Path\",\n text: \"/javascript\",\n start: 3598,\n end: 3609,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3610,\n end: 3614,\n },\n TokenData {\n kind: \"Path\",\n text: \"/xml\",\n start: 3614,\n end: 3618,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3619,\n end: 3630,\n },\n TokenData {\n kind: \"Path\",\n text: \"/xml\",\n start: 3630,\n end: 3634,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"application\",\n start: 3635,\n end: 3646,\n },\n TokenData {\n kind: \"Path\",\n text: \"/xml\",\n start: 3646,\n end: 3650,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 3650,\n end: 3651,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rss\",\n start: 3651,\n end: 3654,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 3655,\n end: 3659,\n },\n TokenData {\n kind: \"Path\",\n text: \"/javascript\",\n start: 3659,\n end: 3670,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3670,\n end: 3671,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_protocols\",\n start: 3707,\n end: 3720,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"TLSv1\",\n start: 3721,\n end: 3726,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3726,\n end: 3727,\n },\n TokenData {\n kind: \"Number\",\n text: \"2\",\n start: 3727,\n end: 3728,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"TLSv1\",\n start: 3729,\n end: 3734,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3734,\n end: 3735,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 3735,\n end: 3736,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3736,\n end: 3737,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_ciphers\",\n start: 3743,\n end: 3754,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ECDHE\",\n start: 3755,\n end: 3760,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3760,\n end: 3761,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"RSA\",\n start: 3761,\n end: 3764,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3764,\n end: 3765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"AES128\",\n start: 3765,\n end: 3771,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3771,\n end: 3772,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"GCM\",\n start: 3772,\n end: 3775,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3775,\n end: 3776,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"SHA256\",\n start: 3776,\n end: 3782,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3782,\n end: 3783,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ECDHE\",\n start: 3783,\n end: 3788,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3788,\n end: 3789,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"RSA\",\n start: 3789,\n end: 3792,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3792,\n end: 3793,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"AES256\",\n start: 3793,\n end: 3799,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3799,\n end: 3800,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"GCM\",\n start: 3800,\n end: 3803,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3803,\n end: 3804,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"SHA384\",\n start: 3804,\n end: 3810,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3810,\n end: 3811,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ECDHE\",\n start: 3811,\n end: 3816,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3816,\n end: 3817,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"RSA\",\n start: 3817,\n end: 3820,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3820,\n end: 3821,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"AES128\",\n start: 3821,\n end: 3827,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3827,\n end: 3828,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"SHA256\",\n start: 3828,\n end: 3834,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3834,\n end: 3835,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ECDHE\",\n start: 3835,\n end: 3840,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3840,\n end: 3841,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"RSA\",\n start: 3841,\n end: 3844,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3844,\n end: 3845,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"AES256\",\n start: 3845,\n end: 3851,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 3851,\n end: 3852,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"SHA384\",\n start: 3852,\n end: 3858,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3858,\n end: 3859,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_prefer_server_ciphers\",\n start: 3865,\n end: 3890,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 3891,\n end: 3894,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3894,\n end: 3895,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_session_cache\",\n start: 3901,\n end: 3918,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"shared\",\n start: 3919,\n end: 3925,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3925,\n end: 3926,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"SSL\",\n start: 3926,\n end: 3929,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3929,\n end: 3930,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 3930,\n end: 3933,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3933,\n end: 3934,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_session_timeout\",\n start: 3940,\n end: 3959,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 3960,\n end: 3963,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3963,\n end: 3964,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_session_tickets\",\n start: 3970,\n end: 3989,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 3990,\n end: 3993,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 3993,\n end: 3994,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_stapling\",\n start: 4000,\n end: 4012,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 4013,\n end: 4015,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4015,\n end: 4016,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_stapling_verify\",\n start: 4022,\n end: 4041,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 4042,\n end: 4044,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4044,\n end: 4045,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 4081,\n end: 4091,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 4092,\n end: 4093,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4093,\n end: 4094,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Frame\",\n start: 4094,\n end: 4099,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4099,\n end: 4100,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Options\",\n start: 4100,\n end: 4107,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"DENY\",\n start: 4108,\n end: 4112,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 4113,\n end: 4119,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4119,\n end: 4120,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 4126,\n end: 4136,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 4137,\n end: 4138,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4138,\n end: 4139,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 4139,\n end: 4146,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4146,\n end: 4147,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 4147,\n end: 4151,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4151,\n end: 4152,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Options\",\n start: 4152,\n end: 4159,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nosniff\",\n start: 4160,\n end: 4167,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 4168,\n end: 4174,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4174,\n end: 4175,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 4181,\n end: 4191,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 4192,\n end: 4193,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4193,\n end: 4194,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"XSS\",\n start: 4194,\n end: 4197,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4197,\n end: 4198,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Protection\",\n start: 4198,\n end: 4208,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"1; mode=block\\\"\",\n start: 4209,\n end: 4224,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 4225,\n end: 4231,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4231,\n end: 4232,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 4238,\n end: 4248,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Strict\",\n start: 4249,\n end: 4255,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4255,\n end: 4256,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Transport\",\n start: 4256,\n end: 4265,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4265,\n end: 4266,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Security\",\n start: 4266,\n end: 4274,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"max-age=31536000; includeSubDomains\\\"\",\n start: 4275,\n end: 4312,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 4313,\n end: 4319,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4319,\n end: 4320,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 4326,\n end: 4336,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 4337,\n end: 4344,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4344,\n end: 4345,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Security\",\n start: 4345,\n end: 4353,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 4353,\n end: 4354,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Policy\",\n start: 4354,\n end: 4360,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';\\\"\",\n start: 4361,\n end: 4465,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 4466,\n end: 4472,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4472,\n end: 4473,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req_zone\",\n start: 4506,\n end: 4520,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$binary_remote_addr\",\n start: 4521,\n end: 4540,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 4541,\n end: 4545,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4545,\n end: 4546,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"login\",\n start: 4546,\n end: 4551,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4551,\n end: 4552,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 4552,\n end: 4555,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rate\",\n start: 4556,\n end: 4560,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4560,\n end: 4561,\n },\n TokenData {\n kind: \"Number\",\n text: \"1r\",\n start: 4561,\n end: 4563,\n },\n TokenData {\n kind: \"Path\",\n text: \"/s\",\n start: 4563,\n end: 4565,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4565,\n end: 4566,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req_zone\",\n start: 4572,\n end: 4586,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$binary_remote_addr\",\n start: 4587,\n end: 4606,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 4607,\n end: 4611,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4611,\n end: 4612,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api\",\n start: 4612,\n end: 4615,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4615,\n end: 4616,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 4616,\n end: 4619,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rate\",\n start: 4620,\n end: 4624,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4624,\n end: 4625,\n },\n TokenData {\n kind: \"Number\",\n text: \"10r\",\n start: 4625,\n end: 4628,\n },\n TokenData {\n kind: \"Path\",\n text: \"/s\",\n start: 4628,\n end: 4630,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4630,\n end: 4631,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req_zone\",\n start: 4637,\n end: 4651,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$binary_remote_addr\",\n start: 4652,\n end: 4671,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 4672,\n end: 4676,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4676,\n end: 4677,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"general\",\n start: 4677,\n end: 4684,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4684,\n end: 4685,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 4685,\n end: 4688,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rate\",\n start: 4689,\n end: 4693,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4693,\n end: 4694,\n },\n TokenData {\n kind: \"Number\",\n text: \"5r\",\n start: 4694,\n end: 4696,\n },\n TokenData {\n kind: \"Path\",\n text: \"/s\",\n start: 4696,\n end: 4698,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4698,\n end: 4699,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_conn_zone\",\n start: 4738,\n end: 4753,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$binary_remote_addr\",\n start: 4754,\n end: 4773,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 4774,\n end: 4778,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 4778,\n end: 4779,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"addr\",\n start: 4779,\n end: 4783,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4783,\n end: 4784,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 4784,\n end: 4787,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4787,\n end: 4788,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"geo\",\n start: 4832,\n end: 4835,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$country\",\n start: 4836,\n end: 4844,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 4845,\n end: 4846,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default\",\n start: 4856,\n end: 4863,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ZZ\",\n start: 4871,\n end: 4873,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4873,\n end: 4874,\n },\n TokenData {\n kind: \"Number\",\n text: \"127.0\",\n start: 4884,\n end: 4889,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4889,\n end: 4890,\n },\n TokenData {\n kind: \"Number\",\n text: \"0.0\",\n start: 4890,\n end: 4893,\n },\n TokenData {\n kind: \"Path\",\n text: \"/24\",\n start: 4893,\n end: 4896,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"US\",\n start: 4899,\n end: 4901,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4901,\n end: 4902,\n },\n TokenData {\n kind: \"Number\",\n text: \"192.168\",\n start: 4912,\n end: 4919,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4919,\n end: 4920,\n },\n TokenData {\n kind: \"Number\",\n text: \"1.0\",\n start: 4920,\n end: 4923,\n },\n TokenData {\n kind: \"Path\",\n text: \"/24\",\n start: 4923,\n end: 4926,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"US\",\n start: 4927,\n end: 4929,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4929,\n end: 4930,\n },\n TokenData {\n kind: \"Number\",\n text: \"10.1\",\n start: 4940,\n end: 4944,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4944,\n end: 4945,\n },\n TokenData {\n kind: \"Number\",\n text: \"0.0\",\n start: 4945,\n end: 4948,\n },\n TokenData {\n kind: \"Path\",\n text: \"/16\",\n start: 4948,\n end: 4951,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"US\",\n start: 4955,\n end: 4957,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4957,\n end: 4958,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4968,\n end: 4969,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4969,\n end: 4970,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 4970,\n end: 4971,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"US\",\n start: 4983,\n end: 4985,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4985,\n end: 4986,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 4992,\n end: 4993,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 5037,\n end: 5040,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$http_upgrade\",\n start: 5041,\n end: 5054,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$connection_upgrade\",\n start: 5055,\n end: 5074,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 5075,\n end: 5076,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default\",\n start: 5086,\n end: 5093,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"upgrade\",\n start: 5094,\n end: 5101,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5101,\n end: 5102,\n },\n TokenData {\n kind: \"String\",\n text: \"''\",\n start: 5112,\n end: 5114,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"close\",\n start: 5120,\n end: 5125,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5125,\n end: 5126,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 5132,\n end: 5133,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 5145,\n end: 5148,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 5149,\n end: 5161,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$limit\",\n start: 5162,\n end: 5168,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 5169,\n end: 5170,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 5180,\n end: 5181,\n },\n TokenData {\n kind: \"Error\",\n text: \"^\",\n start: 5181,\n end: 5182,\n },\n TokenData {\n kind: \"Number\",\n text: \"192\",\n start: 5182,\n end: 5185,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 5185,\n end: 5186,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5186,\n end: 5187,\n },\n TokenData {\n kind: \"Number\",\n text: \"168\",\n start: 5187,\n end: 5190,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 5190,\n end: 5191,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5191,\n end: 5192,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5192,\n end: 5193,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 5193,\n end: 5194,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5194,\n end: 5195,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"\\\"\",\n start: 5196,\n end: 5198,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5198,\n end: 5199,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default\",\n start: 5209,\n end: 5216,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$binary_remote_addr\",\n start: 5225,\n end: 5244,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5244,\n end: 5245,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 5251,\n end: 5252,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 5264,\n end: 5267,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$http_user_agent\",\n start: 5268,\n end: 5284,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$mobile\",\n start: 5285,\n end: 5292,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 5293,\n end: 5294,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default\",\n start: 5304,\n end: 5311,\n },\n TokenData {\n kind: \"Number\",\n text: \"0\",\n start: 5318,\n end: 5319,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5319,\n end: 5320,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"~*android\\\"\",\n start: 5330,\n end: 5341,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5344,\n end: 5345,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5345,\n end: 5346,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"~*iphone\\\"\",\n start: 5356,\n end: 5366,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5370,\n end: 5371,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5371,\n end: 5372,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"~*ipad\\\"\",\n start: 5382,\n end: 5390,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5396,\n end: 5397,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5397,\n end: 5398,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"~*mobile\\\"\",\n start: 5408,\n end: 5418,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5422,\n end: 5423,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5423,\n end: 5424,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 5430,\n end: 5431,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"split_clients\",\n start: 5480,\n end: 5493,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"${remote_addr}AAA\\\"\",\n start: 5494,\n end: 5513,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$variant\",\n start: 5514,\n end: 5522,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 5523,\n end: 5524,\n },\n TokenData {\n kind: \"Number\",\n text: \"50\",\n start: 5534,\n end: 5536,\n },\n TokenData {\n kind: \"Error\",\n text: \"%\",\n start: 5536,\n end: 5537,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5542,\n end: 5543,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 5543,\n end: 5546,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5546,\n end: 5547,\n },\n TokenData {\n kind: \"Number\",\n text: \"50\",\n start: 5557,\n end: 5559,\n },\n TokenData {\n kind: \"Error\",\n text: \"%\",\n start: 5559,\n end: 5560,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5565,\n end: 5566,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"two\",\n start: 5566,\n end: 5569,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5569,\n end: 5570,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 5576,\n end: 5577,\n },\n TokenData {\n kind: \"UpstreamKeyword\",\n text: \"upstream\",\n start: 5619,\n end: 5627,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backend\",\n start: 5628,\n end: 5635,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 5636,\n end: 5637,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"least_conn\",\n start: 5647,\n end: 5657,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5657,\n end: 5658,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 5668,\n end: 5674,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backend1\",\n start: 5675,\n end: 5683,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5683,\n end: 5684,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 5684,\n end: 5691,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5691,\n end: 5692,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 5692,\n end: 5695,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5695,\n end: 5696,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 5696,\n end: 5700,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"weight\",\n start: 5701,\n end: 5707,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5707,\n end: 5708,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 5708,\n end: 5709,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_fails\",\n start: 5710,\n end: 5719,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5719,\n end: 5720,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 5720,\n end: 5721,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fail_timeout\",\n start: 5722,\n end: 5734,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5734,\n end: 5735,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 5735,\n end: 5738,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5738,\n end: 5739,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 5749,\n end: 5755,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backend2\",\n start: 5756,\n end: 5764,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5764,\n end: 5765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 5765,\n end: 5772,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5772,\n end: 5773,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 5773,\n end: 5776,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5776,\n end: 5777,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 5777,\n end: 5781,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"weight\",\n start: 5782,\n end: 5788,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5788,\n end: 5789,\n },\n TokenData {\n kind: \"Number\",\n text: \"2\",\n start: 5789,\n end: 5790,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_fails\",\n start: 5791,\n end: 5800,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5800,\n end: 5801,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 5801,\n end: 5802,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fail_timeout\",\n start: 5803,\n end: 5815,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5815,\n end: 5816,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 5816,\n end: 5819,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5819,\n end: 5820,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 5830,\n end: 5836,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backend3\",\n start: 5837,\n end: 5845,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5845,\n end: 5846,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 5846,\n end: 5853,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5853,\n end: 5854,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 5854,\n end: 5857,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5857,\n end: 5858,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 5858,\n end: 5862,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"weight\",\n start: 5863,\n end: 5869,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5869,\n end: 5870,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5870,\n end: 5871,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_fails\",\n start: 5872,\n end: 5881,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5881,\n end: 5882,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 5882,\n end: 5883,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fail_timeout\",\n start: 5884,\n end: 5896,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5896,\n end: 5897,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 5897,\n end: 5900,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backup\",\n start: 5901,\n end: 5907,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5907,\n end: 5908,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 5918,\n end: 5924,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"unix\",\n start: 5925,\n end: 5929,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5929,\n end: 5930,\n },\n TokenData {\n kind: \"Path\",\n text: \"/tmp/backend4\",\n start: 5930,\n end: 5943,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"weight\",\n start: 5944,\n end: 5950,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 5950,\n end: 5951,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 5951,\n end: 5952,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5952,\n end: 5953,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive\",\n start: 5973,\n end: 5982,\n },\n TokenData {\n kind: \"Number\",\n text: \"32\",\n start: 5983,\n end: 5985,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 5985,\n end: 5986,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive_requests\",\n start: 5996,\n end: 6014,\n },\n TokenData {\n kind: \"Number\",\n text: \"100\",\n start: 6015,\n end: 6018,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6018,\n end: 6019,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keepalive_timeout\",\n start: 6029,\n end: 6046,\n },\n TokenData {\n kind: \"Number\",\n text: \"60s\",\n start: 6047,\n end: 6050,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6050,\n end: 6051,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6057,\n end: 6058,\n },\n TokenData {\n kind: \"UpstreamKeyword\",\n text: \"upstream\",\n start: 6070,\n end: 6078,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api_backend\",\n start: 6079,\n end: 6090,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6091,\n end: 6092,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ip_hash\",\n start: 6102,\n end: 6109,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6109,\n end: 6110,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6120,\n end: 6126,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api1\",\n start: 6127,\n end: 6131,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6131,\n end: 6132,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 6132,\n end: 6139,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6139,\n end: 6140,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 6140,\n end: 6143,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6143,\n end: 6144,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 6144,\n end: 6148,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6148,\n end: 6149,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6159,\n end: 6165,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api2\",\n start: 6166,\n end: 6170,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6170,\n end: 6171,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 6171,\n end: 6178,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6178,\n end: 6179,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 6179,\n end: 6182,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6182,\n end: 6183,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 6183,\n end: 6187,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6187,\n end: 6188,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6198,\n end: 6204,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api3\",\n start: 6205,\n end: 6209,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6209,\n end: 6210,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 6210,\n end: 6217,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6217,\n end: 6218,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 6218,\n end: 6221,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6221,\n end: 6222,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 6222,\n end: 6226,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"down\",\n start: 6227,\n end: 6231,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6231,\n end: 6232,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6238,\n end: 6239,\n },\n TokenData {\n kind: \"UpstreamKeyword\",\n text: \"upstream\",\n start: 6251,\n end: 6259,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"websocket_backend\",\n start: 6260,\n end: 6277,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6278,\n end: 6279,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6289,\n end: 6295,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ws1\",\n start: 6296,\n end: 6299,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6299,\n end: 6300,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 6300,\n end: 6307,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6307,\n end: 6308,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 6308,\n end: 6311,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6311,\n end: 6312,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 6312,\n end: 6316,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6316,\n end: 6317,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6327,\n end: 6333,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ws2\",\n start: 6334,\n end: 6337,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6337,\n end: 6338,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 6338,\n end: 6345,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6345,\n end: 6346,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 6346,\n end: 6349,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6349,\n end: 6350,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 6350,\n end: 6354,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6354,\n end: 6355,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6361,\n end: 6362,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_path\",\n start: 6401,\n end: 6417,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/cache/nginx/proxy\",\n start: 6418,\n end: 6440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"levels\",\n start: 6441,\n end: 6447,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6447,\n end: 6448,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 6448,\n end: 6449,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6449,\n end: 6450,\n },\n TokenData {\n kind: \"Number\",\n text: \"2\",\n start: 6450,\n end: 6451,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keys_zone\",\n start: 6452,\n end: 6461,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6461,\n end: 6462,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"my_cache\",\n start: 6462,\n end: 6470,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6470,\n end: 6471,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 6471,\n end: 6474,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_size\",\n start: 6475,\n end: 6483,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6483,\n end: 6484,\n },\n TokenData {\n kind: \"Number\",\n text: \"10g\",\n start: 6484,\n end: 6487,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inactive\",\n start: 6511,\n end: 6519,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6519,\n end: 6520,\n },\n TokenData {\n kind: \"Number\",\n text: \"60m\",\n start: 6520,\n end: 6523,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use_temp_path\",\n start: 6524,\n end: 6537,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6537,\n end: 6538,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 6538,\n end: 6541,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6541,\n end: 6542,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache_path\",\n start: 6554,\n end: 6572,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/cache/nginx/fastcgi\",\n start: 6573,\n end: 6597,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"levels\",\n start: 6598,\n end: 6604,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6604,\n end: 6605,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 6605,\n end: 6606,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6606,\n end: 6607,\n },\n TokenData {\n kind: \"Number\",\n text: \"2\",\n start: 6607,\n end: 6608,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"keys_zone\",\n start: 6609,\n end: 6618,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6618,\n end: 6619,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache\",\n start: 6619,\n end: 6632,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6632,\n end: 6633,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 6633,\n end: 6636,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_size\",\n start: 6637,\n end: 6645,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6645,\n end: 6646,\n },\n TokenData {\n kind: \"Number\",\n text: \"10g\",\n start: 6646,\n end: 6649,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inactive\",\n start: 6675,\n end: 6683,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6683,\n end: 6684,\n },\n TokenData {\n kind: \"Number\",\n text: \"60m\",\n start: 6684,\n end: 6687,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use_temp_path\",\n start: 6688,\n end: 6701,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 6701,\n end: 6702,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 6702,\n end: 6705,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6705,\n end: 6706,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6752,\n end: 6758,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6759,\n end: 6760,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 6770,\n end: 6776,\n },\n TokenData {\n kind: \"Number\",\n text: \"80\",\n start: 6777,\n end: 6779,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default_server\",\n start: 6780,\n end: 6794,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6794,\n end: 6795,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 6805,\n end: 6811,\n },\n TokenData {\n kind: \"Error\",\n text: \"[\",\n start: 6812,\n end: 6813,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6813,\n end: 6814,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6814,\n end: 6815,\n },\n TokenData {\n kind: \"Error\",\n text: \"]\",\n start: 6815,\n end: 6816,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6816,\n end: 6817,\n },\n TokenData {\n kind: \"Number\",\n text: \"80\",\n start: 6817,\n end: 6819,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"default_server\",\n start: 6820,\n end: 6834,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6834,\n end: 6835,\n },\n TokenData {\n kind: \"ServerNameKeyword\",\n text: \"server_name\",\n start: 6845,\n end: 6856,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 6857,\n end: 6858,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6858,\n end: 6859,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"return\",\n start: 6879,\n end: 6885,\n },\n TokenData {\n kind: \"Number\",\n text: \"444\",\n start: 6886,\n end: 6889,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6889,\n end: 6890,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6896,\n end: 6897,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 6946,\n end: 6952,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6953,\n end: 6954,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 6964,\n end: 6970,\n },\n TokenData {\n kind: \"Number\",\n text: \"80\",\n start: 6971,\n end: 6973,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6973,\n end: 6974,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 6984,\n end: 6990,\n },\n TokenData {\n kind: \"Error\",\n text: \"[\",\n start: 6991,\n end: 6992,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6992,\n end: 6993,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6993,\n end: 6994,\n },\n TokenData {\n kind: \"Error\",\n text: \"]\",\n start: 6994,\n end: 6995,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6995,\n end: 6996,\n },\n TokenData {\n kind: \"Number\",\n text: \"80\",\n start: 6996,\n end: 6998,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 6998,\n end: 6999,\n },\n TokenData {\n kind: \"ServerNameKeyword\",\n text: \"server_name\",\n start: 7009,\n end: 7020,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 7021,\n end: 7028,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7028,\n end: 7029,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 7029,\n end: 7032,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"www\",\n start: 7033,\n end: 7036,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7036,\n end: 7037,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 7037,\n end: 7044,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7044,\n end: 7045,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 7045,\n end: 7048,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7048,\n end: 7049,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 7113,\n end: 7121,\n },\n TokenData {\n kind: \"Path\",\n text: \"/.well-known/acme-challenge/\",\n start: 7122,\n end: 7150,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 7151,\n end: 7152,\n },\n TokenData {\n kind: \"RootKeyword\",\n text: \"root\",\n start: 7166,\n end: 7170,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/www/certbot\",\n start: 7171,\n end: 7187,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7187,\n end: 7188,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 7198,\n end: 7199,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 7219,\n end: 7227,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 7228,\n end: 7229,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 7230,\n end: 7231,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"return\",\n start: 7245,\n end: 7251,\n },\n TokenData {\n kind: \"Number\",\n text: \"301\",\n start: 7252,\n end: 7255,\n },\n TokenData {\n kind: \"Url\",\n text: \"https://\",\n start: 7256,\n end: 7264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$server_name$request_uri\",\n start: 7264,\n end: 7288,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7288,\n end: 7289,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 7299,\n end: 7300,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 7306,\n end: 7307,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 7344,\n end: 7350,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 7351,\n end: 7352,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 7362,\n end: 7368,\n },\n TokenData {\n kind: \"Number\",\n text: \"443\",\n start: 7369,\n end: 7372,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 7373,\n end: 7376,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http2\",\n start: 7377,\n end: 7382,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7382,\n end: 7383,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 7393,\n end: 7399,\n },\n TokenData {\n kind: \"Error\",\n text: \"[\",\n start: 7400,\n end: 7401,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7401,\n end: 7402,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7402,\n end: 7403,\n },\n TokenData {\n kind: \"Error\",\n text: \"]\",\n start: 7403,\n end: 7404,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7404,\n end: 7405,\n },\n TokenData {\n kind: \"Number\",\n text: \"443\",\n start: 7405,\n end: 7408,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 7409,\n end: 7412,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http2\",\n start: 7413,\n end: 7418,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7418,\n end: 7419,\n },\n TokenData {\n kind: \"ServerNameKeyword\",\n text: \"server_name\",\n start: 7429,\n end: 7440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 7441,\n end: 7448,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7448,\n end: 7449,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 7449,\n end: 7452,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"www\",\n start: 7453,\n end: 7456,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7456,\n end: 7457,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 7457,\n end: 7464,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7464,\n end: 7465,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 7465,\n end: 7468,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7468,\n end: 7469,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate\",\n start: 7530,\n end: 7545,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/certs/example.com.crt\",\n start: 7546,\n end: 7576,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7576,\n end: 7577,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate_key\",\n start: 7587,\n end: 7606,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/private/example.com.key\",\n start: 7607,\n end: 7639,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7639,\n end: 7640,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_trusted_certificate\",\n start: 7650,\n end: 7673,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/certs/ca-certs.pem\",\n start: 7674,\n end: 7701,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7701,\n end: 7702,\n },\n TokenData {\n kind: \"RootKeyword\",\n text: \"root\",\n start: 7747,\n end: 7751,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/www/html\",\n start: 7752,\n end: 7765,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7765,\n end: 7766,\n },\n TokenData {\n kind: \"IndexKeyword\",\n text: \"index\",\n start: 7776,\n end: 7781,\n },\n TokenData {\n kind: \"IndexKeyword\",\n text: \"index\",\n start: 7782,\n end: 7787,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7787,\n end: 7788,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"html\",\n start: 7788,\n end: 7792,\n },\n TokenData {\n kind: \"IndexKeyword\",\n text: \"index\",\n start: 7793,\n end: 7798,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7798,\n end: 7799,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"htm\",\n start: 7799,\n end: 7802,\n },\n TokenData {\n kind: \"IndexKeyword\",\n text: \"index\",\n start: 7803,\n end: 7808,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7808,\n end: 7809,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"php\",\n start: 7809,\n end: 7812,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7812,\n end: 7813,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_page\",\n start: 7863,\n end: 7873,\n },\n TokenData {\n kind: \"Number\",\n text: \"404\",\n start: 7874,\n end: 7877,\n },\n TokenData {\n kind: \"Path\",\n text: \"/404.html\",\n start: 7878,\n end: 7887,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7887,\n end: 7888,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_page\",\n start: 7898,\n end: 7908,\n },\n TokenData {\n kind: \"Number\",\n text: \"500\",\n start: 7909,\n end: 7912,\n },\n TokenData {\n kind: \"Number\",\n text: \"502\",\n start: 7913,\n end: 7916,\n },\n TokenData {\n kind: \"Number\",\n text: \"503\",\n start: 7917,\n end: 7920,\n },\n TokenData {\n kind: \"Number\",\n text: \"504\",\n start: 7921,\n end: 7924,\n },\n TokenData {\n kind: \"Path\",\n text: \"/50x.html\",\n start: 7925,\n end: 7934,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 7934,\n end: 7935,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req\",\n start: 7980,\n end: 7989,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 7990,\n end: 7994,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 7994,\n end: 7995,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"general\",\n start: 7995,\n end: 8002,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"burst\",\n start: 8003,\n end: 8008,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 8008,\n end: 8009,\n },\n TokenData {\n kind: \"Number\",\n text: \"20\",\n start: 8009,\n end: 8011,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nodelay\",\n start: 8012,\n end: 8019,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8019,\n end: 8020,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_conn\",\n start: 8030,\n end: 8040,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"addr\",\n start: 8041,\n end: 8045,\n },\n TokenData {\n kind: \"Number\",\n text: \"10\",\n start: 8046,\n end: 8048,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8048,\n end: 8049,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 8094,\n end: 8102,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 8103,\n end: 8104,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 8105,\n end: 8106,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"try_files\",\n start: 8120,\n end: 8129,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 8130,\n end: 8134,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 8135,\n end: 8139,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 8139,\n end: 8140,\n },\n TokenData {\n kind: \"Error\",\n text: \"@\",\n start: 8141,\n end: 8142,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fallback\",\n start: 8142,\n end: 8150,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8150,\n end: 8151,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 8213,\n end: 8221,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 8222,\n end: 8223,\n },\n TokenData {\n kind: \"Error\",\n text: \"*\",\n start: 8223,\n end: 8224,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 8225,\n end: 8226,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 8226,\n end: 8227,\n },\n TokenData {\n kind: \"Error\",\n text: \"(\",\n start: 8227,\n end: 8228,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"jpg\",\n start: 8228,\n end: 8231,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8231,\n end: 8232,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"jpeg\",\n start: 8232,\n end: 8236,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8236,\n end: 8237,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"png\",\n start: 8237,\n end: 8240,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8240,\n end: 8241,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gif\",\n start: 8241,\n end: 8244,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8244,\n end: 8245,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ico\",\n start: 8245,\n end: 8248,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8248,\n end: 8249,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"css\",\n start: 8249,\n end: 8252,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8252,\n end: 8253,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"js\",\n start: 8253,\n end: 8255,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8255,\n end: 8256,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pdf\",\n start: 8256,\n end: 8259,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 8259,\n end: 8260,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"txt\",\n start: 8260,\n end: 8263,\n },\n TokenData {\n kind: \"Error\",\n text: \")\",\n start: 8263,\n end: 8264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$\",\n start: 8264,\n end: 8265,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 8266,\n end: 8267,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"expires\",\n start: 8285,\n end: 8292,\n },\n TokenData {\n kind: \"Number\",\n text: \"1y\",\n start: 8293,\n end: 8295,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8295,\n end: 8296,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 8314,\n end: 8324,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Cache\",\n start: 8325,\n end: 8330,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8330,\n end: 8331,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 8331,\n end: 8338,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"public, immutable\\\"\",\n start: 8339,\n end: 8358,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8358,\n end: 8359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 8377,\n end: 8387,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 8388,\n end: 8391,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8391,\n end: 8392,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 8406,\n end: 8407,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 8417,\n end: 8418,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 8463,\n end: 8471,\n },\n TokenData {\n kind: \"Path\",\n text: \"/api/\",\n start: 8472,\n end: 8477,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 8478,\n end: 8479,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req\",\n start: 8493,\n end: 8502,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 8503,\n end: 8507,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 8507,\n end: 8508,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api\",\n start: 8508,\n end: 8511,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"burst\",\n start: 8512,\n end: 8517,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 8517,\n end: 8518,\n },\n TokenData {\n kind: \"Number\",\n text: \"50\",\n start: 8518,\n end: 8520,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nodelay\",\n start: 8521,\n end: 8528,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8528,\n end: 8529,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 8557,\n end: 8567,\n },\n TokenData {\n kind: \"Url\",\n text: \"http://api_backend\",\n start: 8568,\n end: 8586,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8586,\n end: 8587,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 8601,\n end: 8617,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Host\",\n start: 8618,\n end: 8622,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$host\",\n start: 8623,\n end: 8628,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8628,\n end: 8629,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 8643,\n end: 8659,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 8660,\n end: 8661,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8661,\n end: 8662,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 8662,\n end: 8666,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8666,\n end: 8667,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"IP\",\n start: 8667,\n end: 8669,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 8670,\n end: 8682,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8682,\n end: 8683,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 8697,\n end: 8713,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 8714,\n end: 8715,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8715,\n end: 8716,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 8716,\n end: 8725,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8725,\n end: 8726,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"For\",\n start: 8726,\n end: 8729,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$proxy_add_x_forwarded_for\",\n start: 8730,\n end: 8756,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8756,\n end: 8757,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 8771,\n end: 8787,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 8788,\n end: 8789,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8789,\n end: 8790,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 8790,\n end: 8799,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 8799,\n end: 8800,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Proto\",\n start: 8800,\n end: 8805,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$scheme\",\n start: 8806,\n end: 8813,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8813,\n end: 8814,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_connect_timeout\",\n start: 8872,\n end: 8893,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 8894,\n end: 8897,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8897,\n end: 8898,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_send_timeout\",\n start: 8912,\n end: 8930,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 8931,\n end: 8934,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8934,\n end: 8935,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_read_timeout\",\n start: 8949,\n end: 8967,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 8968,\n end: 8971,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 8971,\n end: 8972,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_buffering\",\n start: 9031,\n end: 9046,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 9047,\n end: 9049,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9049,\n end: 9050,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_buffer_size\",\n start: 9064,\n end: 9081,\n },\n TokenData {\n kind: \"Number\",\n text: \"4k\",\n start: 9082,\n end: 9084,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9084,\n end: 9085,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_buffers\",\n start: 9099,\n end: 9112,\n },\n TokenData {\n kind: \"Number\",\n text: \"8\",\n start: 9113,\n end: 9114,\n },\n TokenData {\n kind: \"Number\",\n text: \"4k\",\n start: 9115,\n end: 9117,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9117,\n end: 9118,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_busy_buffers_size\",\n start: 9132,\n end: 9155,\n },\n TokenData {\n kind: \"Number\",\n text: \"8k\",\n start: 9156,\n end: 9158,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9158,\n end: 9159,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache\",\n start: 9216,\n end: 9227,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"my_cache\",\n start: 9228,\n end: 9236,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9236,\n end: 9237,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_valid\",\n start: 9251,\n end: 9268,\n },\n TokenData {\n kind: \"Number\",\n text: \"200\",\n start: 9269,\n end: 9272,\n },\n TokenData {\n kind: \"Number\",\n text: \"302\",\n start: 9273,\n end: 9276,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 9277,\n end: 9280,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9280,\n end: 9281,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_valid\",\n start: 9295,\n end: 9312,\n },\n TokenData {\n kind: \"Number\",\n text: \"404\",\n start: 9313,\n end: 9316,\n },\n TokenData {\n kind: \"Number\",\n text: \"1m\",\n start: 9317,\n end: 9319,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9319,\n end: 9320,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_use_stale\",\n start: 9334,\n end: 9355,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error\",\n start: 9356,\n end: 9361,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"timeout\",\n start: 9362,\n end: 9369,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"updating\",\n start: 9370,\n end: 9378,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http_500\",\n start: 9379,\n end: 9387,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http_502\",\n start: 9388,\n end: 9396,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http_503\",\n start: 9397,\n end: 9405,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http_504\",\n start: 9406,\n end: 9414,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9414,\n end: 9415,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_lock\",\n start: 9429,\n end: 9445,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 9446,\n end: 9448,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9448,\n end: 9449,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_lock_timeout\",\n start: 9463,\n end: 9487,\n },\n TokenData {\n kind: \"Number\",\n text: \"5s\",\n start: 9488,\n end: 9490,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9490,\n end: 9491,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 9519,\n end: 9529,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 9530,\n end: 9531,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 9531,\n end: 9532,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Cache\",\n start: 9532,\n end: 9537,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 9537,\n end: 9538,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Status\",\n start: 9538,\n end: 9544,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$upstream_cache_status\",\n start: 9545,\n end: 9567,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9567,\n end: 9568,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 9578,\n end: 9579,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 9626,\n end: 9634,\n },\n TokenData {\n kind: \"Path\",\n text: \"/ws/\",\n start: 9635,\n end: 9639,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 9640,\n end: 9641,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 9655,\n end: 9665,\n },\n TokenData {\n kind: \"Url\",\n text: \"http://websocket_backend\",\n start: 9666,\n end: 9690,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9690,\n end: 9691,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_http_version\",\n start: 9705,\n end: 9723,\n },\n TokenData {\n kind: \"Number\",\n text: \"1.1\",\n start: 9724,\n end: 9727,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9727,\n end: 9728,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 9742,\n end: 9758,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Upgrade\",\n start: 9759,\n end: 9766,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$http_upgrade\",\n start: 9767,\n end: 9780,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9780,\n end: 9781,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 9795,\n end: 9811,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Connection\",\n start: 9812,\n end: 9822,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$connection_upgrade\",\n start: 9823,\n end: 9842,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9842,\n end: 9843,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 9857,\n end: 9873,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Host\",\n start: 9874,\n end: 9878,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$host\",\n start: 9879,\n end: 9884,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9884,\n end: 9885,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 9899,\n end: 9915,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 9916,\n end: 9917,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 9917,\n end: 9918,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 9918,\n end: 9922,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 9922,\n end: 9923,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"IP\",\n start: 9923,\n end: 9925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 9926,\n end: 9938,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 9938,\n end: 9939,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 9953,\n end: 9969,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 9970,\n end: 9971,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 9971,\n end: 9972,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 9972,\n end: 9981,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 9981,\n end: 9982,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"For\",\n start: 9982,\n end: 9985,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$proxy_add_x_forwarded_for\",\n start: 9986,\n end: 10012,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10012,\n end: 10013,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 10027,\n end: 10043,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 10044,\n end: 10045,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 10045,\n end: 10046,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 10046,\n end: 10055,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 10055,\n end: 10056,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Proto\",\n start: 10056,\n end: 10061,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$scheme\",\n start: 10062,\n end: 10069,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10069,\n end: 10070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_read_timeout\",\n start: 10098,\n end: 10116,\n },\n TokenData {\n kind: \"Number\",\n text: \"86400\",\n start: 10117,\n end: 10122,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10122,\n end: 10123,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 10133,\n end: 10134,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 10187,\n end: 10195,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 10196,\n end: 10197,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 10198,\n end: 10199,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10199,\n end: 10200,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"php$\",\n start: 10200,\n end: 10204,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 10205,\n end: 10206,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"try_files\",\n start: 10220,\n end: 10229,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 10230,\n end: 10234,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 10235,\n end: 10236,\n },\n TokenData {\n kind: \"Number\",\n text: \"404\",\n start: 10236,\n end: 10239,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10239,\n end: 10240,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_split_path_info\",\n start: 10268,\n end: 10291,\n },\n TokenData {\n kind: \"Error\",\n text: \"^\",\n start: 10292,\n end: 10293,\n },\n TokenData {\n kind: \"Error\",\n text: \"(\",\n start: 10293,\n end: 10294,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10294,\n end: 10295,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 10295,\n end: 10296,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 10296,\n end: 10297,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10297,\n end: 10298,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"php\",\n start: 10298,\n end: 10301,\n },\n TokenData {\n kind: \"Error\",\n text: \")\",\n start: 10301,\n end: 10302,\n },\n TokenData {\n kind: \"Error\",\n text: \"(\",\n start: 10302,\n end: 10303,\n },\n TokenData {\n kind: \"Path\",\n text: \"/.\",\n start: 10303,\n end: 10305,\n },\n TokenData {\n kind: \"Error\",\n text: \"+\",\n start: 10305,\n end: 10306,\n },\n TokenData {\n kind: \"Error\",\n text: \")\",\n start: 10306,\n end: 10307,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$\",\n start: 10307,\n end: 10308,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10308,\n end: 10309,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_pass\",\n start: 10323,\n end: 10335,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"unix\",\n start: 10336,\n end: 10340,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10340,\n end: 10341,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/run/php/php8.1-fpm.sock\",\n start: 10341,\n end: 10369,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10369,\n end: 10370,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_index\",\n start: 10384,\n end: 10397,\n },\n TokenData {\n kind: \"IndexKeyword\",\n text: \"index\",\n start: 10398,\n end: 10403,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10403,\n end: 10404,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"php\",\n start: 10404,\n end: 10407,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10407,\n end: 10408,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"include\",\n start: 10436,\n end: 10443,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_params\",\n start: 10444,\n end: 10458,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10458,\n end: 10459,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_param\",\n start: 10473,\n end: 10486,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"SCRIPT_FILENAME\",\n start: 10487,\n end: 10502,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$document_root$fastcgi_script_name\",\n start: 10503,\n end: 10537,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10537,\n end: 10538,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_param\",\n start: 10552,\n end: 10565,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"PATH_INFO\",\n start: 10566,\n end: 10575,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$fastcgi_path_info\",\n start: 10576,\n end: 10594,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10594,\n end: 10595,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache\",\n start: 10654,\n end: 10667,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache\",\n start: 10668,\n end: 10681,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10681,\n end: 10682,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache_valid\",\n start: 10696,\n end: 10715,\n },\n TokenData {\n kind: \"Number\",\n text: \"200\",\n start: 10716,\n end: 10719,\n },\n TokenData {\n kind: \"Number\",\n text: \"60m\",\n start: 10720,\n end: 10723,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10723,\n end: 10724,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache_methods\",\n start: 10738,\n end: 10759,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"GET\",\n start: 10760,\n end: 10763,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"HEAD\",\n start: 10764,\n end: 10768,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10768,\n end: 10769,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache_key\",\n start: 10783,\n end: 10800,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"$scheme$request_method$host$request_uri\\\"\",\n start: 10801,\n end: 10842,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10842,\n end: 10843,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache_use_stale\",\n start: 10857,\n end: 10880,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error\",\n start: 10881,\n end: 10886,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"timeout\",\n start: 10887,\n end: 10894,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"invalid_header\",\n start: 10895,\n end: 10909,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http_500\",\n start: 10910,\n end: 10918,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 10918,\n end: 10919,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_cache_bypass\",\n start: 10996,\n end: 11016,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$skip_cache\",\n start: 11017,\n end: 11028,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11028,\n end: 11029,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastcgi_no_cache\",\n start: 11043,\n end: 11059,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$skip_cache\",\n start: 11060,\n end: 11071,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11071,\n end: 11072,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 11100,\n end: 11110,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 11111,\n end: 11112,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11112,\n end: 11113,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"FastCGI\",\n start: 11113,\n end: 11120,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11120,\n end: 11121,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Cache\",\n start: 11121,\n end: 11126,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$upstream_cache_status\",\n start: 11127,\n end: 11149,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11149,\n end: 11150,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 11160,\n end: 11161,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 11223,\n end: 11231,\n },\n TokenData {\n kind: \"Path\",\n text: \"/admin/\",\n start: 11232,\n end: 11239,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 11240,\n end: 11241,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auth_basic\",\n start: 11255,\n end: 11265,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"Admin Area\\\"\",\n start: 11266,\n end: 11278,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11278,\n end: 11279,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auth_basic_user_file\",\n start: 11293,\n end: 11313,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/nginx/.htpasswd\",\n start: 11314,\n end: 11334,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11334,\n end: 11335,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"allow\",\n start: 11391,\n end: 11396,\n },\n TokenData {\n kind: \"Number\",\n text: \"192.168\",\n start: 11397,\n end: 11404,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 11404,\n end: 11405,\n },\n TokenData {\n kind: \"Number\",\n text: \"1.0\",\n start: 11405,\n end: 11408,\n },\n TokenData {\n kind: \"Path\",\n text: \"/24\",\n start: 11408,\n end: 11411,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11411,\n end: 11412,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"allow\",\n start: 11426,\n end: 11431,\n },\n TokenData {\n kind: \"Number\",\n text: \"10.0\",\n start: 11432,\n end: 11436,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 11436,\n end: 11437,\n },\n TokenData {\n kind: \"Number\",\n text: \"0.0\",\n start: 11437,\n end: 11440,\n },\n TokenData {\n kind: \"Path\",\n text: \"/8\",\n start: 11440,\n end: 11442,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11442,\n end: 11443,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"deny\",\n start: 11457,\n end: 11461,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"all\",\n start: 11462,\n end: 11465,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11465,\n end: 11466,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"try_files\",\n start: 11494,\n end: 11503,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 11504,\n end: 11508,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 11509,\n end: 11513,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 11513,\n end: 11514,\n },\n TokenData {\n kind: \"Path\",\n text: \"/admin/index.php\",\n start: 11515,\n end: 11531,\n },\n TokenData {\n kind: \"Error\",\n text: \"?\",\n start: 11531,\n end: 11532,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$query_string\",\n start: 11532,\n end: 11545,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11545,\n end: 11546,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 11556,\n end: 11557,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 11629,\n end: 11637,\n },\n TokenData {\n kind: \"Path\",\n text: \"/login\",\n start: 11638,\n end: 11644,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 11645,\n end: 11646,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req\",\n start: 11660,\n end: 11669,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 11670,\n end: 11674,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 11674,\n end: 11675,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"login\",\n start: 11675,\n end: 11680,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"burst\",\n start: 11681,\n end: 11686,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 11686,\n end: 11687,\n },\n TokenData {\n kind: \"Number\",\n text: \"5\",\n start: 11687,\n end: 11688,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nodelay\",\n start: 11689,\n end: 11696,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11696,\n end: 11697,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 11725,\n end: 11735,\n },\n TokenData {\n kind: \"Url\",\n text: \"http://backend\",\n start: 11736,\n end: 11750,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11750,\n end: 11751,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 11765,\n end: 11781,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Host\",\n start: 11782,\n end: 11786,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$host\",\n start: 11787,\n end: 11792,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11792,\n end: 11793,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 11807,\n end: 11823,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 11824,\n end: 11825,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11825,\n end: 11826,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 11826,\n end: 11830,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11830,\n end: 11831,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"IP\",\n start: 11831,\n end: 11833,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 11834,\n end: 11846,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11846,\n end: 11847,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 11861,\n end: 11877,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 11878,\n end: 11879,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11879,\n end: 11880,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 11880,\n end: 11889,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11889,\n end: 11890,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"For\",\n start: 11890,\n end: 11893,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$proxy_add_x_forwarded_for\",\n start: 11894,\n end: 11920,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11920,\n end: 11921,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 11935,\n end: 11951,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 11952,\n end: 11953,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11953,\n end: 11954,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 11954,\n end: 11963,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 11963,\n end: 11964,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Proto\",\n start: 11964,\n end: 11969,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$scheme\",\n start: 11970,\n end: 11977,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 11977,\n end: 11978,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 11988,\n end: 11989,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 12041,\n end: 12049,\n },\n TokenData {\n kind: \"Path\",\n text: \"/upload\",\n start: 12050,\n end: 12057,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 12058,\n end: 12059,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_max_body_size\",\n start: 12073,\n end: 12093,\n },\n TokenData {\n kind: \"Number\",\n text: \"500M\",\n start: 12094,\n end: 12098,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12098,\n end: 12099,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"client_body_timeout\",\n start: 12113,\n end: 12132,\n },\n TokenData {\n kind: \"Number\",\n text: \"300s\",\n start: 12133,\n end: 12137,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12137,\n end: 12138,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 12166,\n end: 12176,\n },\n TokenData {\n kind: \"Url\",\n text: \"http://backend\",\n start: 12177,\n end: 12191,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12191,\n end: 12192,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 12206,\n end: 12222,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Host\",\n start: 12223,\n end: 12227,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$host\",\n start: 12228,\n end: 12233,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12233,\n end: 12234,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 12248,\n end: 12264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 12265,\n end: 12266,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12266,\n end: 12267,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 12267,\n end: 12271,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12271,\n end: 12272,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"IP\",\n start: 12272,\n end: 12274,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 12275,\n end: 12287,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12287,\n end: 12288,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 12302,\n end: 12318,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 12319,\n end: 12320,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12320,\n end: 12321,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 12321,\n end: 12330,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12330,\n end: 12331,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"For\",\n start: 12331,\n end: 12334,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$proxy_add_x_forwarded_for\",\n start: 12335,\n end: 12361,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12361,\n end: 12362,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 12376,\n end: 12392,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 12393,\n end: 12394,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12394,\n end: 12395,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 12395,\n end: 12404,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12404,\n end: 12405,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Proto\",\n start: 12405,\n end: 12410,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$scheme\",\n start: 12411,\n end: 12418,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12418,\n end: 12419,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_request_buffering\",\n start: 12447,\n end: 12470,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 12471,\n end: 12474,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12474,\n end: 12475,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_read_timeout\",\n start: 12489,\n end: 12507,\n },\n TokenData {\n kind: \"Number\",\n text: \"300s\",\n start: 12508,\n end: 12512,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12512,\n end: 12513,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_send_timeout\",\n start: 12527,\n end: 12545,\n },\n TokenData {\n kind: \"Number\",\n text: \"300s\",\n start: 12546,\n end: 12550,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12550,\n end: 12551,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 12561,\n end: 12562,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 12635,\n end: 12643,\n },\n TokenData {\n kind: \"Path\",\n text: \"/static/\",\n start: 12644,\n end: 12652,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 12653,\n end: 12654,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"alias\",\n start: 12668,\n end: 12673,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/www/static/\",\n start: 12674,\n end: 12690,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12690,\n end: 12691,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"expires\",\n start: 12748,\n end: 12755,\n },\n TokenData {\n kind: \"Number\",\n text: \"1y\",\n start: 12756,\n end: 12758,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12758,\n end: 12759,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 12773,\n end: 12783,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Cache\",\n start: 12784,\n end: 12789,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12789,\n end: 12790,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 12790,\n end: 12797,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"public, immutable\\\"\",\n start: 12798,\n end: 12817,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12817,\n end: 12818,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gzip_static\",\n start: 12873,\n end: 12884,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 12885,\n end: 12887,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12887,\n end: 12888,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 12940,\n end: 12950,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 12951,\n end: 12952,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12952,\n end: 12953,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 12953,\n end: 12960,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12960,\n end: 12961,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 12961,\n end: 12965,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 12965,\n end: 12966,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Options\",\n start: 12966,\n end: 12973,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nosniff\",\n start: 12974,\n end: 12981,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12981,\n end: 12982,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 13061,\n end: 13071,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 13072,\n end: 13075,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13075,\n end: 13076,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"try_files\",\n start: 13140,\n end: 13149,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 13150,\n end: 13154,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$uri\",\n start: 13155,\n end: 13159,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 13159,\n end: 13160,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 13161,\n end: 13162,\n },\n TokenData {\n kind: \"Number\",\n text: \"404\",\n start: 13162,\n end: 13165,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13165,\n end: 13166,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 13176,\n end: 13177,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 13242,\n end: 13250,\n },\n TokenData {\n kind: \"Path\",\n text: \"/downloads/\",\n start: 13251,\n end: 13262,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 13263,\n end: 13264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"alias\",\n start: 13278,\n end: 13283,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/www/downloads/\",\n start: 13284,\n end: 13303,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13303,\n end: 13304,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_rate\",\n start: 13366,\n end: 13376,\n },\n TokenData {\n kind: \"Number\",\n text: \"1m\",\n start: 13377,\n end: 13379,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13379,\n end: 13380,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_rate_after\",\n start: 13394,\n end: 13410,\n },\n TokenData {\n kind: \"Number\",\n text: \"10m\",\n start: 13411,\n end: 13414,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13414,\n end: 13415,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 13475,\n end: 13485,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 13486,\n end: 13493,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 13493,\n end: 13494,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Disposition\",\n start: 13494,\n end: 13505,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"attachment\\\"\",\n start: 13506,\n end: 13518,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13518,\n end: 13519,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 13533,\n end: 13543,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 13544,\n end: 13545,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 13545,\n end: 13546,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 13546,\n end: 13553,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 13553,\n end: 13554,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 13554,\n end: 13558,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 13558,\n end: 13559,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Options\",\n start: 13559,\n end: 13566,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nosniff\",\n start: 13567,\n end: 13574,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13574,\n end: 13575,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"valid_referers\",\n start: 13633,\n end: 13647,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"none\",\n start: 13648,\n end: 13652,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"blocked\",\n start: 13653,\n end: 13660,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"server_names\",\n start: 13661,\n end: 13673,\n },\n TokenData {\n kind: \"Error\",\n text: \"*\",\n start: 13674,\n end: 13675,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13675,\n end: 13676,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 13676,\n end: 13683,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13683,\n end: 13684,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 13684,\n end: 13687,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13687,\n end: 13688,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"if\",\n start: 13702,\n end: 13704,\n },\n TokenData {\n kind: \"Error\",\n text: \"(\",\n start: 13705,\n end: 13706,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$invalid_referer\",\n start: 13706,\n end: 13722,\n },\n TokenData {\n kind: \"Error\",\n text: \")\",\n start: 13722,\n end: 13723,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 13724,\n end: 13725,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"return\",\n start: 13743,\n end: 13749,\n },\n TokenData {\n kind: \"Number\",\n text: \"403\",\n start: 13750,\n end: 13753,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13753,\n end: 13754,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 13768,\n end: 13769,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 13779,\n end: 13780,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 13842,\n end: 13850,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 13851,\n end: 13852,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 13853,\n end: 13854,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 13854,\n end: 13855,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13855,\n end: 13856,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 13857,\n end: 13858,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"deny\",\n start: 13872,\n end: 13876,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"all\",\n start: 13877,\n end: 13880,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13880,\n end: 13881,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 13895,\n end: 13905,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 13906,\n end: 13909,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13909,\n end: 13910,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_not_found\",\n start: 13924,\n end: 13937,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 13938,\n end: 13941,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13941,\n end: 13942,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 13952,\n end: 13953,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 13973,\n end: 13981,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 13982,\n end: 13983,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 13984,\n end: 13985,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$\",\n start: 13985,\n end: 13986,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 13987,\n end: 13988,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"deny\",\n start: 14002,\n end: 14006,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"all\",\n start: 14007,\n end: 14010,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14010,\n end: 14011,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 14025,\n end: 14035,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 14036,\n end: 14039,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14039,\n end: 14040,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_not_found\",\n start: 14054,\n end: 14067,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 14068,\n end: 14071,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14071,\n end: 14072,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 14082,\n end: 14083,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 14103,\n end: 14111,\n },\n TokenData {\n kind: \"Error\",\n text: \"~\",\n start: 14112,\n end: 14113,\n },\n TokenData {\n kind: \"Error\",\n text: \"*\",\n start: 14113,\n end: 14114,\n },\n TokenData {\n kind: \"Error\",\n text: \"\\\\\",\n start: 14115,\n end: 14116,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 14116,\n end: 14117,\n },\n TokenData {\n kind: \"Error\",\n text: \"(\",\n start: 14117,\n end: 14118,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"sql\",\n start: 14118,\n end: 14121,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 14121,\n end: 14122,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bak\",\n start: 14122,\n end: 14125,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 14125,\n end: 14126,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backup\",\n start: 14126,\n end: 14132,\n },\n TokenData {\n kind: \"Error\",\n text: \"|\",\n start: 14132,\n end: 14133,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log\",\n start: 14133,\n end: 14136,\n },\n TokenData {\n kind: \"Error\",\n text: \")\",\n start: 14136,\n end: 14137,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$\",\n start: 14137,\n end: 14138,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 14139,\n end: 14140,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"deny\",\n start: 14154,\n end: 14158,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"all\",\n start: 14159,\n end: 14162,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14162,\n end: 14163,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 14177,\n end: 14187,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 14188,\n end: 14191,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14191,\n end: 14192,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_not_found\",\n start: 14206,\n end: 14219,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 14220,\n end: 14223,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14223,\n end: 14224,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 14234,\n end: 14235,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 14284,\n end: 14292,\n },\n TokenData {\n kind: \"Error\",\n text: \"@\",\n start: 14293,\n end: 14294,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fallback\",\n start: 14294,\n end: 14302,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 14303,\n end: 14304,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 14318,\n end: 14328,\n },\n TokenData {\n kind: \"Url\",\n text: \"http://backend\",\n start: 14329,\n end: 14343,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14343,\n end: 14344,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 14358,\n end: 14374,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Host\",\n start: 14375,\n end: 14379,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$host\",\n start: 14380,\n end: 14385,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14385,\n end: 14386,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 14400,\n end: 14416,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 14417,\n end: 14418,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14418,\n end: 14419,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 14419,\n end: 14423,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14423,\n end: 14424,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"IP\",\n start: 14424,\n end: 14426,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 14427,\n end: 14439,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14439,\n end: 14440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 14454,\n end: 14470,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 14471,\n end: 14472,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14472,\n end: 14473,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 14473,\n end: 14482,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14482,\n end: 14483,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"For\",\n start: 14483,\n end: 14486,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$proxy_add_x_forwarded_for\",\n start: 14487,\n end: 14513,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14513,\n end: 14514,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 14528,\n end: 14544,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 14545,\n end: 14546,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14546,\n end: 14547,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 14547,\n end: 14556,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14556,\n end: 14557,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Proto\",\n start: 14557,\n end: 14562,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$scheme\",\n start: 14563,\n end: 14570,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14570,\n end: 14571,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 14581,\n end: 14582,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 14588,\n end: 14589,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 14624,\n end: 14630,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 14631,\n end: 14632,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 14642,\n end: 14648,\n },\n TokenData {\n kind: \"Number\",\n text: \"443\",\n start: 14649,\n end: 14652,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 14653,\n end: 14656,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http2\",\n start: 14657,\n end: 14662,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14662,\n end: 14663,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 14673,\n end: 14679,\n },\n TokenData {\n kind: \"Error\",\n text: \"[\",\n start: 14680,\n end: 14681,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 14681,\n end: 14682,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 14682,\n end: 14683,\n },\n TokenData {\n kind: \"Error\",\n text: \"]\",\n start: 14683,\n end: 14684,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 14684,\n end: 14685,\n },\n TokenData {\n kind: \"Number\",\n text: \"443\",\n start: 14685,\n end: 14688,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 14689,\n end: 14692,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"http2\",\n start: 14693,\n end: 14698,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14698,\n end: 14699,\n },\n TokenData {\n kind: \"ServerNameKeyword\",\n text: \"server_name\",\n start: 14709,\n end: 14720,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api\",\n start: 14721,\n end: 14724,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 14724,\n end: 14725,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 14725,\n end: 14732,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 14732,\n end: 14733,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 14733,\n end: 14736,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14736,\n end: 14737,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate\",\n start: 14757,\n end: 14772,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/certs/api.example.com.crt\",\n start: 14773,\n end: 14807,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14807,\n end: 14808,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate_key\",\n start: 14818,\n end: 14837,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/private/api.example.com.key\",\n start: 14838,\n end: 14874,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14874,\n end: 14875,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 14919,\n end: 14929,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 14930,\n end: 14936,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14936,\n end: 14937,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 14937,\n end: 14944,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14944,\n end: 14945,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Allow\",\n start: 14945,\n end: 14950,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14950,\n end: 14951,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Origin\",\n start: 14951,\n end: 14957,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"*\\\"\",\n start: 14958,\n end: 14961,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 14962,\n end: 14968,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14968,\n end: 14969,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 14979,\n end: 14989,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 14990,\n end: 14996,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 14996,\n end: 14997,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 14997,\n end: 15004,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15004,\n end: 15005,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Allow\",\n start: 15005,\n end: 15010,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15010,\n end: 15011,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Methods\",\n start: 15011,\n end: 15018,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"GET, POST, PUT, DELETE, OPTIONS\\\"\",\n start: 15019,\n end: 15052,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 15053,\n end: 15059,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15059,\n end: 15060,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15070,\n end: 15080,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 15081,\n end: 15087,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15087,\n end: 15088,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 15088,\n end: 15095,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15095,\n end: 15096,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Allow\",\n start: 15096,\n end: 15101,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15101,\n end: 15102,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Headers\",\n start: 15102,\n end: 15109,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization\\\"\",\n start: 15110,\n end: 15208,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 15209,\n end: 15215,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15215,\n end: 15216,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15226,\n end: 15236,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 15237,\n end: 15243,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15243,\n end: 15244,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 15244,\n end: 15251,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15251,\n end: 15252,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Expose\",\n start: 15252,\n end: 15258,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15258,\n end: 15259,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Headers\",\n start: 15259,\n end: 15266,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"Content-Length,Content-Range\\\"\",\n start: 15267,\n end: 15297,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"always\",\n start: 15298,\n end: 15304,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15304,\n end: 15305,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"if\",\n start: 15362,\n end: 15364,\n },\n TokenData {\n kind: \"Error\",\n text: \"(\",\n start: 15365,\n end: 15366,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$request_method\",\n start: 15366,\n end: 15381,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 15382,\n end: 15383,\n },\n TokenData {\n kind: \"String\",\n text: \"'OPTIONS'\",\n start: 15384,\n end: 15393,\n },\n TokenData {\n kind: \"Error\",\n text: \")\",\n start: 15393,\n end: 15394,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 15395,\n end: 15396,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15410,\n end: 15420,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 15421,\n end: 15427,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15427,\n end: 15428,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 15428,\n end: 15435,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15435,\n end: 15436,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Allow\",\n start: 15436,\n end: 15441,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15441,\n end: 15442,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Origin\",\n start: 15442,\n end: 15448,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"*\\\"\",\n start: 15449,\n end: 15452,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15452,\n end: 15453,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15467,\n end: 15477,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 15478,\n end: 15484,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15484,\n end: 15485,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 15485,\n end: 15492,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15492,\n end: 15493,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Allow\",\n start: 15493,\n end: 15498,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15498,\n end: 15499,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Methods\",\n start: 15499,\n end: 15506,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"GET, POST, PUT, DELETE, OPTIONS\\\"\",\n start: 15507,\n end: 15540,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15540,\n end: 15541,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15555,\n end: 15565,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 15566,\n end: 15572,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15572,\n end: 15573,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 15573,\n end: 15580,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15580,\n end: 15581,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Allow\",\n start: 15581,\n end: 15586,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15586,\n end: 15587,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Headers\",\n start: 15587,\n end: 15594,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization\\\"\",\n start: 15595,\n end: 15693,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15693,\n end: 15694,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15708,\n end: 15718,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Access\",\n start: 15719,\n end: 15725,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15725,\n end: 15726,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Control\",\n start: 15726,\n end: 15733,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15733,\n end: 15734,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Max\",\n start: 15734,\n end: 15737,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15737,\n end: 15738,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Age\",\n start: 15738,\n end: 15741,\n },\n TokenData {\n kind: \"Number\",\n text: \"1728000\",\n start: 15742,\n end: 15749,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15749,\n end: 15750,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15764,\n end: 15774,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 15775,\n end: 15782,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15782,\n end: 15783,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 15783,\n end: 15787,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"text/plain; charset=utf-8\\\"\",\n start: 15788,\n end: 15815,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15815,\n end: 15816,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 15830,\n end: 15840,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 15841,\n end: 15848,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 15848,\n end: 15849,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Length\",\n start: 15849,\n end: 15855,\n },\n TokenData {\n kind: \"Number\",\n text: \"0\",\n start: 15856,\n end: 15857,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15857,\n end: 15858,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"return\",\n start: 15872,\n end: 15878,\n },\n TokenData {\n kind: \"Number\",\n text: \"204\",\n start: 15879,\n end: 15882,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15882,\n end: 15883,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 15893,\n end: 15894,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 15914,\n end: 15922,\n },\n TokenData {\n kind: \"Path\",\n text: \"/\",\n start: 15923,\n end: 15924,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 15925,\n end: 15926,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"limit_req\",\n start: 15940,\n end: 15949,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zone\",\n start: 15950,\n end: 15954,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 15954,\n end: 15955,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"api\",\n start: 15955,\n end: 15958,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"burst\",\n start: 15959,\n end: 15964,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 15964,\n end: 15965,\n },\n TokenData {\n kind: \"Number\",\n text: \"100\",\n start: 15965,\n end: 15968,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nodelay\",\n start: 15969,\n end: 15976,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15976,\n end: 15977,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 16005,\n end: 16015,\n },\n TokenData {\n kind: \"Url\",\n text: \"http://api_backend\",\n start: 16016,\n end: 16034,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16034,\n end: 16035,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 16049,\n end: 16065,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Host\",\n start: 16066,\n end: 16070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$host\",\n start: 16071,\n end: 16076,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16076,\n end: 16077,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 16091,\n end: 16107,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 16108,\n end: 16109,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16109,\n end: 16110,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 16110,\n end: 16114,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16114,\n end: 16115,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"IP\",\n start: 16115,\n end: 16117,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$remote_addr\",\n start: 16118,\n end: 16130,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16130,\n end: 16131,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 16145,\n end: 16161,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 16162,\n end: 16163,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16163,\n end: 16164,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 16164,\n end: 16173,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16173,\n end: 16174,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"For\",\n start: 16174,\n end: 16177,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$proxy_add_x_forwarded_for\",\n start: 16178,\n end: 16204,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16204,\n end: 16205,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_set_header\",\n start: 16219,\n end: 16235,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 16236,\n end: 16237,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16237,\n end: 16238,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Forwarded\",\n start: 16238,\n end: 16247,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16247,\n end: 16248,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Proto\",\n start: 16248,\n end: 16253,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$scheme\",\n start: 16254,\n end: 16261,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16261,\n end: 16262,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache\",\n start: 16326,\n end: 16337,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"my_cache\",\n start: 16338,\n end: 16346,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16346,\n end: 16347,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_valid\",\n start: 16361,\n end: 16378,\n },\n TokenData {\n kind: \"Number\",\n text: \"200\",\n start: 16379,\n end: 16382,\n },\n TokenData {\n kind: \"Number\",\n text: \"5m\",\n start: 16383,\n end: 16385,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16385,\n end: 16386,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_valid\",\n start: 16400,\n end: 16417,\n },\n TokenData {\n kind: \"Number\",\n text: \"404\",\n start: 16418,\n end: 16421,\n },\n TokenData {\n kind: \"Number\",\n text: \"1m\",\n start: 16422,\n end: 16424,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16424,\n end: 16425,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_cache_key\",\n start: 16439,\n end: 16454,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"$scheme$request_method$host$request_uri$http_authorization\\\"\",\n start: 16455,\n end: 16515,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16515,\n end: 16516,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 16544,\n end: 16554,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"X\",\n start: 16555,\n end: 16556,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16556,\n end: 16557,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Cache\",\n start: 16557,\n end: 16562,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 16562,\n end: 16563,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Status\",\n start: 16563,\n end: 16569,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"$upstream_cache_status\",\n start: 16570,\n end: 16592,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16592,\n end: 16593,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 16603,\n end: 16604,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 16610,\n end: 16611,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 16656,\n end: 16662,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 16663,\n end: 16664,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 16674,\n end: 16680,\n },\n TokenData {\n kind: \"Number\",\n text: \"8080\",\n start: 16681,\n end: 16685,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16685,\n end: 16686,\n },\n TokenData {\n kind: \"ServerNameKeyword\",\n text: \"server_name\",\n start: 16696,\n end: 16707,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"localhost\",\n start: 16708,\n end: 16717,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16717,\n end: 16718,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 16738,\n end: 16746,\n },\n TokenData {\n kind: \"Path\",\n text: \"/nginx_status\",\n start: 16747,\n end: 16760,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 16761,\n end: 16762,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"stub_status\",\n start: 16776,\n end: 16787,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 16788,\n end: 16790,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16790,\n end: 16791,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 16805,\n end: 16815,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 16816,\n end: 16819,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16819,\n end: 16820,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"allow\",\n start: 16848,\n end: 16853,\n },\n TokenData {\n kind: \"Number\",\n text: \"127.0\",\n start: 16854,\n end: 16859,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 16859,\n end: 16860,\n },\n TokenData {\n kind: \"Number\",\n text: \"0.1\",\n start: 16860,\n end: 16863,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16863,\n end: 16864,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"allow\",\n start: 16878,\n end: 16883,\n },\n TokenData {\n kind: \"Number\",\n text: \"192.168\",\n start: 16884,\n end: 16891,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 16891,\n end: 16892,\n },\n TokenData {\n kind: \"Number\",\n text: \"1.0\",\n start: 16892,\n end: 16895,\n },\n TokenData {\n kind: \"Path\",\n text: \"/24\",\n start: 16895,\n end: 16898,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16898,\n end: 16899,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"deny\",\n start: 16913,\n end: 16917,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"all\",\n start: 16918,\n end: 16921,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16921,\n end: 16922,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 16932,\n end: 16933,\n },\n TokenData {\n kind: \"LocationKeyword\",\n text: \"location\",\n start: 16953,\n end: 16961,\n },\n TokenData {\n kind: \"Path\",\n text: \"/health\",\n start: 16962,\n end: 16969,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 16970,\n end: 16971,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 16985,\n end: 16995,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"off\",\n start: 16996,\n end: 16999,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 16999,\n end: 17000,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"return\",\n start: 17014,\n end: 17020,\n },\n TokenData {\n kind: \"Number\",\n text: \"200\",\n start: 17021,\n end: 17024,\n },\n TokenData {\n kind: \"String\",\n text: \"\\\"healthy\\\\n\\\"\",\n start: 17025,\n end: 17036,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17036,\n end: 17037,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_header\",\n start: 17051,\n end: 17061,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Content\",\n start: 17062,\n end: 17069,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\n start: 17069,\n end: 17070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 17070,\n end: 17074,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"text\",\n start: 17075,\n end: 17079,\n },\n TokenData {\n kind: \"Path\",\n text: \"/plain\",\n start: 17079,\n end: 17085,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17085,\n end: 17086,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 17096,\n end: 17097,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 17103,\n end: 17104,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"include\",\n start: 17164,\n end: 17171,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/nginx/conf.d/*.conf\",\n start: 17172,\n end: 17196,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17196,\n end: 17197,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"include\",\n start: 17203,\n end: 17210,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/nginx/sites-enabled/*\",\n start: 17211,\n end: 17237,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17237,\n end: 17238,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 17240,\n end: 17241,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"stream\",\n start: 17290,\n end: 17296,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 17297,\n end: 17298,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"log_format\",\n start: 17319,\n end: 17329,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"basic\",\n start: 17330,\n end: 17335,\n },\n TokenData {\n kind: \"String\",\n text: \"'$remote_addr [$time_local] '\",\n start: 17336,\n end: 17365,\n },\n TokenData {\n kind: \"String\",\n text: \"'$protocol $status $bytes_sent $bytes_received '\",\n start: 17388,\n end: 17436,\n },\n TokenData {\n kind: \"String\",\n text: \"'$session_time'\",\n start: 17459,\n end: 17474,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17474,\n end: 17475,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"access_log\",\n start: 17487,\n end: 17497,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/stream.log\",\n start: 17498,\n end: 17523,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"basic\",\n start: 17524,\n end: 17529,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17529,\n end: 17530,\n },\n TokenData {\n kind: \"UpstreamKeyword\",\n text: \"upstream\",\n start: 17583,\n end: 17591,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"database\",\n start: 17592,\n end: 17600,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 17601,\n end: 17602,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 17612,\n end: 17618,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"db1\",\n start: 17619,\n end: 17622,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17622,\n end: 17623,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 17623,\n end: 17630,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17630,\n end: 17631,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 17631,\n end: 17634,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 17634,\n end: 17635,\n },\n TokenData {\n kind: \"Number\",\n text: \"5432\",\n start: 17635,\n end: 17639,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"weight\",\n start: 17640,\n end: 17646,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 17646,\n end: 17647,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 17647,\n end: 17648,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_fails\",\n start: 17649,\n end: 17658,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 17658,\n end: 17659,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 17659,\n end: 17660,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fail_timeout\",\n start: 17661,\n end: 17673,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 17673,\n end: 17674,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 17674,\n end: 17677,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17677,\n end: 17678,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 17688,\n end: 17694,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"db2\",\n start: 17695,\n end: 17698,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17698,\n end: 17699,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 17699,\n end: 17706,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17706,\n end: 17707,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 17707,\n end: 17710,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 17710,\n end: 17711,\n },\n TokenData {\n kind: \"Number\",\n text: \"5432\",\n start: 17711,\n end: 17715,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"weight\",\n start: 17716,\n end: 17722,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 17722,\n end: 17723,\n },\n TokenData {\n kind: \"Number\",\n text: \"2\",\n start: 17723,\n end: 17724,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max_fails\",\n start: 17725,\n end: 17734,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 17734,\n end: 17735,\n },\n TokenData {\n kind: \"Number\",\n text: \"3\",\n start: 17735,\n end: 17736,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fail_timeout\",\n start: 17737,\n end: 17749,\n },\n TokenData {\n kind: \"Error\",\n text: \"=\",\n start: 17749,\n end: 17750,\n },\n TokenData {\n kind: \"Number\",\n text: \"30s\",\n start: 17750,\n end: 17753,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17753,\n end: 17754,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 17764,\n end: 17770,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"db3\",\n start: 17771,\n end: 17774,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17774,\n end: 17775,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 17775,\n end: 17782,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17782,\n end: 17783,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 17783,\n end: 17786,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 17786,\n end: 17787,\n },\n TokenData {\n kind: \"Number\",\n text: \"5432\",\n start: 17787,\n end: 17791,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backup\",\n start: 17792,\n end: 17798,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17798,\n end: 17799,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 17805,\n end: 17806,\n },\n TokenData {\n kind: \"UpstreamKeyword\",\n text: \"upstream\",\n start: 17844,\n end: 17852,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"redis_cluster\",\n start: 17853,\n end: 17866,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 17867,\n end: 17868,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 17878,\n end: 17884,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"redis1\",\n start: 17885,\n end: 17891,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17891,\n end: 17892,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 17892,\n end: 17899,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17899,\n end: 17900,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 17900,\n end: 17903,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 17903,\n end: 17904,\n },\n TokenData {\n kind: \"Number\",\n text: \"6379\",\n start: 17904,\n end: 17908,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17908,\n end: 17909,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 17919,\n end: 17925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"redis2\",\n start: 17926,\n end: 17932,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17932,\n end: 17933,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 17933,\n end: 17940,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17940,\n end: 17941,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 17941,\n end: 17944,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 17944,\n end: 17945,\n },\n TokenData {\n kind: \"Number\",\n text: \"6379\",\n start: 17945,\n end: 17949,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17949,\n end: 17950,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 17960,\n end: 17966,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"redis3\",\n start: 17967,\n end: 17973,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17973,\n end: 17974,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 17974,\n end: 17981,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 17981,\n end: 17982,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 17982,\n end: 17985,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 17985,\n end: 17986,\n },\n TokenData {\n kind: \"Number\",\n text: \"6379\",\n start: 17986,\n end: 17990,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 17990,\n end: 17991,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 17997,\n end: 17998,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18040,\n end: 18046,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 18047,\n end: 18048,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 18058,\n end: 18064,\n },\n TokenData {\n kind: \"Number\",\n text: \"5432\",\n start: 18065,\n end: 18069,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18069,\n end: 18070,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 18080,\n end: 18090,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"database\",\n start: 18091,\n end: 18099,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18099,\n end: 18100,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_timeout\",\n start: 18110,\n end: 18123,\n },\n TokenData {\n kind: \"Number\",\n text: \"1s\",\n start: 18124,\n end: 18126,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18126,\n end: 18127,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_responses\",\n start: 18137,\n end: 18152,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 18153,\n end: 18154,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18154,\n end: 18155,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_connect_timeout\",\n start: 18165,\n end: 18186,\n },\n TokenData {\n kind: \"Number\",\n text: \"1s\",\n start: 18187,\n end: 18189,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18189,\n end: 18190,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 18196,\n end: 18197,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18236,\n end: 18242,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 18243,\n end: 18244,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 18254,\n end: 18260,\n },\n TokenData {\n kind: \"Number\",\n text: \"6379\",\n start: 18261,\n end: 18265,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18265,\n end: 18266,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 18276,\n end: 18286,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"redis_cluster\",\n start: 18287,\n end: 18300,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18300,\n end: 18301,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_timeout\",\n start: 18311,\n end: 18324,\n },\n TokenData {\n kind: \"Number\",\n text: \"3s\",\n start: 18325,\n end: 18327,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18327,\n end: 18328,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_responses\",\n start: 18338,\n end: 18353,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 18354,\n end: 18355,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18355,\n end: 18356,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 18362,\n end: 18363,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18400,\n end: 18406,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 18407,\n end: 18408,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 18418,\n end: 18424,\n },\n TokenData {\n kind: \"Number\",\n text: \"2222\",\n start: 18425,\n end: 18429,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18429,\n end: 18430,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 18440,\n end: 18450,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"backend\",\n start: 18451,\n end: 18458,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18458,\n end: 18459,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_timeout\",\n start: 18469,\n end: 18482,\n },\n TokenData {\n kind: \"Number\",\n text: \"1s\",\n start: 18483,\n end: 18485,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18485,\n end: 18486,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_responses\",\n start: 18496,\n end: 18511,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 18512,\n end: 18513,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18513,\n end: 18514,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 18520,\n end: 18521,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18564,\n end: 18570,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 18571,\n end: 18572,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 18582,\n end: 18588,\n },\n TokenData {\n kind: \"Number\",\n text: \"53\",\n start: 18589,\n end: 18591,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"udp\",\n start: 18592,\n end: 18595,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18595,\n end: 18596,\n },\n TokenData {\n kind: \"ProxyPassKeyword\",\n text: \"proxy_pass\",\n start: 18606,\n end: 18616,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"dns_servers\",\n start: 18617,\n end: 18628,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18628,\n end: 18629,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_timeout\",\n start: 18639,\n end: 18652,\n },\n TokenData {\n kind: \"Number\",\n text: \"1s\",\n start: 18653,\n end: 18655,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18655,\n end: 18656,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_responses\",\n start: 18666,\n end: 18681,\n },\n TokenData {\n kind: \"Number\",\n text: \"1\",\n start: 18682,\n end: 18683,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18683,\n end: 18684,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"error_log\",\n start: 18694,\n end: 18703,\n },\n TokenData {\n kind: \"Path\",\n text: \"/var/log/nginx/dns.log\",\n start: 18704,\n end: 18726,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18726,\n end: 18727,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 18733,\n end: 18734,\n },\n TokenData {\n kind: \"UpstreamKeyword\",\n text: \"upstream\",\n start: 18746,\n end: 18754,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"dns_servers\",\n start: 18755,\n end: 18766,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 18767,\n end: 18768,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18778,\n end: 18784,\n },\n TokenData {\n kind: \"Number\",\n text: \"8.8\",\n start: 18785,\n end: 18788,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 18788,\n end: 18789,\n },\n TokenData {\n kind: \"Number\",\n text: \"8.8\",\n start: 18789,\n end: 18792,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 18792,\n end: 18793,\n },\n TokenData {\n kind: \"Number\",\n text: \"53\",\n start: 18793,\n end: 18795,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18795,\n end: 18796,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18806,\n end: 18812,\n },\n TokenData {\n kind: \"Number\",\n text: \"8.8\",\n start: 18813,\n end: 18816,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 18816,\n end: 18817,\n },\n TokenData {\n kind: \"Number\",\n text: \"4.4\",\n start: 18817,\n end: 18820,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 18820,\n end: 18821,\n },\n TokenData {\n kind: \"Number\",\n text: \"53\",\n start: 18821,\n end: 18823,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18823,\n end: 18824,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 18834,\n end: 18840,\n },\n TokenData {\n kind: \"Number\",\n text: \"1.1\",\n start: 18841,\n end: 18844,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 18844,\n end: 18845,\n },\n TokenData {\n kind: \"Number\",\n text: \"1.1\",\n start: 18845,\n end: 18848,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 18848,\n end: 18849,\n },\n TokenData {\n kind: \"Number\",\n text: \"53\",\n start: 18849,\n end: 18851,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18851,\n end: 18852,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 18858,\n end: 18859,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 18861,\n end: 18862,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mail\",\n start: 18888,\n end: 18892,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 18893,\n end: 18894,\n },\n TokenData {\n kind: \"ServerNameKeyword\",\n text: \"server_name\",\n start: 18900,\n end: 18911,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mail\",\n start: 18912,\n end: 18916,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 18916,\n end: 18917,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"example\",\n start: 18917,\n end: 18924,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 18924,\n end: 18925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"com\",\n start: 18925,\n end: 18928,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18928,\n end: 18929,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"auth_http\",\n start: 18935,\n end: 18944,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"localhost\",\n start: 18945,\n end: 18954,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 18954,\n end: 18955,\n },\n TokenData {\n kind: \"Number\",\n text: \"9000\",\n start: 18955,\n end: 18959,\n },\n TokenData {\n kind: \"Path\",\n text: \"/cgi-bin/auth\",\n start: 18959,\n end: 18972,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 18972,\n end: 18973,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy_pass_error_message\",\n start: 18985,\n end: 19009,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19010,\n end: 19012,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19012,\n end: 19013,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 19043,\n end: 19049,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 19050,\n end: 19051,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 19061,\n end: 19067,\n },\n TokenData {\n kind: \"Number\",\n text: \"143\",\n start: 19068,\n end: 19071,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19071,\n end: 19072,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"protocol\",\n start: 19082,\n end: 19090,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"imap\",\n start: 19091,\n end: 19095,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19095,\n end: 19096,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy\",\n start: 19106,\n end: 19111,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19112,\n end: 19114,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19114,\n end: 19115,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 19121,\n end: 19122,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 19152,\n end: 19158,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 19159,\n end: 19160,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 19170,\n end: 19176,\n },\n TokenData {\n kind: \"Number\",\n text: \"110\",\n start: 19177,\n end: 19180,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19180,\n end: 19181,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"protocol\",\n start: 19191,\n end: 19199,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pop3\",\n start: 19200,\n end: 19204,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19204,\n end: 19205,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy\",\n start: 19215,\n end: 19220,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19221,\n end: 19223,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19223,\n end: 19224,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 19230,\n end: 19231,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 19261,\n end: 19267,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 19268,\n end: 19269,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 19279,\n end: 19285,\n },\n TokenData {\n kind: \"Number\",\n text: \"25\",\n start: 19286,\n end: 19288,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19288,\n end: 19289,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"protocol\",\n start: 19299,\n end: 19307,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"smtp\",\n start: 19308,\n end: 19312,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19312,\n end: 19313,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy\",\n start: 19323,\n end: 19328,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19329,\n end: 19331,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19331,\n end: 19332,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 19338,\n end: 19339,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 19378,\n end: 19384,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 19385,\n end: 19386,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 19396,\n end: 19402,\n },\n TokenData {\n kind: \"Number\",\n text: \"993\",\n start: 19403,\n end: 19406,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 19407,\n end: 19410,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19410,\n end: 19411,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"protocol\",\n start: 19421,\n end: 19429,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"imap\",\n start: 19430,\n end: 19434,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19434,\n end: 19435,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy\",\n start: 19445,\n end: 19450,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19451,\n end: 19453,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19453,\n end: 19454,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate\",\n start: 19464,\n end: 19479,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/certs/mail.example.com.crt\",\n start: 19480,\n end: 19515,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19515,\n end: 19516,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate_key\",\n start: 19526,\n end: 19545,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/private/mail.example.com.key\",\n start: 19546,\n end: 19583,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19583,\n end: 19584,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 19590,\n end: 19591,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 19603,\n end: 19609,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 19610,\n end: 19611,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 19621,\n end: 19627,\n },\n TokenData {\n kind: \"Number\",\n text: \"995\",\n start: 19628,\n end: 19631,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 19632,\n end: 19635,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19635,\n end: 19636,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"protocol\",\n start: 19646,\n end: 19654,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pop3\",\n start: 19655,\n end: 19659,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19659,\n end: 19660,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy\",\n start: 19670,\n end: 19675,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19676,\n end: 19678,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19678,\n end: 19679,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate\",\n start: 19689,\n end: 19704,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/certs/mail.example.com.crt\",\n start: 19705,\n end: 19740,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19740,\n end: 19741,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate_key\",\n start: 19751,\n end: 19770,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/private/mail.example.com.key\",\n start: 19771,\n end: 19808,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19808,\n end: 19809,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 19815,\n end: 19816,\n },\n TokenData {\n kind: \"ServerKeyword\",\n text: \"server\",\n start: 19828,\n end: 19834,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 19835,\n end: 19836,\n },\n TokenData {\n kind: \"ListenKeyword\",\n text: \"listen\",\n start: 19846,\n end: 19852,\n },\n TokenData {\n kind: \"Number\",\n text: \"465\",\n start: 19853,\n end: 19856,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl\",\n start: 19857,\n end: 19860,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19860,\n end: 19861,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"protocol\",\n start: 19871,\n end: 19879,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"smtp\",\n start: 19880,\n end: 19884,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19884,\n end: 19885,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"proxy\",\n start: 19895,\n end: 19900,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"on\",\n start: 19901,\n end: 19903,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19903,\n end: 19904,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate\",\n start: 19914,\n end: 19929,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/certs/mail.example.com.crt\",\n start: 19930,\n end: 19965,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 19965,\n end: 19966,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ssl_certificate_key\",\n start: 19976,\n end: 19995,\n },\n TokenData {\n kind: \"Path\",\n text: \"/etc/ssl/private/mail.example.com.key\",\n start: 19996,\n end: 20033,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 20033,\n end: 20034,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 20040,\n end: 20041,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 20043,\n end: 20044,\n },\n TokenData {\n kind: \"Eof\",\n text: \"\",\n start: 20044,\n end: 20044,\n },\n ],\n errors: [],\n}" } [INFO] [stderr] error: test failed, to rerun pass `--test main` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] lexer::test_nginx_lexer [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "59e993f6998c536b6f5e1292c6208c22f9dcd411ed2cb39620a5e40dbeb673a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "59e993f6998c536b6f5e1292c6208c22f9dcd411ed2cb39620a5e40dbeb673a7", kill_on_drop: false }` [INFO] [stdout] 59e993f6998c536b6f5e1292c6208c22f9dcd411ed2cb39620a5e40dbeb673a7