From 6e83979976c3303c764a5580354e2e53aed54ab0 Mon Sep 17 00:00:00 2001 From: Zachary Hu Date: Mon, 18 Sep 2023 16:47:03 +0800 Subject: [PATCH] chore(version) added Kong Enterprise version 3.2.2.4 artifacts --- kong-versions/3.2.2.4/kong/Makefile | 456 + kong-versions/3.2.2.4/kong/bin/busted | 66 + kong-versions/3.2.2.4/kong/bin/h2client | Bin 0 -> 5396354 bytes kong-versions/3.2.2.4/kong/bin/kong | 9 + kong-versions/3.2.2.4/kong/bin/kong-health | 77 + kong-versions/3.2.2.4/kong/spec-ee/README.md | 4 + .../custom_plugins/kong/plugins/.keep | 0 .../kong/plugins/sleeper/handler.lua | 30 + .../kong/plugins/sleeper/schema.lua | 21 + .../spec-ee/fixtures/expired_license.json | 16 + .../fixtures/feature_rate_limit_plugins.conf | 5 + .../spec-ee/fixtures/feature_vitals_tsdb.conf | 3 + .../fixtures/hybrid-pki/client.kong.test.crt | 19 + .../fixtures/hybrid-pki/client.kong.test.key | 6 + .../fixtures/hybrid-pki/deny.kong.test.crt | 19 + .../fixtures/hybrid-pki/deny.kong.test.key | 6 + .../fixtures/hybrid-pki/kong.test.ca.crt | 21 + .../fixtures/hybrid-pki/kong.test.ca.key | 28 + .../fixtures/hybrid-pki/other.test.crt | 19 + .../fixtures/hybrid-pki/other.test.key | 6 + .../fixtures/hybrid-pki/server.kong.test.crt | 19 + .../fixtures/hybrid-pki/server.kong.test.key | 6 + .../spec-ee/fixtures/keyring/crypto_cert.pem | 9 + .../spec-ee/fixtures/keyring/crypto_key.pem | 27 + .../kong/spec-ee/fixtures/keyring/key.pem | 27 + .../kong/spec-ee/fixtures/keyring/pub.pem | 9 + .../fixtures/mock_distributions_constants.lua | 71 + .../spec-ee/fixtures/mock_feature_flags.conf | 4 + .../kong/spec-ee/fixtures/mock_license.json | 14 + .../fixtures/oas_config/missing_host_v2.json | 153 + .../fixtures/oas_config/missing_host_v2.yaml | 699 + .../oas_config/missing_servers_v3.json | 148 + .../oas_config/missing_servers_v3.yaml | 107 + .../fixtures/oas_config/petstore_v2.json | 154 + .../fixtures/oas_config/petstore_v2.yaml | 228 + .../oas_config/petstore_v2_service_patch.json | 154 + .../oas_config/petstore_v2_service_patch.yaml | 228 + .../fixtures/oas_config/petstore_v3.json | 156 + .../fixtures/oas_config/petstore_v3.yaml | 110 + .../oas_config/petstore_v3_service_patch.json | 156 + .../oas_config/petstore_v3_service_patch.yaml | 110 + ...nsformer_limit_body-body_size_invalid.conf | 2 + ...rmer_limit_body-body_size_not_defined.conf | 1 + ...ature_response_transformer_limit_body.conf | 2 + ...sponse_transformer_limit_body_chunked.conf | 2 + .../kong/spec-ee/fixtures/websocket.lua | 124 + .../spec-ee/fixtures/websocket/action.lua | 646 + .../spec-ee/fixtures/websocket/constants.lua | 32 + .../kong/spec-ee/fixtures/websocket/rpc.lua | 452 + .../spec-ee/fixtures/websocket/session.lua | 163 + .../spec-ee/fixtures/websocket/upstream.lua | 779 + .../3.2.2.4/kong/spec-ee/helpers.lua | 1164 + kong-versions/3.2.2.4/kong/spec/README.md | 31 + kong-versions/3.2.2.4/kong/spec/config.ld | 11 + .../spec/fixtures/1.2_custom_nginx.template | 579 + .../3.2.2.4/kong/spec/fixtures/admin_api.lua | 99 + .../3.2.2.4/kong/spec/fixtures/aws-lambda.lua | 132 + .../kong/spec/fixtures/balancer_utils.lua | 649 + .../3.2.2.4/kong/spec/fixtures/blueprints.lua | 547 + .../3.2.2.4/kong/spec/fixtures/burst.yml | 23649 ++++++++++++++++ .../kong/spec/fixtures/custom_nginx.template | 1374 + .../kong/plugins/admin-api-method/api.lua | 16 + .../kong/plugins/admin-api-method/handler.lua | 15 + .../kong/plugins/admin-api-method/schema.lua | 20 + .../plugins/admin-api-method/status_api.lua | 14 + .../kong/plugins/api-override/api.lua | 32 + .../kong/plugins/api-override/handler.lua | 11 + .../kong/plugins/api-override/schema.lua | 34 + .../kong/plugins/cache/handler.lua | 50 + .../kong/plugins/cache/schema.lua | 19 + .../kong/plugins/ctx-checker-last/handler.lua | 22 + .../kong/plugins/ctx-checker-last/schema.lua | 27 + .../kong/plugins/ctx-checker/handler.lua | 118 + .../kong/plugins/ctx-checker/schema.lua | 25 + .../plugins/ctx-tests-response/handler.lua | 434 + .../plugins/ctx-tests-response/schema.lua | 34 + .../kong/plugins/ctx-tests/handler.lua | 498 + .../kong/plugins/ctx-tests/schema.lua | 34 + .../kong/plugins/dummy/handler.lua | 43 + .../kong/plugins/dummy/schema.lua | 22 + .../enable-buffering-response/handler.lua | 41 + .../enable-buffering-response/schema.lua | 30 + .../kong/plugins/enable-buffering/handler.lua | 41 + .../kong/plugins/enable-buffering/schema.lua | 30 + .../kong/plugins/encrypted-field/handler.lua | 21 + .../kong/plugins/encrypted-field/schema.lua | 21 + .../plugins/error-generator-last/handler.lua | 72 + .../plugins/error-generator-last/schema.lua | 25 + .../kong/plugins/error-generator/handler.lua | 71 + .../kong/plugins/error-generator/schema.lua | 30 + .../plugins/error-handler-log/handler.lua | 59 + .../kong/plugins/error-handler-log/schema.lua | 19 + .../kong/plugins/fail-once-auth/handler.lua | 24 + .../kong/plugins/fail-once-auth/schema.lua | 20 + .../kong/plugins/foreign-entity/daos.lua | 34 + .../kong/plugins/foreign-entity/handler.lua | 11 + .../migrations/000_base_foreign_entity.lua | 52 + .../foreign-entity/migrations/init.lua | 10 + .../kong/plugins/foreign-entity/schema.lua | 19 + .../plugins/init-worker-lua-error/handler.lua | 20 + .../plugins/init-worker-lua-error/schema.lua | 19 + .../kong/plugins/invalid-schema/handler.lua | 13 + .../kong/plugins/invalid-schema/schema.lua | 20 + .../kong/plugins/invalidations/handler.lua | 33 + .../kong/plugins/invalidations/schema.lua | 34 + .../kong/plugins/logger-last/handler.lua | 26 + .../kong/plugins/logger-last/schema.lua | 25 + .../kong/plugins/logger/handler.lua | 54 + .../kong/plugins/logger/schema.lua | 25 + .../plugins/plugin-config-dump/handler.lua | 18 + .../plugins/plugin-config-dump/schema.lua | 20 + .../plugin-with-custom-dao/custom_dao.lua | 16 + .../plugins/plugin-with-custom-dao/daos.lua | 20 + .../plugin-with-custom-dao/handler.lua | 14 + .../plugins/plugin-with-custom-dao/schema.lua | 19 + .../strategies/cassandra/custom_dao.lua | 14 + .../strategies/postgres/custom_dao.lua | 14 + .../kong/plugins/reports-api/api.lua | 26 + .../kong/plugins/reports-api/handler.lua | 22 + .../kong/plugins/reports-api/schema.lua | 19 + .../kong/plugins/response-phase/handler.lua | 21 + .../kong/plugins/response-phase/schema.lua | 19 + .../kong/plugins/rewriter/handler.lua | 19 + .../kong/plugins/rewriter/schema.lua | 21 + .../kong/plugins/short-circuit/handler.lua | 47 + .../kong/plugins/short-circuit/schema.lua | 27 + .../kong/plugins/slow-query/api.lua | 32 + .../kong/plugins/slow-query/handler.lua | 14 + .../kong/plugins/slow-query/schema.lua | 19 + .../kong/plugins/stream-api-echo/api.lua | 26 + .../kong/plugins/stream-api-echo/handler.lua | 12 + .../kong/plugins/stream-api-echo/schema.lua | 19 + .../plugins/tcp-trace-exporter/handler.lua | 139 + .../plugins/tcp-trace-exporter/schema.lua | 24 + .../kong/plugins/transformations/daos.lua | 79 + .../kong/plugins/transformations/handler.lua | 11 + .../migrations/000_base_transformations.lua | 34 + .../transformations/migrations/init.lua | 10 + .../kong/plugins/transformations/schema.lua | 19 + .../kong/plugins/unique-foreign/daos.lua | 31 + .../kong/plugins/unique-foreign/handler.lua | 11 + .../migrations/000_base_unique_foreign.lua | 40 + .../unique-foreign/migrations/init.lua | 10 + .../kong/plugins/unique-foreign/schema.lua | 19 + .../kong/plugins/with-migrations/daos.lua | 17 + .../kong/plugins/with-migrations/handler.lua | 14 + .../migrations/000_base_with_migrations.lua | 40 + .../migrations/001_14_to_15.lua | 109 + .../with-migrations/migrations/init.lua | 11 + .../kong/plugins/with-migrations/schema.lua | 19 + .../kong/plugins/worker-events/handler.lua | 71 + .../kong/plugins/worker-events/schema.lua | 25 + .../custom_vaults/kong/vaults/mock/init.lua | 44 + .../custom_vaults/kong/vaults/mock/schema.lua | 20 + .../kong/spec/fixtures/dc_blueprints.lua | 102 + .../fixtures/deprecated_custom_plugin.conf | 6 + .../kong/spec/fixtures/dump_lmdb_key.lua | 11 + .../spec/fixtures/forward-proxy-server.lua | 153 + .../3.2.2.4/kong/spec/fixtures/go/go-hello.go | 79 + .../3.2.2.4/kong/spec/fixtures/go/go.mod | 5 + .../3.2.2.4/kong/spec/fixtures/go/go.sum | 84 + .../spec/fixtures/grpc/direct_imports.proto | 7 + .../grpc/google/api/annotations.proto | 31 + .../spec/fixtures/grpc/google/api/http.proto | 318 + .../fixtures/grpc/google/api/httpbody.proto | 78 + .../fixtures/grpc/google/protobuf/any.proto | 154 + .../fixtures/grpc/google/protobuf/api.proto | 210 + .../grpc/google/protobuf/descriptor.proto | 883 + .../grpc/google/protobuf/duration.proto | 117 + .../fixtures/grpc/google/protobuf/empty.proto | 52 + .../grpc/google/protobuf/field_mask.proto | 252 + .../grpc/google/protobuf/source_context.proto | 48 + .../grpc/google/protobuf/struct.proto | 96 + .../grpc/google/protobuf/timestamp.proto | 135 + .../fixtures/grpc/google/protobuf/type.proto | 187 + .../grpc/google/protobuf/wrappers.proto | 118 + .../kong/spec/fixtures/grpc/hello.proto | 21 + .../kong/spec/fixtures/grpc/helloworld.proto | 35 + .../fixtures/grpc/second_level_imports.proto | 7 + .../kong/spec/fixtures/grpc/target/go.mod | 10 + .../kong/spec/fixtures/grpc/target/go.sum | 170 + .../spec/fixtures/grpc/target/grpc-target.go | 63 + .../target/targetservice/targetservice.pb.go | 607 + .../targetservice/targetservice_grpc.pb.go | 215 + .../spec/fixtures/grpc/targetservice.proto | 83 + .../3.2.2.4/kong/spec/fixtures/headers.conf | 30 + .../3.2.2.4/kong/spec/fixtures/hosts | 1 + .../kong/spec/fixtures/https_server.lua | 284 + .../kong/spec/fixtures/invalid-module.lua | 12 + .../3.2.2.4/kong/spec/fixtures/invalid.conf | 2 + .../fixtures/invalid_nginx_directives.conf | 1 + .../kong/spec/fixtures/kong_clustering.crt | 23 + .../kong/spec/fixtures/kong_clustering.key | 28 + .../kong/spec/fixtures/kong_clustering_ca.crt | 20 + .../spec/fixtures/kong_clustering_client.crt | 20 + .../spec/fixtures/kong_clustering_client.key | 27 + .../spec/fixtures/kong_clustering_server.crt | 30 + .../spec/fixtures/kong_clustering_server.key | 52 + .../3.2.2.4/kong/spec/fixtures/kong_spec.crt | 14 + .../3.2.2.4/kong/spec/fixtures/kong_spec.key | 7 + .../kong/db/migrations/core/000_base.lua | 42 + .../kong/db/migrations/core/001_14_to_15.lua | 17 + .../kong/db/migrations/core/init.lua | 10 + .../db/migrations/enterprise/000_base.lua | 33 + .../enterprise/006_1301_to_1500.lua | 15 + .../db/migrations/enterprise/init.lua | 11 + .../kong/spec/fixtures/mock_upstream.lua | 426 + .../kong/spec/fixtures/mock_webserver_tpl.lua | 261 + .../3.2.2.4/kong/spec/fixtures/mocker.lua | 68 + .../lua-resty-dns/resty/dns/resolver.lua | 121 + .../resty/websocket/peer.lua | 150 + .../kong/spec/fixtures/mtls_certs/ca.crt | 33 + .../kong/spec/fixtures/mtls_certs/ca.key | 51 + .../spec/fixtures/mtls_certs/example.com.crt | 63 + .../spec/fixtures/mtls_certs/example.com.key | 27 + .../spec/fixtures/mtls_certs/example2.com.crt | 25 + .../spec/fixtures/mtls_certs/example2.com.key | 27 + .../kong/spec/fixtures/nginx-directives.conf | 8 + .../spec/fixtures/ocsp_certs/ca-chain.crt | 65 + .../kong/spec/fixtures/ocsp_certs/ca.crt | 33 + .../kong/spec/fixtures/ocsp_certs/index.txt | 3 + .../fixtures/ocsp_certs/index.txt.revoked | 3 + .../fixtures/ocsp_certs/kong_clustering.crt | 63 + .../fixtures/ocsp_certs/kong_clustering.key | 27 + .../fixtures/ocsp_certs/kong_data_plane.crt | 62 + .../fixtures/ocsp_certs/kong_data_plane.key | 27 + .../kong/spec/fixtures/ocsp_certs/ocsp.crt | 33 + .../kong/spec/fixtures/ocsp_certs/ocsp.key | 51 + .../spec/fixtures/ocsp_certs/resp-good.dat | Bin 0 -> 2259 bytes .../spec/fixtures/ocsp_certs/resp-revoked.dat | Bin 0 -> 2276 bytes .../spec/fixtures/opentelemetry/otelcol.yaml | 28 + .../perf/500services-each-4-routes.sql | 2549 ++ .../spec/fixtures/perf/charts/test_data1.json | 547 + .../spec/fixtures/perf/charts/test_data2.json | 60 + .../perf/terraform/aws-ec2/.gitignore | 8 + .../fixtures/perf/terraform/aws-ec2/ec2.tf | 111 + .../fixtures/perf/terraform/aws-ec2/main.tf | 26 + .../fixtures/perf/terraform/aws-ec2/output.tf | 23 + .../fixtures/perf/terraform/aws-ec2/ssh.tf | 10 + .../perf/terraform/aws-ec2/variables.tf | 36 + .../perf/terraform/bring-your-own/main.tf | 10 + .../perf/terraform/bring-your-own/output.tf | 23 + .../perf/terraform/bring-your-own/ssh.tf | 6 + .../terraform/bring-your-own/variables.tf | 43 + .../perf/terraform/digitalocean/.gitignore | 8 + .../perf/terraform/digitalocean/droplets.tf | 34 + .../perf/terraform/digitalocean/main.tf | 26 + .../perf/terraform/digitalocean/output.tf | 23 + .../perf/terraform/digitalocean/project.tf | 12 + .../perf/terraform/digitalocean/ssh.tf | 10 + .../perf/terraform/digitalocean/variables.tf | 49 + .../perf/terraform/equinix-metal/.gitignore | 8 + .../perf/terraform/equinix-metal/README.md | 5 + .../perf/terraform/equinix-metal/main.tf | 26 + .../perf/terraform/equinix-metal/metal.tf | 49 + .../perf/terraform/equinix-metal/output.tf | 23 + .../terraform/equinix-metal/scripts/wrk.lua | 54 + .../perf/terraform/equinix-metal/ssh.tf | 5 + .../perf/terraform/equinix-metal/tls.tf | 4 + .../perf/terraform/equinix-metal/variables.tf | 48 + .../spec/fixtures/prometheus/metrics.conf | 13 + .../3.2.2.4/kong/spec/fixtures/redis/ca.crt | 121 + .../3.2.2.4/kong/spec/fixtures/redis/ca.key | 51 + .../spec/fixtures/redis/docker-entrypoint.sh | 19 + .../kong/spec/fixtures/redis/server.crt | 128 + .../kong/spec/fixtures/redis/server.key | 51 + .../redis_cluster/redis-cluster-compose.yaml | 64 + .../3.2.2.4/kong/spec/fixtures/reload.conf | 3 + .../fixtures/router_path_handling_tests.lua | 212 + .../3.2.2.4/kong/spec/fixtures/shm-stub.lua | 108 + .../3.2.2.4/kong/spec/fixtures/ssl.lua | 747 + .../kong/spec/fixtures/stress_generator.lua | 151 + .../3.2.2.4/kong/spec/fixtures/to-strip.conf | 11 + .../kong/spec/fixtures/valid-module.lua | 15 + kong-versions/3.2.2.4/kong/spec/helpers.lua | 4057 +++ .../3.2.2.4/kong/spec/helpers/dns.lua | 145 + .../3.2.2.4/kong/spec/helpers/perf.lua | 590 + .../3.2.2.4/kong/spec/helpers/perf/charts.lua | 120 + .../kong/spec/helpers/perf/charts/.gitignore | 3 + .../kong/spec/helpers/perf/charts/charts.py | 127 + .../spec/helpers/perf/charts/requirements.txt | 4 + .../kong/spec/helpers/perf/drivers/docker.lua | 629 + .../spec/helpers/perf/drivers/terraform.lua | 781 + .../3.2.2.4/kong/spec/helpers/perf/git.lua | 106 + .../3.2.2.4/kong/spec/helpers/perf/logger.lua | 69 + .../3.2.2.4/kong/spec/helpers/perf/utils.lua | 257 + .../3.2.2.4/kong/spec/helpers/ssl.lua | 282 + .../3.2.2.4/kong/spec/helpers/wait.lua | 473 + .../3.2.2.4/kong/spec/kong_tests.conf | 69 + kong-versions/3.2.2.4/kong/spec/ldoc.css | 291 + .../3.2.2.4/kong/spec/on_demand_specs | 4 + .../3.2.2.4/kong/spec/upgrade_helpers.lua | 162 + 292 files changed, 57850 insertions(+) create mode 100644 kong-versions/3.2.2.4/kong/Makefile create mode 100755 kong-versions/3.2.2.4/kong/bin/busted create mode 100755 kong-versions/3.2.2.4/kong/bin/h2client create mode 100755 kong-versions/3.2.2.4/kong/bin/kong create mode 100755 kong-versions/3.2.2.4/kong/bin/kong-health create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/README.md create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/.keep create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/expired_license.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_rate_limit_plugins.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_vitals_tsdb.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.crt create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.key create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.crt create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.key create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.crt create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.key create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.crt create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.key create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.crt create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.key create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_cert.pem create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_key.pem create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/key.pem create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/pub.pem create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_distributions_constants.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_feature_flags.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_license.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.json create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_invalid.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_not_defined.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body_chunked.conf create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/action.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/constants.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/rpc.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/session.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/upstream.lua create mode 100644 kong-versions/3.2.2.4/kong/spec-ee/helpers.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/README.md create mode 100644 kong-versions/3.2.2.4/kong/spec/config.ld create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/1.2_custom_nginx.template create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/admin_api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/aws-lambda.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/balancer_utils.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/blueprints.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/burst.yml create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_nginx.template create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/status_api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/daos.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/000_base_foreign_entity.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/custom_dao.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/daos.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/cassandra/custom_dao.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/postgres/custom_dao.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/api.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/daos.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/000_base_transformations.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/daos.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/000_base_unique_foreign.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/daos.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/000_base_with_migrations.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/001_14_to_15.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/handler.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/schema.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/dc_blueprints.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/deprecated_custom_plugin.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/dump_lmdb_key.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/forward-proxy-server.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/go/go-hello.go create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/go/go.mod create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/go/go.sum create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/direct_imports.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/annotations.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/http.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/httpbody.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/any.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/api.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/descriptor.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/duration.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/empty.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/field_mask.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/source_context.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/struct.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/timestamp.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/type.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/wrappers.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/hello.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/helloworld.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/second_level_imports.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.mod create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.sum create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/grpc-target.go create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice.pb.go create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice_grpc.pb.go create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/grpc/targetservice.proto create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/headers.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/hosts create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/https_server.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/invalid-module.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/invalid.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/invalid_nginx_directives.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_ca.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/000_base.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/001_14_to_15.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/000_base.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/006_1301_to_1500.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/init.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mock_upstream.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mock_webserver_tpl.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mocker.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-dns/resty/dns/resolver.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-websocket/resty/websocket/peer.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/nginx-directives.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca-chain.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt.revoked create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/resp-good.dat create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/resp-revoked.dat create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/opentelemetry/otelcol.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/500services-each-4-routes.sql create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data1.json create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data2.json create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/.gitignore create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ec2.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/main.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/output.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ssh.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/variables.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/main.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/output.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/ssh.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/variables.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/.gitignore create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/droplets.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/main.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/output.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/project.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/ssh.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/variables.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/.gitignore create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/README.md create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/main.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/metal.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/output.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/scripts/wrk.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/ssh.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/tls.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/variables.tf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/prometheus/metrics.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.key create mode 100755 kong-versions/3.2.2.4/kong/spec/fixtures/redis/docker-entrypoint.sh create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.crt create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.key create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/redis_cluster/redis-cluster-compose.yaml create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/reload.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/router_path_handling_tests.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/shm-stub.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/ssl.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/stress_generator.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/to-strip.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/fixtures/valid-module.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/dns.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/charts.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/.gitignore create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/charts.py create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/requirements.txt create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/docker.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/terraform.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/git.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/logger.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/perf/utils.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/ssl.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/helpers/wait.lua create mode 100644 kong-versions/3.2.2.4/kong/spec/kong_tests.conf create mode 100644 kong-versions/3.2.2.4/kong/spec/ldoc.css create mode 100644 kong-versions/3.2.2.4/kong/spec/on_demand_specs create mode 100644 kong-versions/3.2.2.4/kong/spec/upgrade_helpers.lua diff --git a/kong-versions/3.2.2.4/kong/Makefile b/kong-versions/3.2.2.4/kong/Makefile new file mode 100644 index 00000000..6cc02468 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/Makefile @@ -0,0 +1,456 @@ +$(info starting make in kong-ee) + +OS := $(shell uname | awk '{print tolower($$0)}') +MACHINE := $(shell uname -m) + +DEV_ROCKS = "busted 2.1.1" "busted-hjtest 0.0.4" "luacheck 1.1.0" "lua-llthreads2 0.1.6" "http 0.4" "ldoc 1.4.6" +WIN_SCRIPTS = "bin/busted" "bin/kong" "bin/kong-health" +BUSTED_ARGS ?= -v +TEST_CMD ?= bin/busted $(BUSTED_ARGS) + +BUILD_NAME ?= kong-dev +BAZEL_ARGS ?= --verbose_failures --action_env=BUILD_NAME=$(BUILD_NAME) --//:skip_webui=true + +ifeq ($(OS), darwin) +HOMEBREW_DIR ?= /opt/homebrew +OPENSSL_DIR ?= $(shell brew --prefix)/opt/openssl +EXPAT_DIR ?= $(HOMEBREW_DIR)/opt/expat +LIBXML2_DIR ?= $(HOMEBREW_DIR)/opt/libxml2 +GRPCURL_OS ?= osx +YAML_DIR ?= $(shell brew --prefix)/opt/libyaml +else +LIBRARY_PREFIX ?= /usr +OPENSSL_DIR ?= $(LIBRARY_PREFIX) +EXPAT_DIR ?= $(LIBRARY_PREFIX) +LIBXML2_DIR ?= $(LIBRARY_PREFIX) +GRPCURL_OS ?= $(OS) +YAML_DIR ?= /usr +endif + +ifeq ($(MACHINE), aarch64) +GRPCURL_MACHINE ?= arm64 +H2CLIENT_MACHINE ?= arm64 +else +GRPCURL_MACHINE ?= $(MACHINE) +H2CLIENT_MACHINE ?= $(MACHINE) +endif + +ifeq ($(MACHINE), aarch64) +BAZELISK_MACHINE ?= arm64 +else ifeq ($(MACHINE), x86_64) +BAZELISK_MACHINE ?= amd64 +else +BAZELISK_MACHINE ?= $(MACHINE) +endif + +.PHONY: install dependencies dev remove grpcurl \ + setup-ci setup-kong-build-tools \ + lint test test-integration test-plugins test-all \ + pdk-phase-check functional-tests \ + fix-windows release + +ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +KONG_SOURCE_LOCATION ?= $(ROOT_DIR) +KONG_BUILD_TOOLS_LOCATION ?= $(KONG_SOURCE_LOCATION)/../kong-build-tools +KONG_GMP_VERSION ?= `grep KONG_GMP_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` +RESTY_VERSION ?= `grep RESTY_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` +RESTY_LUAROCKS_VERSION ?= `grep RESTY_LUAROCKS_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` +RESTY_OPENSSL_VERSION ?= `grep RESTY_OPENSSL_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` +RESTY_PCRE_VERSION ?= `grep RESTY_PCRE_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` +KONG_BUILD_TOOLS ?= `grep KONG_BUILD_TOOLS_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` +GRPCURL_VERSION ?= 1.8.5 +BAZLISK_VERSION ?= 1.18.0 +OPENRESTY_PATCHES_BRANCH ?= master +KONG_NGINX_MODULE_BRANCH ?= master +BAZEL := $(shell command -v bazel 2> /dev/null) +VENV = /dev/null # backward compatibility when no venv is built + +# Use x86_64 grpcurl v1.8.5 for Apple silicon chips +ifeq ($(GRPCURL_OS)_$(MACHINE)_$(GRPCURL_VERSION), osx_arm64_1.8.5) +GRPCURL_MACHINE = x86_64 +endif + +H2CLIENT_VERSION ?= 0.4.0 + +PACKAGE_TYPE ?= deb + +GITHUB_TOKEN ?= + +# whether to enable bytecompilation of kong lua files or not +ENABLE_LJBC ?= `grep ENABLE_LJBC $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'` + +TAG := $(shell git describe --exact-match --tags HEAD || true) + +ifneq ($(TAG),) + # if we're building a tag the tag name is the KONG_VERSION (allows for environment var to override) + ISTAG = true + KONG_TAG = $(TAG) + + POSSIBLE_PRERELEASE_NAME = $(shell git describe --tags --abbrev=0 | awk -F"-" '{print $$2}') + ifneq ($(POSSIBLE_PRERELEASE_NAME),) + # it's a pre-release if the tag has a - in which case it's an internal release only + OFFICIAL_RELEASE = false + else + # it's not a pre-release so do the release officially + OFFICIAL_RELEASE = true + endif +else + # we're not building a tag so this is a nightly build + RELEASE_DOCKER_ONLY = true + OFFICIAL_RELEASE = false + ISTAG = false +endif + +bin/bazel: + @curl -s -S -L \ + https://github.com/bazelbuild/bazelisk/releases/download/v$(BAZLISK_VERSION)/bazelisk-$(OS)-$(BAZELISK_MACHINE) -o bin/bazel + @chmod +x bin/bazel + +bin/grpcurl: + @curl -s -S -L \ + https://github.com/fullstorydev/grpcurl/releases/download/v$(GRPCURL_VERSION)/grpcurl_$(GRPCURL_VERSION)_$(GRPCURL_OS)_$(GRPCURL_MACHINE).tar.gz | tar xz -C bin; + @$(RM) bin/LICENSE + +bin/h2client: + @curl -s -S -L \ + https://github.com/Kong/h2client/releases/download/v$(H2CLIENT_VERSION)/h2client_$(H2CLIENT_VERSION)_$(OS)_$(H2CLIENT_MACHINE).tar.gz | tar xz -C bin; + @$(RM) bin/README.md + +release-docker-images: + cd $(KONG_BUILD_TOOLS_LOCATION); \ + $(MAKE) \ + KONG_SOURCE_LOCATION=${KONG_SOURCE_LOCATION} \ + package-kong && \ + $(MAKE) \ + KONG_SOURCE_LOCATION=${KONG_SOURCE_LOCATION} \ + release-kong-docker-images + +release: +ifeq ($(ISTAG),false) + sed -i -e '/return string\.format/,/\"\")/c\return "$(KONG_VERSION)\"' kong/meta.lua +endif + cd $(KONG_BUILD_TOOLS_LOCATION); \ + $(MAKE) \ + KONG_SOURCE_LOCATION=${KONG_SOURCE_LOCATION} \ + KONG_TAG=${KONG_TAG} \ + package-kong && \ + $(MAKE) \ + KONG_SOURCE_LOCATION=${KONG_SOURCE_LOCATION} \ + KONG_TAG=${KONG_TAG} \ + RELEASE_DOCKER_ONLY=${RELEASE_DOCKER_ONLY} \ + OFFICIAL_RELEASE=$(OFFICIAL_RELEASE) \ + release-kong + +setup-ci: + OPENRESTY=$(RESTY_VERSION) \ + LUAROCKS=$(RESTY_LUAROCKS_VERSION) \ + OPENSSL=$(RESTY_OPENSSL_VERSION) \ + OPENRESTY_PATCHES_BRANCH=$(OPENRESTY_PATCHES_BRANCH) \ + KONG_NGINX_MODULE_BRANCH=$(KONG_NGINX_MODULE_BRANCH) \ + .ci/setup_env.sh + +package/deb: setup-kong-build-tools + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) package-kong && \ + cp $(KONG_BUILD_TOOLS_LOCATION)/output/*.deb . + +package/apk: setup-kong-build-tools + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) package-kong && \ + cp $(KONG_BUILD_TOOLS_LOCATION)/output/*.apk.* . + +package/rpm: setup-kong-build-tools + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) package-kong && \ + cp $(KONG_BUILD_TOOLS_LOCATION)/output/*.rpm . + +package/test/deb: package/deb + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) test + +package/test/apk: package/apk + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) test + +package/test/rpm: package/rpm + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) test + +package/docker/deb: package/deb + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) build-test-container + +package/docker/apk: package/apk + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) build-test-container + +package/docker/rpm: package/rpm + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) build-test-container + +release/docker/deb: package/docker/deb + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) release-kong-docker-images + +release/docker/apk: package/docker/apk + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) release-kong-docker-images + +release/docker/rpm: package/docker/rpm + cd $(KONG_BUILD_TOOLS_LOCATION); \ + KONG_SOURCE_LOCATION=$(PWD) PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) release-kong-docker-images + +setup-kong-build-tools: + -git submodule update --init --recursive + -git submodule status + -rm -rf $(KONG_BUILD_TOOLS_LOCATION) + -git clone https://github.com/Kong/kong-build-tools.git --recursive $(KONG_BUILD_TOOLS_LOCATION) + cd $(KONG_BUILD_TOOLS_LOCATION); \ + git reset --hard && git checkout $(KONG_BUILD_TOOLS); \ + +functional-tests: setup-kong-build-tools + cd $(KONG_BUILD_TOOLS_LOCATION); \ + $(MAKE) setup-build && \ + $(MAKE) build-kong && \ + $(MAKE) test + +install-kong: + @luarocks make OPENSSL_DIR=$(OPENSSL_DIR) CRYPTO_DIR=$(OPENSSL_DIR) EXPAT_DIR=$(EXPAT_DIR) LIBXML2_DIR=$(LIBXML2_DIR) YAML_DIR=$(YAML_DIR) + +install: install-kong + cd ./plugins-ee/application-registration; \ + luarocks make + +remove: + -@luarocks remove kong + +remove-plugins-ee: + scripts/enterprise_plugin.sh remove-all + +dependencies: bin/grpcurl + @for rock in $(DEV_ROCKS) ; do \ + if luarocks list --porcelain $$rock | grep -q "installed" ; then \ + echo $$rock already installed, skipping ; \ + else \ + echo $$rock not found, installing via luarocks... ; \ + luarocks install $$rock OPENSSL_DIR=$(OPENSSL_DIR) CRYPTO_DIR=$(OPENSSL_DIR) EXPAT_DIR=$(EXPAT_DIR) LIBXML2_DIR=$(LIBXML2_DIR) || exit 1; \ + fi \ + done; + +build-venv: check-bazel + $(eval VENV := bazel-bin/build/$(BUILD_NAME)-venv.sh) + + @if [ ! -e bazel-bin/build/$(BUILD_NAME)-venv.sh ]; then \ + $(BAZEL) build //build:venv $(BAZEL_ARGS); \ + fi + +install-dev-rocks: build-venv + @. $(VENV) ;\ + for rock in $(DEV_ROCKS) ; do \ + if luarocks list --porcelain $$rock | grep -q "installed" ; then \ + echo $$rock already installed, skipping ; \ + else \ + echo $$rock not found, installing via luarocks... ; \ + LIBRARY_PREFIX=$$(pwd)/bazel-bin/build/$(BUILD_NAME)/kong ; \ + luarocks install $$rock OPENSSL_DIR=$$LIBRARY_PREFIX CRYPTO_DIR=$$LIBRARY_PREFIX YAML_DIR=$(YAML_DIR) || exit 1; \ + fi \ + done; + +dev: remove install dependencies + +venv-dev: build-venv install-dev-rocks bin/grpcurl bin/h2client + +check-bazel: bin/bazel +ifndef BAZEL + $(eval BAZEL := bin/bazel) +endif + +clean: check-bazel + $(BAZEL) clean + $(RM) bin/bazel bin/grpcurl bin/h2client + +lint: + @luacheck --exclude-files ./distribution/ -q . + @!(grep -R -E -I -n -w '#only|#o' spec && echo "#only or #o tag detected") >&2 + @!(grep -R -E -I -n -w '#only|#o' spec-ee && echo "#only or #o tag detected") >&2 + @!(grep -R -E -I -n -- '---\s+ONLY' t && echo "--- ONLY block detected") >&2 + @$(KONG_SOURCE_LOCATION)/scripts/copyright-header-checker + +install-plugins-ee: + scripts/enterprise_plugin.sh install-all + +try-install-plugins-ee: + scripts/enterprise_plugin.sh install-all --ignore-errors + +test: + @$(TEST_CMD) spec/01-unit + +trigger-api-tests: + -docker manifest inspect kong/kong-gateway-internal:${DOCKER_IMAGE_TAG} 2>&1 >/dev/null && \ + curl \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${GITHUB_TOKEN}" \ + https://api.github.com/repos/kong/kong-api-tests/dispatches \ + -d '{"event_type":"per-commit-test","client_payload":{"docker_image":"kong/kong-gateway-internal:${DOCKER_IMAGE_TAG}"}' \ + +test-ee: + @$(TEST_CMD) spec-ee/01-unit + +test-integration: + @$(TEST_CMD) spec/02-integration + +test-integration-ee: + @$(TEST_CMD) spec-ee/02-integration + +test-plugins-spec: + @$(TEST_CMD) spec/03-plugins + +test-plugins-spec-ee: + @$(TEST_CMD) spec-ee/03-plugins + +test-all: + @$(TEST_CMD) spec/ + +test-all-ee: + @$(TEST_CMD) spec-ee/ + +test-build-package: + $(KONG_SOURCE_LOCATION)/dist/dist.sh build alpine + +test-build-image: test-build-package + $(KONG_SOURCE_LOCATION)/dist/dist.sh build-image alpine + +test-build-pongo-deps: + scripts/enterprise_plugin.sh build-deps + +test-forward-proxy: + scripts/enterprise_plugin.sh test forward-proxy + +test-canary: + scripts/enterprise_plugin.sh test canary + +test-application-registration: + scripts/enterprise_plugin.sh test application-registration + +test-degraphql: + scripts/enterprise_plugin.sh test degraphql + +test-exit-transformer: + scripts/enterprise_plugin.sh test exit-transformer + +test-graphql-proxy-cache-advanced: + scripts/enterprise_plugin.sh test graphql-proxy-cache-advanced + +test-graphql-rate-limiting-advanced: + scripts/enterprise_plugin.sh test graphql-rate-limiting-advanced + +test-jq: + scripts/enterprise_plugin.sh test jq + +test-jwt-signer: + scripts/enterprise_plugin.sh test jwt-signer + +test-kafka-log: + scripts/enterprise_plugin.sh test kafka-log + +test-kafka-upstream: + scripts/enterprise_plugin.sh test kafka-upstream + +test-key-auth-enc: + scripts/enterprise_plugin.sh test key-auth-enc + +test-ldap-auth-advanced: + scripts/enterprise_plugin.sh test ldap-auth-advanced + +test-mocking: + scripts/enterprise_plugin.sh test mocking + +test-mtls-auth: + scripts/enterprise_plugin.sh test mtls-auth + +test-oauth2-introspection: + scripts/enterprise_plugin.sh test oauth2-introspection + +test-opa: + scripts/enterprise_plugin.sh test opa + +test-openid-connect: + scripts/enterprise_plugin.sh test openid-connect + +test-proxy-cache-advanced: + scripts/enterprise_plugin.sh test proxy-cache-advanced + +test-request-transformer-advanced: + scripts/enterprise_plugin.sh test request-transformer-advanced + +test-request-validator: + scripts/enterprise_plugin.sh test request-validator + +test-response-transformer-advanced: + scripts/enterprise_plugin.sh test response-transformer-advanced + +test-route-by-header: + scripts/enterprise_plugin.sh test route-by-header + +test-route-transformer-advanced: + scripts/enterprise_plugin.sh test route-transformer-advanced + +test-statsd-advanced: + scripts/enterprise_plugin.sh test statsd-advanced + +test-upstream-timeout: + scripts/enterprise_plugin.sh test upstream-timeout + +test-vault-auth: + scripts/enterprise_plugin.sh test vault-auth + +test-rate-limiting-advanced: + scripts/enterprise_plugin.sh test rate-limiting-advanced + +test-tls-handshake-modifier: + scripts/enterprise_plugin.sh test tls-handshake-modifier + +test-tls-metadata-headers: + scripts/enterprise_plugin.sh test tls-metadata-headers + +test-oas-validation: + scripts/enterprise_plugin.sh test oas-validation + +test-websocket-size-limit: + scripts/enterprise_plugin.sh test websocket-size-limit + +test-websocket-validator: + scripts/enterprise_plugin.sh test websocket-validator + +test-konnect-application-auth: + scripts/enterprise_plugin.sh test konnect-application-auth + +test-app-dynamics: + scripts/enterprise_plugin.sh test app-dynamics + +test-xml-threat: + scripts/enterprise_plugin.sh test xml-threat + +test-saml: + scripts/enterprise_plugin.sh test saml + +test-jwe-decrypt: + scripts/enterprise_plugin.sh test jwe-decrypt + +pdk-phase-checks: + rm -f t/phase_checks.stats + rm -f t/phase_checks.report + PDK_PHASE_CHECKS_LUACOV=1 prove -I. t/01*/*/00-phase*.t + luacov -c t/phase_checks.luacov + grep "ngx\\." t/phase_checks.report + grep "check_" t/phase_checks.report + +fix-windows: + @for script in $(WIN_SCRIPTS) ; do \ + echo Converting Windows file $$script ; \ + mv $$script $$script.win ; \ + tr -d '\015' <$$script.win >$$script ; \ + rm $$script.win ; \ + chmod 0755 $$script ; \ + done; diff --git a/kong-versions/3.2.2.4/kong/bin/busted b/kong-versions/3.2.2.4/kong/bin/busted new file mode 100755 index 00000000..d7292168 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/bin/busted @@ -0,0 +1,66 @@ +#!/usr/bin/env resty + +setmetatable(_G, nil) + +local pl_path = require("pl.path") + +local cert_path = pl_path.abspath("spec/fixtures/kong_spec.crt") + +local DEFAULT_RESTY_FLAGS=string.format(" -c 4096 --http-conf 'lua_ssl_trusted_certificate %s;' ", cert_path) + +if not os.getenv("KONG_BUSTED_RESPAWNED") then + -- initial run, so go update the environment + local script = {} + for line in io.popen("set"):lines() do + local ktvar, val = line:match("^KONG_TEST_([^=]*)=(.*)") + if ktvar then + -- reinserted KONG_TEST_xxx as KONG_xxx; append + table.insert(script, "export KONG_" .. ktvar .. "=" ..val) + end + + local var = line:match("^(KONG_[^=]*)") + local var_for_spec = line:match("^(KONG_SPEC_[^=]*)") + if var and not var_for_spec then + -- remove existing KONG_xxx and KONG_TEST_xxx variables; prepend + table.insert(script, 1, "unset " .. var) + end + end + -- add cli recursion detection + table.insert(script, "export KONG_BUSTED_RESPAWNED=1") + + -- XXX EE + table.insert(script, "export KONG_IS_TESTING=1") + + -- rebuild the invoked commandline, while inserting extra resty-flags + local resty_flags = DEFAULT_RESTY_FLAGS + local cmd = { "exec", "/usr/bin/env", "resty" } + local cmd_prefix_count = #cmd + for i = 0, #arg do + if arg[i]:sub(1, 12) == "RESTY_FLAGS=" then + resty_flags = arg[i]:sub(13, -1) + + else + table.insert(cmd, "'" .. arg[i] .. "'") + end + end + + if resty_flags then + table.insert(cmd, cmd_prefix_count+1, resty_flags) + end + + table.insert(script, table.concat(cmd, " ")) + + -- recurse cli command, with proper variables (un)set for clean testing + local _, _, rc = os.execute(table.concat(script, "; ")) + os.exit(rc) +end + +pcall(require, "luarocks.loader") + +require("kong.globalpatches")({ + cli = true, + rbusted = true +}) + +-- Busted command-line runner +require 'busted.runner'({ standalone = false }) diff --git a/kong-versions/3.2.2.4/kong/bin/h2client b/kong-versions/3.2.2.4/kong/bin/h2client new file mode 100755 index 0000000000000000000000000000000000000000..48dd201452bee5de07144284071f5fcc116de7ab GIT binary patch literal 5396354 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

e$T0uc&};{(O8xDmA~1B@=vSu>NgBCckM{ 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�r7Ikff9 z5o~>_<$jg3_91>hMSW?;oZ-DZWcCdGEArZy;_TTe=e;GAUCZBI{yxHAT6oHL7N?n~ zHpbHhy`04}|5!fCw~HwA&y^<=c|23RD#jVLo(|;U>O>!o`eU9##Mvc`Jrl5KU&PD{ z!M7gu@c^y0@Im`9be)CFQOmyhwa6C7nERKbFKa}&d{H6h#kOxf&vNtkLUYd#YCjh_6hu?@VY=z&1 zR+i7V*YKM?(LI~+{ccDAi)HYe8v0N}A40P;^C`D|2+;>!ldr(`L9|ivHMZ_4_RPk* zz!W!r#f|$Ceg8UfUopw4Uz?s7y&Qkq0eI7Neq~3tdZLvD#cv#W=JnUm;lXRgS5;#35+8{3 z&2U-f7o2x(?a#nxH~88O4ESM3u=4zfz((nR7aGqlo8Mw+|8_Ap74eot^Xg6A%uU$x z&g4_!s6)#wtPpEbx$54hYsopYEVJqGvT^@$x^eNI(>-5&>+}wC&eWb=bVT3j-H@Aa z%wB`@%9&AN&U{bz6~wTKcK?>RG23T%O)R`?uf%9$<+8Q(-@^LXBxR0%j_lCKk$WXU#R9K=H_4sDhI=u z`zB+5%&Q~@q=xd!2^EvG#(a8m?fhkvABEN|J5q8k8C^Dc2Xw>U*OZ)Vh*nOX3jM=Q z^ja*Mn7kuayJ-#I=C6gqvV1A0N3`}66e_|JpveAjH|JNX~GbkCT}`StUa->N(>c5VfI_#l6;(oYNTuFN}}zDw5W zA?8iEyFd4@>AdXgJ;c2ggVST)va^Xy!9kb7;wFPXPx7Mqd zJ*@+*cLe{_4E#?y-+p}4apqQeNFq9GhWXMj`3~yV@F%m{1!wUFz`5v*_~d}^y%&M)hUVH$@?}aNkblbh zHD&K%PPgC#{2efE_(r%{{!Ga^wV`t^M9cMVDSphQ4Wmzm9!nmsXkN3)h-ZQul2PIv z$xW6P@O_XzXs%*r`LlxM7Qr|D0B*!2Gbe<<-}#L_uuM`b*%e?m$-pN0-u9>7CJrppARgShbI?jB|%H zr#i>j=98JBd@|4+o*DAX6vo^&W-Yd0L%9dKtGcvLc!~*GxLM8jG3p8On-ATy@}crB z0#`v`VG1y%{rb~@rvv=1FLPj2d4%zpVZ;}3g zhxc~UreHK(=8ge+Yhj4>>0~_lQ>cfrtm3^k=?~~f8FI_*P#g614eGSzJ3dHxb<49V z2dBH8w$QVjvoF5tmWz(ir}lBW*IceIu=-QI?h9k*-s9Dm)cF^&mJO6YM%$m@uaCbk z@+Ub@eg5ChwJ^Yk&b4^oH@&@Qj_uUJLFf8BT3qAo)#N;g^JVRtSkWXOZu;fJT{ge> zkUvcFNHFH`GU3as&@&6CoTpF*oWfrpd=(r@6MGxQmJyl&uA&DgkXyIwmv_3L-SSUM zx3Yb8<4@k{+RB_d+lBpGwam>T>R4Bgy!pka4=+C6e0s$lzd1eqRNv|SCZ~N}J!h&Q zcPyK@_VC(w?>;^CS3fo)%)Y(!iALqzl%=ua!p( z`0(bWD=*pV)umiu?=(i)nE(BfA)B%2=G!^WI(?n*JbpOS?uQy$5337lUj}}&?U$N4 z@=eM|x!0KI1w%hMh#r{}!)FPc!>1&FIQr9k%O}fBsNJ8RQS{Hk6*2M|_{plPETdlAHM#KWX>i_Yqv`fQAW3^bR^j4E*bnKY}jkbA=$`2ZjE~< zWjQ?e@}nK3uD4mESES^BO!$(5<*-h(h``LXbXhZMF54PF%A=~z0z1s)x z`91XGK6Dy`Oc;s6yV1MC@V|xd=`DP(*r)~cY1%0Aa>HM&oDE+w(Q+$;JN}5QrZb!| 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ξBC zbkZi`XsR=t8YM#%kE6JGwU>v^F8k`QwYPMX_8u}iu-zVZ)*0>9(%yg2j@t*pD7>|L za6Dp6$05%dgIZ|Hjq|{NK%56>-qPn>2L{Ebs?RE)=Yb*DfkDrwGykc7=-ETD4mH#p zy6SwzI=tYGbr>o~$8cgDjE*6Bp}hf$k#hCaA$m0S{7CyQ6

+69wQum2oulm19Sz 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

n%oUOoJ z^RMIC(7;!K`Ab||hR!EO{&kMsFCX*=jc*u6iZTXup&G2ay^1 z;J9A+1#acEB^p;-;Q^V~K4?&Nq_73H0D`G8sJ9IIFb!rAVD_)xS@S&M!{XjO! z>PMl~d^b;1sckb_g&w4}mSWL`Ba<6t0=ZGF3CJj0)+UR!Z^Oqs-P>`}$O${gj8jkQ zcr=#d-#l|HuZi|Ne`ft&XUC5he2(>d-SGJFB=bGNoa#V7h$Aaw@P#DvE7_>u$*fsF zvfEv!e|10n1bcSSYTPo9J)L>{*G(i2jd`g!3-krfV!twyxEtENhkEM*k%a1(yr9ln zbN0ZMk^STl5FD0VLH{?|^Z0dLv5Mx_TEUHt#*6HH2gEpby{Tn$) z<+-viTgU4@!5*V8TL+I|vsc~Hy;WB0b`zhQ`Sp$IRZH(JyO-Eq`m^9(6Ypxu%Eq9w zgX@NIH5=h0_mDt)#>}d!d&?fDzn72~;c?<9Cfa4S z{?_>V0$Jt^!|T#&53zTBT~^id=U#bEddHal@GM}nk3JEndfju1Z?J6u?UZGmyH0!C zd$2iV_%a%L%{Q6-3J@ z)vSxqA$lLS2FyOAW^jy-@%xXk&ktQ%dY@>xC(K&tVdOG(t$}aFN|{saBNHv>YHnXL zBhoRJ{K0(RNtv#3%-yeC7U{;m)5Co4WxoG51bx>*N9dRCe1C^?Gx}~q_h!BqFy9M` z3nB%+(7uN>-|JH7oBOqY|L2?Uij7@-FLcZJz4Ln3C+Vld>pH^DyuR9=*DHF=ynfo~ zFMKbaC!QGspL!;lvkrRDbJ3dCWnR9xtk&j>wUp`Ldwu%}$`s{*>yO&c=KmG>;8?qpx33u-RRq?`nJkCzJon1^Rdx*zY~qQbiM%p8#bzS`t}HGsB+rZ_tFcCp#3m; zo!Ikh&k5*!o9tPw*iJlUGbkGezjr_z0rn_+VGtf`U0uX{OAudDnu(t1^k2HC=7ns4 zX3q}uZAVr3-ozCim=}rWe9@nM!iKwvlLa=~_u6>{JRbXQC3rGABxS{C#beJ07swYw zgCoh8w~DB51@w0P5WST_Z(Y}q!cSME&>Q#tfA{C3H^~9T48|BkYzM!{EXi!i@KibF zl~LliUS2zz{CHa9tzo=34vjZY{i=aNPo*lzx0O*ZTb|zajI?AN>nc zb_I5SfAmIOQ=hJH&^2x7`dVFQ+;6Vua~(nk>3J#F(h;6~75)fbT$w1{LOR7TJY|53 zu@<_kh3?8fdf=U`MN@U!)hY2C%h6fA`_DH_3JrXm^?WFUe6HPY{#n~+r8=*n&g1ap ziT=>Q+dJ4B?w{EIC~MTW^Q_2ZzcrA0p3QP}GH?FUST=o}VGYQ~a6LAUO3p4L$6&+U zs>C#h1fZ@xG-{{W)`~1eNY>jd9 z;Qo#dbUEp|#?H7583AUdFl!7li?w2(J^_cYnb)GlCS_zw<`z{85Yk`+9 zVU9F0M~sj57W*tH_gM|PlK8dkG>VPuyos?~4F6z_qWvg~nNuaqshQ{4d|7qM_Tqjo z_$Dr9JSQ`*cI#K{_^`EqAYgRh#o)8VnjZNAZ+M4&6M>oNZbZ*~VBO1$V1> zCf=$wl`OayDu(bV^# zhfTn%B6B!B)Ee22ub#TjrLK9vPPE~r1Nn?Pk!y*(VRT^Nw95l0#akHoitH`l`pX{lR{0#>{)0CS5z8`f|a6}u3};aba64faL&Sk8PFZ^R>!M2hohqi_`v_-rJ2OZXzgz`^iVE|jWaC$ zlJcTco%3t<18JoSX&o5toqJ>EJ-!i{)} z;C>-p}j#f1-cwr+qK|;)>2Q z^^2+0{bBTr-6sBYC?9_dJjVLT4D|P!y$haBZeIKm>nh)5&Zxrw)!aL@e-d3_FfXko zydy_UnV*nD0G*|Rd+ihTp?C27zFq6q9co4|fp0HL;~e$oalX4k*xljluQgepifo6k z?|`qPvkVNNS5!=}o>8vZ0Q@VA|AH8ieXZmX`YPq0@lT1o4IZ{y)`Zhmc`DysdT;#Bn#-QlGu-$*J3n+^)068D>3$V@;5N=$ zH!#QnCfMX^>3a-WU~pYk7;)jFck&0ISG=ZtPOZ>FnD>82+>*{;F?|tiJ@ss(o^qZk zXA|pZV{>=EU(0t!UN|roTwkEhrr^gTiq%s*iQ*HDyw4;?6usRG_j?3)d@AVRd%gX) zz<~u0EblnTC*vK5*3)i3%s6--PU(;6%Z2&-;nVt%_kjJiNnl{#<_XGIPqCzba;Qf(s%QtiPn={rjcK&0(%t3%phzvm$liYzf!oeT(ei z+MRDpfNc}FH85?l4Bd!!4NSS092if(-1qKx<-XdDnUo6=50U!LZBw*;8*!_Oy>sVd z<(2T!3y2$_58IslQ)N8Uy^owH#NZ9&DgGD#jdDvRG&j-Z>hN>cO|S-BJx4a}rS!X& zauffk zQ%iif0p(`aQ*4VC%M z2xSJ_IyKYuYm>@w4qx22?S!|z!E%pJGcxfZl_S?>|422oV(2X;WYamxQ>m0Yo5JIyKWnw6g_din%c;f zt^LcNJhKhUZo~8uIhM=#9%X#+%RRX{(@dY8vF$10Ui0H=+VIX}&DR&#CO4m(GGCPo z&1)~pL#OidkFT4#X6LxCz!svsZt46V!T%FSU&|x!mvY4EzJmL}g`t7z{G0diuDpE3 zZ#eI{mmMl@*0c6`Xully?&fX8IT#%QzSoHkQ_Jsa+IW?BE$quR?RYk&{BgYij^mVbLU zYa=hbG^R56^>X5trb*|0&dycSO#ZE0;8HWwj$x873|X|O6rH7n|1#iKN_>i9oOS?T z*$~lBh(T7a5%M{hm}|~D##T2^`Sq~Tv{)yfmA|Ze5_8x}=bXdr=tYJfY7aWLDDk5` zX~qxh9pj)a$60H7-yzHK!%jn%qf3K#o6l=aY7K*v;zQCit%eq2S!JteVD0)|^~RW^ zTHC$>9m*E)TYih_`>*+RWyvqNmMn2`;I*Y*=)r{>AJFK~u2dLT-aKURF_e!^b{#)D zU>>-rA%9CP>xUY0zT_hNbe|w^i*h)p!kG0ta>e##>Q}m+`YBstfOq8AAg(cuysN|& zp)*gbs+_&6#X6|?z9ZyXnaQ&U*zfiL``sR3zuN=fj-SY8t^7Fc3T{or4L4Cfo&1KZ zYx*A|&kp*{hWgrR+B0F`E}Nz7l?Ep~-|2a-`K`7eL_gOVG3wV`%X(%SaSh1F4Pj(w zg`pq2E`#Gb+a6m(&I~J9OU?}2*5G|-=LPgf>qo)`JmVi97@8BpgY*T!Z{UBt)V9aI ze2wPBq(OUZ{BC@X;J>%XS6Fs~b-V!_xHehY-iBz*-fwRDQ)=5N1?Q;t%Cett8vD~5 z@wv?ch6TWT7Wda(6gsRt2rpv;Pg1{NCLOphUJqP3Pm;FW=LM6kh}w1i!m7KS^H{HA z@B4h!jUP*O&sttN`+DxHsayNx-MW>NOLe~ty%b%_9Czy0bNS+m;cLy#zQEM|kp<+3 z->torr{|MbZB6?+_5~J@qg;I~28RXgRqJD~+HUr$J;YwMg8S39j$yA_l)Y-R*sJym zd)0I%TEWDZH@(7MwK42fyNc7=f|HY%!?|xVIr6G9hS;1_(Ud4;M z_1>N}wqZSa?;AYzUP8U!;QmSa-R$YN`(4fJL-p!e!Cbpu#Z0^Pelu%a!;@)eH+eaKpqT<2=;!_JI5I^?}b`WGi!G-p<@c?s(W5+((kDc@N1UOp1Lg}#*GO9;yb z>FmF9c#LB1W@P#r+Q^BuAD*1;@PS>#-@V9v4?JD@vs^wPzNvl{eQ}6(^lS}2dG$f< z>%Hn-km)z|9{2$Dy5E(N|H}qjzi3B;D zre+4V&Ly8#2|2HtDO+OIZ!x)M(IH~wL)w0XwI;9_>HK-^g_TaEyp!HDj&xo@Yz1)Z z!w-bbSGvlh&{rqVrkSi0?+t&riMbqnP~s)SIB*)x+vNQ@-Saqat|LE5P*m zZUo;2=rn!!M&7sy`o#ZYp${o$S9(r7aCWo?`;zgwEMPwiaj3n}X74>AawG@avp%a_ z3|Z|DvM=d%{BvisucWIKdv_5&$2qLSuV%f059t{8?N6FM2BVKDZjd?hD0*@W#D8L+? z&cD{n#kwyK6;9_rY^A?~@8S@4udD3X@nAG7>;2cRuQ~lxJoUfPpQ*rF^Ig0FgRw`zp( zg_TQyx@{f9wh8n#&Q#~6O^=9jc(koTSH)Y!exTv_NoOT8~aHkOo6ihwJV2U>cOdA4on znRF!Mqxq|giG}#O=?}h=*Q`BPMjl0XRNdU~vF2VFDR%DN@r{OG*KRW#8$=8ng>AR` zOr-vDLzCFn#zcUdY_@x3v!#FLya#Mr<{UNYMSj*Cl2hZgR|mNx+d_!=0joCGKDWc+ zKd!u!?71)nzi$7s%zPip7aU@4&IdMa)}@gHz^0Y?9tRihdXu*7`2B!Azg2e^`BTMT z+_CG|t>2EH8md2r-$}mo82)GT%e`cCt@gJOw^9Ne;xicQ2r!UeJ&0Xz5C+`;oEQfA z2xaHRPraukHo@5I?3@w7DDkC_#4d1R&73|Hze-z|MsiII{KUww+J@w`V$d|E*BFy) zyV71XcRaRzWGH_~j5R>K)EY>l|0l^`o2&`$4q!i1`^B`AYvo1^E@S6L%B`Y*ZpHQ- zwk8>!EChXNe#jm;hqcDkkQKp?vnTws$?~@r24s8VeJAi=!M?n?r`~z6CJ?CZ!sa4h zko)eIQ)T9P1@+B6b-{yMlgVdPCWrc7P+W30@CH6t>|jj5LV44YHEFw{vkfKIIT7i% zicN^Yvz7lub1%kNa&kfgx%r`iSRP{pPa5AJuE77{`0ItI82(XP=GpY1@w;=)`~3T@ z*cmCSZ@kaFGw-Ha)G7%n(ei}zlJqF$7j-4>0&EB`8@y&#A9e8RzWa^AYi70Z`m%#pl@UI=!BZynDwpRN&bQEBf*)@OzreT~ z91XSyyk$%FLz8~uJpwvk0{x-#6Zi(4y@~MZeXFp4%LXhTn`|_lT(90{`x$>vOoMVM zOUL!`eQY8;&$=ekk>`*6;fi-RYmB1D?gi-P*JD!#MnPyNO|*l*OElgByt0|+W-b5+ z_*&rs$w>C3DHg2K>UfUatPQe-3_fH0dREEUe+*4mrdywiF&@R{RD$cvDXTioIH;3x z6vnAj{K~YGb55kxia!^&eC8a)Vb7^s&r6-Uw|zu$30Fj>UM8Oj^R{KG@f&F0t4}^Q z2Ub%Ze%uL;hwbC!{t3Z}@pl4;AbwH772I7Jz&{$$xN5D)cFJ7(dnfjx)$s|^##F(T zIz(3{PDpdop{4k{tU0Mub(hF~56zkU)Zjy~)tb_rLB(1~aQ4nG@3lMEymsNgUp2(% zT)Xi9aQNNvI_z}BeZ35SdUyP}gF0bx1~`DHgvQcm`dNYmp-sWZz=rkWAZ+UFoYms^MH+8$#}(Gg(VZ{>-))sRoJN{3zA9y z?y2RL&hL7uM7p=+Lhzi3^iSGalm{(^d8eHF$}k>EmWfV&=r=0&T($!)I-xQVyr0_#Ek7WPH{1OAp;PCREd{oC&FFPC?T zZ;E$SrtqzL3%*6W;#*h2qrI^7UXL_Ce?Tr;R}XRLClhE;A6cFv4_(@1y)kg-1UJTN zNFHvXKFLEDKiJ}j;m5=|f}6SMF7@axMbOWqv|;o%;3>S>x|Kib>NStDo@x<%p>z3& zJD7Jt+E-pH`9l;VX~#pSMYnVIig(N{#uq;+GN>20bm!2R;Z@MtZ7FaVaX)CO!>=Z2 zOhe~Qa~`0ro6&#CD#e!um|K<1pSj?h*p)p^%&kWJa28`tXKuCet`qv~hSz8f<(AR6 zo$wOL*!g^0!92^Yy(V%5KCqvdnoimn)Hh3QJ`;on(`lm(x>g>Gbm&?>6xsKG16{8* zbe&$^>(I6PZmXed_7XtXYaO~)nb?i=i8>bo^91~A1NLa1P=8)Q~bPQ_YIFhZ%lw+ z>Eij=1T*wez}XfK9qimkJ`%*MUQ@P34h-py}uIr2tptBdMmVdEA%nX&_}RZ zXJkmva^Kl{f6&m!JcmA1Mzpci%t!DB&+8CP0<$YbAJ9ezaBIDT=*q|^E1IL2I%2mLur~qyfS7UV1=z#HZYuI0+c>rR=$EcC!gH55i+-+k`Y+qiA!iIOKfN|(J?)1N z%0{gH8RQ}+PR$o39`d#DOXDMz*v{Pb!-P)`mkTbfUgor=oQam_Pwlz>;;fH}riT2* z@=wXv)mZ~>>d?>5x1JWAH4<0RG@))w{e;z9oHfaYKi8ThUKc3r7M~C=x|4RngZiMp zm~{$#Au5_=of2t;4(~)()Rh)?+ylQ_5iw@gN|v+d zbrySGZ4bBEL-w{BUfo6{+UkQFx*JeYVb(MxJ}y7jYZw zqV=oLxqRdLp~pq?hvKV$T0V*OXTQ5ywz&ZH&n3>N9{mv=0{wKHSyxRU4p4iCE6_pS z-rW}5X+hesD_WgQh}%_O);7ineA>b}*Pvvo!n z(cZs6bP{vb(7xlxQ>$;N9di=ud+=L(p@s)EH{q zH6+*e8ZtXt37oZt%!bF9Z{T(H^!s^uO^|--tmj=;C;TR8)_{Z049^KR>~i|QOZ|r~ z#A_1Jk=lzvN8snGa{6CE|FHvYkR7ND|B`on$f~y-yU%O6f9PrqEO39-MA5+|r z_Qxo{tmgXXzHZA3*7UrGR^gX!ZrNSd@^-=kl>gC3UdI9iGPp9HaXf{ig#N zuD!-5_@?u6o)h0IoTahO9n3#O-_lv@@{L*R>imRm#k;`2RH&u=CI}ipSQrbN<(H{utDnr(M+m*Tr!G$wATf;d|U$k$Sx-N zC>a4AT^*v{JHAIB;5**-k~LYokrf-lp^GDl>*1f2Q@+a%^oS1d*MZK|0S?u_68KXI z`@?KIt`+%+;Ardz1;&1m3eyh8K#gu`$0ty|vh!|?*A522aE`rz7mREKODX~L7!hn1!efvB;ehVmjErQmD<>t@IndwV|!$k_f*8=*%11pks7qliy0P5*>SC_c_rQeRTU1qi<%;w>sxiL1&`9 z3pocq=8UO>@+z0w|6%+gXJX_gbV%{5`~Nrd%PFsRhSi^8nYFN&cZhFXx%$E=_V+!b+25nU(6k@0^%b?1Mq8uV-$$xH6;ECqZ5*Ng*H?~Sf9m?v zt1sWe+%kRj=*z#Rt`DOxkJNws6Djbq;|fJ%i%01HPets1 z%g=Y4nBL+1+|S&Hzmhu;`GYL|JhDbQs@Vq%&6QI3T;%9H6C0qlzx*`8=*E4NLr01u zV-zRimMbyk>>Nod*YfM+<~sQN+j+xvffndpx`6Cm9q=*f^0MEXnDlKK5y_H{u{C=| z;~m+&LoUcB)Bz8s%!ZO*PK$IPUzFQdbKLA*g~y?jZU}#$ICSy3n|KZ^jZKa{z*@im z>tzlu-FXGwi}oG>wxaW=J+jbC-w$yfl6SphWF39$q+eZ<3#Gn7@#A!0Y3EYQj$SKR zmKGPX7QaesS=L0_Gc~ZvmF>uoDr83o?}URD$cRdKH0#|BO~{B{$cR66jr|hxp`1Fq zzhk%K)?G>;O0h|bFI0lx=h>fL4iEkQz2pjXVZ3bH#7Iud z`|CQB99)j1>#QFIzspnBJFZVpYtD;*gMJ2m=Ke~$pA%CpSucA4@c1Ek_VO}!jpf>W z-dthR)*uh{^kI;HVslB&XBHRjLti@EQML}n>RIG0En)Atu4SV!Wtf91BYS%Xb27pF z)p-FAptCQ)pW5TB85P?pn@k*hi$-(MgF|W7RUzq4wHHOsnTgL5Jx02hO9SWz#&4^f zEJ3f#;{H)$GNeOFhsvj1Jvy4sH}~i+c)yk6CZH@Y<_CTH!nxOdw2ZAL4Shsu!x_!>*UkSZKE>^FEz|Jc;j67 zsm|w;%}RPDdhOHXG}u$`;7B@#=GLl9grk7Lk@=SOl>7qF+|%NhhCW3b&l*p?b&Z1N_*4f;HqAQZKxBvT>?y-@E^-w7-yX)9AmFG z=P|_4k)_XSzovWL2|s4vo)3Z+cq=O4ZrSY|5W!)(DBWT?-uiJL)*{bU1f|@{5uTJmI1qJao<1%xNCgpJ3!Dd_r`>T7Wo~bk^x< zQR{5{QOp5oZ$mwEEt~Nb!vm)=-sz0D44Tk*-FzI{`}nH>j*c*u{cOY(9H8!P=_A+e*5}qU zgSKYURu?{5o$06Cp6KJ~*m<;>-tWWDH-k2NOq=$3HmU9HqPl~S9U|K%a;AB7ZawH#D zP<}XMkvrFG;pN`?Q~8~AoX@7vkZb^7cIJVXzbRhxW#jLFD%&2!@uQT-zJHTaKEh_?b~fB-*T^S-?G2m;M)H4Gv3|YA)0hzmelWJ#w0&! zj-!kr+k9roH}$*wlACp&s$lB!murdV_s0JPz&)~XU@EjB|5A70^<%e&&z#OqGM5m~#ATZ=7s#Dp&5%l4Nc- z<^AIA@Jw(2UAhsy>}MSA+VAHn=)#SOGj*5Ru!$2}lI_T1 z)xX=Rzn{8I9C6r=>5O|~C`Vfl?jE82J+!~g*eTt(e!Jb)ly)1Ob`>w`Z8z5wOZrC2 zct1>gkEOJC=O58tmWihv+P^0FZb$>Z@NBa-n`7-mkJ#6Vt|uF{Y}Pt=xfedK{EkP_ z2gP$@(p#Yu>3Rki&KlOmGy3hmL^k!nle?(98(GnV4%th+ebjrDdWEaccxa*Hf?B>o z=b%sWH+R!U4|LZHZT2D0j-oe+UJPt^*f=fbJTEs+SLZh|HO!woKWz98AFuG~V~)rl zGTIo_xARir>$Le^__WvK!`qucT+twWfr0dBot>w%e72CYX+-#qryQ`8KB>OE&HBlm zGhTa1M+!XlbM~MMkHiS@SZ?Thc>lf(JS^aG&j@`{+yCUW{bovA6&|{N%hQ$+;KKjI z!sFc$`k+{fRQu7M{|0#cW`w>79+5u*9yY%o(x){4UP~w6G4rY${oUw*%nh#{KsvRn zD>PdfM%NKtXq{ocfuEawP>#;C#s|-4jqK_Gny8J1##a(D!sj=5H_My0oV07+#ji2#OP8qM_E4<@d<>5mI zdFRr1MyZ5Z*bR|$L<-KKL{WH=JwU)UmhOu@4WNQ*FS|{wmW?o zlz(n}9zKyO|NdzBpo5Gmdq#lI&i^j>jM6X7nY#Z@_@JA882EhgzY9L2^h@xW^T)u) z*tdq}*8%KUW#pcD2%EHpO`~)|%dbmvTDR0#zT+hyC-#HudVZH!KJrQ5xAz4rt$lj_ z3tO6b{{qjaJ7wFrmQGo3rA6nRDnHysZr}wgLmMB=d|}J(4VhbIbIi#+u*FyJ-|Cg$ zv#gdw+3c4_zh5+#b5Ac>)wZb-|G4gTrcc4Dk_PRkZe>oqOnvpWZJXv&-viX!v>|=# z5%P7bY&++oUa~5!LEm<8-^TvxrrMH*X5J_GR^##02mR)+3O1DRZApIXmSXzdQk&V} z?bE(zSbO9s-;EV1hVRL)T7o`X!nIky{-b%np`@i~#P`4Ay{lgj%3|>Ki@zPtbMPMy z>R*{Ty?U2pE&HD8 zbn6zMbN^iad~HfT2leMsw@s(t*pU}`;i<9hBu=RXdw|+Oo^3Yc+GLMw3FWPsM;?sJ+?9SrTyUt&b zZLVv$zHq*M-Qc-iVVAACyZH2D7cMmKtJZRzvmm=GbIFwY$@8<*Cfqiq33%0SAe;?t?mbI8?ZCEq+@0bB1o z^#0SD!`Im~ar$u&EePf=yi?a7YU``O&qsen6S7MPZWizwRzEu6Cd$R|7y2AnE^egn z!O*b2yZxBy^h5gbu=dUQwnO|vdU^3U>uKz(h0+J|vlZ9*nFwdd&epz}#+JZcerTjJ zGqf>$;oQUF3u_K{O_4q_J+g~3JBarR2iZfI?kk6PQf4*p!fqLIHhIg8)ZdZ` zUpu_REsvk<{mSE?+7z}bHkGX0v2F+BCkOjFyFVkf<=74C>@{`_SjDl2l-G=~M;Uti z!B?S)jL@JT`GNn3@Bd%myOX#g@dnqPAl`C?2iFgd#$SvtddR+L>|VsGO@*iUs}|2L zv;23pGk2zPjt_dm@se$vXOn3iv~y8tjyN>gYSW)h|HExrVd`REE5}hX-`Q`F#XJqd z3+jVk+eprwyDawg*HHIj>Mo*OEAuzbn!kf}RG#H0mrkI4?y3597QRaPz5geCP4?WW z$gl*q4%OX~I=`L%n7QU$OLp&7{1tV4YXo@pd}U~EjFw-jFGc=|AJ&}m-Ia-*polSO ze**UXLd`?(Jg+&Geb?hE1Ha1x<`paFZ_4fb+Fl=Ju?ud@joqglV|+K9KXfqv{r+ty z7-RM0jL~mxJp_+xFQY#3N%05S5mioQW&*n+_~UM1T(R^9V%r=7tzGifu0 zhbhmi))^Hm|6)__F>K80qw4a0@2!tI2J0KAF%0LMs{hjl?lpU_F~6a`v(2yef>_Zj zQ*dEy7kSvjpyAaXoESS!UhTf`Ld&jvTyFH);qkqRI%}Wc{UBq=^g%IRzIgS7W7BE9X@1IJ^B0wSO~X0v2u`^3;c$>BBhn;f763;L7cT=@b2Eq95c{ zDIDw*u=e&TmmDWUjZE$0qPNR5xvT>K@h>^$)fMF1>BJyv2*3kBxwz zZ+r05m$Kf_d~x?>NiT&ruqVXde-`tmfVmZf=XBxEYlbffX2ilprlDgrp=0!*NA#da z{EqtFXFJI|)lK;$&j;?39;)(gIpxK806pYI_(TzQAYz?{y^r(0{=&J3>(No%Z+fY( z6F!5zqwrcM7fAuS2Im9K&h}*)-K5dVs$NW8-OTax8G~|7wLoigp*86>%fUP6B|%Gm zJ9i1X$#SQ>_~sGjR|sA(7uryH*$`68U+a`VK;NIGpW<0IE?hYuj4r!hyet@9Vt%ut zVe{*cR`BbU1#bMqQ+E&XH_asu?;2cxxbx}Hfv+_3TsipKx%a@Ad7pwW z^X&g7e7&Q181OYU%3^X*In%A)XRPiRoaB9y5{&;-qS4Mt$u41~_gMm*l zL5!DtB=dsgD&<)ZbAQpf)+6?wN_^>I^qpz+9si2-@I(zUlh|pOV2dQb*?{6!YVl*H z#ui-)T`RU|2Y%=9>{*e-0>0&ZD8;;+I<5b9%`bhAE6&J?DJ{)+V*rN78XdpOo>z(w zk!?eNiqrKm9?etPybQcc?fn+JjgCLG-?M}M#p!R1ej7g|v2bp@#~Z+D5N`D6Zv;1d zQ*r!0ib*VHT(3{E9@(z(q3bF>OZ_HhV?*vXUt|}3cHx}!5&ZR>_i~Qn#lWdxp!oE} zRQ75U2Z3F{#P-F35jwev*&_}uDwu5}rliH}ea(-g@qPRz#lO)HzI9_iRx2*>M&kdx z-*O+}TkY>uyr3Hw*g1!L;t933@Q3X9!L^jjH*rd5M-)StOMg~TC-I%Y(kZ*mjv-u0 zS);F%I&t$E^aY!g;dQL*Q+@c5bS!OwU3{=?v>-~-|(`$OPo@(0Av)DMH7R{Q+iYd_8T zxvj&`&y6)(0~KdkPtRk$)%>7!Tx(h7MAq3eUC{6>=xqBK&V|CR*xX{>Rl)jI>rkDE zCfi_>wPJ4*^1Jy#pV9Nv&;zDZmvTE?z_%*fFZutI)c5!ARW3^No;I6fsqa_r9n1Ua z*eKwG?LFvEJyvLAnw8Pe3GWj9&t>kq{R~?=TkLCl6~iZA!b1AjIMX`5pSl-ZvFXr^ zD}H!l#ubP8Pn^i2Ok>D8UctKztK(1__xV>?PiGK&-IMwJ7M*q0%Nimx*Y>vrKGC>E zwi3k<+c{gZqspzii0?GdrH^e>OwWa%B<9H%&81)0U<)DU3tlpXcuROU<;}cnO*7}9 zxN*`dtM~5r&%gWL-wpD#a4_-=b71hE`U^EDe#m^j!WwXSPVa^9ZqB0(@hijE=_4>2 zP;6oVzLLtrI)7;M7wN8szi_Yk9JgG4F1luUzRA5jjq9dRexwQckp|yc0^h-BaAnZT zbI_~H`2M|Mfj=p7l)aNjI4}LlDb}JVs;XumDXgIpL+Z!7(NLkr^ptdO~A*j4{m^8q*g>8xyi~#4$aVGA8ch z#2O5vn-4jrgM2@XZblnZI1o9(7zW44T=-j!=?TVk@z9v2jW#B9uMx-eM9P@B*Zz-T zV=DLHDfIq$`VQYCliwPRFAR<$5s3UWWlY5y(^HJ;ax*6O2%Us~^a>DA;4Y9`jDm3==ca7a!C4voM8U5+_u;P8Xd;DG)#A{-i1;K2QreF zy$>9+elUXn8J$b|)@64xrVQrHSjId)M9f@hV4{YxgEpj=dh1j@Uten_y3?cjvbtj`7rHo zVm~%?H#k3O=S#Y$U-(@mN6q{RQ)ieuL+I!k)HPQ+x{?3da}tbxhdNz-K;yD?@t~~} zY?aT%I^KyMQ)kr~okM#!>YZ4QI$|Oc%>DS0P$ByL)!D4K+3U2Zn7m55&O)wf-@e=5 zCsX?S3C){(hR>VW$H;pGTpaztz`^JTqs^OpQsxc!%NUb8e#1X<26-a><@e`_H|zV$ zp?UmC!+E1)TP?NWgCFP2^BA0WvAiKX-I+4(-{msy6^z@K*@jyUp0DM;qIa>>e%?YEs6={R!d@hT*i_ zgVWIa6clo^J zuVll8@T?Nn3*w{1MQ=8I)bR6Q|9)gjCq6_k4@F1ax6|gKW_%tVYVONv-{x_4d$L!* z#91Oe=;YnO%!WpMOt%Bu$FK$Ww2%v)=h@CV5rgneSdp)#!28`C;9Uf~u~)b{z>^;p zFB<{g*eyoX0g6)K&HbnTM0n@F54?4jPRry6hMy@@I@}f``kv*X@9RA_ml*aM(PK5Z z@I$|4&N&BV(C>ceI2T?5+#G*H$o4m2qt|-fl-C*_pO~MudkJfIV|!=qzKw6oSfgt$ zl(809UHa{i{AVrSnXz)OIhzu?5Uo5vw)T+Xkwqu&z2vd?Uj7Ss8)r1*zmUBEzd*NQ ziRc3|a?z1a>n^R|rlJcD+7aq~ckSR^^S6A)kFItVuYY8vy%ucb+c@t#Xx{dU`c)nn;;RhL7JOoSTf&+-oA1or3)p^g*}Q#~wTFtJQTO`O=9+ks zjQjT%dakeH+RJ-IlWT4p;<-O?Xwrq}L*vD3hvLx$N6~_Gpi0Ip+|TEX51r?6IbFpt~l16?A-`5t{VKV1e7e&m`WMPV!l_I)tn0}c$)D5C*jl9jrN;3*tAEA zIom7H-lVn|cRg@Xo`_7oZv&U)J!PRJur357EU+%4(jue}nX4_TLWCM{5pe-qwCHQps8Xo!RUk z?!Z2ipXqB4j|;X}%BBQv1jCouN4{9)@To{f2`g+J#7XeE`0 zET!%?>V6Tq*c8kdR`*o=sczlco8+xqd;e6o&Jqz%fc6^v(2n}mK)-})HTuvs8Er_#@z9{TwTV{vImzb^gYhaR>+ zRO8*Qy^PoZ6yNnTWLh!&)bNK^n?J-^TgN%;=U>oc6qi=~7UvFSLu+qY|8Oz%5l2qG z#yiEWxMdePF>I7Q=#)Kv31vUWbKzFHLeu`|Zzw!K9zBgse10nQX8h&QD!l)1I*@5; z;8lE9G_5*1u5R427+Z^U0NLIJXW?JJD(mH)f0P{Y;9d0eBr!&6OK|ry4#geUAk!CX z?lBgBRqkxwN7M(=Zf-jCNX%Lsn$ArP{$2{i1+Dji< zhCYV!^_$#JoO5S#TU~CQ&LbYH23gyQoC~+qZ&4n$5c{#@gEjtFWaC}qMYFaqmV9NW z6Pzcd9N%56)6XR@!Js}$nZKUm`ZOKcO58a5e_?z)I)r1>*=P5e=j1ELrXw2srKj(1 z|Bu(%_MP1`vG3HS*mpKt@Ic#-VTBe?8D~wO(nh>hTc|K1+1iX8$(?S;?~h{-fqBQ%Ec@>`dbNJ{}zOx%PO#8)_q|bMJ{3jc?Y?$`*El0SX!1Zx(amCbEw={EqJNLii z{_d&v`#ZRQlD!@i{AaB@%

Nq;=W;v-)%4N#B?3B4(~$c_w~xaYR0qr;I%Ny8W#3 z@<@~JIzO$q2ec#;j zb7aVizVQuru+BL05c=)~$d9Tf%{R{|312zMK8atW%G%c9Oq8Su#m@IUbkt!5IU6m&d>IE!&W`?Dy7fpWHgUBZ+YBCruSV=RdGiY8&+fjP zeb206kFluZ^jXSM<$>iAG$>g}*oe8I(fferoll17fGU?}?p?!@P+PH0; z3~hm9-LC?t#{@5E^8)(hUTe+W_y}hjQtsH=(7<};n#$DgZ`|URk&U#GHBqip=Jf{3 z`Oa!jEhqYE{Ekg0?zf%PDLNRuS1!^NdvUp= zRj9m9UC4dO;PT}|azS?U*d+M&ju2(wA;|j2ojiQvwfd8MK3;d0v8VT8A9}lP{4jeu zGHf9BpT2?kJHCO=ya|O}jm+nyj~s^hekb_{ddB-X&uw_Fwwc5PD!wN9FFyN>19->M zQ_?v~Oy082@g?LZ=4?Q|`x&I;I1hsL5HWIW^!+X^wUimSVgYQ`A8IACZ zRg~BFT60ubtGC3jhR5>lYo7j@Z?6sw$Pcfw;_->Y#pGoPG^p$gBeXNpn2u5Q*l&CT z&NImmGyewf#~JyR(0uz%F}{`Jfu2P1KyOd+ zKwp0`^j8f1F`mZa!lUR^9m(PW@Mq_PtQ&9EzOEkX+C)2<7hR88h2H!Wnjhb)8a_Yd zSL$SbbUhZL>`-0`;uVJJuYD$-bx5C*t*r}rq5M-lH!~NI8GU8efbqLSmoG_PL8mSH z<$fDj+ey4L+-F}XZqO;iWcluW5%j%C($90?!Tn0T| z2MzQOj&ZD0kH+P#XH0Y@zE69NVvo_?2hl-4`||>YvbDMTkngPI=Kj3WLhb9>8LT~I zY)H(#YIpyG(-&{MLwy!ZY}l5iv^k7+>fonqp`G)}ThBNA_MsfbAAM{Xzm1O}U)!?4K%zP@5GxA| zus>0@n~3tQXf5@+&N{egnoLrp8ww=P8=na}-N&WG;iUN(UBz|e;6$IKjw zhXVs|x1KdD&)QFkn=-umrog~dY#rox87LLsq@4CJo%{p*xw_Qm+sjJHKNo1PVBYKf zm&DWEckoTGU#>G;iXId&=V&MRPU|iGb}`>-=vxJSW538j(V^h=0@t!bB!K(d32Rs% zA94HmtZ!gDeYE+y6*=hit%R{BfV=h^@$O)Z@2^td%1Q@h|I`{rHpfAGS*r~X_M?*b zvy?n%?ArpSmDmgB0oP{W{0;JVcK@(=pcVScV?EdXRIxc@@m2a=!&-IfM|e*=ZP-iv z8UuFOoz}@`8+q4(ZD#@dD)hXE=e^gLl20kq*krPKza86PAMh(!UT(_tQRXQ6cbjx@ zYfN=5ZFB=a$s)-ZUAN)i1U`{|`cdNx^y~b2)i0ak#eDaK&$?1^T9**RBVR(&8fW%? z=v-#msh_|nL4Nk?a_Wvd_12`>w&Suc%kcdfe4E5x8Zu>S_RgT51)O!Tlr?lRXzvZt z*&Tvq25n^%JJjVPZM>LofTg~<1bP>ZcuzJyKtB19rTe}-yk9C?3VleAkPU*m4+@_hT+ijq zXV=yoCO>=`b*U}Y^BDE$w~1f*^mV=6T-&zBMy|85Netsd&YJny(lh1Nn;sp`@RL&8 zzxQ(Pnf|>#);C9Y1PVKmOAW-ES%T*h67KSE;=y}@huXzjUcEcPAN zD@S*f7EWWFyV7b8$!6>a7rO4MMxT^juMC+P4h{=nd zIaL2QslRJQaiQvR+nGT-X;m|37fBz%7UX{K=X>wBHGJ#+PW^k4dNSyr`Za_2Ipx!7 zditR)&G?2S8}!ny_?fr=iak_* zbbS}2jtA(cJN8t(gq*Rvcp0NH-^rQS>N{f>9-1cD>%7NyuK9HjdaPR)^Kwx$@1>J< zX)GRm%o09mU+>ko9`xKL{JyYf%@)O+rd3U!og{vA40Ftt(FY7%jeIsV^HJ*1caqQY zQ@QfF6I*a4GFtjia)a;qI@Z*xqY0bx8hl4<@Extecht0U!PYKp(@m#JH|@$KHYb?g zF4~+b`k}vCb2$2dY47wHyU)rIYIFkHaoc>}Y4Z}nl07y{;#&?anf!wjO$+v)==$2* zC%RV7Gi{~XwcF@Jx0T+2{dv<%@V{%Xs690E{>%$9@4w-2W>#jyOW3;GuuHprTkPpu zZw)k#4alX7fAaLNx2Cu-kNuN7PtD&{@AMOVGz9nCurd90_e_@B{!h`hBgvzZ5Z%&{4)l`n>Wp!Z;JHoCOMpO;@nscL zyCg1GT;v{;M4|B5S(0Jrjf-Cy}EqDrPWKJPs5wgq2@`4a^Nc2 z*&T*XfUDqK08iVmED3Xw5K|%oc3#&LtU)P?Y#w|z5h!4w*FD$M`}U zd#o|hF;@IglAKHr0Vl=dtBjwz^_!9V@|GU_qK{dn6vd6v~p3nzB=z%ZHBWJ6N8_5(eUP^_RTd-3kN(#H- z4?W1c-kU@F`rsGhc~NjBJwScXwY!&pwd(Q6qffj?J^F4M@~IzwGnTp(8@m&k-T&6g z!_~;BCy-5D$5tK|4-5NG{)qlQJz9UyqaF3Ni+-xVZeP`gXseyyvCwBX{S|$ELplX8 zl&m*>_VBNur_b+KpVlBGyqxUTrMc#XZ9~1(VNz0-uiz<{jLrrJxKLShnn{f9vuq(2P4h<>OW1V*0ztR z1HliyI?zv?HgztQR|k@A@w}r0EvKK!ZR3weS$~bB3%Pn%sxI^rx==4VaMtP4O>HZ$ z-P$(pL8BM7oqEvdK-1IG+h=BFHT0kp2`-{r(X@0<>D3PHZP0pRqxuPtGxV#zrszVf z!3X=>seVImbA(I$l&QL#+utU1sa?#sh3IJM_orXbw(^F<(#?peY5!x#((8;xbl5AI zeWR~XXHLs+hhAsKQl_!oSj=g66xA)n4-xH^pk7tE8Uc9_| zwqU*;*{?jl{nz`LZ-e~Y^z%yk>GBPC?)1Rlz4NjEdVIR@;EQQ9qw3<>YA>xjY3BB0 zwAC{%v~kArWu~nT+EN=mwB^vfY3Bmk@y_=i>h!kZjT3l3`|QWVDe_{{$oAR4b#%%> z`HMZqdmcvJ#FNj~K9JE~v44#gOW*YyT6W@S-V z0d;xhW;S-DZtPJDIG0877wE#Xu*n@FW`KE<9@QRQf(;*GJOjJf|Im}iS?LScHb{=O zSsCq;pS##E=f#ictAqbGXjA&6Y}z&Gz1N{rKE}FnE$ha$tQ*&|ZhU;@i(4~KmmJPw zeb#Jc_18kDf|2r(;74O$`K1x!S>DPmpA-4cu6H*NdzLdNvN`ox?3&0%o(<}bldOF% z-AbofyV#-8Ng+k4}g~zp`k}si56ME zH7$Y`|H`Jt1URdM7Dc07fi!YmWk=y04vhq76S z4m0_6>A5f8*8gUryFr7;9U6REG-&7#-mG<*p+R(|D@B7mGc?HB)X*T$&!9mEFD?zf z1a7f2vi{15HnLt34W`PMWh>i=hbuAha5dO^4GjVt9OlDmFg7RhPE!gEZkrSN51tLu z+gJ;qAG~~$`1zD*f5n+RacK&@6|m3K8(-D%CrJ zYxGv1a-(Gcqbzs}YhHA*)OfsQ#Ps$MkEd9_naIcNbI7{|ztA33#c3`!*X#kdudmYc z9C73+^Jgo6K@mDr z0^Mcmsq({%iHn`OviNZ8f>nnSUwit*Vt8@MsU?Tk;P+UtGVOvH@Dpr!v&6sh(9KhI zhaD?hw=O<4?{J;U*9W$`_2~N^d<(s_pPd^xet>v2AMrw2te@7wOD{f)Gf|g+CQ`M$ zYIc#<1^D4+E}u0!nL}A@mG#)XR6djP%aE5v_z*J51EV<-SDrfR)*8Ny^4sylnfz<=ee~wEAv^8$ViEIvKeS(k zk1pMpZseG3GkP{1T)hOGUk3Kq@hkt=bk?8d8Me>spqF**y@}ss4fLX0n6)50`zX3* z?8YJfKKFERYbQK^&8ffG)CI5JPJPOm(mn-xEG~@HV4L30_;kK-9G`Cp-zIrI_I3OQ z-hM@BAck(LTq@V-Ip;rgi0A7${9VsK#dB;=`#Ot4`?>AJg7@qA zZQ!?>-^cis{zU$?gX^uVbx-oYTDlN?@(uWx=AmM>4)E+r%X;SZo3JhVLMPsEd~mvd z6C5A$S%1?r;o&XBl;HcS-S~6qNx63HpzI6ToR7SiajQS_jjiIkhI+({CEt`wLGsQ0 z_F*S3@eRH`f_&?xJ$wUKk!$K`G2ecc>+7&h)biU%UnT$4SHUxOqh#M0;58O_WdN^q zY=D`{(eOw&?_NX?>qYkUEPSwCy5fuOym#OREXesV7TaKk*$WVbU$28-uY+H&gI|xm z|CO!P=v=pDjcw4lB=79DLncSF)*Mzlcoz;^C~&w+~%=_hTpG^;ui5qudzadfn+S9xiz(YiqT>yT2XX_KSxD z-^kjU8MHoy&$aqNaGwodpN?JdOTdFQ!Cmp-+Aa0aK^fOQ4jsrIlC^F9q22p-oG2qd znJcq}k3Py2_|n#OKqCq0q7xdi&!@V7@59iD&d^*ST|M85EPyujO*i{uY1_OLu0!-e z=hHQ^&bbtRT8xaD2cN{(ihQy93y^a=9lz){=)*1hSz?n_Za(FY@a;p~H{myIMh+?N z5?$-yT-8nc=9>2BI(7da=H3NNs_M%7K6U9EpklyiBHG>D@e(yrp`&lQs77v@=!|4^ zVrIIbK|xF=L^I-e=|(`1HWNxSgM*o&xv5>b@e+;tP7)eXL_3o-l6S^2$xwZ7Y)xRs zBy(Q_ zNzb#sxRbTrYuFcsHF%G%_6izaa@I93VGLNsdgjBlf8El7O~2;T#xVmsr~Qc8!(^Fk zo!#%Vg6kRlPh*V!Ft)xMUcCjMUSm$YCox=@Uil2j6p|_Rtahqj?1-Ew4e( zNa!6!9qZT=zL>gCf?q}4lYdY`9b|)^rmj6+VM`Hpn1cN%q7Kq~ubf!7L357>puc$L zv_uK#xzl!6;JcZ#kdG*qk6wKXo2RbeDMvaw|=nJxZPJ zS))bC^G!WRU^7N0BU}%$zrODo#XEW2lg|O<^j~;izV9eLHEw>1XWPKiXEo#IPV~6uZDgB-t1*&r zI~jvidy(afcy<=g$`9O!pDLe2&y7d6YVilO9-jTc$uA(!2icf)-^@cV{D_8r;N0dLf z9C@_+SQIChnrrJbE-}}7rX;z@Tw7nTn(MUuX{>!V`_FRDROg+;os2*4#%CGBxn;CdF#etgKiu(9TxUjnr65uFs}aZ4?>e;~eEk`T)uYWm z?+B9*9*7CBe6MwVKw>cxd7t;HU(a*l3I*yES5C4qV z!cU#Pr9KwaPy0{0=fl0oz7s+Hrc(DI^&1^)>Ub>F^q_bAhaF%lp3ye%r}&S_k&f8+RYV2YI#*-ncnPZDroU z#$UYzKm0uk_F28^{c7c*a(+wm!@oa-A2nAet_=85#9V4H{)HbG1#Ry0qj?y9JZ$(e zxPFyfuVa#Pjh$xlS<2@H$Z?3eml8L{4_{!;j_$o85hqqIKSO#cLcdywe_qKrYpLFk zdVL+}kO+OMmN6E6iD&D~-u22|GHo2OaUA)x!QO0kzD{$jvL#_No(TGf`;P8CcN=Hf zGp5?f=QI4L`vQD0u+QN^&>!ZR^~*!^bL)_SMet<{ZC}o3oi77Rkbyel5L216 z<$T(sJCOnQ$8J!(M>4Pk8F&&IIE)NDOs<+Zs0b}n9h=RWDh zPsPkxy6yPAMppd1R`ogYS8>_DhL`Sd!Tk3`c&G9uPiJy%`CX7aKZB=1e5vznD`S7^ z@HdEQDyL((^FF5iH~3xr0rObC>^=i`TD`n-}oMeM$GGy0F)cK!#{LcaVIWUKLW&928BcndB5W7CHxc>ET zA>-??`vYF|E!p~Y#724)8(|;h_1vGvGhgMIDSXO5d5d!9EmJN+G4anx-+JVIDf{3BQJ?6MgH(U4iMeiQHOw*&lE%x}fZYRzw)=d|DmxKqI` zAU~puXZG;UHezW{GiPdlvvb(7hD|m;c_rOWn{@-U+P?+ zWv+|NGaqrT&oI{|$yL$%*GF^RN4d8zn>M4CxQ5zmDeZN;SG=K`wrYn?#?1#?XpiNz z$L-5*pHW#5I!4aw0>wLATYwHw) zrL7-9E>1)5ewWzmx0&l^X+FV;dx5-?OG|z7{*CR|Ubi278W$u5=e?~FZf8=_I zpVWAD;_WTDV-?clUHkBrUmL5Z4AnPXRpbue zhOVt;Y)T$h_bs7{xn8Jc3$f34;GO!I^wMf_;#l{eP#&74`3hto{diN1-1kslBm6V{ zj6Ns*X!;b_9ks*>Z^J%TRe?RTqKBL=<*8||pqlsMw1ez2_Ow;@v>wb{?@Xm_m7}5f z&>F9Vm|wJI>dEyRY8glGAcm+My-v-KqZ5}BYbXtcSKKbS23u=M+ow|x?04Xwba&BT ziD7okfj-4C9r})7$9omm#Fi^(_XxJAlK9+KbXSryH5f}RpUL%9_)!g?UZf6+UCL(& z>hU?%BNsM)La+P;aBr7B{rc3z{7~$k5lhQghUgcfz4*LYhc>Xk>U{EvB*)@YJ7x6V zWas6BGOie=jNY5bo1>fnLv#Pd%>9e!2A}+b0C!ss+|oR_7Z|(?W@zrt#+C-x{M>~t z9j@M$?14A!KL-{lHX5|Q`kmYU9%ZX7CYbh~Fk`6xEHUHH4sy;)iMtKSO=Aq{_K}_z z+fT;k=_frcv5M(A{LNRN9Q~em=myOq}V`Iffi5 z5pq7ife~gET=BAuf@oK`r_lPF>gapv{%y? z_d$#L9Xe&lsKI=>Oc}Xb{N>q+@F2q44_8LI&y7?F_d#&I0&jZi+^ULt{0}`JoQHD< zzRAuqkG=XXO>8AjLTnPf5F+MQnyd~X(>xnLg^b?hm#^HshuD`%`LaPEZnI@&u{jBnfpPqyN(h%f5@wUPn&qIm?ZP3(YAfgTXQK1n%xNB7N~ z5PGl;eb<5SvzW1unWw?$X`@W#&VE65NPZ7Gt{pw)@~{nzcIfI?t`68i`;c$5;t{p) zIBx}OV;0nvc`KNYTA=%@xIfA0!-BrB(TAFsAJm5b(`$ zs;(zkL(Hf8tH?WW%r(r@>8h0E8A53$&a<$MNp8J~j>2cXBuqR)$4 z;l=*TrzZBpi$ZwOHu3@TMA(xP9l#vv3#Y<*R#>+o*Dlt54pz|v8b_vin~R|D8M<*hucK3UGar|^TN&lJo1F?n6~x-j{_xK^JY;zLZxwwKXA zKefG_;mj3!`~~r*n44bEc^LoGi!R^G+6nnlJLHe@y#_v&qO&&eOey-fnK6=VMQJ_y z3!XA>zM`Ca@}D&}HS*=hYV&^|dbVPaPqr$9hZ>hWfAb)}eoWg0{CM?3@ndklD0Mb_ zDSzC1rVxL34!(o-pV8c>`rN>`(81J$IEdM|p|ITBwVyp$wI|EV*lRnsw)-$@yl(r7 zjYrGxA5UIX=?eCgVf~T#_Aks;6|(;${`$cqk>ZwVC+i-Y7OH!+#4Bldi*l>k7iTH$ zRsCyk#R2SE^~0W7&tLtI&;dQwd%YD^*oM*)&+Id{znL}2l#5On`(bFSrhbai=-n-} z!-sm8`V`ZS)t{$5MI+z0;>XDU5MBd#)tm>g3jFSovE8~y9Dl6pM!b80=5}?D-^W(J z8d`A#IjjEPcE644gP|4myr=JFlrf!WH219MzozH^-7k}UgF@Is(O~Ow|8B{c-m~8y zFl&dadCq>X+a2b2;gm8?Ql6rXk(4HH=l+MO|E)eff1>i(CxLn_=*GSY`#Rlw!QPwg zKS!>rsi&TM(!VEr@?pySFwe?nDNYrf+YvS~rb5OmHlCzdqbsM9f9;(+tDU}ouI>B1 z$XXSBzZ;y%Cm!0+b2h#ib24q%SozGE7$1hdpwE7jTr2C}X+Bwb0Tx&D#x8wvbZp1y z2=kg=ALG3RlbJ(&1-TzUw=9LHngf-Mdu2`N;J{dK1$hGtUio5(b5QJ>_E)0Leezm$ zU;0mT#40m-vS>Q=Z~UPBns^Uu62xQX(TN342^BR+&h}ESbjJ~5QSi;o$0(muy1m%= zYsJg=@yt^EwIldzCHQMPKk-1;d$HaBi}yYZP4vS=_bBvMv0XPih4ubD;t~GwH1btG z4AvBEI{DWv#ptGDbQ9~J8V;X`toROeqO(lB_&u5UkTj<4n{w{Z&o|sOsGr-(wR?OR z`}Hcam}$S-X+zGL{ALyTj#1if4LbQjbnNO>(JXfA{A}-Vn4YT#)h=BW+5V(y#;K_(AcnZ zI%9UqYNzg#e|>UO3R_zL@#D{Ft{}u%rHwICH)|Pm?wD*1d)OP>#+^pBK*^R{L-lRKU3(?4q{x)B_3?Q(ZtJk1^e!O^F4eZ z-tPpji)XrTWPAl*r5FDZd!jWbd#OiI-u6#g8y4ZyJr}4K439n_ALwr0OFw_9Vo_dF zzjrgPQ;y$XSv!@xukl<5wAj9H&npYCA{S9+HES7oCaCX&*c;XN^qj1RGjm~bY}>WLPIxuu*qsno!x@yLd-$m!@) z9>|l%$0}T2qk7U-#o)`Y=q4XT{*>lGrQ2-zrOC<6Wu%asX5tP(dsc!~TxQ#{mbsnb z+ERF;*|eY0XT`}L+NTG*&}00UqLyVR9^McRm6*1-F?iQD*fvyqh=zLh>M(meLZjlK zlFM4=Hy5AdC2CL1YN+LN(FxA!yMCygzV*lVHwmNddTfyVXRx&Hr*k^;atpExp7=bh zj-y>N>|yT;9x> zU1##OQID=`O`k{hZN7@u#s4LHcWLhklZQ4HImLH+sllX~qaCO*U%N%5*uVpP}C z&Y_4my_@)m`l9kF5Bo8gF5=npyNPMNkmB0rtC}&@F2%1~;hS0O4X$D?I-4}b*~*IJ zXe`{w`0XOzXAi;`(y<@$w>Fe0Y4hVh_?lgmy;boa%1+0BC{O;D6aO(~ijList9OF< zPuoq@2VQjCmJ$D<9P#nZ8vG8$+^#|wL96Q6b`$M-o83E4drYdXy59q@<&!V`uYm<0 z`;cue-Kz1VS)Xp&QTsG{W}U)tztxiKGMjcKhi-WY-{V%}TMeFx)=q!l!9FzV7rh>5 zXb?9apncH)MmL-FAjs38zvTA`@dO!>yxF}?3zAby;KOqGK-~jh$d$uPnGIyMJ%@Zt z&MqR4PWo5zvuVnyLtjX?ujE?u{}Y{imzifH$x`Q@eV_g7xc4#sdyF0`>RXK-nuiXU zz}{W#(TSfa9bol;F1j^`r?KWaU=%s{W4Vs-uXs#5eT$evqLN(2*U*();GuFgZ)0y; z`5L8HFpfkQ&*hoJ`0ruqWnzjwteG6l)gF}nGbQ`*C9rKhtfACghx$NU75QidT7x)k zMjN)imwU?96tBe7{l)M{?aBLQ?pAh?->u&oP5z8Lq5sXlu`9mqZTEeeb3Z@Sr}^#4 z9QleLA3FXl#kcwrbuJ}lmxQ<5%Di3i`pXhC@nyDiU0Z)?dav#{K90(j?vbu%j$^EO z-uvX>^WJ6Vc|A*9bI9{L_b*h>9Nfy#iiatybWM0g3p%FsnXuWb-^!aEzls+_zYonb zt0X4!bugxoSNckH9qZwW`kK&Xb64K>JYy`A1Kdq}{oe4lDETg*hlvA?psueRuX|L_ zzsgv5j(NVwXZeA{~TW52bS` z-I686a@HcVlcH;hB7YBCxkYt719Ip;RoVlJUlJ?#m}Cq@3|! zEL^#8Wt?}2k1TJ)=1L~qvW=+^NXWD!$IAPXv4w|B87Y-mX-vO7rr~hPPhd!;0&ytXWyj z{q116{2UUKS#9M&{8KwW2>-@MAB2D5z7qJig!tATKMpq2Z)crfsdjdGCrrgG#k)$L z&&RjllOJUH7Eb<`xh_Z^Q_hglBL&IdIM;n#8~Vv@lplZ90-hUL|H33_2;x1{GUH#$ zkMzoz-+h16Ox6UU*ZWryt1N$MS|UW=bK4m9K`lEy5oTNw_a-K0a&OysuQkqDZdIJQ z0?)39@LO%!!~}kr-ER)vVV>t+SoHa2+(sE~BkOkiW$Y?{{*3H07`v#9t(2j2Y0D`C zdwWHQGRkWvCh%=c83v#4va3hP>oIcYk7ZQ%6E_ZQ%9XFS%*-DSt{0eqUJ3I*5#3P0 zzkJKRwC4o!feZOR%=ejmSDetU*|cYmjs5qNo9bC_(lLSjSMtg`OBuuP`5^C{#&3<9 z+u~jgx%8bpvzE_=oImy;|9j|5@XExSl;=~<7$t1_uHRR4jL8mApHvaPz{pttzc}qV z&(voy|FVNIRQn~+dLj07iihp=lFep+@d#^q<)bOTrXcyv-=Ex6#&}Wd(u^*@1fL1r zUcncCwKvKkJc940{%O}sF;0L-va1?DwDY`ly7J7sk*Rf_a(WB<#uEb`4~-Xd z|1kN6`ZV-5M-z*EddVA0%Z+q>?*wfAxzyR{g5u;i7{8f)pw5LBWX_Wes?J_v;x;gr zQs)To1w0AXB&c4d&3!)D`;p{t=~tzhv3T0f%;!_C+Hic1HdOwi_N4lT-LOi)PS_RbgjMJStz$1jU#Sm;%NQH-y_>v( z9@?RZH64cEW6)cTXBs^b_+vWzM{DGfiErxJQfzMwIg(99*E}2WJ&=>3ypgT4G43Jv zGvr%55`W(O)4_fl$hi3PBZoHue~wkze4u3+`*XG3h%Ddc;rD}i3;enXK3xyLs=a>O zw~LssR{x76|LJ!pH^mCQXYGCFv9CwwZjALm&VAMgJ)5dVPqC(}jqwC=Chg}t*7(@) zX$^d;L&g?LH{GIjtMVsGlOcGcbL6*_#mqS)TNq<^;Ro#4wZ^P_>x`_}-ANmk`De*n z9TQ4c{sDbY+sUWbetfAa+JyGj+`w62r*+RwJVSYD-BV@r`_jMrb;$fZRTTq|cWHOU zv!wev!CFf{R=h!VP~X$IH0Za|i`o;clssh$31m%uyq0$=#eaMk<=I-jW83xdUt&|pDeXdT1NoB<2(WZtzJGQM= zzDQ1v(oas+x22mTzZVQ6zv|!8HOj>cYR2D` zA)Ct_Q2$PNt+=FgPoQ7dB6IMrWi5T#^tHggOQ)e1gZ`P;;~91{$p2M6j{iw^KRo30 zLB-K5zir=cj@Wa$R5$(Q`#rE%M`&NS{+_YD#fho!D=vrpNA5IvB|%^L>)+EybZ-pn zs?lZSuMN?2^u;S;=sxLf`8wYtPpEk`=Y@Dznm#{-FVyoV)brQWE1+i?{<51dr8#Hi zOf@o=^6Ddr^Eu<>MeyR_$(Nmper}s0Uf9@K8#1nVPl|Swty73u3omcz*3HO5j;NF)$T!cQ7&${zJPY#iF$-`ZaJUk1(RA1o)?VkBP z;O7x!`28~m{VnMV=@jW6)m6UNpwA_}98H$Ii+=~-Qq)1dl!=+47ivC$k2K$*Gq4{) z`v&%+#P~>Or{nRm7qSoSk-K*Xa;Ccd@^{1m&}*IOGRw2OP0UpHQrzp7KK1=W^+WR< z^l#1`jH25u#_CEYQ{|4kt^AH*?=YRVm9L^ z#agE@XH?|byl?G?VdHjTD^FlZp1P2`J;()d=LK8QnXIimx}X043UavL=**(Nnb0S_ zu3S_0`SJU*bZ2359x~KShcWr2U z;lI@Jk0e+Bal@dV+2rV#K-OKI704RuCGGD%Y;u9mO}C}|Ark|Ick*we)VY8TVcUd#4yeysuH%l=G*`Gf}@qw`m_-vfNQsJxVHE#r;h|W zE#~wUw?EkV&cXg59io09do-xqRv4SQ{atKnz$a*sU#jzmQncM@eElIbWA8QhW$2>c z9=(3B--@QxF!b2-C5Nte>q6glTnpA5Fwt*1&!~v@&{|)!#|S*p9txvq_qU*L&P>jM zBsOk*%Q>{^waC@=jG1oK^Nb(WHt3?m#CGQsL+r-JXdmDn>irhDec--LUwNebBMJ7F z?^|W;<;di}4Ge4=+U6sOiz>!1U8ZsQ$YeMB^J_1V6neES>^&=;HwR3`S9|5phC+Q| ze1?*D?mINFblUNr(Zvl-tcRb*diV=Mu@`QqZw$}}e+GYgH0CnxE%_=+t|P}tzP@tC z*w>^#&`ay+e-^vItpD8U6}PMfqf4LYBJFEcM0s5&)^6D6u@5!nNjL4JFD{|H)%3*z zcxUG-qRB6ra(unK&&p`&39o5~zwf{rzYo(Fjh`<6U369}2Z}W$LuA~4-|o3mko=^P z;o{^u!^p2Y_N~p38SO_FjD7DKMt(||BX|A76#Kq=#NQgg<=XjxtvHF}?@cBQ-wv>;yWl z|3%7(Q-;A|{IZC9=+=$3w83I{xq~)9@3pR}DI`v4+rr@UU3#R%DdWqO(MJAHx*q3z zGP@r2r>I9`j(TwKsB#kgdVJoL!P$M5R~ySuT##J`c4#KF606L?t7r~hMHBz#lySAn z@MD#<$ILkn z2+A1J=Dnw7w|Vm^+B}uf=6qM1KjM^e?2m(G5If#g{`hIx^{77uuNrgkihFlDWxPQd zTO*cNTSpNKK7M6(8J^`8aiWbuoMhT52Fm@prTVe~o^tpje zV~6R#4`+<;u-hhftnrZivO0}lh?fk;i#69>kbL^zPHysu$F<=@l%o&Zu}N`0~>b#*&!ig|7Y!UWe%RmXZio4ea7UV<-@j*)yISJ7|HW!;@l?A%h)-_UTDF5SP1zE zBR}noS)1ic)E6bT{nm-i;1`?N3_f^fY-XI(uI{*@{koz3UwalAIiCdSy3`MK_P47e+MGV9y+Q-p z^cnQWWhS0GXit=%@iaO_YZ~5W+!30{oW*EwMG1OL_nNt_UwZ zU0b7ZqWk?p`M0Ud6Ux)j_)%l}o?y(j+UmZPKd-%3bz@$e@lKlNfL`|dN1qPTt9fMdScfL;q6f(irzs(AkNeQ=CMxihrT5W{-mtvm2g_KGd*%wD_$J9*8%K827ZX zmzi=WZYkdT@r4bcbIZA|^w>`hUm)!R1oh6~)yEp%XB?yaE%y5)$3{8fiqV}0t+R^5 zEzxMSWeIr1gzix;*ML{BTy3@vdUd@T+psDpU4<|Yp&Ez$!mw|H}V}`_y^=V=x+~auKf`;M(`Uq`NOr7<-*4e)36}7D4 zzdKsgpuJCb z;x+X&$Bru>pl6EeU1aLrd!eq2murqv_msmW9d(2@RGx->()J&CiTKLK=R2Sw!a59c zV3vOto{fk9adOib<2)MoBFUJiyhdM-`!vQpov}9bp7kAv)+NwaFOrkw@-fqYJl)}G z5F3<#@*U`uT?+mJ`71Hwu|fW7J)QOm46O+r3@f*9G3y65)^B$Cx)xirlR1lR*qZJ5 z13QpaYjaAI?A2&x%CBEwb9(1no73*ok+=M)DL?Vy%8%{->M-RW7^eJX#0Opd*iIXU zwU)*UFP}?)3bXdK+6y03A22qS`8UP-WM|bMq&F3h4&7Jx*o)^A6XN&S(uFHs+w5LT z$Nmdgu8x(QHc7{_&+_c0x2`Ou&nX5jJ*xaSjeq}>&n;fW>}lH$T{DZL4Xb%RzO%pezaX!|3WD`ww`B({0{vO1pG?dO65XEl2euYM!CA46v&+K zKYY#S<@X(#3fgm8MHqe#o*z(eavDCJSj8ScvNx~yGapGTR`L=jE);)c5^;ps?%=tf zjCz05xn6z6YUQdnpR2X>{cFZEFG4I$x?SwIVX+=}v1;;Tjm?GiD~q+(#q!R}OIIitR;R`Ks*6>VAL}>d zBV_Swqius~7mIn{eEj-lF08jLUDvr-Ws~w^9ms|CuEnZwv10kLp3Q}I!eUK!v1;;T zZOerfonqu`jEmKnAL|>rutr%d&&6uak9A)ztZ&+Od}pNXLq_h)Cg(6pwjk8#ks5QWcBTu zEY=DaE0!PY9r6dPqf?E2yw=5HypWGyujIlSWwBwZ)?!U^v6{27x_lqA1Ap>ma&mUoOipaa=Tyu5tC3^3|n51xzqG~nlMtgZi8;ODju=jYZtWhkc*KDWjf zTne8b*nO-dtrN&W{#d~0VX?lHfwf3}_=53??aXcehl|ymAL|PlSf>5&3MD#<>UOud zSgHJ2b8=zbd@gmofA{k)miO_zb-X+m)-O&=bg+lWP8X{zKUR4ztj8@~kGfc~{8*=F zW3|Q?TiK{{v1;;Ty+{5;AWyzb9F70#lEeh^AntIn>hojuW@EL+S6aIM+{J3lkM+N^ zv5v-%THeogv6}N^y_gG&{q0o8Pq|pB{8-=5h4s8`$1)eI?A*Na^{rf3KeBRvnu`_7 zkM(datWo5XAgg~YcKUWreyqRFh4qH5V~>kfpC3#4IT`ZR8h^yf#4lW|#{5_}WMH9l zTI11+6Se4^y)ITNKi2=qz%n}LZOi-bxmaF$oIb2BydVS1(Dm-vL=|*B;bN8L$2vO$ z%g_}K8(p~G#j4Mb70t$Kjo)SU{nuQq#{5{vnD5VMM|^oJ6N_A|=KNUykqhgF%0w0Y z@p>04l^?4m7uGn-ud7|GvUFTy*mitA7uIzaYnqD{%a64)7uH;>b3W=~)#t~0G#A!= zwr@vVtj7FUb-Az}A7||2(IQ7rH0Q^(?$;+4*^O;h$$<(T6t1mwHAfUURX? zHTHeLVcT(bF0ANB61B+Jb1qh6eymSrV9_62|(|8WBno* z)(p$9Yh0|F{8)Q)VLfiKKIvjL=EwS829}Z4n?pucOI@ty{8&$9U?E@lUsmUga>B7tVP*aN8@i;-XC(YV)?PI&%iRg zU-Rk2cKUX+i&c{!>*@?F!~5fwuJ5{7_4%=;Wn;C*XIzNgj_uy;Vm0Q+`e-)R(fGSo zCf2!F&H1q+8CdXZS3LT0&OnOozRSf*<;OZozCf0qSZU>Jp^N2}=asKt=fWBlF@DbH zT&%MESg+;6nrN}Eahojmuvo2L{ihQeTNzocxd^QLcAw>A zE!KLSvhe}Gb`3XnPh?;rtF7@jtUnQUv10kL9>~CguGaX|cI^J!0;?wsT{Zc!mgmB{ z>(hyS*r8v!SoQg_ZqC3mbzEtA|Ei1Cm>=t!Tv!XNO#INrO6AA;WG<{;EBD)7EN?>I zb}Y?>^|-C$Mi;9rKh~&RSkGIm`(3P9eyo1x{OQ|iS%vqkM+h66cDsvJlOL-)0}J`u z6+h<^Gfun7#j4MbbtnT1x^~4cvUX^ei`AGPt2rC1HGYSciOXE9=KNUS&4on_b^>1Q~A8T_q)~@(cYdc1|SY_$?)M53+x?ET>%dg{6r*FsdW8IaF)f)enn>Jfeyq=BW1$PJ-0yL*n)72_l?&^*#rlqmmCBDbH5+SJ{Bq3?KCt^A zTr4j=H#=-Qo|TQ&8vm)~{X;HRDnC{@7gndmy3@t-((}B-()C;NHZt@?Yy9R?V;^f= ztXO`mU**EOdbIIZKkH%A3yD4)#u0hVJ@tjEnQPwtj7FU+q1Eb z#^+kSI@ZN%&X2V*8;f|3r7PrOrSfClpN&QQ{wm`~|0d$-2`@dzJ}mEV&xO@H#*DXr z>0;I7$GRyO);Y|Pu%7LJi&dW=YgR6-^|p@Bx>$|*u`bKN!ltpOjrHZWxmeBlvChxN zYK<3%vV%6lwdOaI!SA3VXk5w*KeSWMx*;uXdjkXV6>S8tK$NEk#tnXN?^IWXv{8;~x z3+oZfuMsYmm(IHwwjCeJ#yT1wJJ$5aKZKpWU6vo~&RkeAi`D63)#S&j$;R3hzst(k zK^Ln&Kh|e+VI8nC@e>!TF+bL)b75_?zR9;;tg;L8+My{KSm=q?_{6Ksc<6B#E0!N? zYzCI;+dC{>YhA3G{8*uEEPN(wx4-IQ)#u0h&D<UCtj7FUzs!ZzZ0+N9 zE>?4XtOFTX@P1c(hnJYZShT{$O6A9THUkUZAC31~x+c3=-i3K(Vw=Tct&@!dfW^4O z_MtI@SgmWy(pVdZivxTk7uMqz%X6_}`LXWHz=B^J?YhtUt@f+8BS{%Ka-YR%3pws$5t%8zwk zHWu+ha&ho;{?^4ROXr{sD-$EKv3A9OVQt5~E>O8p} zRDP_lW@EL+8>6Ogceq&ORQThxVfj^^jkPQO^qFSN*Xm-`&GrueSWNp zTv#cKm2|Nh^J7iU#$udymhrzfxmeBlvBqR$5lj1s;nx}$E0rJ1%Y}8h#aiKF)u;3S zhHb}pX6MioQ^}1(fBmJ4)tDda&1|e)@f$2%*Sc8E`LSNfh4mdP_cL6qRDP^yvayJD z*g8&fvDoW8pWJWF#zIG1J@FA2t1Lg(-{!*FVfi({UajfAO@Gfv*S)#0R+bwb{kDr$ zlOJnoF08k09sk|Ms?U%0`CM3!Te|kUSdICy;<>P%w^%=Lv6}N^U6PHpG5$@fqZ?hU zRDP^+xv-wLSYLOsyietA$C7L;=J^VY9r_y=t1Lg(@2|<~+q>f9EY@u6V#9bdF0hDR!ufmIuD)sXY$Z@?Ibqr=Apkg%jBW&igRE4%Kw4y#P^N= zztCTA`PY5qp|kf(dcEZv=NMl(cy5tTLoNPfZB054eOTW7hf_wI_Fyt|*%OTKaJ^d} zFP+CZELKZ47W(*7c=N#St6i*AI-hM=tmm__TH`UBgEq~@^3wTP!(#2USR2il-_~(s z{0=|=ZxCzOni`9>_!R3?AI*hzv&~b9xLEZzN9a^ob-A#fv2-0hnbrx=W%C^?R ztgG$3(yv{t#{5`+o{e=he)%WNobhWeR&#!=*%??Su5r#t6JLMM#Y*MJ`cwuMvdS3N z&TZ^)u{@hca4LS4<-&S?l9Bs_i`AST>$D6k>bNWZICet$e=b(NogX|EU4N`HeLgL# z2J40~25Y&C<=ME|sjzx7u;5o~oEV05)y+e&E;9D(R9L^rz&LNSl`RQqK-%77lllmvDC#P*GK;Msp|MdHWvIE$@s2r_b3;u zK0ns_Tv+egT(ABUPTy|KkM*@|EacwCTe@AW=KNTTvawp@my$b9yycLKmCBEGeJ-qx zmS4>-R*j8Mor?EYXJZ|W@3MI+-*vI-^J7iRz(T%`#_v#U@PXZ%U94sspE?y?AI-o* zzFOl4Y#rCRSYD8Cc`Rdt&X1n_ZOy>s0)DE(41?vc}u`lT%%+8XG@2 z71oXntVPl}Gfp>l=&T`Fc3f~OtV9Nu;r(?H!>_Q56|;Wssjwc%g+)$i6}IEI>{aTI z3phV9Ki2YWtX=VmA2qSAU%6PRY^=aHP2nHyWesCFIS^&e8p#D=Hag|Fy`+^!w zfB%W^xb)XtnOB!j&4m@UKL00j+wZFaH>t$oyU)vM3ca>kJ zY46k(dE0xBOFw(BoA&ne+AnqK_p<3`os``@b7r zG!Es(-vzwjeh1Ga_-^;z@%Mvg@2ed%1~z@_H-mdJ1^eeTW$cez#{P>T_8W@O7jzDc z#~xkmbJsV4J%Gl09(#OwEuE2QOZ3E=4GX;}XKj@xr@j6DkbS+%(5c?k8Jw$A|GJ^W z-=}L1vK8zlrTw_-ph^4V{+fM#RHn|{DD%QCI%lDjJ(k&btDijzEA%~}x8zLipES6C zl-a+G_a4%oTbu>8lYLlKhWoz07YU#G6jQHx?2}dLmGoW2zDVWlk)=I-Bb;ZTeVuhS zm!Ub>PfBa5**}QA0-vq)LdQPK{$Sn6*v@FYVTTt5C))Q2ywTZ51MHVn%l>zrUZh3) zqOECOxA_{bwO@KId!-kIA`OuO?dPjK$_mUG2=lSIDaO*;OQ@T+D`U;~L@(S>;2nKb z_|@S2ls((DSDG**T*tZJ#Xo01v^>Q5_Fky4VFGO-%+G|pZ|a<*Rn+A{_G%Ao;ZA=q zqk42^)T}Gl{%T&b5LwY)YeD(qx%gD>6&k+OA|IA7{<-!6Uv#ET{S};j`Zv4(=dU=Y z1p3=4w~BH*xK~BlwdhjqNnT6Ywa9SHx5Fy8H>Prj?m6~cKnrc~qd=ya0}l4Tiqp1n z+EIH=zI(6s=F?uyMalokvrqG{c6Rq)?wM}oOK0$X#o0T`<1Z~w8T;YsYz)aq%UOf<|n?~ z1oAS^>~A@^-Wo&RBCVR!FteV?-y_+EufmD0ZJ(IYWr zXeQrhp_AAzt?vN5mi_9wit}IS?-M+aGj}2_MVz^_$}4KnIbb?xqM37CY6^}&r!&wN z^S;jZLhl*br2j2g00Z*M-isYYj*Ah*&9 zMvf^bz?s=U@QiC)%yZOPd#${Se~m*YTPVbfa9PuN*DA<@Nsor~AS zZ^XkIm&$V3(Z+L$@x?lAR&Lccc?Q8g^{k|in?wzCA^9_Bt z?U(36c&D?7%(+U}!b8;!UhB-gO7zEM@O4JWPWpY!D?o2Yk~NaeIkA47(J6aN+tEg` z{ujBgdu_s@P1!TFPiG1T=Pv4e71eEVf%i@K+!<@b?74gkrEA}`d%M1VH+qx(lG{E7 z9_{Kr7wAq`SNwej-?cCCPIw>mhlexv%MA8$R$p-SUJ>%V9=lr_vgi0okDUV_w{Z4R z2m51c?~-0*e^re~!)o7-dg?3m)png2H(9p$eZo$p>g`?}{je?k3^7<)QY zUw7PyT(ckWV*Vxn+G}))7pvIgg;&J6o`dWU3`Cj+2BJ;ck9REJhv+e1&b809d;gVj z*Bt5@_rRgv4lhx%?6&9kkB&Y17JX-S`Tot5Lxsu0WmBHt36JID{R`#Xx^&45yB~LW z#RT?r*8Q$0s+xMX&uZ#=qJYoBrt5f4`>|df?0p`wI#)blZ+d*Xy2tQ;AN7#Oa_%jp zP7&&|7+TgqOIK|uv194t=WC&*8(Q|2?c2P?i`=gBAg}|+;-j~0F6ZCl->u7V_^a@d zgIR`aYIJeqS~AcF-S^AJmD>?5OhkwNG-KKFL^u zF;KYWWyU}r_HJf`bIZ{8+LyH*n^@qtEoW6N5D&EH`Y(Qhzl6Q(sKSx`xRAMuKl)6Qcbd+Pfjc7-#vlW#FLtqzqekHL$Q%hqk~xpe*JsRf~f#XMKK#9MIy zzD!-^CG@=qeK5dY)hYNrIF_^WKZiE&UJV0I#aPQ6svd(9VCMN#_#>c*4FNneB^=NY?qZpf?WoQMcvLvK(4!y^#&*>w`Ks zxf@xvV^w<=<$0pP_<51Osfs6n|1#w-=AZN5S|;Q7=&Wq~poVT_i~Yg-d!gwFbiV~1 zhrJQYy*~^rXldTCIkxwq&7xrh{3wiu4jyLz>|WZku-;45g$kE9|88Kx7--P>t{tE9 z`uo_Uxr=^-|M=}B zxQuI-$B=(vUpp|cK>L?x%1U6D_xulJ-?z~};#zhrmyQzsvQfYNRPMeax@Y9*FTwe% z^Da`K89aYAbv<~uc>OPxSbGzrO(c_?d%57-_@+9?TW5Fc8J*=FoY#8mc&~N8cTQqI zHcowO6uhg9ah@b?aVzrCT^g#mEgGxnIXhG_)r+&wTF)=N8g0lRc5sID3OL5l<68OZrOA;0zA>&d8<9X1q;5t_zJ? z&KQ_8ri=SJc;-U*Q^)gDxjsU_ukuP-YUx8=_;gE75Q9AUVFSK(B6U4uog4A>Zi>-<$aOVxU8`8z%!-~dGb?n?;al`A zm0jtL>?^^Z9l>^uTDpA3JJeyo8?}5D?K*|CMytJ|zI}|*D?>$nQ~B(x^!l%XM#c9g z`Si&z)IR3o_1*9}6=f`a3K~@Y5p0}j=&OwNzXMHkpyl?HvmTp&CO$u9JwhKAU*_{U zoARdc{~~-*{O{J24{^oW6CA<3G%7*EaCWd8Q103~4v+yWcb4vu7`2@2=L^ zpeXrsK2x;qkNwX!Y{l#5x8mdhbFU=%Lq0Rx|8`=lYX51YY5%Kow|@lL2-<%x&mTco zeVFz?E?(3A^&^OjpuZyM?`5ZI|5DojY}y|^{1&=4X#Z)PIqSCnmQc}<_V18xpiSoT znXmo-@Z8Bw^#!MBe`rworv0J8v_CXuw*Lm&Jx-g;=L_20L%!8F%ee1xpK}k=;}7`~ z(vi1`C+LurM=WC)8OUn$JTj5>yg8qtKJ{j)EGYgTswLJJJff8{@g=< z(>d0PaaGci(i{*FucHG{&!_J~|^rI#^>Y&i63$Cpve{9diZ# z;;Yy+_dHXL*EI%KtcGz%-)GUsX8b#v``l9u!5zaZzWCo6bB~s7M;0^3+{2Brw-Yn0 z&2^TR9~-delSGochvBFEgPzN>WhgVATS9%@_)EI(@I+&A)nC4%Y`V_kTeGxw1~w_7 zc!8NWf$!H?y=Uo{8AWZuTOFG3JySvXxzlgTK^J&X<9@;!J zKQK5S7sUTejDj*WZ>4iK3*loCv7kNpRd4(9IwW@C_bJJj`tMHsCFAGusTlYgV&E@% z(T2(3S(&lEbh8r^{3$%ij0s{J7i?u5Xxk)rjE}e;`2ZKQm$J_89i8}#uPLslb4d!4 zA9va*eP$axxgkTghMPZm7@2Y9s|^__;~eI9|N8w+_0VPb?aKu*lh*h!^IbEbNjg*Q zaT#Uz=J0QIe$hPamn$!UjNFBcw2`x+xxAUo&z8@!XV;ooCi0Okn>o5goYU@}R}Al3 zYa1_2)bLvY{-t7!=6UY@z5?Cq%i%4O!@~5Lue-{>_!%RIL(0%Rz;I=xa+JZnUpr;Q zRYq~TjHBhhxFov_;!Y}qT#jAtxw2cSM|s&rCT~RbFm>R&>hlt1xUw%k|J$Vlo01v* zaazXwbC~{9&3Sdb_$>6bqn`Jf#JMXM9j}R${wwp~yS%$DOtg{rZm@kBH}~s@xqru} z2j|TPpKtYMoS9%AGZUxPTQJQ1uMBhlkzwx7C{47n?{x;9N4+;9iJ9zElySe+d!sDZ z^R3?TVeX$(p8NS3Iqx6!#+{YW`Pv!f9`)u9b00qBe7<#b?)xW(xj!`^8>jRq> z(SIZ>I)hO5mVVS){zhS9T8E$i5cmbY-kgK{D8FF^G8EWf#d2MJVC3gI&KE;>En*&m zx&8D!ndStyp}%5FYi1Ze_~p9DLySU`esrh0-vsY9X$jO1Ny_z{axx4_=BRo{}Ri$LynFM_?Kx9n@7{<*vn%T zZKHVa-~QtLO{=-yp}q16TTcR+j3nk&*-_g;Pr&4_sl+T z>Xl`Uhp&t4pXY0NKHRwFx_w^Rl^0&R_vz2h*!%Q%LnB}NS!mR2r_EUP^mgx@D=%CV zJANJik8pp~8t?daZ}gQH&x$?&IsShZI&J>xv%KfGd&O5?GBLLD2L4Bf&zL`YqPLR1 za^+>jgKp&i&hVM@i78fOjxUa_4jrrvkM5f{RyyV*X&uvcFKu@>zJvTg&U#c#TJym= z`>~q1S(x@#oY&5!7Lu0~+x-&#dQJTqiJu*Me^b}pvHopiy?)|t8~2k>^a}Yzx6yYS z&0H9Eyv8#&{1CYtHdY%V_Joe%y|#N*rq{m@JKeQ%!tn{n_;%vTk|@~-GEy{@Tu z%C${zT{6Gv?dkKHenWXby~1mH?cz|=fl1+}{pUrRx|dVma<5-=8jT;3zkYS1jpy2l zu}yjR&T!#LRR6&lvmk4&r#_)4Buz*pj!FWf4= zq6=+~Sb@nAyC1&xFi!pr{_x%ccyh+vrp~kHG<8py-83y4YMA!UeTSy)^$wO0mz!Mf zHBCG#)HMFIaMO#>)b52FUWD$w(DfoTmC+8;dq<$DoOjFLzVA?Zvv-iZzXq#!A_>Wr z`l|aq%-N*n@Fnhr8scEIMM5nzz0iixIg*>9&z^jugB|EJD79 z{#Kg&rTMKiSySvy7e7STlkjo>I4`mP=>3mA3GW653YkYmo(6n*B4*N!A1GPUv)xr* ze-U`=f;o`;m?P$cAFM2PS$=FOCW|y)-V|v<YOMsmw97Z$U;jkw3(^ptk<(#JwwTHRA%6*$$6w8_z}Q*rCCu|+pac5#{75ja0b?f^{`)ucIf3$5BiD7z^X~<}oVF#u$oD}kKL*<@`0kH`R@?7`{H&u-)a^bm zgIDR_8HcIQoHg9{5a`|fq@eKv6HNs?V98D&mI+O=)Tt18P{`WmEJ`^N?!^?`PL=W zLoxIA_XZZUp2p=98%7?3l=Y!%vy-$6v>8Kb@Q|&dq zby2A4?aPPCgKSMDef2HIkply#!-F&UAB`_Uz3)bc-^<)XonQY3TmLr65^_+C9F&F_ zQ<{7MwSV!D_P_B%)cfY3-q=r-ZTvmj{x!edU*=OjWqjrPn~1lxdP_%`IL7VD*&|-R z>z?;FweZ^)_#Zmf`efoSzLLZL$A`G_qCuM=KmT6lAw2(2^F2iFK>>Y#iC55IbZ=^??$w;M=9x9;+}RPXXuk=*qI<^ry3@$CKTk^x zyT9)T*C5Yxntrvc%frGmu}g-&MVr`WAZz^6+P(9UUcJ;(d#!43>47b)@RTh?YwBg6Pl}2 z9;&d9puHF7zu)hEA z|lKQJmIk+hCOYXUTL6G0qx!vYP z{`|tB@?ge&+hY~?Q=XBBNP+Perd8lCM2d#^3#qD5f7_f;|GN{45>I&E=##(wOw-9) z?_djZEq`L5GSr{a-U{BQ69sQDk4Ik`_`Y|~K;7B+{^#)jG5$Z^H1JF0WX{a~g~XC& zo0V^p+EbAMYk)&6#a@el6bt+8^7 zcRQbvXE*M2!|$j%<(0AFX0svY^?OB}WBF=U4NEIl!>$t&=l z?RbowU&aBo$d>FY^8^j@m9>6ijaRUtmhWvX(ELiQU+rJY_$OXY-y?=KndeIJkKomU z&OP|k&{HV;#=Rq@%9vt+^>^c`90fEe^ND$?1!aF52)S zV;0J65#L`1OLKDKS35Kw9ZPHi`ecX1=k`O;!so!ZX~Th!(1*tGKbHTqng*U@t{b1c z7N5N1`{XzHye{y0-36~7S{%FQ@C@&(tDs$cmLGCDW$vF5dvqP`u-_}vdZdOf<{I~3 z9Xqs#IxQXJE!Yoz{p282+p$*#G zu^(Dv(776(T%x&~!oKj-*w_U_v*Z8UoARPYn>j7MjgHvZrBFjX=lTC zl2``${*74wqwxJ_@VxW;$_r;*4gAdPWB-Z%2>Mv(**7(Hm)^`c{tJxb|GcSl)3~PY zE$3ku&u1J`+SK_=>R%M<@7(mK++V=G&-2@jP486|Cl;UWHNCgGIC1+WeC{hw+*-4iF z|BPD_#_wX@@%H~3STJjBylM8hnN4#i#-MWq^p0fwJ*uhmM&xvqcWj}2$6D4ZA(w04 zy{6&G6IG8L#%Bw2zvsqKqL*Ah+W%3>>a5W5=d|Xbsq7{4Ohd;eUbbcP8u9=;mrkCc zSh0Rf@ws4`=D?KaT(^6sauUsaSS0ypTr0=rI&-fe`Ds2Y{A-N`7jZpEf3)v4VmsHI zGqY(A{oqIYlmNS~VmLpR>{ayE>qoDuEcV{=e0{sKfFQ2&gmXLCFXK1{t z{K2)*FJ1qdZ>z3>{+(V)vS8U1L%)6#{mQrN!ak2T^-zv}-R?8ebVidCxmLdW$IZRM zWHFyb{I{deIwE)M*6&-fT|3a5_4idBQp`fJT5|dlJ3Qs{l_sAD|BvLLZN*=mqH*8S zDKk8NFU7uJK#We~xYpicYag8)KugIS$}30ZBXq+-`YyuwJu$`cL4I&Vy@U-`X(FR0J|6M8-9 zRUhk{n48|e$U*O}Q_#Ef1JZkJU&Q(=-@;$nS1{CH*+cv6qkUSi89!%j>6g4`mhj)P zo$p()A+%rj6WIA`p4)_MV7Iq1@tfj7*nyqAdjuXNd3QeVeuQ^Zf5n&uU(?N{9pU3;VSNf;bi2)$?Eo|NSF{(n zrJ)ghdyxtG9A-ToW03Few)v3hu{HjNVvw83o%llJe3E7~zD@gJZ&N?; z`eSB~1?ISE+x7|gZ~uOB6FjJ>y2YEG`P;EKPi~Sfj4-Dl9?qhkYvnUg?>#l}@XxSs zjDs4H1+RWI^Xp4Y9IXR>;RjZ<*V=csz>{X$wxcpsk)n=m)cJd7L38EI3SF1;>_RW} zTA3HK^U8iZ%Z4tcowi_exc(z|-E&aBt9)Fa3Gtnt$=pL~!J?G!MXN2yJ9dhpl z`8Zq7VeQHT!E@IC6RmOT*G_+__RFpI%asol_si99p?j$d_ZIo(R{Q1p_e{Cfe!2cV zQ*JfomfsV+Yv%ycIod&;Cwj+<(VJVw4XyLXM7QKLUB6g`;RDa_y(?Xpdki0@4teec z!-tE8+%vx3mP@^3ZC_2lYy99LeDGiekn)9>DyBhvb$Dq9Os4Y_%S|70`2F(l8zn|pyp=Af} zQ^t7coxuBX-mUfDmmO^T3rhpPpXB$GUfH7a+gNi^R#tm{yFR_}2IGVJ@*!RLlQ84F z=-lbjQ&!fQvx6SfKce2VLH)-E@_Yk%Fw~=Ju6IznPxH3b+*6<23|95c-m!VQ_eC4) z^?5>m9rP7#*)01|y_D-eAr2gxJAIY(BXyccpHR8d@mu_7w=x#Z)YmC=h+7BIDc!oS z(C!Hl=+G`~)E=MKC!zJQPpj^UR{ZI)dwg2=__TIWw$Zbc-wmy!pl1)X?w#)~m<6rU zx4|>$v9Y?=*!Zyje0Lanu>tqT8R#kXhd=OJkVC;U!y3E+c@f0>DR5&uiI956tn?)?{%$juB2|| zamH`n+$%M{l^s}29q}D)TTnN(MLWEh$vbuaHTvuIaxa{vW3eg5)+tX`dcw7R;+NV= zwoW)5V4~MwSDn&rhW^iNvl8@I&}MHCvrwDK?^T*R$pz1x6$O899}^%F8ZKDApACj_r~yzF)&T%7v1T zTRssvLYI_zmH!&PPS>GijO)@e?^um#*V5$E(7amt*6d5UnEovc$*0=A6S~)OZw+;m z4hZV8evJ3c;2q_|sV?+cQ*X(t-j%%H%Dr0NRiE#?gmJ?1LHWKLjLu8o191TLeT@gV z@NPhtY_8VQD6SwrZvXblA+nMslk@{umNMmE{^BBNsez^r+F&vIa!ZZ1^`cdE7p<~G z+OHwScr@LI@sszQ4__~|w3>d*_*C(#fL^1=p!1$gI^n1I_6q$qRZ0D!bE@j*-rM7P?qJ5a-i*aY3}z=&6{d;m~8AGKCRBq_JcdC%)UX1 zRHe!a^?e=v)K&!#pwq~%U)J8Up>-X!qO01`%N@KI&??$r;P)&$whkVk$J)`CONbXX zo^a+e1AUaCW3=wKp16s4H<5Nx{co4foI|lj2c(C1{6?>S zdZL^h#)W<^b-8jI7l%y_vT`><#DdiC%FMpVg^AaQKXp^@W^$CeZzKms^|?v*Hf+}9 zw%-VU;bTNH2~VTcQ!!bsx#)toL4Q*{rb@ZOB*1|hIe(?a>do(%ik73-P;d-@VYlB_U7~K7sI`Wykzq1e&@aY!@WoQ zXTJAW&U?=f_g;?j7V=)lwde)fMsk(9*799E|ActSZ_;U>&9K*VGUblvT)C^vBX`^1 z8`u>40R2EdUBJf&sn=Fl_U^Lz?;3|>^5a5>A9oG+UJjW(kN4a%mt^wtry(ovIm$fU zDf6b`-pf&@=e#$M_ht^(v92UAmDDMF85o6rt#~3%3mrYFU%W>}~+$+WJ9kT9rj5j3rR58e1#0E2CkZ#WDsQ0qt zk;jPXnS8g8D!!L7A2}es#e4;G9UUV>{j4H>rhSYZH|-!VeNA&k0zaT)C*zo%eBYU> zNHmg@aSdyr(>amM13t-b`9;~^iC+bjNGbr6aOws%4P-_ zrr)90y6H!=(Oa*OQ`L)&E(zVUyT`ltQT*@~Q$p)Ei$A^SH^s8F|AXekdimG=HPF}@ z@~$*AL*s+cv4eQ`4rnv?pkp=nG_ICk6wo%y&_qlSd)I+|kxi?DhQ-jZ78;todv>pZ zhAq%AF|^ju(1o254VsISz1AFP7kP9g4Ob$%l zsHS(TB17h{&mzy#%&q+wI*Z>@*syu*J(c=Cb0#W_`e6eEWK2|0ZPrmQeqW z(;2JY$ebT`HpTr8{IYgz^EJpqS6!sSu0PYhU(w|4YO{N_57oVocGXpx96;t_lRIgX zo$Rl>6TAK-*Zc9+HTOJI`$OJM8)C;LuW^sHR?TN7+V5nZvTA59zyV~^@RD2s+b*Ta zKaTXi`8%F_mt1={Z{SLw@3LR*Jpa4eXd)Bu;@}zP-rIXvJNyy+8E<;xou8lF)PAQK z*Y|gH5QFsBf6b!bET-Q?n151#DP;ah{q`R6V1j2-_$uB1MvgUpPxoV0_Y_|0-J?9_ zmru-pOnI!Gchg76HJJkzec+0Ae3me|+#LiyBRR{7 z>KOBa_zGyozvJ8=VaC__uv!vmhInsn7P_Q zGuK(TVJCSxYsn*;#9E;pE5{!{0!1)}N$*!q*E5V|&0OXp=5w`Ym&Q@s88a$Z)6nmi6@#81j~dwY zQ~v*%|L;*By&tSi{mppW-+$`2i|VGopnl63GrRQ*L+696Z}_lv)O@LI3%S~+jytL2 zHSEFo5Ov(|&qcpX9hI9fkvb|*U1i8FsQtyWS=@_~qp_B{e-M7{`+ul=6Y#34bN_#z zb22i>Xtko|BtZdjrZQC9oFpnB*5Sghwzd5w5YR-lmfCxjYE42wh3G9?+CQz@LPXRY zYo(|a+S|)iQAr1s_71(b*E3`!SjA#Xu1Nl$@7jAO`)m?K@9qD2{yb0E`>eh98s7EJ z>s{|6_VWr4Uc*Ft*x0~JF(?)2qYk_x$G~d|aH`|)cK#LsulWI(HMuZ*$pzk?BXKg=1z!LfZbCci@Jc48x~ zC*Dx*fvZkayi0EPIj0g+na)4ldu?cGZ#maXLrXPo$$#lN;=z*=OE>SoJ8aJ;-a+xT z%C9i-$jmhlFi*V`t%DJA?EFYD<37bcoQdFP7w=Exebpu2DqTr+EvBvmbHjFH&BW=- zO_L@z?-uG>MO_7xoVwQVp6++D@3rlz$c*-x$S!mwZwy+G?LgP!E#-_`%_#quR})i37v{wvr>~0D6+cpD$rN!{9xk_+z`3N3(Rs zLhD*Kk^WGE52K6NAn6w4StpdPMBKf-4*9z5cPk!=u#T8E`E;G! zYgLxj*a{5fTS^$8my^q@`&@X(jgC&DIyTVX65iPb4UD(4TbAch_e}hI_#GZ+pPHAW z*VK2j)*>R^(8oM)J^EjL^`**VJb*oTxgolK3^Nu?sksgd!$hO3&GAHCDN&+R*#bHvoI)(21eUi~o!^rN1R67`Sw+ z-SiFUe6(fumC%lfjdjOaj-2_WmDPy6XjwkY#7lISxnpZ3|FDUlyWQz?ojbNBcU*=q zMQ;yl})a$-H_6&|Zswi4^v_Ec;}Hni{Y&)1Oe{(K~5vVG7y z%FzSMj1Mc^U4$P$Ozi!F>IH|ZMp}*YDVI*^z&B*zE11pQCH?1K_KEcGIVNs+Q{nhe z*~1uz|9wv$p5ylOKL_AP$`7#8^sj&aXW|sACp58c>-10du6-Y0djQGO^p}eUj ztQ|GbS7aA@Ovs6QG`S4Dy;=_6H~naE?i1)Ml6${8r+-h4^rv+GAkCcWvgaYhKO0_O1Wg5uHut=E;}!4yJd@S$=(}JywQqb z{qe8TmsGCz@5_sARU8@l?HVg$v4an2-3Iy8r`zsPdL>>GK z<}aDVIQ{#{1xK?U&3d1F@K)5-i`_PVjC_0>4$e1c$a05 zoVpB{hiOZ(3}wJv>-2pvw?+VSCkH|}>cBi~IWP~qFb@M$!8}~)z+B~mxvqkto(tx( z2LyA$H-#J_24m|(r}nPB&RaJMz%pZ8d?Q@UD9eS1f{&H%Sa-X0;*Gb)=);-geVjeA z7Xr5;=s@~UF8vWN3D%8{|N7(T6Is;@rmx##Ehz>5#rP1`-5OdlpZhAF|CRREeIvA_ zi8w%h+kfVFIakRD-kn!ugdxrzt^(Lpm zdG^n%GGY6Cfx`oy1-6>sgXLl4&uGTRIaHpxAMsE+(?9StaK`u&@UQj3e4%wP1isG> zV^_~buS2&m>p2zJ?N#U-=&9|C(eKbzJMm9+-D&mg$0yQ_@8UotYsP!DaR@upZ}*-F z-!gVD_PEw45(Vg2#oVKxDCebF??WePN8jo|m+M4NG5OEXv%2TRdJa^T%`kIY?(FUR zy8-ag$oc3Pdk!#rJOHz=`e3HL`@+dZF5DEa8O*=kZ1`J0K6-Lw-POQ`Jx-D@3j_Ne zvWT~DgP&uAUm~6_zn^$jHnh5qeGi@BZwWdhYcKO2zia+s;YEY?fDVGcj&CO`-Z4?~ zUgvV$x;cya8pGHhkM!r&5G^wH)rE&HwTChGs=(MU7+~yY`^LV@N0T0Z=nC+MKHPv_ zO6k9c`^W2l7rc1DepX**r`XdqBhb%mUq3ZJADrpn^?>=M0{!dbU+{?x`R4Mk-O^#k z#DX-osqlA~*xTsKCjxy*Ey$#?Ke&AvjDHQvPobrO`t!J8GY~(0r@(%c{=Cb13tBJq zX#SrA{rTy~?GN~C`U9@|dF8!=4?478r!+ih^$7b;`tzGWe;x_+=iv|OPri|#{q)p_ zPxNO#{5Q-#mJ0T=_=AI zs~DGfg>0%Yyg@o(72_*F);|C&su)`g&!WhcxxBJqEp;OxnW z0GAxi@3AswQ{my$>|XZReLet}A|G5le)&lkHsY5*b9sixFM{)1kYycQ4~-V&ab-*e z!<^VF3qEBXx)^)@UMD8cojchzXKbgBIGpg$mN9X-1 z?a0@pajjw>@B(nAtGar6$x3U@y5?T_XZoTst^-1~zHtD&$SsQr2_r;VKBU0}4 z&GCa|$D`1IcdpjS=3aY#vg4x-ZDhwsnzF3;*<3x{*`M1-a_B}EXN32u5x{3mtmo@K z{6E;>mh6_DQIYf%{u&IYd zT2jnaIX(d9@8ELugyrZ7%h7SG_-mEV2ON!IFOOl3Oy>h7nP0)Ah_W(#(iPSjUr!O+ zlPV9-@XAsw>?qD8ivFCf@4$m3J|uk?<-6&W!Gm8&;J?$Je3ch!pAxj-_*6b?-~1Y~ z3BOT@^-{$xbp!iue1F|Dd7pVnfj4RNy4K0y5PmNCv^u6aYnEN;bqC7JW+cF`{rLF| zKDlcWo~&anW^ZBQB0J>ssd_x<@aYcyYA%|X14rL=;m^KC|NiRGxpi9$v#d)J=$nPA zll(UFmDdr|X4PfeACTW89Cq^X{xdNb!l8cN6SC_^@Qro8{Stey3_O7EU0JN1Ud#BP z1^M5Kskf?5xK6wt{8=%#eR8SXS!;QJEc5<;ZF8^tTfWv5x_p^6-hSs7AFP$VCmeVd zoX@(e>hKC<+hli_g702mz5aXcEg+Z8S+u>;w9UKlkAd2*Xa7>6HP+T1+Fs@;3H&v$ z+f8o968q4r>>*}uMfW$-_fm2hDK}y<>vHAfGP?5gGPA$%s&h-5^Vs`8guVYc%t&7mLm(dUT23Ft` zkZ({vmd~@NOKZb}!EbZ`eml@927;eiFLdW>1#{*9UC(ciXNXT+@8af-E^qMLw~qgy zU;oisy>bx)yB9>eqIH!On^??nyi&24_-abQ38Q1jK4s5`J`>QCr*jMElJq+PjV7U| zLd(rF;>y(2Xx5Nf=e(bOX3|!%eNN@k%(C^x_F0s98eiV{DHJWXOlY7f_V*H^cW=atxBXQ5MFfj`Ob zyITg%msz9j8(rVs_^9JY8gDs%r11&IcQ+nCk^D&GD;+DWRk)((vdzYWGhwd6 z(aYt#%gglL$%ga$?p7e*<-2=2%DM-1qM1Uvg}& z`f6kkeMK(q^Pba&p3hO=3k1hdcN08XeN4=Z^?aB9MTrSA{S&-^z4ikNFW1rjkJw`^ zoKczg&iBB5{Z{KlWv^ zuAn{p^Z91M$SiWDalVJUeyX|ntUK?PVCkFpBYy>UQ#9Ak+N$PJdoB$OZ(x5NFa!st zsa*7?y0q?U>eJlL>7Uyffw}e1Yl?YY$wT!zMav^QLG!TaagPhBSes_(oc=2&`}bcr>{ zP1#SC;`P8;``;u7zUb&`Yfs`1jj+wikUWtaIv* zYMh!w`ee$eTV)!Lc!uVa@j3J8e(&L1Y6P$zgN$?Y>h!P{>Cut&kn|XA4AxqM=Z|^z z*vbo~fArg9!pZH#QiwhW!o&HTnT7m)ecff`m?ajrw$eHn)3w?#WFP=yIO)fwRosEN>mk zu@yw`YkL@{@a2YB&v&>_GPjyP57!Jm^Xw;j5B{D+_K80}%kMsVCjXK0tt63ioUi2A zAFiGCocI8^sBeD6z3^e6`oABj|GR_KKP6CqEk5E01QV?_!jHr7T55-=eS5y_mo5 z`S@8v$Ro|o^uM@$1AZysS8mE9@rx;!P9Qls-;+VW|DGRW4?!a-`c_VT($!k|PGde# zJe#ZGdxO9t`216W@m)B`_&^@m}Hz{R2 z!kZMo$(Pjl)Uce!2Pm(1%fpnnA-koo$i`7V+RhU8>yuBZ{XG|s$T+iis)Sfs)`q2n zzR5G`iCP!B938d|Syh70ThAI{EBx2t9occ=_jusDJ&#;gmx5dPO0<5oi)$Trf`z|C zc+(0ktO6cZE_$Tsf>?FM#-z{@V)#?vKTcl`sV}B|hu3HDLE6uveZvPM;30KOHz~tk zB3(;)8f(D^*>Glzv{%I#6@#;kYZdxzEk2qwe7Vf$uUWu8+3=y<{(a0Rh#Ns%Irg_} zd${#oPmJ1i{3YS%#nOG5<2171ZE#9un%mpxyUITuz&ky^WDwlD09aRM@WDd@@+}47j1Oi%=z))#{LTV)$-y8sP7EwOEo}$(4oOwa4e1P z+X{}gT?@|7#lLntWyT(ne^Wl)Y=^Jxa_kbFA+^7PHPxF3r~~=Z4xM*Y;iHpnL^}nc zVcieG2Zx7-wLFylP-AUqc(=~LIsjkpMBco013tB-&u%F|mPV~1jeipVtECV0^XHGr z?mPUF=Jo(IlB8d0?r+tc&qS~1cV{_!V)5mwKkAqI*Ec3?A;qRCzR^GCb)li=tg~hC z=>zZ;tv|QV1%}tEFF)$*OJcFrvq$}*FXG3gf9b_WWv>MNJM{-+Mr94a4?v0vd()rgFB_g_%I@j1^7_jo#wbd=KZ=KPx%id}tNvN}BHz51&f}fTIz#R|sWkf(YD2^j5dU9X%AST1 z?0d-1X#cR=eyWyt8N1_S8R7U`=9Kj$uPy8OL3i(3=i5v_eV6wwc&TqwmzMRU?zE6c zW#B0AF#98l?Ty3>DqnMW9{FkRbnsVem1X2~DB@y;X2p_|BmR$rsiLZF?Bp#(M#*o5irFEQ> zq?bI!JV6r)#y5oD3s_T2KLt*L&uv5T6%RYxZYSPfwABecVB_qaRDYJOvyKzQRj}5! zy71N0?Akp?*BTv@dJZH1id2u}DBqZR>dvAbzJa%37rs;Y%S-Ihd?P+6z1H*hzI>>6 z?OpK7_D5qq+wu3V7u@Q`*f#*T#0IOU&iJ4|ZO`R5<79u>$@0zhKx2EA=WI7{*bN*~ zd@tCgH((zD6YaweN6}3v|IY&a$&@bxMrMBq{rp$TMDN7<#)CL?7&sbw0LM}d?BTf| zTq_4319VgE;lNB_%)8soepPbxmuK7N{JeF*8vL}tZMIz43pi8HqY34y@o>JC{&+O= z_s~kPKfm+!CoF%hp_6bo>lOpjNzCn6ADysAI#}m4ukWIhanQ-nV?D`jF^5hfIT>_v zzW469W9h`?$7XM$)+u&#W});6>0agZ*Q0v|kiFf=o<=%UW{g5v?OrJyaAKiNELf)0H zSvg!vS!YJCez*<(vw<_w3#~}Jw0ivX5br@Vc8GrHYH_oXCoo3vbG?UFfG75AUbInajZu z*~fF}AIWP^IZ-^oZ#N(w+(o$`XM_v$^sb8wIWFFmfH(Qrf=?4Kp*)sdz~XH3SaKFh z{7G_c3J*26!b#y(6Zn^nyl6vrRh^$01ixnc@T<6RVB9KkaVyLmYH#CiaI2RbsUB`A zH)alVNV%$oxI!;#LYBT0B)W=-r>mJjxzdJ}8af*$c!P z!{k_x&Wcn!I*)!J{MWg$emu*-{|ox@%-_d%x1Kou|CM-&4E(wv6aSwN^vlElTi(v> zR|fuLCk=-GEgzw8d+D3jGcx+;;=iYZ8^0s`|BtLy_t}Rd@N2mCq4rDU!;AgrrOBU` zq>sJ5k!I=H>CnV!MUm-K7ldL{6Q}TOocIv+jS&vw`y3bRNt_bvnUzf$*W?)fiXDAV zIk1YL!4$vIA;+rR*vbWZ$J@{9_~t!XI-fY`!piaX3tt#`4L2Sbi}Jh5tZ?iJH-5sz zxb>fZt{m-bkbB`=bp8kH&$Ay2#d;phMkZi~y#`I)%DDhPs=4*>Goyw!E~eb(~N?S@Al5Rbgp@OhKtL^=a{=-$Hr9A+1>hu7$v zFPx9Qsa*cU&|8N(dh0JfYwsua>vz=S==P3}0eLZCJ!Y@a137m4(Av#62fop~OWx0S zVf1qsHhu7kIPui45$km*k{M6EUHgYE&dJ=4e#AT#AoDc8k6Y4%!o-Y`fBs$OWUO^? zmiDHB2aeA88T-3@qjmcb@}r6Om8Zkg@0tIt%biAVq%P!Zur%TH}pHiZ`HFMybDh!wka#LL^gXx zb!bTq*Y2L&X?;3MB+J-&CKm88u`kTI!4bFIo1gCsj?9}0%m%-m9FOu-}uV8a0krRdFAJ_@+V$V)oeBHp( zU6X`g8@QBe4_f8L_AHIh=l}6!k6Axw&Wvx8I=%gI9)31sANuzb>ik6cBV*Vaik0fa z(};tok~_aX3Le0JlE@gai0?ng>hXd4F8*TJ2v7 z%Fp30OuaGq*NbaRtYm*Yl-GaB$#TY^bu|lIR1U=ua_KMc602uoqx$pIH6er3v|kBd z(O$^~$Sa4=oiV2vvt)0_0N)lep9#hl3&*CW8UKPPv99dVQe2{Azgq02&oZ&*PV7eJ zKFo4rB!6+_=-OZL_jCR-<~2ISe&h3jvc$#quY+alFScK$OlzFpe2ip1=DRtEj2!%w zn^TFtN)fnKe-MYbv`(EIX2;yz)EL6l;OutPeD#xz*%M{{%FG%`J$c~g4~Dqr*C8}g!P*& z);6++TT?rx;A3X4UKv6RHS?AIyVY-;Wvzc#@l21S&+9D0R`9r#*p$RH)-zQP{HzRF z=G7&>C_7p0)F0$IZOF%)4~~=*;}WXguq8Y)+*nQ>>6zBnvb?&jsdCHIw}SeRK{Iv| zQ|8RqH2Z~rMs8mUT+5v{pWq!o9Y9By$X<$hGMIbe$7jKL1AF?JoLRSZ8Q;my)4O`E zwLwnX#VMIluvZXJcN}ev)~Qy?k`-9WV6B3BxN&f_RgdVt<-4 z;bjOI76QZnqCc*@F}&1YKm7WgjjPYJ&&JO(k@{~8)IY)0g>Of?*>U>zNxr>0@a?Gs z^lc1f$KWM6-U=Z6buIC#oHLpjivMZ3vj@SkrE}t+mW-L> zoV}AG*UzE!$PAsS8~7TX=}!FPW^P%RVLj?S-V5g3`69AK@5-;z&in5b54D5!UFW@X zXIW4Cwqx7-t-n3a@k!1p?IDJLt?~{j2hl+7Uh389wHrC;};^6#|{lo`%Tv*0AB%kEG zl+&6!ri^RuXu*GxXC3?%x>PSRX@~q*$hwY-(w+|ZigI`rT<^pPDE79as+71m^5>%S zbm0H(M5nEW{)(Z!uS4_l=~kXb{u0rDEk5PY^r=sUCQj}97Tz+@x9ExH+w1wZl6$@H zfA0a>=%j7k3Ng0Cf1s1ctb;|oW1cg% z{88loW^76HMZKS&%{tevQ|#GGqlZ?`jb>9Q*8;+u(lI^z~6hW{;SOU?X}qnF6Un#n}N)tDgPX2<`!7PyXP~W{fkRY?D}x|-dNk5 z{aI_?ElY1Z+bbo%*1Y6%rOn^?KV{8tmw%%9;I*eTAG+bx=C_}R2D8c8 z4einH!LBLRy!d&s=I2UFn}71TGR`Z?cg`tl$hU7V*Lg+x_L6Hk<8LxB;Jfv}>cC>w zrRS6zc;jdtoBlbxbP9dOc56Bd9bj5%PwO`2R3}!0_a3*h*wdD82fB?{R!&)hJYl)urtqS3Oc`t7vzB(Hhb`@3 zovwp*x@^w5l;5Cr1ZzF;n0DwSc_ZhLvCg4-)?@n>!;`%8;j7S%-$TX+dE^fGh4_B@ z(sJ44PX1-yOHp5poMV=Cj=kyk=o{)UeOgGHZL~@LqLw1^0i>S?U+H5jFsuZIX<#-V z|NZSl@xSuE_NTO7Th9B|45O3se3*f6X-^YyErfrkC|i6n{m_1s$Z5t7Uc7@d#K7NL zXd&L-JFn)VSo7_rWd>imri=tvMu9VB zwP!YWrCHB!kpCyY8(nnXx_s<$?DBQP;dAKf)_+?#RGqqPbkaoT3T~> zoyx$$x8Y}9OV2&*e|H&rrQXfI%Y6^s{B2;S_hd7y8wLOM>R;>Bul0oke^veAzWRX+ z-<@o})1GE$-Tj`;Yd^_68hpHG^LMz<(AC#}%I=seT}o^8_iTR9_wGt_@08!?D{lza zk@%GTFVvAyFJ-S&=7;^BKRB?z?K5S~Ujx2fQ^o+>vCVIloZQ@%TiSDAU94v%=Q196 zG}dz-XJ!k&b)s9~>y7`wGr%8M7NIW-wg;BpdiZVRBr@@mbE_vEZe`p~48m}H!^*`r zEWU;~7sVo^@fXX_FL>5#ex8fX4v)+;JW^-6>5RAi@V@R- zN_%bz4QcEiQ%Zi&{Ki_*2Joq6?zYR06%J#gbWbSld7HJ?UVh7`6|K4DpK3Lq%*PPx z>@$VG`G;EniAd2# z0vcK<*aL5m{|*Fq@%96Y!37ugzYy%2U<@^QFotD1RLDo6uC<3q5lQwzglaEu+|_yM-+MTSntub=oqXyFz4f- zLHbZgc`5S6!X_%mHEU(h>g{A9{=n=YWtmpAuGU*6nbT5jIlV&m&Jd$Aek8S@*x#J-*Rb$u**pEFwXu|-5XbMc4-dtwVUra=aAe{_)^#h@uc<5%}-f(lY97E4--GM zs7w2qDF9y(wX~=*}jUp@RRE9$H-FThtQ+`SweP^?rdIG}ydtn(Uu>B_97 z50kqt?!jp%_f4!{8=P?cuIrT7hdOm$fYz*wn4f{_Jc~MW_{#<69l*Smx|TsBg6od4 zfjTSU;mn&?XPEkfeKhrrQZCx8_(ImvmdA?hI=A0V%#pv38S|64#NKgz=KSOb=jYV0 z;vMikAB(q}`8K1z%3}N3VA=Xh?58O^2EW~T{K4>J`Pph0&xPyy=i&Qn2H%hM=b}rz zfc-tSg0%(Vd^j{~sdPd$2%>M18rhQFS#e~?*EEix|w z474XlzWY8{cM zT{zD@0|5CNloh|{yNtTX<-d1;vKGpYp*i%29m6u|P5Vo|`C5r@a@N{Ro(1S;D>&M>uB)+nYi%B{ zDWOjFRr_J0Cl9dJ2EX?E)-MR)k>9s|>j3!p9%dtP{1O58{6#UyGA3T5FbCe-ZEad*)H`OJ-g! zJ0$vRPM~r@pj;8(EPYlayS;l(Y+1Rh%nauZN zgF{z6^~|r%%yw*UEB-ujC1u2)N$zdp{y%u8e&Ba@V+kV0PxCG2HpoA=UyJSvKK)Up^C0~hXzlig_?-N<%s;qz zI}S^Z2UlvD@4+?DOILN9q5sgZ+oM zoM`{=JzoFUpJ!hc?0@BX_7#Etf95#-SKP2)e~tjx2)b4n*vn?jVm^KuvR)L=79HNl z^-buq6xn$nzjK(Ya(L=S%Dq_L8pdmA2EA&P#*W^V7!&KclY3oPa4lfo66{wq^3&Bj zGUg$AzC9*5Hss(*!Lr18c79;IA$Pp53@~3c(5gS)!IJEPC)Im26mfYsV_!oYhA+;+ z(8{NYQ5TO8?>&ZA;0=aW7^9E(8d^zQ>!@OqZQ%T?^*K|jr{8X{ap#1Gv)^z zFAh(fM$QF8!=jU>{}x=utMC!S_Z5eAIWU%tD8fG0Z|U}aSeG+jp4{`72X((6yM0Rz z<^2&(OepGSzrG&mpQmqX&N-jEfA66?$NSOE{p}&s3|w1(nxQXmDtzJ?ec8bAAAzGs zn|*#0V7NTc&wum5GNZqN`A-Or$c|F*pagqb`f*U#RGiC54;O&5*XNhiXW)8VTmV;s zxbPJpE+{_7!v+6%t_zH3?;zuueLVdenPm1*Ge^?9WB6mWXR8U_EXA3!f}^J=mAZO( z#3yGE`f<4e*Yr>Hvnh;AACx zyyR2L_!hflJMU|My!z(#smZN_b&?F7-v6!Y_W#c0A>-{Zu=eI_4)fLI*TG+P&o+Z5 zeLA?ovqPT?$c4)D?YDzv@T2{d4TO)0{7kv`ok8ZW2Dl#`(H}qK#ml7UqT}2kxrFprVTwv{aeIbZo_tt0#n6% z{~P;d27BM=|JcrFTjYG>-8R|Q=(lO&9jcxf$NngM5ZK%!vaRpz#COP=*6OOd=_dD> z=*O$~PWaMD=}z>^@EZDdCS~UQOYU#P|8JphSgg@o=&zONJ>Z;)JC%-eC$SyQ+`4fu zxr~1(Fd2cp0v-Bw)#U+r`*qcgz}}PBvyHqvHXn!dq4cg0@u2t@7(>d6O-o6q1GX;% zEAdkK1=71pX9%9MyA>a&@fNd=X8Kv~$_~EE5`5v!Zj7AaanC3waWL5dk2bP{HiG=( zdT`9>S-f*GFgb=_xc-9jAPn#qDDR@5|2h7|W9{`ccqJV+WBkyp#=k=2r(e=(WiKfw zyL4)uAwLm(s>p-h9XRx8zExfb9Sbg6->)Dxzr3PLT`<`z#@H)5ew~61@8S}@3*C^nX!RJoDa8P*t?CJsd zmkY1w27s66fAZ*QrSaDtOHayIqdjDzD-Wl_@G6g{-Z|u>DfpCf8T8RrCF28b?3L~b z@&|Cr@CWge+ef+l!AEyzQ*V&&eyv!uk3n~L02`0)=F!$Mbm#IQ;nuSL3q7J zPM3^$Y4LPml`aQfGvRH};1$r9_V;OymyL`~&5p);ENlkp)H(|qoS%0#a_=m3b?wpL zb<*LN6hqO-z5?yDyPB(~hqXbc$i&rF-7vcmIG}eEX9z8q%eNnHk?tbcn0sic1igGX zwA%`=QT|Bj^_rJ<_}_+8!;faeuXP?H)Vb~&tUa~d+032PqMm@ zIN=K&+{-ANOqoMt)9i0N-@g`$j<&b(R%b2Lx8A|GIrf{2CvuTZuFt@B_3wk_?tXWpgZJ+bOx=L&t3dWi z2BI@0Scgc?1-Ea+_NlVq>*O&2uF^$Kz5v-T-!?fxo&81Sj(w1Xw-<^B+$cDcFYZ$6 znMS?n7G)~0(z+hJVJ`Cnj#e!{+t%JU<$O}Ur&lQJ7<<0m$sR$@t%&c3cbNE%YhyjX zVsGfWr;#I+d$3tN(D+^6>&2)4-vBK9cF8gO1Ir!%dHyHGgZuN{DyMDo4&ZS&@Ts+w z=lJ1vVD%n55ydV0V242da+Q!(Gud@{xYA>GnjONPI#mZc}@gLu1t}0@@ zgH8aP(!i({_!*c0Pkplho~!R-?i|cMfp4Coj~&3imp;Xy$6nz%bkd6qsie<}%a!gs z8r~J$kE5KE>eE2|G5Nol7xnjPa<);|Sk)yNplc`R{i)BMy({?0-aXyz^IuF18889I zqytq5W}E|1j9o1VfPUcmg#L4Tlr z&G8P#qJ1h?(#}lUQGPJNu#+;yZs&x68Ea#*uT7hbC&{zarR4vkO|>Qcs{=Y}r(Er% z@GWSaN#`y`>L_EpmC#6X4$m%7KY#-|lGef6(V;&77f)t7YYiU%KlBr51Nazy5_lB? zFT-CLXOO@AV0J%WY9H)7U>yAJ+k9un<(J0+dRvyA$$R|tHo+%T`t%LfqWu07jzR$mh%|ZS0D;A-TrYI{yFAtN;rVO2$xP`6I z<0a8PeOmcxtoXUa%2ZKj74=tvAM*M7+Ys)kA1U-|BY#}IP5kun(d3XPzxTJF6o2dg z-NJ@B!drY)t%DxzJ4td`cEuh7MW|IX?6h zb5VvLU2rz@1dRMJbjsW~w*lZfBM8UDh4z2W%EV>CV4wE&=Q8(0S#$A?-Qu5zuQlj2 z1L13eb(q1%Uk~5)#A1AJcC?j)a3_ zi(X`J9AIpZ`NsBZPakM-^nrX6lhB`EHG#ZR?wfYxUK)AUwirHmGr7r$`SE;_%2Odf zq zyw1ecp_iA!bH(RnBN8X~qInZ`_tEZ6%v{7&6WyYdAmCZRvw zv$>7FNZ#dgmQKg17unV5nHl<175PhFI=c2+!(aOKr*Q#13Ho*03p96U#)tcGM{7`i zp56|hyUoQXW505a@Id~RlxP~Bo`k1su8lp5{H=zbb`cwrGHLr;5L4Q=Xi_+^JrEf1NgT zev5dBbW;cZuH8vJ{@=B<6N8p(-FAd?r&8Ze*CzJ2BYo(`GXDBo$0^k^>Y5Sjf=V1xVX*ZO^>>Stb) z)ZGMZ79dy3fQ@2O3~qBZYX!h)GW{2vv=&fmVy+@_&4KC}s4sWZmwV~U_9GwOmkfUi zIQET5KkpTe4HVxZ{8H|Yf%vcV1?^uJUfpyZ`?bKaH?ypR$~7gsFbRGrM^w9bf(Iv8 zR@9=iiF{i3)lFIm|iLyfYlYDkb*3$FzoHeu^ z)U^}XdU0^x^Fq!)P`{e!qiop{x2+=Ds-Ued>Q$NA!cRE1gtlg@%+)>XeQnY18`3jN zXixHG5o^6(tjrbG^r`s%u-iBzoPL$^uHF|;>K);_!3%f%L3q@;xfv>+>-U!#pTfcc z<5XA6uaGwry~O?Q`j7D4e_xp?hl4yw{O7H3CT{ro&o^B;?aAjZ;}7@c!(hA`vvB&- zjhxZLIz?4oo~>9M@uM_&4(}(PcapsV-EJegT`bD_s#RorKGQOOm+|{~;uVrQy^${5Keb&^y zew1zeN~Z+Aj|RTy_qX{zgT8^)dm||08_~w4oSCHWoA}@p^j6uX(qoq2 zPd-`bQ@--~*md%a*Ku9OH{asfc5)3E{>i>`mV%(rJBU@cxk%K3WJiUM%+v0!X{i5r?YR_YCtmpUOiGxESgF}Vy_v6sN z1n67**q{GV-=pq-n7$plaFTh2gWOz zaCAgLUo5BEe@FT-<5gZo)gMKkm@$_-?fyQ{?ho8{yS;X+oOYAGb_Ea7mG{pZe;0V| zm$#;U#*hB|f;V=--RN_&&xOap1YS4x2CXr=`kU#W3zugD{rh{jf69C9hf9+41HCyJ zY`x;6%+H(H2mXFE2Kq7gW6aM-X#VH&@CNKG1n$;zusoZox!A+l$L-k19TgTiB%ECD`xmoc7JK&DJJkS?9!;Ev<> z^Ymx&(Ty&A2cxce9y~e);L~H~A~%e-j)^TQl+2Yuo5* zw7G<{f1~#13^Km=SRa)h@KNde!}!U}LE8KGkI|lFoQFG-ktZ^rkN(%d^SSk7 zv@bgJxBqeY>)Ju!@!gNnAC3RuN934p!2IS1f1~!^9;ChckI~-8;jiU`v_Jo2v>)WJL7n_v5S zGKX&cwo8*wH+>hK%##)UkWdbEe-QmGKl}hUmt$W zjQX_R=dZ7j-$m3F;g9wfHvxk%{*z+<)PA9U<3}mxudhG&O^W%`Z}mq$`a=Fn_#O0( zNG=KyBCcDR+R{jQ|7f`(GzGyKo;59J2BI6!E9>N&|m)A0l?X^68(7 zPw2zuVHve<(EparZb+n75SU0Vmc2+Yao&Me=K*;qzuRj z&G{3)wxoZ1_2)A;eq4@ezmFBQJDb@LO>Sew3ly?$RJi^;6E9Gxe74b(YDbEVYI}zoX)>F*8{MK5{E%e)um+ITM=-Z&ap{(vQ@(?A-mDWl= zCGjcUC$6OpU_AuBI}~0!lJasZ)bd~`)bds&(sJIBhgSUwocwiYIC=lH$A1Vk;?$v7 zye{%KbsN9#aBzEAJexD$hZ&hMth*YTqjFJSBe=J z#+{qUn0f#1pSpUt&H$uOak6$#W*f7Oz z$$zgHgakOy!M92JqaImvR;3oy1>vWJt^8BaN#LKwpjIe>?y# zt>e7~oZljUcLX?9gd*K#KWTWx0&XSbd#pqj2$u7Rmo@lS?(U6p$0mAn#+e_FaR1-X zR1bg7xO3uv>AR1_|IB>`-X%ucQ^C88vh`!_i-Kj9W9@S(d;imeL@Q<$3 zCDV`PAGzTDE91mJUU{T?ZSJG5o@Twc4SneV@vPz>>!2l%f9Tve)`nhRMSj8xmw)Vs zj`GQQR|5ZdoHLYl9(pTu>F|%dcpGsVPg}VyT~=;mvz6bnjq~gyI!_tCqFCYfo1t@; zmkmKzdxrNGhq7CggLT1O}4lBE*Ba+*a`@#LI?&o&}c}xf@QVrkL0xsIkIY1 zH{aa^Z!|GG(7VGwbgqZPKYrEXv?CrY-z#uv*-t&)w0VHG-{Si}!AC^LY4}tt`4Aoc zNY2`jbx>z)*21fc;k$xM1A5KlR$j}^{OxC~Lq1rw>Ku6Wo4iv_%wwlyA3RZK>F$S5 zb}{aJ^wOc|qLW4u@62~^MTWHu|KOoj4_U(-l?yKoJakS_qObj7@n{HrgZ?UKx#Z>~ z{JrRGW7U@i)<)HrG&E$|-_7?2_`VYzr3?L}v(S1cuXK`~ABt@yU+^Vq z_iU3CI?8_$_tA}Rasb`L;yL{FlKrk;l9FD+xPQ+({`vLJINPAOB>JM?Pjl~-N8&%= z{)xWdIq~oN-uq!+Ir(CI<=^8T-nCb2@#p}X3gN~3K5KY!e;K^^H^DM^@oSWQZ^q#C z?&rlnWB+ZC=ZWq;Ud(yc#!m3`r;o~ye~e5qu{r!g@|B${GxNER|KBh6yFFa|@ z0DTMcSaqUw9$st&ikv9Ppnt-e`t2^~xmW)`sQzJ&9apM-C7aH1;=Vtme((F61Ru^5aP7d=g-0SM z^!=-x(ePCD#KRj$<}^Mb8)w46j+Ct--}uArBwyqU9-c3b(Yc3Zjejl8@3NckGz`mpj3t>E2_ytkb9mh+Cv)=_^M zc#&Oa*-wqkYFthql*@d-6?^!J>V=0JkCg5k7CrLDgQ1~&D&WbhMm0XNJnNM;Z}J_n z-1A=H{do0+!%x!ZU()BZiG_QGc6Zaq-L$KIsE=O%yuNizAl^TeyQgz9_z=q4qxvH7 z*?i{NvGW|8(C7t;vmCp^ohRq4vwJpIgIC`DB6IKLV_m@gVD$K0&#}DXOwYywKeh+$ zi-@z{x$;!e=-9rPf#hOz@jH<<4ak~rTRp>(aofnBUXSeVUgMN?HNvOwhemIQ7u?~z z+g=Mk^KIMR&i4uA`+>Fi1E2xI2RY4=S&it_<;0Dq7sq;Jzbk%3_YOb4#NPS?;%lKj)vY?) zp!fDmkzdeOiKZ=Q0*#zhrC|@<0E`%2hS!IbGLUJvZSq*xwNA8AUq_ z+Q3b2-SoQ_dZzDxA`fDctNdrmeOKo3Gu~C6XJgOYfb8_~GT}!D&y&N*F_yRe zOZeMtU6aGCt*SG5E$v)NJILx*#?f{^@M$C_gSL8m^O}?VPVr2>vx$m*;+r%+rdGal zY$#;)Fq%x;&d92RWM^q6>-+Je@Z;lv-~-8-!F^bx$NlL z=P1|ynvKEd>qpz2JkR*1api7VW(G#P`5NB!+ho-h&WE~uO26jGY3A8{* zqEXSE=ub2%y7XvLbSrul-HN_NucGk*X_R@FoJ~Wkk-W&Gt<0c_-y(F%RzoS*GqDg(cDEdsxVzrt7fM2+1q{00|= z-vi<7HEN%6rNGf*E8JLxe?#x?qWF*w0@0*U)uM(})TcJkbi1rK2ghzES|DAV$ z>)0gXOU3MsP~5$IC28#hBkmJi6rZvmgFk`ms-uqvy*`2yoxE3J<#t!28|8<> z*aP`3S7DP3!5(nzvLStT89s^lkKi*8S;HE)aR!3?I!-sLeXoSL zkf&Z39S7v z6ko3K!DV;AUYc#ypLJ0w?(pAHXf;6v(dWe;r3I+AF>;Z zDNl?;)=fr^vBpq)I`Q}Dje>>teC|fqf7#03a~AMe6t!O8#`7-LkQ5`GVoqC`Tdk?B z;8|NF+pYgw4_{He=&)>tD!$d8qVLNOJpy@*3|&U7YZm=-aN6~|!|M(y28VnJvT6Ul z?>-X$7w-M=@Z*$VQ{;n<=Tno+8tgnoXFpqiynGtoFTaFxp?G;b79F_fVP`*ecKk{D zZuBqUq_g8J^ns_WoR(f!A4qLl{)o=b?U)JvP~INN0S@=A+DIMk(C`l6oJi|@hLFi! z8%CDvw{!`?-ROSsJNfTfPjGD61{W^5^l2#l^U;yU+{T{Rf#@Wdf6(*4=bQYf{r)r0 zf2Do!@?UizL*>hoKT3XiL)X}$<2E4ofKRfDe!_Fp6)|#zA&=ly?Q`K*%wq@gzYRR< zVE#M6uMY65^HS{%&TSm8@(cLZJP-Fj2QCqwEAB7JGug9g=0Luh)+zJ_Su8x(dRaIRKQEAr=2Xt4{t%R8Cx(Vab6DPK)He>yWoHnH%ggZDd;vw8X3zm%74*}8U0 zkED-A$EN>j`lGd`Hu~C5Upko^`FtX;fVapq^tKA>k6V6Q zLU{Ji>?a?HH~I0*Z$tbrAkTv9_fh%ISie8qM2<1nZxb?ppHFz}_nWkSUli4za`MLj zqhuj|A@(<+p6q?2Q^`HzIFHAn`L)C%^FkUPUw3rw(+BkiEs4&fv2#MH#py=Y8h99Xn$yP zZ|#ugZScS*(crGIy^i$<*#%zQl6YXQ^q4z=$KA-lTKGW&HryKI%UW#cM`QE_8+rpa z^i%K&osrfXo>2g9v^6@glx-_mwgSsGVA&2VQ?w=BYc(*HohDs7(LfG*-bwH*!F!2D z%6S*hdQVvIonRj{ciG?scJaa2u*2()lPypo8fyM@;B2*&5_Qsf7Qxrk)LcO zezGpD2eM`~5&xF)k1;=^X=6WE`NuS;;)9-l>~r|TwoxuSwF~>r^N%ef4nXHXcDZ({ zuF9FyRRtd1Z1wEa{uE#<7%NsnIRn~&YZq{mKHUj?_5+*LIK~ZbXf3-PIJXyb1#ayV zz=g@c=K|nA#p>At3^mqcaDaD(1ERYm@K-+2`aE!ecNKrr=hK=Q@M!_BD*3d^13s-P z*QZ6jo=@v~WP{!_zPL-7W6!76;P|vc@Cav)j6aKfUZd^HrZYdr$CnpBsCXK_(fs{| zduJYV;@zg)Icw|RxX-8qpVwsS$SA|-bv9+1pO0&EjwV;aN0C>a&#M)i)9@kpKNIib z@t?C#kpGOw{{;=m|Mg6<=2~6CbP6IsyD@h{MNLi;sza{nJ|LU>dZdY|g3;JXJ{D_DfTvK2+pjUdC84n4RVm_*G~WfGobCniQrSt;UF8$eHB~`B z%i%BZssy|$35=y5jE7%MP>cX`(+R&4Ul**}fKxm3COx3-QFvJaSK!xH%oTWOtuXEK zEBP3o7{a_Uo+R~1rX`ERwrpFSpOO^psn5s@>ij?M97{gP_IeuLDqda!|84??ZQz~s zDEW4#(SO~`*LN2C);GqE+h-9_Xl(#*}Q9y7=8#2 z5zDGLR`_gcs(5QSzMf}V&-j11IzCS;-eB%^7GYled%FwiN_-lWC@Yml^R`5UI zuRnYD>XFm6zphw%w2bE`Q1HV*!P_?@7?#E zns01b6CSf?-aXfu-!Jg{j_}w$FWfWB{66G9KXm%N`^Mh#jV<@_?r%nMMg}@Z8@feD zWE5@W(ne0aB$U_9VbjE^ozy*>ynI9M`s$WBw6pk(d-q*^ruEK)^%vWXHH)`!&gY(I zXiw$0k-y>D`mp^Bqpz&?)xpY|24`+E-SK!-s05J!dObIq20~! zrJ;8%-trULx`;8^HA}Wk4iDXPkT&%DC;VO<8nx$j>elar?(^%ZbJQ))yRYY~u2J3c zQH{E5$(BD;*B!jOrsj?~@bU%Hl zSGwHTvTuE1UpC|4XcgIy<0~(Fta{%~U%77Ilhrp(FN@{G@B7Rw=RTSffAWmj!=~KI ziQmL`y5G(F_w)W!)i+Py9m|bB#rx(ynj4?V`{tfC^!s^V_Z__dH19uMT|K=cmKUGJ z`{q8H7q8}ha}RAl&HK8~`$6@-*}UIeT{AteG(TR$`{uqdKfaRpH&UJ*%8qMZS7O)Y zF|Y83J+B)0=b2mwd3RNB5e~j;;F#C_8uqEmgsZO_c;t1!|pZ<~lTfx%<3KSC{9Mm@ZUh5L`f zbMAiU#CT4dZ~apC$zb}8&K1_$nbt6>?>cJ>`k=inue5s)zKEv}-Mge92}=n>=vdL187cNg-# z`mV|?%gi2)o$S#FKRStA8_mOZJ`!bZIdA?0WAeePA<*hop(1;BP0jS7;MSa)#nTu6 z;%obA=I6(Uf?xVQsc>jK5B!={gWL<{#|zNwmtlu=onft>RC<9uxdz>L{?I+rm2^JG z=a5k)I%}NkM`>dyZK%C!+R)g%zIpAe&nq=?A2q}kEM{zZ=sp^ECwm~~@ILWUFGydO zpV%++EY^MnlZUWBmRS~Y70&)R|2r?=HF1k#l}d;UT?LHK!cN;bQn1YKo~I$p?m$fZ;^obJdyF-mB2rW-YDW^30d7+c%lH*~{3<#+OQ876st&M|Zpj8=U;6UC{8+5y$2?m5pC%;&eyaPdv)nE_S(zL;4za z1-5$3?A@DU_7T3b23TWLIcwCRxc6*7<-NT*_?B{we@VW7`8f1m5+75t1X~_Ig8aJ4 zIs6s&@1-o{ywI*^W;J&|KePF*pI_Ph_7wIR%&?lfFA6nxO$s+_UBv63)(%q}LiWR) zVWIcZA$&^N_!;tJJ?+EsqmRNLaWZ~@8)8n}A$Iw5ter)b`!es6+>zA_*Mq?_;C25A!fWYAfY(a=gTeFJ($G*<-B^1e zIT(LAl6-s6mCkL8n!U}I{gX$aWqcsXIjrZ2mhp*r^eUhG2M;q}@FktSptU>i*1wY7!A8h0KY`vQ+_)z~)d_yCkPkf7yDYlOO zTfor*j@Y_WTlu|w`Bt`Wj72h&B5Kk>@zCT*pynKADIcvPt zoEr@_XP+8wR=?#3l^vU6T;8~=7_W)1Qn|~E41d~win|xr;Yp^k0{^7E{S^ZWzO zo)}a{xbM`#`y9FD@;T~Jf9_L!lzZRcyRYN^7+Qz6fAdx*ZGY)Q_~A+;Ycl0u8*(KD z9%-#gYv5{U9_Ill#zFHv8C@tf0pGUn;hBP28ablq z1hD|ZYeTo&_l9r5)AYXK2fnzLe?4$?t+(H{E0_3# zp~N2$TXA3v>l;gASC_C3*$CZihaZWSCH+-o^ymF|6=d%dFY&8uhg z_qq9RUcKHe+wNWy?$w&@)Dv~DG51>OUhCZJdiT1WYvPRPS1XrTS9?0x3HA32v~w5z zb+4ws?tPtm&FHUNw%xrZ+^h9Pr=F;Ljk(uK_gd#(*Spv4T!a1X1ioFscR%p$2EI3P z2H4$^v36x{tT}Re-ZjOipL&gTdi1MrMXZafv-76r4IMdc{K>INXP;3z>GG57Cti6* z{lu?E>i#Zude${%R^*y6uv~5pzv|hg1#`EBPW}3?M?G{J@r(y!mt~!_+_J9PXk}gX z|FZWk;8hh_-uFJ2+(<}56D}%pzZg-_L4`B+H=Ga<1;lRkdo>ssRDaE|&)?Pl!~yk1zxIk37gjswO5%Ri~q3bcdOZNmqwkuJcR7x?b50)G~8jv!r0 zno9~p$J2klcFJ5}cHve$fQ|nj82ksp|6uUnKPj9$uxlRU8OM0?bHhms&JjGRXIr~m z9D2t@e5Jv^#&iXEx2&{D0~psh%V)-RqnWFqnJYafj<4NV-S!9I?>!tp(n+uVnPX+H ze!!S7B>jlFx}CZ5j@w;37JqrYOFkIT=knd+Eh8C!7UR$Ed%-;RK%=@Y;rab4!6o_+4T+_Q(zORqYRnVOf%|MqW{<>saFf9|~0wEk05&mJ)E^4r_iy5RM~ zl@II%z-gU5R_{*Bhfjyjy#4k$ zf1Z`ve`?@|sZ$H^gPselbAfaD*(0ZR4d&hU6gYvaUS;(;Z=S`wKJYgH*o9MToi)WO zv3B`cpM&~5GPMT(%L2|Lr&LyEPOhw+dTV7>=2PJ8sk6_U_cZNv9oH4ypFeN;*(2uN z3U24*rJMh~zi;H-d}v}^*gvnJ&%k+pr;j{nPjunpw+8-H&AuR&xeMf2&yNS!rQmu6 z@XLo|g@bE-2c`HT`}<$TmjBRjYU!}&yyddXk~C}$;%~ua;6Txpd?h%=M3ho zU-=x~RlPa*U%>}<^#|96mcZHR=t<89@O*gK$M^=!d$6i1GnX-wLo*}hJ#A=i#Jqt{ zTjO|lGUJ_d_CVgLcHXUS_paJ3;JrEF0PhXry&C7ens)CEcG@iE-AFjdyMuYR)_J$K z-MeaYBk#q+NxV0N_v)PY>e{_G)M;}Y?^cA9d3Px9);sUkw|iG@Ht=3kIED9y@m_=T zUPHV0WRv?-*4_V>p6RUT;xO@d*s%)2)~^1yv!>|xbaV2j^wmgTgSf{?Yjps=eS^PV zJI1=lnpe`tH&t}LfS4uSh3(}5t@H_P)}IB9vPaN2!Q`he|K};t>GHEL-`yk{Jv(*k zZD-s3>`UnM33ylT*}3qdbLag%zc1{2;XJ+f^RxR*{rfKc=l#u+%~SE0Ii&l8?m&jz zMY{KfFQ&ZO??0vvA7Ndy3|>&w@0F>)>G$tbzv}nu)WV;CF{POFHoU<5f271;wjcY; zHt0Frck|Q%OV&*Vck>1=d1NYdJ8#eu)*t!cCF`d`bMuBQ*)SD)nm2UG#;MTDykSco zn+h!e&*M{>>v_{B*?Q6qTe)d{f*?R{}{RIKTfXt zTgX-aHFDK|om};|lB@n3qrUrnz1HRP&aORoBLm! zuKEq+s&7rU>-)%6-%qak0dmz3lB<3ax#}mAt9}Z(>h~vC{{zTXe;~Q)4W?E={d{uOA5X6O6UbHnGIG_QNUr+JQu|-Bj^AqI5puQh zD7o5LPp&pLkgJW2@{Wr-~e;c{#Zzos% zTY|kWdGe7jrj$6cZ2`I3SxByS7Llu+QgXGkm|X2FAy+#~$<@v}ax)HcGY)by4stUN zax)HcGY)by4szAkx|$A5YU2iSwQ(c4+9)7b8#Bn&#!PaxaTB@Pm_@EOO2`+G7Lpc` zN=b`JOGryeR-duR;IZ?@kqStqq>ZF)qz2MlcyI|i&Lha4{_D`K_i+t02e@WS<_WqJ`P3`?!ZL9w!3xIVRdeJTL@)*F{>?%D%{hDQ zys#rDro&rAgC$PB&dIkpd8LzEq9@+#@8n@8pYG%(Q5k7{maNzedvBaWKhJqwLjGby?mN|A?6q`a%<&idoVZi_ z+}+0Q-z;qZ4ZM~*8<+Z?o57jM{vu3G2ip>sKB@fl)<6Bch%w7R;n>D_&f#9GW z{plI=$bM_J;u_`m(v7iM&OHvs-;wd?z5%m_-Z{(M99zel{rJN_ zv!F}lKp?APSJAuC?(^S`-r?^O8%aBABZsnU|Ck*u^LL9(@^y_pP8&1*HazFjhG04$ z{H!SK8vVDTZPDk7lA{+Db&Xz3y&o688~qTNp7VE)yY1qBDK-e01~ad3T3zDftn@f` zn>E}wTCu0Z7t!4^Zx?NkrqACVo#XSxuJEPBiE~_&LD~7h1-@w`CH4roF7O3uCn-M8 z=Z_Pwu!j4?BK4fT4CU^uSypz-{Z?kn46;u=M)C;%LB9R&U*p_UILbDN*72T%HZ}CCAbk z?-a%>yiTR;s;~Xgg9|bv2Lss^-B=5w=D#03!dmzx`3wHc*zNx8_+j21NSjx3&-pRd z!Y4fY^@+^rVQBX~UsfzRkQ|ReZyElK_^r_Qm%M)){oYRhhe=2IJ(`s2>k+#H+C55} z&Ac;=XU$gch~OfwA$~LUW7N+GWE%Lsc>tqT_KS?y!x$0lt!0|J)fG zM`o|ln!SlJHbA?4v!EpvT7H6cy9avBwbIOZ$FY8Sw{`vI1OGN_;4JX$gNg7ChixR1FO4EiRKa4mk}@(EYJ>c}tfN3EDq;*Zoq z-$~%=G1iE1*GQh~^Ml`@p}{@y2j({>y(ky@;#r(C3d2u_GdIvNYu7H5yx9luePBVF zSual`_YNrW4&SUXeBmJT5tzRpSPvV^z{6jn~gY~%U>y+p_tnE~j(%=nUVuSrbBd3#j zPi>2q2C(MU?i(b@58@swhA;4$wx2BA5&e?%9`eJLdtK(g9UV#A<;aiAeW|pYiX2Ic zRk7Z-0{0t^97>(PBYGdtlYPmo-SFmfh)tRWO)j>QT6Q2)#yRup$`R2@Dzw5pwv!`y zMve?zc7sK^hYs_g&-Ku)DgPEZl4m7+!F{NJVze{>JO_b!^g zd2-R~QDVDdL*O~grNQA9MgHjIKl-C{p@Dt+J_fY)bWsKKM1l^O7efaZF#qtaSSoWa zy=M_PG`td;IzYVx3o;@r(T~cYpTp!w$gf2QLtlxlgonF2%Ms{l;r!R5k@*!o&xpQm z`6B~;{>V0XqJBT-PmM_@3ZO5Hv$D+G?}3JfJ2dn(I@$r|Su|7uZAf~;eaQwk(epm& zcRBRC0(n!4Y&l4Ni2Pdgs%QP#Mn6MF8M!EY3ARb-U32{D5$4grs*LBQx&Y#Fkudg@#NIhw84gLPPm3_pqOY zL+4x*4(0wR96EPOI5hn7aOk}8;n4ZvaA?F2!=aI5!l4T;3WqMdARHQXUO05oIpNU7 zgTtXq`iDcK`-DSddWS=yoN(xGv%{ew8Q~D$Zwzq{FLy1G`UfHd!sztVlOh93&WsFL zcSdBumfn#8mAxX;i(ebqgXcLs@6PjXJkREN7SA&y(w83@kiqkGo}<&3pi`}bCvQpN zd2&R0bk#J*bvZW*0YbNy@UGgwl&geOV4<3kJ=jPv_)*Q+H(6*jN{p+Za=PY!Ok_jJsh8@ z?r^6r_tCV%p>fl8HGOwgeT|8-_e@*Pn25o#@nOHaU2Wk*cj}nHkJDDmS58~t=M`^T zP8^R5_w#BCpFGnRc8|{BYH-^Et|z>05sT)93;XeEeRtBdHQv*f=FNfYL$@u;e(7zC zxGQg452`Kv1x;I9I&bSWPg@JUZ4s;EZR=jOh5w;xtI%#scZ9hxJ)?Hut!CcfQ>L!- ze6H%kcTC+esBAvZ*e5<)+GF^xSNVcrxE6+b(P0rRTM=&Z=y)>73)S z<%pl!_C7oQ*R~-$$a;3*mVHzASj)y-IT=2@-YUCFHe|-o zYD1nF?%amF$c{Ptb8W~YJ>z?)lkv6LlY6(`@9vFX6#iXXt;Qm|tg$CU2Mc5aXRf4o zx3eb)Y}i}v$%A~S+LJwWbUJ&o<-p$2o}6p!$!E2~D|@~d#*Q}S2ZPKDd`Ga4(miPW z{zjYfblav}!#9^&ZOXvgYEw=rY_lonJLf<6y;f0Pyr;eWP=g zcIIa-?hD=*X=ndkIpBwV?C(7Bovc&r%=t;??q6ePW(;0CbMEQw%%-0Y{)B$o+7W+}Ugzpt z+Gj}@@#;`EecAd#+C|bAy0@;G%G)e+$MOWe9rPGB&WXe!Hb5th{JtNX*Ccecz0l9( zqF{6icHk?~+n(n4GyMJ$`dhd8Z(!>UMz2AS`(@#WX3sMMn^hD06ZQ~s_QYndw7f7U zx`KU@>~yaG`vm(!6PrjeM+8%7fvc(M#q{lDEwzdsBpZ4e4BaH;ke=E#l zZQFio1(avafAiI1e{bu{mjD1SKm(VYE!}!1XyTxV0 zJ6`l=bOrFf;O`aLL!YuCrqkbB><>d(H0| z?LGhFXo9hxIsc4k-}%4icX;y|C2pdu=bwjJmWw?IPolW`2zHLoG~^te=W@8e4gFKna5S+|3LmL%9x|rC4s*2_CwxdFKJ@LZ`Z$HdfDCe1q{daQ3pvpGLoJ=OkShr2a+5n93MMCqeqr z8INq-?Zyb7dAcacjPW4nI|n%5Im#Gc1kM*2&)tme9^n3&XN(`i2ga}-!EYSfKpYx1 zYfNL@$UH8mE_?sT66_)xpYSR?L%U{-8?ki>zweYJW9!SPc#wHq!91>H9?khdQBL$% zMIRcz^K0mp^$-KE@oen-A7cyrl$4d+5mE4ta27P-;t)wB$o!CrL33afidQ$BYLW8>a8mV48E-CFiv zY9*fL|1U>d*luK3$g=GU?0LAyq(b_Q&NfTAkKiPGnM!nyDs-4?>5kWj6Z2I*jPgNF zc|PUWg%fwHoIM6-t@it4DZe_L_$QUKU#P4>hN+!PDZh%dNR^}eS8jF6M^ld8dK2Zf zBZ(Edjql!Q&(GdzgZBLFdp59tt!2-$0ei0Q3)rA<%ClG4z&BfM+1Fm@HZl&K=>Gp| z(}^VCu66F~I+SngL-&t5RUeWL#J(Jx1U6UJ%=W@0&Q#xw=E5J&g&y{*{LkU1`gU#K3h}*L=J$=>PFWLt;f|ud(K$t*LtEj^4^y@Z zJK!y>wRGA$$eGCzl4QgX_-x&6+=*VLvSpE#_#9j0iDE0U z-`_RX3;yt_KPNr`ez-f(-SDRKu>0+UHa-tzMD{UX$m|$4Vj3I`bH zGs=D4W7+<`oHz80cSmpNOOkB+Xkm{?&%l|Cvq!8Eymp~KY;T->r!dY8`tNFF+xggb zM{@qYvoI~X8yoM%MctxD@3j)gSWC_8!-`A+O`hz$Nb(+_|#rS;q1l<9MEN9Az9Y74<;B`^e}YzjO4DQPBOv^m7KO zFG=H&e9koE=o$;6bIhclrSx+SvTKJ|KF{wK{Sw}H5PtU_`q;r}IB^)Bm(4sJz5}1V zd-=`}>+8r}_%VQ^$B?(ewdB-!=z-EZ26K+{Ci9_j%!VKAVJw{aFdkb*E$0l?mQkO; zuX-Y*K8}_#j#Z39{N&fjscwO8#y>;yX?G{`NoTu*7=w{dbNDU`{nX8}60;5#1r7K@p`X(%0WK$XxWP_i*fGSge==<^=jF7m6dpxd_S@*)7Puz%ZVN2(^yA7 z$# zNqK=&jtr`q7EZjOa##MTor#oRA5Q#^a(xf9?iu8c9rMK)S4JW~e%g5pCVa|uovTbAe*xPk3$C*ZX z4P|(&8Jn5ThX^J|f-8W!ugoM>jA&BjCO&h5y0*$$+obuC2YS{=P3xz30zE zeO+2+`7&D1p>_Uz1?SL{nu{L_aQ-76HG%bqk3oE*WuM8r=g~>PnGB36z$e(;J+ybe z<-d|&;*SKGlf|4r^Nrn#Vf=2yXJZfl?`7^Lzpnkv=hNgBoE>T}oC`mAl762i zN&asw2}F>u5%Lj_Z@zDug&4k;W^4gxw~{3@p$pEZ4IKA7vg$m(`+W=i>2c0O-?f4*nZ95P>#Kz`=ytpb z{oV^0e>=WplAp4Rq#^h)Hc?&_FeZTa9abkhcW5@bu;!|!ExPuty8JZYt38$Z|Q!|wB65R8#;!a z=s5W=(C_lVA)|50@A{7)ITZRe6rZwHdX8Z0`7PDW*Z*25}N*ycV*9-SCkoj13xs`18!pM zvIz*@cfg6pz7lv3W1q_b=AOXY3wV12?-{@=yH#KGec7#K3p@^<|CRI`l5l)GwmJ3- zkq6NoORa2lN84^CxO1g9qTj!Rer8~XZ#@f~F3cYTzYTLw{0s$e4)%ujFl(-)BWm8d z{MBGi#@1%z`V^SqbN|1C8NMj{U<0_`4URXG-wACz%pUw%E8Fa4H{#oUL@J3Z(pXc&uF;HV(*PUj*cyR zk!>qN7f08wz$PSH(UVq|u@&tnm#ruh`_Q-9iV_Kru8jWc>dJ>zJ`CM@kYf`pZ%+__0?% z6D+6ocj1}z;!gct9Qo6!zl))t}d2XyCtxL)Eugp+PU< zi!uivo9FRInT3zdv-sE);A8V-IKY42O;`vO<^K9u6HVwnC%lhC|2iwL)WNheOSGS)tI3 za42zy75dxh;ZVzDVE9LTe|~}w&^6)E&>!KyGX?*h%kkeC9}W!+bRNDz=innW7+<0O`26(2_op{LKsopVW#bc+fp1VM@C04|AAEbl`1nlkiT@7z z(K>v8w%`L)d8YCI$s2%gPZ%Gc>0NoA$#Z;vw%`L)+0FR>K9NS zU!;0`ks9ztYMl5j^|g<~R@~k{$vMyNkNtLQhx6>M@QYWeW6rK~IJ547pAz@}=HzWk z?lTTQrSAAE<#6|L59dtVJ?obLl6%&zI4bw7+m5G_KU1q8Q%$gJUW?-fPNCXC|1-WdBiq9A< z5gg83{8Vt%Ab%(e@Vphz!(BY{jPZPpENS)Aa(sna`{TJ{;B!n|E| zvF&JAZ(Zb;sp~v{Np+DOrfzA6`Q@FUw=Qzc)D_-odz0#7n=y6oc3`e) zo7)3@Exo3~pe!fO^vFDh&UVk~&cjmN?`ZcSr#_#HyO%3a>-BkH%o9|Uhf4}2@ zb*il`<&!q~ez1dlZ@1s#erxZ3tLl1Uc%wcO!~4}Aoct{OK8Wf4>UujriH=ppJGaO$ z>pFfTvo)@-R@rgAU+s4C?oR!y?fhg-Qgh|?;Y1bhT`zwvY*?-STIfoh#{33s-Q~~q z*V_7V8$Pyl@b@tI*lPQur5SwmX!Ym#F1YxvW7oLPX53>_eW&;F+Suf(6`B7N^PpLyed zWTW~0jecINp}qL94NCR+c>%NQ=aol!YwYmWHa{AOTcOAyRi~fB0vk|wNs63!?_GWx%kj^BXwdrI{dwF^CWY0|}B}0qx z`zpros~8zsj6Yb^rtLs>^Y)!+UUiszz8}B3=CI_Z9cNsr z?_A*jHJ3PiH~#k##p*xV>i>0WoN<0ioBtPMZ0G;Q_XRqOGj{v=`#+(d??V6L1s(mu z#xa-wM}CHkRq^Gg_=Q0u@(UZtd&Vz}HjG~wW0GH3cjFi4)k)A*?gIakE4+J0I&^rz z^$+uxU8V1I^M8B)FdJ9$4-;+8lkXSwJeS-{V_yHTmp^Lb6XH+u51Y|}Uwk+Jurx!T zSKKQ4Om9b@mACn9n^ymDVhLyA6Z^}SezC?uhrYYF4u4F&5|9W4WpBQ_S zgV*`+6$|1k_D1v?_9?$4{}umV$A0Db)joV&g7|^G5&bE9m!A~}Ia@!o{HMilM6bh^ zcKj+IG?-KVaN#HH<87ZX*<)nCbk7WDV=r=j%_4=pq6ba{qlbs2M|xmCdztu=zYS!? z{*Lp@i%FwN7m&^;olDZ0p!V#pU)i2P#NiPmlgr+H4(HR8Idgp<|C8tCe@373vH5Zu z`*GRDkw2HqR)t)VeW@Nc85}I^61`e>`DuBH-_GxXkJd-g z=IiqkXB2mdo>}~M^u%>}iBI|cIlr&v-HG6H&((Q}!PsqcvD;q8xx(d~C+xc_FYzG% zZ^PduNMGmRE6`x|=B)CJ_*C$65PQU}*yCj5xE9}sWz@gJ-vfI@I_C#joImGav+fpe z;w-H}zA?x+;+x`4$TZF>;$L1JPH2q!*7Q@vHXq=e>^9Cbb#8yKmoIUMSnp9oyF}y* zaV_VOza<9xMey19%!^gGh?r01}e$>-`IIQxE}J8!yfuDV@mcXn;6GoqJ{2xh9>r8 z==KF@#pMa@=$3tuq1#s++`j1G_BjW)&p5b^b-?Z8 ze?Ns~p^}aBz!^?+mxCKF!~O-^SnpPr(;XAyUB5+^MZN{MOC8)Ua&TMh;Pzezw|69W;IkS2a9p^B4@ggtZXh4| zD()|oeo&3Cd}ne@KA-JnSzq*oGtm=z$G=2Be4cZ>pTlpZdmX*a#%&UM!gA=Iv;0UY z=S{9GyIgVPa~!L*)?2F?~6COSUL`Bowq z-D}TSD=~?)%e|wmM7s2ZQC32J2z4Xz2Ll#-2=Qg^#`jwBSsrF3-jmPrAZVHVKtC&y zjW6@Tv#i7@^25EX#5LqcCi@aUCqFdNmpBSsFW_f(G~butjJABauV)MGes=OwAN!$< zimI_b&Xdy0K9HZ+XnwCxE2|ot$9K=z-&_?=yrc3_lrM712T?vboYSLnl-FLGhre{5eFip~T>faI$mK6Rl3f1M!^yG1*A64c zmR>uEyf=A2@;>Bek@t7~sMF1U+VxX&{isKO(0(5n`MT}SGTUC1VfJ@7&yqbpv;F?= z3-))c8TnHy2B?0kFEI?B^h9Aww2^(?CgOnhu%A0u`@G#ge5<=eo7m5thrE3XKjZ!E z&qkoveEGi5#Ah5}t}j4`JXqm_ukDN;Vh*3f|C)1@#0$g$9i8P%{1*M|Sb;AwTKm84 zzQjxH*&Fr)lQ_C@=UPwXvXHG$sc zz1j2pl)cYLX#ZXO1e(~>+~?U3KFOZ-@voDjCkET`M({D+tNQewl{*F1^O>MsA8@dNZLe_ZXI zny$BuoY#I(z6;t9atA`Z?$WmX;4=2Qdtdb>zTBOcSV;`Z!9~8rD&kcR7qd3r&rAFY z|AS-q`Vy=0K{$RFd*h0{#J|q(9ZlTfORT|%qUAPU;>7m6#INx!Z=U00FP%dy%ZJh5 z;DdfYI{2Pft;AyV@VZy5#1if^sD~HdH{Ta+MBX$ZW9HzC{2spDJ;2$I!CkJ8xC+k3 zQ+?gzZ*%^w`y(D^FMedbFR{(ai5!`gm%tx3Hi!N0JM0^u7M>aJf$Ozzgy&utPGnJb z@M^wwgCEhsOYwbFKAbg4yJl~5wf2oE6&DRnF?;f3g&#$Cvu}J8Uik^>Gt%!#ACY#F z+0AK=hxE3ub*DfZq=%p7-DG~R`;J?r)<;;T-~$xHkcTH?+p z;}3p>G3~axEO5p9RCa-o|-^b`Bm6BE+bt>`Z4KR z(p1tl>}%!A;^MhCzUmG5-@J(*cLVfHtP8$xX~s|eN#^Bkd=&Qf@&QkFe1CUv&K|Qd z%fT^pdO_j)(SzwOj(0^5r}z@rPnce2lm?T441&%7tT3MUj3^bgSQXY6w>1h+33T-fw> z7@j!~ysn_{1Ly|_@hv)hoHKgvF`39d@-g<4Y2fx;@H`n=x35=T;ym!ZzdLg$TxaD$ z%eJk@(C=aCGfC_plMMa71a8m35BtnOw|EvQht!wUgOp9`4sPYwbR7D95xz!z7QUX{ zVng6Birs6#E^t3|s{Od`|5Chze0>@ZFkbD+n=G4dp-V%z4Z;t1q|{i@?(5ORUs#5A zMVH6HV>2`@T1~9C5{kuWS!*RuK#wODf#*M9kGnT7(KXOD);ugP(RdeQW8RvPGsG3d zn@_@n$zK46V}SdA0RK+nClou;ayXor8nEf}0D4yoacn0h=fTtZ#)QKZaB2G{c8Qm> zHq(X617RDNP2q(2BK2(^@QIDXi@{+}Y)3B^ejIIv2ed#}CrAfK3DPmrK@vWz#wQUU z`_0c4?#71I%iu5x{9Ohfw~O|`qw!l(-{A2{`jbsVYyK)^*@4|w;z!&qbMSpD@jtj< z=1>Lr16S7;b|+TQAH9zIfqp{U&5v7&#EaoX%d6ppVli7@2`5erx7Y89t@!zG4=2#0 zz)2qQ3&@8r6qBL2yB^GY+Z{g#KMBir7Womf<3fLSL@}iYuM)npW0D6Gf!p=zdYk!I zJm)*$O!qj-79{=kz;nzhx~V zLt>voGm;^aC7+YtCrO^{rhmy2*&v@aww#`Zj_SZqGW~h+W8yyPZ!Y-h>fmQ2baVkU zbRqPkIFF;(=Mm@8BPRX+*u9Ej=@~zE7i*|kG|?-5yas%w8+^r^7ljjv_ro^6Dir$y z-j;?F7eF%?BDZ9BZdqZkvA>08S|XO{FLGjdd8h4`0Q#HeFqK3V{N8XWx00YAGP{5&Im|bC(^uCIOxq?YstoM?>=y_2^_fVMzKQTFQxeN*?XiU_DD%) zkM!L4*dzVU*(2eLZ}vzV!FSzN-+zxZLouNv+wYN{`aXN4SDZc4i}oJrm)ave*I|zo zbM{Eju;0k9@&c#)6?=~~Q{@rL^PTb+?LE>ol`o}ykW>Dg zy+`^7%4=ink-lJ$qnMq?$+bsXORhaqlw5nH)#TbEts>VRX$86VND*@Fk(QFXd!((I z?e<7IlRfZW+y3a^J$obD|Lx4y^YiZ-dvZQ|pQ)sg?1_Fvx{&?S)uaLJqsEasi}QI4 z9-qdVzlHVZ#{4L@XRejbUOK(yY0~?ogQRZ0^p;Vi$)qE!(Tj*1<{X8%pB}bv{c!u7 zS8+ef@qOp6&hi?{~fGu(2@+_<8AmAma{QJ!wUulS*byl>)%D61My zTo80nHH;iOsDf@y{19}?S-$NvDStKSP%%1H-N~T?6JG=!nD`>-;N+sVxT3$*oOTvx z^n@?7Wsfhr~=N?RN+)*lH zN@F~J#^Pffib1mdU;JkOo;I5Odmz|;|Bj4S%t0MCqQ?dYBPq~SBRn*XJ7l}Cmq;gN zkh+pGNm(S>ptS#3Y$e6G_l{WeB=#jq#PTG?my@0%y+=Ag;@ihY?q10LJ=fd^ar*ak zKgVHW)$bgd7P*+S&fg*%UPS&XR`q34ob)@=<0RS2bT(KW=us}4&<6ILoM%R`n@0wd z&LO7uE$!tbf6$T6LkGALdG{V?wz{i9=a>!DABhcty%YCToC=p;bDwn+=bH<)XiTf~!``pn9Oxw`y#Q)i&8d)?F`vL$7rr)qhbFRLspj0Vb4h17xSFS{AL;%D!+K$`)lK>3vhKYa9smj z=$^68@bn;Xd2zMFpT@iiwyek%z@@k;ckZMwq zt_|0B!`FKrd`$vh%lut9|L#i4ikuHz(z`Rjm2~p)z@+`|Ea_R;jkG^EaKYEH=@__# ztIlAW)CyNR_)0hUy7PPDi+e#L*ij<40@ptDtYlys3`}k;y!H#)cjvlrA!o3`8n{je z6L+aN_{spT3qGW8oza(QOM4ubzLo>mJKSZm9JrPP z*SqX-YFKkYV5-IbqP=w;_Lqsk)^LYKj6d-dw^^bs?Ce%Td!N0tI5Pm=rUF|}+s58u z2{Go_IUChsft6W37Z_^$ULVH`%pEBbT^Kpz2cj1NqAO;3L@@?|do#RoA0av5)Af za`ZoF&rwNO!*x4 zXU8Z+!2o`B=))`S($-nCiNvPHe|0 za_MX%$)&R)!;Q{{3^zI(GTi8F$Z(^xokcF44H@35vju{u=xht$Y17%pdVE6L$-|3J zFAtNfw@eJ4?w4;I|M$C*c`@<9`}tk_O0Z(t;IxR*zqoth0nTL}#Fu6TX(g$Qw2JgF zX&Gxz=N=8%u(5YU@b8IjKz`Ok2 z_Hx{HkqXaELAItKTT_VnvftHt5puoam-r|AiaUBg@#i21a*zW#$blT>Kn^yzocMOq zN6y_))q$Sn$B>&lxEuF=?w3I}M{Xu9w{pySm5s+MGv{D)#J`1g*u%sdN=6;TKj^@O zzuztSsXZlYvs^wu+?CH-&Eowm-naczI{K#I^AqdL=Z8DFTKAWw*m%%`bZ@+32XUw--K1vMb4! zA}1Ga4zJ~P~JjGa1?>FXBL{@RtHUbr@(%e@I~vW<^GUS&aB zJF%0z2kyj+wGVaWmt?4Toy!Ad_vq*|1>RyW152Fb?#-X(w-tc7!{OVv?!DflV?(w(C;(v+ld7XT8W~ZQw(GdEt|cO=128pBHa}O>)DAFN68b zuzh!!-|vIJCyYLljU4M1O9!@Lz$W{WbdkmABFsN`m2@%Z9|k_;nBaTgnO}63*dAnv zSFX9Rwdp0_F8@!JXCD&}+avNM=c$rslK(Z}!Ndb1&!hv?BG04;)FIEL)9EZ{2e3+> zNiUFnd>Qg=uOrXqFeh_-IVOg?$s^D9TeduVkX-WY8FI<9o#bA5*4>e3Qyh7ACug(Y zCeLOcMNW)DPO#@Pa^iaA#J%CfjVkX%p8ccBJCSEUR(U7#>_;l^M4nAjc_;F0yvjR~ zXMd;iPUP7b%KvZ3v-jR^lV?|X}*{B#<>NV#y-Y5XGP!c(X5i8uS|9IBeL}qC5#s1}6EAs?Si1L#m)u7@T?Mg$tHeuwO1$JN#7lliyyT0-OYS6I@;Txq-yvS|8R8}1 zB3?2^yyP3<(Ba3e&_!E_nIwMl;(sS*ay>DVFA+0I{N?E9iJ2t+a?G>DOcH+?dXkvQ zRm4m_LCoX|;NC#YU&IOxTu1yL@tec{7jO`JdG4=)i`dKDhk=vW%X3x&H?fz)mNO1w zFNfa8xb9$_rHu17#$Cd=^MRv~d)4m-ra8cPCos+e=G%d}fHBNv4AU6XY{qmwW1PVl zuVc*98S_|R_(x(je?lDQHN;{5h&aqC#9>}e9Oii9FvG-h{xBRGGKSdBi-_^OfLPD- z!lB%Ah}|4a3}=60Ir|XP*_+tT9AZ4PiS^7N<}(#|f^PgK_p*n%mwh@hnI*(#t|LZs zOIKnjGfe#E4FkBBJ%B5)-`_rvxX&KzM%f(a44@o@u;%j1={R)UVVQ@pHubystB@YDRqj82QB71d&R_F6cZvf?+h^I#hd#PFE`ow)}v{|#QFKk9`UrH{h!)s zcW1uSP8QEvV>+`vaf^b-Y3o5xTLEud$Y3u_U$cK}jq&W?d0Y2-+B(Slt#BcOylw4K zTkQ8tOklY4wq|?U`Y&%=$SiMLAFD0)jHa!U&fB_{wp!~j_8n?ZICAFXO7(>vX>f?# zYke0S{Z8$(7d7o$Z82%y`S^c2wEu4%+P~P_KC;u>{$pyNJ+5g#=x>dA^R_>vL;L^Q zq5ZSH?IVA^?LVmY**lx|GlHglZ`+yPy2xi!*P)MM)n&hJ>Uv{0_1wYTiT^{qSNF-A z>du<7sbSESoAwN!x~Y;qzI%7R;y2UI32c&X7hsK=dp$eZw?F(=o1W9n6VHcyC3f@d z*0UDkyjEJolYM$8@nrsz4`lCOkj}R%e{`<7PyDqX5L>42R`#==9Ty&0mS^#N0C$Xs zbIXv~FF#^g7gzCY!1RG-{duOiE%Pq_*D&8d-Q|2gme_R3Zk+?&3T*$`AwEj{Me&9^ zxR3lqR@?VsE62i@@~uQQG;bwY&kLWm^jEs&!m?5;92)PpE;0XCURYK_|E0iI3T!-k znX{~mYk0T7`kS&Fc$NZeHGF@xmUu1$BjtYseAV0+U&;E^-LCQ(%;(#NZ&-`hsQ)@_Eu!sOXk789vfT$e{7=953|fgg=zqw6G8e3~D(GIc zQwe>(L7baEd&_4vfqOR3u>2KOtU1N_31^k8G9`C)P2A`sik^uVEk0{3_<` z+0)=Nmv4%C@8&RYfJ=CC0^3x1*c$tBzo2z!IkA^EE!q7g0b4z=@!hlv>4UAX0q46( z4s3z;uxW0OZEvHyFFY{GS5p1C`kOo7o6Pr#+rBMR$(k9|PRy+!1jpLTwk=)twLDcIikz$Tn2PEYo)|MIMl z?*otT?m^A|y9YOSgy#kao@w6#PwX4uIUT-snECXqU+7Hu65KQQ74A-&J+nDEI}q81 zPA%N&``Jq=_s^cy9L(m<3Cb(^?r~KhxqS2#zU6FLhbkX;aO$j4;q(G$3?sf}4ELO7 z3?F*t-r~=lZ~J=@r_Q(dlHgAUen0R}bl^{8ybCA~%)Y_Ee;?(S!=vsSVC_uJ%PmXu zgw@#ja>dOW81n7)tos!g@f~d4VJTW@VcqJx z)8ZAnAEO1hYsAOkXH~?A)?A7mnsubRrl-;N9NNZ4SDs0`wX8os?Jc0a7LA$q)J_#` zs4dmi_p4ODUe9SW`RkO?`p!tlbu65GzO9YFxNG=7JnL8AP4<2--o=M-q3^|OE-Jx? zz7dY!O=4VtaR9f@vIUpsMDt_d8Vii@i3!ccyB{-nOKy4!I^CEm940kA#a!1jK7CtW zd^x~47YF%<9Pd8DJN9^!%cs-s7R$OsZL2-qk6KTkl9lbsz(c*$4&VBYRMYNjlMAH~YLq6vm%x^7Ytz+GAHz{j} z`(O?2rykS5k#CZZMK4%@{BYa48l7Z%nl)PbiQAv*=zZ}P<SJmCYiBbeMabZ>;(&7*IPwN~#_|G#wahko;}_NX=V!*_9ddEW`^UJ>y+ zaH%$uM5DZalVw$W!CKwVIO?IfS2LD0)xEfOjqt7dnitKL`dQ@A>Z7b*x38`m7xli# zSln8V@6-}|qB*eZ{j+G1KE=CS_~rwjy)Ny$IryHHEqC(m|5tL4zxVm+*6pKjp33jE zZhzveTSTk*bJy=C=&Cb)uLgS3y`R<4jdU!usHQGUFM@*c4Awz^c?1}PdadjNgq3UVBA-o&DMVmg_5#BWq-vz(Vz0vvF z<Sk0+#KN)AX5%;r7j*eanv!!daZrnxrw#^p22(jzAD}I?DX9NpEhfrxswj3b)?v@ECnhT>9FzQbaGO>ie=GtnF_dilCFay1#TkjcKv7 zmwyv^FFj>j|2NmXitX*q3y_2KEgiid`{pHIk6U$FFga4s{A~wr(T|zie0y#ipegBb zjo>u(;?%cOCtUt^YLC>n@#$E$1Dzt*7eLkqn}$BJWKAP&p2M7PGx}VLqt7LmTR!H5 zxt++I2#2kE0B~Bzx~m7DZ}IFTckn*|omHL&Pye~~)V1{@?{<`jR~Y_vsy?f;IIWBA zUl*_1-aIjqpSm>C!1yl@rbHT)fcp#ZIh^~Tw04H0_cyW*8$=_c!0SjGXE%b68Ngdt zW0hSh9fb8NTuQ%npNTi?dF7~Z;&1d0?U;8Me`oLH@{a1%K%0%U(;(f4y4A=##Xi>( zi>db5yFV-$TS=Md>PGBV)6gxk$)SH0+p=z}J$K@DW-eR*cVwaSe`mC~s1qEQJ2-ab zLzI_sJ=+D&Y9(HW1Hr_ho#q60`2U@F_c7h-2X5w8hd1z5I>Ei2()7ayrn@M+(ZdA=! z#SaDppJa`@|1J?fqkX|F+m+te{k76X_+HdC-z1X+Z&oMpe%4_=cbNTO+k8r2)ck2q zMYobe!qW!wj&_6`%DpfIIOkmmjM~S__E&|Bn$8$%m{ak3eX~lqk{q&ajLwu3dI@l9h?FisRdtvQ&HJ%xa z)zGbY8f#H=<zy_yU{6pVugksw54790+uV}){&t0XI>DjV!0GJKR~Y(gi}i4I z9qB#a$FA^eXRl`L3Zvl>mxA}P(12(P+Va{JM2EIrK{SX?;n1PkVNvINLF;RDC%AaM13je~TSD9Sea$zDCo}KJ<`la6CL6-} z?Da~&#fI<$uML5At7upJ((JpT-yeUI4WYyP2mTxzg45Q|upyLu4;w<3))#eWupaW5 zlRC*lje&KbHHOX2*by|QTE`Y4JznF>lN~{LR2|x=L0)#WBWz@Tyzl&-igIc z=%dw+KtGEe+I$oqX=n(zPHRUHeBy`HyNh}q?FdD{XY*9sZZLv(y#GJs+7SZw^Umaz zXmjOjr}8?j)1P*r&zrd$)4Sgj?|09PBny(n=L|2m*U>u3B;e0ytgfv}GEy=^@>n)x z$qCnPkVd)qK4)u2257F_HfqiS7r+#D_G|1VcB!qkR-n~(Ae)lb_{`S&K~rCJAU-I0 zIL-1k2`05AyT0~t(&uq7xkk2}$25lFyvsB3f-RCs)Dyg_qkelh{pikk`(0ahNl&P9 z_ZYyn>(0Y1-!Kod3wY^Ny0_*)IJDbv zXbZa0zE1Ss8NC|)z(cR1H?`xXRkdg4R`UU!Y92H%UR~;R>w3*;aQ%b_*Is;ez8YVfm2JR?6#n#ZO|7p+U)&G#M zwWC?XR?yfJTsy;5+Nisf^@;uA3&+lI6a8PHw%z?pzP;wa^(l4+eHXkl{ZMnJJ%-Ml z*1{WF#{&#)wg&hF?_Ac=*5LG4>8^R_|8_bbx_C9ZSBcgrzXh|=Cum>edDY_F2z!Ih zicCFt*X!_@YT*T)RcEoPJDtA0_10-ULL05RCA_D#9|wo7-C?q0cW~SHJMA0W6@93E z@j$nI+0Q%Dl;lKmC-n4l-gWmcd%nf~5cAp};QcOLeWMKmyl74K^V%T5jcgF?aogJ< z&{^xj!?uf(-`+OzPm24sk1X2>CK}hOhXmr}DZNJovKh4{iFcYv22`><^>C>!shr z{s0Xc`vYS-_!0O8rHgnhf4?59pqKuLOOxgl=fkwo0*RN0-u96`vY_& zyM>Xd)YV$7KFh8<-Kl$u9fIe^4$A1W(dqw732(wCLskr?Wqxi|mqarM-F$ zFbCV|dGnd{L|!f zCD|nZD#_9hz9MdbwY=y@9y!JQ=&WilFx5Ewy|;Kzdjexif~PK|E#X;h2>x5ew-~$j z=h`3FBIjhg?!!BL+b?3y`)N=7qt@t@N#%pISD-DmskUq38T-Juk=u@((7EZ?7~ z?MWTkI7J6<;w#XxzWR|~Qqz&&z?;{0z~6Ju+`997$T_dRxrcQ4_UF~r*IDMwdL}l{ zSFuyCL(i|d-oow{F#qEpca6qXz<6t?shl(7eC)kn=k2Z^iw+;0(6oKaqBXOF6C#b^ zC(ReE$bD_$nlpI6fiVsuChtbx)fsjWS`Q@UR~Q;`)|}P~y!@XGj}`CDE?pykk^6HN zt*N{U99|7ht^<$PgU4ymZazGCEc;+^x`%l=X{9xB=ioIdzO;%4=%JYZ-$kD3+m5_yfOn_T`3dn>nY$9g9j|GVI5E&V+} zuDPs1o;>RA$DDIr`9(~y_@*ehr~_|pd?(2KCz-v5!2@HHemMg?)Imd!dhlS*a=?T5 zm$B{r@#HnqM_ctN=EbW|xiFhO4|rP(JwNHLM+dH2?04u}oxtUR2|AV?sUQeUtm_TH z*4nn_hP9}@%9Fq&y;kr@UnJ(hfyZN8appiaxoTjV0l%2WK5$M4xH|HE=>gJ1YX9R@ zULl@#SqFZ0bGm4~&AwlQEu~8EfP2w;DfF%NtTP{rHC_uZFK7O4(piXj3v2u`#$x^l z-?P9G_X1SNFGJ7HCre0-xI+^QQS~qOFZqu!6O5ivHuy)h|vnSF4@5a`}_| zd*zRKBCB8PdBIBhd)8;Yu+FlcxA5(=d8cK3J6Hb${)vu1r)XlD)6ag|?dIoO-vw6L zT7S2u0pRh-Aghc+#>AISpRT@ozp=Ns`5UUg?4b2RiQjrYKz~8x_E>28QQ%s9_YKXG z8`aRqg1c|T-!!Qce^b7(44-V250S&$>i9j^18eJ<9x(q+2i!>B8Q9m`u)p?I8|;7R z1Yh3>Kd=WKKS{wq)4(4z@J|Q+>30uko_Y7c4*scvKUn@!EBwLo7x?|d)4=clGvWU} z^L>^F2F-WPzuP?Ed(C$T|8_IqNz8Y^dR}v#Wbl>L^eDVwD1N0Svu|o%lI@GUM!D9` zLhv|&^2PX}mS+2nzpVK7+`QBI$_k%J{-~No}W(_a0*Ram7gr7bh{G7q>b*I74O&#zf`+2+d(%goht)1X!Pp0^b zXTLSadimr@zEyNGxJi2u@owpTf@$nU_)37Me7>Jk@Xpw>8MAK~gY5kIEv)|`@NMbC z#%BtdA$yE;|3`c!A53@*9Kc81da^IePG31E{Icwi_1(jpw_Co7Mr;OY1GcX@$yxib z3)hlcw}jDQrj=NS24eSWV9sl24;(X&zT{W(sAavdKB?q`ni_oAs4F=2zu*q=TkpwM zFm^EC!Qt#^JaHPO505EZ4BW3ea1Z63EWwRzsy1*-e)!4<0Cz73Znf#wl|8-Qg&ld- z5GdN*2<&_4|J(s@t?B3U9l9LY`}wR}wtyGGUd`HR1ootx2aXZXGG(kA?J?Ig9{KL7 ztdaL+x2d9h`E4#;xcfor3iodQjeL*{joiC=mFM?L&+iBLZR9|@^|JWFf4xGT^zh60 z>z%Sbb{Kx&rVmID@S%_Tk%I$F%!9wYKeDtMnVb(lP#o_BVo)#Rnf3y;jC*3bwX&gf zXjvm?=zGA=Ug1aM&>G0JRu+V_%lf$Eab&mj7{T^i!IlzEbc}ED1A`A3G}bKv`#vej z!z;k0*WT{J8aCf~8d0|JXMbEh9lB8evK@Q<$UE8x)&H-Y{!iyGzUc?*ugyRGHO1~! z`pX7^3-f!6UvWK&Hxy%2l2W#S{p<}+ybtHmCZ@(bTbEL{h-ZT7b>1Dv|I_eYG0&z4 zc;>Vb4k#8U@h0zVv{K79P^Vox{Zrew!~a*h?X2^+wNv76YbTs?YCF?Az{CHSy6yD$ zz+-vf+0scnl^xpQ|6I47=^l8(9(b(w?HGLYPcgm-t@z>pUbM5tiMJ}8^~cpWIPq3D zKyL%i3z~SVN1S*o(?&_EiMP5D{Eve-L$5Edhu3Zemj&xm%b*M6L$0$Ydk#{|PH@KW z_EA6|1A^X|uFhiRYx)mI&T7~0!v^LWu+bNs~W&g}d4 z_v6~=Z4m3tPl5)3T{1V&^crh+5bH0Q^acOt@xOeSU4Ja;E7{>cu106Oqz2vj2G*`41OE<9I7Ls1ItR`?}c#-Dg?D2nGE#BH{Q+CGT?nN}7 zHyDrBvE;P-{Wue!2A?~T)n5MYM1S2P{gwIonR_0$$i_|mkK6PBwfnTwuIvO}x#sie zu+n#2d7sVNpX_+%B|sP{2%KJH<`|18n3(6`Bb?{mF} zYzTK#+}{t&KI4Dy-1~gQ^C81jzX}iksukQvZ`ufOewBKb0%|NUXx zHuOJT`Uu#(UgN%@;YMsv3+f>d*2F8Nap!&D|8cUt^N}$RNuAa zp?c1CxA9&*KH!(7QI5Q=PvQK%f$|i}o2<~1B=Q6N--YLgtbpeRp4IaXS6?@`W}A$j{;#_3HZhLZbaD##x;{ zf3s{hP5K+f35CzCVw8GPrima%WhBxmfk>6A0}@xWfo*lW|nn`;^S|4ZHb z$5~lbi~r9#XMVw;1A-1Z=r9b3gkCK&JW(+-XZWQS^|2cj72rWp>1JK)T46AH22iGw zN37}2bVD5x&x|D(>Ux82Xk(C2`GZec+P$9N2gI}iygH0}zVEevob#MBgW3IjK7V}Y z^_tf{&wBP=d+oi~-fQo**IG|X^3nEop@X)!%QJ0nrM)TI|2XYW(f-HBkkbBEd8Q9? zv_DnL_|g7$X$$R_JMT8u0dF64(0@ZeT>Sf33wPg!~U+)wp9 z{k(^_9R6hf41~&byvFnJR}WPb#cPZoat4=)e*^m{)*{;AT$)=q9-no-g>1g#D03+Z z9mHn97Om~BG!KL)5&`)XXV(#tO3mX*dxRe7X2D)ozjB~jD3lhzSxuK{-o{XEp3l#|HC7| zrTz5tO2)g4eunnJb&R*&uNUDjt*_*H*_WMx<}s#Us+=z^XWidA#`)5{=!tUcMlrUd zqoS8Y*LkoV+s}5V>8`2hZ(``lWG;%VIdUl1dG9FNy-WIt?^>^`f)?7!Uhg((f1mD; z{d~)_t-^Vq`UdK{ifE#*X>h6278JgTg>>wJGk(vUK4jK2zLy#!4`b+lpE~A#-Wd>o z=Q3h)2pwtqe;eb;|6S;u4%|Aa>5$}CYcBX!Kg;}}f6M6K^e*m6;h}Alo1+`xqxF-0 zQPBmY$v+H!iup8B|JuF7$FF&_^D)*9S^saX#^3v^?=9Lp2u;JrzGN&cu4ZtpVEq$Z z>~)@MxbQ=N71wg|--$hy>Pz<4@oLU9HOwz$oXC?u{d++^%Q;%^T?3vqz{=0-)&9C5 zuhm{^a)aCQ#tXOqg1yvo_Erwh?7KEMOg`V;@Z4LS?0q&jIA^l=G5RPY%cb6*Q|}S4 zd}jUd+GE@M&N}$O#;&-Rd8FELF=J1^C1y1Z{(ZUUyD?G3g@Rdx>Wm} zUsDHkafT6H`7C*-zXco*HK|w~G5YEnS;uKloZq)SLwi_fW9*wOKm5naLaYJ!VMoJ5 z;}t(hd+%ZY>kw~1(a(I7vy$+c@M;mv@PxGKQ=T@7pMYKe3;VUg{!{iy&RA!M(>BWO z7CMBF;T`nZcWeAcZ(+`JEe5yj*95Qq)AB{f1CHXuaROQMFDK_lxB4CT%|`CVkQMPQ z*g-M(BMG;t?3YVy7@;J(B<5nD%p=JfY#)jRl4cu2-r_TBOw zTe*W>qyHe%En=L%Ynkv~!j4n%|A{d<*nUK|Y8a zxt%q#u@bpVex*BL?;TsiKhG*&LXGoOd)uXI+^3N5cb|EyQ}!&P_Yj_qtzoR$d&}KN z0$qD5;$XY#xEY}txsxT2=q*I=e3CgW>*df*nkJz+&f4}#=#jnsO2^kB@kd1W%w5#S z(-FSqAba(j=}-2%F`l(g4rg^k*S`uqloeeD`;p$*&CtUhH32;-=t)CQ5BhmcPoRjN z-;2#AIOCL;diA_1(|kw!xvL4r(FsVqi{5$o@28Ix)}pV!1OAKEu;#Q)afiZxo&WAL zxJTr_fKTmj?iej=(1g5BJ+_LzT3z71-#xA8;AHN~ZET&yD$9F*_rvg>jlHAb9==m^ zzQ^Z2#P}puYxy=b%kon>{Dhq2`7m|N{h~AQAY&#xktA;lc`9~~u_b2gfa(1%F*s^O zzi_GBqIgNhjXm%Z-ZO4;?n^FZ?BGKgQ_;Q2{$;g{)lxH7!f&hzav!Y5C7{3gevkP+ z_Wktjih}&w(U3aNtTCbk^!4_f!5Nx$MtC?c#|#edIk3euwmqITK+XStJ^yDkGXMLF z=YPD%8BA=4U$@Gf=G)-8anVNlbq({hm9$&U*D~gmwn6+j{hP}XFDX|OP4;khHFG+( zoii-ImrDMgfP1;hr`HdakM&~??^Hg1t9*?Cw@KyGYl+Hd#`NkuF2DP*XB|mW&x+DK z%*_YLQ!o1&SvTmb1h5(4Rxp{njb&~Ex@137n(q)WZ(FX;)8}_LtGX*_Z)H@~ZQ7g9 z17B^lIHew`8`x-Dx9}bHCTQz7M#%SLTeoeKt($URQg!p~`dqoLyEIRu&%Ms#lzLRV zeeO}2N75I(SM8?m&)IweBd^St?%GX9=h>FOAP+Nj z^KRKNSeg523!`4u7Vw>IVYJQSn_yuoA3Q_88ViGmY`)Q6nCUZ-XPUR94rCm7Z@29b znuP~}Me;DISNH2$FU;T@DB>ZJsZQ^gZ9d9rUJJO5`FiPVsh4~==A`-l#n=d!9-E zR**Te|NWCEmZj`by!(^u>xS=7WN#vS6uah#FO*$lWPf*pHs$vz$iZeaKV`4-XZ6nP zQ{)}A%NitWL`JeIpi%1epOb+l(M62 zSvyvgmHmv|@yML^dHEiiWWK)flxOaeU*=7pD&yIMlTY~adf@qa&YY8RUuj`7Kj{PE zw{8pLx1LMHyYj+J+5fb4OIfL#HvhrGr2Wt+^2+bcg~893|EG9isvrICr-s3N?md=1 z=^K?V;EpF>!oy1~`87G<-fiB2tHhp2 zbZWvYY0iN6@p~!1Gc%h8`_255eetJkUfPn+YsNzCetP)5hH{ekBjk;NSMRY3y0_Bv z`0GC|wAG%+IiKdwOnSd$;;AT`oip?MRbtd0+S=rN=|1j6W6NlNV;~q0%h^)vUaWpa z=A`I}#0E$7L@D|yw~o7A^eRfXa}|5WexIAVf;2?BSf06K1wNI2OV=$RrryHndh}}> z(U(l6PtuD;U($>or3oF1gDwR)?N47dT#u6E93ZhJ(DMb`Cw=2k*>x*l|0T3k}2V@`Zv|Xh27t8D1uGb6q4QhVpFK>rkVo_J!R>}RJIpJ%t04aR%Q29ted>}$&ghXUug>()8Zp^!-04Q!CG;z=t9e4PKK5Od8UuswWT_Ojm+G zQfu;>w9(+N5xf)KOr_u@t(NCnHv@bqVDg4c8ad10(5b?I$Um5V)=ysZE@bo6Yx)C% z7konj@Sf#na-`(V0GIMZkuwcWlLky0(y6MWhdQ=XM`VJ@Ytpc(<2Av3rki<1aFZUF z=Lv2GxT+&y@`p?s8E^3DRMl}4b=)lNFz-Sp4VXHP3T|*F1^0M2la*&u;JO`W7@Q^z zm^7qQRY!KIQQ zwbBmrE@V?v$05ND&Vzz`tebgKo=Ji0cGMW0CJmT0q*GN#(l?mS`e?`LCa+18=jwLs z7u+>&X0PBT?U(1%-3)Nu4wFA*(#UBBk4{w`d{-{bcjkry<{jUXQ*$a}>ewT=!MRIt zpXO#Bk!Moix*cN-PLl>q%6H!ckE$a=9end`C{k_mnzYf>@vz_?<7T!CZqhz^u68rP zbvsP{kVzw>4IZ7UIIt z$SH7CxS5*;2k9DlE_XA)H7>b#I+Oo1_#dxvu}4pL3NG{q+(`|E46d652W3|ajxslM zqdb!WKhZzM?RK28Z@%)O=$m2Z>FL<-i9Ry7Mb^B@Ze}Sd>tbdZX@9+&36rwMWLA-~ z4rEr7GFLMicB8BHOHvUwUzhk8d~Z<2iwlW7hMqQJ zi;9hBqNjE6TlfZu&;ESzv)|f^oNGnKwIb_U)xA_XdyN;6#iNnaS;`*%>b0*w@y7g) z8E-aknfpO!pdT6i73$ODhz>{H5$YJ&0!y)%Nw1P|dp#1340-hYZka>3ohC7pht}uTuTFk=+M~fkVe@1ERknY;IfBI*DYl4 zvq<5v`yX{*v?Mh0ebLh4aM8gx($3o^wH}Jm4{_SDiL;jKGugBA{C@h5mGz{f_ zEa!(NPaPlh{C>aZ_iTR49_`ocg^KRN`lp(Ehf!*u^=E9Vr0=a>(B4C(YT2W+w+ikY zzV{Vd^}aWY_rJ2=AK^Y~N6X|X-utK>4$rrW9Z=IWH*x5#&U@?m-8S-l)H&3B1p3wf zIuKC%x9hR-IuR%@+P}s7xHCpSEBC~)?aT|FvE4)Wt!+kBto9PV6+05yhx_6Ggol6C z8r4nP;oT%_R1)4zvQ8!8-6Zf+@vhvBi7$`kU8NUA2Z6r9jc+7{Z{r>EOe%16lA@PL zj$cSTY|Xp&Y&M1UAlbov!Gxx0nEUirbSojwY*SbdlAPyOPG|<+1kB-`Pux~x_gZsR-gV*2 zw#J-+`*;>Vr}S2AFW|NNn0LvVZ|vM~OQ2g~h3t16RcDNQl?O}e{iM_j4=(3CQ4g*# zcEu9^THCB^J6L_D(`|}Ze`Dt?u^p6iCBH8@1-9mmW`t?~fUfmi^j-RL2 zwe(!#cvU&kp0U1Y3>l!$OvPtbq5s1k`o&hYaQ@NrCptyWKgIJWwimjQ?c5*lXo>0j zV?VZ1+#m07c-HgveD}Yfp>Osw{{2np){yBrWO@#no*N&Pv7KYid6Q_LT2oA3;j^oL z?Sb(;euO-ilPA_#?#3xsEqz2gt7Kg1Q-x37QMQbCa?h;e)O+Iio3c{hY+GLs`d8qu z32sXdu#4rHHDBT9tgY}%Udq12JMlMC_=!1JZNIBv>Q9ibUdkKXF@?*}IbTCi7{d2$IsyDbEHFS9T<_}&vn9JU=`;L@lZBcEw#Y2aTjkE(izoNXoSBf<< zCcN87IgLk;Q34+PIr$XKmId}xRaW0MSskyvcb2@$=4px8Fk$nw6kSx0=>O2a_4wV- z3D02{CjMWyO>jCaFWxWhkvitedWMZ4H17Q^Yfwnmxj?VX-__{4Vsn`LIeT~g(P*mk zW87g^k&aUKJ{N&E5u(mU(Tk$LJdo?W5Bb-!{7kWb)q1JQH9N(he;R&Cd)s^izhI4# zb>->_<(eM)qfO|Me(})L4Lv>J3WIAUxVo8(Y1)zj*F8?f!Fq6o2Xh}E3k`bhFl!?+ zOZThR%U&eoGh1}x>_;f;XN{eU&)q?6IG>ii1oXwkE{%2lzerWtO4g5RWF+g)MLRs} zr_tMs{8sBFYrfY$d-6DuQ*+%feun$ZbFr0Zt97T0X^KuozWK*E(K2M)lrhcGhOtdi z-&jAeKy(FbQbXH?&UVcHR<9r^b?=6zDXmwe&zO;IU#O??#b+j&xbneoG^{<#L{{;MpH7pU5{gwy@9WUc_@5&*dfdXQNcVao3G6 zvJcxq-@vWdeMpkHXw}^MeTlqu~)Vrz-8|!_7(|v;2YDiA?wkw_^jr^hIYpl z-nd!d``PE7EA~edk&DcwgX|r64o{xwhIvjsiLW`&+nOf2*oh5h4&h77b9VVeH_Nlb zp18>goNRN-Pd@5Yo@A|iE*5YOwh|!~W=*rRal2(v%pSq@UrxjNjbxZuu0y zKN*c(+&oy$elWoPAh~4$u=$L$pJy3+t>=Hcv0v7X%_Z?u*pmjA8Qa2T*cSSLoj@jd z&)t{Xu?OxQ`?t=gjh!W9++8xpTT8~c=beplY?Sk3kxf#cw~w1uAG0su-9L)`qLD*O zB%Zg}FB z>rTAmtZ3}cTE1QLan|?0Cq13ChV&DpOGw9%o<{n=NUw^f7@M{-Cwki$_HG*&1N#WS z{n55E?Bh0G$@7Q#T?P!B6Lt6D*~1#XvphQup7q!+Zf+R+*Ll{KJ?nqK@3w3uWmlNF z!dc=k4d2stj&D0xj9jp1N?Dh;{m3I9YUKRWH2A%d?sp^lK1IhEIV*pk62F4+M}FJ; zlLUKZ88z694?_*+nI-hB~Y}>J>m!3b?Hh$=s_$oMOYyxFfV^OAHP*oh|ec+R_wj9>}%vMS?$()e8BI)PL=@Z#2$evSl3=+FyDf^CqoChhh{;SJhpU?j`r{X|^ zQ?6{C>c=_*N7+lrz9A84=xupp`Joo4VN**}%chpe{Ey|oivKeHnTH~OW9X(VA71n6 zf_)`?_*6sH1Y`T;^tQ2X=j|&4_CCpDUuj`^emSq#=jkgOPsF=N$>ki*H$G+G)QSv> zIDx(-%@yQNPWIh(igub$}}@yBc7A33x;K3@2!zAI5_)%Tsy&fv-yE=$>itHE=b@*hkA8=7AB*+@i{CJVlv*E`>9HWi49c zfyX`V|CR@?+Q@!e^55uzd-LDwflL0!*z-&Nu)v4)W0RuwGxARAWX_7uu*};!=51qs z-mZAP0)Km%w=K+Dxr?9cnYYQnl-@A&HtbB<6mAM_3Qy*LEdN#fm+{ZMUB|q=X9S%_ zj5CYWrR}NK?7T>9kl#k1arO@j^5SaGeqPxZDEs$9yoDytKhC3`0=p^{{Dqy`@a9$u@egjyb0Arr|sDFx6R)8^2 zN1C4lA+7IuLiTT=VtvnvMt{+M?)TVR$zJ{hXHxGz?xJ&9udRH2y04OURbsnZ(TnenTI)q7Ncj-uB~1nBLHMWLnYO9DsdZEP zWd6tUU&Vh}>n6c3@ri^lw^PS;U%lq_>#1V~b-e3q*Sx;aS9O4RXwXsFyVukq-=j-B z!W!~0Ywa#)FoUd>bGBMXWDQ|XoPGg(&pIcvSSw( z#(TZ5)O@bb{oa0&J;Pjh-ui@!e7MoW|62d9?XgEGo1S8O>=R+^#XR?NErxFr!0o#K zn(WCGjSHbQ0B!gSZIm`jTZDc;|MU4hFPd8AZC5L>kf&WOJU0(-S3uiH+jdEtMtj;c zl0S%UOTj-=bhpdeoB@Y*#qKv25zE1&L*LPGq1K^~yze#oSa{E?^R+bnsF6O1IPOdM z(Z=ALIKM9)k*9uCI8UWdAI8JhD#NKQ&$MQukD=0R$kgEbLq>{PM&v4JFgP|+7`~CA|M|6Z6BczQ?YT>^4I+vZZP$XoC8w8 zj{}!IM+0@qnaf+BogXqb=X%D*?#JzZv(#T)?nV=gshpu~--&&i>{qr!r|6m0xrMP6 z+EVN@@XZ*U1b-%g$vfd!x$Bbi%-;#zmYJ^02=83r$*+o9!pP<`j>w@bV3wu^r}L6VdDQ9TQ}YDba5%D6Ffc^H6NNg(lg5*mL-GLKko~ zkI-M(y~)=-aCMfTALMNC84p}^AU6LO1m0-yfKT9@S=E_g@d)o^f3!m3DmkxJ>hqfF zFN4o}UPH;4uScJ8G+pmgxODvrPFbOMp(nqr`HC*uBJ*#C_noILa}=%;x&r#FHpx@Q zOV{6(!m&e@`o}6Z+ zNq+i4#@pLZZohtzoU1N-F1pbkgspX^YIU2r)`G zOjviQeZss$sX&>ENth+xMTR@9edsX44zg`xlbox1uVv5NUl!^}&ZaDFd5`qh#t*Yk zknf6%|LEvw)4Af0sCBo2v7);b9XdYm9aoTE8BMbfxA*Gtj>~~9;*Q-Py|*ero`pOw z;JJ+F^60&+`*LQ8&lFt=dwS^olJxB!=Fn{92|U^3v^^tn6%*_wIdg87GpCPs&M{}8 zByAOW*>Iu1L(0eNTKPUUb`Z4j0q*?vIlfKpoFhcOZ=jCH%UU~9=;=gmos_zuH$U#+ zlJS*0VbPT(*q3f6dGSFbuLmOMYJb()G9T)T?-z#xgR$2FgMSHE;#*Vi)~~(w z!Fs>{D6w}wej-_3bapyUed;V8F1~a5vxPI}-m_NL!o$U9u(*N0N}VUr?Rv|6()4kH zxaYD#cjGI|L$DM6}M}Kc^8Am{5*Iqr1bk|$=TVoL9L4hK33qS9bWio;ID>952Jgm ztv`I)FuF(O-;Ezew|@lMf}Vbrx-V6Ib^5S6?YO_1oG`4;m&{n&HpI>NBxs+=z(17K z5jX9AM(PTW9Y*IL^1N}@u)3bk*H!4>D#7pRzcST^+F@<@g~f}lWa*gh83C`Q^T87Q z7Ji?i|LkG)JZS5|Hn+5%du=^KA*CymxvTmKK2I_iM8-6{vG&kZ)~;#Dm~?V?DcN+Na_2B!2;0x=!a#@p=4hS57su#GKi!zqL)Leyz z&q`m7z~f?LBXWRCvk9M^nV+7tp ztQ#L=aW(KXGUi_Tvt{yQU2~B!&Bz$Ws6)o;2du#sR|{tv!6ju{z}3wA@ABSDzuJF# z+Vjy8dao>bR{Kv+{#JQU9gLUSzo_{Le_0;zvxf+)X|-1fgcAL_fjk9pqdGWtx3?XkLN zFX}^cK5X^8(`6Vp>LJK~VJvMwur5hI%=WzV*7HOu+}!`oEQJd`@cajG;<**=@m4X{ zl&ux#>exYvOUya&NqCI;nK%RwJj?&{Jimba;k=$ql4gM&#W$4LxT#m*&*Q8?oCk?@ zHy9t{IY%1salZE_iXog*^KH zxt6{VV?CR^{oJ3-0k`n$T*||9$q+c+-72>eCmG{^!E*7 zw_^17T3@X6OC!WeIZdyDoTK85#T0B9lFSLE=ajj|IPH-&2_0gbz8LBK6*9iOcaUZE z*Es|DOR%;X`w`}q*o@e9LGz2YCHo-d9+en6==k0R?Xg+3$urOY`CRZ~voxX(3jaB| z3sm_HopN6J)waUAEO$HK_pHrwXJGY>ca+5A)O|R{tr9w**FKlYGcrTg|9C{l8sBJ;aujSdZI@Az4A%N9;(6Ir%WLCM8ZMF)Z69W+gE!w=pl%#IQ``hmpo#XBzM{ zF)V*+;&)a^oK0d_W@^^$%n-wJ1FqFXvl49mm#M;s=GWfb_4Mqltn){GaY z`+~jTd2uEwcwfBO7p$i3M`!thM`rtiGbnpxjxYF4=zVFfFL)(%z7(Ra1-{^Zq2mhh zF7^c%(5~!Nz$9J5GiyzDsV`VX{~TUM%6>|0Dif8rn7E-;y&wCf*n$_v^Y9`6Q%7?X_f4P!E&{>m^W z8Eir_jLAO9&zOMct_)+6Vmva$BF!)+`xxI0V=^CFGK|Um8p<*z*TM%G#wEp=u>MNF z+?8TX?uWJ%W1?cwGA1eMC&nZ-yGh3~^^D6)kBfa6wh-7Sq?!K`%QVgWU(ftcGym5! z|F<&#w=)0rp0c1DmpOU={dzq*&&*4$PpnY;!y^r%KdCC(AI9s%CfOPAp@-s37JR%y z;+cwXs`hEMKC0rgDr-^_nv(s*<5Rne`;K;xgWqrO!c$ulkC2S{fUzQJ;i$; z**Bz4vH!UqorE|3d5ieNE!X~V5>FLf^A3mS72?0T{CxL4e7oUR@n4-hvj6H0)P00C z&h9sK{L#YqJK}TL1G49kdsllu@JHmGY76VD@Qmp5FMt=lGEnULM1L>)pRepU`2}Y3 zf6>A$4&LE`&=gWVqYwI!e#Cr zSq~njZ%v#<@q1A3Ss#SAWZaWNZ;!;93iNJa&GFvPsl2Qel2>%SiHDm8H<3rhTJ6`d zR;_QF_|s{>Iluc8XcONbky*E6@7XBv)5))5t)d5&c+xSRk*~dv*EpN=u~y0V^#vud zR{I$HM)J<&j5Qs3u#5W!aE}ygbt`jT;-Tg3kDxgo_PH+fh>eDdwTgZ-A8U1&iM6_& zH3EHHjAx-q)_P0VCxjl#rs<~?@071IIylkIrJyGbJw2z0wYo;^RKXdiyy#*T&v9l{ zd`SEAu~un!(K`=6e$Ma6xLEuN$;h?+qBY&MA=f5pKYWuz?lugLE zyuU?k9sL!-Pu}q2X@(b0pl}<7d~O`Sh{JR%LU;8^df>@MSBByJ~RQ zGr6ogse21D>0Tor2Kse8|07dnJt&FipL7NjS=#!7%y0CgIbyQp&Q?ANYnZRC^li7A zx9F*8mwfA|o4zafXrC2LCMCv%p5LjgC+=!vxw~2AEvzdlFXJt1fy&G8rGlSzX1&U5 z{cFc+yk=~#2EWS38uO$&w-xUHlhnDQG#_*JmsZ|UM#(Q=pQny`**D3YPNHXo#yunC zJAEH>-P5kCEuEBmSk+y^_%wR^ELY2Z5FT81z$+~!Ygh4{1)Hw1nuq~A>Yfu zRQDRPetvw`B<;kTf9=2)DP@JTR*>5`>B78%_lJO${hNws-ti={;fAQ zBxPdA{j)7D!B1JSe|ps7;kV6&rGs~$voMuU#=-CYtA$BE=^NPCNy z+&cM~8AtNPp-1*Bi)?wGZTZ$bO!f)V2W4(&DJ)s;-eqA5pV&$IdM~vw)i0W!ODs(C zQBLyBv@o7+z2|#jrrxhvm?}#@gZEdq9YV9<1J<91nem{He(r@Ce5d8{(O>Ym^w*DV zKHJySwbbU5zE0}#?ak+dW+_YE+bm4-Ngb3u!TvDz0=6CSVXAW>zQ>EAhqqszkF|Q8 zoJZmPROdY2&F5VqUaNWsKic@Lhqt#DmD94SLd!8Dt3>}P>)6hF3hS8Y6@P2?)#^MS zFyALRSMGaC*0Y1GW&33N*qMKnE5N~P>p(DSclYm z+97L}>`f|5_cv1B%+q|lR@Kje-jCWoCgp@X}W-O!$F* zQT%FQl22gdTkVCJvS--(Eicjj(=1H-Lh-Aw_cOLE&x%goEdjRE+a}sBbNMThCix?`0MyyaHU>C+BsAPw@})f_gWU z!od4GOJBav%iXEu^YT}VU7x}Agw1d9QrE;hUQ3hHyVvHkeMw!{mgZwDeq!_SUiAg| z%Dnk_miFY}-`IZaw%|D%yEWU>nvcu6U^4L#m=DP<^OUc5wxbtO70>k{uN+sh>En^4*3+l6bCbr-zoYM+3wj{o zNzrqqX0i7~&z0i5pF+c3AGVEm4sPF2C4ru)a_+UWK zJB|JN4bJc>8~gQU_RMR*o%}zH{Tea8JM72f*xddK`?`D7cO)*-x|VzD+`8n*v0uk| z$CB8uuH8>ZF4plrJ|+6(cNgiC6LTxjyHsEUSuvOlRSt#d`~j0MWYXk?3ZC0eUDT1?Dl{~@*&d-` zikk&K6fk8&CXLwV21A2M`*o`7o=M#oQ}-;1Wvk=S4)vQfV9S}hyQQ7fwMA%XaI>94 z!(=xLTyPEb>o~1L0aHF?@fdi>q!FE}`jf=Q%@SAeDDiQL=cxP2r2QssH1*#pZLN2+ z8-)(i4x!^bHw#?VPy9z!zTcz)i$}-H910kCNT;g)Zt9nKpTzpKaW#iRCV#}F{WEpn zN2I;yy4f{C$0RqqPUs*7uIe}OFNY#J4(3q5NlgsIp?(vKIH2LGe&QjfiG`RU4&qS1 zi8~xH`9dZQoBD5-_SU)C8-F+#H#%v8^72-o0!DJ7}ovciA`Kh z{Wa7-euVhM#3EMt1E&7f(q8Hd3my2kuM#?H-7Iibf4_-4TpF{OSi_nwlM;hio>lw% ziIuzGKbSd4yj&A+cvw8*o_DGIxnYq*hbEv=H#0e%gu&&pn$r5q`lNPOX#R^v$KVc)7>m^Re!&U z4@^v8O@~RbY0%F$ey~ne|MyV;cIxk=eiIjXh~?&`{}SfeW6(J*vbFKAV3X`&ZS$SuOn}{?vzLzoO&*%6;olz~HWyc7Q7&byT?7 zN~xpV%>q9WxwyzqXb$#)V#k!5SwY^5-0X4kBAc?WNg2{1Qr7Eij+AvX8z3L+SGJOr zbtGF&%6!h&NO{unr0{pPmJ~kA){!#a*?Q9c3+P)?`XD=<6neAN`)bccZYf=N8M?AF z=MQFIq3%cK4IXB{HG}_m5v%vYOPixJf-TX}7dg=}m-?ckg8ry{bAAT@r+S}d&vgO+ z64$r--NgL8v_-}CJ$i{RdicHmXqNrLnb;|1(MS5eb^~#INA3tEpTKcz)aU%_o z4v~fejGK-LZ({-L`&Rp%gHakc``+|iaEAo9j`J(`rb8iv`*<1cVGn$iw4XijE2IHZ z;Oefk?n<)ET9_x=l6d|d|&pR`TYZa%U)gl!;9~5->uJnfzfKe{Sr1(GVWGKt@JzNIeXMPgK{ps z?E8gtp*=5&zx4Sg2C%)K7~%eObIbBV{9o=*H# zi|2?!#2lt9ZX&oJD71TiXBWG z%lqC*>|pAY*ukfj)VodUg?E=@|Dj@Ho+@^*X_LgeoGSK{+^NX#hEvQHnI~W99zIV# zX8AXy@5`T1F@p>D<*~(#v*HVMg~om)7V^2QL&PdWw{LAmBk1>lKm8x{qx#)6cx*R1 zuhKX>A$|89ubxlrVB!GQ>G;9f#hlZL4;Zf^J|O;$F=U0(1DX7G?n^s9;Aw}%{8akf zkp3PZ@u-L=Q~W)^*qyXt3+p-G{Vd!+7w!hVcY&hAnZv)#nIF&=weH*rUu==_c6$H3 z#{=W}J2p=k-J|3oZ;CuIDFf_V(jT;?3f_$|&+_;vyMcFNKhXq_)sOMSn(bk}QC4t0 zZR<;lPSx*zP4HQIfIT5~F+UW3bTnFtF?>DruCcg)P4(iMUX1Hp!8P6BdZT2FOdnq7!8Oi{tFai@ zXu-ujuA=L8pNh4d|F$Dz@Cm_V$Fjb-4~Kq6S=J*juf&Asga+EMz+1M?lr`^PlCpKC zY`Ymd>1QcRp3A&tk*WE9=ly?5S=J*}FMdrDA3D!}yr1DMi%j;G{jHQ8Z_0jE*Q@7r z*)ZMig08~aG=@3tc>b*XUNqeP8(Zzu-P`Bq?Z4G?yF43Od}CwJNc^h$H#n1Hw^#p$ zpZ`FVJ9CxyYm%2XJL4qgYPtIro*VGl{afw6bJ#BUJa*qhJo}B^_v`%DI_-kpcQx%j zVA^Th7v*l<8~-r2z!@BR-qGi-I-gFLnzUP|Io6b^*x!o%Z>!jWWB;q{y0QOFJr{fI zqxhK}#s2q7%D;sD?}gwMo9vgcT^5_{G1$w!g#GVn*qZ+t8{n6bX)j|3`~~czU&apj zN7zxnj2-Zg!22?Gz(2wU`DN^Ye~X>@%VF}#`&H`snU`1lg0Eo9{mPBLU=8-euiQk6 zefcXl`+^s13WK12^~`ZAz$!g&^queDQz5h9((l{e8KVTx8m?b3;mwt zJ}VX&-+KXfG4F&=lwSXN;frtVOv5kJ=)<(|i`a$3FY};N_$AGE4uoHnojCk*jpT!8 z($J;s#f6XHnf3HxI^YX#6F-7V?6u{&+84Y=_^rklTrYUXV^1!&-L=?ui=RLpw%=l3 zUJtJc&owH$@w>!ce1q72&%_sie#~A>d&TyD7Q9Hl>}>MS@dYcOQS8Mt*x8A_cqL;Y zcKi$IBeCPpEasna%Une&yu5_^;K|HV=v(Fsmczg4urD|ben_wK1?RyZ>D7wQ@5

Xq;2Cp{PHi@TS%-8 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%0A-{2JV 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
TA&i)rd2WlQ`fY0k$%RUm?X&(XM*UT}} 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

BR9#OLVk23M^#^S;5_TLr_rmskx>=kZ!UVZ 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 ItUI8T2Fk3Erb$J=XSL9(tL?o$+4&NZZxS z!9va|Q@ss0TZiYMo0T(y&RDm#IS_jGj)m{l2TJ}ZUlzFRedLb4(ZrgK_H#C|X5N6_ zr%ZALu<89S?zJw%7apo-?q#sQH?PpVHnFbcJnzuFHnDD1&HeDIUj^T#@3eLM8D|}S zT>Y?)azm5De z@)6xD*<|JbdE5~oAFzP7i|D7A_Tja>na#xcfOHV=d)3ZVy1i(#5jjqUbJLpJOi=xB}s$?7uJ9IsmlT z$XcoN`X=2|z;^>Lx=uLlF#9s5g)V?zgafk%N%?X;%WjfS%Ulf7J;i37`D3B6eDf(! z(Q@`~AcNgCXY}3W+OwGte@K@p_lR@tM){G)vdfw1BbA zcE+ZChbHF~o4%9$28}~`)urfRtJxR&4ChN|jP5s$k(kX%V~o(Q@mm-RxOn$et;CMJ&zo{$Nzzka_0Y-+5C7TvGjqOH6nip;9T~;`jKG7kCF0`0 zWAF(2{u=yZ**LS&vk`JPbYHb_awYIp2Y3e`#^6WA3KGZQn^dsU?Eggnr}?n+gZXfr z2i|n7%i%-!JQVTYVD9;Ozc}MB#2U#N2IeTR2R~vX#^g@y#ROw`@*Yiyf-7~B4=9DB@fFrcHj!~&O7#woUsdjd#}`GhPPK@AE@4; zPdj4|UUAacLyWySXYAN#=8Ob)?Bn_yd-DKe$8X9SJI_DL8M_%bunaVAWXeh7Mz_9F zRc{?GWKS0{*FzS3KlY9WV`m{>$!)#R$!)dqYu<6TlNaaa9XTl8cZMc{V?x*_j!kRV zH}C6De(%yq=TJw+JM(GUuFvkzExT=Sc3JoR!D0QsKVFpm-X7nSEV$h^K3~vJ+0yJW zn)>A7c*kwtZOn#uRS~`?v61b?$a%>m=Xo2?M((+~w$awF*Z-qOXEg>ZhdVmU)mQgn zvw7`jt@CV>-@ouO6Q6qY3MWqD*sNJPF-MnA^Y%q7&#TK7@3%bvssF>Z(2IXW-(d3p zz4znEkJkPK`P7nu8rMSX`3=aFDDZar=1gz2W?V4~dXO$v+-Dpy#9Y{KcVQ>?E1ema ze8t|;o&whnkZg&gU%pzOu@x-kF*lclrm>b*k6q!tKc|s?v=8Q4@Ff2}fxOMw82RBV zN290EEsD=7Y5&b=Cp75{G2h$lsJrvC*6f zIXZN~N6;ktM{lA({K}0azTs!TqltMC zH&G69DpkDll)T3FVjS1pB0Oj8u;1|gR5bN(U-8gyaW+le>Y*t^Pc1e*Ej2OU%z0hW zo0#`H#sW==o=mKVaYZ#gV|Up)X2L%lH#}4et%+9T-*|l<#mZct=Qik0KF=h_=h=kM z1AfUjuns5iV`MwY-zmdy^Fyx-pjUmj>D3o@%PmB%i~jc3;nP5u!i`IR(tTgTwlH@V zgFERPLw`38On(oZ-4Fe>II$<{<F=I% zPC7g4Ki^oUYmi7_R&(fEo`;8`FcTni~wj6oek8ktVmj|X@HhB&x50@Gr zBC{Xgm4~8T$;7`^9!_)T+L1@6l7|;TkFH#^>G6!vTkw7mnbw~iJ2$6ougt8a&PlRz zUNHIEa7QmX@O+T$Grp9E_Ik#gg7%=_erc~i+4sxSlYK=ww09RY;L5(6y|hQ)pL1!? zBl`;ap}kYdzPeM;&)52+pB7vGy+n-4dtZtx|6-2Jll(KZBpvIKe?6Z&efjr~rz!td z;=7jn2bO=ceAe_xKXU2b%d+K?WaR2E=E}%3LXweX(4|*K_DgT{G1H~DmcLEb%{>*p zeHdAnrnghex?6{3%ewtfIrIiib&ylxm36=5Iak&#TR5<+8^c&mSJv&KU&)+P(dzbP z1IxP4L#t_f)2wG?)?*a|(OQdmJF(NMjKSXv75^Y!5+$x7eN|0<>dnX(?U_=(VGMgm z{#s%u_voOjwg1dQ4|{3(bI`KNtE|egR$3V+=SS_W)SB6YmmB-`&1uKm6o*W|CpT5O zHNCu#P;aC1+G)pyGi*m;LasiLaaUFiwuoCH7mDfr25Je7_?D)QkBzi zCu>;w;aS*;+RN59jJ4YR;8M9?%#DdxFkiCkG)I4hXJxmh=Lp_(b%@H$6;7$&ESx%Z zy3>4a;}c!HO}hB2qcd?({E zJDvEw@Td6wPA7iPvx(pDq?|n;cKm*)6Tj!XiQn&Z;`gerSk}&|r#Bz>f53d){{i#S z^U;&%W7PojF_igm^WRnCtDFh%ly}shKZmuDATj3>%Xhd88KXLlb!wyW{5;mR%<~J?C+cZK zzH~`5YaIO61Q(odzO~f+Dp*=^{v+_Gd0t)ftNPON^Ox|vd1&)K&G&Qs$}iBb(bZ#p zl^4K+rNR31WjEy!$F$FO(_Y0p&ApfC|Lf>mjmO7WjQ_`2XETO~{BdMIe80|O@9;mJ z&E7P0Dd%1$J3adtTjkGU$Ad3(hOM#fkjr`atP9~I=Hl|$Oxv%}-HrGcduvLEnKgRH zhd@@~!&dl1|5B9JtLEKc=+!SDmihitm2KQ zEH(VnkNKdEei7Tm9B_6N>_V@y{$^zXsTq zD<_xa*Z1MmHBRX#8$?a*HpteMmM>jvI(S zJZp!e`{NB~&EhJDFT@-A&$T}%8Q&u`aqpRzXk&>C^$VBAZo<{D0XRV1G z@xWU0Y7R%4m-PB_i=CV3rO}tj8$=dWZa}uGYz^%Yn@rzLulq;NXD&B9Z!NE&pA8A_ zuNk1+a6?bdTDH?yZr}a2{~WyR!q7fhr`-MHug?TotS+JlVGB7u- z7tEEwqWXK#gQh;ZrCx21@+~jp-7Lnbc$Uu5Xdr*Ek#?JYWG!!?jOt0pH95G|a}9lX z@mmId%b?HP@rkaLHz58`=OZ|{(Aaa^c<%kw_6qRd1pXTtbCWZ6$#b=>_>J<_`oo() znM&hr3we+(-k$T+oj_f$AEb4@uP@2S=fxhHbLq`KAM<2?C!tsla=43iKDEjD2H zsp*#M#(ww8_LZN(6dU*X@51wPi=%JCwEr-{=_mQ=m{dp(jyOwi{EAr+{FV#A~ z;^_F7;{8%%cbprV54=(Ist@~O7j}o6^X8LXF%}#WM^B{!wp~F^WDGqNVZPEbEN+Eb z24~B#zdnIoA=`oae<07nrb9dbKsus@HHW{5z6#LEMd*NH^zle^vuE6YS)8G-+;Mm2 z(3_iY`O+xGe=_$MMCxdF8MJmAYx}p;*L3>0)k^kY3mm{Eh}^(?YyopeCVbLZ+`Lcu z6YvRl-VJAse;8+e4JF^k-}hVmQ~Bs|?1wo+{c8(H6t3+><`20T+iA9yEV`6+)G3@L zkKTU+efTE&=`Gq^N_)D;u^S!Hh0Qm_S5x^V_5dB^+ep6I`L_019QXaVecqFFVjMl4 zxHU)}Y%y%G9_-KFTF%i$-{~HmH_%^i&ZTeZ*c;GCM+>Gu42{}nvjxJ}OV?92f?Xhc zuA!85+;KtfY7ZvgnqvF@<~?WHEa1#fy+6SFZpuENS5x_)v+R63y*KL^z@Rl?>Glrd z@#@o@2M?@*GZ(Iw{N{a6GEbaI@M_cRK4XKs@WDsy<(WhrqUq`1(5GF|;=kF`TUJhX!s2}wq zyHYs>C($|l=e@JEx58I>V1lnwa<#NSx|iJxFS+M9^;T3_c=yCe*6!^_pFmWr!x%5J0XwO z?3q`5!-qUD>u&fTvd;{k^Zq}{qwqJw^U%X<{Oy&U?)Wvn-di$!?dDe;ZW&~+hfe4G z&6dJfet5L1eS_Z$DQ7uW;sa)1GF8OCzuG!uHFMJgKcyU<(TmO~$+vZe-brVy_gSM- zj?PFqI%5fQSK^#Ir**0nI>X1g8RLl4E@W=?T{=VOhP&nF5T~7K_{tYHbnD3f^PyWa z#+E{}#%k7&8o^y1_!;Xu6EBl*V1*`f}mtnsxT2S%#ZlB zF+trf>TaU0TTgA=MGSPT#>BS(-%_b!_85(5$6i_2+QD6bP0&e;2aeS|(_VZnzj4mr zWG>>^wsGb|wnZ<0_r8lfh29(B-zn(E81kYHyaVI>cq6$Z*yhI1sY7n?ET8pb;$!M3 zpvjF!AAN-Q8)t9Qj=u;xxzS$pkq_E5-#Xk(TN>|8H-V=c*^}EiDC;hbThKM;T(SaR zGOB)l&wQw_SAm;)@z=m5cn^Sg<^GK=kP0a zZu+BR0&Ba`8PCBZFTfi;@J27Z@i;kI3lev}x^YSQd%NI|LfY5)^YYVoEdPs0z|pEWB$-_KHR zC+&CIW$oN7^189Hq&pIg?0K<#>_fm$(;NUp33$FxwlKORj1E%^zw2PeJ=Sa8ZBon*iSA(xj7f&vQQkls%B4$a9%1sI1ju{ zr!2Zg`!pixqM+W-qs%aiFST3Trmdm+Z1T3qhQW-axJzg*FyVFQmJ9>)%a9p@NM)~#&?^Q>|p|sRntd^`#>_dqZKHw3!2|ssQatN_lS3lgB_Ce-HN2wp-5!O$?@>I9_Dwtsm`pqi zyeOXa2;cK$cg{l&!vm?*P}!Z^OgxLRMsmj5H7I+mpJA+i_$5yLE8vZEJd6H5%Cm`Q z(Wm(75}vgO*vKMqA{_nK7wp)J@FzL5lkfE=CuVwR4dZcRT$_v^;Mnz5S#~`*9~7Df z93|KgUwHIrmX2`sVA|dtjePdRyvi0K8w$X85il0RKO^DI(dd3B=5;w|bGZ5*X3olA znnj(fsVhEO03SU%##-BfZMPfSu1fFlryd#OTf2&PExeOG^^*h1Ht|v9u?-K|_LlA2 z+dfiWxE&mcJ|5#&<8k4a9{=OQ46Oa-1IvH&=2vO|@;cVTYig}fHE_E6XeheK+qc@@ zN!xFN`!oE=c>D{UyHM@f^Qirhmh+#BkNXC=zr;T$2(S9W;z_@gr>Vd3#a^kJXdTwR z?~;0K2H=%_Q?ByJBU7Hd-5PQM-8fy|Rd!p_*Uhv+eB3?lv2896yVs<~BcPj|d*aBQl(v8lAasCm>o-Ax=s>J-Bj5Q=WC{E@19rjvhPo z%~yLyS)nDL`QE-cpLyo(IiL9t{=M^d;WuYLTsSO$ZQ)r~sPIJ10|h5m?-@q_s`EJV zcPZtsrTn#&zn1cozB%XNcJ8~IG}sDF;x5&RC+^)-@Xohh?U{_+V$EbIbk)n6N-uEw zHnFZ)3!M0dan>;u3@TzUecEvVY-9C_0b|38Lq>pmp7QLmpFBN??j}3hq zT6O7@JY@UM0Lf-#xS`J=vX$rk7fJJ^oB=~8=6ly9x(f}wq38-z0Pe;)fr!c{hIhRH&XT{+UK2Y z%dVTCiCfWw*cXZ0Ip2}kc%voS;TanvaRa{(6Wh0an7tOhPpr`&sv&OWBNw~WV81)t3iBq>Br|!(N9RG)Je!dBg1aNd=1IYF?chzHSq?+)HnnpNw z^O>ReUGQ*|l}z{1!gC-Himm3ilV9dIhA$LTYzcag(!Oj+@r-QTuGd&QBCgXznVwgz z%0hV8>>+}$-Srdiy-T{cs+%@mz=rL?hJ8Uc?5iFdmVS<|MOOvbD~;|k{LzwU{85k3 zNR)4Y7L>$BQrq_fcJ+a23)ow5CZSL=w?uI)FQG0io$-@3HzSHXGXj6rJ~W6r|% zn+$)K7(0~tDGgPTmn1pl*nZoxY(LsJwjVe#wjVk-%l1Q#*|wj_$6aS^zbeLEYuaCD z>|EAXZegw+JJ-DXBes^m9=f6a&&hd6+kW)-Q=X0ON1w9&p5ocqe&*S>^}dMzC;4h@ zKVX;b7j*W*6)_%kAxpQF|Hi$C{kG zA4Wcid={5Simo}XGuWo11NSz1_G(1NLQDGQ*)!728fgSvBPZ5b>}CD|xs1q%bv5kK zz%G&Rz0Hkrt&%+k&a><>o-3digTsIw>&G73Yelm6bO^Quyw@IuwSjEiBAj37ncpY+ zv0vNGSpk{-Q8D-~4&TXc(0+Z{Ir2%n;rTA)wQ>|(9&adW-nS3l)_y3n#_Y&w>D+PP z&a9(?e?3R$lS?RFOj#3qfp6vCD;90+D$2ck1HL@6dlqsJYIK;Kxw|$W9{sZ!Ry!__% znc6+@{-;9&#(t=^&jT8Ku6(A<{T(s%p>$5Fk$4@{s>JOI}ll(xGhJYGvC*9Ho~StYkHh-S^Ao9^N3T+9#jl3fgRgLnMcvvItMA$ zRMZZAuj}cU8tSGL0Jq7O6e;oXoyawo6aVMjLi2-@x{3iR&j-nH41C$|F z)J42X_r65vPj|n_XYPd`WXB&c_H|*n6df&?7lM~obo4^$=)Zb&H2ofJ%+b-cfdO^& zy^~x!*Dj-cgOhahG>v_5Mn@wjWbY84$>`|XjESR)zP$X zbTqg!IvRfMS4VTc61v*f(Y1^lnMM1yjt=-k-}Gne=rWk#=iflvUU?y1(L_HVRzIJPeEZ%ZuY8*k`j4TGd?WY8XRrT$pnR)mUcB(S zI1}8m-@ztdHhVmq zu$f)ENc(i{_=S7#iKEk?Tdh6BXjkjXpCoP-Sh8S76X#8_F07oAko@Nhu2XE^-cN^2 z-Jx^2O#JmX!$Q#_-SHX-pE2`9Tl0z3&!SVBcT^n@EZ5l`6|A==&Q@IIN}Z2CqbYCf zKgE&x`YzmUHs@%KGqI6|QP=`bUAK<D)Mt%Wmg< z)6P8F$*TWe!Sr-ai#rF%;4B-;nG?}Xye`96k2`wN8{a!zYx~#NVj~@?&GxS&_oJ5{ zK*m3e3~YmzfUgYr{1ZhZ$n0WdFLsKn@6A4QY^PJ+XN)|3z0qI!4*KH=@yCZPYs87S zKHh$!(R$?*((e_lOU`2sTj&!S(VRt)@zKS+YYQ5mvk4pME5v|g=SP`4#RO|PdnI0M zCG#CSc_VO@;NxSX&X0_wJ~Xk9@hc`+CYzb(Qp$+#4DMl94e4R!C%j4=FD=K-*&}C!zK^a5l8>f!6rFh`Slqp@ z4bb8&>Q@lwsI_KXLI26;Ez6ugnA@Ls|CQFd6WF)uzJM)pCVGWFsu>TlE^NC=p)$tP zz<7d;N4!_Vc*FJJ8P@ zEIgMyHTFKtAxFr-M_&FCaO$4Fqy9z+4tzEnuAtdJ!TS{kUgG4=`yB>eCvRW%a^d}r zb^7rBb^v%;e>|kSNAQ>TmPJZK`!{F&Dbe|BUu2vG!Q>~QYnPtwyYDjeEMFNs=nE5ykUjJ5rjMVu?x&HMex=jX_k@8R#> zv#o7~zG0!kOBc_0iCmrp{|@kOlCL;4fp?Fw#>jahA)O89zVF&#RdyrCt7v}+xL-ma z+?C4NeEvP-IGa!RLMmQXH~~AE-<9}7Ul6RES6DaETK+h7>c&~iBhZbW8{kis+cm6t z-wl+zMDVNL@aBE`z;;o<1u2)XFYd259 z=ifKHZm%~#!QWy2h4{CQe_E4v%Ra)hVkv9*m0Wf0OJkF_*tXhhU$FTll<32g}+jJ`=c|#IsS?(6Iz51{7U0rR@C$>6MoEDE%$K-40D$B$^_zB zf4fZBk4&htWrE@*g~alew{tgmmTW-o?74t^^#d^eltQ_2U*MTz-*jB-XksGdhY><0$zhZ{&fw6p$aN8Z#F-CLC>+a zEk;%ZmJ#1GvO+S$=y&XK@yHtH;9kxxP+Kk3mCPXT#+-ZHJu{fp*~h}Y_8xrJod=K1 z_!r@Ywv0R*0NyVHZ=R78c}8Z8bN-gh&{)SK+xi=;oR%G57R)nGEjt#tvV%5$0l%Abm+0Hb zjseE`QAc)s1=s?zgMqCTnwAXV{H#6Wk!uYOKDFlIcVLqo*+3sgj8xz$4F1^PIobAIE{z}itG0&9<;yWYw1AudO@$%m*y-Veqm zYZ;nnm&I3bZ9L@mjy#`r`8((aum5p@Q&&D%z2eXod%-Ca3ycaUImgtk-$?xm)gNu= zPjopNBGy)P9+cEB7AUcTG?k?u@iPuhKKpr+_C6A;ZJdo)!?sSM8Vo# z%Jxuar&VBVtb!Gb-qW3jL2^eTuQ@p`El&P~>!&!+YHJd-x{|hh+#y#+JA&urdfXeR zJRQ-X`3;2k^V=_tIe3{o0A79tUJN}2CYb!!N#E4{^OLgjU!#-rlaUGe$s?U5S$^mw z=0Y?SnU=@8YhLnLXJM$R$!b3q7;OL6+P_CyF374k)~S~on~(p>S-#}f&c-K-RQY$L zjuF#Mm9!tLaN26Le^aB$XT^7m0z*u(RQXZ0K62zs!e(s&UbOSG!Og?)PY-kU6l;>4 zArxN*uf2c|_Aq?37~R`rCA;=m$&a#sD)N+`MZ3!Bpv`6WTz9{~ITGZvMvfu7Qu8Ytp`v7lE_r^PJEd+#L~pfPVG^=l$Gw=(MZ8pP_Cy`0D{z`>n#hTGl2?_dJdo z)mCn`2EDwMvriW(ml+z6zljfaSm)cmlhaR+(~oHJotE=Lxp0UN1xG#mEk6jy=YLon z)1Oy{KJWCkOgR1%I9>~mSLfiEIu8oRYr*lK!13yA9N$b`7w4Z>JI81zMLPlUn@tzr zIFUq;aW)chb}LvC$`frv!-{t$CST2c#8(>{7aw-t6igB$3>hBeTQ}djh?|y3W+ErW zOE&HM`Zg0wQyxYEw7whJ+1<%nDDtxtxu<*s<^3gy!OABtIhJZ0)R$^=VKsT2#2>ml z>2DUaFIwU6=SsEaV1-{JZ|1*vr~WpY{H4Ljjgs(Z*y|Yixs^1$$+rY!Q2b^Lut#s? zeH>lcGKzT(guS?4>fk!|Kut2yR%7_xZCAF#wDXR(C2k}}MGU(u&ix)iKl!r647 z86wgclbozKV?od54B^N z2mEhO?6bfb1Gs06XCiZYUMPy*d5w7uu>Ww2c(|7KXVcG5$)|+|+_EaC@;9^QAX$eT zuQcOx%E~^}p2tWN^;@X_S}>`&XICRU!(3_{_WHl(Ek7J-1kM)VZi4<^gLbymCc7T1 zO*YmC!DoKBp15h0y0YuP!raIB9^rcpap54}BEM&kz^gv$vX|jczGPy*58Cl1yL)`e zo<3i)_bp%Yz+ZjIgYWv1eaC#s*W<;+g9nF>G!D<2*B8OLWKJwqo#aeV^uXN88um)R zQ&DtM*J~(dTXa67$^R?Dvl`?kMArF!txfKeg4YlS3b~(PLZ4J0fl@*wZm% z;sVhvtl^1&_}j#cc`l{QJDo#AM}XHme?N5lZ=~Nn^#52j@d4`@@t|x$KkdubHGM23 ze}i>{D0A8$d=CL%WG?W{tLA)A@-0V^8_&HSL%E|uahPgkJaOO34eWoVjrskxaUX4z z;N!FBXj@I`CDca;23f1zz}!w@UY}rItE}XfBYgb^~Rg=~8n~ zadGJD?;~4Yg&rsqy+MAFudnMae2(pRKh#xMUAfb;{z-S-Y#p)Tp{{w*`37>M`MY~3 zI=rnGIw|P0fO!@9q2iC1!4PM*`d4fKxxc?A;yXN`AP@MY| zCZB0NSWk>m{Gy!HbX})SAM4IloCm^QLzBzgz;6Ux+A+v6+h&O~|B;)jD^2{I`m5Lragn$F%K>M2en+z5|d%uN>jUz;AP zAclSH4EEB-}8JIgI<0(H=kZ!#~~`JConf z0=tn-)`g+yQ_O8`LFjU9QskKSi-Z`Pbk{n|^ZkeHbJh1I=sPk1P5%M8oyH}!pgBJh zD9;-2mCkr0wb<^n`6oKNm0!jfy^Y`7`N#NTj5Br@e>dqLGz46d5u(9H%`tL9e5+rt z{n&HjXj=s~V%+1tLedW{(lO?Fa!58$tNXl>Gk=8(ee0MU zioE4FYe;6_;7IlkZYivc;Mb6^$KIQZj30Ax8S9^M=%uG78SjH;_`aKxj*2i zyi+?ai|*eg2TpwMj;o7tZh~g|8{ZWlc6>Q~{n_bDG?PWclzWQtxpXUE>_gDmNajc*o_R<68lEC<-QrAJ3delR3{UlOHgPa(5GtZ#D7w{JvG# z--EEd?-?;@?Q^{E;C&T7=>lR(^7mTtJy-Hhb#$lGN^HySvFNwaoQeKl$+iyeb5Y!< z9DBXuB4puc%JO>;&$_cp`nNP#UAdBfKFjwqvft>Bvly>!^E$D$$DFu`vreyex@mWp z1Jf#CXyNZi|D3Z|$SH3zf2_as9fUp`?x=t75&ms}UW2LB{3tOO;aBiP=|{FjR^P^^ z%MafVZWYh_PCq#Q<&7B}XXW#m{EJM!WCS}QT8sXvzz0Lm1%O%lPjfcqizN78hNL@ zOyGql{h>MBC-;AudmH#Dt26Kap3LM8v{0pLYi$xhAc)1*^0v0kBtZeSwO!e|yS60| z6p(gZ*Y?q_wh1J>Mk}K}ORIf00pum4ZBq+XYg>XSg3%SQZ(F;|OeSv-+XZS{BGCN5 zzjNOwbI)WF0`>oY{`q|7lbQSFoaGW2)u< z^a;%?Lw&!$$M1Ch{<;tM8_~lKe>Q%XZ_X}EuD2$x0VncR8MExHaBuCwgRGn8U=Lm# z=4>a=a7GvYRY4%@u8r7*!a?r>M3`fwES{+ZBO?v)%91Y`$8Ta52X6EH zf==i`Y<8)Go>*C%^a~nkW2Mhe$b%-yt*GpNErRNsRA?|0^4te*o!c*(XDOjhR`cm*#j!tgl-D>aL z$9?24o3%rpy?|%q$lC;O%o<;&aZ4r-)5ad=GG?4>I17?-9bu1Ol{2jSe7<+nMwK(X zTlLhRT)cF86}qYv8P|Q~K0LYjj_FI^U-fX+2F`*+9~^<67B6|6YcUvJW~bxDTf<)~ zyg*;gbL@GLtmCt1D)l_b!}eTE#{7!{aLjmS>paNG?zpR_SLrf@VEcfc_-I@iBF-4 zd7Ats_EZ%`zW?oa*8daN|BjCvv&)U%VZJNw7mVIyz7IFwZ{+(8e6Baw6yM8@&f~lA zx9{JWdu14x^-245xwp3Y;NNA?-}USX7T*?}3N%{SEi488J-Wd1Cvs#; z8Fvxm*1EXG$4qg?l!# zUwR8;(^;G^!&i$KTZ2c-jbS$rwT7`7TZZgwABy7nG2V?=mCj)Orl$?xcjLWdPl!jd zTWb&EBXz$9y)2Jd{(b>oE~~iG?0a+h+j04uYj@Cx`1U899Yl_a(W{nLEe?7I9g9BS zUvyqkq>OX=Os*90uz!Tw9wUiiP^X^zoj?CzM0;f9KYcqFUmHCsoxQ=UdoY?YihdP+ zGUnE`xt{*D*Q||kt$_ZwfrEDFzZv?kfc`c|w+6avPPrVJ`-Gq7L0c;<=*=;`-}r<0 zP&2G-bRUx|JT^TY4)G!LJX6+bn1e4i3l`m1Eli;J!ZO91CDa?Dz!d z2FAAwTo)ByX?QvX*IXL`-16xH=nBPiGrk+n@GjRJ-u3I^{rr|Lv%EXf8{2=RjfaKv zl<|xv4mYpbxob80B!g5aF}Kjlkf;0SeI;<$F0OAN|Li4vS3fL_ zCFQrVOWFfv?^NU%dxky$4@CIj|}4dGql4F9q(J zO>98x4qecwp4`_`=%ZY}jCgMTaDN(cZHsa?ppmOj+xQk|(S#=MI>M8Sp3H`yHhC*Z>u$q}lpn4~==o=r0{ zzrT`eU#6}3&`~i?tuwsz7q8}}#pSaB7l+>p3=XT4VccB%yG*ds=6rP1fH(|K?mup> zm1Syc{~6$F$j}zoCTD8vE#~|lpJc>gVFny>?SsN0^`_jlg{r5&l7_>vFFFTm#mj}n zGm?DRpWe=-{^RCaCju;BFY!*&MtiXmPoGPt{NituI>qMeS$*QxLrm5?K4*RRHhh7O)EVVjiUp$o z74uocHLYLFym!or4bXpin(kw6ld22x^Cb^fSIZ`83{UvRVCx~uA76t!zbpDMRsZ$p zyXFkC%eC7LzohEFbK$$W9^Y-DMt3^j?I5RXD17%a>m;3D$&Jir|G4yJ!hAmSMYwL$NncYbbe}}|FhL&kMK^q9_y9gNZjR6lj{f64}`~X20U`@ z8wL;GNWtSFbXBwK_ZuHzDER!6htHpJ4rsc3zDDlZP~;Q4u$)W~A$0!ls~KMQ=` zcnZJzM;a^6-0m2K;_? zi1>wHn>x3BG_sg^m+)JD7WjSpAI_d%J9#IaUw?dxb*9$29z&$=4ac=3QZM=dH=vxet3K2c4faWbm7~c1fnTu+hY` z`e=JLbPbvI0@2T9pzCczr)yK^1G$k29$l|K3%a(E<8Ze2?pM5%u0JHRe%OZB{$HhQ%t5vG zThF}K(LH`Q^IL1b^?ThMr25pk*_ZI)$hVXek~Y@*pQrFr|F)_# zw8ga*8QQY?0Uk1Y@qISFDZ|{aNpruuO*?_;ORCqLoclFt?)USPeY#;?hPmH5JNGj- zsP>9J-LNq$MK_o+4K(+=nf}vx$i&(QiS1p-JNpP~M zK=k+2Ur(2<)9(yTw$ka<5*WH{-G2`By7LV5s`|f4ufh!U;#%3eM6atndXdZAk6w{; zq}RN&px4NApjYq=^t$l>CcT<7(2HxoR1Q&^9XuELdeO8Kh+dR|UYDOEz5c-7FJIhp zP}}tc{hzHqT+cg$>BFs`IsPX9+ZFm)2zpFex7em z)Sp+HGw=%6-pBx(&S|ZX4?gNlzHz@eWm9GKm64xiXmi6m-ujg{e*YZfl^c^X_p*;B zef|frxRiMNQ0dW-Va#0nH$Qy7II6d9Gi2Yr*0d9d{xZ~GKHACI9g2LstoYoCiIKgY zKlsC5_TVMgZ3fkU3+exC<>MCK8B9JF`DoGLqlJ7zOOJi5-KOxLj~+{icN>2ED|zTj zKaD(|8JW&QX)@*KsVTm3sBT*d{Aug$242pFG(5lk407aT;CWrk055gLQrDS$bENZq z@TJ#d%s*Ftk7eL@uKh-N2NqX<1;6h#?F6D9$iVN#L*#e->88%37xt}F{+YdjL*@5v z^q+y>_YbyC`8e+k#_vzwkkmZ`@w?6;@$)-5We3WXqrrT28+x)2w;rF~&YnmUPsyO` z9`g0qHGq5_PTN0W_>3lOwkdLi<|U@#omF*0nA}oMN5g z6mvYPzv&G4Z_a>!uDz*z zh<8E%>@)2IqL*gC|HQMx|FAy%pExyi{%@rJv(-P}IRpNmnsXNVhy7)P>Ys)T_~+Vv z?-Kr(c=&%_dyiAcn8E+y+VjBhZs?yz(@r3I zk~vj6{|_5F{?~P$m$bjXJ~?##v*sM|fBzZq|G?Sc|4jPd$$)>Z-TE%!e~yR$$1~tR z`u33Z&$`ZaAMW#i?mY|q7oP+EKX?ZGPkJ};AI_lvxpq={67PcjJ#5;+|IdK`>(3GY zmz)Lu_tF2^+TWk>&S3iI)mf?fN6%^>nqoEj(|pYC=UrlQc9Q#fvo!zy4*5C6LRCXM zroD(=NxtHa>>tiParvx@%l;c*TnUP)6NKByO0mL*`Khy1CO+hpgr~p?HwSV(nu{y zfBbk?o@nwn5!JEkl`jQs8hcDN7&-GydzcLEz_I@fsu#@p98)7ywjHnO4{V8!c(WK&%NTJuBp$Wee=#H<^o! z{G{mzcm2!PKYfPyR3X=z1F3$C>aWz(?=BCHvB06ATIJl=!$bEQA3 zh5*}jKG-s?f2l6BfB$U|*bHufX|xBIYJk{tW!xGg+0p9P(LdCcNgxLmz^gjlEBL=0 zIOp>zU~lFI;QwDdR}pZZTfpAf3dWG&+4=mhi5Xg~2``uxiX z_F8-Ut+l`VDEqr(=%g&hX7^|t{wa59`H|LSO&HO$=USJZ(x>muqONqMdp38RdK_<$ zaU!F#I5)?~YYu;ES7)*mI$16L{olppL;CS+;K`$29y+9edH|xo_`&S4<$dwraQH&H z%3niZqvPz*-YcE^qdnL~l3CSFXbwdd@_r@l=>DZ#&%>5hIyo)#Xlp_9^2avuJ;9#; z-JA)b^B_vNu6#hzv=tkmd}Z;|%kqn$XDc`h0!yWnRTpIM=R9=jm!VP6seU*J%oYaO zFSp)|w-?pQ2DV=9Ek#a^4b@srn$2nOaBO78vpK4tZSbA&@cpMGzPG30yHCE;*3X3B z{UK+E=pkO#epcDgFEQS9oTlSXb)IFb_wnp)ix*B`$zEq_S78&XAI?b`x2qd;HdV^n z1p4A4-H>AXC(XE`|yj*OE;;;#$sR}?PRVK*L))N z{I@o8c`R=TPapJPmj3kfz^+qCSapV`WKDlr)zve!ZuA2Fg0T(GqzJaCrwqD_hLSDG zqvhQ){7la9!{5O_<>Trxw^oDNv-n?=0so)z@UJ!P3kJiz=T9A;>9YqOZ)<(ZKdxmy z8i+oF^*_?r|KAMOKX`m4t#8rS-|sG8ztV3SyZ&tdL*c)o_YBT|jcG6ph5u~-l0EXyO!o5S9Vbo}nm zrT$5dTT4#1NcLd?eu3)qt)M>NmaC{IJ4twV>z%o^@N&8*VyCuJ2TyiJ^&n=SmsPiV zWL{nVm7MSN5$S}y?pLrI6TVh)LUn_};6b(WOdVF*%0o`|ZW%N$L1a!kNfIM--XUo4H%7?+S_x>8S|q$ zI|JUX!T+tKHU_pl<9Qehymy7Ou&E20JP%_E^;+%wmApS@fb%du>$RadPG1|$C0c=V zEN!^FX3xWrZ4X8l`0zWA?;X_bwtCx-->1q`bzYOjZ)Gr2pY`7E4L)1`w1;1_|JV5E z$@#NzyC3_ad7S3Yv+%1`UzM{|@O@N6L+4?N-l~tC8~y#Sz5D<>-}T!<^l{rJYUFKo z=kS$jFlwILwu$p^w}xl@*1|g`VBih-?9PAr;C1H{$$EfBKjCkvK9kO1n+?2k;2oVE ztuxd(_YBxoIjA<6-2nHFzF!cs_FJAeWLy)g~Jr z-S!)A95rW_$IlKjj$c}N+~mq*sZSn%#XZ@6{aJq}-M&FH6+oyiXAUQw~fI^ueu~~*Cb#ZLk-p{a>)zvd8%F{Cy}w~UITV|I`EkLpW!#} zRk24-aqlYj!xi#d`{(9yeyL(KJojAf^=l745#4s2@h>f;?b_?VdGLwvJ!O73K&RSI zCw~_)CpB?!VzHWU+@!WRmsD{Swe{kJ)dy>rM9sU3Se_`HS!S2*ZAA6?%%ff!M3e-CG%!nlTBS{;B@_T*U!wLXQ9~#(rC8DqnX9`9QfWp ze{q0S=Lb(nq}B_I;Rk9?mgBW|)JJ){ooYhf%F-)B&R)HJ@8LNv^ z^FjT{iqygHJAr`4DEzm5Le#`9k~3!R|3 z3gbSibCbv4%Ne0OXJ7EH4box)Ga_|{D5a4kMW z0rIr~-rvIfwwZBC=1O!8{(Iuy`6rfhO}a?u8NL4{=0vJRZEMV1+h+JZ6n!snC{8-U z2ao1X;?Ga|_#>0QJ|_)6#Q~YU^>8Nd`WQT5=3vlH_5a0lfqNI6cn8@l4~nLNXa%u~ zIKI$mXlc$~XM82l>?!8r245CdZ{8%BX82(GZ%=Lvf7ZD5p!b=a`iuJbGkz=UQaA89 zME&PC-5StAU<{$VX2Q3%;Hh;Uu<~5&7MGR@=}7EG4fos7iM8HZp^YuKG0p^ZUv{I$ z5sVfxj=nQx7+-8We#Tfg7E^kScb+QOwf1-VZ&b@Rx3RY>uMwGL4@yZy=iYI)Qlt$Z zv8{&x<@~=TY|evf+s$v_SDmXi#*pCu!jDn|7(SG|H|V@QhZ@!Jl=xNSQk=XRm|Ew# z_(VR@lWt9L@oDVVaL>i?Ma;v8aP!U$$-2F&lOB7Mx{TAj+PXFFI`yz+$S~JU9rd(( z;$uT^=qx(DUXrR?5Trhz$U z8fLAj4g6DwVBO|e0p~GhcgICH_)qeuS~s-URP?Pek=e9oo~thG_gr7UKffmON&8%L zk$FyhVBVt!biek&tAY39S4OU~?^TS>@LZJ(2WLTzv(Gh*No}9Aar(87|7O~MVoKx^ z-m~NCgBLtqz;%lk@#hcV4--c=ehGR7KX4;>EpzH0!}nWP$vc&Nw=qWBrsj;U50iQ( zMkloD#h-iSc<y(qlfB6Uh%=ZGHEo}azt2;iILBG5CK}r2Co!yHZS)D3f5AUuk3%@TSS!&%B zh_uc^&bSVYkalvZXu4mbpmHE!pnOvahmcr6h(3ZT%(R` zXW?b&0l}MNd}hs^B$MAhc4~b)bd!D^2`$Z7J$=~;&v${t7<2eIb9p1n(&M~Wr}x0k z=CBj#K<<(GNC$eNfOA@ounw{neX$LFaTvHJUK#GWqBz{s0$i^G*8{+{7Py`SuBAo5 zH3s;hopjNnQ@z_ec`pv`tZ(rp51;=0pkw7(u0L1CS)%2kl=E(54>>(X4};sXTy)YR z?7C`3J5wW#N3a`99aBTTxA*+U_(QJ#9Ydd%Cu@mw$I)>`=(zZujQ?)V@d8$-upm+f z50|w~iD+KaM*OuMd?De{X*)BfOXC?Sq ziJq+oUz(f#ma}SCqU-%NoNLkRib;238>Mr)z`K0@k>nJ$Ld%5CZj=tb+38t{?t2*; ztVaK>VJun`kdM_-F8bv|zg*hL;~nV7*lMe%M1J2&UMW0o&djYOo>LCJ;CP8~==}PJDqb z`dUn17DuLiqnBL%SZ#3R>M*q(_xPgP@CE0#dN@kwhda{vL3k1`2wu)9-(Ng`LZle_ z=Pw>VeVIr9beO6c`?ZYO)u-8<8S2*Nt~4;|jOLu^C%8Y*IESCbI6s{}&P!bW&p1wM z6I(vGYLIcx!Cn{tF*`Cb5Pt58{P5R?Egt`DF7~23&-vP5V;0Y+k9nML%o?xNFE4=0 zvch8g9BRMPU+vr3k#^uyF2uEkr;RPq^9guuktZWMXC(~Xenvmc1F5N09MKuNng`-P znR@2RnaHQl+o1Ut1*x);6Fm~Ao;)<~gfBZJ7qj4< zE8uya??5g(k&A?rUFX{Bpo#I?Gm%Dk@*!PP$iNDCB*Zvc;eE-( zZy+?}2|Cz{6I_iN=CnYh}Kp_@rykG?wtwPjJ>^ zZFN!PS&f5tHv&hxe!`#fVh!26<3xW-->u9iG~PHibqlb)NIt^~&Y%k{zWhXJWJvRF zgKy$&CccIr((_T^uQk4^tDB#soh!Lk%{d0GjHMi(@`j<4mNLff z|MvOOX*Nc-WD{{0zkR{(>@WMy)sY8(e`@`O^y6>q*XPpK{;MPZN?Wbi=W_f8ooV}m zM)r?Kt;Fx(rZ|{4ULyTzDSq0nu z@Z1Bh-N!RkoWGzNwY1$@!?nrq)(!C1rXX^FY{I)2{g0RXP#!X8b)ZMKPZ@V|{Y*YF zFD|ixHi{~WB1@~8%cWhrJ;Sy68LoXk!?jzuW@I!M9%rsG`Q!A7@6dia8P9On_mlNh zRI4NxTr47oA{QLyfy2Gva344<#>W{Szy|_{dGc{&tC2bA*i<%YR3t%NP|e4c7bXAU zVrZfGVHWKKX=k^O7R#ZY=9@GHMCLn9D<+g`!|PYNRLq)Sm(NP{wzGDc$CJd*w8Mn7oNk|b~857)54_r z>xa_E3GQXztC3wjE4m-J=H&W;^0W7ucu{hF3}0+UJN&P6ueClVeG~(B__E2Vo)mdc z7rrLrP}}if8D}UuGvHtL#21+JROG|Afq$Lh(Sa<)t}waBkBV-tAD$tOTSJcE#pv)$ zT|V6myyDaNaAavjxF=B)=00s+8t%zlPr?U3dVK)+_dA>~^5304_^}JX-(%o!Mux## zCip+AeIJ9teja&|1WmB2Qnmq=>pY(fzYjN@xTK6*VHl)4Fz1_ZdMccM9JkJ?UeeWZC zADEt&%Gb|-fx5c%ZM9Qm^17@5-FsH>aq|x=K2b*ZzjiVIP*-)YZfQEUk!}e zj8ET}1E+kD@6fitJ>gDxeGfH_l^40ttAA1J;Yo28$)fS0B!~R2qYa}oh%+_^=lxPX zdpWjYH?~Q-HYVKD=4+h6O8joWiQic}!L!79juyRrStLQcPO)0$1eH+NCu7KLj6UZp))p#?B#3de;RC48 zjr19&PvxWf;jZ_$kq-A${o$TW8xNV zh{=?=aiGoE-j^I_2lj8Be6H(cWAU9f<3mV>b#7!kI!Q7uJkQF63*Zv3`Qtw4%V$6y z;>b_B&k!GuZW#fLzVXYZo|-Z6*sZ=(zFM)#H&5z!*;DCv!T7w^WPn+)tN-!hOLMk* zVdP^SJ?j;N%0Um^j;tt#vIkiqzA{Deap@tytTdAgA$}&Nv)?Ivk9$5`O$J+=HjY;Y z8OQ4x=;!A9Ci7i&rs8AxwBaE6uIN+X8nwjwBsIx3PT}nPUSG<0HTGb)8}DkIPP}V( zYP>7NoFcoB@iVVjd7iU<88WHZN(r^=Z(x0bc)^T<9nM{G);_b)ZCxSvcPajio~gio z$OmVEV-$0(13BnLoz;+C2#;_^?q>E1Zg%c}xQ4l(Ul%O|zd>}S#<5iSCB~m}bHH8R zaQ%4A&0_UV&jcsPIiGngONh@-B)+mY=xpy^ykvS6uvGv{)gQ?x;s0PTaHeD3ZP3_1 z|CQdBPIY4qq3CR2k&S4rB%TAm97bL`XQA_fV+_yr_MV3h$c?Uj)29m;!BO*DYB%{m|Rg^dhc( zyA!G#$G#Hbp_{n%13X)Ix^C?af#G%HW5uks@3WiFksBBnaw0v`jjRN)Kdr=SWnZm* zx|bT4A^3s(hiRJQmJn+yqR&=zMPe4`WiDRuZ1#5_IJn~c?;U3iz~tZr>BrtLA^%6Y z3JW-QcU}YMMDechbRGEEg?=e=rbV!EJw@=H#;dr38w;^}S6mz!yx$P+nKS_2v7!5m znuZf&O~v~O#Zw2sdmBE@GJKTfjN8=*qa)3w-0@-zllo^ z$W}f*2wp7AMY8MU-6$7FaECcR+pHB|Ex6AI=JzyOxc2zrx|6=|=5w_Vu6uwBo8EDs z3m0~Bf6;GCA`3XPBS9?O+VBSkfvb&m{9*7iu*Fh)*f8!)cmzI?rP_`&^rJ?>ZI zpBi6}@5`%QU#|!l#III1Tj2@KqaHyUg16fSkFMf~o#$of){JJ*I+(0=}nRxQk ze)^{Ij}NBelPsp!NNk9dHx`@xAHF;xWeC`Pxl(0YMSoylu!5m z89OoHFmWM`>H+WAEXU<@n|Kwav{8Y8@ybC zZVE`3_UX&)XkeGgL!Bx;y5KkXTG-_Z{ikjD#P(U2=AO^MvwgWzUd~A=euk@$U0qy% zUuHj5zQ&^--r~d2ZzJgELgqUe{F!~&0RR3^&VxPb5bw!iJhw7WsbHUlgYV_wdo|!2 zR1@oP!dIF7*}`FsVp#mH0EY(taudr}yABEkF(TOYuGES0|e)&*ui_6D=R{XLP5jI#{7fzzG^ zY5VC7O$(<*-~}V=n$MZ%xi*e*+CJ*&V?Hrmua9*__g>n+kMJOURAlIbYv=p=_!s&p zO^$=}(u@1|QSJ7DzA}5lH8tE13f>>P{xZln9%8D7R zw@hNdW|PPi?E4wf%9M^^4umfGh2 z3$*Rdmz?NMzH2Sjj1wMyp5KO-f_9zXjSYSc{1!036OX=PfuoSV6N8@i;L|I2yjCGIuYz2?{@`Ao8F^RavKsffv%z2?PY;;>8}(Wl?zRWJ0`Y%FL;Q7Bk3DE|2xJSeo5BI z?tS0ZdVWsIdOmq$J+aq${|)SYH*=B%wy2YJX5e3(d)2g7Y+l#pGcB=B@T*Qx@;x<{kG4&UVT{O*U$3vQrI_A8jY2J#zBE(mekTGquUy!p=hF6{DQ ze8J!S5PuCB=!RF0pr^Ze|E=${M$G%wfxNmn`yJ#L+=NX|@J{O+#9iP+ok_2C;!5A% zvs!q*{rluVT3x~S%iufvOzd@VqL>$UR(8MbnJ{C;=5~e|H@*+!EyxcackoHKWlfmc z`aJ#YWbC`$7_<1a>-lic?7)d1<@J2=jr^kz9W4ISkB>J7nvds!k1n3o{k*S+AMWDa zUfyfvcVZ`fK`-TdsgDUaI#b)8r0uKScI~>QVsV&IpPX6F=6-HWgGJ9xsJU6_5<)XSlVYC_!3Ty8Y~$3vq$u4$d}1^I^H zI01gUpp(s6VeQt?X4h}XSpd)N;I|9f*tJUKTXgVFC$x#tuGab`>xYrw!RUexd#(n$ z#GpkOx@g{$;QKS=oVd0n$HddbSNohi1Mfs5d--Nfwae?b-N35-F3LF|KIy^xzk#vR2}*`6{kq;gv6|c$Q#Z z3(V5jx;LLWV?Fyrmc#RwZWgA07EJJ|)<^M!_xp2B8o+_{aVzm8we?ln)OXuI`lV+a z^qiereK2qFxas1#-m2k^y}O5>5RW>nVb6yTh^db{jL&prcUEN1lA`Gj?-cRrgf6`k zoMYtP%`L!3dJTGS`S!ODuKf0M$5(#)Kl$_=-+TY8$Mc8}}JG~NG6XQ4#gQp8Tddnvky*ESe z70`PH^j-nIx7;6oe2?SQ?KxHc$evTxEidQg)a8b9Tk1V}UmN61Exu;<@P(D7@FKJ2ezTg?JC;LB)6TMf17LNw)cX@ z=PR5`dY4{vLUS_BH7Y&XE#8IfZVDm0V~p&Io|2Q2Gs%I6OQ#-yegR`2j17i<9njCs@fzMI zyEDL12Xs@r-O%7IkA9NdIPb)e+aPjVi_UGu?%TD1d4C1{CJm8(7n}wCE*=8?PTuU< z-$%ejxl2E*d-s9cBi#4v-VW$@D2;wwk;PTW;wofu6|&fM|8>wW$D`j$L%%(K-3$Fn zpx@~0iPO?YCw-hr_e%b*@X4Rmz1;+mrOk};M~yGZpVh&pp5N8@Ur%Q6^|GsuH|*#oKH%01kUjX+L$2@DTQ#!r zWSJ|wirvfilFcNpo2@0yJ?;drmu6+!JWvX>~9(mtgFTUo^5%6 zwmXqwKM%;?k_^jt3K8$~>)?M95AeM8!P}61PX{-h$#=Tu%sgOVD@x^oronutaY-I9 z{afE@7QU0!!6$zhbbaV5^ixR&9nAfATL=FGw3H5BKGD;`^l`R2STZad`c|qAHaPnA zuh7BJp^J89Ki~3X*wBslq=z%<;J-+Z@_ZltXk)1KYay@V3^HtB`vI`|WOz{e{fIU_ z86J>+CWc=Ao)aC@QuXgE=*Dhh;&=Fb-wx&m>H2pY`gb+@cQyKVHTpOI>(@PAjQ%ag z_booXvSng^e%+qXus+|n&GUVUu^9c^MISlz;o8qYOELEIde8T*Lnl6tv@QF21pRXuKk*3fN$x~P`M%4H4R!sW zhyDuMecngAj@QX!XAZh5d*syl-W+CQ>Kw+vS#lP1oS8;P^&wdtk597~e<+W9=93qC za<~+~a58@XSHcf>-XDHs?;rlp!LFY_dwlWXJ;x_}r0aOz*O{A~p8ZHJ^O6`jyRx@e zK$BVcFLB`2oMRUF?`7`g!tLg!TKvBEEa1Lq5V&%=P)i3YMI@boJxCy*u=b;(c-E zfXaipBj8Mv4}VfMhOwV!jaKn9`eiN0^l97ctvauf`dI6(-}TYRkxJlR#QZ-Pj2vMM zM}XxBaNmLMnMdr(p|+&(DtI@u&XY}C<94V0**(OT6mv1Zflt402R8CkcC4hRt2>{_ zi9WA7{P6Hs|D$JpJ$vA^W?MG0_OY?b_uoE|nz^-)RZ=(C!dOc`V|{pu0l#pQ@52qS z_u=Cho{{ivJ{YlMA9% ztc@*3pLE@fZX_1ej?PgHCKG>9yh-sVWJ2@92Z?)k(MJAd^ixAlKp;Vfe)A!`FU+yz|^)a3%gxzG5qL{1E&16jO;;0T=E689rC8LK|(@08cCP)#ZgI zF4pJU<**K*ys~Q6?D~A>n}LICqM5F>@>_fMbnR#4*mTf0v4`!-wdka;j>Wf6$3~lc zlp^$bL0=4w97fMZy5kK${qMlu4m=xygE*S;C6sq`J24m5APgSWpZtp{0KzI?jk?bY5o^D^S;%ZaDg6e@pWMc-dT!26y#a0LEp+a=Gi=9 zcVGU&yU2;pa6Mf&NEfWXs=qGCLFY;4`_>fD@GcNd{kl3`hHo3oy-;%4>fYDE5(K9yr$M9Qny-qNyevH_ zE&UvPrRLzgUkWz;S$Uf?B6WRQ{H6Wr*pFkM0`@HYO0E0l@O}V2A$?lO8NbRSNN`sD zc;cUj*eBM}yz;SGd{=Hv?Wt93mtmuxK*vcgM2jbsi#i^f(?&M!lT+8C9J&J44bnB* z*IsanmdsstUiCrIMf(XhptGctOMvIgtU+o2iGc^Wa(S;8IJV&ziubezl#gD^J70TQ za$A=3frnb!PSqNCv?tXGl>D+V`@}QaL%%}(0_O_g*yT7o3e*R60{yg=-XzC>8~``R zpaR~I4G>RMJJcDFeupP!r}2d0pKx|W>!*^90PV1T%vy4>WaT;hizz|c3DQm$?MzR5 zpEcs9GUtj&Desr@ei^td&WypK$D6k)j}{qIjiPLDo&){2l51E3-@FFDYaLE|hgFk04?DE_FTLBvcX_m% z&%F{Szxzt&WAosT-O&0F|0nR@^bbC5|7EmE{(j3#r&g?W0$PvDO@TxGJxDvkM>hTB z6w)trSqxqBN{b_T?7v(LT?(L!_)m1vp7jIdcU;aI`!>d_=duI5n+-4XjJuag=V1h* z7G~9R2@ofetn5a%WzSVh85)v{n$?m|E~>-YsNhQ=A8p8oA72q@wwjMS&&rNI$oDwU z)%a*B9WHvl@ZqGaKjfpSmG3p?Y!Dwk11Fv#cVWBeDY}NBX$YEzpsDCKk}(aWcgQ>8 z4C9H(8dTuM54T_xZv8So6TAu5Htdn%L-;^?Bnupkb+TH_ya2wCJ{j9o`L1D~sgG=ELzj2+-SC`+Ij<@$2 zys3TZZm%|m*S>rujZu1d9_>FVos8biM(@`0U;19YqV%hD=L*JS`?L9x(w~wYS9fMd zd&tdb7EBNwC%NeS_+;@!Zg(U0sp|@8zhu$$Rq$yp{JIKWUB-BpGp>62u>Nm7 z?dF(vRcAta8Te^CeGCPsvKsv`2OKxYMfm|kh2N~BdVTCOeFUT7{1eYO?0pez1Ht9e zH9Ptf^G<)d)<8FWfVvtppMZB6yW;hNEd-pBj~t#+-pyigFI~8s{2S(kEtPz9F2E-5 zTma=Z+=xz9&CC*>cff6jbh()~sm54N^k>pD(5eF&RE?+IPOvVB>;<5&`qLVm-c{aF z&Em@GL1++!20>`x>L;HJSsui{nr(PUK5aR~fntZ3Eew1D`I+5|oHvfnmP}wf|L{_FY zAj^_t$#bCB)k#B@=TD~7-P1e5cMyC_4=M+-lJg2`@ek!A%MX^0cIWv%d|RD`jJ`#? z79YaF$2}bE@y2b(>+bJKjyG$p_F$iQM*5ib{~bYis|qC|t=W&4O<=mMq3%YKGB%751-;_GT^~Gd&C5$zm*7hJRcg=5JSHd@gM) z`QBJE?RRnOhx+O@QkP4)$nvqJ3pxv!H;9JFQ2Y?}xe9>GCrj62Ya~xq$Vw1hDS48A z+d2ln4|ziOwro7LeC={4tF9Fv>IGec-(t+4;_Qq4{nI^$KPqxg{78LB&t{_oLt$p0qr^v^r$it_Y0nB|qH}A?;YL2jt*pT+WkKuoS zHbm=O`pSb3rPJp)IV}_UbO-ZW_OR~x663OZ*XqY~J^%O=ViBfZZZ7^yzKOTLpZ?p& zkYkPx>R>!C03&+4rx{qbaVBHcKVerH-!w;^$aBH@>b&?Ekl)L$nH^3KVeAMo2{+F2V z?mIL2ZgtEIzFS#{m%FvX@15l7g!1r=yO0Sh5Bp3lwIu(DcS?zoEXHTG{^b_NzZrUo zM@rGT33#IozEaKAR_4$#qf_1eeX=><-9g?WxsTEt&G=e5jJFg0+C`kFU`Y65_C%z~;89O9< z1n*R{H!qOm?1({|1i00iMGF+;GUwUlMt)69v>Ct5{Y@<3YVb9U{k>eTM(;^>{XU!I zSN@acBvYsjV)O^N#YY*XdT(t!zk>hE>BF_B+0hF8o&?XZPr1&IFFkLb@%kL-IsZEv zhx)w8*LR$2emf*z$&Mq;_|GRk=o+x=~Yq?6DSTkzlaaK4b_`31&Tk4};;bA9CO zXzzA(8SxU0P5#TZX?xz}U&(J*(sQv&%~NISLQdLg>c;Ci>a zuK=4#&U)r~`>l7%x6#^JZuAml!=0CeqUZCyPhVMIhH>7IHqMv*G6Jlb;yL?>$^2zR zQeI?><;T?y^mIe&EISAyI$g&_IhSBU+=(P ztpj~M?b>3ZooaNi2QS$MEhEi0hGGN(VUEe|RhRU~?sliX~`|r}Cb2zd)dGXfZOO+_$y_O$a8+WVQ0-chUg|+xU!FKInjTH zZXL{1a*#*yfP9a}KljcZ$8$k=Tw}T({jM?Wh3_=hvZghUB^Zb1M8VTFYc;pgTqedi zv|mKN<~O`?XkUottnyjQy*W_W2@#|5``dP(hGGh;^=8itv)5H`Cp%gM%?tUs^>?zP zm-%=geXjDi9zXckN5AgVXT=waA1>)z`!xB4v#@bKUqJhE6_0ayBFp88YmgOkWIMre z7d&&gH#|e*we=_6Ggxw?+LNCPujIiiik%K){N2tlcx8C^`S8Md;Pq9`#%aaoDi3xT zzHJ-!ayNFu#Brc0HkExh!ALJ>m`eT=xvZCB>qIZr?K0;w%mN-@YR7)J!FP#XXNG*^ zt+ZFeUXU7K5N{dV$g}t*Ju|%;6e~R2u>iifoN?X;Ur2W4Yq|Tc1JSOJDim%Yxg?%jqjhr^e3kBtcoGkjSN zUj|vP?Bh#hQFQvX*S~7l3XkGTbABH%ge3!hz6`qcH(cAIwGWRk`>tz`KyLItWawY{ zxOz1&dJo?V(&y0VsP7i@OfK{qj;n-rh z&5Y$Hr?1AE%O`=zSK$-cTk(_Gb8-_nyoJ6PlY6$XJ5SKskgI!rV=DJ*jVOl*UNUtU z!A%K!Z36f*o$zT_xnpWgNFV+U^lFx0D4!Vqlh5bxQ@HJfZe8WZciO&&wwB;K9|jhk zDUtFlysS8{>J$3gbC@scy?v}7Qy-ZBS#`N5d$*VHzT!;Dc#9hwOE6yXxAbH+K7{3^ zTKIe+@i_6h=B^9-^j|1?75v>t*FGG`hB@Y31=n7=xS<|qq|L*r;MY7N6Wk?{z_E$% z^v+!gjIzkAa^2~bYvb^rWL335tK}P@U+UKd zjy3$LcSjMmRJD)O#ES7XZ-XBez!$yPj{y9C7}@J8VNKugxz;f9qVt(UGf$ct17`Wk z@^S0Y)8Gbs;5uTGZNB#IPu&@?0A6P1Z#r5Yr z8S!xGo*R=BeHuJxl8LSfsWS2L4EFn&m#?zsQ<9HlzDlUAbjA}p=j9$~j@}N%0yE?T zYitJ28hb{U>^FN5C!tR!xa*or!9mVd)Yy0*e%n~=ANtnJ&&Y+|iLTi;hxjY^>pi{u z0q8h0sP&@kmLfjXaix~VDr3WKY%`Aiko{8)-?r(<2J#ZlJ@KO_@Lg-e6C*3Y(MoXD zc@KE~7`B7<591$1nLk{=D-^jQzJ_ClQ(J@Nzg zV$MSDu&?r)Z6EFP;7jCDeb{!p#LLLxUT}4tS5rm4gT3EzmD6Ld??qM?BP;D6b4>lD zu7*HFdnQz0l-zH#u2Mt{Iyogw+=+}=(A`nyo8+*4`+kB>@mc_3?CDBK=#GgIfcv(;p1HR_z?Un{@EG2 zuKRcBZt->SYQ?#-yK6qmIfL-8<_tNzRz5bH?_KDh&8JqQf3oX-P}t?t<3xjdwaZ-Cuq`YYonchYw-<&*S^<6IE|iAxCY&uRLAj z)I3(j^BbFM9@Bh;I0ktQQ;grS=2h~C=x+hzSjaeTqrds|Vd8X?T=>WEf1KnG-KaU{ zp5|34W6=6|0ppEH$1O!38ONLGp4d|4gtqnGBIetR#`gDvDwtQxJ}ijI4-&6C(QV{! zhz_>_$L-$uZ)5ybj9+xpGuWB^T62=#c^~=Mh9A+3o8WoHxR$~5)zB@5{o4w!cA~%G zx1Lt+7eEKmO7DtyI?&&V8=RiwP1HTP0o((#ZLb4;Y~OEoWqH5WoA&;t_hNf}r7O$s zb&scO;OU(_vmBoO3gh_+-|MG4eeJ@-=6T!3cJ518ukgXmoOGRyaqKm4=cd5jicb<> z#0UE&UGW0&#}_e1?4-tE-xu7>VfJf%QNFdkz6`kSb@YU(8@(L3vw3C}aJ%!&+~`c; zxA;hhdnIriJ*0dVhxO}oz<&b2ssmg4u<(!F^tY$Dt;LZa|K|aty*?2B6~__&NBQ9Y zN8qgm*4pNYks4sdPw5GObIJI%@QTIF%UoAnX(#d|UXhQg+{y&LU>km!?9c6j_ZHyA z=Q6$vI4{Nahrnwo_)f`>0Iz~43wVwyZ-Msw_OjsqY-%c{UTX!W(Zmrn4|xk1TBla61eeIRw~!1y14JGCdH1Hq0emGOtO0w<7!|Y zqZ|j(Vj22U^VDVNO#ir;?@p0DT;}P|<(KQ`Ge0pXm=NQ zZ)S}6OM}X&_;ENe+4uEs1$cfj1D;<3&(aYu82-(U{_hO9M*lUb4&O56bTy2KY`X&; zh<}~bDcRBah3G=`;q7D5UFe}+`6t2?bIgVCMum6>-Mh!hC4P~MJ}1uR>2uB9pRDw(R7JFyc z;gtudnv;r`+p~+@xPaEo^`7D^{#a%?>kQ;E&-lVq=%9;{so;rcwAL#-xQRGT5j0i| zzmqZAwSx^t2g~ozan}jBr}+hYosI6XIkaxw8ZZCFuFKYx&S-{5W9a8X+Sa;6ocG7G zM$pSzfZBFrux{JBr{9XF+jiYG3He!GK80<22zYn{zOwl4i-RzJ#l=Q?xVLjo@^fd@ z`+RJ>UNdKm=#i{X!JP7_;}k|da}XS|KOw-}iTTsIvXNQTh;e$BQ%|LgdV4jaV#VMylB*i`uCyy zwgGW~xUmtI%56;o->*M1e?%#)E@dNcyk)aQ+{hhCmAJfMMYK^InQqkk{ z8Tx1*1Xr;PxZ>K!eSK`uI5@Y+8^_V2x%nB!F-RX38T#Pb7+)W&>0>^70Q>s5cT)d8 znEwojtJsA8^x)bsUmtf0S4o<$D|+f<{rhkR;oZUvyvwy?tp8gX{G7(&)if%S3_fs4 z|30eSKKyof12Tv$K3ddJ+?Ug9k!iSTMxRW^x^Od-4Blu{&Q~rePQYbp^MDO|#@wYafnaP-g+2msr`)%iW zofpx{`}3F|y`Z&B*~hzuNB7*Y7rojTvUL^v*!RFYiYJ?MBJQR??3mW}I_R^FK2UZNv`pzT1!*$&kPRDXj@m<$P3P2o{c|pH=I%A;fq@&IEx6pdtC?DRo#n2-8zeTacWN%eePhmb)NXbF)>{G{T}6l+!Cg3#tuGM-{h<*^aNuBjsx0%+C?1$@lzSN6P@Pp zUpTG7PZ!>U{1@Eg!TT=o-3Z)K;J<<2EOxgnHTg+So$7kDLRVA2X)^oDZvxL|O;5Fy zazzU>jxxrfI!c|BSr@xW`;y%=oU|udanvKwCd}Sxg&*8;Jet~-fW05?i=p|1E`uLc2&>Z;qkjKY|JU)Jwc0?QD z<#&H#P0H|aPWK$fohzT8=f%U~d-1T&I+N}^1`J)I1@9^s;}_<8Fxt(3Gfwkc;|)ds zgYTMqlsJx&r!9*s`oST+>B^H}ag00(7U})N#QnBrfTb0A5?xtmgsx6E^DUDgELJIigWBn#$P4*LnlDb1LedGg7lRjHc_tF0XC$Z_rtt5lQs&#$!Kt~ zaB<=E0C{tzV|j)cUkup%{=s73m^I#Kz47+T2OTF{lgt-UE=VhKExjZgUdu)@_kuvWp?G}l#rvB`NrR_DQMuYE{4+~`BjNUz{~g0%+O$T8q){s-^{kR`1#?8F{T zVr}*%) zu@J8b-`VgQcHP}`!~4T%cPBX%hdJ+b*plMu+3=d(`=hojZa3kJ|AX2+4TPA^t2{AlfBc_DffTO+;lHF97KPsrZmclO1Wyu2(oUm+)YwesQ28gF*= zD&O}j`EGb97rljkH*+HNv-IA-7A5t(av2in$z7hlKNfV)H`w=K>VF1P&o_wI(auBQ zaFx^Z1N`{{lxa*!~KEhmt zb~6iQHtn9Bkf|fNT=lZ)SN@Xx?)i$xObA3q{QRBux9_G7 zvEo+^x#r9vwPEZCba^M0AAW6eCAb0GE*ZR4M454?EV9|zRl`MAc0PbA+^FwNIq z#DHdjQ2(OHkiyb)x4MU3TJ`PT-1{ z1KUzQ@R;#gB~Rd@^0$|pI`VgR%fHdQQFF+G=qm7|IhN+7txIVipQMj=;HjK*hnYW_ zI-9!pvV8r*-~s8_JtJ2=raXSxLFMP|ArI}ki%&cwfAcoc3OFY*4*d^v?qDl0&qg*v zz}trXC8xUY3=Hj2Xurp-0UKG;8t`g-$gW#?$BQQ#S>pE=a(7aA3^)b*CDbw&zG$D^ zPqT()@TQ!*m9&+he{6xFt%+Um`w`^;(R;i^rajevqGe zSo(o$cbPHeC*{T)Q-brb&6!NJ*LD+p$+%dLXwn)dI?0^5^KrrS3e^k;Rw!X0Z zV#RQ*eJLlFsg^3S#?VnVC;uAow~4%g%Ids`a&2PR)JTLgG(Z>$@*o>{u2D)*OlxseCWb1aOjjsj%)!6iB=QqXp z5$XQE<}q>LP+rtGj&kM!V^AD23;$7hho$JXW$3JXxF>rpe?_?V!=kyM@-bbTo)eu< zOtcF7I1wAAnBX|Ap*mNl==(9hJGnl9&rrfVfcEF+VBZemi&vmu%y-Y$X+Arj`yFG@ zFN{h56_?Q21PQ*YPd_X+)^?wVk6k=x$3KVphX4FX)$?)VMd(JxRlnW2D?z;<$(iyw zzKl;BLeAtPZz+87u};R>>jaMNL8ewAXI;qI*20$`EAZrOcKvGyyQ*Txa{@VQC*U)8 z^*(#NtM|z9+(544Khc%oWjD2bR{G*?hZ$S>soZHbp}+y^n!i!C(79_bYnj4xpFJ8A zh}?=yet>w58S8FuZPD7RO-|%y?q860-~X)tyX9r^%||>uX)X*Cr^LJ0n0)lq`LK(x z)EX975*L3r@pRqk-W~POUv!s@i0*y3fcF{>zJsmyc+iX4*O0SeX{nqI|MQQU=e_lQ z@A(y)b9(d+Egn7H()@gUXpJSv8t)3|v{}zVlf}SNTkRY;4lHB-k~?h$^s@K1Q6rjr zk#6p3O+ax2=^*UUy4u2Vky>iWgs2r1=C{Ld{G+C#>W@brrhc=DC&0(}(@i={SaWV; zgQ0DqbZPYk_==(E_(SfQN&$R|T_*oYGM73gqXU^2w$k1$8OChsZr2T-{!pq;T<)X) zv0%QbkG}+&c{?~fr9S@A*I1`yEXvmyjji1%8}7khjUS;H0qZNA&B|GO(rM#QuDAF9 z2rq9ZkKoab*^$Q`XXNSs`DEkiO4g#uvD8{aJNGpX@xNsKCE}WzFE=BTwoltu!FQZv z!{i5Fiq8bzHwt&)UO6?1i&=Z*x5eSFV)zRe<0s%R7`piUgm%rPfxFG{8EfABz8RQf z{5EnE9PawV$jfcuOtCf8YTuvmDu3Btu=?gOy3Bu`i0T;~Ro(#flin3ArFTsqs7&8=RnoH z0aItj>T>aEd_5VahYk2i@?ewkw zj+N&aep&NxI!_@lgS)=kuQM zD__dK|J^gaKZ1Ouzqn`lw!TdK64EXY^L=<~2Tx|bkG?t$ zp4{`{WA(JnoT%O4N%c_tc*=<`0ETwPsGM)J?pII0H{b{Gd@FeB1WyB<55G!y5`Kgy z;me1oPa3}P`&4;GzGD}b_Jnm_8U0y)iH#`jDTHUL^V#Fg_c+hoKghTbQ9Iu9$3WvY zdn2|EJnpgSu?@p)Z?M*o;I{M@2MCs@_?X+^w>ejie%PV&^z7rTdd3F79>nD2n<(>DEe`22f zKF=;H?(^OT0;-%3zs*q#6CzKa-zQh&crjc zaW_0+u1Q{y_wOTni{M?x_9A>cntA87=zZb^re=(CH&Ob@|El ziW{`@Ui^9bHL|CEltIcf^CPCm?qtolAWiOm$l3{dIQAjr zj_+}v`S();>zm`$iMMh$kY0{G4sB-vKQfd_FJA}D9q5Waz5F=+&Vp7vFP+>;JYyie zycF3`ydjgm5iU(09rzZ%`~ul4V6Eg1{AS(LryW{v2G^pk)&@lDXZ>U1y7b8gc&pu~ zw>N@!8;`NNdz26NwqLbt;xdd+_}7~DZ1njyYWfC&NB8yH!myyD?SIPt@AhaZj)lGpnN z_%!x}b7!P4pi^SF)e}=92kGCAU;W!Y)lV*QolfVH$Psiw=T+fnhb_MRS?%N7dX@96 z;IVRI_1H{u=H*xDx8@fn@5AR;td~vjd?x?+)R&nTGj{x|X_@dlp0@q?_1k5Q%P+(K z$A?opHvhN;`{mGf7IEKPYJFPx|4uyT<265Ci6i#)KOY?U@tWn~6`Jms|MK-ToW{X< zD{>J-K7>CvzUuDT+d^JvpRXd>@Y!JH?_1bh|JSn-;%%evot8NKUIM>tgU6D7vin>a z{CR!$$@TxhM{CtF;1D0)(cU|E1?$i|ovgd=;JqB=MSG{+c$(}(D0)BdSlo&KjBf#d zY-N7ei+{WZ-+Cu;hcN#y!X{uJnTK8J&f6-AB8%s}W7fUZ-!Ss2Ona3Q_+2_8&3Dsqy|G#_qSNvQuc0G9PhPU4W7xo-6@wSPzKP27d zo+GAwBTE;ZEpidG5ufY)Fmra8Y~e%T^BQs&c)uGuy#<}BsgGAO2yFyoCLi)n;PmU* zbbBLS@p#qn%JH2(`A5HqH)Us54R_BYP`-zygLqgxD;*@6k*(bd?nVE-)Um5Hcnl7T zM{wT9$9JUg@vx+Rn1&6g<3qlO#ob=uOiaTbf;-_YUI)&=mw5UJI13rRc6s_3e!`%7 z9-Xxb-V~m!?>)+gH>*SaGVb%e4c?yc;Y~PG?EG4Alg-&f9ptB{^W%$Od}n?7wVhmZ z{iI;@e)7)J@BcsSy?cCB)tUdl&n-Ct6ey@vv`GjE0j+jaBxBp0TvQNSIwSo$GtLYN z2@u3-rL{FFXhIU?5<7CFGnryLK_DncThr7|$=D7-6wtIILci1ROfQ_1D;TxJ(v~B% z`Mp1D@15)%f|vg0_x=4ddA;&F`?~g8&wB39v!3<+QQm3gnrP3B9e!?<_xA7%d<-2e z(0@DmPVq7;Dg5ub%a`|LJ^AYROGHDG3!Ug}S&UsZoClw>{W-cem1~3F7(U0Co;>)q z;d8~R6L*8}yeC}bdq-rK%1&MP8;8$+AKSDHS#~!%74oF#u7W%-AC%4}+}iO@`drcC ziOX$T)SAedE{Qb#ql1T(t9o~K568{Rr7j*-{C8Y zk7WSs-0a-wtd$jJueH~K&t~AWgxU(y1-`8Bq6@qZdN@D#f9`zy1mE_he0wS1 z?!9~Dw~wZN`)>Q&`ra(QmsT-rUN1Og_?U7Nz?W3neT&0`!uW!{Jjkr!V{TG)lxzoo zMCZ##@SwC|9+VIN*(x4HZCppLK1pA@@@*buY?-a-E8v(bTfIE!2y}TNocSetF{IM^ z5B_GD7gXh(&kLU8e(F2Vj&dzF%C%;$d3i?ZDD8h^l=m7(x%Sv7*S|ccg8}`BFPrs3BmLzs z`>n4Pki%O?t*>Hgi`T;+n|@%ehISU0f`j-xI?B#fZ!NPTk43CN!w-4>3F0DMT>MLf;+@7q4a5qg#5w{zQCPh0L9nhx5 zpY4B4xA$|6$p4rz!vC1K9^d1&zGQ7WKE#r1P2BAPd^+;OWZ>(3<}7w5x@iJg_EmDM zEoxZAmv9cBxbZOXx|6xSzQC;Uo&O1B9{j%ueMI%8r&C|L=h}kgE_6HPhsft>$03Gu zE_B`2aWiZ`6S6?Q%5G>p@m+EWK7{T2UC9&GmT`QQ+s8!TqHhHgt>-Y%zP9dS@&q=3 zgEQ$D{6qf5p6e~zV4ai3Wqs6)tAKI6NS=LS5zl-dyrume7P2D?*@pB#3{W`yO)6n~e7>m>9QO2tKiU~~j)SJOJ zx>5N!^eOod;Fw^h^G`F5DCac}UADdmOvyoaXktrt`=t&Z+jWD=pv^L9)Ar-0;DDLy zQ0yXbPchK_$T$2xdHde5^&r7Xc}DArqcle{hU#3$kAXADtfBZa(TiG%{986f|aoFjGC42)b;7u_RcR62Hj;hF1W?EBD0tc7ktTNjzo;GP)4^ud@#r^z+Yqzhi#^ z`}+83=dZZ-YyJcHQGYTw`UE+ms;j7&L}yNV^xVtvmq!`jwU(j3RCrwtytFPzF`-gu zS8_-H@{Km5|Mc#(eL^+h$Vzyy?0N*d4c$%EjsG;`ac* zKO-+r@XZNCjeU77G)64P#f!?3c(KLI=i`y2=zRz;#<3O^IF_hBkAn-?!CzbY>vS{z z(Z;?mW$Y%Vz}Wj3`x5l`PR5?NjqyBfk6pQgf;Bpp8NcxDQ@}vuABrhF%{<=*t^tQ$ zV9>XZF#?CtVlQ794IcY!cxaz?cO2w(e@*k($^5~4pVNG~@uP()W1vn%LubkuG;fI_ z#_=Toqm1E-)G<8C7>Yb&c>cm;C>U)F&)Z{AU7NVpN>RVG8<^U)J%b&+;Ms9}*|UhX z_RzN0TtV;lyf*S(Xhn4T5P003GeoDR-o$z*7c0RxM5ok(xA`gO?_{2BjB^g}HP8Nn z<6D5&Pb~0`e{@oKf$_U+$;R(8=5C{>j<^;Y<(kDc*M|Keyg+l|>T%K`PG8D*(}CGo z;+CHE-X~3d$Z-CT@_vx5#3-*Zvem4ECKtHnZFn|0&re_z#DRr3miwFEo@>k|r!PN? zyl(Ij8I;`hxxYWUYsNEgmw)a@Z%@DG&9|$8Wfrm7d~#{we|n~E*WdsB(HEa-*1c8W z`QpHYNM3c^S{>)u<(tDi-^u>~))Cf+6p*L$toSIfyWq3%I9ms?-@VXt7rdShPL2hy zfZr|;{KN-b{Wq7fc=zx5Th{*}r;nQN);YSV6F=UnHi#b&c-~(yO8rjdQWTD5O*XOL zPoBZ{4_e=82X^h~$DNEn6WK4kEV3-4j|HWVWs2^kkI9$euGbr>8*6Pw7w?bIo4JPoK zm&C4EtoT|!yz*YYtN7nUzO(5=(Dhwbo1e8fq80gB@VT_e=Q3l!<8N66eC`B3@cW*- zB5i)&RU1XfEaGdl8|ptv&Hl8CWu_g~IeHSDJh9Uk9i)cLcE0%q-s$7K4_T}0efjWW z-aQHb=q$2h=!NuCx^3?wU!GgnOS+xQ$AA8>=pEvZH^b+zM}{pb$TMvLlarcrr=NZK z@N;aetH_&I&W6^Glz?Me%aO&eV5ISCErN-&(H}R?20l&h<-C`Es=vMT^C0~^K|fE@ z&wSRynSL%*A65HN>)^D0Y`CATo_-pbEiA}0ZP8D~nB0E$(ofocEwu8gc^U`);+XaW zGL+w3gD)FHR@E4mLf63JHuLL`-NLV6?B%~-yJVRE-pDvz{;|j8n_WJh#4 z5Pj6bHFY^I1CP*&5>v_lb-uI3`A!G?eds%2^gv{ugWIv~TB@?rz5As<)xDA_vcMN};gw85FfhQ4vn(N|$J8#|KZ4Y>0 z^H-a%yL;@p&%|dkw#!C7^M2a-Z+pfgH!k(edmZyGUa3EK{&T6rm71UG@?!BCt!)sG z`zrB(mH3{Or`LqvxCGc1gX?E#vp6h16zqSK7^2IQUM3C`f+y{6x9oM!#C9rpN6*Q| z+D)FH!KKN=*OiCf?B@9CI<%$dRg*Qy{tWAB%jEyjmgL@0t{~6uq3wF!HNGCsH*#J^ z|BA<1QSD=p1C5G43!zO5A9FRj#HV+ zcb!Yvz+CILUE9@e&#qma7HcAJ=v(9z=W5+;Md`dg=w5z&(aBYew+XzLPPH4katL@S zUsh|TUj|->fO(%{1%fSOKlInW*Yv$Zz-`3!pR>mV*Zb%Lwd?IR;oWNUFl}aB89A2k zw0W2|!<=VcVz+tNY4b2`j=1i$soI5U6Um(?meI-lrjgrpEB&6yJgMHcuD?KEhpux^ z`NYx%M5}`J?+?iaJ|9MI-dX4);)iw)n%^AT>uLwDwE3ib9Ouljd@;co8=~@jF!nq1 z8;bqL{Q6_R<~Nm(7ET`Kqu0_e(USg*KP=!k{;=HX=dW)XTm$cE03SA3W}Q>lR`?Zu zd+k^1_I1u#)*oGBeXsL2o?FQC;Ew!NTK}cEs&GPidGSYuFRb^O^2z89?A}j(9sUIl zbz)QLd6P%8Q1xrc&*j-!yfb7w7&{Z)Ztvu%;`X2WiJkvakL=OAdj1OU^Rx+`4?Vy1 zKa!2R_@?8(8L~I9nQ!E~N6IQb84X}_glNO25Bu8BuK;f9x4uD}M_8Mx^-+4J8@-}) ziD1M125gqo@bo(w|INeKra+r!Z4i1ud`ToZne!*GRkB5^cWcZ()?1M)gzrYRk)NYJ zV*F0pgI8yyyc>GAcdcNwnRhks(^ON4{cH=-8w-&Ig1>w)Gq~PdG9|iZZDi{%vv+G? zRWCX0nj6nEEqdm8vwv$~RVnkg%h|tG&ywSFQxv{mWRTqeMfj`o7x)keSZk0pU&760Cp4c*LyO6z6;IYNPgZ1hytc#zfd}?6S zT=NNHhtz{b)?bBfG!wtaEY?bi-@5ljmqWFHrGLS@wEw&G3h9aBPm1YxmGRvbTrbnL zk?Yh?u- zEc&h|CkR=qZ@&(miB3c>@2tW83dk49zNss~1^Qw5uCsnF!S`7kVD`UpYb2nSYYXsAUIqN!J-g6TP2O4;eI^(44D)2_6wee+ zGZ&)0``ClT#ZT2!P@KJyYeRFwnCh5|GUmd;Q!{5{z%}pK3K?7ELSsYM>trm2*7WEd z>>VK-{q$mVKwuzPc;VpcekO)8Nx1Wo*rZ9rysL9OI5dg+jVO5mmm6I`@s^MLEp$6(l-qakQa{4+7<`S5ye*GH$+Rd&uPgO(JXk0@N_BX zg`5}3zsvo@Q=PsP4fo||^hN6y-0=+5+5C6`w$|yok?T$4jqqRi@nEKSaM~Wh(v>OE z@0@EaRSog#@E#vDnQcvp3P1+$I*Z0XblCtt?3bL zR`%iCrDNp`=$M)_P1FbQaV-6MJ9H&oWP4vi2c>v^w`Ne$~|66uD|9}^ZE|5WQbS5O9WppYzvWj zg|zF+-$nn+hG*5C(3Iwacf8NLG$p)`fNSw|o*7FnEq!+N>6Pz7KX-vwsq}O42cRE! z{q!F8=t*5aExkfI#vuD~2`60G{IbQxm1 z@>E=Aezk^c2$!J?gUir{)^nNhIlMSdTbF{n_>Sf#;FFz;1nbP$S6REdSoj&FPBHlD z`lpXu*1*f?uH*{m4T6&v_jvkqpby$*)@ zEko;Iv^LA-w`xBZJH%VRa~iryp*15~#8^dZotN406Ho7+3jHg88#z=1oH{SFeT%n4 zLvhKhsjT1Ry;9zL1l~~dhr#dJb7b2@rtO;Z+cr9K%KO*h*HcaOBEF}(GT3!P-+P+z zc-s|y&u84Dt>;{D!^rWKIBRbo`62Q3;aL5a>>tcBamiB20OFCzuTzCJ8K&MJdS#2Z zR;A%{+cTmij^2zO9W&2!?c&SNHX2!o49W%;*^zZ^(9OpZ=5+vp|$nW)zZjsI2fK21;>Wk^z|(DW&1h|IwA*}xH6q0q9{Z_-XVOOWld+#FD@+H`R~wM}UANb_}bN3>~ho@*yYYqQ&K^Dk+0 zmxD{GZJK`0^NncJ^pk7HMr*Uho}*%o-I=3N+uVNL`E7FT-$rZmMZ3*wY175|)HV%Y z%1R&6ronlx?HR4j)AraeS3e!TM4MaOJ*TI$7TL$VXP4V~WO3#Jz7F5DZ5(^;IeSqG zUwLK=-+=ETC$5OfPxuJusWPf*{Mkm;iucOjO(vc?oDYXQAjc>x+WkB}qT&3nBiWys zZR8Vr+$l#sk#8~0l?PkA@}L~stA6{mp?b~q>qsHzz$3PtewA=;Z4cx3A-6!s)L+1! zOPcqr9P?fl_T6@Pv$>y@!?U)&Xxid@vD;3Gr=5tWop$^CBie~i8`%!$g)W>94BLgD z1x~5!hmF6k$c`7P=9V{J=)$Z~Frx+u^QPL+Te82Abw146hh*pon3-|KGolek2D#^g z*@x+4+~^HC(TB`8?0hEV=c(*j6U;Y|$*JwN6mGx5+nzaBdm&GI_t0MU@I0f3jJa@o z@s##BS9=4Ooo!tFZ?rR7A8JzG;au-@^Nu^F1@xiR+lO(V7_|?}lxNj`MHIX+avB)5 z6mqWij?muVV362sh<`gqyDS}kgzevh{n>-w-GeTUT;6i9cviGmb^`f7z1TJ@c&?9H zM~Zj$V6Q;STbe&UE82tI(knaO=+X~4bxeJ+db3XWn&{5&qT^#<$oDT@rYpyXujZlF z8fUGhVj(;5ms+Nt)a>YZ#;F=>s_Q0QUp3v3@n*eaGx**Ez9-Q4ebl2gv~FE#{28+O z{WZiAxc85Y(~O&Y8uw$I8#>4CH}#;m#{>T*{fjGyn3WmENFSzFEZcn()1=uIEN8(6NC3lk6|N z^4zA)+GlH@mEK=O3}^<|_hG*@v#;BHOM420ojnE8*i$W|KMUQx$Jl7>7lyy87I_wz zZ3KK&3qZEeGAq=e*n(mVJ^1wd(A9O^%${%RtJdhb{Z!xPD}K!Nr?|e+3emTa>DwOq zmdl#$L42DP_#0#NXNiwJ=f1OX+wB}{zq!}hZ?1r6)He%%M-O_cZ9}Sm;n-iL_77g$ zhkYPB?dQNeL@m_qjM<(O+wQRIqlIDt(H&!yAJpPlzrPh7kUyllYG=){y-)EOj&=Vn zer3P8z63YN`D*6a^(V+Tw{evD9tha=q!$<)Yx0l}?R1wl!e;*{eUblZ@GjYd_>6D1 z+O|7;2HN#|eX-|S!S%bbuS~t{NzuP1=dKIA3i-o+-6l74NOpBgPrn=dhE5I5MkX1W zb!Ao;_qxf+5dIom=6+n~w3nc7iraLP-*A?E8C!n0@ zx8M77h`-_Ee^~tnU)+9wlz!`;c(jjx<2T=;TDxV?Umg9Htp{!m=f-m0M&JC8Ntj%p*9<)=;xdF^4s*FwWn#nb*8*(*4_;vt8G(;)wcN}t8K&DuWV(H z6KWrZ8#b+dXzT09gV!r^_cjHIkK$8#m}la^t(Wo}#wJqhF?mDXviO0QK z2z&~GPhqm_+M2fRIn*G5p9?nxrxWnZlLrcUzot$7e!cRky|=T+`t9l`-(QMMxjkb{ z!|UNO4R0_fcL0;w6KmS;;F+sAUJ|lauLB=W@LrP@UR49!!i+V{`?-uO*EiPS!3)H_ zUD#y+JHb_T-Rl@znRQXadiuSrqIvHUE3|4qGGi+FDi*W~Ek~bV-sG#B2z<1UVg>NY zp#6OM*9lJNW@Ipz84bDgE8l0WegmJ-dfK*gq1LwE2hRvqPTN~ZTlni%e~Uh@r_Fuf zkslbk-v+;5dzgMKuh_j;d+DgoM-gqoJ10*=C$iKf?f z)N`B=jeQ1wXL6m^wk|TyYH!iCt#_DXtw~+mx?t#fD0ZtkR&LbV)*{bw#2hQncx~$^ zJlFr!9K)yK-8Y$Ie8I@B8_cm?AM|4!+jT+%u}^Y5qK_pLqU-46c`^+i-3={?UwvuZ zNZF>ilW^#mW4n0unOyRWQuP_dM&z^Z#mB6;g7~(pKL`huGw@Yp;;hP@d;6f*vcbXU z<_`|upgovXQ#XK2=|cB837z*XvZ}_g7WZ~vsN;3;eoVw-|HE)Yi1Sdfbj47|tbqrQ zh1iFAJ$j0CnQ+_}or7FiRgfFKm->n1@!c5uxGPgshdmUVPM!_xf`~m|LT-CFHochq z5a^-{okww6={>!RB305oCxZ(n=lgnmTErN-^U*novl^PZEs~Vq(W`IF`OQPe!oK$Z z3jhATWAj(eshkh420~Vq#n=z>pNWpN8QrFjxjlid@^aSUZ6^1^=Np(seZq`W4<6f7 zv9fYAGH)IFU_SBDGM*Q1|EuzYoEopMay;rh0z2tVy}(cN=^Jf6rQ0#yUibp*d4}Y9 zF1eB3`fmyJ@9stLVdgP}p1O=UTPO3X>qgd7D>vcD`i2&AWH=Ul>d>L<(6e3nz6|-k zjCrU*Kf}*Axwb^PIacfi@-y6L42+9_F);03RMRHCShbpO1!nuKwEhF=yuu^Jz9pNK z6S)LE_fybwZsn7EbA8qgs=+@E{xt@iSWz*%@}6%;zrUU=eebe+P}4;@=qF|86imt3xJ{}}k&H1K9=#nMVQeh6RfFN2p2>nE;0 ztX!K=Y$o_)@5K)PFnA?BI3t#Aj_rKSkC}{e&KVMn8?Q=CRjE@))&$o9MUtM}BN&U|gVKIr@+Kxyk8g zI{gfe3pQ-zdOGuj{AvqTWLG}SZ)(3^a{7JXJ^DTV0{#Bq?*iXkY_QSbo58sJ^t;gM z_X5V_qrcha+;4QDQpQ*7z}%h(|M_tL>G|^zb;k4PdyMC2V@AOj=HWHQ-guqzb34&fylrD!wPa8DaCFHiZ6}pVl`96IAyW(-|&&2xM0Q}G0CoYJ;G#JT>o??ud53PGD(;w{rvG#wN5KJmhUpy^q z48BI|=IEDH&-+>U;dkM8-zP`MX-B-%JwDC4DQ{f6oVk&`V%C?ymzDdZ=VhPtVs9;h z_OwUt%*ygJ)GGMi3Er2CR=z8|+0&*UOAGODgR(?=V(kRN(FXQU04Kh&o*qu*$parm>X3xtf$cmnjtyJZQYBIKj=w4fd^W51nWC& z|Cv9Ap18%TNsE5{+sJYBf^O!hE*vE1BRDiiLvlPAwB>kKmhJx|FT$NW=}x=P6>L>} zSoU?F^bE$X>ymHob87#%6&{#|?tch-z7Ko854$>k?zXLmg6lgnxmSoS)Qc`7pHp2H zZBUQwR%i-cJ+`beYcGAqe|ZlzT>QJ6{ z0ltRSi5X(hx%tdd^ z{Y2#0%-loUnwU?uox#}qvmQE@yK>duv5apVmkh-o>ezHqM#r2`B$?|& zKRvf#tBI?p;Nv6U#gDUow5}!Z2Owerf$MH)`|Wx ztrq*Dv-j_l)ZnSJ(i^689^%>b`SXblr1$%f1<#MQ zrc5olxuLq++N0Qt@NU@wf1co>^I&B-nYK1O#N!@zZIt`N#$J`JTL%0N0~?nQ>OGUs z2Tr;E1B2%QTQ^yPoP43ZcANTY(FZ#>NcKu7cE9ME@oN5*C*)(i21aY`F^1t`GcA8d zI{iAxulm-@7;j~tssrFo2s+SS;)=tF7YFEPNbq-Pah|~+Uo4$GFu_zXw{gv>ZSM3@ z*JQUTpU&HNT@OIZ^4<9OJwtmJ;yE`uc%xiFH}Cd-;IthaYH{$$#UEQg9gg1$PXd~A z`bRvqrJgZj@VkT2O@&p6_mgWqGF ze*S{KsXqfn&U(t(;)$0H#T%5%YIx$JNK(9rJ>v&npdTzW|5^#Y7t?l;9lr{~x7JUH zJhnR+j2_3o{S3Tw!`fSprNhTIOuyyW3FLTY6?=y>|0X^s*?cp$F=N`a_S45QcrJr) z6xZaSp!A*Sm2wJ^Q-2ZkzU!vbINUV-(8CDdp7Uf&N~Z{+ts`yo$bGP$EWtiBjA%- zAFJFqVs*553Ga>k+Z*>%n(?)=~Uz;6Y|gJT$@FWHIj8@VHy76u5LFi+gxK z)1qc7yu$3cz?$&MdYD62fQR(>n>S z>z?*Olirs(pPC)e{m^}4D@)Pcbid~&%j6a&;IkDx`!Mq&eZ6n`{%sqCYv52HG0zR) zkotNeYyUQUIIn5n0Qkmict}IoN^8&<@`)ji#Sba`TIqr1UGD-*@Qyts*auhne(?z- z@XuWr@5M=cfyw>AQ*$idxdfQZ$A=jQ_H{FBj<&Fm4>^i+y|9z)$mcoqe(JAtOrC2I z#}6Y%S5Uw21asMi&y#%|JHpu6>A&AV{lj$h5Bx3ggvV)fJ9wi!+#!sQ~-nRc?B;Tk3ch5dGMAPTtZm25jjObE6P_-31IkBM}cgMKHCZ={nWoZ|m>`R&TvNAlaL;sfRIf9y_TSp)5J zn1B4Iy6&r)pRA%E=r`Ykjt9ozgVeX=GhK&#Uyp9^FtT1ST5ucm%6^{fIe!AUt@}(k zS&RPgFwbn@**^3F*@PvcLFPqvY7Ke?{;~d|TWFWx6UF$=&?#=SEMouZ9pQ5uk+4vG<>$$n)0}#Pb8qX$EC-jPiVeskl7oM*B0xjEMzpfLT&BH=sIL{7Wqh4 z2{}V0;iTfr7CKU`Wi{ME4v#g(K1Q!ORmL;7ajmI5Z0G1Z@+PA3PY(`krVqh0f!Bo3 zGsHV?2oA)!7Q%ksbw!x#k=9IIFLtiu|J+qSf$P<+AJ+B7&UNT$*VnRNW4>A^>3Vr^ z;1#ul-MAZ_d6$*e5hn*kJU8=x=iZ4m$9CUYZ|-d;4_10dCbI8!-cx^yvuch~Bj7pt zCZ+p5O)c64^Cf=$NpKz>(qeR1t~t8v5m%=#b#zy?>D66>z{1O4TpSSGmlYM|g;+nb zj(OL70uSOMtbc`fxbv?$)?TifSiIXEzSd zvEZq1l`zNancsDu`Smfs>bK_C=-g&beGNY)=RrELiwD>$@XlZ~2mQtzqw6T=d7bok zw+)ZpUW?v-Fr^LQ61aGy!J`@*j}#vmfjeB^%X?mU$v^J1?Sv7q_VYcxFIZc~PLM5U z#hyxezXtd}z<)Qoi)pJKy?vVX++)-c%f`3$LEGPw(taj;Bnp3n(2v@B9eDp4{mQIl zZ78xf7`FE@TYs+LnCdu?L|gy&s6+x6rhhiCVs^h9}sZ&XbR@&Y!qH#D+7J@yhh(=Oh# z?VQ5AWvnL(f!oq+Wg9i2TaQCm)ms11M(mzP!pS&#nBm2bV2f6fxh~Z73}E2@1*)rnhV!nE%+nnB0U98$D!RZ_`cHN>0x;K zAm?4=hv|9+zq#eV!sTv$%$vbqH1TwP|J;lU4@t0}Mi`H6RMGn^g0T0rU zIWN-gbnLFc#M+|)E70Hro_^pd8|L=kYF#k#D%ui^sqxnl1pcyfLyRd67|YI;JOh8o zS+fSdb%>Z0d`)!jCU5lw(T1%yC-mUVgPF-%@_HW^W&Bz;{4jpTyTu1AU3^r2oq&_(5pvEA++7_d?Lp zZtSr%=p~Ks9Gr|!481f@c<@*=KGf!OmB*UNQ&RtqqpwIG+RbyB!2f0Xqw61b`{dZ_ zAC%rdo6@JJ7|H`AkYEe_f` z*Y4jB+udFt&XE0W;?*PTp}>2Sne@Yt&D{y^Ba57UB=V#GzB}2d7=GZg+M`9_vUFYL zjH*tIsfWz(o)-MRJX4N*XYLwG@D*dnJcm8M#kJ?_6_*Dekrj(O9e&~34e}k{|5aif z@F?=9w^+o;)d%%Q?FQi`F5T(8bQC_j)RAN2v(OEE)|O+xC6;gSq0aWnl;2lcwe0@V zs@}l#*g<^f`>eE8rPw9)`0SQKgXPd*3A9#fXwct(0$+4K`T(`)7MG$k+`>Hdl0%{W z!Zk11oG<6u70{dN{D|IePPeA4adboZzSlr+%b~YY=xrH#gO}b)p|^66-mnz9GPV7I z$szhKzn#vfxVeSyIN%w&KF!^q&AHy&?2&uG>iz0h&!oVq9-LjnzZb`z57;=Sx^!OO zj>X>)eqrkCs#a0K0DRXZibJQA#=!6 z1D@FJ!1K7}@5fGE{4#jZ3tVIyh)26PA|GUy)&bPyN2h_WTCXl1-6dQ_J}W+92}hxA z;b=YhQ4Wrl^L>sx%7LZExs1Lwb8i_uT=-jzZ+TSwMgNez^WyJ|kJ$Jd;hhoq%QuJc z7kxo}aPYUqwGF`68!v>vx4QFkz{X$U=yG5wd>e$Gc-NK@$OGZ+60Yr}UREZ*v-n*G z&K596;;0>}WA-9)Z@X}o_mA_8@b!7*gNv{7X$oKE8!Z7}OKm-OsITn~zM_9(+vG$` zkPnKR$c|YG>|ETPLccw7;z$|KPD&YzV6JbKqrVrUzpMYd=$mAoba##Afb1Q9=kx21 z#nsvAOM`bDYcfV3N4YZ&=&nU}#&mSEa>h{t-HoB|@>4GbF3Nuty`3a)Kslh&-Q9Q0 zyrR3K*Ck!NsOPvGUNqDmJjk>M5AwG6zei~=YgmszVxg}Kj;Y?icz*xG8betyS ztHC{ZrR$gX>LwxP%xCk;5pyQpL^hV@%ujm{0Uz%?nYm$}>Qd$@=$WSg^JLm!p47(Q zrL>XF+&lq(paUJrW)7qS85?O>?=f?;#GM;Ajsnii1?JbJ!2RzWxIYQp1@BbeY4PX6 zKLfa><}0{-E*m{T{%*xe3fT9v2wqc$4M|)sS!U#Gus?zRn!xVv#O@yEPl4Ds8j_9B z%Utsg^0kzAmhz5Zrx>q%bnf#8-vTzj>4b+C!7~-NErMqT(3OhmM;S3q=6RqDd!-nC zrp^k)XuGY*+~ZkviV?mxr#%-JXE`u=0hoBlzsKk&BkN_#CoP*fNZZoqWW#h}V`%;K zY>sn?v+gF=TUN1r?{aGWv%l-WO7x7Yi2KeY?pwCD_}FnP(7%A#cv(2m(KRm6v7E7& z(dLtD7aW_FHNQ=^6aJpr%7@#5z0kK-?X9reLk?{uzj`j;l5hAB@K7$@A>fe?Jcv&x zGbTnJ>&tq1+sT=cwi)b&9L&a!rH}HnX?>e~kT1V8xL9jcSl`n&+MFs*ip*-0ZBYj- zm0PL2zzfZDCo(93>~!Z%`q;F0n`dNUC-#fx#nzGSIo?f{!cU|UzQW5NGKzKr|`ivJegC);P_H_1bteTcY8^Yla8 z^lfyh4t>9bxf&6VDzf|N)$<6o@0G{QxV zZ9nI#w_F{J46NcuSw1IsW{lq4ol5bQ z9M-qoNx!5k^Nwm|i4LTHCx`_k__pdt`B=-4AYP@KE3T~4{H!Ct=r_!DYTI$A?an*F zOYSe7W$&%(_S5Lu^yjIAte4@w?e`x~zK9byJYf6GZJA^ri>6)p|A`0wJ5%7V`U!Tv z*GGn6??)yVmSjc?+0XU`a0>rPi^aL&z1wr5zofRX`If_DCC5I@H%8l^bm~WHj}DaG z+~0L6I=g>D{~ms)ezf-J>9U(UzWGl6o+iH)6nBW$=VK8Q4c`!(Wq^^U3+iuCj14r;y(j;pAC7 zaW^l$xuI-QWY6=?@v^CrJ!_of6*-YTH*88)d zUyi(%KRk?oViSIkli=k&;LK)l=Iq78KF{Yp$7?*t>x;w5iG0uG8Hu04gVxbbmRUDA zFZwdy6`xT~)IXAs;`Tw`H?aoz+DYKNVSYII@Ezgg@vO+eEAVS_ljy(d2d*|WQq=qo zdd}+BF5WBU*;1Y*_TJ*IIW{^ReUWU|_gww0if>AP(|IjpT|)a^=*L~ORYyBD=qia< z@uzTI>l|ieMPAEC$E-u=>^(N0c)PFTU{-`YxisvNhd1|j%*VGCqW16VR?&M8=X!Tq zOWn48*oMf}#gezu$)t}+mTIiE*b#NWS^4|u6N{TT??k_T9G!P5`gJY3P%S!=S569F z2f+>H{Yr`*QRG2UWRN_{A-Wupo&+J4`%2W z9XkL%m4T}TXoUCPlScTSOCv4LSY=O& zKI-I`0ne85y`_wQ8nL))@O3FL*kM`U)3I<@_L^{aDY&~7+(kZYu_6<*q;QsW=tTT$oWk&o1=mLwa581J*>BQ7W+$XN6`|&`f+3Ta5xci9vCH8%bwHl+g zUt{05eOEbAz3ZQ@9Akg%x2K(Y+Xto(t#@7t3=Vr_qsHvg-^=7Fc-MzUocadOJk5SR z#9e*R6Z%O@_K6SKYtH4TrT$K#sikmrv;Z0em$rE88<=|~R}ZbNch5yn9|aHoa$r#S zH{u<1&XzK3(ooGF^A6{FC!2RPuQe%aZhyMdUb`A`*4$RpXYZO@jc5VtVCt)^{`$e_XHi9nA9*VnrR~ zmy|-M@Y@>;7(;f}q-Yl3(7c&3aIP_&N_XvQYiM2q%*#JJ^8zobf`?UATmDu1;oW}n z{Ii{0|2Xw6ZT_4Y)30~__8?EZ_5V~~u!UH_cIe4MKeY93`*t)lyE$Nrg_tow3))+L9qWGG zG5ja@-2RgrabEu?;ES!nz6Jj5qoe)@`xP5d|CiJM72|vjCzy*RT(4yu5w4e3lvFMq z=Wi(HdTGUs%5K(;EU(C_oPXZ>5sfPtyJ2Wt!Pv(*-g|*@J(M!8qbcLsk4@)}>zFe) ze=I&Udio$bMi$NAj<}t z&R;KsoH(WRGBMT|nmG#Ca`_L`Qg-QAICjwKU$+Z;>;}=RkK8^NuY0)X!drfo)c)K@ ze@f_&ORu&*i|>pzHJ!+;O(}i&MM@u^gvs_IBlq1)>U}hmE5vr&Qv3F?xamy_B!9;`A>7rOGBEIQs8kR z{a{Z@{RqYDSXa5_;B}Wo4`M@K<+pCQ6}flNni^%DCA>4OA78-YTe#L7nHv39uH6#A zMu1k`_}zB=iKY(+Y`J9Kk6%9Yehu=kJCH>jDl;~dF)ahG!Xa{yw=~CdqRo8wCE%f$ zjq(B5L!(XoGO*`9wtP$W_UohlAAv929N`{%uMx`m;DEonrJnI` zV_u4x7dvk0tZ4<_H7Rp5!v3TG|8Z_4fB6rGPF(s}VDy9GeEkG-WNc_?q#hcfzw80Q z+@`_^e2>qGwCSFge-PU}rTvqPf2L$w^j{;++W3_B1>0xUw-ng^S4#hK4gGrH3GT$@ z2e4*Ee?_jC@QfPgZPEkftM*ss>|H8d51oB8cqw=(7X{`(?z_FlD4YA}4CcPSvUG13 zc8g+EUYsZfci3}b?=9dCw&g3qS%HSy%Iv-Jb600s17ooVq-&YHX3lTN|67ayyl`#7 zv1yk7m3O$OW387H>@?mlI^$Kn7sO ztEn%-X+3Lb0RAKVzx9ep-c^;$_s+B?MCVV5in>?QZ-m6_B-n?KomeqD4vdq3%Z zFLXkE^ypJ-|KeEq!H16ZRoL&O*VG;*f4JePwVyc_zS48us&lT-AG)qK(rfJNqQM?$ zQ1n-bjbD~!y(akm2-&SZ9{?6!er@~zM&hI40a;VEmcg-4#hdJP65n>$bUX4Z6;B2C zOGd#n$uoV|{TreO{6Jp&%HUefRnf&J7uUuyA9XPBTMXfl`l5A16PYis3>dO8;FVck z8-sJ%7(XQ^!;5n+ZjC{%VN=Y_27kJdFG1uBc{{HNmvrs7{Aygs&%VvEs?#s3tqW= zl@*>Fn-QtZy+y~?+?X$tms{}4>%@4e;#`+v{R>LnBwgi%&BTUf=qIA?5@haOQkp@?z$*8y?*ye$8|4 z7{9)sF+NJakx`wE@MQS3$s=&u4&Go9r?z9rfqAz58f<4jCnHmXvA<;Al>;Zf6Nrq- z%QAa==0+F(GqD8pq;A@-xf;Knr?1PgSJz!b9H)B`+ z*}n-t(MjaTRGpQso6%A7fqfBvx!cH_T*z9SMdbV4$^PRz{dw;9hWgL9PM3|0&phh( z|1SE^ef3{!nft-RH^8Nc@x!yXJoh?z_p{z{aIGKsy#Y==9q|o~;hAEe8N-gOG0gqA z*kQ)7JyHPN$Jz8$6f}Mcmu_4e>ObBYrXA@of8wDZQ?HsFkUxx{G8Au#GiH|_1+!B4 zoLN6Xj$^*orxL&KT;t0VynI)KW7koWnYgPPcka4gvCQy5Cw{8l+lYl){%E`+XI?2b zW|&xL=I?#0Pc}AfdwoqoUaoIUEd2Yy8@1l)WVJ7EKDk}t#N|<+FOqDpjI>qoZRG%V zv(~i-T2bAiTUq;~cH1k_1F8%1YS2$?Je`P-k#%Z({}bS=e!FgtFcw?>YmLm6jK|m> zT-W_MtZ#Pf#M?TI6R+agVLi*?R{{GT`WQKDS4V4+MRm}WX^-c|YdZCd5by+$`6 z*Wq?-qUG%0q&!{atoV`F-QZg91Hcgl5VO4F3$I)F*h-N}jG8Su^0T zB(HLaJ3c-<_nqL2W$Iz)M?1cO&-zL70hsfy&x1$IljiOgY*5>l2*q~q#@@ft`rey7 z_ibNc-th>UHp^Z)b3v%^q98E%5+zwT8K@rY-S<4Zx*=_&RiQVk>bX zc+Beuit|3jynJi_)zPQHo%k0c$!9|Dejp)37dtO1%#ekg?gsb(GGylr-aQb^i+|p>r#l%_P_?PMBK?JuHPDI^i8IOdbX%i6XA?uDw66a5)ew2M!5x$mn;=xAq64-=^Q+qR;u( z#U@9iQ#=(Kb7PL3fs10-*V#E5<{e*J^ag(IDJ+hczdn7#ErU`9Q;*c;$e zg0?#Y7dtp?!wVa4%R%&%{or{YYH!Lu~!$KR;%p0A4YtBPi zrr)1?uYMytW$$|Xz3$!mJri75^xxR;FVgP^hWlNU9v-Gs<6 z=yW0N=V*L(Zh&C7AZ2_b=oCGrbD=%H{|-9MgpV0sS`}&gcWPWb>no@l^j*A)TA75L?qgqGeItTy+=c$BI8Pb+S()N6=*ZGF z3el0J*G9?Tc)xsKyuP3QyurUMgKhrxe&2sDx$%DI$nM95`Kk0W$>1-XvGuVm^7Uo6 zxqq&Gl}p~UH$OU21Z;{6k|A`x9!u*UXa}5=+|@nJh2qz?9>V@u%!_Sb+5TLEmy$oX zF?Zmd;@sVrTHli`6k@*XjqVmQek8MI5}k8BI%Y3(r2W4RF-I$yqgqG*wDqD;Y!-7Q zJkBKddKT-T*v?!G6&`>T0gu}$go zdgmC=yU$Dq2Gidjd`@st%%s!R^AFhbS_EvA+gXZyR-UGw^Uk}`Q^|p-<=#4;@$vm` zzVFSA@$-GfJogMBl%}@FOv}Ujg0V507yJk2`{a@8+v-cigh+T>Hg)UAprkaMsKeA;*#yujQAYKU_Wy2%0;DhFyb+(_}rTH&8ZU1VN_Hs== z@3225OS&}vxxM69?jMflZ^>TlbL06fisw%wx3`e_Ex@k?&Kz;^YA1M=qrBhkR}aPJ zMT6#fuKg)6b-&TXH{6_o{i?k`<&yKi(QbbOTtDKj!F_^nWb=*e_|-#xEz>^d`c^jI zuwg$OJHG)KxV}CwJYP=nmn%jDJ(>O5rhzw2_&0s{oa9Hh<*Z$k^}ZVRPSn0ynaH*X zx)eB3&TlQg*FyGxUy5BgtvHfb&VM1kGhKT@J~ifPDgVkvPY|bw z+z5Ga!}Yhh_^`>;yE%XU<^$VOXFnvL>c^eBZUk%#(XR_5A02i6pzSSX?5$Pe_zVS8 z^E}sHAqT;oziau1>Y39%Jc9Y4c9@TM@Vy%xG4Is8%Qv=<@(r$i$McO#`Nk9Mv!rii zYY&Kd`R9MbdY5lxjq(ky{gdY#zuy6@yx+KDlyS7b%Qxbqe1mJ%o^N#XjYMFLffZxf zlD!2#Ln^GSYt4M5;yN+AE!kPu4&l0iE9aV*<$S}7H^P^y-@emW>7jKmzMo8qj}G2M z?1}YqwhtMf)G;f%X&rou_0C~udlR8I!`GZR!(a0K_}H4Z zE>9m^d|gQ`aWDUhUuI!*S_9e#8`{g04c27&S06y8H-!VM53n~#Q%zuXEp$pPtbqn- zvHntgAlBGuT}9bE{EB(&Ex)}lwdGs=0)4KV63{xI*@5;AM-`v&lV@9W89b@xW6=`g zb2fjjw(I)2yb>C;$K%xdJMX%q-#OQt+UXOqA=M*mKsI~(#GVg%yXn(G{7uKzC;GgT zK6TNjYHP~CG}aKP@8q)Qv3I?_XSUOK)ssx^|5AKp-u{#K`vLoYq32V^6lYB6?fJ}o z19IVA$HbVuW9lUCt1*Qb)4PqmkoL{IjeGBT+W~yNSLeG!9 zUJRbqgJ(6s!tU?L`#x~;6VR+#Bar?;>z{g#Z{k?@Z}eRI6X)7>=9-P8*KmBE9s%92 z`OQcjBIkeT?|Kmw^#Ix1ZQ>furc21!cXi(lo+~u(c9Qy^C?A2}L!%G_l_Mh;;{@)y) z=fXcDMZb6T_(9gV4aJ1FTG5ZA+hj|h2R@nT<{i>~wz3~A^*7OjB@r+@uUqw?2Mzh~FW9JU_>A2&ZpJ_Ok(WvmNW zf*y4ZHB2&Cqc|PeCjZ+$^t5TfX+8Zh{u=u8QpK`)F9w6;X_C(YtS0e(7x-0d1v+@A zW7)a&o3mIeA)mtC;MNlG;v(%20Uo$*NC#4ESpFK}s^+8<+r1fF+vng~J-8MI*TTL_ zqM?;Gu5o@u=iPjFlT)u|hHB9SBUQP+Pz+qC+Kf#^+;4M!lz9a=GSE5mKg=E^=o+tI zVja2NH#fSVYUP=exQ1PNFM%yJmqvh4=hjSN2+G{LYtdE9wG0W z`(GTs|6T6uIX$oMFAUZn&G(JHXZvrIcOn~dByR8ESzw(v+C9;ho2M{>9)Owfal|## zcIveZcwKdCrgF*5eShojYA93v)Y!}C0(0+|;-?W@>%U?5O-x%H(zsA@%A0>CjJ3irZ0e#foU@k7}*X`fR zRQkcb@Ri(}2kp)!F8a0jWs&6N6AFfEx(WtbU!4Dr@o2PUJ@&q}i% zVr0D%&8_^&J>c#W(4=^2=tc3|Q2%V{*EQC_G;lsde)Co2FQ-*3CpH_&(;BX3YzF9R z;4pmrIM2`GS8Hg~!v)EmtU>L8SNg{lB*Vc1auR~nU8-tb=u7M94~*?Nc&=gdLFzaw z#w$Ch58qf9eo@swve&1EV#Im3)RR+jxRE$7bfrBi`k<{7(3@htqWvD;Il(&?`#)(N zt9){&z!yEQxNu$AXL3&J#_{`Md;Q)r{Iu)w%V_WI^+8{9Kl4+Y6^?ds{zLL-+~-6$ zLwvr@^%1LvbSU;HbFJS_##zFr`j7eZ-uS6M@6FHqsx)roP4ph> zOj}{=#TC& zx`z1mqJ4WG53LDncWraWKihYpkg*jqwnD~M$k+-QTOngBs50?j*B?);tLIL10@~Bs z@h?-yMKZ^xxnVnB_s3FOEcMkXykEfk1-xIt z`;n@L9Gr0R!KTmQdN2QP@u8QxtTpg@`3eM+gVbK~;>KIS4~`q1%=3HU#zth77dN2S z_l+BQ;Kl^-@sGucffU?QKAh%!E5DlaP5ip_`Nz)rj|N7{9q9w^+R*o!bL|tR`5vfq z>Ls(U+#kkYI+RnCAeSNYG<*;A4Uujl)|yx!whRWE#8 za>4vcMnFrw@Gx_Zyy^X2B=5L&XUbpn2#fsA^c{Y(#1_m2GBhQ8aNUHDA_GNzO9%OBo_Y+Sjr8jcG`y?vTp-A0Q-C74I-ltP#;%$e-W-BmpQyFc(0!;NZ$I*_ley>v{PAMs zhz*=xl z#R>QkdDmxbx#-%b%3WI1x`6ozu}=;A6P{6jmoV>tM-Fu{^WMb!n)eWUF*V~G-Dd?> zZDQWlu6N$&nfX=ha82ut&Rj3#_fMVU`TXXaW7!T>t;HOVh65i&&VGIrTzS7d_g;_g zh59|Df4__@^RB-N0#C;Ft;y+l6!QG6nZKCd;P zY1qK3eLe`CR3N9_{9e_}hxg{G9)(Lc)CULmeH}gEzCC_>ZGpx=Q{#tzdf;RGDyN@O zj(0C(-CZ$#p7JPa7^@jyk*i0G4^_4P(2UR4op*T0Ctfkt9^o?cH zCt_72W3{6BuhM7P0BbzsxG!ZK;&uBxWBADh@X@XpHoTq#dE6!(G`R!FzhKQj99?Dw zJDS-`bopcTN3UAY`u4%Kp~nxNE8hw~>gXXpwwrq!raXLfL+ReP`_`sC-p9S(a}Rg0 z*Lhnyd!_Ut&$^Jg&wqvax{1A6;X%#Ndv94y+e_?Ilz{&!PP7x+PxckZLYuctq)23c^b?s5rB~zW(olg59`V7BYW%5(i_7uz1 zM=c4KMfA|+)o3U`~(K_fYN;_HP#Ezg1`~#`ya|C~4O}Qzs zH#&WejYog$nFFJ%=hU=4;gL6~>!+~8+T!BBj6pufGGJQ{+@}Ng^0mRo>w#_Exw;Pa zPj4&d-g@A^9=NY(PMW#5>s);YwJO@QM@_SV3v{d;z|5MqoxrUdT&~*~m^vM}tpmU0 zH~CNJK6xe`T7%tHRMWOJ?C%KB2mD&Aw!`0ZfK36ospo&p^9B~KA5wDG;SJN=@xmJp zd2nvX-Z1g_Vg4Z655kYcm!%)chbld940_%&epUMIXld&r|_ zt$xBLBFfTdyvJU%B9GkoHLSR@>3+HTFLRMiGrUq0k4RI zbF9;9?3~FyoWPD+sU6jKSgT)vPIG`&KQ26+`E}ph#oYI9t)~uO`PLVqoqE3A#M~6{T#;opbl+fV77l$|`KqIRTWei@a#p_I(4JN$uDTHEr^(!AvQkSa)LYxvrb1im=8>*fwLiaId$Lg z{a^>oEXaEjo+0^l0^HOdMf3R`*5yM+CvQHtY4b^BHaI$P62A-U?B?yO53Ejrm&ftz zo&+yvgd%y(lOK9)-vs~a?dbL9JMdlki6jSmurp?)Pnqk|g5t<7E%Yrc$a|RaYOR6R zPsny!0{%;<6aM#Xu=8hhFBGzFQckw~UC21b?~g4qI0F7N*MiSN&O5KIX)FBrea8a$ zSQK|4SE;3}W|qlgD`j7&cC+SaYV?`i0MK^6&&dTcO;W#Ul_l)Rm(%ZZuM2T_bdA6ou?rjbbLCt?{-b=x5x*IIO|-& zfm7M-!Kn2o!b=N1w1$~vC=l;3;E`vGs>U%Eyp7@g1Tx7-yze$Z1@YT(?b@Iau%u6i0wj2K5mO|zL zz7uODcf_3&zL=E1=|jxB`lSC-3;46{w>I4VSKZfAixB?iesdD*$GWIbSjIhQzpV@S zyKTie4t}c+UtF;N6?lM;wV;{kCxt>}%7R$lKSt4gsr$>2Eg2y&bA$oeSQj%TG=e>SWi4g#Nac*BZu)(wMMk<~fK ztwHgVL&Rn}_|WnPt#5pvek`%7?)``LM+dEOtLo4z(=U-f*`n?Yd-4#k%EW*20`~D8D@*2m zmG|C!*2;S%6nSiwZ(M8@ZS>PdnCHGVPv5<0RT<-aMj`Bq=hkxj| zTsdg?!gO59v3Li1XO;XVqS=-=xIZbvc_jHDc<%DEO~!s5j)w-x)eMoNo<`l#Ue;~p z!$0JEoe9tCi_D6~;YT|yUq>zfil0x%_aMK=;qgwcoTEbqg76=nl}|!8(G1>i=Kbwl zqo#U?bkm%3b(^KLerdwUckMVxAallXKnR_u;Rx~Vg!H5yZTg!4%9M;_W04gXQ& zE4lFauAVrukE4!{_eUGwFH+uh$2Z5R<49}nToHuoOnZK7<-z4}S zhQ{pqVjm3VYdiB*${ff>o5S3ayD+c%DRK{y*UB$^0)0aaLrbwrMSG^>cyM zba{F{4~{?!4F^=tq=y?P7JI<<)8Pc9?=_^U6SZJf!w!!Z<_Kl{NAFJHN@g!KpG$TxWd-v=}|j`5JM zzs1ehZ-(#s(SHlKkBj>M!p__Gw~vViR3C?H+sU=?^RBg zUhIq5Ls`W3dhr_{T3kRJ)Jh%--kLX9X{~+=98p}f4}DVCP7q_#9xR7~X?cC{eLb@h zSRLnFwN16}^db6W-a*Fqq1Q?t==nogckg+5)?e@G%SqpJa!z>9p%b*b&`SOnzWmz) z5$e%Ev*?kXMd+8eq2DY7R~dg?KKwd-_#5!yH{ip66d(RpeE5y{@L$D;j~;6L?TdZM z%YQ;F%2_kx#wjibE{a17E?t4kV|N3S0=_rAPQdYJGk*Cf(5I3?;3XIdK67L*a<6cE zII6Xk@-2aT26oDwdGhRFW2S5b;9%#@R<*`&a@K*=*=@Vm!{7uuD{H#0vF#Qs6utA> zVLTB}Ug+RR75E_>wDTu@rml$ims=lMIVgV^KU^OSKNbsE8H2Z z4(}PP&e$_}C+{(LU5mgcj)&qg%$->)O}~fYFZj_D_|ZG@qj%v)@5YbbgCD&YKYA~7 zu2`h`1@C%^NyM3hF6K0o@1|jQn0xXW65DiRF}kPmN%k#&Cw=aG_(i#8b@b5hT@|eH zq2I-v@4A=uHu#}}@Heehkq_y`l=U||%kA|)yRybY6SfUV=wUj2pl`$;z1zR2>!WzLG%6U>o!l=PJ!b+uzDij|Ii+-Q}5hL9~${S$3wW%Fbb~JQQKjIA3FC#=YHti51sqb6@68`cY-V6 zs`-Tud!NQe2lj7q{jKZCNoWK=d{=(qEhkp@7X5zfcjt{0LSyPf$R;a zb^81bS}%O@i>k+PasNHQMmF#cd=3{^mYsPE++PCkIE=i03%>FydtaRjjPLl&xh!cTk? zJ5C2CcYN#*U)#LeKe0jewcDxb*i~dDe+8|^0~6pU)SV8Dk9|V23YaABW{yR3(60LM zt3{FIYv7`AG!y?%Ch-RKaU=1i!NH673=WRpqjmZQr>Y&Cs&jCP>jtMDxG+w+`1GH@ z8^))0@F@WvnxnW%?#smK>;0rDgE$LbNP@S0}ibQ2qpC6Hk{P-PV!qx%n67 z%ck|J)}0*3fk`4TDb`}HPXay{$G&N<%db_{8Z*a=Ijw1Zlw-lh&5JsI(x%^uF8$U8 zO+B1V)zEKU+K76%@t;Dc$TXX$+xbzw$V{8pTog;+b$i|*KBH@9TZ_ZU;uFyKi6sS9 z+Gj2UUN{Cl{^`rCEvvALPJrJh`PZ6T<=N;N-Ou-p>7Ta7TI@cza^=c-x!6Uy?6a2p z|B&}C;8j&;{{KGbfKYA4HVFX%(W)c2RHr#fsEV|s{lkpyXeU5WLZhX~OqD7o z5D+90s z|7M=&pXbSQ_St9ewchov_qN{mUGK`Y!ph^*GtVrg558;tqczvd_gJ&_{-=GxcAjlN z9>{MGo_Tm}4excsZ>lTva-p^TGIFb!r&B|qKhecAU$JH%ho_FggVZUa9t89bpPkqY zjexsFRzFP-^ABwt&iMW4{t=N-@(=8XuCj(FD*sXO(BX+^mRPf|^k=n~LDQE*)1S4n z+D`?B6E6>w?=u1)+pt6g9^Pf774LhB)HnW)D zu35;j8_Smt9olfH%^KR?c1`H;iO7mWN35Z>@A8A;|cl$oqdCXKi=o)ywFh zVEF{?%iVzuX5^Jkhq)!cW9hbDp6P+skFiJnIJ)mR z{G0Xc4W(U$zS5!0(?0SNvayARVnZJBWhb5mCei*r`tD|5@(FT5{*}ImA}9B6%nuKB z=o+ff4YSUU)1=_+68Nn~&Vylmc+T)v>9^dx=+y%TfnHpxik1n=UU zt}6C>?P9-Jne@cxtl4*HjpoZwjQ;*Z>vQ0diZJI<=KMv; zEygVTd&lbK3-9=X;4{(m zkT!B?LuYCqzlMD04(1v8gI&B`_gX$}&7OguNj7i}av>MFp!*NbwC_(~F3WuW#hWKv zv&Yk3x3T|~hvIMTqK{tFc2?puW31Ud_X6A9z_`+ z;g%lgx~JVrzRlX_`T(&17}$40*L#_(eb99~wh`@GKGr^!(DZfC^h{{_Mre8#G<`EP zeK|DU$h(YPG_7mpMrA>VM_88yKSk{)-7B;2bz|2l=O_!jv|YrWJf3lBQ|F(HHoM>> zV{^~sy{m!$KgvrLlhr%!nnJp(4B8Aqo7#&=9AY()8&6t-^ivs!*ZTD1&Zigb%oij`tvW(w02OA(CJ3ie$3%d51HN@Cwl69(06(?^Y zC4czs2;a9sCr1A}ZHlg|c)kPqC0+I;GAsibwlb6-&OnCc@LQ@4?(L@yJ*RPL-J$Ex zV5bd3gAZU`^{)J|o@-!CqHSHTu>Aw(x34oU z@r=R$B*6#`GDa`1B=28h|Bct@VA@8utKCf6O|_|ewAlbZG{AG>lg0clylK9VGv86> zUgLe{a>iT5`bGExH@8_s%$bc(op}I#n}Oc3?SvfowAbWKWheGthAc%7jpq|TM0+3c ziB9sJuH#x~#Okd1ZtN4{Vu=XzW6pMhrWHF|E}S!dSN3->R_Y=eJ0Qo{0ojQX>@Kyx zW?aVW))^4HgowRM{6Wys;MeQK%3ZLW05x+LRpp4e_Z?gWN@B32cL)x^> zoE>m$L5KzoUZJ;ugI9+Ji5umIF9WZpUY>9WF1x{_Y9FWH)0w`Svq9Tte&SBsF_#Xw zcRp>$nX@=^rn(^VPaK|b|t9e5JG-M)3j`g-Vqy}`!+JC}DAmoj*M z0y#7e{R6&-3D-~9G^(7ABfMXOZd47Y4%*Rv89V-G=gfKOSn!+mDeIU*y+^&uZs<>X zNHAQ>8l#7^WOSCi<;!eb#aP!c)-}-HPGD|8AL{)c_GH_zXCJ^5la zPqsfy{>Oo`{#@^mPwdyqFWq*^d}g&C@jQ3TdG0r!d)>~x-|;CLKWu&r(qDFK z#Qc`sy5Do}x6ZwT=H3tk*Dtxo54zRygKjOx4?6r3jalvFwEi&leopHTxE77?;M1;= z7jS;J$GF!#YhUl;I=$U@CfIPcnCB$3hnx5H`K0IG_qo=+r_DWk-T$n)wqeryf=xO9 z|6=avn7CRa*P>h3AMo2w#*r=mual3z*Jt|!u#?^`7@o?)zT|=9_*Ge3{|tX_+edF{d3mhXS~;w> za$DMZvH6gPzd2~<)<;;^L}wvuZ>H^AXdC(U6789s`T%~qZ2WY2_~{Dp(~ZDScL9F7 z0{nE9*d_EWn^bn;?b+6(6Wlw24`HZmQ`ST^$SQO1D*N8a$I46h;{zIsow*-dThFB1 zrYBhI4`tnSVk&LHb0_ZR9o9{HXMk;rO)(-#Rj%7c%h#ymHge3x6dH6g1+qbLSJSg z^ZTpT2k`+ui0tZRk3lziN!hI5jV*)^For!JMUQrt$qp4C*mlv?k}u3x6n(0^@Hn== zkymB!^#e+ty^Kt^bJ86Eh7?%Il(C$)n$Ktxx6jylU=?N0)B<4|8qji~Sqd z>HJy%zk2y8+u^6n9RHf~_g^vjHUsw?YQ3lTKAvqI*nj2la67fL&Glu&!>_v66NZOh zaj(Y?55MeQ7Y`5bbFU{45C7D?E*&2JnJ=`Ib<6Af%ZG*c_>3>$_5B-%g7mk$fS z=w8nq7T)V#7Y_^X=2|g|82q>&TW>%9n*I1|_M?OGEw3xC&kskSXZe?9pX)kh^YPnO z@;H3R0mWYA$JG2qr*9&bCStINn0xTJ?)A*7C~afRUCf1dP2I=$ zNNPTLS}1Ct#@P-$%a#$uaGr$5w=Gm^2@?z=t6el`(;fXtc8ByIeQNN zf#(O6ZAF9F_S`E}E|BxCY##U8^^u&-KGdFd(P9Db%ia@j4chO9LDnnW^YLDQc@HrE ziesnSXC-Fskd@f{G1+HX*k@U0Z)cl1gF5gY`>fKe9kLR8@jHy+*}?3y7qQQ@?w_^q zDhBu=Vu0tj^!=FcKj8lJ$PTU*1Dp{cF83Yq1x$8aEy&tHdk=lA3vyeFjPDD4T?f8q zg0CCF*DUaLGx+)*_^J&h<(KU1BgWV_qNVR?WZ%8uz1cD`eEAeQk*A&9?=Gnx2|pDMARDzTp`v7ahSk2jYu72Zu;3V+^JoU<3xki)YA-iq^E zHNQ9-q)VK)x9?Z(GEcH`ZQdo$x` zVBAkL?(Z<}?=kKlFz)9W_Yv&I)!?fUI(-B@Jw^@v*BLwG98IpG7mlL_K4JxY%KrVO z`JQd;-*&DKIlo8ve9gK39iKnvAN{`0vGb{ikQu&UoW>e#{fT)l*!p8WMenZtoEPW! z>`?M=@eA7d4z~T=JBa-(T2A3%XHLuO`*LkOprhVnKZC=bv)RwHz{Abp0U50vf^EVB zazeULF*)Nmh5xgWXR@b`LlgZvC?6d(#Fhn1JhGq~+Fk%%L8tLWw2dwq5UY5fHni;N zE_llI>-PMAX*;8X9V7%B+pZJ zwBPs>uVuZTbrw6i#<8PcPP3!OpTmxhUkzO2kS*||*N$E&Jv);*2maVN=KN~r939hH z)^A6by(n8h%f!=VN4qg-!)uNmow}zyAmpKJ=v;WjwWa@P?%V6r48ucqT)LP0>AZH$ z#RGY3Qq1P9OB}nI~;w|`a-YvMGe|?JF@z~T`_xIb&TRrym*8TnV_169U_Vw2N z{WkU1{rxue*8Tl9^#P9^jcuH=uMh0+x2X^8@3*NB?DyEzLy*(h)LXqa^$FzZ{<+xH z@Va7=#-`>vMQ?NR!@nip#>iFZ<-|nfDsy=Po7!DV4!!19*5kJzQ?po;XWQ}wJ)Dv! z=(g@^@@B9hddSV_ttD?}5qUF9$eUqJdVFVSsq&A^{4@8R@b9-zB2R$hr>?zTY3BpE zGH-v>o|kV9YOm)QdtEu&Z&cotW41ZqyUh<>vMlbPh(b73@sV)dLe4th369yvy$5julyEa%eG;7X~ zv91nB9!@sBL5|!LmNo3m$xpVNskRPEj+pZ;s(}$4kIoOZ6b~zJd1r4hJg`?^NC`9UqDy2Miv7-yP43?3ana_v%Z0JPDlHdNj}8g8)7R zm+<7hpG*5uY@WBEO;;C2^O(y5a5#d0)^wk8XheCf9?4UQ=dw-@=?aR{4DhGqg4)lFm};L&pGJh0uOzBZV>u7 z1CIW;(Z?s=Cw*L#Mjy`-53>0}af`y%n#bMxb_40fODlIXe$mREgV73f^5cjtOI$j+ z*CSJmybsv)(aRpYHv(z$q*n4I3weS}L6$_}Vfl^rB1@|4r-tWe5F@Z8OE}Y)m_=+6 zyu>?m@0s(Kd=$1kCad~Jag8Y3%IDpSX?1L)L zv!=Sd^lP<&ta$@j>6H)5-1!$T^L|P`G&u4BIngg4t~K&Pa>11o$}@{z#k;@|o$5>O zL5H|?yNQ3;{GZn69;eUvEjIs4uNdCvITzlSwj`VC%^6~x=L+mTwi^`hy4uwLa%IeD z;>|0tqqH|JBf~PWQ$KsKlV1#wc@O(CA;`z1Wv zg^c-aC}?sQ$MNiHo;{M`OYTBGUBt6{iWE=7ufVf=>UC|kUc|NRHu)V4O$BT^>!qzr z%Co}7zXqSbW4~CG`rnGft;+& zwq=!kEUFuniS4Mkl+J=`mJb&DPc8a_t26&@G_-K5(S{kJl3uYvDKf%0`2;T%7VTJo;AmHhnNmc&(gEjh#@;v(#WRmiZ;MK>qU$=J=v@`@-%`8t&%qdS^3N2j*UEPVVPE;ftBKhKtjzYgzChyxKGnp?GBq)_SVO4i<}>GrEBCqcMk|>>XUR`6hCQGw zspa;!D~Vyl+nqO3?*>_O6uONezmCpiY{;TH_#*ANTcGuR_}SR%l26d6)+E}uVar+D zpWOlcD}uh{a_YOmzw5mD-u3XA_|epMqn~SgXb&0ZeP8lHvFK6EkC7GRZw%v_`g;ej zT{v!_&$%?ILfK+;(Ru{E{=U(nLGCL z8G9G!unFh#pJ?o6AFkFQ(1HDqa@+G-Rm;QPqmtSBpTOW`=)Mie1-<_YbE!5?0aFJwFM5miS)~^So%&R> z7&AQ61Fxw4_td8P6Fva>;k)*gmtH%>nq>R{&~ev0)TAPJYdpR_b8nn|ulp);wUAp~ zz%{@Z&G&v^w3FWj&3BdX-UW7km)`OEqUZRm=ejr>tGm6t6r9vnvZj{5ts5FA$BWz= zVn^_f{8{o_Z*+c-ncw~V?r-ge4||G2rL1$O^gxI53HGo)df6(PGLiSpy@}krxxDoH z%wbb|=<6tBy}`%+6WW&??t;Iy?(L<$p6bd{)g*|5`$C^}S7g|V^@{u1Jm;*Zcuw=- zy(hn==Jhkwu{z3JB$$&UtcCWl=Ktct+ox5L*B6Ht*V4A)FX`_K4)q=5clTN}IM}lh zp4-KEBjD;iu$i_8!dv9*UpMO!d}B9_mV8%iF1Pi~?zfv<*zY{nM}Bl5v5B!?;=oK@ z^Vwez9On5zYcJ1xdD&e%xci*D;8E@4>M3C#4t##)f7yD%wG+jks{7D63fh2YyGxj} zlJe4V^x@_IQ3_2=zclBD#^4zfZ*KS#`$EtOUHJCICuToLCA#5z_yCB}D3<*4XyVPx`w93- z_f8%zFFoNK`u^h0=n}=QPdwl6BhcJRW{6gl3yH6Hw)S`&@mZ(7%XRbz)LGzn`O)Se zD^os&eFZHib`GyMhkDOxjhRt=pkAg`g8yoN>O zH7p^o;coI8%7{1INWTu9J;lCw*C+3#vmRu!xsR+fbcRppebX7T)2*%Q`l8b5Yy-BM zXi9OyewxaKrt)l>THw&s&F7%0TNrm0DE+tHn?oTv!jjWs*gNbHsY z$lz+~Rv>GC`JWzHTOBI>SLfV0*Pd!2r_g&IOmvid+19CrtkFxn=fObZIu9m}EwA%n z=0OKl&_g3@is|Q*zifRptaC+1vtN6<=S-Eoj8AI{(UY0u27Ax7a=>P>PE-E3_rCqC z!=ui#I_srExhw3Cu0?lx`x{Gt1I{}Ep8j)D&OfyWo65k&p76op8rZ+!x=e5lddADZ zF$@Z8B(PYuhO0QkWhQHibHTcav3OxsJVCII1=e$oX&&vGF>!{=pkqpdU1NI7*u;aK z-7;|egU!`o<2?Iw197B0z0I5#R9*kc@SJ<*-IGoSvb}v<>ks`(xi-%AFFeMq4AG+uFv<-`-s8l9a^9JTaQeK)@MNH zt~`IxtdIN8uPA%LTD%EAPX#`oiVyo(-}o;nw5~W6<6ilFb%$2~YX!U+s+oI_7gxnE zSO={St6sp!@N>vR?{CrUuWUO;o>z(&M{t(MEL-1v!i8-_h;2(|d#dmGAo}K(51?=6Ir^p%8SU*aou*@sz9D{f z$xiG1Q=_rNs=+Jr`JT}qK<7;Q3w6#sN9Q!68_o%@qjOw%E6_PEyy7MBx-SfYN{^cKizxLMuZTkPmzfcGLZ>Imh{$Ec2OO^NJ(EnFF*GtT`P5)o!IwkL2 z`bQW2`>zMm{I~0nffiCw;dCD z-=i1~by8Q=+;-0cLCe&SU4YMTFL|KK8S1(wbhw89LiRMj0v>KBKfdjn^273#?$Uk5 z6}bQMHTNHWu%_moHRSW=Qkyd%Bl>WbYRA zpRb0^u+^IL@v!P?nd{KU!kKv@u|w9slg)3D5#bVkGqFaV zt>AkBu<_g0;te0?H`B(};`)z=i@DC=nU&Va@N(W6&`#0Ff$i}94EYPb&($9??`*K& zG1t5L-;V;vTTKWtHstd1DClDO*3#k$^Df@ z)50r(F_ZUnR@;*rm*6e>(0k#Hq`}MggR~!A3yAdpo<+5-m&R{^Qv^tE;Z{!BdK@z?!ME=JBF4kZ6AWx zec%4o+f85a@bfF!WA7FWtpBXoNMB!|W#3nmO{1xSRY47`7(VF;KIshs=runO-c9Z5 zSezI)ehS6HpIv*}>8pQ#Lwa6J9epcb)a%FoFJSTN`v=qD5gfMx$42}&)M5|oY^f9+ z&rAzPvpJ*Q1IOBQIGi(n=csSa_!aNF{hf05d$n9E9Q5z^iZ-xLW-q_?eO-ub`w>1| z?^#K?(0FA)@$#}?Do#XQbn>CKM^E`zR;%(+)i|%O0k< zwKZi=fVj;Ot8|yiL-<5^&B|mG@tLGe4->*}{z2y~mMmABbli@y@Tr1oAv%-Td_h-~(UsYm;GF?)}dCsM@TROORwf_9a! zp)qvfw=#7j@aK&Mf1TjyDR6PIe0=A4R{N%19F>71J?jHcZrhdcL<2nG;z@BX;Yhe@ zCl|qe?riuXC-y)!_~`&w+OJWDA1aTvUM97avtE1n&{JEs{C+2KwN7eP={Lm^RKIx( zaH|&63gV86p~+7vf4P?iuHx(^jWb5uTbhAB8W~$2@$hG5ArkV0>J) z?zDG}Gat*~xe~#lH79hyeA#uJ?Y-9@)j4zYUC&qqug0Pr3SIw*_~=)a2f#hyR&;N4 zA#KKJ)9?V#?NXdWI?}oS25q`ycjsSui>80^i9P3LT-{5EVWFS9mslqL+FKP$z5+f( zWB3+l=Vn?5tGM&7wO;L^QV2+nebv(tLFM??)MPKex;^nTG;vT#a3T?y%_=*~0gCiQh|>iPj`rZVzw<9I{1u zO|e|;On8NJ)kmhoCz+UjPwl4Pv*$m$qGwMAoU5@RMYhVhvm1Dao=F zpVHTxDj6#+l zP%cVJmeW2sF*cilo$s5#cPF@39+?-{hIbr%3uj&M$S!y!0*{FHM0aiQNE!QH#3SRN zi$1P5vKK)2WIwkJ!^Vb3vfk`_t_ys2LFZdU=kSPWi|oxuD%;Ob<&rY&c@os2j2{@eEZIrw?DFy5USFZVRw{k-e)(S{ZM zy5~Lf%2)@?E8j0Qd=%Q2!MtW61KQ?XVR*>!KlAF<$-TswI(Re$ z+aLG@{|7l|mOaCDk9Aw2M~hh-`G3;4oxH+Q$ump!LeG$Ekj>oYLFe+jG}ykz!e6G@ zU*yaEJI`ADx&B7-WCpD76yL%wxhn)c*||vm)^9}6Ek%J}_&MLUit}x;e`gnSzU|%* zVXI=l&#RgHRu!@K4cxEd+~hg>R~I#`T%pKakzgPdlaww?t~J5F0?7)=bIJ9{>JYYAKKFg>AqgZt za|JP|zb0P^Iel~iId|BE+B4XV{#Nb4&YjlM4s1l$L!6y4HC)en=u;MF5Ti@Fs9AD5 zdt)vpj^0%b%=D>x5F>)tKh$4()%vC&ZRvwtz;XpAIZ0C7~CGTCLPJJ`_sLR z_|Lnh+B&9&xrwtk@>p3Y`7rs6C#Y@HcKT~;PcYwY?2|l+obK}tNmK)42eL!@Py04B z7ZJYOwJr*j-?()p`Hdg_D!dG?yTG~H>;TUvv3-t17s_cZ$E)muj8NjP?+I6+ETZ4>OdUh^#<3yJlv*`!9Eju&9 zXB@h5+kaW@^Zae-`Ypkahg&RYop?b`P02kuz&C&RzsAqu?G z``T03h1~95fWAbQ9IU$YKmZDAD^ zVEZ8}=*#rs$OpGyax3X8uy_MFcJJxAOVtABB+guEj4u9u$e09s)S=%sCRRnASa7|Ox$1(>Tsqc%%^3Jk%|Bz8E$QVi zmjYCoGBZsog6gWqvzFb^8cV_dg6G$>ur@rd}9+)8-9hdGbJ zQ>w4w%Kqu(ZD!`yOfmZJ_kB&h^m~+k^sZ~0UJo9s$YCv^o-tWE}Jp(>FxsR?w-c1cZfUa7J-PH`<7Ggi_;(N4KjF^M?BOJNWP?`B_u1z?QWxvgP|GY}dfC`wmyuRKHb$4O zg!aSx8}S<^vCqCgmpKT~Zh-H8ebRmg&-p%V^J4>gw+#9V@L3G~$#1dZ^oq41Xx-p> zukBY9Za)o5GIFsM8-oe$696Qa$&jjMI-t(BWH%VugJb-^JGR|Uu9(1jH zz$P5TvhXRfo{mFLvf1#{JgPaH^u5zfsx!A6dwb6?EBQ2gg;e*phqW&L|H-?YeK~uy zF9&{{uKX9?i%z7?%NaL)W->SSoY;J|in$;MBl#3<=^SRAQ@~n(vc+62uPJ&j!W1@a_PU0_>HW;9XW6OL*ShK z5|5YXTHB$$M>((L(M;@4WXIy_VXM~9$7XBBK9jxK9JKAt4(N9kd22f@>#k1h%`WDC z^RNeuy{Tt6qNmL>tbxok*bTBD^^E(x?9Jvmw*A+Z=ZI1 z>Ra>feYYBz>#!?|SQFO)Pvrmf$^T;JxTx)GUZiDj=6s>efEwW7%zyj?ih_<+mC;w0{@6R?w{YE@@EgE z!K>0}knhUR88Bx2O@q>4r4w6VO#Qk4_C5L61K5KNL2F7Ce%i~Bk0pGs+s<4=A0^~p z=z1>KE{xv+M%SOrn*LA1IW-;5|2)gwIB*h!GktDA&Q`K+FCkYk9fq|Z5Qg*9VdywF z44fxa8UQC2vNKX*B_F^qTWzg4gsr`{E+aGm9}7MpEPo)6W5B!}J2xzxVX{>Iga~sk zyc>D*?4@DZVMWiMR{Z1p;=KXCZ?J#=u=Bgc@5ZmBHbya~s?bt*?LG>=96EoxY`a`PktY_7(KBL^%vm5!$;MwLY{EN%gH)r5tgONWtHN2epU4zVJui|56tl2i9 zSGQcW?6FMhqqb=sT*O%x@{!d%HSKn*;ZT;9wKj*(BMuCb&01?Jk0on})%emy_4qBa z&DkybT#ih8@*-sONJoYa8^}w)TK2(sX}+Ny_GY+x=b^D5nCCBm7i@cN*|w49I;ZtK z^C?>|yLBAb`uq@|gX!U04i1!g`n2`neeuJzDYoTSX zjZG4=ZIZ8k=X8_Bxn1lT4#%*8WxsD=&Lgv|r2ISNp|7(zw^8!z$Ugz!EbKYxzDRV< z^YX1eL!D}^IXGj@_@zW+-{Twt*QVBLcc7HC<*|1oS4Q~I| zN&j86t@DZGXUop1KcurrW%CDXE`6bc8vAkV_ZYVOPH=S@`GCFf*-`XtV@Ca0c-#qlng6DsK$+GMxZaA~>vFpyPZqMS`-utQ!PhcH0 zZdrNinH!jk+=1T($df^(*&-gK)cRZgv zs`kzM4|ji^J;Fow@s7VS(bs$^&%fdK$}72kj5Ygp)?4^NcJ$n0?I>f9+C1j?SQUAl z*n+Z6S+lNNY34b%^&8Byi-+#&dfutu;lh8cs(#1Gdqdk^XMJ{*ceUP_NxZ7?o{29s zvaj^cWueEa@I5uq=im5-v|mQ;?c;$V?TeS)|JY^kKD_q3?7<70XND&NCD!a&oGVl3 zADZ~mwy&+f(i-0W5YOpcj_{fA+AIAQ=gbUAgovpegC4bRK6*8_9&5kE0&B+}#vH+? zquQz)#7C^h_=JOCl=K2I0g;7V`#)~uh^AC+pc^I7C!2f5K4SC{A(39Y2|4;i)-_XRf z)V%l-wK~6xFR+e1;dju-3HlbzzFuR6>wLp%Zwk~O8oKFg>(@bBM|}CU$By>Reh7N~ z8g1-1Z4Z6o1Z`H)-gn>Xw+Fv=-v{H#3;#@>bY;L@AF#i7$&>hVWPsb>-+jRTVt-+O zpZI|Nwf%+tee47F*Lsfr_E6jAY%(0RNlV^4un!*RmbRjG5>QbcfmZb{&2v)}uNvM1EoE%r@SyB96F+_+R(U$YJ>cSzAi>qO)F? z?7jLQ@q0OKbl;5Jt&~p=8O!^>LQYB6s&3NF;4&YWy*7e;7PDUKw+~Kxd^;)oz{wwa zaFXnUwEUq)?1I&dsZM!6fkxG|(D{3o*@rfnI`$c@N0y-f>uev;25_R-Zmc1cELVQ? z62{rc_*Vln_d0;tm7|JJ$u`tJb?KmZopg{taU9$28Dg@9#7u>hD_KiGoYf zmUQ43R;1}bC+|ULIUQ@#+~p;XL&x8(shzgdnY&uxJdbv4p2%x`;RV_NxA7&+8?-QB z-fF?~-Ss<;-it17s^4*(zH!>6=CRo~q?TG9a1O4&Q?qbdoipwUj9Ys}yQ-KM z$%I8V&5G9Vc5(0sI6w{<98^JTk3qW{f1@*g<|X0M@*(J3_!9kGrUw)@=%60Vd z5Vf{@v4IlEsIQ^B=W(xap|zOL*}+x5u=IWILUNBLSc_x$<$|B5&WFPbE5r-;a$Y8L zEMD%HJH-D)qrhnRK(O6Qy$@`u1TdQU0X{F?YF=HwsI&ZLO;{rv0vq>LY}}d4f=|?9 zUXI?fJw#&$&LxPQk->|N% z$43Xh9o&zdSMUw^ZpdpF?#ISatotZ6(Pf9LZi7n~)gO>9PLf~Xu^rwwT^t6cf|{$Q z?Z+kz4mo(?Yrfp}BfeZ?cb#`pI_7S;zo30M zG2T(Uzhv|9QHwa+tIwIslg?cJfw`=^#9BO>b?`~gT>9aOp4HY4&iCDMlDaJ?7Fjz6 zo7boBN}Jc!@E!9iy7SKMiAC7-)OZnGry9sP^~fmA^^4$mDD%4r{r(#I{lv1NPrQtN zuSUNYe$>|QkMYdv{I{DP;NR96mxXt$7G8Zu`1`}(d+%B9-OICH9p>G0v*Bm`y3DOf zcVpUmSNZAxef!PEf8hOQf7yN;yT5bqHyitB?>GC$|MvYhXMqZ7PW&R@YBB`+l?W%MX1^c}v(WKCah$uA9uYz2D|>uHQrZ*l@9* z4y5~Q;VajE6TQD@|L0r2_wN4;hEn@KD}c8Gc;B;lu zc;Oq-zyI?`E_`R%|Jh>VLH*|^sJ2wcb=Zll*|V;xJY1ALZ0aid-BKS2KaCG?3qC;Q z*HyC*R5icJ4<(mn&Dv*(zw{BGok2Z#z}K0*8T}- z^VRt^Mbi}9O&?=S(9X;?<{W#!SO9Q{zrR*TUl=<;7u-9N_acbFF%B#NoNN^8&J451RWn-?W))`;3v_a&36Xn`<`$ zJYQf@YskWX_p#QYqE}DeU3^3+Rf}kr!&_ed`v2R0vAe+GVuMqAzu1>toMuCB9=`v# zc1JEbe1Eq6VlBvY?|!jR{_;an?WNjqUbqPVt-0Q1U)Ou~iA7oaZ`A%QD<{nS9axE6 z!XIGv3B~wc!S~JDpT+OXfBtsUa(|N1zXMj}yf8Fr`<3}#!S{u=GI<%Iqx%^DzCq}vm-VK%UR??F z?&p6DG@r@8aw*HaO33C6RJ=7_)WyW{Zlmyh@Uz+CxYh+2OjO08t$k5f3+{%>>r*e$98?A#0rn}Tgmi# zd(v++3_b_KdlT@6fY)M=i(nlBoXgYpR~a}5*fir4bChF&PW=Z%RO*v?diso z7jjPQy9FOk#a801#bd0=Rc9)Ko^$79CF}YQ@>%?!C7%VHN0IF@Wcx7Yu^jnZjLg;E zFy*LNaj-(SJ|G2Z_@b8p@!9ub2kh~s@f0zFkBui*#ICzL~Gl zP)t($2O`M8=vDNAJX9WUm;5Hs5VoPAr8z^asrATdwKb2mWi9s=lTgk!x~ILGob76p zvmI#klmBDl!}XTQ*{&O7E#8GZxBWWk2XYP-Gaf_CxS40>;PY$dnIb;5zln8X0y|^2 zV9~jD9l#=bR(~nF4!E`Uh*$Fb4d|?~%5isma9O}=avITxc3j7fKS-B;b36Wq3*a02 zQrn&2M0#BD(dgyMk@GKJ3*Mg2@Ez>Nj(DaX-{gF2ab|ec`Z~rxf!|isR}a4j@yGY_ zdm%pgapBeL^}J(y)E0p!!TWP)LZ64sXK0&zL)vfqF=Pk2?;!nCU$pKq>>G04GaKRU z?PHbi;oxtl2Y-?QMZfRcp2>R`*W5Pkh=ac)4*pF2K-QIZ%*@7-e1W6rs~bN-**-PlEteR^ z4d5kjIrIWvYQk&Q%N7&f_R;TA@TT7r;7z|TaPTHvvM;K37kdfP`t=WBPq&4phIb)5 z?OdwRwr_A=fa30YUie&THLvf4U$^kNDbsqcgZQfWu~YmFABz56KCj5O`TVULZ9d=S zd+T}ODVl{Y+%*ZmD`#73o}l4Rv2SwA_VH$4T{rFb(3gMN+fBI+4=I0DxnXhMtqxso z_HYS~E}r}8eQ7>Dhu2&mt(Ue;|G?nAH|TS+5%TPL+5SrZynM?uAHC!Pd-LV$&Do4u z;f>mlOCRSgW!#ce%=62sQum(nD9p3;{j?KV6I&-F|VG3o64x4nG! zXVz8B_w!8Mww-5rrUE*sc;gCSzJJ>f&+?4H&s#n-_V1qSnVzu*o+r=#%({w8GYmXW zoc)>CEAG1>T*;h1dah@#zam`CGY_8qnFAFYE;Dmcf0k#=*su6Rcr$q?cc1H->Gm^U zI@dEVj-#)-ZMU7}8F09+;;r+T_t3Um&;HEo6~REbgmKL}`!mqkB|oNk!#HCr%b$zBTvx&OIKS;ZI51~Z^6-~0zuh#}%WrAHXcF(ku z{%N6P@CxKCvi-S7&+m=!np^T;6ZH&pJ3wZ8R`HtI-9G=#EFw@eR{U@1_Qo_FwxLkM?Um z1^iu=>`e#$r-8rlwC_|UuSZ^ACf(BU@65r+ znS(d^F8rV5dQkjpobLnwd4s_Cr||!7?cli4xOAR?;A#JG=+Ro}Ay4w{^mT`goaH>W z_-!H1K$h4cMyCpqCXqo!PZ0MXw>puwEGzN9&DY1uPWKO*WLsDUv2$*%w6wDmv-)@ zhSVVOuo=ex*6%-wu+}g>0On9W0G%b!sj~s#50jS+emct7zk;37MqVy(!{^zpWAd!W z=LR^Fi?w!yHN_~-6HkAqGf+`_A1DZ7(K2h0S_qZ_N5ACE+cl{~4@b)LW%8#s2KYQf= zNbBQc=jfx#(}!w-XV&iy;TN z{;H`nub8{b3;1wm$2kYtD^t&h7vfdrrDLJ}K+V``arD086weYfietaX*V2-T9}Tp_ z2F%?kU?~Ka0DGOCa{|V>-=yi6!(T+dz&Bb?_f)ZGIZ#<@Vm098sAL0qLgcTvD^_(W zcm`**nQ3f5`8T|H-9=k&8`|R-r47LoM0R)Wtth?SGhdt)GGM;SXmcKLW^sl~n-yry zswtjk{9ZR>@6ykw-1*q+%!k_N{@utP9%$_HuL*9+Q}>+;-cNsL)gbTe1CGp^anm|!U-<>DKjf@5Gmbf~ zw9l9L#!F|BiC(%H2aJ{FrFS`eBYrtmX`e^=iaGCf;CYnsTO=3lbBu$`-P7Qp24CDO zAF{Si@cF~zIY(UQad$!!&EP*DzmfLF>%EsQBKDR4sRa32v!l@2meZAob%y6o?CEM~ z>tY9=nzMA=d=lKmZ-MTir%vRs!Rf3}Quyh?rVfImE!focz;v#5ELyf@B(pAqxVL6+7Q2Y(SH^^zl#2^>QwCO)XF;~-< z<$1@@KRgwIe>>4p^1)?U?AgPgD!WAM%<<^T2)ZhY4HbjtWIHQn;jIg0>loWV3a$=5 z4V`yeOSfgiQ=)U1#v431kR9oz@82x+%m;LS0{U^s?dLu3v#+H+t3EU7Yd7y`p8rT~ zANf|ruM>DT06kS>BO5tt;P3Ze|5Q8xkA7`GaVFY%2H1n}s6GF{j!Y7NYW~_BdJ^pE z^wjEwNwP{j3Jl^=_r1aB@SA6O&*f7C-yk|!y70Ld2j@r5kxA*Sl)f_h@xAtm;yNK> z2xi|`A@qXXF-LWh9=a%8E?;51zjohGzA`ZO?>{>Ib~$~z8cny+UTchf2rW; z>&xIjvqkI9C^Y^Ua1oCqf1|&iq3Rc?=Eg((7Ndq*6?;r$_!G;AHLo}Rs%ak!S8&Z9 zI`UNTr6D&X@Sk|4&f6aHJ_1bCHSO@?6sqxXX1Rfeg@5r z0FTHoA2yqBj^EgA|FC3`_eXgAP+YrysFOc^yXpV&JfHGI@l28HhvM4xL&bSMc6DgS z=xG+dvcNA~Ulix^Jgyj>y)Jfa#XQE9$NWMY$M*tjUWo6ZWV(Gi!O&xWeO1}n>FZ{n zckJ-h{cm(SHs0{;(OwhB~j`hPoR(-U~g}0dE8L(rV;z zWk#uB>A2uV&bqm&rQ?D;KJ!~T8qrm?%mqFK#YlYA!HS{3;^?nTY< zNSe5a>;-a3?3{9FQTe&?L_#UJ=w|S$ixiR8>&^H+8p!1tMW=DuREw&xw3wAxVi@0h37Z1M~ro` z*(2|+(>Bl+?K%77iKl{N#Z^rn7klbUg1*M;*Owix-e4VEZUq_}c)yx;bv5g}0DHV* z1)l~-Gh4=tv|2{z`&weP&<(!NEZU5yW+wf|_WHwz*5G>uhG^bRE%6aIa?Ws&^M-Ty z=N|T{?+WVb&jg>dSUb^A1wK<#1K|p52WQbZ>k(%kTRKl(0KS}c<4qnqNb%(bA$|{) zE`u&yew5APt*5Ho8^sMrGv0am{>I8-p_Wg5xExshEuEtREftz?_|*@baoW?q@@jN_ zHE;rNyB|2EFZFwXbx$4Z9<3{s6A@s3SO+EWgUt?b7NyoAZPb#qY1wP5`dfbr{>5XG z?c$+}obf2$>Xj!G(&Bx6b^eyVI%Fv@?q<*9?c_tb>)IY*=r%9}6D^FJ8d7`@HflW| zWF3`V6l%#CU%@$*wbA zZS2k4S5)5e%J>jxT>4wOO9Cxz;HnEaBpc+TCc0T(7;MHBGw!l!kra-`^rxHPHMxE2~|;ye)iY(oZM3k1w5GwYEWWmOfX~=SupVPoIk01ZdY!pMOO^>G+o) zr~~>F@5>*MZ(y)%7AQvR zReq!>cAaebr8ARF_0*${pvR-|gZoaLw(2xjr~AM!ykhWUwT=Rw4t`rTo|roRr3dJ5 zOA-0?8Jx{V+k2Js7@FwuQxAlB`K9Q5-f6&xs~Fn^;g~iqt z+M4b7T89f^m=O@)HRSkvvTwUbwnSDRB?JMc`@x=(oUrxI}EbY6^pH}PNcg?yxrKJpRyBp+Z(J~sHmzneG6d^&Bodms({xc3~LTjt8_}^o2@I9wM^OL{N#ZP$w&ER485er zHpo5N%7ib{dE$2TQHGZv827`kkoU!$7ZX2-E?^F7fo~CGSVG^MD@zZaW{!m;p3xbV zs%_r68Gmouv*=F8K6Y_#*QOl^>tOd(ebOAg*z5S|?)dU(i}9s= z@vIjV2TiRPs1@UlH)PDID8O zHRv#{`{RY+2m47jNxjMK$Y}jF^BqM`%LXWihGZj@BU_ha*Le4ei_R+@TB?w2<@?*p z`|yq(`L`=j^-EVL{{0=vrn&fZq!Tyd`zW4XVsv84z8nW%GiNEjE@8bncM$pMv^zk4 zru9`uU(ul5*KTsQiZ8m#(Z3n}_Us`2Ek0L&(52|{S37NbT<_4KJ3lREZQp-BTol}9 zY282$>yeAB#XZd5=uB(-#n>6y-0Lf1e<3udYt=l=Dc-lf&+?rbcV+YXZoOw^lm5w> z+We+xg3j;R&hJN9JC*SM0-n|0o#2_e$AZ4lqvKguÐq;(Xq(=34byy>+0KXDr*w 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

y` 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

_4x48SGaTO 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

W`|&=(-SAs@h0bl5LJ5Af?}lt<7>~ zv+sxL?nmcWh-sGS9{*yZ*lwhckZ_+!CoDElk8Q;TDOJudxAZpV;4MHzJlHoZ*#&9%ⅆazHx`r&ty!HcK zL&juYyHD3DOitn!r*=r>339h={~3EBnMc6S-Qm0D_Rr)YdAU1`m0VTk?C0)4ZPGLVGOZ*e_AmCps5; zuOWwz^Kf+bRgf`Mxts%C#q*1qD{Ut5i6_7T;b3f?DN1%`bpgl=6&VRtpW+LCY;8 zm4kb^^2Jgc`M#_2^2pM{OSOSJF-gb{%|aZwov< z^F8Ii_wWQ*C_J1#*azaBQwR^QfQQSUQ{y;CRL4`#>3%cM3Aco64!OXBiS@x` z>@o24sducqcU^0CWNxbQz5(=U-``>PxcB)x%2+emY~`}YSudCMlK-Xz`6v5v8t@iQ zOZQg}iS|#V(|P>ox5^fXBO83XF51if` z3xI`WjiDQ8uOm43cRAp2IXLXHZe`$b<~_}M8*|>BG3Q?Vq_0eWWcK+;L-Bjtwycjp zZLOoN_i{dx;sG$ne*W(02*cCw?Oh-69-ec;{m2{XD=PQ{`<|@v9|`8!{M+kf?-%sT zzfF%Oe{CE&xDx{=mY=Q}fp3|$5dQ@}S~s27nS|fU$M)cx>BgcG=i&I*z`r|@owLXl zZG_Ipl^I^EeOr=23s`IAeQLeaH6MVdpU(fNR+Ag|0M8#M9{doW_b}$iX#1!9SA-+6 zgumvpIqhD(#4D`%+2n}Rr{{xRUG+ZsVB^RE`CyaCmt6d?qLZE)U`b!`yNv(U^u_rr zsqlFGufjca)s4(=#!P2hQ;`#SXwJaT>p9;qE1eeG|Jg7)tzZ>rEi19H^bB;r+OHk; zIJ9egWc2+GznQLO`OOp~mMv@iXN*z)v$eJ4RWN>+^%4G$V6TMY0rC6kyP9ijdFOr) z_k#sCubt)H=EVRBIOt2;NXU6Ur)ted!q#@gcK{R;lK5B>47r}6{s z^-X~YvE|i@EpPI4oSnB>KKr;EiX2#MeS-<|uy&ro^Z1c>j(5ywRlXCcCnv4$Q=HW@ z-feG^PU(z_%)}QYe>=W!h8B+DU#4U*g2F)L+hV z?rmb6@-1{SzYXLapi>arvA;DRWW?%S;1Y76bQjMmFS{E!A8@)J%@5=npJnegV6STj zJfG!L@>v>~=eLyubHCk<(9iBB_CwR2__59!*>w>z1E1QiC(28aH|DxxZVAR&Y5fp~ zi$|Ur!H>Ch54pzcc-C)EZ78oYUMEiaA=-v+=nc<`1?9_&A7_@{@D{tKyZq55)-Nl+Z6X1`uIKXw zK5O`Vj&8zxJPv#ZLEdnWM_*fiLTYR+CJI7{Wj)ThD&9u>vs;{jqdKX zDcPE24r`dp&ok!YzZ-+sVXLKzFY;odz&l591Yd#k!@^s|x0Qn%Lw6Q_wf#(S<&oA# ztNm~!*39)y;B*j~jE*3BiKVFnNxNnpv3t~?-c{TzhR&_Iix!BvX~nJ^HZpX@sZ=Fm>LM>~H@ zzbE9+CprF1y8nCN053jl;z`)U+LNDZg0Ey=tDF#dJ^LEZy^?*cXhP%=*Tf4({t#W! zqmxXS%Wvx2qAz@*PgkD&H{{dqe)ygK!i}`~p8bVETc73j556=0mWB?LA1a@T^zb?8 zLDIvegBv{yT?PHCbVhARwbzVKuNyjijQoS$Ud@pM=mN4QBjZ!e~pb}UnReHkHx20 zM4mFf-U9ZgPN0@SVW6M~TffiOi*6AmcV2n=R$uv0z-cG+Y^w&b`kiCWpo=pz0ZUa3V=h?)2d^Y$4c*p?# zW%7_;$>z&rOoNHvX4%_+EgyLlG-YtAzRy?iAGG&g`G?6LB-Zfuu)g|Y#;-mTdWPo0 z;AZE==&;yAUHG;{$KOg3GiR-0z&Q@hNya_~Z`p|LyNUf?-SCwI@D*tPGS&Gw$U2Ya z?A50YPsy*=nZM#G{yoc6@~h{8r%!u4MbC7>Hy)tP9(YQdv8M;OjpE#b?7q9;Bfb54 z{q;;F@8&=GhsFnOW)C5FBHQPK^ov};9`=&ULH@ITAwk+=-NCV?rmF~sqCNOv862){4yEufDDoc-Mi@9ILIP(2&va7aH_%$k^dyXs2Z zh8z`+=$iPOY+vCt-$Xrn_781<<(On>CF&0|hc z*45@(gxg*&a_-HgpT6tgX0I4$Lvvm4Rx;0d%qz}#H8;hlZf9FNdio`5Z}lK* zjc_f&_XWu27Vy3WTE&hREUA;@$#~@dN<*u;)xP}q@7-_Yf3Bg`l^OEClJ>3=jUtP5 zPRRwF86f-C?=K0B`u!~eCkvqm=^icMgJOp(oz6$Q@e^sD<~RN5xB5^{S2uI$DrB9I zF~?}zZ&!5!&h>Id)TZO@t9nxTd)~gPK*qkRnDj$`UlnjD`Ckhs7r*jkXu`^8&*z&* ze}mzJ!{GP$U@Nf&qj~T>_%yzi)Rv6cgTtTi-z^x_-@mK9D$!9+>ehB*0Hav1CD*0lpGj8zh7r)ZT|c+XV8iwC3~4vmTQx-(s+>_VsjQ2Y8yK z&9!e1Z8h-4$HjV@IK*0FdXn4AqVhWwww*y6%RXiEw&8W2j4y1fH+kK`o;~1g-51~$ z_(JNwfbZiX_OGfY5ABcPdO1GFF5j!XeNOU(}mtlo>b|J<8n#|-{+=Ys&?C7hISNZl+N5evAp!aU7T-RQC@oJ%JNdh z-MWH9$e|kw@3V4Z*Y9nvq4KP|sa=#uJ8_;-tq$=XJ8sp8$#47Z3(9{hD}}~J1@6_F z2HF;Vm^y91sEGL&BRlN6c{IV?m0LCsT+-T$M}3y>qCKP2j9?GvEcP5iGszK7N_nJR z;J@f+_2)eL83E6p7(JHr{ak=do|($vg6bYm7xC{MH~g)@@V7%A zf73IuDS=e{1?F><`LKrFuR+t3@C%?PB@<5S8v1+jIqG`A&!fQlCF*WRC*k{4NnP9F*nJf6#{Tk;1dgJr^e(^asHPb0GxzVRE<{!ZuPk}eS?7Z~oZvv+n-e`U^ zM*V)-eI{Ch#iFWm`_Itp=nn3xHmxEv0`kNiA)(iul>9F$? zWcTb>!sHqShV@*d@AUP`EJyhp=u`QTCFGbzk30CXoD{arUR|pZubyRVAW0{hzh&7P z_WrWR`7&abp&plZj4z2;_&LbbxzLhw$71`P)bRxG*Ep@mOA5><`V_ui^6Lr%Dfq|U za@r@~ntf_E<`n1o_)6AgXE3t-K5TgGi~u|>xnJj}+g!8;WOn>GIVgHQUbs^DA~nL}J4NsQ~jc=aJ)!iUF@;;1wGM4$6PV zd$B6!*_^}qxptmq_{`OJ68u`ryp#CNlF+{4y%&Rj;QkQiv;X@im=AQEgbzrr*xb=U zZP5>a%TuU*#u_Ik1xm|+p?tFyz_1g1HvVC7T6H=)WHZCR#7ozPoS#I2dnfCTeBU!2 zy{(vk*Wk&Z$e+o#lMX!wJ5D$udoM~miZ|Kw0E4DIjd>yON5%VScOm<9mM{mkt9snX z%!dgGEa;pzQ&yoYaPNVyy-;!U$ z>NR<9S-*y!i$9MJaHW&NnK>!?oSQmI4QY)hh8`7vo_&H^WBSziG_K4x4?_RvwOU=L znlU{9Jr9Pyh6H*Zy)!V_(6jkX-}*g-ex>V>`+3QsS6E;Ai$T->C0=q8eI9y6dBC-I ze=*m2co05@PwWUqt_irQPllBfH>77B{z&n8t7Dwf_N~~_#tvkX4`r}&XfYL zcC+SBvHpeRj@@>Fa*YF}n%|*GWu^F!M+RO_Z~J_JTt(!%Q=8$_NHY)or)A)sXh^h_ zNk={$@dtxPfz+fEJZIZg4w2_8@!Fkug6HeOUEzeW?N}fDtfeL3gmB8lwq8TG0Vg&X zIS@2w)e0vv?>}Z_LD0y84W2B}UK`mRTAQ1|1;72w_qyQuyO2ZOz~=z^&_VQ}1B~|| z^V68FVl11%g?!ei)j9C!gh0N*1@oIe^}E&M?Oi*a)YSp>cY_NBZBxL7>^{48+P-4I zHgF35pcjyX=;P>krH|83<~-w!KaY71G&kKV;yrBONs8NCAza@>EtHa8{zOjSsnn|= z&W~?A#`V|(tZyO|nb7F*A@rjt153V9xA4e=9C={~34w+l@_(Jq|4A!(aTiBkM+B$y>OzqR*hf^2j&uY1#t`V^Mb_mdV0J$`(kBhS98&!%@f}?x-EJ_?|!Q%=|?td7jxO|*{#Cm-fPgXY*+cm#n1CzO<$rKPReVIGFRd5 z)uOFy`QA+~f!DU)Uycs!^TOAmsey3FzyBil2f`Q2+lRK@OrG40{A=x%$9V(a#eXt= zj}Ls7apWYI4e^VktZk-UCq4h`w0ScAM`UZid?n>WeTA5C8DlCRhE2)%ehIux zKRf&UoL`_HotJQG4smI6^w;K`+B1*+`LCBa5jKaVlrQCE{Q36zd+Bf80R6dtLw`r= zZM}zs#An_fc3SU#zH~J)f?&HuXulHXUEa!c#eCc{6@A z>dglh(D&4=I1g>uIFHTyRZg$Txt0DqhxwofM(go?LC1#Ao7_J9i?afeC0*2`3cvBQ zIBisrhcxXrbH2&86%64*+K1pnLBRr^^@ujizJGU&y|E!$OGM>$? zezIfvng--T1MjZ&-c_u6trM=UKE;_`>4f*VP9z(Xpuk>{yTLXf4v58BSp+m=jn~6&SFZphTFVPCt@=A+8YOjp;j9>Qz z?P*Q@_>|s{@xFZg1C2*x(U>ev+wnxnPtA-|{mpHV@8Iiie{&m7>EG2xk;&O%-yt;} ziz_EaZbW|+PyGIWz-vzgzdYbQ7@C2%&HYRtzsx@Yf4Sc9v%Y!^;%EN(f)7Ar+5GZ6 z+I+A4@<>J4Jr34cgMUcday#BpqI;ueKl_-_iAo(msYaXN7iuE(46N~5ocR?*vD zg9o59jdO{;P19LNoL4&%{r(KmsAOS&+oyj_Y;go~5MCiVOT3297=3Ob{As(l7j3!x zj0bMtx9jQFS4ATM=DnP~Xd9Q@wokw7psxn@qOJW@V5!R)HkFKL;+{9r1%T&;jyX#< z4;?lA3ukF9xe`;A`^7uy&CXK%xU=OWIlw!C0D5GYv60V-9lf_|^?A0I_8jaj=;Bx& z=a^k6+a|9^xslQ>mG={y$h>{MXcjc`M{=nrg5Nw_gPtM(mELpEd#*Ykn+E*?n%*<^ z&4xP^vxDAO$$zTvI(JDr=uY%f=3Tm-F*ngy4P!25-rE^-jNfWgF>1j}ee0c%(MFu# zvYV@j!<0bZsx7R&1kwfGre6OT@Y3v?yb*YR&BD8i=LNHQyz`gLXW-@0Tlj|`JNK1F z)@hGgm3+MR{DQ}iAM^G;I`q$ePv9Y2&)^+-D;>ePoNqDM^u0f`-MO?0Uu9maou{bl zm-p?h@kHOA%?IB@yW+!&LC8OnWS!@ojcjfX_sg}}@NdvSiSw+BFJ5_paqj;z|BXiF z5ZSTXI$VCu;>>Y(DsSGoBGL>lZU7hk=LPG`=c2Uvl>&S+j{tM>t&)$)Ccy{9e*^E$ z$`|WNWbDBM)btBhbuL|{> z>leMb28?fKP(-y5W8iJ<9zMa{SR{}{`#20gKC;1J?4bfcK0sQP23fr#zCF=8>@T zkc^9Qf6QiRXaoA{gV6LA`6P0Bo&UvmhnULI{zwq z9qW2Autl$^c{6b2&`asr>w&wEJBcM#lPliJn^cV)5k0=inGn5vppOtUr_-E4M z)5rcgjV~m(m6#3nO+r0)bf;%4enf1@oJpZLrPd-Je{Nxb_y&6O(@U02o?7QDt!G|S z-wG^M&3yfia&PK6_DorgbDte2@f&KQd*kfTKHM8}BeAS=e%8K+aT=fFXm{%+z}ea^ z*hhR9{`j^^yo#8@2zbgU=yNo9f-JsuR-Y`6Q;;h$0zGpSYcSePT}o`u*Y|HX`&awU zbC6A(r~t>N;sYMWJ0!Xg)aT8j=bGFuefRxv|#YLK4AEH=J#Hh4P&0bOt3mN6IRSw zu*yEqQtv6&=>mfs@T8dfE5)_!tq2CrD{}&?0{E{xf^&c8cz=TLkqVoC_H>2xk^bj{ zMd5YRm`4&`I-NOm0_Pd5k8;DWWR1F6gR4r)N)K#zO0Q;22d{KEcMTpzyPsfuhh`E_ zVH{=bGe5@sD}`gf|9GU5GYgYfT7N#e`;jhm{+-V9HRA1y;Dx)2CKB&ozUJ6n7JlZv z+EXIfxLXA`^DfU4$4~X!SC1~U8(l{Gu%*jvM3>owE~DS9mEBj5E>jDyQQOm48`|FD zjGRn;Qs{FgaAj?3{XUT0dTs{Kt*5_c`ZHtsPdkzgPt%UMMxBcQx}2`f=b8^o${Bh2MB& zEjh2nz>zk;nb&p)XDj5HS{fVjtxhO77SqOBomEIbJl7sRbo;)AceK4KyQ-FV&(wYP z*T;BP_w&xXZQsf-ZsvYowd|t}oGG`qD6llfv)acjT)F%8RHI;74%`(xj}4Yy#NIpU zHA{v@I^pSxSqK-Rz$3PuI%w#CKK#vd*KmG4`zM&=mhy&+(XGC-RcoNp4oPJn6$6b5Xa0M+j_?Xo6^kV`9>UpMnRaDw-r=K6WG`w7~ZNV{`s z_xi}~Yt*Ltni|MAwE@gJQ*R)^I%=IICrm$FYeR-H{=?l%!hiSpO+W4c{c!DzhrIbT zO@4p+nKnQ_TssfB2;8=G|9<%2-H+{ZKiF~aR|x~Vz1_)CC*7CUsQYZr z$z&f@Ej1$4hv0{tdB+;v5%t!HIuU;_j`{rzgbRnDKZ6V4|HPr@a(gy2 z-|RmB$LrJY&)9AB@fTv|r|5lC5B**2mU_=;$2(gXml+SbMV#?8F&^TesRVSRy%yS6 zy^hbJe@r(nV?SFA{Va;E)+t(Gypqit?>g+QjT^`_#olT%_Ew;031g3AYw^q;_Z6XN2Rv-QMe$q5TgLlM;@%fb+`3dR#P#E)gq1r!aVz+cOv& zWRK_snv{N0&a=X=h4k4{3ylQB=Q(^|3y${i?DvH`;D+zFTk7Elx>f31+;jM|`m3$C zH^JBlqk8@GCg)*}liH|#|I`-Th0h0D@3Q1v@Qv&7>wp!!N6)ElvTA}`+a;&%j#rHx zXYC`wRCt1p6`Kn`%De|mwBNQvdTofaaOB4csz$i=<2+MH{XqCp41N&5j&-ArByFT? z*y~=yUU&3o`6=SS)$lxM*m;!aft~g`9BA`u-c<~c&o}}eIg0n7o%1qa6CXxD(7f!Z zZ2Q2{lZDsyXDgo3mv5Jz2^`2(9!(xNIT2g@J=O0={c4?mCSQ!%TMay~ME}As*)D!? z4{-)#XOlPU_nQQ7I-$qhPuabxyTN(sFpBkcgY&i87sTFRi-WmsLkHm}0=^4)egU*A zxuNGp14-}?JbP9)blnJN_TY!e!{phF9L_E8HHY)jfAMlS>1RIulxOr4CqHKXcXNfWHG1R{-2YzFy#S6dX6I$ZF8Bd3)**j^>G@i@HZ!??mkpDPlfbp&;w*>#s z>T+m9xfRIK%X;yWc-Aubr8zSR{FDz_{RZ(HRn?v!5w4buP%WU*k@-WY{R`f5zul$w z<}F8#HU?Oq;#$t@0KcPG!lU8y*v+d|;}g5Nx9(KnW=`}V8odnd8qAaPpxdX{^& zP$jc_uMzuIJ=Eo1?Dt9Xmg9S{zrab!u07yue2>k`aJ9#ezK>xyxDBS} zukA2<+9pJ%-D6`FUtaCis;bYRYw|8d%agA4d?MsnQets5{ub?(_ zX!E_sC(M2l;$d$O8{m8g=9(5Q^RG1tuqMSF#O*G z0KR`EzDIH~SHEAmqS_nf(qRk^*sN#&;O{gpkV z1ew#XjzA9hmH>a=QNuykz_)kQK80r~m+m5PO+5J+@}M7n?X*6lKi%cwk@wrzr8fSP z#i4=nasS$WqzYuY#o<2u`6}(54E`KM$IRT1Bsw)ZDsUCw&#dozBlReH`Gs%`T#5qY z>$zTM_y~49cqP5Y&>*l`-}?@6KzNh(`ol{OJHP)>q--!U7+g$vHGEe(UM<9+M{9$L zpAI9(c`#!dX65JS1+T#_*U2|RzffNDuc19FFTMSlCCXp!?;lIAgbr5mzt--B79EHm z&q0PNCjeL;uHxMJ1bi@lrIV^?BL2m>^9lTh@zLNIzwu8;j)7a+zi9IEufX3tob`6) zYf`8o2h#z&MBkOVf#dg_@l&ZOX> z=a5k$^hxo><@B?BG__QV*e~!2>3GbY_FQPLtOy&1`~vbAR=;0+OpJayim|YsGibXD z`a%z#B)cy1W!3FXf#Jr`c`*ZTI~c?w>XUp$iB=X}G94#2a5ysuC3gmviE6ByTd zjBBn}8*W0tZU4lN@7#CZoe#b`H89BJuPPr)d3BOK`jma;_o23Q?dhO1=^$-&(-!%6 zJv)?F?d_#}>vwjZ31Cr$kGhiQ6canqoYf|J`p6UA*ZdCv55@3|E|@N8t(XQb>MV|X zoObhlINuxjeigWJ4Y+bGYdMQ}qp78g96(PUMQsc9aRA=k0j!*+iz5f1`zY%!+^RsH zm!Xej`#|r4-^*4*x5MX-Zr7X>*&OiB_2B!LayWYs{b#*wA@t~S<{O7!lzqib$)0;M zN)GJXdF)>ThqU(0q2;MbP;lMq>Jo8A29qGTzdz9*0p!x&rb}dOOLJWE4_fEWXQ7s(ISReJc*w~tZFhu9JLY~JUZWOD#K&p|$!7#ese zxm7EDb~7~%6?e~Qql-3F~!q3WZ@kGr%2^}}U(-Z@d&r5of&F>DkUC#M0 z%xjW)23lX{KLd_ypY%t$UkR_^KDNc=cicaZ`>y=s-WV9?7H7#>y*0!$$KyX^;1QjS ze7bdO_L%)=Xy>r=;_yf@vCR`bW7=`y4Zt<~naqBL@3Qq3zmm@Sf553|9`hRvEhCSY z`trCUXzS}=t9VtoU;a$GnRR#wdAuJzm0EHE;3WH6GP%5ncEB0zq=)6>D2C5PrJr*a zN81}m8_SqWv3n-DNhZd(y5CtG=wCU+{$yL^AS<>1@=|hsV&H`Qc3my#X=&AHz-H<= zI}*Q+am-;Z@GX-E04~KDlk9r=;e<=khxi0<6jwKUJzj81h1ZfL+JE24Go82Y8`889lR%^Lx|OR!G+nudf;2 zx*WT%h4U0TzlQIX@pOH|z+~H%;GA^oZuIZ&Tj--^fa~>KUuo?*_WG{w#-2k4m*#8l z0eXkiF(Fc?TGaTBeEnJ^U*#`QRR>{SfCRav)9W#T%WJJHeSf=5q3;887F_Tz2YnY1XWubr`&$ zmyVHV%59R2Fm?*_Tfp-hpdDRn(j14J1ulPQYrLv2ujZebqu+-A-g})hbK9F=d`aZs z^KR+w$Rf@HIy|9xVnq6Y|Gm&D=$UtsGrQ<)XWOs1|B1kO^p8P3b?7|8qkYtwGWIMv zaavo!bS3**v_5|Oep~+gduXS+?wrUoeBN1nZsgZ|{;2M}$Zz=kO>6@E(>wRvTf3u- z$A72L8Qk0Vru=_=-@m7Cf1HKvfAQz-4*AFT-A>;=Yzm!Idi&ln^dH~%8v54S`}4i& z|HFL0O`kpv6gooGZl3-*M^(Ex{NnD6e^44&v@qJN$LGgR#2`O&B@eiEu zifn?{zi<313jh2l<4?k`r;+y~87W!W_$++B=2T?gY5b3nUvstbYp&ux^HI&u?=fch z_gU5S+1vzn^ zAL8jVSx4H``igX=y|kf#_iqT7#)NC&rfl+h{BiThH{QwmRT*0-Xn3-3 zADFpTSX)ARDL(ELdB^REi?NGDhuBBTffFtC(&up|nRg)8;t{Sp6)I*Sb_QEsV*2P6-t)2Iu(c0a7X6r)m z8M`FadH=ug`*U0$!RN@<&gZ%Q5ZBjYQ^3C#fwL{};_U~VrNDl6=N_)_X72&{_RXJl zW^W=U*B#8;)BR@6J>8Cb_bw-ImG&hB$S;V(&t!jy*UZzJJxJV#yo93Pn7aCtqBFsj zRu$cFJd@2N=$_gw#@%)zJkyjXe^6|yek6&lp!qk6vIPb=WeP^q1k#|=Y zZ@BEQzT3ch6tf=kflv!;_KLIJ*4xIGwRRPr-g;o%sMZy%N7qh=IQw<{{w)8ea__X( zuAN**UUjX)e|Q)606a)B@cpbuCAl#RnA<|;xCov!m9^e{HG4hSKe3DdaruE&UBTQv zyI7lDL-Ov>S(<{Kav+TFBfsLjghcS$TXnWY6>zDV{Go`>-cTGpIMPYgYmYuLBW$tu z26&D3c;yjGGWK{Bdz{~&{xou8u9NDf56($3_2I-rp-J8yZqAfaE`;)fgbV+A9Dm|m zlb>U4CECZ9ZD%jdrO4LaIuBE5w{w<#Csspy7iw=lu_wOoVr>r4o^r6&ma(~LM|D~( zFUW68^1Pv?51^+qXT?rqbATUkT0g{X-Ec-(Ykb(~*5v53Ti3IerZ(vdZYs9lO+AC| zqMWpK=(zaC+Lv>t**TnPMy^dY{;Sy`@>`d4Zj^r4fg2(1)!|Gt@MU&_@hl*gkYpd` zmw~^}uknSL8fm&;c?EUhw61(#22a1aqz+AtdDAb8=H5InRmdIMQC!c*1?^4zH};C?Oep!~9ArQxxT!pu ziHt>`#rP}|3C6B|Xm1+yG8TTJcm{E{JuTp6i*xJU)5#Z+AH(Qj^iQ5Z`(oCwg7uRx z;~D0X*>Ajx^{a4GA17Zx;||HE1Frbv-^lwbc)yE2flFUbH^19y3*TWX_BHZsncs3~ zQe*65jB}yQW%&KIuQDOr#`h@M8-hM`cH0{2RVIXc@Gb3u*BqmayOZbR=x-aCTOMb( zbuk|1vRCI+JjGaUV=OwmEy&qztOIfFytYO=r@f*pv(M9;Q-S70`G?MtRD ze2VSMX{(d5<5%dL7r*Oi&s)R2nQN%C(?qYK)q!W%-WfQunLXX&i=KW_N_~_`iR0kd zP3SGaV!=(}(gyMy$@N`&8@Txd`+OQ|&(wL~sVCs8vKbbz&JEZNS{w0_5dJIqGBuB5 z@DTY2u{q$utP^b)t_~cj1FrLV_i^6+JfGOaz4fs5Oy$kIUloY_M0>;dU4#B4`WD|- z9)Q&aEg!b|B9hVluXh+fU{PfAYeyUBW$FrBM*94DOK;7w6TJI<-i`IWyQO&S=)d}I zh`8{y@x(BQw}Gc-O%wP@=R_QUB9(Ys+Q;LpuckRo)e?ot%2XA8s`C9@dDwR zK5KbT{zbnpwYi9TfDPyn4V--eHk6{ zw8$8(E$|q_7<0~mW`Scxhtq4*BKy&Wsn-vz3gOv;ae!xqkMmZecj|seK_md2G+ub| zUg^$bGhii}Xkr{y(elz}Y{~eIzz@7&O|}$Q68psuFTH$sF*W|Zynew{xkKu2Aov=+ zK{@Nd6rQ-ZiahwLCG#dP2nC)MtuCx(&pqePHLtE;6XN=EuD5V~1=qK8{fX5LYpVEd z=$bv#%3D@nozk`VtYCbJYHNGK!?!q$Q}KeKIa?=8-F z4_sG#z!~Vh#ct|%yk}x`^f@1#q|L*Q^P$Ku$i*}5jYUQjfrs$6OrEz;cnCj~j0+cO zAB^&=!fi8vvv`5AiJLBnOc(xoYvF=ddfv)!p1+avSIzTw|4zjds>zhown6++yqq;3 zD%k+P*BT7wdm*-7G!Hp27+e{KOdy_7HpAMnemvupOnVkTZsz%X(Q%I1N245pJ=8eK zkfE0Ek9JevMTQo>>9j5bm;5se;2W0~0t4WHtk8HF4`VkxFlcQ=e_R^Vo74No^gqnU z<~!K<%I#;#zUUucDf!Cu(h}9XWUeJ&371wtzu20k&F~!G){uTEUelp`TkKVAwAID< z8Y~~S{)>0JSJmW1T97B((Mgq`zUb_-)+J-z)&rY{w|1>PwRI6PpsUeIb*=q0*FMGn zV6G2o?P}yYG}8r+bR!e9_1y~eT;(cX5C8l=$xsH5ScBVbOpTEx0j@!pF{uWGLCVK8~v_lJULk{PH0az{|)(}Rle<%91^R6!UOmXy>6&`+TDq0f_8D?^ERBZS0?_za zbg230P@U-8)A@}~XY?8AbQ_@y=}}!%uy@d&jh%pwwB-9w+7&KyLfT^eO4z}Mx48ooP>JDlc4V?W06iA=UvMuY_1k|=bq)r zPuUgZ&6C#@im;w`f18urgUn%%hs~YwdHW=M1R94+Ow!Dk`07jGn|Ytu`Fe119c}n< zsT*LN%NVC*fa39X4|}Mso$+ctHP*~A>bI*J4dC4^_y!kN1|mj>C%**TEzLug+Zsjg z*5m9W-fZfX<@M$O`S)x+ue@sH{p`);p59O0A=R&|q`ljfBLzMGKla`PKCY|0`yW|$ zY%2?aq-+WJ%8s#|M6x8WlA~Cokzy;>h9t*-l{8_WB2Viq3!f0({Zv+k8hi%&Wiko3y9zdx{ng>g)wK7fJW7EGpqy-_bkx?NiLb zEnt+^Sd}C66m4Ajs^`9N_vL$zzK7r4{n|Z8@8VKU4j`v(%bhO8*U*FwB-jnLr z^O7swYvH`?yLk`PJ^WTO@;Kwg8Dr*r?N8;Mul*_VaCE-*r<}apGwY#ggYW43I9p9; zYoB6V+%cIk9_x4W+ucXi|7Q5`%K5%kk==8%?|Jghi_V7=W)_+ceYc(G-lX|JN1xPr z;>)Jz;*6&q<^R#o{r3}VGjVqG3ws|j^7&4oKTjdYPT$0_dqL}AAa7pVk=YiomqxNgc zbL5=+3GPpVTSeR5v(L{vya#;$8@|7v?}cZ=HN{20^F44MOt_VE(69xcz3`Rz?aZsN zDGZjN7mvJL`J7Se`?@0w$RlwFc!M+Q-ss8&?VA0?PMhx8nrGm#0kCO7k3N;C{s8rVgZh66hP!903!jA*AEAEt>{0hj zb$zGt5MD?(FK3+ofpeCnE7g{FT-Qyv9Du4*xOx z&hCey$@oUtB{T9Db+1tVA~eWv`4jp*4$l~SHw9e*)^D)a8nF8mi_v$b*q_RiQGS!w zuqOiO=^o~JE3(zjCwVYBt4pyK`5VeJ7QT)CEoXNr&zQIcG#WiEd^55WaQ3)yoqz8U zc-s3uIPdSll>Ne)d*x4Ci!;yMWn+NkT>i|H4Yq8*30umQXII{qv*zHHxA7#j<1frX zb|$*m&tlf}iVv@49ZCG8zlkJ1F7v*(%eSV9aqu%X0gcT{*8J%Ed93+;tireUJl6cK zyVAGjI&zX8E%U9?yY^WBSc4tG_;O#2LUNNon4xdo$p}?4G zzwAe#;V$Hr81<2t>-`?u*L4~`crW!n4Q^d2-w->6^|Prl&rEupx9Vc**O1YxMl}Me`o(;k?r8AHL_q_xm^li|53f@{eB2^G`W;vSIUy!g%!i~e)bs`!TXGm1|nPwLxy{MbZbn{1)?(GS@y|AyW1 zP|-zCUr_Jsz8h@2$H6vz|4`8d2HTXgCT!Ea_i;A(`{*C%{~yI3T%&#~)^#Da)?w<^ zn0$&))%o}}zV4FCr)@2L_fVd#rF*T^c_HJph~J7Ae*#|?Ad@^6C~I-mU8 z4qnP;nM5D`7<=m})<`end}Gb8&MN-{XO1-nT7Ne43vOij4B9ofPp#a2^vBp>I-mR= zaBhhCWR7nA3BJf(VC2)#^EC8a=6TPI&TZFk732D$!Pwk)%(&l+2j4{b)REuELiMN)(=YnB zmpX_88aqwCZawvAe0GE7Z+~@REI0emkc}C8({zt9@a|2!Q||?Ve)*b9^X5Tug%J3o zxmJ9C?%R}Cp!}P8haZ)1$h_oZuYQZIQFEW8Q;z#4z8Lb&F?v)w<~Z%^`nbavd)2<- zgW|*UXrDOAe#LwqX3eeipcC_Pu%4WWns-v~xUec-Kea{g#w`8QSkQ;-`v3gQky!_p~FUHse^J_)YN*Zm~Fk?;Bw zaQ&X53!fh1Y=XmJwfx;HS+COfqW^u=p}K_M!Z4NPo9WZ74W?+eJbEP`eVkGb>ySimu76=B&=Ic&JXr#4{>_U;SBr@>^5WjE__YlQ#t!44}qB{ zY4fYjm_|)(V!_}^XH0MRU~ZH-RZK$PO^SbH*J3XcFI&5q@l~5o(Z<0nZk8OL`xR_g z?#p)d|DKI^tksykg6U9o#;SXZ3 zYZWJ~r|v)D{A#W37SY~%+H>}GA8Dv3e*(L)l;3Et=Q#Onib;>t?l^Qm%vy5kvAG%L zi;WYHz(;tdVQj9>$2WVx#!Rl)<(YNlar&{bOLt#lVwJ{EVx5iW?6cb7oq5EDC0BDS z*6+DKz6st%r+f^b`(EcAT$9*;cE0L)hd=)K*#oEe-N6z5zC#`hG{HO5?{{4}9ak~F z%5i(0<^S%Uxi?qqL7Ka-Y?z+A4>-PxkN@2HBQAumQuzGY^Wppa_``ds@1@2clt0;w z&E?H+H1Xs=BCh-z#b@nU0erCE|s9h zpEL4!iSjJpc(~b}Q}*qD%;SH)Sib53#vy+`U;P`*=d%HOy}*|F-1AS2Z;M<7oH^Ay ztF8d|_OU1V^xrBz~s!NH1*=e>_TV$&r2R_uE6i-~nQf(Cf_o^j^RD4}djC{~nsg=Yk)* zS&IaRq_gUU{qA1B$?3L#{mk@UKVc+Ta-#H4D#<;3$Ah1G_PGPkg9}Z?;DGW}piyI> z&*%R>-=6lI>)^=z!`DvB{QL9xHUyrnX|KZAdkp{i_PfG>=_n~=-y(m+4gDc zAG{rGzSGE~{T>v_qx;=Qj6B-!K+%~N(&57933y)d+yHf*hmACO31b6K$WN*0f!4M3 z58p!ZQJs&2-D2m>OAeV2*3S)QONUHAYZH0OyIDWdGs@{5N8ZPgGYfm5_UPFIri>l1 z;S%g-`lbFo&)B&!>G4I3L~??65a-1q9t?VdTf zmpOPTc>5W~B40i$sOLAq+i#e&tES)2YR>(=hxsM{xZwPPd%yGiGIr9rr-i$k>&?EY zFLIW#Fidg13C2qMS&Nz1P<>fObE-9_$tB1Gd||K_8i|Y59AYi4{^Ew3-SAw`#d8eZ zXZh~=^`7|yC&t`4VV&bxanBD95~q_tIK~{3H-5s0Ej0%Jyp(6penjIl?}4-Mq@j^q zZml;@U>8h&1btw5mHZ2^<6~doogc~@qfbQ_@J>MS-bXkSlFy>ID_6G&JDD7(3tl?y zqFJ^^KCSBGIDIud;q>$QcfflE?t6LfVa^vGo6oc7=bc|w?7Uy%BI)Eyr`H2MP&7Ku z{>1>lZ{)d?&~oYn{?Ugn@ZGwc{JMuO_T7q~-93p9vH_d_UBoQFx1)P6^&gdQum}D4 zbH?T)p7YTDY9qY7#P{8--sJo5u+B?-`RGafhY-01jO)>B!4G%tXyZiImoK*Cwhxix z$Jlo7@f96a&gMg}_1(G$n*~g`@}2v9Q*Y9}xx`(dPxRia-!ccn3hd7sokJkr+ir4$ zmYaP;%YXFC1HD`~_}F{s@ZtpHEW4B(7jsTg12*XdJSd&AUHW6w(#*Y_)j1)arEcxl z{^h`>67kAI5fY_XI4~ zJ12a_@0GuH>f`r(Sh1vuzrW|h_xa|06I#Bvm^0U|;GGeAhlzMXXACUj%%*YL6z%>? zi;hn6-Pk3*(Q(ckk)5zed~iuU*Y!ttJ9+@q&;0jN@aVnBa6TTDQ0H%gM+*(F<@yJ* z)y3;J)`Ji5zZ(-zu+L{AKkLawFB?pT#^{izVTlf&1 zZxQBQA9oVhB9C`)f_c7&c|OTJH~8k7d2YbokMJIl``|sz@y9r;Lj5<`u#$N$X6|JZ zVIPb!?`D3S@o?oxxMwhsxR}4pMJ?0 z=JV4I>imuP$($E8t>2_;6kA#hznHv?U!Ofte?Ds_^t+gNsPdHW)VU%d);jvN&T-xY z$ITfI>p2flaZBP*;JftDUVe86Sn@C!GQLscjKBMR>@CJb^%y%*&tNMalC8)%lgDK2 zM7vJ=TnN`r+)R#_p2^yY@Qduk)_?WbiSUhl6?kOYP81J07?b$78Fu0`rQs!+3CA?Yc)+z2i36T6dn5N2WlsFdFAvyjSI(LZeF#0qJAggE`5M2O;C=vq)Q>-UA3C(b z?4Oh$u5}*eOp){SjXayv(M35j>E4@3c^|vZD!^X6RIzED!!XX?4s^re=f3f)1G2#6pXI=VbJ7-9~jeJbmGsN-M-p2XbYU?bRhMqII(x)g-fK|cm#)lw&vo2G~ zIS{4JS@5pC9d_blbBPb0!Y2Nh@8lOBCErdl$Lu|9Y~7Q;tM`Rn_uSc4#y?<9ZUge= z)}`O`{cA*r^3SMyO6QoIgtk48uYzA$T3-VFcPXxa6}AfWzd{(x`%8Vh$>D|nKl63w7uncta-(0D z`Qa1noi)C}!i?zZrCm24bxskvbo5R6c{&RhUvWzB#+bw29_3Y<7!2R{LjN3MKpK-C zmA6yociSjG@#*I{rvV;H8h>+YY$szRyyUsXuN8kSU|o88eOlu&*~9qqyyBFTlgRB& z@N7G6gGpmcJnx#~OmOKV&d1Mu>#^q!9MgNqS+72bEwgBWvu?eCaR@m0>#Swu$e43a z^p##(Z|IXQFqrCmryOGUOfB#I+&!Gmnz$pY6R&`F$nPWCtK+_x4Bu}aI!)`MPcRN&#*h4(@gwJD-y83K z_e0}H&NDGSy%$e@q~0w*0p2P`Q%_w_B5NnXc=>IAev_@6C%{7O^;W*3?Q3uz8u*}? zpgF?~I*ne2)_Q!!y~qUbEP?kH9bWfWU>w+@^<-Z$z9n^8_>i9_Ml0D?tZ+N_nz6mX z=eNO|>htr=S3|MQC-!*T{)qdXt8=~InL5De!56FJb|(DScD-Vb_W0ZLH;1}!0%sKm@nYuhYOl(NkxV?Qu|Yomku#JH zk3qZiyKEjK54$h3ecAQM!6C4UdDOl~*{PC;CG=DFu54RdF6tjld>(&Sd=LLCPHt?; zjf@*SFI&>YRq3m@pX0PC+4+&;YkAN4c}|#B=(zy=Ug*Bp1}%Yq$L2Hd;LFxLe0s6? z=T>+oUmku?^U~$v#p>Tsp#HD?hV?g-Bk$dxA-!De;g>tH5%OiJ?;Nspy9Y=6JhCL) zcoKe|N4=+*Z}NuM!b3;Lm-vqA-Hy%TALej;3AU|b=J1AW!6&}N8XNbwGq(fG?ILu) zu>-*P5Of_!_nS2~$rkJRT2GVhki7>zIcsdv{qUM(?_ziCif!M{%sKIHVuwd3(N8BY z5wE`S@Ov0fGylZCCtibHkFGg+N&VCj4=?!m&()j9itTsM82kL#+?>7W?sw<>JvrP# zWVToNj^LB`_b&dvJ8!;pF6Uh0*Yn8XI>lKh?3wcXe>vSrM9CfG3c`_Jt?3RjblrZZyQ=f;uQ zJ=i|@I3^$do$Pm3tYY78>>cG1G3JZRGvt}mHzODB*z=t^BNY6SjpL&a$Le3OWheU^ z<#cG@!Q9+u=hM&g=_7NdIIrgH4ep#Fv$87`=gprlcRZJqbL?G@QasTeE9D1jKa}u8 zF*rLmKR>%S@D#lCQTlAKm9;q574f%ys}Iq4@bA+5==+2p{-M9wd=y7FdT~L#C%S*S z&gQj$^y*vUVczwuxnuqs+921Y{y~d2irA;-Q!J7_vkkIUzrG<8VBh04Q@_mauRO(^ ziw3O?o<@f~%3SguPxknocX$!|Bo1Q}3da?P+YO&+@8n|q!-h@kGlzJ0(1jUtd$8Y6 z!7KOh`?3GvJbq#cvhhqm0@E_2e*Cr5kMDS7#2xR2ray1U#sa|rbOz(K3%*SuTf|=^ z=j8wHzn}NK9fBVAOzz*ud*1fF*2V?aVNU2BZ?--DM)U57y{whwzvImhPuBAM>-m(; zG)CX0E9#j~LpN)0k}+@D;DF0dl7FW!!hiA7x1Bz@{aH>Phxa^b#hNCT%&Ga$=uhw> z-{+PxH%s|6>$a4657gAhu~P=HeP6CKqQ{w!(_qFEV25m<2dMuHSVCU$TICi03vobq zEJep@)fgxf#zsW$fyPnn2N<_e}ms??v&gIXuLB zw+DE4xbL~Y8k+k3zrFC8Kl)zzFTV7%PZb^e+1=#o;d}9Z?~=pppZNS8X0DC$>HJ;5uap!CzdqSO!DrtLUft6Z}>oUst)nmJl-#UKQc8BANEP!nZ2NB zp2-U{*XR&kKk4|t1H=gB*V_5j3l6{IEz@J+wkugt+qKM36MQFM^I(?eY+12+Zdz^( zhUqm+Z!5flU;l;cMdfEu7A4l z1RIUAfGsu)2pG5v<^%S{}CxYv;e_L&_b*CSM4m*Kl9^eB73?Q=jF zht(hDyM5d1z&1Ol<38nuaE-hiZms9cQ=`M_zs_`}&ySy`&tT6u-|O1_{z1+YH|LK) zgBfeuz@|G2zpq{j#^1kdQD&aghGH&DxEJEyDsLMB=9Rg-M|II&ae=y;=->S}o}W`! zfO{eCmCmT^jtB34vAXI@X4b{Mi}LFtCx4W>0<4vsgRT?zKmL39b)5)t?^om^xZ|Wa z$OJKyJ~Li#J9i(giu}4bH?Sh}WL{nOp*Opz>kzv59CYo!e}7$mUHe1a`+i*D==<*IA8d0clvK3zvb-1|&^UBo_LuezYGP#+C{ z{T=Uz_t0hdi+g{TSJz_3X+Cu=IrlssxqsiaIdz#na_`-Fbv01e&pE?**0FD?$**gF zhguJgaq60tuCEuMi+iEGx|D12ZR!f0yN~R7n!#TuLfq@ftLr}K`tmvGT1srv z4^Nc-!v>QpCf+vqL0$>>r-bv8bu)hariQxR?6zF|%Jk0KOcO9V~pa)@Q(Flb0s!GQa2E<(@Y7s14_Qk$bUWOD|tA zvyEf3v@uqo4ek|t+8CgXQr`cne!Nq5@@p$+VzF-)EVlBnm}~XtDdk<5HG|chr$)XA zHu1gx#F;ph@fY^*8>`IhrT?bvt1{($`8D4itIT5kBRto@wd(&K_1hRV-@M0B*#72I zVEqO=He&Gp9$&`&&G(2|>wS>tkjE4E@2kw=`z7Y=jLOUxX~)DW6`L`-Wj;AYU?O$@ zwdw>nRA)ZzSD-KUZF@xy_E6_DA?_VAbvp5$ygL8V(8;-21$2qQjpqvJCGP#9>ICym z3@NY94^U?SxhPa8`ib*6i3xkKD8N1P0y3k9&UX~7^Bpfn=bu&;f<$ zjH*ts;GA?WSe8?#p_6; zjen)iS@r9sxjel@vd6uzQm0)P@4a5n8B^rCG}ON$^G)hgjL$nx`@m|oR|IX?5cb*| z*Po@1SF7Lnfu`S|rQe^O+3(N)mi_*S={Ismz1e=_N2-m3)ESyhmbbkshxg2Qa_=s8 zEDO~6-rsU8Z#8w^UXacms#E9toeLYmEXLI6zpQ=Dy=~N)H$VFu$RX>czJl|^xa7K+h7lMW@T^*GDzJIQKySN zUcC4y^KymsJ~%Ujx4Cz}-RBc}zr3*LKK9Htj4jK2V!F>qTwj;9sMRNFPxUB&;ePG= zw_cZ_4fF0mjo~EU@25^|#}f^Fr?vFE-8NWL5a!A*I$vW%TtZ{>2>JC~jeB(-G53<5HkA8i`hkp&&Q_OIoiiq;F79nFRM+lhnZDWT+Fqb8 z?zI-G>)^6X*KBniEKnEsY75nMY+0s$wz`fLsEd2c3e`2XEK@#PUAqg^#l1@l)rD-o zezv;m3)IEEqC$09WtsW2)#WQt7x(^cy^&|bQ(2y`LazVN)5gD(*B11~*EacPwsEZX+-;22=C;AL+DLoa_$S)fGu@994PSrV z%rbEJ~n)DO(sAa_2_rsr8ODNck#EMKd^xuAlm3A@1SPUSADmR5%-;g&8PJt zbnlVUKf6@6am}BMgQct+8J*ojjxRJ%eA(z5aD8EB9X#sJuX)a+vyJ}y;D)R|6o$L^ z-Uv-52Y@;aHdB|@AXWDg>U3>B^i2-mT_Jr_`KlZ_TEe{$_ZF&7`Gf`PyofrFtM9g- zdBi<4_I|J*pODyKZN42zY_K--bJqRkM;EGd3O(bA;pEqO98^S&tY zm?u7TBE)b0KiY7=pX9fn;@ZWMSHZjDE%C0wlCQpErhL@TB7@uWWRPpg#|J%aOp!Ml zblQNvBc%sd&y)HCe zcDdHG#hzye&h_lUymq3Msmbe(<1GI7>v9k6>A-Z)r*H@NqRr;TN_QR?&~C_S^SY$k6UTX$~W7+W`!H@NqJ zr;Ur$51qN}>at@cGuzlbOB)9Zw86doo;Ln3?}5~N%G3t^I8yqy*UxOjHwzwE1@M4- zJ3VduGi}`K*cPUZ8&}S3WA`j=94ycV_kQ2g#&OyR&d=h(iPDaWnQhe1(#G}zZE&y2 z)5c-i@K5(+f9W%Cn%Ty&x>@GDuE3nvWv=$Lkx?5CU+qCxm7ch8W*fV&J$D-iubtTj z_b&0Yv5PkJ?n%wLU%dOSwKLl|HcK001=`@=^W=B9a^9mh&bQmR4;|28y=JDI@6N6f z9C3YE+4;sUKA5vcaH4^0$@#dajq7Nm)H@$1IXfH7%#m~7EViCiz}Dm5*F9~N(?-zS z#z)uBY-9HynY;MsL#&F{ydxYNND?v`8d+Ry${)K z9PzOy@>j}FyW|cROHPzNQ*7GUW6nr3cJYx0pWO!fXutGPDRCp{Sxuam^{H!R%ewmL zNCVfJkGIo?$qVr0IqzRFb>RHx?6cK;{HOR+F@HTi_7{^MHRs~`nkD=-_=?TGsYjH1 zcxio2DSw>%J19F^`2n({^~v)!JWsBJy`Qduv*pRZt69RI>U>yrlEbV#W?lPr%~>pb z&lxRq1|P;o=li4VH$J+7>jL$UQvYc7w>($MU!mVR{mG%{5f448!_OW|mmX7R9zBLW zXwkkow@u|K&*4w!9v7g`wC9dj182tN^q>8c-uC>u_V(YVC)=K(kG)Szv}X!>&79OT ze*C#(Z04kqIpJ>uzZrLY8|8#3S8cZWnQc6>^W~wh(0I&&HgX0F&Otsu{Aai4<_Eo- zarNd0ErF-!@~3^DrHpYgeY%3bd*H!)nRBi=Z@PYJ9(iSp`Q!f6+u=p=wemTYm#dtc zOTTFL#u&e`P>zlAn7&+r%{af_B-XPjQJEYGUXGU(AVRe z`}7{@)B4MIKKtS{eaJ)8k32NF^ss6Doa6Ok?SJMaw7*EcBn-{z8+FI-Spj zj89#`-#q%em_N;jWWmHam51fb$B{4mQhD=h6qC}tDP|fr^Eb!5Q%$+7z5Gd5^X1}P z^S9YU>pysC_0s$9y!_Pt{dFGCXf zRH6LUXdb_+za#A5IZMtc`!|kS?6aCjpUwj(PaQ9M?lgJsr;hvin2SN9&n#TaLu9hF1D5T7$e#%%yeg9P{&yJbo6vCv+A%IkEY4 zjwPXMCv@EoUF71E_kHwd_c-rFKW^vBKF^*=?>Ii<&~`G9wj$2?cWKi*HC+DI{(f&h zv*@XWUo7}#4!AVI9(}_vJ}{|H)>`oi=Xf0b(0B0L-7`?&mob}1PWbNT z-Cg)o6CNJ<@{eZck>h!Nd#}^C@49^p6`66r*TW-vH=E?an?r8;1W$}92A^OIRxk#PPpiw5jD^wZOBm;6jPq5DGiMQ;WFN;V#!s^L z1i70}lGA^NSf=Fu)tb{K)VYj0ucA)QDquf{#-88T^Lx%3XCBTF=aT$;$2jPj_YaXMZ|DbhsyddpFf|0rh;=I z%!N0ffHz+bz8v@Pr7*&#M)XYUxc^T6JY(i7mp_lpeetm=#Froc3kNG_<4g9boQ5Z# zfG5R|3C(RGek33HG`#o(y!d^0-VfO_SNf}IZ2f^VrY^qzF8sICr9Y4VnqLO~bLnd? zfd3ufLA`A+j84XVqc;A(J`+Tb8he2?f{7pcGM5lrnxO;Y^`p;z%hdtZ*>{@OV^aD4 z&+9V&JRMN`ue0lb26D%}`mMz2yX4(#C+zWHf%Jphzjqt^ZTh?`@%DcBX*ciWEW%%t zk0Tu?{iSna9+!7RR~Ky_~$PHOQhpMjD0_252l;}Q=W44 z+&0a3AzYE33)S;XJkS3AalS_)^i|E{rnv=w~w&N=X*;m?osk_(Own>i7RX$C5 zh8P^{a93p>jpd%->h8llc?eq!{r06RZQOD9&uK5_$wT!u@+ZBv)gBKHdG|j)P)I*B zmeK>iDXkyz&??$K;Ls-j#7j%5XFN|k<0-$&zLu`5 z$B!pR!szM$c#QQ8v*+{;S^Zou`{KD*X7=RS7mNSd(ZkN3*osGU?TKG3x8*_px*21~ zr_9%NS^5h26CI3iJ^s7mctzL~*c4O6#Cr6;hetRU&Kpa(D6jn=IPJ?<^Um=e56_?B zJGcEa#-5ozPfg?VjQG>GXH44@;D_4RSt+t;wNYG(Q5(4bUvybYcxhd;>KZtxehX zm>rKg=+f-)!6)-*PB}FHt4p)P2Y!#uQz$<9o6!45h3P%vt1r#?Ss(J!o64hicOJc) z{tM_06{hzY-`&U^>%CrjH|5dWok#EG{{{4}EkN&f+2_w($$RZ{$M^C)ddu?YeWuLD zg_p_?`S$rUV8WPmQhvM%KK);R{>8_pkPZG>7fbif5@*Wu=ii}uEM#~8H~8~=UHbFv z?JW+k{ciSluFvxf@0)#D;zb@k^kWZZ|Bs0mu_l!-dq?PdA^ut7j=#e{vT1&?Z0f*I zT+Bb@#B*Mlj_3TF(`Q#d{Vx7ivD<#${C^)BWE;J#^Z&p2Go|yI&J^-jWG}r4HW%Wb z5B%v%hymo`&+lt)|A*jD$fZAz|5pDe@Sl8+f@7>$+sm-NlJ9f;Pr)M_A9Aty$Skos zFQ5JDPhJ9l5n~c=ef>@6;49)u|B{bq9vfEnjBM_g1JAzW(woOm_lmavDm;UqPEXqL z&XMW@$4fmy?OjJEZY97@a%v6!>J>`rG0jl zJAbp`S)P6Ni!08-cmECk;jccF8!J?tSeW}Q(fBg+-^H`oB+B!0^I={No%*mxr@A?I z|5NO>g$33NFP?3^&@(oLbn1KDIh>6LrBmTUHy1{8++P#FMGzsAJC0^r}d*^FJqj2x1D_vzGKzqy<=t#AYj{B7kcOtE#G%&c{OLQRmU>yhL|hKxad1ZQw77 ze-i)SZ{A(zt__g$a3A+sYvDdI-xc<{fV*b!!|XGx8LZ{I^}MT7YX<-D#*F`b;;l7kc*fIaJ|Est zfDg0lpOa2J%EJfl`lm~e-Tz$vbNjCx@$5Ob4)4W0v}oMdhw|TDqFE{a&-1Zdf zwpjn#tMkQ<<({$Z<@gX@PN&uCUkS9C`5Q5wCBCIArDFHyw{FJv3=Nezw@g zg)Be(uH%t+hO~D)&iAyPKOQF>I=uMw+l+^e54rrRd>B9W1p8;Et^iZR%-t2&kju>; zQXhMEw9dMnJv&S4eN%5>kHKQ!oXiKw33)x`aq?OYns>-7$^7!$V1sAh={tEwXK~MU z_V{R@x$+C{#TNn53~5#;x~X@lQi`cB%=UZC6ftr?@^Hdbm*h8c@& zKFp-UpB}yE=EJz}lX<|L!Fov!CXX!ieLg^+b^dnn2>IoQa^F|>9`efM-;C)!VVvDO z!S{!Lp!_!WSWq7L`(GY7xt6gykF$Q)lMA@Ae(GzVtDpKyFh+U9@8t6VFjjf3d-?pR zgR`f&A3;8Zy-$$yqO-s6|89YCac>Z_){P_(J+%w0{+kT?BXzI-QMN?1CFPb`imiO)biaG4}O-=qg zJn~a=Tb@RrKEWFNdDsxh#^uP`*dTi?J@R%R^SkJ6z6Tb)t%$!l4=j*;!Z+?Sf6qB= zV}rai%z5U?V*k{_`ak_%bMoUqTk!UUA6amzZ>kJASk9~Z&9oQ2}!Oz?>(;MJ$GF@DPVaF6I&*1H<8*sVX-{%IK^yM`D<7c^gOyybpv|v%+Pq0^Ud(wSPXFdrO!u#d zdpi5+3UKKZ_;RP^n`)v@_k;K31RcH0ZR2v^RJHJUjQOUGSJOs?c!6gFoNcf79BJ;| zetx=$cYK84SL{ENi-x|tl|0$89{8Ac<}h{*wBznK-Ag+ssaHBexUV+EXTK&t0KVPt z^YQMdt(t$@0&ioSnQ@XmMZ!4YTRzR>J$dJIaeaom)K_=TG^Q!W${BV72*9)A> z06zv8>l4ts(Koe0pI!7Nz@9Do`t!-+96l{__|(N;^S(KL^Sasil<)tM?!($2V`dyK63&d<+T8~&KGpkciWocbX%RB4^H3+bcaSl1pL3s4-1b$ow59XB4so_> zh&|Wn#hJRsY3n%k%n@F2eHZPx&-^v_&z`;L0gbOkUqA7P>vOy!GrkkNyB(iT`5Hf7 z%K43)qkX72yPxdH_ntrS5WjcFfxez-_~Zioi#r~4$6}H*Wo;j(-0Vx9!FSLjKAH#L z&2{M0`zvmSMz;?3f$1#z6AeH9J@Bsn!EaON72wi7##%g^&wmrliFjPRZ2HV~Gxbf- zN52I&T_Iiu$IU*w4VkCt!+41Ig?@)|neY3&=7ae*@8J09-#&NXF1L?19Y-3%)r`SA zvVA-ZJ;#~v5cBPwgMAJzP0+_2dbnPi*T2js|Kq@M{3Cm>qWk_18&}Vsz3>4qP2Ys3 zAT+scvL9e-EQyT+_J_tw&7J_Tf4|RqLuMj0JzrP+?en?s*>G{&`0TlD&d7&+4f^mh z@?`K+-8hu?WyyXhv1a=1?87qe!Z^JMU9&{?7#INdEP7#PJmie=m#6Jv`EAPWoWO?j z>AfA`kN@$R_SqzL7K1-#p6lUluD?UxhU~ICF84h%qPh$oohV)K>dXZEbJ6|3 zJg}X;-L74xdHO1H*^9nxIJQc;b$Yjlc{j@h<&e(0xA>#J8tFjz@=~3v zFMcs&e()6;udSRjj*Qhqi*m>6A>=Aup_iHm_ z;8YRrRp~#FW2ZBn@G144hNZ~q{eQPU^CUEhW=eeKgIqbCbmVv=RT-+ zY;rag&xOH`efx?tO`M;t=ibkA&NC;T;Ovkmu|>`>Hcx-#SL(qsF6ea8p(`QG;a(xSQVoioq(-S`v#ap3IP^U3GDfWHeL_&NCa5zjl9 z+mLhFQ75@CTXOIBd7swT*nbBWsop)b9mLlYJ@3@{vz(J}@7LA4Xm-E?I`ek&>c%(YH;{{t&&IppIeU8doEquw5cdM`w{W>0|IX)IlDU=NqkFUG zKkR|up8|(UIvn}gjjzY`S@I5o=In@9XY^j9NpxEnI)l(Dn?U)quR6>7fU_7m=kQbO z>!)~!NzL`_t$q(6-~cjw^XikvwZCEHPZ%^$)pc$$6ncabyw=;if)`=cj)x1Q!a1>F}e=sh8)nVSIl!S};I zr;F!3_9*=GsIUJ0`+VoUS9XPB-Ry&&I*pApAHQGklR@vXe*l}C{z(_=eXpM4KIQ~tK6{5?J-_F9 z$|auiMV|7jJmpt=%CGm7-{>hX_LSe`DPQR+S9r?Rp7I(`xzCfql&|xYulJPO zJmpSL`36tDm(loOuv4o~?uPx&35@;g1{yFBIhc*=k1DZk%S z{*b5qVNdxlJmvd5<&SyFhdt#_d&&=b%75i4f5}t+id|k_Ss!R=?b<#toV2d8uC`WK z^;U;C*7h9c7D`Tg%Iqmt1X?Ut6(a#fr+x${QXuw0jk<4YUP9fxbXIkZc)h8E%QUq*~Igq1H%itS#I&)D~~w+`grwwIkFK z?uc~sbwoSj9m%flu29!t*Kk+7`>oxP?)VK=H&oxS@`lwnta(fHtwV1ed24d<^2N1_ zOSWyKy`F^G#nj? z?ifzS>SDyWe+nZAmba4E9Gt{qb-t8Ht7aqOrczNPo!cAF-k_ z{+}9*j1C7!Vv(J(=uo`(mXT21NGg$xq>{;jRA?k!S(y%xq!U9sqQOT#pZxa!N&fVq zzqU&27^b>9>%xU4RxoK#s=e z=&#r{JhUQ`3RUh}x~r;kUFAyVq1GCy^AE&_{i%2~Fc2JW^mqFkgUNx$U@Fp-3ie-@ zh!1aU-x$~!k3}}clPLy!l+li~H2JS-Q5Gh zX!qzyWE&$;vT(TWW@x<`mIw|F_479pOvb8ugULv5G#2iSrjot!@Mv#5J{021P%v4= zUp0R#`CG-`YW~)Q27<9LbcG|qa5x$qia=jqbSTmXjm%22FC7c@-xeJifX;zCPcPJVgWbSSn4zDhXrH6*%Bazrhd}QSa&nIXj z5syPyVlWwr3?>JHRs2=+H=n;E{^syk%->x8=J9u4au^~~!Bi@dj-+WU9gFVT5loEk zij^Z5-nc<{hNZrBkRlHx#d^GI<*zS9rnBrG4YXpBrP7R*cnU?SL}@Rj#RBi ztk$m6bYFSpmG!kF!PLMtJbSG_JQN&8z@kG9!Qu39LogK_Y)B78!-1h-GT9jKPXwC+ zh+b175l>tfPshR=6AZ?t?(U8in+Jv?iI!k08f%FT_oiFoOdYZp8fZ%=2h#2RFjIRX zIvQ-30CkjCSFhrq)oVJ+SFWS9y1J?}80(L8MuJ1bos3kdYm>jcs;fJa814=ZCZgTJ z;pmV!$iFRJU0E&uDT6oSJA;WtaI`lVwql`y;dnSS6i-GFv}ib#2(7FRNBSa(zTi+Y z(icn*rNkb|zM*(9)gOw+`uiiPo#FmuC>R?MGl@|U)6__n{z*n*hHCw@QvW2Qv1m#X zUbTjQR#x-RnpMLCk>JR1JeC?52}1Ko5K$i)hIhm_$%J}D?K`YwXdn_!4n-m($)RW{ zl8lE2lgV^A-k;pby;NjZYDH=&S!<;d!I0sVb?H=J`MMp!p>$+tBASX=4X6mqx6u!D8-kYqmhN4MvR{6Cci{US8 zI2r?aVzgdojg(&tMvo*SJA^Mmz}iZuqC;h{sPt2m@xI!M#Z&wXRaOOU2Zt)+v1mND zvPLj{O}U299}3YQe~f-5{E1+1Gz3_ulc|PaG8(cP62XDtXu#hVXle-r6VYG{j6voC z@nHrr5RVT=BZ2rxDjI6qH4+J>u8SvzgDLPm930))?%(Qv%f|N3_V(_L@zg*x1l;$h zhc*QnwAiLdZz8gD)9A=RB(^yi=D0&%e9U?ki!8lv5nQ4k}B zR-on%e`8})V@D#`KOF3g+(NBgflW<~R#$gt6S^Ui*bzx|r4sN98iL<EUV?GKSWrCLdZYer>)INGDdRVy%ByPL61fefdDG3kqbX3Zudgp$V)5U? zpc%1XC>7li(Fih*V&QPej7B(^*aAB`m9dnv@tshG-}i1qqVet6FIZ_o~+D-<8$+ zcg?DFEKTpMr90}D?zq}2qxsl!t4uOz*&oY6M5Fo)vtMiTdD04x(lC5I6zmr>N8r$~ z1s4u-1ylD|VqpwJ2230bSHahORP&Ln1KCO}$rx9+#fN*Nk)>9kV~bT**5Pk!4%A(3 z#DtGqDh-#5{)(!a)zXL66{{;&Rjjl>oU1kV)mr;wo&8Z$vv!SO6&Ysgt=d{o7`6OrV`_Qs}$EgLr?3aNqMrY3)5Q)d?fl8(jW&8^lJ zhP=7m+KFUfA*E45n}e}fFdS@ctS-j}!cH*xV4T3W5dA& zmQ%bpl4ws32V+srYa-#3TyeQ=x%$3?LEbA~oomkwm;t61W3XWY>tM!>E{* z)#hW(s=jz46zLE3hYY++T;VfYYK^+V!i~mg5W@taPmc(gW#_@T7WU)_IspsNXqZ|n zVUIN*v@?)M$6^vlS`QA@ChhT*NTMCY$MH1ghZ!YFAI1cv$KpF>l?qy~SZ)#-2B+`!PrkfDb7NPIZn7jH;|e_RIu&-h>@Vyqi~ z+gk$hSRd*+#V5m&js(&`e{*A50KgyOi^jGtx-=ZY0xE~CtMEV~!w5rTdSob$cr>AQ z;+U9Cy9B$D1inc^vbHf2PxM32#<;CUHl}Yu7*f%V>BMk)a3E^zr>cr7^I2U{xhaY+ zLX}(}+z}L=n`MV_y*W4<9O!9@wm^L_(c^bM8&GW2hKJL*`YO@Y8XO3s#-eTQJx!gR z?VWsfbhh94791Z#Z~IVBU?4ge?dWW7?`-aVONZFHIhN`e09$)Hf^SBkR9`3k6I0_M zbz{eOscyjppDP_f=hH~~N=MXJ8d+!d5|YSZe{V3hGbmMwa>S5}_S_JSq;RnkMq;D* zPr?2HiKUa`?KWT>q7nEOhv!ryr2q$)I2lMUqJi zw+x&O4I-Il{^S@)Lxj^BZ9JA;Bk=@$W=uhJFRe$D7-j>}TMR?W>RZ7)MElAyJ3<3| z8WYYDPH7uc&k!cL{)@%SLqS@M#e0B&U85r*`~FCLXb8*>B`WRfM3wt#-$+#1HxgCV z=8FW1QvW5YRym)mozFGS=UV4;o%2~^f7*{*iE5|bYNy_6r`~F(-fE}bYNy_6r`~F( z-fE}bYNuZNF)Lv|W+m*$tc3lTm9QVP682+O!hXz31b3DjM~QKl6DDv9_JYtmhcQHU zbvmD0WfG(O;B0x&SmYz7JBWRPsoPOu6fo|$fy;(;A2tW3dZJDa6j(j%U|89%)s;21 z*3zUtF$wuSu- zW-#`IZAGK-_$|~qdYl4mHj)M-1%Om>lSMB@FlKYbP;@v73??fCV7e3Sw=MJ3fW`&e zBrP4PDtGp#`>HCizg4KFu(Y(S>BjC(KmEbSQ@2#u#s5pnTARDN5WwYSPS0`j97w&| ziVuZ_tyk07Z4ujk0q-ePuUb{L$^=jxJgxJmF-DNAQLOP~u;+&0Km%_1U@|=zH4xa` z*3=!qnU6Az!;RRuMhY>)dr{XBZ0ub zr4UYKxFWX8F2s^o8@^U;qZZ*Fb9FTqxMC8)M1Qi(IGin!U?09^e`Ez=8oNMjMvkUo zeWMgLyeoN#Y6{}N;Vuk>Mz~B?gHhbrET%sg5csCj@wj&)DH4{& z(ja!Hkcx-mL)NVh<|h+)1UNj#(2!R^VdpOU|B_onnCbTj6PHZmyit3h@og4R6-z!{OogK{1>;tjAVgJlb>&(UkXut#xpK7$*vJA* z5QXTsYJ;vI`w4tWvjqv*gmKK}1qP6DB0Y$n5$eDue|wi*>XLlhRx8iQ%8A5M<;`Ko zolUbUvOv#ZPP#-Th;JMVVtP_qvx*YDCy5~t z(jQNNQkZ*|Y!lncuyH~GKD(pu(fCoKtG+wRM?`S$W+eEl*aEJ^CL${{o z1~FE47()SYyGKd5Gldg_HXMwO$N?ah%~y7N23T5*^i^!8eT%5Lu?7@>E;FSTA)jeT z;812t{UH`nWE~jCf>16d4$TGVfaFtY*un-%;#!5x*m;iZr$=Zso1jhozr6NNv@G!}45oW^`rHfiK7+P7mx@xTx zD5m##J{2rGG_?3PH&yq_@OO*2`EC(`v5QIb15jzBZKMmJIwMBS7&O|{)YaVH*a#~o zd;EjxM7pWX-_X+3)3K#%lYqvFVHizsZ35Sbakv0ex3L{dDbUowdXONd%f^`Ia6}>M z5n_YQvGUHy$k1qccf1wUB)o8aS9_aN>?Rh}iq`52M#CUx8 zk|2kQPH>_lnC=NgV?CRK=}t4|4*#Y(MVE8iR1E^VxnJaP{m=z zX47`jMo--p`-G!AdgbfJ@VSYs;wZtO3NXN$y|}PO(IS-)NE86iXea`eG@g`;HpJos z&rV~N8`%J?s-|(vb9ZHb$hcy%cKc}}IOLZ=2*s*HLs9tF6cJBs4Hc6PxUGmAdSOI< zPQ%8MF<^yeNMkvgfSNI(h%$6Lo&olRoUUdpCz(Hhui|~umvlox48kQcW-5Shr`X=t zhpmJ7ln493;VhQ!E}cj)VwJun1| z$)Kd-G&ecMS|oh49VQJZ4kHT+Gfeov5^O(lD;ON_7gQonYWvb=3BVmaD+as<9bk${ zF}NTlTWf`)LM2)nknI@n>l0#SQAW;=;=o{R7PD+8h-$Kakckf4mX~pS>dbPJ?fcke ztSXRgYjb1wCZKH^9k148CRd1$ta4GpItKNZ7{o#;D>hzLS&5#peg3NIwH1~8uZp-q z)#~ci>(;I_%M)wYRM)JmS!IH{4FuwQ0z8n24+WYVJ6&la21}e{i@&?My-i=krRB!A zFroO08zfs)S^lTy$ z-`^=+)*0zT1BOkxOQw1<+11q9>~Cq?(%L|PI1=i>P795;N5fqhjey)RYo7gGqeIvP zJ#E4MM088cL7v+p;Ty}FhtY(F<{Qg9;;ivR!sQL4Eb|cZBO*-9M1bR(@+$W`Dp6&J zTSr4ya70U85`mC4kj$154x)fYVBy(iDQiH%Up%JdnpGBPJw()%0J$nsV9G3%$Pq{6 zH2<2f6rP_c?@Cp4w>P$9X0zaC*BQos0gM%TrB;AZt8M+E5}sqg?VxFYsDb5YKkjKT z+0TL=p;z-W3{<2a`wr%liLMxEm_Vw5F=OJ@nN>qp95MImsuj~GWR2pDu(k{=vk)hT z#4T&hHCx6ciYD74^1G6ewyNp!4OK&ZM%pVz@Q#Lq;T;HaDu&BN=(XIP3$qH@MZbvw z4=0g3r_4GL4%&bvdKo47(6-)H7F-H*09si_CeDQ!vr7Z1u(l+NnP(*`LU1j#qX#4+ z)YjtyDa&;D@Iw*0L^i^3T_Q3ZM>uV;wId<`=tx}_SFs#$+p_bX^vt^rqWFufA{g=` zsV*ieVt{2U{u;NX2ne*ULNQpCtXZ z2YQ={hXz`jo7%d22(>r1w>k@1cH}vr@F@P04YiJlni>pV$`(~n`MNhZw%Nl2a^YK= zi8HHJ8`H5{2q*QBZxW6+_m#Jy$I9{WLIW+hPvtHOw#4HjRwF1H!hmVj8dh-Fex_BC z_@2$t!QfyzDno8lnq{|y{K3tEt}2&;PB|;CmpSbVc62G|4ZO<*Ar-I?`mo^t4tEOrODcotpp0%xAtu5 zAj_udrt4&2Z<2GEu;}_UO6z7h2C^> zbQ+-|w@$;AVyd=Z>HwkxK*()(us0n`rbolPlw~vHs35Ss#0^-?GDi-d+6f+})sY&{}jb$n)^&upj-Hb zr3e+u54(@}qE&8Vl4C6yuTQ~2Eri(u&w!Z7U$UyEa_!1h>(;C^YiKNcuUWflWz`xd zbc`9Dko}^}l52z@HU>u$*E)C*uop!o*CN!^pSo z*VqCca1a;onaFZmcT;DZzr{umB1=8jbrRR@>1uv!Q)|O|+sHLeN*kou6iAENk)LM5 zQ@Hji%%Se~K)X{54jKw1*3&ggq-NKf)7a4pVqk71290H;T(u@S37t*XZ9ztzh)`$K zo3}I(A0n*0sl5?^Ff3yWC<5+p=tSCsz33oES}{$uJZvm{`BR2tB$eilG0j~oC=s?= z{Q>(5P9`GKVXlPtjsQF3iPuj8ixy-tR}?%3;EZ>c)h5#%Ak@d)2XhF7p$LX>Yt?mE zc3mkLboMEn35%R9W`Bon$Q3B`c=K2vr9XNjWMgt*|sQXUR6g)7+`v z4QE5TTqPn|p`u@*3K%h5A)`S&Yx`i5av?%R3ofPRzD$Fs1O~(-Hb^DTl_VMK0{7e~ z5{vv&R{?4r2T^w-OUBH}UfI&_ekb!ozs$OI#FoH|U|*!7!(QiBGseP%TUo%A`ql`U zwF4vT%mX~h)S=I1aUe2`bAO4fh;)oq;i$3Q%9dYqZT;2jYqu?4ansEk>aK2GS;6Y@ z)vZ;mVOCTcwLYwF3l@@aB#9D_5;uvu@?us@3bNoxD!~%oqs9X9kjh z77>9@I#PFy%Q?mcy4K$nXm0MwE(bY4&=g~gFt44<7G*}^KL(7qFMC0*RGAYEvbrG* zFe60;u>2$_R z%vS^E4j9k{GaAn2kTV+iGdNs^30IJc8x+eS5 zz$w@-cJv^WGfY-j$5xUSn&eCZqb@G!5{MvlWh`~$vfwq?>pVRU+Snk)ik9o3*essC zglt0D)0Y?>*-KW$G#?|1rpVh>5?hc6xX^nT4+vj1$+rfc2I7L=elCSbty=sR_6#~2 z0XR#h(poFaB8^1U1rS!oyqC_Hx!=l11j6jBP=iA(tL)4=gYYDbVHuau6PeLi(i>v| zVtIlhYQiMYksNE*oRgNxKLI-~B;nH@d@WZBFpd3SguhJBSq58VMGft!z&`4$tg2qQ zYV{goE&hf;W7Boh*TLQpreZZBSG8{S+M23LXD!RNlQ4u$ef}Y>2#g}>wo&C;6E3E> z*I7`>u{LV0X)D3D9OOedNd|dVhAk{kx?HUtFSQnXBQ~;UK^c=#)#C>Pl?sOiruD2I zQi77Ovx&?AL>7x}@|tWY@(+y=$BXd0j^L;;DvMkl@~q_t$+c!Yjokru5Hc~Ahnr#3 z)7{+K)V`$~`=YJAt;xVJOf!--rMfU0ha+W9&RVwqEoc;bEy`YF+q!dSxgZxB43fN+ zwY=WoZ6pnK-AYDMq{I~nqg>h6pb)5Kr-uq^yfCHQaqqR#$R!E=!X^{0Bo@kb(hfl2 z4UxjH>okfUfs~bCu1Cr0lVD@70njOupAjVpV8H|)GS;Jun(nm=o7rneftzd8yK8k5 z-i}Ht6uXuN?Z>D_=k6qVz$~O-6%7#SN7Z9X5W+N0x<^Ip8XuC}yY>YBSDoYcWYNV1 zNKEUrCf2=n>2?c{ zjIV^rSt}4@^}-IYi>q#`EU&rwN*5em{gP(sD+D8&SRWHArGtW&-Z75tPUJ(Lv@0K3 zgVK%UEM;F-|oUR#MzK{PoZyVs*`$%2jJtty;TwwVgzd9&xm*<3R@6TUqTR`=`ClMz*H5O-i5d zc}x42&Ypn3rS&?a?+AVnR?W;(q+|M$3y-sE^@V{W)4D~Z z!}cITWG5ucomjGb213C^8wBN!!68E37_yyWwkr}+k^~TMcMe;_U_ZufNs37K z*m%*8r)cXzAtUxy{|K9Q%mSi(1Kcoz-(eOr2ceQ_hg#wf9Ub%(Bt+(L!n{T9;a`($m0aur?{*uI_er652}A81K^INRw>V&aED+)eIQR!2>~d z@-PiX?@Q)f^_PuIxLNHk9-A0?LWvlT<7})wSqM_Tp?H4`8D#4g#E8*N>KFJG8V!*w z}^2HH^$4guEb6tt&}Sz zIqwc`eydpsx7sl5{n`h|QlJahfTJDPvCU4eA!rQGF0<+`azKzyvWJvF*3(Rc9j`M^ z%B8a`XzxPl>T2nhSDuhD=hiIuy`q&^fsVc7IgGM1}7)hHtByAN9m=FD!P%*RUXPh~sp)jv^M0VLZ zk2JUoP*JeWB$f+_Kw1OxCPZgefm{<#8<$vqGPwzC=1N+1<_=+v2obypapa{*)I}44 zdlnAlere6#))CIyn*l`@FM0{9$o|uSF?3=T<0+WMKD8VL>J&tvsXwUKc@q;xv^;E41 zGKg=I&>hIPH#XRddn4LY=j4ajN}!1lQ|_H^5I6UZ(v_V%wbonlIc&|~Mi$t6$)tD} zK*{PO*Ujpm4uod&v$9BU{ByL$?b$oxMq_a%W$>Wjr^CPoVsQ1N$=-;zRcT*d+@#b2 zYY}0}P&fz7I~9Xqotvy+lSXTU=yWhNJMsX0i0D&@O(!_F2&LG-jy)sFHXWYeg`>E$ z7>|gt(T;=@K{MLXtkbiS3THZQzh}|eDqE_QBQ_pcN?0bYx7@l(V#vak0$&JKB&GBg z+cHW3SIV12Yd8zEX%mf-C2%E6xc%kVI=i)uW2w!3tbyj-T9HmBRt!aZS75Y|nX{t% ztt+Zl)l^nht-(MiP+@Q6<3xgN#MH6h*REP!xq4kCR(lPK!7P^qaICdyt;f$ofVNcz zhXPqIiM_bm%6VZ42yg5m=#~{Lp>;stcCqaB8X577u05Zzg#R61o((>**qEe_M?Foe4Ekd)?;4$fp7DfUWy-@X{S}6OBcIsrEZ^6>YfoeNKVK#f46h{C~JL{vE1gxinmc~yNsvGDH zYx@o3z}^Mj680hrtp5mRbxSsgG!uLc{NAct)Z!$<8o|&lM+_hN!f;j-x%@9YC2>x_ zvYA?8Hz0Q?>}J>fKl0u*N{%eM?*lS`+OYM$FWEp>18AVCa$m3#T@9e2!6p>YGt_tt zR#j$IgAJfCRY0TR?NAmiQKC&Plq_48mt%V4;n6w%U|U~B%8Lk^rY+e%l4TzaH4;rz zv}9Y0P1z#-```QCi-@c$bd&No&&-=jL_|hLyyY(c`@i=Uka}0-L|cS($cGM^293rs z7`rwE%C|sZG8R%AChddE@jxKA+$gY%6tc0`Hg{I{C0Iga3oFf)(*WgY8GzuH=4{EE zLs-zS)g|@V{TY^w$T6h5A+(ZNjxH0{Uc{lTN87q{pu?VnXBZ1zKpVv{n1>n1YIicR18Xys8u|+f#O8k>1OPutSGmjvU&!dI$OM6i!#s3jkDT zfiLhjOLH|T&IikycUm*~A*V3Xt0}^W5Mp#L4_6+FzKP!C`n15xV7~R2=~E;;vIAN- z$({u6pFrTdx4?bU8q)H$@S;kHm_RB<6(dL(^<}{OWm?8Vg&TVgS+EWvx*aDznc4nAQbtRj&={z6fmB{`fyHW0yT8j=9*oS?fW(Su2!es z_r$gHS8iRtdFhjD*NYC-s$dti-6vSLYpZvu_^=_x37563IbmpsUnmC(&H{eL>QH=w z0ES(@q|6Vo3b>0Q`-S_(cpv({!*g%QvnN@rS~7Pm*i-bE&-ZI#$r@VM*Uv zqbNdTGB4nW3)DhSzyd^sqwUJa9)m-KepT^^a8aLb5Y8Y>ZX&STa;e4=7G zh#%8uF{C9*g@x!`&;rR+YXu`%O2vjv`fAh!)UjZyEfJO)KAc^8u=&`%2ZdRQ%(4^@ z=VK}{4vYa4O!Um7rXpnc#Ur4&(tEe<#BFS%hqncL1znh)O}aVPTeYOPq`n0W-+f>| zi$w|tLhPepV3AE}n$wu*nz9C|1k}xQ?_mhCS^_`O)e?gsYW~J;RL|`W*7-b<*8rVJ zL*BW&x)xtTz`3t9N^YP}T$jX!EJjp5zODrP{|%gX7@Rp|Tv6!_R-;WJ98NGh_{}nD znWvgmP&?yHQNB64;Q<#U-sr8H7iM|^(Tmq5L=V{zk9mBMZ-c`tf^)*V!;EHik-20z zV^ZWqZq||K%dR-08gZhyRFVT~1)XG;j|DtYVgsdwlEUi&U{}d*&>DM|6=PWp#2zs- zPg9jc#XI1%c((}ni;-Pc2Jb6DrR>8LVL+PRHs0ij1{jivnsmoKKvBpV%L@-5k#uiv zK8TIe+av+gG37r5%+|rNRiOkt)no4P=)s6)xN(P36E&FCY+Yv26yPeU-h9m67BtJ3 zQeE!dINDTjlR|JJXOUcA_y+V*2A(w?WowA4o172a)@XU5n^)Hgkqk4llws;)&3Z$V zL^N?!u5Uc}{Em*X&MAikUbSpSkt|9gWe#8LGmHViCe%}C@3-xfsx{SnokpkC#?xvvYyGxoH};!#K(=-lncr@8d!Fcc4ugsK z(};|}?*=`>0<0*hLE^1|@prx@caPd-M_EXX*xd3izc3nypr91+d(;4@_u&I4%OqLc}x#OO+H zAo-$unu~+-Eju|DbH!tyu|9I~;@Blx9FBmj2%Gnsod%pT1C(Ki;$+H7SO7nnhZUu9 z0KEzZC`*BmF*OiaPey#OjC^P#Fxh!fTds-Ah$tciLL?EG6(*_8s|{nlGxn@vlt}0) zvx$YU2VG)M93DpVk~^*3Sp{BHiM#=e&we&a^anO)0K=B>=7GYDfkZB zzW_~$KE?WB)v>$+;)T8ms(Kc$AVxkcNhEq{^cdn+0x$RsvW%jPyy}S9f?W^~;#$z@ zK}Hb@m!aoxq>h&smMLSo*PhMm#hG#o>Iw+njEI?txyXLmpq2z=mV5HF5Ce1h3(Py< z=%)Ede@3~8Wf{f81K2{!aU;{qc_8lGNm|aV-M-*UJa5J0Y!nkcsQy zR%G|bu0d8OF{%MZmRPn}I!I9hpSnEp=7SK)(m@ZUUK*76Hj-_#=J1FE7~w8lcRVpm zE)mjmcSwy1i~aFe_BFqVWpwqzf_whH{5ZI-3^J+H0y&3+_D{w%@@=^?AP9j%q#-uw z!7N{9vc&?K`vp;MRoo0EC>(Sc08RcNj#g2ary(?t-2v?{NmWgY50^QFxmQWt^Av?7q7#< zJ9mHJr270QK${=sLw=MxfPNHG-lY+dPxKk3AS0ge31HZb^CTU(y}fYt$sN=;k<{yt zceON!#uV7`G7)D*9YKBIT0jkvG!(Bs4X$4yu!<4jQ z2azIoRSPp>sPJ2Sg2QoC0wAzC(|K#}o)1}F@LLy++6Ps|_S zfD;v?Ls-CUu+?tM_<{x@JjERIC=Sh+!Dtq0w=`rfVq5c30oAfO?63VugtP&vwRin4 zk+v7iWW&uA9icJ@^)0EUxQvY*BzNq|U_RRe=F0KT;64$CxLDxD5^kOTF3#WsBqin3 zw7R3k6Afk2g@_#mvXG8i6%%Q#u-bITU|SR{^kr($xf53artH`JXq*=-Dpr}Ub>k2l z6aQnH#I5LRYsEw{j?GW?AQAUeQY*erM4$pF6>c9%E(oy_oK&LtXj)LL0wQAU>Ns*Z zHaUU>nJYz3;)T+dIdVlWdW8_1R}sf89Ze#vtVgaaK5#6@&GA{)Ftizqn!8s^s^D{M zMGOvK7o$gIaU>Xa#I#P==6a(LXjg2U<)wK<6lP;qGZ<5ZnAe$MX!PdNf=w zB0L{mx+%0$MTioHyjXaPse;OB6m$+T^j@>pX*D}kv+ndeke_NQ78)O`G-J+$L^9$C z7cN|ySIFbW`J1VYJd#htW@4944ujf-tv7pIdaMYe_-;# z2A7H+gkTxwm>CdT0X5~RUi1y9CldMgmIa0}g{=3f%oM(K5G%zm!`aa*#?<3WnWHi}GO{Pp9w1 z!w$QAs@%bOL_yMQHW>jte0itC^qKOvM|I{%7S*h250CB@bslMlMx`wUf+B=p#OAPG z3$$rj6oy3LC2UrEMx<22Bx$tCV-BIt&FWB^kXpjhhp=oO0|t70S3XS<*Vfb|8CsTD zSc{)Mg8QPnHj%u5*EC0=`;*esO20d8HBE(E&5?yVdKiIdftdi4ZB&n(sn^i9k=;Pr ziL5a1g@U?`mYr5W;jmB=VFV+G9XfSHC;EbJZA)KQRd7FNC`Wr@R`$dehh~d{LkVWxPN&wd<2`m;wQj>x%L8x|A{riM5f*$4ffDjizFn(-CoO!1Z1iHTH z-L^XVJKW8JXds~i*--cn?hHVYt2D48h(3AlT09P*PM!Oi;OEIP^XtQ7RBiJCTquuG z6z91fUp4Pmhv($Yju`(SK#xS6L(w7Oqak>4-W9pX!Q}Jdb<3%_OZEOjJV8Tx+s5hk zG{-|K_=w=+^}dT4O;KgN>37rG;va%gV9*LY7RA8p?4;vKDZ71kBDYx+@)2MB>g@7^9?fH4JANl=|*|SLu zD27SA0y~QJV+f!qSxi(WpS_e~ne>U3p45cnLcw%Z5vpct^_g1ZX1#r));eLVsuOJd zLRMH4FF^@p%_f0?4nYCcbDkGA3Pt9oo<@A*^MT`^(zmp{)fH50QF!#A0queA$8yKE z38o8kVHFu3jBZC=E-G&lEdBmsVwVZNVBUz7EP*2(kFr!!07`*>33=5C?j3NOf`YUY zZZVd%l*}?Yl^`1I{bEE44>lP#;>bJ}%su-RgC5H#h)?kIe!}5mM4{*MC%z9ZAP^5! z5oxgCdK#b71&ncUWNphqD4N_wOFUscD5Bf(gzTq)#rv&PlAdtuliR#+NL=s}(e}EX zTl+!!ToBuQy*f>lRO^t4NH`H?kIZLT4P-b#W^Lpal|O}IDB(m=Lb!2Sz-KV#FpFka z21Z_wq9$6HW=s{!sRrtN&X$eeU|N$k4;U)lf;Js&mQF~qM@WHa8JljAQi>3GJh4eZ z$PA_;Z2pS+F;O67@hW8v7MV)UDEMnetC+E23A^c=$aI`YlwVmbiMSF^YC10r^P;*&hS^p&q_!{z8dHYzxdAXq2&jFNxql^}o ztccM|f8Sg<$5dpf!0c#3MWQH$!{2#NH~h67wwZPlL^B z%2J{v+5ILzh!#As<-{+B$QdGfP4#y@v|xfboD*KTObIH9EA`t9w0G9~!zWe*jz@JM zO~D7YFHrTUyyvQiziq^`Fe=3p&PdyQ!YdlZVT^WWU=x|hu$L~IeK(j_A+$1bV&RzQhcW;2#4APHk;ZDr;Og1a<~7D6b6XU#j}*$ig= zG(^j;GQtb7bW7~I&13KAN}Q%e&V_`$HV?7yu-=EHd9f7*3rc4S29Rb=U}qWfOV}hC z>dE?}u=bsGbH*J0tg19!^#(@_-Zw!I2R0^eqVqKAurri=VR9nan7IvWQyxhYA>I6p zb3t*8;pMu0YvC<{9jrq3%3?6d8ODvv*{FBrtyP&dN?n6xWT|g!(j<~%0VX$tDg_!y zeJ|U6!a7)nM%-TX1fME9fx!4d!!tNu(2CnJOClWxtryZEt|Qw#R?RxBuCR}UR8-PL zn{<@zne*6fny9A)#JUGz;pV~Y%KeyC=Q^jLrRXKX2Gc|dpr=zM?9}P1aE3sY)uA{y zOg<90aQ{{8kaz~UE}LkTLl`0&&wSz7oD4>UT*CZJ*jxmQhU2WM6hfAEoRdcbTikQ&uYQ$RP5G)F3n1R5}MArr5_1abyK#6SRf zR_=T$gG45_^0?f}lZdm|mx9Fm)tK_{LZI2zf=pfp05xIdn2hI9uW>V1(3}V;gynEs z_%Dc}9Ecc|8MuSCEmSpMmP=%5uuh|VIQP*dyd^CRy3P3QVFtztiES}_VEs)A$In$Y zFHJ5Ho4x$hsJ)+L|0b=Fev21yheSj#N)m>z->!obgz^vt{pTnm!7Nj0^AWW755V;P0bpKx6?$T07*6Nei3xepsz7M` zEH=yYhOj_}~%u1VBud_(;fD zOXKlONDguBXq~bcrc%_HBNZ4ELzWbv098%0KUsjwMhcb`4iI=iuBw+l zEeh%2+a_%gI6m?y5WpHf7hhzcS#(;%C#=I}44~ioI%Hep>{z8T>{JyQvq}gjw2@&D z$5chc$iebOG;as&7euv}s=~t3D~Y40@sX#)R!M+@X1rj+;W`%Wwa-2utUzW|JpO^| zH>v9pH+W12^aBI3AYwNpMH{>a*0aIil;%${_05P!0|!Z)pzW}XxTHj>;7D2(Y|%&1 z8<`6^zc|`?{4Bh;q!J|!C`2F9XT?p6OVQ+iz(g!dFb75oajK{T;F?&JBo$R?P{Q3NgM5gaYk>+y z@ksoJxKhfR2Z{*zOSlk2MC0q2Taf!Xahx?s1> zaC*UV%fU}C!RRlp5P_r>h1*TIy?5yS=?{(^{qWe#?A(cyr%sx7ZG()$X-Bt!^94%eDrZ(2;y&j4jn|0I#+@=OTgH`j$lD!>x&l!o}P-Uk}2QK|8^K0$aO!^_%v@{VlrX3Nq^6+Z@^Y6R1Yz?36#J{w*`e9I8`J>U`W!B77K_D zs|EMRZ1C%V(E$hu_Jq9U%XW+PY1Y$4*jKJbh8O5T8T&RNphCpcKL*rFE%y>GKhuip+S!02=zXz5wyd9yZ?vz5+?lepbE)aiETjC#zY z6m5`r&!Fv{={BPC(Li55Nr0T~{*@GQP$qB@^72`^(78gruuycv78+y14?Qrp(*pj` zWpl4^=?t2WprlJC9<+d7m(=RLXwpj-L!phuLAiZ!ER$sg;K}1JlaRzG)L0NC7X{gs z&KZr@U?ThZH6*pZ$o&%h&YZOk`6PI>imY}py{WPQ_Jc&Eqe{Ml@vxvIKsOQ3Kx4yi zvq*&Jz`~Bh64UNw zMh0~m>4TS>JBq=ri?h_uQ4^YMQX-(`?@WK5*aoZJdI&bnhio2;}g~rWoW-I|Qor%9{W`Cy6D)Vr$os#q6wNgYgP}W63?V3{orl!%hsq zsYBs)w=d4azFA#iIh3M#lsI}=HK}uS3$>w>upNLVHlM^w)jU#KqAL}H+JgP6Gg8a= zE%NJ-BeqyEZB(X|4Tj98QXU@$kIWrY=tjNs44!-Jzz~PY9Jt{&iY4N^B}pH@89jLF zWvVs@Xe4?|^=)M4&W*AAjXH6^wZVXNC`%8d z99gi&@oS#c*^Ej?e4@HWS0)KUCtbTa5-t6pEKXFVu_a66E9+I#$x9Zz7Fo>lJPo)? zC%*v^gfHr>OnE;UbqR#EKnbiB^y2KQcHa(m z))lO*0&KZKpjTcwi)+-M!}oz~vFZv)PizUe={I9VPDm)mtDpu^{+l+hlorUXNdle~ zdtChJ5G17w7U={X33U||FYtZdtk1PhfJZL+lLa@5vCdtGB*97yFWu2%e*ugz7cLId zRp3YD5ZjPAnW}Wsqoc;ZGH=OF%1khZ7j7)E4BvEyJ$BM@<043~8Sd(=vSEGVQDDS}hg$t) zQKg$};EGT(G6G!JKKfnk8jovFF3hD1m(Jf{b33LsuBN;sHc|j`mxW8+5st=U4m{`( zU1qE$qfOiXO;um+gad4DjXJK4Mz`5zbAWcM)r8hf85}Y;3DkMHoJ7e;-32hZ!iHjs z4jv4fx$#tbd5gaUhePP>6%qxIp0iqN!qgeH;Qna*rPpsgnM?sAonk3_lHDKuY#sbrup2% zN0sDz9^udV&LcebLqK-KS~+bfs{ZJfn(GazWz?%MH4sgNjj^(p+7m<-jnWVw zh`rh_T_%fU{7OGEm9z&_02}BLm^0RlH32_b9<7)_x9}tSn%Qkv>q+C;=wb&VS%{I`)mum}@LQH0YqAmPYtQU@ zyAWkf@gChdx_9Q_g4kTR1EK!1;1}t&LR2ut4`i`<1|9M%=J{`-*h8dmULLq`u!4HO zeB)Mks?K2jnFNKwcnG)z+_mR2t7EQZLfrkw;fSKHYw zP-(lyc!EF7z455o>OE25`qe;g?g^bolBY{A7S3I*4z4bka$^}J zgu>6pIqxiuWNB`SDSF}&C43pLOCLv)$A*&iSOVt9Q}OwDpZ|R4s4aDd#_jqj0zE(A zM0Iv{RtBe2S$$aHFaYrl2b`KxVrx%ZV00VQed|C%B%u}DwC8o*+MQmj3H_wksrC48 zo&9n8onF5mwp0&^N|a*$n7r0+oF7U3`2?e!*tmR9q@K1gB-x&idU5hft_HcVjU#*g z#-(ej^tO$*l)nomSoI&NT2ZBqoIo8;BM`y8VE|lZEiNFE*~nAwPe@hT?#WS!3+FF> z$~5qjK8`z5_JMLMxI&ab&?z23{EK;A~vHtX&vB(t-53s7jXG=S=ES6F>?)|1-l9>H)yxv^5CF*{HV*a-mloU@=6}9Ok zZW_ucs4j;_0w;is?%=E=aT%x?J&i%1k`rM=0AUuPG>r$iZF5v4J0k=mQ5=?#a}s@3 zHuhjgzPNyuZ04oN3K(RfQWy-m{b`)rq_(zHYFaI5;y}j`428MJJ2*X~dM~M_U_Xjq zARh~4R)vw%>8;#ENq0yu52~y|G0m}_V zEs}g-fJ79W!wM-#2=Optp%6P=ba`^qlx1);IdCIYtwJ~_opx0QOcR6M{OI&|qY5+h zV>7A1wN&B3WGa{$Rlra433<`u8KQ{`JM?eor_tg+45$><*y!npOT2dON^Ik?DFq$| z*T&ICuhpo-k!it@=f5>}XKVFZt$r8cOcR#86{b#{$W(yQARN`Kj^5R$wlm$9{?!G+ zrm=d~j9EiQXR$;ORKm@h*Pyxx9PpaRImG(#;gf?lMU%N_9VS+cr;$_-j`%{Fua9T2 z#I5iVo6i{7nakuLKW?#176-C|o^}2PfKWKE2&=3 z%pu!t&yQ%X^*di^(epFIK|@4Z2Sf8U6MkJ(8FV0au#Bj!OeNP&CB~%rZYaRptj_yX zK?`${2oHKr9LK_5DMtzlh&l_%+oFnDEa{NV=gTT+^ZBxZ+kAdQ_jgz}1fCKy>jFT? ztS@Av3P~KU<9kes*@7Y_bTv|wm_FA zA2MkiIFqJ~T!q>LD5Ec(r$C&o%#hgTyuJdLKc-GZ49HBuLb+_Q2c2Psd$9$A>9CdS zy+W>P`u#1iQDO1VIuG0|N~UZIbmwMl6_N3U08IO7ZG46q%=m?%xD!A*&x}*xK<2PH zq0xO-jfTN9lqx#+tCa4u&r2(BtgSp`%WfD5+A2XfNy=!nL~OT#SnW(Soeu_u>`;e| z%&)w)ne7zzh;Y9%*+1We$aj%$c;Meg&q?i%0=b3Vkb~ZLko5+dHSJ>Lmi;E*)Zi3Z zoi2xi!U*)(Xlv$g>FRg;{D7eQixBSm%5tyKFkdzTwNXkG6}Mvo{{3_w-<&7r8U5)` zgy8EY>)^UYQh_}E`$fZN2!w>{U9Q3lQJ{DwQ0au$2nMtcFg(cwL>>E})*~ECE=7%i zD%(1CTd*5??WPyh>(*=S7U(T073=|7tM}TyZoS@UH2`yMAEE@_Vx8G7u{YUGTIO?bC)}#`fV(n!m4kuRT~yUP z%C@@L!mH1?Ktk7?bo$TIKvHb)&?qe@Y>$|8Wn3L=yLW&y>~f_!*xx&;RE7%KL?*gy z2{dqI6U)~bRoJ}t%BPEWXIUEaoI70&4riRQo~jYIZjs9wE`W*S+uafNCzr)M5$`jP zlg^8gehCkFK8X}21o9)++=#z$Ln=)2#3}3_LB563R4mY>Nnt7(U@*9NxQOC|ATiyJ z;<)^Ji}QYb{zl5caKAcW!ajQiFXoI|1O!fMA)7C{J@N7UOC)jVdq#7H)2x0_Qu92& zN*&9Pxc!~-9%OrBuk<(u$9=0;ED zvCv$PyG;=ZMadKh$uL1xGPsP!wS{WFWs~)fS9&h@Lwrc#vGk5gL2q+`NP}BkfH|T1 zl#;!lfgx3GPcCi}f*p6C*gV3>U4J4FjbIszM#M~m(;hG0{ruSm$Mlo$*h|~H*_zix z0$o$l5VK*#&Mjm>mVh!jH2f$k@X@kW0ad79b;=ZKp*n)LXP^lDh8qnxwzn!|a*=Y4 z<-CRjFYa0p=!IrBg;{g~smhTUry#3j!7(j)x16U|bBG3g z)dfpmb-{A^0@emzE0aZoX+=slNK-*T^VqD#yN`5^C6_-0C!6hdqYJ99l%iU@#zu>M z4s{xJY6^JOv1cMB_Xu8o=Cy-ArbIG~$J>`gA&@^;C?kd)bL+-M&|W+nY&@PIY@d?E zt>8#%WrF(K?p@XS9P0U0Vbv!)(iLG=ZoVQ=Wn}CXP72-7Kd-ZivoMA{_q2LM0ksmg zcQoP>vFPq6^Pes9zedd&6M$Dmb0;p85p2Ur%OyJ5mRFQGWm{jNs59!&7@z^B2)Q%^ zbkM*S{E6!I6kC*JWEt7}=i^YCh)@)uV6U`V-g#6Ql zrg*e37+2X7XZyP8y~LFDwt( zBoBaxMySKV2q-H|Q%iU6opEqU@{)Iur54wG;#$V zlkO0-Q28Dl)X#5gKg=!+A6|%cWlR>!?ouI$f_)%CgfZZ}C1w(QNK1iC1_EZCvT;6Q z06q_Bsn5`K1xoh*KqYBSP_x2F?9_fmN!J26M9^RHu)xI=q2Q|&__HwqKn2tBJlee& zY4Vw=3?Yw0D;BMVr_n1am>|-CJ>-6x0?i#;R-+QR4&OfPW=4$CVrmxZNe8){nH4wpbKF_Wq3LeOu@aaY;fAvOWj-rEFK%u<)L+lR8g~r_FNbe=5Mm zq?6|j3Dq`$Gk3)=acy*OK+Ge`CUdWaM>wd!4zSeTUG`nZ-RlXJjbv$IIIki`J+poe z(PxCy=wI@03}s1&WIMq?hD%p)yzsfa@D6=kC~F^L+)>NBhWsBY-010L>@N!(p*Sl@SRPKaY$zwEowjp zuM*@7iVjs};ZJZVt88P5C-UbMdMIf>L-Jz867M@Mq0WuZdcywRZ4uhqFun&iKpKQWq(P5ZH&KL>M zY#}GbC=7l#5;wY_Ob#<)LSlCp=6Q?X}=^_MM>~$KPz`R{SxP( zMRik91cpdnW~MDzy7Q%vsg+hezrH>%@--hnCeFBediuLiXc?UXkODAt=iZ~zhMIPb zmhwd=hSx(tuU}N4ARd?+-7S6<)9&-T_wKJf_%5WqM_)Yt^2tBdYPD)TZ5iLgoniMB z5tUFhjZUZApn8JUNF(wT*=vleV*8-OBRd|aeY~~Q+#!z>CN1%emW z2Ue0mW((Gx#tPr({FR$T6j_!Q$q>|yp>32EtApe5@YzkdH1X$r7WXifK-K)9@B7+JzgRN`iR6O1BR_PF^TsGpLK@WvQ9i zF7SxsqmC$+{2B@aj9eAb-Qj>Z%U~mfW8;lNI6Y{cq9+sBa4DrK`Z6xhk%5T@d;v@e+lOd5NFsMDm{O^Ak-); zr+NjhhpvgcDx{LZE_d>%WW*DRdb-;X1-nC2dc7pJ+@A3eJJ`A2}BRM<$*BO04^aN5L@Y3V$s{2Gg< zI@&I5ol?`QHAQCF*eO2G77_%cwP%XsO#2S-qlNt~Vsc@V?~dR_Nx^3|G@aoCA0zs4dN=&clFE9H%vjw_kyM!YC1!bSu8u+^!t z=NIJ&Na2D@D<`Mfq{e5Diox0oAlE#+$0LTqM25Ik)p}-6@590iiEa<> zDuk>{lQkPvSj@m4@uwYL*re`)4OP83f5mtqrZ-*R#T!PcwIyt~E$zrPu;0mw8U$l1 zg2sgh|B8!j7KI15I~CWAso|(#{h|}q1!ji~_2|%-F5&?M3p|9S0ue?P&H$g-sack+ z)Ql11a=1|bhNA4A%kl`KHoQoOtE6Mm^*0$vtLG?1cNZkasKyZ=*mRMkgk(bT;%8_+ z^Z88mY1$-z)2#+9IkWDa;bb~1uzfzYDruG_5M36{N9ObT;*;prY}L8Cd!Y9)+>olqoj3S2gIQJl9$oJvuQBhxqYaM8Jxn6QQC6(d6Dd~fB4 zDjdT+C&e`~$6DNQ4HuiS=1 zY1|#u>-AcLy&W4ZggRy1+OSpSrcl+bSL@fP1248J|KUPxX#JzxYjkT3N(a=bWy9s| zR^1E0#dtu;o+xStiwd}d647g4F)~fcnOyj44g}GOabcM4q>W5G7+$~lk(Yx>jtf^J z9&Phre?`1LB8U%rK>i3C;3$+-@{p>g@O*z`^ZHjvjjTls1xGlNk&V-EU8H7(E3684i`>5$jvCb zh~(dKoGj2frg1h4wba}vWF8wKC|o1SXRN1`Y=9R^paU}Mn)2&>8*mSOlr?r#5jp&@ z)xFYHZei*YknpG&4Qwqqn`MtKzlxoNzWORbu3vqXP}gm*QgJlq7+bx>-`2m_ql)|{ zPjJ)=jPO>Cs~UZJB?cl?7%-%9NTZ1N3cjYTY4@wAznkQ8*q_Qowv1FuU*F^}jQAZ+ z+r6`~z~e0wIun^Pila2USh%(-S*0H{txceg4tYtyiW?WMVu|8WxwZI>JbsTFw<@Tm zs}@G1{H3enV?FySvlx)H_C6RGTR+#ct`d))Z6XmQ3>_`Joct$NfzQDqAmGVj=CEdf~konkQJ$zIq`JGWBjT((m9kS1u^O)#H*qo5vfTE zh}bVIQKVSpOO~O`7THz-U&3g4QYD!l(!oX^5=nJl@{mY%h9riXio!IyT~tH2%|^i5 zB&-f~kqq-1h0M?pXoj2((;zcCw4Q;1+aDHU|*)@xqY_{ zP!0ZIP+HpQ&x#kYzO<{5hF?ahHY{O6ggu0`$jDPum8pxt6~mqdhS&1Z4sE%E$b4Yr z44(3Ynj_NyS8!2|Q5Bm1Q~A^%m>z5?t=xHcxUvA>mxM)O6+7AY$n=J9{-fSG0D;#7)C9t#EcnFn^smCYq5xG3dRAk&n+y|#{TguTzM@{T-h3!g9LDBkt; z;Wt%*N`q&99lwbU%8d}kL5!Q)R6L8-$oALTF-8BHwX7f!O_HI>tW+t3l$11*dWN9m ze~ns>97MUXr8gf1Uc?X*xM1EFqHY8~UeCyH3i@vT48nu%@J0Mq!Fi~uT*L?pYE|n zjc^^wI`t=tO1mQyB;Vw{$LMe_VIfRUe>YqgIT4GI6cOS0a5>~Aw?!PsgRq07J7*)m4%8K3_1t>00^$~#P1S-H;AZB@$d(YTsf95?1fIwZ zh9A(W*&Or+76RR3!QxVWlyaY>2V?yl`9r?@v~y9sMAP&jvXmo{#Pw2)8lS)VaoC_4 z$4hB>465~v-NY6F|0J4|b^r+zs;nVP&bv#}pfg6uIxA+^#>FQ6pL9z;Ap#V~%oAnT zYvWF(>jFBlnYiOVOS-P4+Y(JE03f_jghXVCkHGwXC-X6?MfiLqESzvx#fRN!*4P$g zS{W?8DaNcRqBK@+4i=yY3NyG#?9x6+8Ta$B*KoU;(8gm8j+bAT&%$I$S{-^L*|?+N zw1eZ4c~YQEEqLkot8;MF=kAk?d0aE({u%|R;zZKY_0rfj8x-=#P$O7m8hncF;`(66 zRE0;f+g2cyX25ysv59QA*X*&MoL3%-qFgCPh0fV5%hf@fLz6{yY?Gd?&#XRA+4+$9 zVEuG+arNB&!DU+jf%(EJ;eF{m+vjq|*G=q8gOW&v2Ueua&?0&S!Z$ypO>tN!)lO?h z6mI<*IbuajdDhg(O^UolsbUA*GV=>1EC_Nu>q5p@hB-4c1&Zl;)$+pRajHr6Q-O&= z^l!(m$=!q1WutK*Mg(&jwyw}e*o@U}ZY$EaNw^{%a{N>)G6a^xh4D3SJz$?LvQ;C< z??OdlE?mf5QRIbw$ApO_Nvlf}_ot4#f)@pe4dJ8vPb^b2%K7-4Zd&`S7q$>KRGuCL zSY+@O44T{m{;CVjK9%f~>s{IjO5PK@%;)SIJu&5Mogu_z8Hl+WBo9OmWI9SEq^UwW zO0`jKJZI0bnq7^Cxo9iXUNnfO5%EbGd+5x`SSiWRQO95FUBkc0_uo$7>9KVVmO`QC zxA|ur5f6y1Mb;iju^QF(DBdfNLkWyn#_1ea-5*@K|8VYt6@lQBfkZAFZv?$=<-?fa z+X+W4w7h18G-aMslYrWU_={Y8@!Gj>p8G+U+E$r^S;y?eEMPaiG*fJaN$hRRo(Gva zQac)*C(_m)`t-`pEiOb0^TN*9a3+MhXA8j`3(Cc*>S@EdAl2eiP*Ld_>Q7$2BuVRC zL}i1fT5Y!7MvHQ-{YHyjI-C7E_I0=ERd0HH>TtQr;8>yYuFAZ1$R(^Hh>^q1PQPwJ zyC`&Rrae>Yj#RS=DM#*PYsrdm`goC{Y+sjb)ExavYuhCGm2$b(!cZ8b?+m+JSd!P- zgWsPg5;N#9yV$MUJ9C$*sUr)V6b8Y-0--W80Pzb9v%% zY;$bxvD=M+Y)@J=az-+2OUYpy(i(16m}N+jL!k+C%@jIZEEx7?--zd{+kxLk zKNwc8{>}rP0-fd>G22kwuXIil)1{4kgRq^7>R+-&R9=q=!!>qCtXp6B-E)_(Uri~U7&1ZTL8&#|*Tm>N z!ok3aYfC>2=hF=-gwA59A1*R%r^QORzV^5dPda6pvbPjhhh=2;rtxOsX;x(*n$(ft zgMBF=#FdQ(Uc>(t0RW${a$bvjsHn5`d)xZKj0l~RmtXSST@z=a(uA#PAatUYA;hfp zVdE+asHDbP^(Go|_L3N)w70ij+rz6uVRE|nj|+Y~0lXvRmnH0+RRI>=?eX14le^#SM!*jBt$rjiR+I8**% zwR$A%abOgg(`8pMci}K{M$TlCN!y0tbR)wT?%YU0@K8UX0S`vPliYF`lx0 z@{40ojc0bJFa=1XWdt#iKt1K-Tx8`wx_hLtST34HS0Oc-gveUSDxa6Wf46$q4q6`< z(oCIn?%P##mwwhtJE!Mar$v|V3^4~KZR%I3pu$LXhVd{+>cmY)_Za| zXnvU?beh+k8Q=sKbZroGj5>uLWKM!ZK#i0{OkfWcB`KDBH=<`zZezYgXDpf$W!LQl z^2q8U%yQ`#mX2n+tQ|cA@~s$2k?HJpow0KZZXe^ml|958E*nXi(m9S*NwRoIw6GG@ zWkOdyXyJ9x!L;pKq%C9rwZttl74Rhbp2y2Y4pGkNe;-aRttq-OhfGQYmzGzoAP}Wz}(by@p7tZx~*pBg;j_`86r&Y*zS2&pU>myv&rI< zt^Bd4M5kk0tk5tRB0zF;>=p|QDkd1GQxpm(teT?gZHPe*z%hI6!6I_OkoKZIQufsK z1M^65c5)y&+yFG`3A&ekx@~&P%BJXnHZ=9D1cDJv4bNB+Ry}yce(o4l3<}IZb{fPR zVXX+ zf6|ZQ5-RH$!8JUa+wvq%5yT1wt!(_*B7pDFm$CR&T-i4B5#!HX+K*Fl2h=iIPe`DK z!i0JhYzYehF{2n*HtO`X4N%Qgh!%lX52gXbnns2#{HoJm`o#tC+fWg%dfG@`L4YB(W&bT3*W?z zr%o`&LjDh+?ED{?1|cV@gzM%-5J_)S+-5aY0i`>P!9w`D z<@mjT4rxLU=1F*XFeMZ|T@5F-TB8RVdY-|c&|EMZl7Mi=vso5i20^P=8^72F-?HAHzDQFad_SqN);0m5&EL1U0UrWQ0Xe13JZFrMMq zSp-w{j^za>=r724HzLe~5kJOgslG>(Np2N|3NbX>sn#zqg~&vYnl)cA7TfkzZ)b4? z%OPgGYq2n!DO?3VRPu{j9f0spsLp{eYIJ6%iT7O+P)6Jd$)`rJiy?q;bMqe4)gG`7 zdokca;Aoh$%q&SH{XBG5ENS!A_qKleswa6yrn^epxg`*m?er5lMK=@WSF2V>0<>&t z1H_(hU-zBrj-n5h91^SD+9LOqTg}l2_O|odf$$?09y8M>m(uQ_6ordJibgIAwP(_B zE7Z8bFiAD~-s-OT$a1r_Q81gZ+1G$98BN&LsWfhIJHTV$6%?yAQUPuGubzh?a_`7*NtU!D&fVo2ydOD#sihGb>) z3b6}FX)$pVrOZ}a3`w0N$H*`EIwZA1^ey0J0;W-;$)-&4Uw6Q5e#z?GO!3*K>}%2k zh^MozQ&<>8uku_60o5=bDc-$UEfw=tj8wYbqGG`?ijqHC(q4nb;t4TL1XDNPE77#~ zhJykO)%AI7302*qkga){!L?b{mVCywizuF?fDSB#RhkBQOKHy1UaV@H8$%9|7uf$# zSg_iTX>stw&@N1a4zO}fy7=x-e2d}4iHY`Rkp3oeWb_bD_n5rJ?hKEy43B3C#w{eH z$&BQB@rVVh5#J=RL#?YZ0=Bj~A8dTi)_5{Xqe~ricTplGPHZT0Bu8Me{DWIwt`}vI zvrhqYr-YW4FULfo5CEGWpp0%PQ#l|Ck=UTg%pK@sPwM)560a!8HQz8Oq5VA);w(cr z^-xNeD0?POb;af^R1Y={F)H&43FliS-UUfu5s0sl1m+9pi*>U;Iy7yRN7>O#u{)5( zryonl34x$&oTRU9@k57#aR5?Sws#q0*7`NsZ5b%gM`thHXFCfa<=Ez`k!8k8TFH8f zt=ut_Id_a9oKTYL6Gks$7QsCy#AAkwxsRY9aTBDJe3gJ8=L@&$?> z#vrnNRu3#htYcn9Dy@5?C<_LVq8_Ll#8h-CZEDVoh<+V^G1PBk##@ClRlUnY%f{~X z>9C#u5+Kc$xV&Npk4m=@&BhVCcO!)PE~R`<`PxaR`u)FU3FsEyixDCRjR5_$9TKB7 zlKfMi&5AecH|3zGV%UZ0JnCzdu$7X5P(2c{gb*)q;Vtc8<*rlsz+u9TqioYTpHpJz z%{!O#L`Fbi&#J;|1&2=?wnk2#f)y9zKQveAqEv}tv-XrP2h0u&Ef|t{_~9A|_iyV9 z3lLlaLK97(&9F}NQzL>KzF?E-yp>5Lhk<2uMbLz@=OvLuZi+b1V0d?tvhT(=a?Kj} z1D|2S+*>q$twdNP{D6jpJ-^BW9a2`glO<5nP4O4RLw!P>hX)VkD=QKfIo{yRj)Xgw z&X33~vyC%Jm5d0FMWLM%h8Q)Kr`02df+y*)`H3K2DAI`6JQ2&i{$*TNesEr|egEOi zWdm?yuLWl?$_2(+pkZ`lP)~6o=AK=0N@qV-cUsO+GP92G_2at7(XS^R3z+cN@CF4; zf%;g&L@LF;m5aAY*Lxyo6p#gPQ#1RX$`i2v;)BmDw#*zCB0$u+lz)!5voVWpF}$}? z{on%&XkJ2rf2qXuc;ZEF)LFP>e(|P3PXV0yi8vRAa0JZ+JObTl$p*8 zTb!Mla(B35wNbGkJ)@Rl9_+U1;hd`PDK7lV&6Qxs6|4xQ*I2ZHxnveaQsbLU3Oq62 zJF}tmMP#vd2ckaG~!d#1S@Pb1{{+Mx}VCTdwom7Is|9CG==M zPAvN6wx_&oRzoQ@M>MYO6J<{#lmg$6$*Qt=(*X@Hg`mtZh`BuuFvHy!!ffHR;7*WN zLiRZ!3k0Y(V34z z!ZSvDBJ5mNR^fLxE(`zj)nVEj#zLg>=F9dR+~jeC~^E{o08bgGv{Odp=dzlapRDda9+E%%nHxTHAg99 z!Kou=l{~Z!3xQHFg3mYMY?lbzA3t`ex+nEmjxKYmbAA3usaq z(Aw7`OuXdvmP~#EPjschelp$>hxu2Ck9sHu3kyjuF&Gz4$vgM?Qkd8lpk-oe>kvie z!qmi@@-SY$;lwiO4aG0wUgw*-mW}u==q&7JLYV}HRpnN~kDwiq^8BB|Lt(~PB$7zR zHQOv|V|Ibil3Q#@1FL-kQ!QdyVf=GZBmrccCy#DwW=gmaC^%sy6D(Gs@hVG6Ii`!m z+jXh za#@&LB@meMEn1^YvH=hC)Mh5kHzs553Hw&WRY7_)vTKkvE)X_N?)*F2Gug3zpWbp& zeTxZw>FZKmEWWSpw<04xM6)#69$#|rUS_%XcvT;-z$E#Ezl?B*XpcA_Zg;yEuw|Gj zlJfwpZK#ZOVt`KWC*Lg7^lav-`1TA6gi)NitQy?XH?f{w=$TwaP)<^^F-`IOj8WSi zc8NGQ)}1}T^v%uEF>YLAlvr7~_lRIxPOq$Xt0gad!&VGH%n?;|%;gj^+R{oESA_tY zNrgqo=Z71UNr|O`A2KxYSVbR@9AhVSGu5$aA{A(Aaeeu-nea^5dF#t0dFjrvY@#N@ zrSs>{yLl16Ci6LNb)!!Cnt=f`@7?qc<azT7xeCMe z1r%jSn`-2!Hr%+vS_RzlfL zTSpp9a^zo&<}?oogG{r_aMuWqY8q=Mx-+|m0FJ*CG|M;Tx1Y0=A|ovaF0;+DYq!r` zzfN5BE16Q^UaDGyI-<(Sr%E@pc|5B8bBLV{&qYA}OkugtSY3)CZ4hwqiJWUz?Ozm; z64ApY_XSH-{U4Ydw%>z)Etx0wyMatATZ^4$w85{N8S0WC^_N-{9$D zg$h+oXgm~uZ!Oi9x`Xc0%AmKjNP&_i%ED92z1?0}S!ykHYs1>|(x9`%=aueClU+#q zwWWS*vDRF!52zx)OxY`{W$~3>ZP1}27Ka=4r9qP#^S$0udxeZGZnWHJ3|5An?~ zWwggVRAhMq8a}PIaLSdNIolfyzveCL6y{2h{+hgB=|4PNH<@n;xqT*rLSWFvUN$be1F>~ly*hv^fy-XDq-2wQbfC`MR27hBrWxCC3L?{Ew zq0sqr=Gu*jBXhS*KDj7K3Q)RPK|b`68!39Ai(%7J4HerpnyvvIXZ=WZ#coW?m+l+;+{&RFu3`d znr-;=DdjtSs=|;t0Oo##PAXy~fi}2c7%j*V>G8`$VsvQ_>yV?IRB_qYJFg^GBtT&% zGK=rrN7@r__Zk3Or!2~Wg6RY1Z!1KjAM18AWkL?)=sLr|r#7-|*|0i5!M+e8Zfg+% z6LZmqUN$cl7Dv1|Bhp%nq!UjE($p;{DEL+Y<*$C7)yC8hIa8w%ZMUE-JnKdl ziLHu2xS=J-Kr>1T`KUscp|YsaBW0+VHnjwi05Iv9je;HGoEt-<-lhp(XG;K)GsL{Q=XN8gqoD1hclC;kSyfsd9gM`A%b8k$q@iqg1XW*V+kn5qF|N^ z$FlEY0p?OVXdyy}y!r;!Td&-?|7ifdGzwQ1zYPCeT)J~(xO#4Vb>k*)kEg=^%woJ< z2fCuT$pf--Vy!;2V&{1^Ly45LIU1J=JVn_;CQ2pcG#i3Jd~uDX%&hn7ahoS)F#wsr zon)nF63M;_6W+dD#P$kqrFh7>{9$oUlMU}0no;{Of+)F3ZB!3j_K^Z%smKl19mq)t zz<-^6EY9JWoxgDLlS{wr8<($Ky>|U~-&nYL>(g(3>j!^Nf?|9?g>C&dAQ?9wr1hdz zNRMFEm|SCD`k15?`kVeC<4AA>Y4>N3CfnCy#QKtS<0jMh!Em_FIE`AsTZAS2aa>pW zCi6Vb1HN01Q*7K_%X41KOX7N{$MO}jI+;?VYTGRwEj9VMlszz9YVMKk-5viKpn#la z6Vd&U453)AY;x3LfVT>hDZr^EkO?i#^d@Ioau10oW1D3npKTM`v<(wQdsSUqr?!Vy zswEnROr1PRWp;8HGfQoIYzDcbTf~xWlwySD_LXzrx=p}${??5f=da!jMW_}=`-{Er zmSy=7@L?<`onssv9vsFYLo7z zX1$H+x4g8Z3i;H!!|$xGwA+iz>_0Z>EiN_}`^{l@sX1I)8c;N|L%EL5(sHL=AJjTa zwdLh@bE&q{Y3hE<&0(WEXi$THsk2n?4(cn7VZE{3YP7m5Juc`B+nwej8_ldxfs?Jn z2fccOr*AeFYb&iqyw(=K*zYYj`kn2U@#4}l{?Arh*yQ5j*xWzf_h)Wv@NOfnGsnf*~zIsqvvW2~G}qr@l|pk!j{K3EU*GoQAAY76NM zr6Qu?1{)iX_?}_nX||dNfaS6zevO-WY?=B*=Jo!hL3h=ca|4-eaHaji0s1jf6cIz!f7S)Qnje3Ww@jz#kGV0X7 z@*Yi9H$q1Ck*^)LZS1fKNxh}&!fe~vKydcz!B_k2-Xd^;F(GqqS-$H)8X_}B^9vV)w{z@dJO^zSFm!-@l%*8Sfd{*!j z0ta*_V>C6v3_j3ObvlW!R>2ADncPI{g`{>E@xw~EnwT6HcDx#EMj6R zu``4Dgz<0N@qRaL87q&#V>+y30fWNCMUA$+wQ~~AA#!P0vr!GKAkC0cgdz4=Hj-|c z8TU0!rBQNOS#DyOFTkLD_>nzjQFbmmcgyj-O`RJ1%<5*wQ98nu$HG{>JG`}_E#r+CGniyM7EACPeHB0$uUt?T#UZL^MLS+#N(R?`e(fHaq1CGh5_jM6!>|!mTO36QG=V3w?XI6!ZY|ub zt}O%dNv}wrmvu`t`*YQ@W$#Lo1$|KHWK8?5`Zq-xm>B_GR547a8rYi=ud|85`$*By zAF7ju>%)*&>$O&oLg+_JT0)?SX$tO1=UGJB@-P6mSJGs#XbC(e$ot6~E+J8)hC`rp zI)L}l;>OTGykvQ(zamSipm%xiLN6#>;t4YbTIOE2@B{T)4tF7;ZrXiDpCexv>9@I= zi@U(!7ZVcEmCr)EQ9-;Vmo~pyVUgLxK<4sV%YeKlIqCZ8o4Hw^EXh(bXMSGLL)=|t zE2Jei@Df@=@RO%DMUd0np^yNWa(rI4UJ{}wA#)NZmG5LPSM20sSqG!pc=2{yOphLj z|EbQ2RGmCryn(n(azDLa>NXaZ2{Frj6R-+hToD4te(kYUtcsC9hHW`?Ih_WlQG$X0 z%OeBPP9}0;xm0oyRoTRDl|v323iuoRd)2n#Dlwagkg-nQBLf@Vk(eDd~TLOEv^XKkPsoo&b1$Cy+-`7(dt>%^R8;- zwy=}BZS0%|8%<+Xwebfip5E=$a5!7+!p2St9rmfFrn)v{Qx(UrbGIhDRa1Gl*{XA6 zcJE=+>b7b?+D>lNimdg!J(X&&yQs=%pM`iL{X5_vnj6NgaT66Yoo$q~2unkzSXXXw za1k1gi4zikqoyPdL7_J7bS2>#oriSHrft0TOY8m^awwo4MN~|(UD65xkw$hKyZ3h> zPs2Pnleh?p6e9&>)UrResUfD2F72?JqZMQo$=u~tT47v_a@Rs~Yfyrk65lM|P)V{B z^+<2x5RIAlxtz89nGbJ7C)zrX^1vk3nEbWw8)C>}bSzi^!Za}tcqy;}7a%x%YQvdo zdF1hCATT`~cTvr!l{>3Jt;IU&QDT8o%E@NA7ltUz1WhdN!djq)5&qUn@gj`FfcCQ; zGj@R_+3o8$u6^qV-82_UI)CvJ%jkudLwh3lBj>e^jsx3g>Ot8*K3%d2-}WK^MqNeROyg${ES-I#T0H`9d;=ER6U-0aG=-Od#^Gxr z?6=G4`l?VAoy>kg&8a|1>4zb${Wh$FBnM;F6CTd03%DV{bn~aQksc5t_Ug+)uqTT2 zaTZ#5iICE@2#)^niq^R@RJiLRd%9^;AwsPKg2+p2p$JPZ8FHdgoFXD@$SlmQ1oswA zu;vHN{PHDQb_XsA3lS+X;nO~~!|109aXBa5b)}a*;h`N!O3nsEqV!uP>XlF@Tms)E zha#9%jxwh{5xEQI9KETcuH?w`uwj&bM^nk9g|?)?Kv0Q2sV<{0dg40Cc0uK#J5!Bf z=1q*EYSrbc^JH~oZ|mcQ&8?3!#=g6?O@Z8gGH2Mu))oRZkUDra55BU&%`*EROQ!3` z^V<+d#nrHTEin9>3*nCoDiwDEjBA`L1vD{f{5BkG? zZ)v69=r;y{mn*%MR(-HEU~8epdaJuU><<>3Y%l`Rrnb~uuGJPhwWa#)S~m;1HhVr|%7SzPROmlqq2rD1QW)^2utL$2=DhcJ6;i-T^f!#A5t>|C_8*zGUD z%jvIlTlFEk-nCne#b&SFt~FK~?Ey$Gy0o+0Tx_@6LpDEYprjX| z=rP0`t>ioRf1p`uGvVR(CZ-NU7V%cuv!Sg#Y*-G2rf!52p_0kcFOzWJ7H;s9-UQB8^=PNQpN)Y zpb4F7yx`*Spqj*7(@Mn1q1V?blj0urRE=4l_yHZ1ua% zK76(o8#o#^2PoICwYidg7dmbB;K6uof}?3qo_?>-yaQ3g;=~HY=HyFQh**WKMu$(o zHH)mbxWZkQT7%|bX%QK*)E;)btT(Er zH+qC@2FvwEcd@auve+9CrfKz-VDk0aoki}3oawS^oAu?!unp@EpwYIi7%uhM=Xh9O zM(9WsEjH?lwI!aeRT~Z$8-vAeqrKGcE8erxT8dE6Ac2QKCVsv&3G@D>XW%-eV;Doy9If zk6=&@EOoiJ*j`y`HI|74Ee#+L!f0%@`nVQ!OQ%=wF0L#M09m`uA-%QCYYn?N6>VUViUd=k~NZ?VC2yGIzS-l+F`{0P6;VIC6HYIm9b%qs0ZT5E$igCqZc`EWMn zTe>ycfDNvBv3kGTX2!DIXx%!F6GwSY{VqRVrviVC8O%IycAO{{qPtPx`<_o zm}dsljT~hURW?Uuir3|c@$}rEu57S>Dh^%~H?NKA<321L?X}(D8Pu)(a+7($LZ}Nt zXSCZbe!taY)S0E)VN2Zzr?tzTTYc6*9Ua>2u>OV2^PGJi%BBR=Q+!I>udC1F)>$;# zkfq&YX#%7(r0gcZ&m#%A5pX_-e(V3||EcVqto(<+UimYBx$03dOdhRFy`KHPpZPxR|H!JX?`6ODXMT(Prv^!WKX~MquJA6{sY<5U-|vn)BpKj&7S^^e975%?CIa) z8GiLoXMg!8|6uml{`ikqcGj|N*E`v+mtV;C>^`22?b<;*N^8+hWn;VF&c?<#Ha0~& zOlxH0y-qgXpQBZ?@e})LZ_=i-@sk`o$=}xV*?4C%8}ELYjn{V44$x+^@%k&YU9?&@ z-gu2RlZ`iDqMgac4|9EWM>hWMo^1TJL$o6_e&@9;8-JbeJ zdog21(B8_%_q1tKG=6Unzqgxv?dG1lx!*X)#<_mSDcZ4YeCJUb&%Bdk+1YGYt4*88 zcC}mCuA_4_{(WpW?Il{3b}HNT;Rm#X*{%MJKbz`I(cYrH znoV^N(|WXKHg$L>?SpLU-TkzT#<4f&vZ>cz&!%4I+$%3-Q~M8QQwN@-vFHv|v#Gti zvZ+01Xveat39jAM$)Aq zd)|MG#(bULmF+onidLiTqrIN(dG7@6UD}Rp&pTZE*4x>hw`XX4_qACXqT#hyvOO=o znC*G_eHy>%S|Jv-l_P0-re*uFmPH0^9w*-@u8vr6T4{&x8LCVyMBQ+%GH?MJk|K^v#- zrtP6k)ArJK(ca?PSz3d3hV}yO6^?V?ow{$8#`OrhN~K3TN#p)IxxS({$LHg;7is$5 z^R#zpFVkM7A%S`B$_}2D)qymoaV_sy$=>C7M&sBHMDPwhyWZn98rSS#{hxUu8$b0f ze~}w+BOA`JHqV@(y~x^N?VV*kpQ&VH2azvtAQMhaXJc>e$;N8^Z1=mYtHTr7PyVC7 zpH)~pm3@b3@6kS>9i;K>`*`+!yxYFRG~RO`??>NO=-bKuY&Nl{n@v<+$|hdgmrcx` z$R_%Svjclx%MQF%&knr$L3W`3Zg!xyH`_ne&-U-`Wc%MblpT1H=WHM^YWw)hvpkP% zsy&yD9Y6*(SSbgNBcoo<#*iVqU#Vof_OPx`^!PlTP3?O(8++xsZ1>x&&ks*>?9FV~ z>u*&i8B_|Wm5F1OiP_4;hn0yB zDigiR#F@%Ot1{84Ow=k9&s8Q~txUX7nRvT0@or_}#mdCXm5G-s6MM5C|409I_IrQ* zKhOTa_x?~e)A)Y&BY)>_@b}lUAN!TRmHou8{A%{2zw*CifAUxUHphO0_7Ae3`2L^C ze&qXqEc>zV{}Dd_5kCJ(KL3gA$A0q{vY+_Pr`eDG<}YS{^zZyU*ZwT+&(VG%`>`LG z%zokrCbB>Ly}!>re*Sm??(5H~wt%f=49nN2kidn~KTLnpI| z(}%N(H&7v`n8qiVs^cGKV;{VgP40aqn|yA6HgWhsHgOD<(qhWK*F=D_+}}ae9X*;& zPQ0E?9N*1%8%$@!+w=8o5>Y(fWEgku$R_8QLWfXuyAYl49?T|tXR^uXcVrWDuQH^F zpf?bQ2f5cA-|M!r$pZ(uAMGsa@qOL}kvM)Db^0RD-D5gUzLJf-$oI#X?mM$=;)S=f z@ncMW|@YEU*owZvWb0D*~E*e%?~jRPVp{#-pD3rU*fy(@LPySzB4t| z%O53|o@lP%`V z8})4B&>PtVs(NDQyFBkf`l6SOzrh%`>E{m+>Bo4M**)BgzHA-JCZ=D-+~B&s9DAGb z#B7;7#yuzY@T{-VFQ}}ynQy02bCdhBspoix4{F)O5$@k*oL*y`4|iD7h@8{Avayql zT`c5{n_Y|U? zK79EY^O!N6rk|%!-*25}-gCdX-OLTf6%%pt5cBKJmzm$pqqpA7CL5TnFYykO^r_6x z{g@`Kqp2C0JdDF6&s)cgnPZ&Z=XaWn`CirvCfo#SWn%wJ*;t$T{|00H3Z`j|`(uRW||Oq(&}!PqgxIOgr1SKi@0dB++0@z4nx<39aTnxX6Qu!2z|p` z-N#zu87B79_j{RBd-rA&2l#t{_ra{1$TZfkWE1c39?#Q9&(WVRF)l}0!~EWO6**C5 z9rlo$`;emt7!ypN@!fAQ@A-@wHU27U@hEdeYO;e2nq&?i;rs7lYCX@p&SAzKekQlMGXF472lj`sI1%)~hqf zrz6=U&o?iIWp5{E=t~T`~-b-l6iTS_1>J$COgQH4mto?FgeaV+C_Vp zK7Br;aqTO;Y~n-a{v7?)VlEwIPN6?0K46SbKF9iD?9b3QjXsU@_2V?=Mg1-2G<}C# zGckFXKBZrG&twztBIn+w-(Nv3e@H(aelHuJ#=Yq7MHbMnd(i{~F5B1V*bkkgouTzTW2O{-2cpRn$EpQdxiEg?Je57w6|$*&|al+{aLO* zyPvj;wmaK<>MXytgT`;1=HIw6drxz3Wc%LJ{O0L#+Uqp#dHQ);oz|q)XlG~*T8H~^ z-KpK#{uA%f4rTj$ll=XFzkB%mKJ7T4-=Mw2=MQOJTAOx~_A>1htwlRbo1sn9&eBfP zj?(6`U)ngF?c>?@9s7{}?9)!t&Sv|L?#uQanXc@7t+MloZ1Dr{zn2|ga1ONgX9wC$ zhQnEQU;-O<-<#R~1~)u8!3}w^F&=CmH-F__+MC(F_woOZzn$%yt^+9dn4zI?li}=tS)Oy^|-h{VZ18>1^-wbOJ(Q@4IyV>zqe$AE=$l_RP>u zVeIr!!n>OIPWU_s>3s+Bk=|gjzrmuPMv#4g;zglNy~pBx4}+`CLOzXxV8Eu%@OcOR z-vJi;0j@>SPrZsjcyoru{00jfqX%1d@+b?s^Bw{j#feY6R|>R;0PLOSeV7PGSjbby zSi~%3?Dol*n_msc7{ug#!vh)8Xe|7#B z`K$B)6@PX9mv&sW`~NpPuGw{ek-xg`FY#B`{kQzpiT{qjy8gf4am%jzEBw`U{{w$@ z-CyOe&i{`)e$bBpPdgUvy6^E<*Zneob>06<$6E(fwS52I=j?qz5G<5y(<-3gp+ONb zQBiCx3{p~1%9iey4(aZ0P!ttJP?R>1M!-O^?6H-48#QF&!*1rQ{{d>ka(*8$= zCGndCqTeSV`h5ms#S{?zzc6fx-*+JT{Q#ohPaxL+Vq7BSzk#U#!uqoq3~<#YWP;`d zO@T(zpv8eK&`1urPTtAHY)k)n(pBu4XrvTq9G5g` z(S2^!~R1sZuCG+v(zppn*$ zBV?R540}RbIQKYiJ2)pud(d3Ki;UxBewP@R2`_`50p(XfBd>zS@m>RsybkNS6c`8V zij0STk-5+>G7rud`aOp8g~a<9vIX`J@(IKvpF%vc72=W4ARhUg@q*01jq!`H9W?HT z4$#O>(CF6%8rcmRjy02;5uMA7hDG|)#PS7j9g+N?vHTy<$c1n|Rst8n`9Lm)^MG6e=K;AC?o+UClmOhPkb*Ej z*niYYm>+T#%x4u)9Oi?RV6@}(gHql2|>xk9?f9&rhYYT}x#j?Tc&9Y;W>&~)g!7Cx?JMgVOvW^9>i@+x=cqIlt z1&!^uf<``rabtNq^o#6Zb&~RKRu^Fpw1<8#pgrVE7JO|1e8qyVy@0P_9&r6weK0O$ zKWHo;0F4}k-)td=Snw4CaF{hh_?9(FIL3n4Hz*%x?IE0i^}%-D!TgZ#L1X;~(8!OV z;eN}S1daT}!q-3s>oZG(aEb-5lAyn_Gzq_RuHrn%U~q~64*^9vcMyt!J`8#V=PsgG za<&oP=Db5#$Jt8wj9Z*rmBE0AVm6@+w;Z87_XF-4D1QX(05uQS-_mu2>zAq$Zdj^DsJ?U~;ijdV3Ae!gVg-XCfcHlv zld&1ky#U3~Bcwr#f@Xn6a)6cra)L(AU_8M6Ex^SXCgg_aI*gwQ&vi&1&=|)H8i~(+ z7>Cb&$T^@_0q257&I2t4BGYPjTELa6d)jb0Cfzp97IAK*K&2 zSP2@r3N(&e95hk_G+ZwMNzh1qF2r%*b0JcS(L%;8&3I3^7Ctv|9&GsBM9P51eq=!- z=s1?tgn9n>S&gT{4H1&!Rm*hBhJV^|Pw z1da1l2aVhW8r$6r8o32Nf3bWkeEuT0fyVOfpphD&v7a5Fkvl?1tHup&GR8pojx8i~)JNPPZ89s`Zz zIu06nLf|-A7af5UgeRdM$9W3sk@)<>J6D^2#uKJ z^Ht!i!1OsW79j6A0w(bJjP01h=QGj_G`3?78fgI<`#lF5X$czF$qF=$8k)DjBq}+>fkfjlE0 zJ!Ay)25C16?rRty2lq8(JZNrU0%&9+qmIlkiP1-x3>xR30veeL8vW8hBhx`cg+K;q zWTrqI8E=+AJYhC`MTzT`17A-fb3tP}d7zQ`ps}3-(8xm2*iI2>WHGdd_o)(S4_ONL zF;QR{+{cjRpfRojG_n#j##MnvRx`+Rlt2yRE$P1&H1>NNH1ZB;jH?5UybBuR?twREo1{|QD7rz5BJwe4^lJuCKdkz}e1{x{^+Cd{b1e(Y=It3mRb}{2fJKfB9!XD7r&I{1Um!PqoSD=xv zL1R0;ppkDtivs&VBm3bTAqU_bAqPQY+z@EwFf*6*Gs4Ux90iU2yakOM1C4&;ppg@x zp+evtXykj)qQDQJkso2-W85U{Q{*SmSpFF_atbuI^93~WD`;>O_y!vJ9iE5hGZ=yl z-~u3gfdRz~K?;8JkEB7vz7u4DMsk4O4CDljoB_}07|#X7cy7pH+)ViT9LWP3<9I1C87W?=2Xw4#fCPki+=Rf}04pfX2A3ppo0)eG2_|0MUOZ zxs03bwyr;`6DmGIFVQ3 zoNNO+z&SxW3Q~kl@K;%=odsEhE`l6{u7aF|Zg8To-W|>f(gV&3(o=9Ip%?r$9%^qv zUP2$iS%kju7hhQJ2PX>Y5BnGy0Q(pj2!G;$3=$M2yeTL~7%aGgFhp=AVJPf)^b3Q1 zj0}f;jEoSJB#abXO&BG(hA>)CiZDh{n(!9vc=V5j>wt`d>wt_G)FVs~)F(_7G$2e8 zG$c$GG$KraD~A55a2=3oa2=58f~JHSf@Xx7g64!-f)<3?g69Zx;EJJtE?hVGyc5g= z!t<+OK3qX8F93}!q_YT%K;v~T5iB9P6z*dfR|dqmav)yM3LwT+!S@pAe+PB|>N?mD z$h&k7;XTk;e_!xE(GTE0h4ByJ{()=+qJNX%^uBov#C_Kc#JCpNSJ?j(Aol+hzJb8F zR?t}A4jS13_XG6n1fpLT5dFFZ{}8?eV!N+^=>Hn_C;ImS(f7Z^c`|O27q`z z2B9APhoBxg4CfQ$Mt~SM3dFd#bUg7NhxI@`A$XO{YZCT9&hHc5O!yfzw(~{s3(;TU zzJmVW;5;IK0MY-KZ~(2$U4gg>7^zfB@r2)BxCBh(PtLAaB#f$)roE}@>t9zqNF>pzS;$511*6fq#Q z5-}t^FLHsY3*qKG}=C6UX74kA|w9Yvf7T|}G-T}9joJw)6IJw*}-vqaJe zvqjPgb3`%;b49Ka_KI91d?OM_*e62POQc_!QRc@ zL#V~xOSq4{pYQk{g*4G0a{MucbC z#)KwpOF}DPB=moteSv6eAZi=7Ezx#B)b{L)L|+1;zRbQt^i?40YwYbr2eV@cZ?Q88 zv)I{$IqY1*Ja#@|0lSc}h+Rxr!Y(B&W0w{`Ox>^p>Y?0bau?E8cd z*bfOC*e!%lfH{gPZpx zq=tIxNIi9;o_bMF6REo?Og*Ln(~x=)!#vA0VVW^5nCGa6iA*b|4bzrt2%s7QsfGxu zA&P20ID&NY7C;9%P4DWsyT~l&Ze4ksODU%#fNI~rCR(r-c&g>mxFaA)`?hW zVqJ)JCDx5tcVgp+jVCsN*hFHJh)pIoh1gWI)x^J=_*WDEYT{o_{Huw7HSw>W_RniB zXEo=e$-?-WlIC&>GO(Q=J3(_rSW}872diswXhKaln;eLBMElr@Y7T%*Fewaf!opxI z%!7xA4*u5+PIP0C`<`&9P&`EK*|+46db^-BSXo^ zQZjOsj65ZyK*=alGD?(;G9{xz$+B7EGHeMjGH7Jc$f1!(qku*cjS?DVG%8?Z*%G|} z>k=~5h7BBjnK4aeR6{1!P)$9or5YTV(k!8VrwBBWoc&H7{Z3wh!hUBD4)HfG4iadc zh;=5`l~^}o-HG)i)|*%#V*QBqCpLiCKw^WyzRkln$DG2^dMBZcsY09Tfi^D~?6^}F z+7K7Cx3Goryfn1sMPMhKv4sgA>}w(f+Zj)+lHd{_4^JA8bD7ReL}Bbe8F~&>pyxmt zj&m?7ij-h4gRa@69OpIYnu+=H7|i=Rf*p#+@eDg+`A{DAI~0v$7*#2-*4cNf|U(9=!gB>Y|$9ytr*$dkls7wSq7>KhT%ud1DC@dMM!hS~zaa9L> zafHLkWQ0}NmbPJweguk3AM949Q%cuY7Yr%1^uQF6+ZoC+n+rsQQPd09$cj*^$BT}H&?uu(0mC7~CKh8jWH5*_K1&(eaSl`_4F>t} z_B$o?I|ueVSHZ@b7McCdA^lGA(*pKeB)D)BH}J`X;-r3O?|$dPey2Pr1_3^fkW1-z zN(V8g-zlx%sl4AQmo(}L0cn_Xf_AIGErW!XPv@Y;ILKv^b~3;foS+fs>A`@=?stX& zjLRaTa5@KF-h$JR1I18~Lk3g@;ozP;9RUK0p#=vB2Un=chM^%~;G~y0zJIlIJPy#= z1N{GUafZ?3D4_L!ouTI69Pz|?f)9)wrUr|U4IP4p_Ms(T2+PNu6V4L`3*+#b&OvPq zxE5m&X#mxMPg#fR9XFu@r z`)>-){$z+QbN;>3PXAv^(^uYwx8FH{bPuZxYv3G=*BdS(SrcdqG)@-Uh8%WrbJ`C# z%70f3t~73(MAD82G!lya!(^ON!5JC}A)c^s&f(acQ!VktMq!IpgF_^_jzN$MhlqY> zm+3NC2v|m}g#|5xTm;G0LVq!2Vz9utD$yj!1KNv%b%25xvUHx1g92E19K>|45Mpor zcL}ngm#VIDZ|T~3*&_{7zA7vmL6$bfh5bPFu@uv0lp28}ElIW+QU6woN5Q9`4PMg?tn?`Z3(CZnbFjQ{$RmJr zC_EePMx295sYBU`p!|jkDtX}sK3L^HP!$PxZ^}xSI;Trn=u&3zqeofjQD^m7X7Inp zq^yjnb4HZKS<37zWqg^kFsBU6DKm4*$bvd&L0MQ(`WBQKWMnA|ISz|Hj}U84Vr6Gs z&^18G^)F>9D{JbUHDzH?jL6$_&P8Po1-;EbJ*WdrI#-rLRxv8*u7FAoOPd z!?;8l>r%#6l*u{D%#1R#q0B8P^K+E>Mas&UvbsQ7!;c+hug75rF%}%UXyG0nmJIiB zFmh<*(I}u%M5Ba88I1}UyoaO37`%t0#VEKS#9|y=5MnVBE(ozCR+hxdl2}<1D@$T! zNvtf1l_jyVBvzKh%92<)5-W$X)Ked-A%$wlq8e{ejqX(aO{&qC^&!bShxH*L-V2Qj z>qDY{2`p%A1st5oKgT8JSboHmtUywh}bSXfj!CHPbSi)e+HN#Of$$ zFQqyXsE%N&BZ}&XraEG%jx?$xgVmAV;fThGvm?E|s>5*_POOfA_EI!uXsTEpfoOuz z+(Z+MCIn3=ns77`Xd=->p@~Lw3r!rFcr=MT#ud zJgJ@ls>_qrnbMgGrY8hUmj~wD(YT=@G5{;U+XvX0g(e$IT+w*3I@7Q$4a?FxbHHFl z8n&B;wHa8OfwdV}n}M|%Set>hnOK{NWtmu(iDg;noP}lCSeuQx9L(ilMGneBl!Yh@ zvC%>-D@Iw2xe}}`L0N*eC0JI9vJ`V=Xv)#09CHw>i|SnGxQ*%SnGzhZdmJvwQgAJjm@e2AX(-cBrlHJ0nSn9`WhTl@ zl$ju5O0Yz3PzI&|43>GJ^g`){5h*ZAXc;zL8k!6=#W->o$Uy`ccO0)5R%D_nL{kLw z0^`ov<s*_g}5To&fCFqeb5 z9LyDCt{8JAm@C0t5v(*A*jYt5ha#MMA(~<|C1_H+yg6ZYU^^pVLlaCZ*vg>r`cET! z8abTk-U$k}ewWuYJUMZ{qbKZrtOImm;j||L>u~pQ;!!{sI1H#@fYX2(fdWtH0f2>Y zO0X3;C#c|jU>x9Ig#mC>P{CpO4-fzc1{DHa5T2ZPY@iSi3ABPh1>62VcugztgaZM? z#nV9QrUM`f3jtV&fB={lHU^k3gc|`W5{Gp;oUl1??g(^&qw*i1BRDItGnML0qdL>6&J3zElj_W(Idd1$^Qq1PsCrvy|#A zqdLo}PWa??q`I7_E@!ICh3aypy4RH}Pe7B1CK*jCQ-rySxt4i~d6jvc zs!O2i5~;c@sxF19OXm6z;~EBuWWq7S3x;HXIsaGW{$G*ze?|WP6$Q|wTlv3Dx>fw! zR~C>oKH0uQ_Uq*Gvq6%=1Qu$ifXQ=nro=$TB^mF zYH^`jT&Wfhy3fNMk`vVuLv`g)-SJdcF2!C$$*iGd*HCh6DET#%!Wv3(4W+b(QeH#B zf5a`WD?y9vLDGk00Lc)N5u~$_j3JpoGKFLY$sCdeq;rrgAz48>59tCVYe+VbY$4e} zvWIjL(j`cjC1&(H1Y7qzgi!XEDPudz+JLr#$8URm$^w22D2oe}fhlLdV`aaiH@wKh zi&!BI@67a&r#C&A9YzoO`_S+rOvBen^k7mXJ(8LTOb4Ar4~56k!!GgkP-p}_=;=!j z)_{+jFX%ja&?AN(E_R}agJbEDf^>Q?5y}F}>7lA%ddMq;9`X&L;fpFrp7f}r7d=>- z0{Lv{uaF+{ai>R$^I!}&>ERSddN{oTVm;`g3I`g#aDwCk?G{3x1@vHO2|elxUkNw_ z4@GCeJTV82{+Fxp`8PM1^IsXfD*amq9sHXcjtcwF&pYP7+7K**S>Y<=!sx0YmC*y` zj`Tov96eBz1F4c8ba0{v9btq{unNwpko@WXpj-5yE3AlXFr*|%rBGH5gnBn<&n<}_ zsKnLEf>cZoxv6ONRg0W zMSQCv)zZU`u-g8xs{YWPewOoBcQ*CA{Zx(D=~*2jP-*AIu7Q03wBK$T$MQJF9GJ3 z2>HZP*f9{B1brn#N`>;YC`hmtsp0fsdJ5ei1?^Hee& zNYRjo-3+H=$Q5>{s}CeUNEP&u8_=x)5}XpZTzbg;79`N_B{aN{LyCgk9RnvJpC0mt zHhiJXryBBAkWZtB{G90_e~1l80J?&Pv8UzGLxJg#YUrULhz*4Ok)A~lh4@1Ph9%NN zQDyW{geTpf6+sV01_C|k{!G|6Zb6XX)J4Myij1a5oU-WwfAE3pITQ_JiH1`g17nQ2 zN%v>N35$g}+=71NgXp0IU;@l1E|wlj3a0yWpzmZSdME|@OU+OG07KdqJv(R7wxS{Dxg!>0!5M zde|ckQZYU389)zvIY0`bhkYyPVLxxWzak5m3@oFE1KlBke_%d690aj9z3Bd`D7e!k zL8_sLL-Oe1@Bq5Mwu&BbfICoB5j`9Y{YS^r!!ce^2IGPKKj7#_4>-Yi;{E911Rr`h z(T5&zPNavEp)AFp9!|}q2V8RDt_EXChcT!7(*quGr_6;p<$6Lsl^!k(q6fU-?pg?A zFND}4@GVZH2YldeSPJ7T1OIYY&_(osZv;JD4fCmidDT|XBMz?gh+`b2Jh;XoaIFjI z5f^8AAix_4=PRQa_PPr_Qge$Q2+X8MyaFLXomUJ!=v4^JhlH%AN4!%YCDS85G4zOU zB0b`l4S6Kg`KQt&fniX76Y^e=d>}>B1HsVdO=#mLv=JOikA%RzE+ht0JS3=#2!I58 zFaqKu(&>>%Odj+|v>!bZl|YZgltVrZ2)?)6=#kiXdL$0+xnWQq5A%wL{u80!L>PZK z%q0=dVo)VL5LrVHM8PLV2KZ#cICEf3`7r+iXs6JT9w~}~PnA-7q|}=pDX9YH(Ib_? z^hi}1JqqV|)H$CXbqRzNMUQ$wnRghZaC+3UiXQbZr$+-q=+RKPzA4C3dLT809*u%~ zPe}ni8V%Pb9X=1z;nOGj3RvI^|82MR`gJWE24pM0B)_TAeYQh! z?Kex&u}2+i_-mwCL9>6REne?+V&;DP`iraXjA;dI%=-J&@fz2zZ>#dcs~)+(w9huW zZu7Tfqv_3+W2w#!f;zkNmi*D>%GOXj>NhIAM25@h;*2KuK?&0jZB4#`+h-N$*;wBZ zy+4t%Z~NrTxg%Lw-MnTC^EOTCSszKsd^E6oGE_?AbNi3;E_w^4TVD>oQZzTyFFU?l zWp}>Il&;Rb9IvG{*AA8kM;eR=@YdNq$tYeH{7{s`lOuFS!`!_U!@Hu`W2-&J2HzXk zTN?{rzV4o`uJF(3Q>jY3IO|>*412< zqP)c!YM*H}zPpR}SIplNb7CX=iH7*gD=8-@CpVuB+0AY8mi5Jw+s%Hh`5^frz<-vgVS#|BeyROVse|c>F;n~%w_2{r_6vWgJX7Ox zMU~I)HK+X~-?;XOkk(57a}Bne(o&C2)DC4b#vX2EMc-ay_U7IP2lk2H1#+j8F58z1 z^lv-aJaHvgd&$~-k4WaZ)lsLNe?LBE#Pv|1F6L>^qBSaxEpxowzK8GRS+S#i%{6QP z&4pqb4Z2Nsw_ZA2RA0@@RkKk!&~x3r*1;%yL#b=0i+8ObI}~~TB5Poq-prNP-uAw} zaV})WKuqzHEMNYlPlDC~(FPv_tkgWTf>-Oh+AVpgdt>m{%{ePJ7-S20X3XOCD_ikK zlyTG8*xsZybxA2p?znv8)T>vSr<9f6#k6vZX}@uPWdHh&)|L~M%ewfoc$Kt08^5&9 zUT9?T%Ik-Zh#_32?SCzH>sbTEyVV)v(gx1{3$&KX)0m7d$vC~9NEf%c^z zC*2KsG#B5sQoJ?$X#RS=dxwSk-ZKlnP8h`KsJ1;?&K-7T;moWOF}sg{rT(n3Rr#2w zb>y=7Or69#?h(T`x651;nOzn=!mhRDsB~U5>xP)t+9!8yWLNUFja^R9)_%BO?X;S@ zxBs5dU%M_zNN>v2m`v#&bFf@mef;e5<2z1Ws7^3a<=N|>t0Spdam8inji8k)_oz@D zT@NhHMivstah8@@Al8J3g_07T@el}t)D0Ul)QV| zcaq_9anrK*PC1YM{#`i!Ji+Kxy4S{f-M}Zkf9l_`-kjnpP`ER`TUz_tXJ-w=f;Tqo z^&5|y?~}CnrFZtu=dQQo<%4d015zICoeY*#}%Pe&W1X{0V=7v$BOk7%S%L`c81nnGUUF3QiCMEMqv(tF)7Ae8UYZjKO9ncI)OJR#Y615&X z_@?EyG*?(yPsXIF*^SZo4QWr+R5mO(meh23@I5s}pp;i?hqv*riwBOXpKdBjmwjXO z$h7F>DTkv$v(|;yeC#VO1>s6t3d3ddmx&d{8}2RIsTH62`0|5wkJ~@jtNtoEQ0ycAq-rK>*;=2b zwp~%RoC5o8OEx8~i&E-7+kQdt%>L$Wv$lKwJ$%+g^=seILbk^6SJjuZ&U{skF`n`( za{rb8?VfLNglw{wsSL}hC8`yLCmK5njvnL7-kwq944j?7*X9eO3HE-)mh zLq^ZRJCx&7s6|h?bu8C>?wQI=f%|pNJgL_nC`V}rJO2z>`)9&|&rmheDL2Qz-0Xt? zH_go#GE|>n5zo_`>t!0sNe!H#3%8YLwj*M}kXUaeB|6`){D|hmC_vS^8M|PH59(h_M zR#GK@Cg7)Z#Dm|`uiRBHWi?;7Y=8Xw{j9TLCcs`ts?s(HVyhmwEAc+{1$W@K=PP6-}u z{&Mitp1`r4F)9b22VGIT+8}m&Wu#cb`MOq>T~9q%YmS}aaFE_2^eTK_mqXMg+qapw z22Gv(SM#3B9M@$$ozP-5cJ7THRr#DQ^Y~`nIg6b$m8bSw`K4BGu%5YKXPK|^b^1%s z_G5Xnn(v+(_cx~hzL)>0An$ixDs$htd+VfaZcbTf4;89R+J4zJw(?^8)~mA%ltPuV zTAuOoom|&@&He0N-IW=u9eyP!+wzO8h>2HHo$p>;bZ%cj;kB-(J9i)HP(N95kC_%> z#`iHaC|G5#WB=CT{N;*Qob*pj<(?Co5Iv|CuvxIK)k-ut-nFY&I=6As!bRnR=KVE` zzwznkX!!G7s9v?xyey^&U}vcj({`bt{WM9e>tmIW&*&ABaonn*M9UA1=Gs~x_Nbcp&%C>EOtvBXdH?e;F z-njn3`}>k^lLAvRQ{OkLCrnva{pxL#&--yKMEHH=8mYCidd<3W&fjNMTv&bT_p_Nk zQZcf_uD_m_o&0FKU9>rJqtuji)>qRY!`cld9}i0@`*C-eH#Ow%-5AIvWPD&UWJAMS z-3g($<^?I{MamQV^HyznTlGTEEkp9;1s#c8i|!W({MOpGRy1`lRQ3`vhwOOj44FtYqH@8N#AWe>m8hb#@|_zk}6|FP)Td!g^X=5Nn)pV};X zDK#hVQNfG;-d|F#yH4dUuYI|$Y3mzDtGz8wHSX>4f7>n?yqs;$VrruRcLO4F0S`}#KRCDIY8djQ< zhobOcxYMe~xh*nX>ZxH@ug*O-_NlOEW|?2cDS;5R@QZ#$^NQ2-hw3M3uUSnp z|MZ>jn`(} zJL^0-r+Q-jZN}KILdV+$CLL#Aj;q!61w<-x=_nV-eJh&1II2EC!XeA={x;o6#|3fs zr1dN=UiMv=B~+9BLyj#~aollXf{fu*QqSg9F+!DdG7k5TuIb5s)1+T4w%5{rT~Vy$ zS)=`eF%R}$RKHj`RcZ6pe2G)xrq9&t=I2)uUQ23~m23T|fAzTZL&qbYz;S`&(mT|L zN?*Hp{-Y`P-bXpqU2b9X@{tchN-Lv-hrWzIx;d5mM_b3mXYe;u`>*$c!Y1j3oBC`n zdPVNmUHYNQIDGe^Q~h!YKRXQ{G-%#DBw))^c-}Dd&ccVOfh}u)-}88w|KfU;rP$x4 zO~-!kWv`ldG{7PT`)hbiva!>Z`*LCV zX#3{FksC%XeBaGerdId+!t1@2a?5m%KQG+}SvNS}!_fHi#Ja=&K7ZeCnh zv0sbZPOkFFW%tLMMVjXBzaRFrMdC>NmGd%m-HBs`XLeam ztlVkC*Dn>QdBazr@7QsxU&oFg>6=|8HSy~C#|y0&!pe_#UJ6~Y?D5O1=S`gK@4gt@ zCKR^sbwl4d=U4M5E(@pbV@;{VmdxnQ*_6KiS>*WYUjgU$2D*!NE*QD%mfy=+p5lp9Z5l9`IDR z&G9rE7c$HJouHtZIhc3hY)i(wDdrjP`?n11`n~VbGCo~>@>D=f!Mk>;f^-FaE60Z{Ie5@N91^u9w%I0pY~~$EBo6Q ztzoZXvuq1#$0dQ1C(Ji|-hW2?Rp-6X@0*%lXlnJnnR#1UX4vZ8P{tqQTub;{a&7*m z&le>*g3qN1%UyRkxyQOau5fL|mg5EM{mVb?mw2~W#-WxishcM(H}L1i6X7!H0o$*9 zg{}tYhWVa;`*vWNeUF&h9*ecRj5odO-?9I2m+-X^-Sg&>`H!9X^cNev*(dFkwz1Z_ z$w)?DbHx|srjeYS)c5PsCDN4~7+<$n-~Y4NZ^;=$J?~7u7pHCdFc6Gg^TRpK_(F|U#^^d z_lAGwm}k16$nWop>-GNRUAi6n=C|njLo44qxrD?SoSVPmD0kF(r7xn=3*t*c+gcXz zWF42gpOJE^Z8_Jc>XA4%$vYbumtx9JC(6!yW$&hEt>KZj*5Epy?U|vSC)k(QE>1Vy zGVhNn=MqomdCemW7#Dn%j!3@Rp8ms#y=<|*&Q6`4qHAV`*ELtqXX!t=+}fWsru}2F zQ@_;_BhKBnmsmJg%-0*fw( zG#5?i>HOI_b1~P3MS+SN4jow|x`UPOE%VOysQ+ZntzO<%qg`Gu`!?v#{VClNn-(9g zxys;Ic$dKGP5V~6_G?#~ay^%q{<`ii{}+Yv+4I!jcJXK>zPfXwif>uO_MDv!E{4XN z%fo!0g=Ejyv(?dBqRqYC^M>_gPEzo#l8eif?g!gWy-J^0+~s3;ymh~%-)BzQbMF%` zy4@bpe%27U@sP!{Z#TD`9EB+?|~~4L@4|P)n z1Q%UoCf}@l+2l|Z+p@u9&*43hKWEjSZ?t=>zPWexg8g+7zb^mSkP_vY__#8b??muK zQ&L2Nc-tP;pxgRh+$AH%OZC(@n$MgX@4sc=|I3g$=hn%c)iF0__g>Z#7fN`aB)C{F zOXF3A!8SiXt9z0%LjkWN1yX;mII=fZ(|AM9;nSo1MZp63O9FPU8`bT@GY=qyW0Xs$G=BP2jVE*R-Pj-gB@NQs!8p+ zEA>qKmG;)$KZ`^zQMx0>A%!oFCW-49mnAGr3(+&LP22S1X?UZJy2O>5`Mrh5obCl{ zAK1G_tWCOTJoak$K2JaP@pBb1*Sq@>5ZlwcW3sd)u@2ze#a44E9~>Dq_tS_qke5=IMvtZWlw7 zIr|eW%wtv0-$|vHDBBJw-xxh1FX!YclC-q3``R0x2lcAo=J*8i1TXOB=lGi3)&`pZ$J3zu6gm}Q#Hvaw{F;-Ssru3cjKh@$^ema z<7aLPy92VF+J8!Ngc`ia&r|wm{!gx~m`^V89?xT67p&;d60NEebcr;tR$T8c5p&?1 zD*wDS+ogmL*UwVwExbRT;c2_^n@q&)7e9WcRIWLU zL#0PC%x=JKL1=qIjND!Efo-kL=5v2+y3siGGRwhAHh)6N#7z3Yp#8e;Mdpty?{YPm zX#W=L+Hq^C;MYRU3`MQ`O4ocf-o5VGdpz#zO=i_Y+ltr!Jl1v*sB+o=^v8BC|2#p( zO0$CZOgV`kdkoUQH5zZ@RpnLV$jO?Owm)T@YD-zoqsuyDe5|^E+lAHQUrcAzC5;9P z?3&cg(f?@2uM@#fYw#bj+3@$9tX&pC$}o4Hpey>R%VvNmsB zx6*p+^n)HzrphN>bL8hq>qbp@ys1g+JobFT`L=i5TH`l!r1lH%31-JiyL`{Q>Xqx9 zd8+ogOroje4Q55lh1UMKOy{bZ+N*5M*3EX8D+`|57i*S~bAQE?FTabIn{04cpddHI zZCgrPwk)WY?>l8vDRz6O%RcW{MI8$7U+$HQE-El66}LC|E7L37)bVc5cUSSwxH5H( z{-3R`5AH3bQ*(Thztx*^yg1Fe=;5ce>R#`PyJKVFM#9?WD%>rV@8_Iy2xRduUi>1# z;gF8I*6!4q%?~dWK23Xd=ZF1`C;YGv(Quz?!MJ`HYMuP zo(mN>>;C3F1OGQKa~V0;u@DhTL?U-<)kPLq93z-pVvrzPB4Q)goyHkM=rN0Q;NR$#RDB|T1KTjpZ9&~V>7fS#5;?kRauKhC zSdx0ZewQm_cspi(d8E62YPNj)wXnc{l$God;hTo z%l@2Pe(r^N-mRpFk(E6^;}6@Y@G-R#f zo$D0m8E!1u*B2)hCwA&eYwRB9%`fH6mzJ)~>QcNZ8&>pjFlN`NO3M=C7wjt?=I@&v zbe@z%j7KGpO zGBZK$`^K^_^S3zPu(w?|uP5o+Yw;~llP{<)y=L*+!aOuQ^rGdVxYen0ky|Dz3|rsw z&s>=3mmKkjF2CNglDAXtex60klHvJZPOXr6qO+oL(UF=azFGIUE*^X${L-vua$S|* zj;Z?Z{Y$UTny2xyDEriofpWf08_x5%bNigj(cWOKP4~T7m3nGxrkU?hQoMY_+b^GQ z-Tm17P2(_sZ|#dHer^?=o~K@tTQ~H*pES5r&Uww$@$O*q%opBLuhR|vX7X7MELnVF znJ&ZqhLQ7*h`E0|1Qt3UIA+rLZ9GA4{u1BM@2q$IxW-@^xwJHfeN5MoDkusPFnp?| z)ZXjmTK4`j+fprT_l2>!UZT4WShnvJA4?C~b>*eN=-Q;}i;6mT=Uja($*sL`a4yfs z(fJC`?>L%lU2#qQPG;Ac9cc%5K55(QGf?f@pMSj4vHqU}*W-KZIn7vJvMHzj3EcWc z{($1Ftd=?6LnZ3#xtHjlSkAp`Qt#-DWjbZGuKsGpS{?P;Vg-%c?Uzk?cIyszmFd(K zi+{MicHC;EPHwr>tY;hDPigBp#S6^YFvoh`=Z9Bc{hEC&Q%=<~YJ^9O&X$-Geb|#+ z6aFW%)aljW+E8tAf9+3!^=Eo!9^*ZlCcbOIt_Om(lJf$JVjkpsFwY z&|hC$>gw^hzl<{;_u>DUEi)M8pJ=eKjK1`aJ5WPkHB7NCWd2$|Es?2l)o*+6iki0z zoUAQmFBbWkbIUq9UWCi+_KNVNXPS~n(w^+s@8DhQS|!xI!n4pqnd$60Ic{J&^waf* zZo_St>ox~3EUa0+a(R26*WX#bA$2Z;9QtDKy+5x$tk$z_Z?bUoZU4%5s^iY=#=iR& z>Q|rasb#Xiq*~~O&VKgjpNv00(;XS}*PYdAy#B{@=}V_4TEBMW(xqpW;QfP+l25 z-tfJbXQ>z7_Q?%v`Mjf#@94WzT>+J4*N+aIVjXb2k-T}S^wnhsoaI3s-R{d$Z%+M+ zDQB>j+F#3j&}VhLQ(h|Mp94#z?}q*5zEV|Qym9vN+R?krDHND|gepmePS9i|ib}HtxTKWTd8db9% zuj@(Jw?5<%*IIw^B`sT8)*M|RmNxqCOqKVz@8-D33smfbLv2&ChU0C^I#0iGYFWp= zkn(rR`feXxUARgA*Kko$SJ(Ozr2}S)PXzb-ce%W~!9^STA+- z_4ZfYUTaxe8bNoLUS42om#TQ_`|VkW<^-3lh_#)Z^t0Z2|MTKh&m&zi+wSh0@wxPv zc$XpJ)}@mhqXXj-lKI@e@L$<2DxQ-T{bIOg zBKPQ*-={+tWoCCBUbFQTLx)c=pnN}%;=7L-R^GjP&v3M*YpSibZ~fpjP*xMcIV5G6 z`A_}#ug~wx3+xqmH!!YK>k%%h+)7vdajU;4U(^~NDL-qCW z6O+#-Kdk?()Ojee<$Si=$**2+_Z~j!di&tvw!b>E9eLx9O`(f5GAG0q>3%wV^6$Gi z`^B5K$<*9e7P?S>&vjo&k>>YWg@aN~aeWU{I(K<0RnA*eAWt1iwAnrJ(ukHiIa&X% z+c^FEW|@++#&gdoJ}>DoUSsii#%2i@UhchL)86G9+p`wf_6_9d{qekhT2ttK@Zy4F zy-yeQd+D33HtNo%70db3Ya98IAqXkXNdl zsayP`IbY|~;@LwnTgzwP;9t=5O{Kk7SM@|w&R_bh@TTR@lalL}X^Bi^`rkO%wZz@c z@%SuJuJ77A*S*%fV!zzRVc(pJGhe+w-95jYn>wKvHK$E3RQFXw*_P6AT1aE~V^{J0)>dIqqaSB+j_O z3$f^TPCAk0tiHUxee*#>0KrH0>}X-*%Iub-YNQ;U<-KM4k7>Ai0;f1PM8j>!ow%Yu z6{JIr5eiz^FX9}A3NxO()4Q|wDmW;o)_M0d{~)d6*FP}cT#UIP*$c&t#om50v_1FCoT(oF?tb}b$X_m zJ#wZfiSQSr5K~BjR;O{PY__jrR7Q}UBEI{~mtGjckFDKmU>a)Am&daf^D!iikuw33 z{2%O>@5!=Wzu6UJ&uqS*mhaHSKufw zHcB+J-$PW~+AR4yV2SXpml6Oc6cr#(f|-8?0z;CvC}<#8BN5@(myoLL6yyo=qWP>= zQ;{dy$=ciF{vH6gGzWg-h_ceVwfa_hP0ZNcy3S11F z>Vdkwn820|>g3k~3e}uJ0O#+F1b;2mImo~tR-52t^4j8yu{2N^6TA%JrEtAwK8S4- z=UvdjgxH&XNZ8ax)Y(V{zzPeHHK!lN@z*VEXnaL-^kBJCvY2(XX}4v8z`pcTv{7wPBmwQd*tO zF>ZjS`p$*w9SU-KC4{Rr4cE>aCSYn|+Sa*E`6Iv%uAo%xet(n>PI@{#nOk-g(|Mim zN{{;_>lrEz#iCw}ypg!&7EqGs?9n>huW*mztB>$ZsJjX)6ZRFzBAE(zZ3kU*69R09 zw}YQnhquGm-IO*aNz&FXpm1H3NYYqpj3s_9iJ18m50UIt|157r}nvA0cr*Yon7tY#GVBo%DQZEg+de@Q>v7d zdSUN}t@PF}Uc;LEXe1IxpwhgiTzv08LVCSGfJ_Eb%UG)xM`TLXPVbYA)GWi7aMAZd z&wtT#p-Hm!&6wi<5B_GhQ7(I=zF|M4uhY60Avb+5Ze{PBpdn@FkEQ5l$+)w}>qlA< zIv^!;bC3o?Umgry$mxWDubFPb~OFIP}Gj^`IKQ zta-FMaKajT5I2RjSIBGFSdz5S%-X!(6yH}Vg|5WcXsaa9Sx$4*wb*`u%$3B*K!;zm zxg9B5-L8bbmAOy&V6%Ywb{eLQ#?@8aR29k{M2lIRCp&k!Bbn3up1(Fc9WyhT5lf--i<^ny zHj@1c+Q!T5k+4FS($QLPtR1^<_Z+EH9p-@N9v{;Zq!2-O&+iku!-p+)4MpFyOE({y zQAa@nhA1HLaxHMvr_`zGSl`v0BV(D_vWa}aj zVcCE4h_ar3yFP{kM1Bbh3gH!HMui!M3O&mvNPX53;@F5eD4h##_L{S(Tt~f#Mfs%* zxOc#2d28To!YA5=6x;sb)ertU(~#0VSOydG0%B+`VthlO4Y38tduj&{s+zw;PLGfK zPU$6W!ae%8$u)|_1OJwj`{m%yl*8*oIDV&K-eH54W!}y}wIU1&b&$W*XTrCtLf$Ns z*05Ub`53y{U`B4HDyBPXsh+EQ`Af1g4z}Y$mIGbYn@xNMMQTo@rqq6(TWn^qF^XsP ze0zr=wwO7t0Rz>Rvk$<fob2ba_5q={S32SkZKt%Hv;VIpjlTLPdv!3O!qW0l7xuzOB1 zk5peD4Bk&kiFN-V?6&2;8j8Pc+u?`%cp`9*W$iV3tw+T2%+Lcks?E{A1Pi zfOat`setlTP|8Tpc(o_8feYXirIaZc*{Tr0&5Jc3FhAz_N1Y0po@fU;)I(1%o@gHg z36hW&DpXAer=XnGlcKI=fX0eN{$bFJ0FVG1zcUcFZHmBHm2@eThh4*`)8-E4x>f^N zWiAB$A~R%-X<46V8KzJbu6dIln92NNuDN8!G%0N{*3+)*WlmlKvs5G~1eN(m_6e)a zac-tip2;-n6Ss90`IHyAS4H5E-asB0R(&Rmj2AquGI_~;5Mq$i8!>@W9U!8fw_CjH zUe-0x^jx>54`J^x%HWw{DsaK*3RanGYSh0B!yIAe)oZtEm|Jy=w+2dbovGao$_>s4JcvQmHcX-2=T50 z$LhMPv}QCbeJbRY)m_Nc8S@}i!u8Z1Nl3biLoqYk-NEe%U$`;T)3d=!=8C9FHAN5o zQ0y<$Cbp(!Ve%aaraCW17y!IcteU0<#ctBwoOB028UG z8B&D8pDGTqj1`E+k?}b}_QuOrg0|CmMx%Z)2-%eNO8o(nl`n5EPmz2GRkQUY)(N^A ze3ij;-Mc4z)fU$mRVu4eg+GriDWua-d<4d_oR>x{&5><370BY`@T1!5zM?>b;6Wr= zdKUXf10?C`bw&VgL=J@isz`Wpk1*UcPKqvmf_k5rAAQ@B5`Gdy|4qpC+Kt6C8uElx?^tiDjX z&aKkrua)sO5?w|UM9nP{Jlg|ZvG>R|JJ0cd!B4f~Fpa#fa^^s}qdMnxkMjbJgfgH7 z3b8vO+n^jOkd0_Br|HGK-Q?$8+h_G-J7MQ2n}fa$1g3q)cg%q%5KSZdh%0G=HCfR5 zHJxsl8wFPWJVD1&BWv_t?an-fQlvT|7H_xWC&q6Sb+NlqI#-d!n^vIJLxMG)Z2_l} zW*w|n46F@b4O!Z?GdP)%bb;Ojcm}A@b-zs#^0a094EW440+!5PJj}lL_1%ZL_%&^( zul^y=cO7+6oF_q0E6H!`CdWtgRQpWGw-`(A&lskwjrg$0;FVkennpk0IT+FNC=$<@ zeFeQ#%Q7E_SH$508U=aFGIo6+l!dGzlmq@-CX3EUXnt8f4W1tu31s3F^a0Sx4K<3* zNH^$21W$V&$lVUmsm4W)ln8pa*dPq$JSn$v17~z8S6XpEMRKl~=c#H!wsHCF>(zPl znAEDfve$2G)M+{SwnqO|;nFGNnmE_YiXw^>%T3q$5W zI)Zw63XtIhDp@3UW$wvJo#4$%rCv)vMz&I?Wy;gjp8g))22?PJ1bghML4C zVeaY%4Nu`^J5K@^{F}z;@uN|JV`!)8sKdj^)B~|BbpSMLvlx;SM!W(_P*Ha4b$`bC z>nhMzi-gvjCW05+frFJ$<(DOSzcj8>Q8-^@U|hRMfC%HSmJV-LM2L440&2gf4l!wr zXtlH6()t9ILdh3RZHX7<@F3u+q2;@cLZr-Ry(TeV{fB`jSP)1$mo@;PVZFFxW}Bl3 zsAVnh-a>5|Yh#p81Zhc3R$bjk?h*EPFo)7fIxl+^vVsrY*sue}%LDQGGz>-=p4S)y zTrTtY7eT1Hh=_}KCUU^sH$0Cg4;&on8`2QQp!eWtgnZQC!0fFPBJi7Td;YgzK~xNT6IJjkg`fjG~udemIzMN75~L;NO$>KNFW zRGSAuDXicc(zOFO8Pmd40-Gn$lF7?P_JPnAU7Y}sEcou|PcStis-CLVMg#KWksPcCpV|t~@eQ;iKAU~Cap{zE zb2C{X`J84Hy;r|v5E=~Mu3d&Dktc)G3%5S2+Uzu+TRpt5TyK7l!9}7WBx@>>BJfI-C%$C<1XwD@W#p~bkMO2B zz5k6nKoqJ>sPDulgmFhkfVA3+4})%-{}9>;1t*Y6$uxy#7K z{=2(Z280>v_6fjAM{S; zC1L$u-i@$7R0*UdNJ!q5BFtr&jTs-J-wtkZH;O{XU-PY^mzGb*!^-!0Jfr~(M6P^W zjU~Y`bt^zYi@+fvBa_}$i5m8=2ox>&`e-#`3!=g%Jjy5 zJlGhrARA~G@;*~#ZJ&sTF3Q8?$5?S^K`Y$*4QKm*B}{|?3XyevSBTFCzc%yEDqiGJ zQY0dUJ)(S#F4-y0u0%K;4~nFMS5c*m>bbmAjRh`}5!$j|JwQ%79^!dl3m365o~%BIJVbFu`UHb&3tXJk-G z(C6aJ?9Df#V;e|16oBp6t0_Q;3$VP$1=O83@AVrgn5db>>k2aQTOnjUbQmhaDH6;KS>ls(}bg455KmXiJuQR)|0dS@d&ZN+BN(C~NCI!SKp7+?tGl`(gDs zDbYE!-)_8KI^41jAx-|Vv4wPUu7=?N1TF@MJL_&-E#r~;-ZZg=uIa~h)Uq4Uv2$Pz zz+)(0VXe8uN?%evNhzLB&zer^9V^3)xDBPq0UthWk=g|6a9yxIfMwVU4NGzEuX*4M zl0{h`gNbLL7j9_fT1vO*zGhiQjU^tUbEY_z92A4{!5qDYo9M?89d%Z=C{;19~|3CHqKpj8Y%wcTaN`i zDzdkXqy9Gn!_q7lz85ZfmM|$q3R|IGc@F|usaT2E$TyF*b+)9N=(l6)8p96^4EwY$ zAOEL0=9TUH6qaG5^?;bGQE`+4|F+)S+-Rtb5ye~WdY?3r%a`#WgvyTqS}Qx)_NpW3 zUKf0}GOslu^xRY)R@Ns6L!k@ev31epUY&=veSn#BHpIuxTh*LZM5TAx|1%*)vbp;p z8V`f;=zsRUc@l6p`<*t`&?8W^}N;lLP zRH!VE!c28|AH>rqp38ALTwnuvP!Nf1$wHx?J%sRtHj)-JNp$m*C<^*7sw{JG0Ty9! z!sxQ2x_?8=h$q9WqwS`Sfz3GwE-RinLh0fvg(cKfdCDOL)|(Bp zSM7m!2%=BE3rgeo@4;YX@AiZY1h7_vgs-tAE50Zc7E|?OfhV#YtRh)Ob@Gj4KP#nN z@3W`GSKe_HvUiS)08E1rENC$?UDZqQBxuKR9JUvRz|ppy2&KXU3EMG0T}~KsAqku~ z#tgt)?R?$Bk0)X46(Abc_%~{ZQjRXIGnwaacvr+4AyF*OO#ZW&1i~b;5Sy*#wT;qG zdf1S|FUmRv(Tr(rQyb|AEfG)F3A�g1OFbIeZx`dlft+>t=gFEj;2k4KqL4R}4t& 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

?zc^D!kAPi62M8j6+A~o@bpgR_GiP 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 z zM|m~d{mjoUCy_ZeArRAb?**5~;Lc*(o3G7&f#$S@ZITmSqLR5{T*RIYLCI62Z9G*q zdKmY$|68(j{%!Gh+dGq@&c5B2oDqrT7mY?dcNZ2H zotsjERw$V#C?}HR7HI0FWkf@2SZK+GU!*R{N&lHV`61h3c`3m69W&|`t0_$t{l0N| zliO_QgJ;9{wnknRQ=uBjYuIc!l;Iy8Y>cGkGt1Hv5FdI>ltAMa;x}2Sk!P#M{88mj za!B^C4L3!G`17X?B4#^>NSpj~$6UD)MY1 zCd&5$YYg*_d_fE$_0jcP3bh(8-S9+fw5@JbJ)Tf@gkFH;%%y9WETcSV$VgHGQu>sW ziu`2TmcL2~*$U~peP=u`TlyX!_o-P{ zh50qw7vT#YLlq$p>u^fHx?!P&I3^O{@i zQL8O-I*kbtd+$j6U&m^UBx!zY3!kI9Yj`h$nU_C2OwVkJflFB^&+}v>(^eyOw`7~z z17D8Xpv=C5?g8HJH>qRc8!5NO)OPjsX+DtY@>|_z;tXCe{;pTNSJ9HIa*RAy+Fw(e zlcRFh^rA@6&aq*-$F`qvX0;|amU;&ZGeSBVlH-N<-dy4^cuUzBz6U29yB+K}X80~!(_Zp*tr2I(0ew0%or`w=V5 z+&U)QbH&p1m&UY!U;9Jj#(}krPtj+BXaDfL7C(J2>&EXdFWxlXC^xsQaZk4)9KR=G zp}0ONhRd5GD0?RVP@Y}apCs?34QPwi(QAa#Wn@e zN|pB|mzoe~5Bla>_Wb0}ojIknT%|7WL~%PqHQ3s&O$2W_w}*?rQ`IXUkZtr)pLyOW z5agsldScKHw@{S7I!<%DcT%5P{b*@s%FETh91%Os;VXIa>5ZMCUr|H7Bm55%4>TIQ zwYg%n=BXF%bxCI0WU^IJToQwjwWO6}X*kVntl+wKsJ{*j6d7 zK96d$_UX-A=<%apHt4wN%VBQ3aqSGP*yr|RVWiV!T6bwaE>4&J$@?yQy_G%fl@Enu zz;y>l*39_uOUe|cBalk-!&3b>@{sqd>Z67Nvx-N~U8y=<_~gcsbza*$>T$oiZKC`R$JiUgwQKbT&zW3=HpDIqAnDU(a%)6ATY9UFn`~(y! zwk!k0oP$Y>m$fda-T#UI#d7g>Pe`8qjUSn^d}D;e3N1!20$QQ9qiK5`O1p9`wU6(Rke6(?Z0qv0jV$5wuXNTE0WZvWT!UR&0Vp$1>9<`mN` zP8SHv?Vd0%_k<>S@K|O$N?pTpKa$_*J2)kCGwZw3ej`J!oiM|K`fEmY3GyqnDjTKs zcU%ê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ȩ{q%ep`udNx=l$_XV#?Ww`yd;#`BZgdLFD+ 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

{b* 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

_PgO@QrYWaE{RUo%lvLLpVoh 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

t(*&>EF**9l=S#>GYh;xNFxUz~R^l8X2Wo& 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

~nnT4z`3>>AE8kZE)`agGD0 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𖹟XN&%xE>(|Pz@jfNxTRtk$A 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

e4~^u$PUN1>Cwz1CUB6l4a2_E{HhKb;v|}oM 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

#MI2G)~TIS zFHLpx@$m`viSWtvvHEoST=H?7<})pLTEw)>Y1V12Gn{=pr;T&EG|g?g&-CEw5z{lL zTc>wUzck%#hR=-P84)uwXIN)+&bTzg&DX~_*f+vA)7R?T>3hl7ZKlu6;F%FKGiO?7 zcFw#s)9oRjhk_r9cqsFs%-gLGbv|_IA-9Kp9u9su;$iDAGat4-?CU$K z+v?lxd)e1@rsquE%!M<?BJ0Gri z_|n5}vnI|8nDyeU2y8FTN}1L9qug1CXLZgxKkLRve*TEhBSDXZJo3gPnU9oUdk5Rc z*e*RX`q5uMI_uG3Y+-zheRR*G)<@ew=N|p)(bz}b{3i0P^`96~H$i+u= zkD4EK^^5dt^&77X)ph86Spw@~u9{wJ)x7*e{rmk50nW4M&+eE#|FOEqT;?pCQ#i*p z&>VO(EPTG@dDn&d zg%u0OzcBv=%L^{Q)%~{Rx30hQ{hj`I3BRlOUDxlNU-W!&{)>?>T3+mU(fK8>m-H{0 zUut>j;!7UCpZ|Nq?<;=a{d?C%x=@Zdu&5_#MBCi^nhVT5`_soL}G){gTKfH|l<^3($q=Vs+*vg-cqN zbS=5KBv{LWG;nb&%VqDdbF6=vGTKy5$R( zhcEYCny}omyl#1}*0H>0@jKc%t$(?n(~bVlE5@(zS`oNHzrwttWkvrA*HGV3eP}{x zMQB&3^GeT^3s)wrtXtW?a{Q{mRgtR-S9Ps&S?#+zbamG1*439+dxk9xO9-nA>kk{h z=GXo|biE&n9j*WLc^bBXr)IS_64EL-6hGglW4SGG4fiG2?H{)Ks8#sdHOF!9n^8#j z+wxOmWTD#sH}ET)ea`f`B3+*YzIES=ijcgEKdGynzt24MYdpucxJIt=xP6q9c}?LO z-`hjJH5T_BGBG45BrGH)q$H#*+05ZuX72%qTv;ecUs|w@IpLOWQA9Rw}y9zUk-O&UwOCZ`uXc4*H^6XU+=oXcY}UI z!iI_sT^pQV_Iw%7VJ}C%Y3HSx zD;}=~z8a1#L2i~;#a8#K*g9SnTmP$KbKWSn@f*eFwNY$=8^xyID7MIrVl!_PTj9pS zjV;)^uwBIF66q4@fz4NL^CQI;8YwnIq}Z||vmz_x)*9Iw*)6xrkz#Y*tYKug`2WWEv9~xYn*SKJ}x1yBCadWIo>mVetcxSCB8NOV*L07T|#JrIiW70 zJHaKA+a#ABk{|``;%TsN=&Lx`aEfTvM#yh_0VLm*ZW^LC)Xt>ywROp@kZAh zE-79qk((E$ST?tAHl!4$jDNEuMfYatn-`7aW6UviG2JnS*uvP3*vqjZi_0kqaUNR& zw?xK=Z=vWNiCJ4(wzwqrZ=ty1uV=mPn%eTZZ>sAXzHjK?NO(h^>b%)=^Zd<`n-fyU zziEE6?#=EuU820A3{izq9Z{E~JPd(`iqvpJmZ8PaZ*YzFjZTQJi0+DZHhLQ88zYSt zW2;dY6B^?Z>lM2&mU8hhiJEk!s*0#;IHyr9JkwMq=BH66l!J&KndV`zq_w79Od~&8 zrpS2bG?&ErY2(fF%?aifbHCX&-8WsIo{(OV-j(jW)pP6ot&v+TTU)nY+&Vr(ml2v_ z&Zx`i&Tz@}%4|(rm}$r?%rU65fjbS@>abnh>AA~ummXWz zu8v(UyLH$icUSE0-|ewyAvW`#);(E;9fdAM7Ykf=cV+2{B8ybq{}fgf^%r>*hZa{9 zUoO@iOgPwaaD2(rC5ubDOU2xqr+oKze_0CF+nHrYuYbJkg|d=2+U!=}tM4bit?lP@ z{*BR_SC*|TqxVgl$`Z>aZVuWUwt3>_l+7iew$0}^kACy~=8138-q=}IR5tg`HE(Wt zv-C}}Sy^^}S=*abi=)@iMEu9g&cCVrw85sn?ESLSWtDgLmwj1wbNSJ`{haP9zrTED z`QzoPez!#}ET0rLYSi2)Kc_WOhVm^@h2^DD9p&v&m&^Yap~psxm>F9kwidZ{ zRdiKcl$%SXOQnb0d@IE^zfx?Wm0~kgiY==$tFi)HE4FTIm*wVKB{t70vFWPBwy;WU z;ZR_x>V8o%lgYYJfF6H+xtN}8on$$diTxc*dygXH;#^(7!wq8-Vhd(5)%|%64MrQK4x_6#Mq$Nu-KH? z(Xl0wWC*h<8GB3kteOFspUC~fpt{I{Ca_Vz# z`m~#80L`m#)C>_>Wy*U4-+#C!in5ZQjEZ$w*j-tZul94LeI+Yu@fhDa<8RL5T1$sL zJ~uVPf%#FUGw2icA9D8p-?72H`c z$NS@dUv15e=0-Y}zU|)sKRxEw?bhvsjW7b+)%{D|m#*pC%V#CcO0wQywf{!Hx>p?% z(lg$CJh90ddjAtsZ>dTc0c=qzdb60DnYn2C{`wV!l)8RSIQdQWP z71`3*g*uTvuBO#gu~4+W&EC&R*`ume_zpAZ%0~8L6ZSZZ;Z4N%bE5cUPZ|bjD*LQR zT&cbhU*wN>i`V3TZG4fxpHmC0)%*kTw5aA!@vpW2=KNL0V*c0G@B7*Re~mXEzUT1F z!%rVxc{uv;&cl_5-#>ii6M#<-U)OX`6Kh)B6y3DH>1flZP1hZ{=LkEp_(=4T{YQ=- z`Si$j&G$63=Ecp?&HI~=HhD{UPQS-JOLkt?=;u zx9*n9Ev`q0W~VzEd9>o_m1^3zI*wjE>iU+~Tl3!vf6M$<#akV3U3|;+ZLhcIza9Rz z`R$6gJKnzdw(C1y@63NE{2lW<74LMsbMYP5cfH=7|8DrZ=65UJ?RfX%yRLum`osJ` zg#W?(hl)RR{NdssT;KD0PsP#y(eOvhAA^%x{@DFT=VKnnbjS3^496_TT8>2|bsuwX z^JvqxWhUv{3~lDOtx1-)mbUIT=XQ_w&LmyCzTMDnX>V!2_=oOx=i?s7b;tF`4aY6V zTaI@hcRt~9LU%%c!f?XEw@XPaC%R8Kceo{cbm%(t9fl4|M@vU{hw}#>ALu^Ne_;5) zg01C)?hl+l^!QNsq5ea|hn5dpKJ5O``A;5y()~&QC&QmCe`@(t_n&-{ojW}`b)DgF z={pUb!O0QHmd=*W?oQ{AJU-HWoYbAf_({V_%gL6L z-6x$-btZe9x|FOtr9WjjWjWPys{534mq(YbOW$Saa!avvwRClNIiL18?USNA9h?%8 zqCaiGW;vaiVohl|-F@2mjK>+>8T}c<8OxcLGu>yL|J<44@n_wi^?x>iEPrnKbN8Q} zKlb=o_p$zC!^f77TR!go*!dHWPjsJLO3{B}_{8!_%O~BRxNUL%Kh8ZKJ-Qx!kD(Q(0)%OOc8hS0g5viG}Exp~n&V3$zx;}lMq0iFS(q~QW?(0l-?)P)| z=-2h@`!A&$`Yru#X+CK!{oVb}pL=|+!>0e-@VVvlme0FCcm9jVUxL$ge~C!b|0Ofc z@E2=ZXWFGS%U@dl()|}VvyVC09AS3;s|PmSU-f@A{MGW;mcM42yZ`EZ-s8OPyw$8f z-)X*NHk`MdZ#mz6-uZ7He{)OsNe@oPdHg11I&ZMl%Swflm{KXm`l|HJSP z%RhoMTmI4g59cpDzR-OUk(rsP|HANv<%^aty1#I~Y|Zqzth=ngY`EN+c`4I!x#e>A zWw&k4UwV8Qw8Ceb?o0ibhA)G+S-x!fvinQte|r2=_fP#lBeog-Y58Z%KQp&=|I_(j z9{ zzSe!M|Jv}iEni1$&)ja^-u<=nzdin~`?vnzhJRcB-SY3w?dlvF4qo{s{C~Pd zPvlYj4Tk-*`L&V0`}eKiF1^}=z4xK?uh{=*f6f2>y$xsIk*)fMr&{ete*gd7pSO?v z{{Oq{qdxB+DvtdA|H>QAZ)>SKj{N?Ai{D#0)Mue# zX!1-Hj{N>#ov|ao|5ue5I*$DQf8_W7S3hSuYF~Xs(aJ=>UsoITua;B$>fioT+g`40 z6^{J=f8_W7bR1p#`~H#N|Bw9sf8_W7^lW6mety6H$nXEJy_^32y^-JlkNp0B%{JwF- z=KsA~kNp0BCH1{Qm!{ zHw|jNycV5w?m7?MJ-T1&eucktf3NO7-2|Pd?ta~GbPwnz>L%$P)J@iT>AZDQbW?Rc zx@o%Ux*0lO-Avs>x`%bMbogHe==^j#9n)z#fBcpF*}BJcb98~a$8}HWp40{D=IWl( z&C}t}{p+65J*x}WJ*QisdtSFt_k!-Xy5H$u)V-wpy>5|CuUo8JqFai;vA;~WT(<)M z?}3%NRl3!>Fx?v6THQKbxNf~}gYIQrgzgpHtGbQ4NPHagn(lSo8@kQx=zexIhaJsj zNAuXxgY0Mxd&|V$Drax!vA6Tt+ZF7cB=*i$_U;z;ZW?>Hn7y~3y;s9p(^#vSwWhPy z4Az>-TC-T|F4nr6weDlB7S@`>T60-z9&0UNt%a<$h_x28))LlQ##+l+YXxhqWUW=K zwVJhBS!*q8tz)eX?0o}!KbpO7WbY@i_Y>LsN$mY(_I?U`KaIU_X78u7_cPi1d)WK? z*!y*?-OSq4S^HMjp26BPS^GBDzMZx2VC`9~eJ5+*#oBkX_C2h9FKge&+Ot`^g|+9f z_5-Xvm$m1y_I%b}z}gF0dj)H+WbIX~y_&UKS^FW@Uc=gJSvx}1v-Sqo-pJYyv-T#| zeuN#5V#f{acr-h1WXEIJ@mO};#E!?Y|{DS zxs{#FU?+F6le^i;J?!LucCvt-EMliD>{LEGRlrUavQy|5vr`AzsS z3U;cJovLD|s@W+kJ9UVis$r*U*{M2qs-ATjSXVUbGP151))mXTOsp%8b;YwT{68lW zSyw6RDq~$0tgDW7LAil-HL~s`6ZDglo*l80x9mh_`v(w4!bP7AYg`GCD(>vH{ z3p;&)oz7#Y3)$%scDjt6u3)FD*y(z9x`CZ;VrLBOOe{NNVrSymnRs?4ft^WWXOh{O zG0Ez|~K{23MkO>qAiU%ct5<#$uNd~2Wwt!MWX&^Hw9h3pe z1nmTo?>(Tsplpx@v>%iM$_EvKia`fKC7@DJ8K@F;Nb8P8Ua^QDi+HiyK|4TMAowyN zM-y^1AvY6Zn-JTC*e1j>Ax<3Z;vkEIZ5;B9+X{k@IM~M_r?`Ef3J_vdW8T% z=W58SbG2@3gVud0R{Jz68e{~efwqD&v`?c8wNFjxBlf3={izA#@z9Hp17R#4V;Sgg z%ho>Ko}_)62S0fx?Nh5o`z*=;iU!4l5XrCF8m(d7{0hvI^ z&xqWN$jyk{jL6N1+>FT0h@6bb$G8Ku3$z!s50ni;Zbsy0L~cgpW<+jAK6s?*LIOxoG#ZQ5DP=`4=Xv)I>XODdq9X6k9^}Bv~vk25aJ|Mg5W0+eiC$8H75dKraRPrXZh` zauDLBz;DW75bU;~23rnk=Teb>YCI?rggK_}10lau)G!rwNG$_ZfMB17Jkp?>hB>8S zU!-BaX~-oFxtih644D}<$9Z-xeLo1XwjxGGnszP|`k7lnm`5i3Z$r-8F!yb!`8N33 zhFIGWV;l6hqpsWGZ##VKK+G)6DGPqHP_JF6!7kKr7h>+le%p=yZsfchbKIMxo!hqs z1iftJn2o%%QF{ygSx^rP^4bqS`>}8LBUa815NvZ0JEs%`A34y^!M-|x_y-XC0P1o8 zIUj&M)`D{fkkbJiTL)0rT+AUCbIwJ6xu|(AWV!I055M_{QGh%Ppj(LX!aVI<5$cb% z{yaIi@`SAx2fApa7`N|9qJ_F*adW!NWW@KFZaGUQbTpJk|X8TMN_awg^t6_|S^YET8g)u^!*KCOsn#aykBTN|}=hcMSe_1d`_}#<9YLF+^fpa+L&(&ehb+D;Jed}OX2Oo8aUl09y)UFybLG2iLcrsNGtR!K(E{8$cOak1-Ck17y*9aR1R0 z8v`Ot25kXlg9q&v16zHZPeoBMZv&9HP zK3fX4o>b(S8Vf=$X_!;meyzuh`I#Xz*MQ(BeJ2R&cDQdh(E8K6DDuE`ZM>$cll*h<6ZkKZu+UB5n!v zOE8}j=$BxhmDGSR*HXkN#l9*<+)~6XMJ{F7Uu7vE*p$H!&Z(Yqw9Bit9$d?ND)P0S zO3bbDh}KhuW2FkZRj5%FV&fjKry4fZm{&FQtFbSv$lZ#4V?~};#I>S6xaaGsL7W=w zry7jcAeUOSYq78DkWW48SC87_+St>8{nP;62GqL&z8jHGBl5xd(bI_e9ESc8)c;5^ zs7dRM+6CGRs?&N6iJ)RoIj9D7SnI|0vKRMjy}0-4HKL7s=3ZPUdt(zorCP6Px7LgM z+1|J`try30FOKKl_ySN72)^R2phKVr&=IXSAr1t+1o%pTZo+;LVkbs{GC>DHWm<0% z`Z&&eli>%~o8FXqt#?Zd2=-eLdrJ~17gVYBrXqh_Q+m@dj^n%63>`D_!ZF@!uF!hZ zk#9O=={vOEt(fCh$hPKby&15{z*xpU&;bzg&cNI=;4`BNgc@WZ?+nx_6ZvK$UMA$* z5PMs?){A4lcL(OOV-E;EvZ6tVnT7dgp>{h_pPiWVF2uyOrgv8kC?AAz9Q(by4It!> z>rU?;%y$p;aP8^c3!Qz?-v|FV#(OQOuLZT-pA0f9vnK=7HD3PLVq&0~@~=Rim8e%G#;Sl- z$g2vqsKPvP9`xc~vbP$x)yTOTbFRkzx1yF-)W8b8L-2D5wl&zVHOQkDGTdwS)?)wQ z-m$k1`?nD_Z-mZa)aNkv-(lo+82L6q)`U4U;n>2u-`j-!a-?4C!!u7`R4gbNln$!W z`fyL(XUGPXfyzNmpd(sebOI;|R068h`tVHJ7Xw+`4p0uL08|8mJPv;18nwQ7_>YeP z!GApTa9;Gq@6-AcNh?9Is z>q|kdDO*A4Z$Z2*&`U*rxbN!2eOF)VZcsi5F>t@tmj<~Ra`SerZ!2PN#n@K(--;YF zwrPEt2eiKJDInAY_egy^;C~1F?!dgWFrJkLg3m1Y#IfC%Rjl=4J@4Cz_OAU}-|j6S z%zqEY_h2r2;bSj+?Xzfo*{A{5;*wL2ert7-2ueQ zgOL#- zvf|jl+T3>tbv%SRVr}lLLA`4*UJrZRv-CA&Xnl=&AmrGH7>x~DAMQ!|n&6`eb8doe zlNEGG>yOF-)oT4%fBOxEph{4q)*qb;GJ`U-emv*);|nL_u>7xzW3+A2KV3nIq;KH210HJFphicejGRbd8kWXKIovQEQl!}ixhryjoQp;wO_8&Hb|)U5&g57*@W2Gpkk_PBrTZ^WD$F^+3=Kki}s z8J}>utxj5B;Ef)cFcaT zjNQa?!7`J;cGQDq$AIPR1uHlRR+8g?!Ls!L*v+J#c4dHB;BUVr5$s?xSQ!L4QRwC*)`F!#IcLjOV#p;Y6%KMzGr`OyU^@{! zXMa9eQ3_Zw^2@1g1gl1VISpp8!_;cp;(y^l0+bIVm4a<42HSxo5A3#rWh0FP<%hs3 zG4lgW7GemVYd~tb#!6yUU@=+5sFjcambM3M2d0&~b0^rYSg>3K&n-eixuuAaTNwpb zl?K*i^1qN52fe&_lqoME4lD`&@{*gtwvr$N`Q>dR>0UU<+l$ol4#Hm^rIuHPN#|MN zG_Mh5&uc=N@{LG0KNYpg&w@q%e#|XD7YXH8!b^Sws+Qka=6|7JJM;>+qhJNQp;AzW zG8I^B{4W&7BIm+5l(;Y+85E|$Rbl!zux$ugc(C06LXi=rD~f?$Q9QL0QPZL=@K>}W zig|c2k4M?0No?{1Z1N=L^#Jn%pUk|xn3p&6n!>!MGA|$IHH~>qXI?XymoM{vfO$`1 z-jkWP7xVUJ-cy+OROao&yr(hm>CAfu^Y&#^9$-@@u_=?;6fZW#n@yR*rc7m1eAtv} zY|3;tWd@t#%cefSrcPp0C$p(uY^pb#I)zQ0%BK3Tsngih>1^r@Hr1E;JivS=F`vn7 z+5>FbBsTp4HhmJC@c^4KiTOUjd?&G4v)H2^?9oS=E|{@!ruj4f$C>{N%zqPmjIqZe z*_?T7&U0+eayDlZ3k+m|kF&sF7WfN&P*0b8}4ty;}ig|SsHv(+ov>M*u?4O_jDg?Y2EDJ)FK!k%Mc3s~4<7Pg#) zt!80iENlZ?qho7kvo+7LH4E69m26EITeE?!eU7cuv30ZAIy4rrbxYW~4Q#`Dw&7*= zN+{bHs!j0n)Fya?rhuk`d_dDc(?K&pz91clfi#dmC;&7Y^cZLkC=m2G=n2r1pdip( z&{Lp!p!uMuLC=7m1qFki11$hO4_XL%0i*{l1}yklL90NkL1CaZ zptYcNpm5N7&<4=Upa{?_pjSZ~L6M+Mp4y~IlQgf%ATN+NXbNa5$OkkHG#xYpWW@*~mN!o1P^V(x`HffK|(`$i&f!dSL`fE=ft4h4w1wt%BYv#9Y00xwaa4goUow!Z03&@vyb4we|X? z+AFZx2s&D>fo5y(H?Gmz8+D-BpyxmfK+8d^L1CZ`{u8_=dxCip^CmWh*i>RZ#HJCO zPHYA-UodZ2Ozw@Y^Y{7`Ypxfb`oVU``+L!tH+8+K>rLG$)SW`zDb$@x-Ko@_N?jl7 z`cT)0y3?pTjk?pQJDs}IsXLvzGpIX*x-+QjOI=^;`cfBl5A@eh3Y+A=3MKYmM=jJN z)W0+LqiFxm>dstZ#l%X89rEvN0y~*@a<~7f{H|*MQw66E5-TBAO00rdC0JK1F%z*k zVhO|&{ZAESdXUBr(pU-Eme5!Ujg`S?T=#_BQFWxyC%39(WzNWl__K^jehXc~*A zv1l4Ip2{Z%Gb2fjWM=G&AqG7o=^05chV)`cFNXADNH2y|Vo(Dx=*5s;Ea}CPUM%Uw zl3pz7#ga-ashCJ=BB_a_CKLj!5{&dr*wbKeY9b30S;Ub=97*G7ERM$FaX5A*k|2>> zC6cQ|a+OG~5=l9cTqTmLL^4YxvqYGkiR-Ekn1ByaJ&8wiZsa_ca}(!roF{Oe#CbC3 zTR2bUJdJZR=jq`1u!nQcdSWP^Ir1*G& zcv=c^b0hIxyNK`JN4z8t949#O-SM1LM7$Ivo?S$|oV?+c74d{R;=3q1UW5?OrQCXR zDJ~w*IjXTW5vVN(LUCLRK7PJ5_TG7CHo0hWxFIvh1yl5>0=WXQU9Y8B9 zvI3vVxew>lIG@h>49W}m{U+7&AxK>#1b@<%-^fCO0X1aK8$N9QI6 z>Fg9x%At!?==7XT%PREB!D0%2hlJsus4D<2d- z(W3;hx{^88SJC5PvAmu_W&j$*!b+|Iq-mw)hQpb30igTtDMQ4ZL3SM)mF~7)fe09vjkXX+Zs}A z^%y)HWoxnmqHRqzfMfw?0ow%Z;?R`FHJj2!Z?^!8fII=k1fND#;vc|@f3rW0FUCJW zDgMp=%+TUj)KbM|78y|$?vzFQC>Zp;JzxpD+Y}-$uv5L&S^Ra=YYjvx5v#9$M&hRIbHEk#wigfY7UMTl^y>A zMdiWKqT=IUAnJfiFDk)X^~thzE@_Wyl`1JdN0ehdncG!s_d(ghl}5F832F3xe7gl- zf(gVIc(BXx^&7PE@XZ}`(87+xUak`@=w+i-%vFofsvuh~g<&!FJ;oXayogqOAil=) zS#%b@?1L5#pe!EExCP(xK_6qO++Pe@=>t--xPGLG%p&W zbdGQ}s{WIhAytOdV$cz#6Ka%i4woPUDj*Vt%@NUo4Khd{=+K@ljniX zK9vz>YP1NyJRO=AO;dDW%9FrManE+HG4*WYPTZc&#o3GVun=F->y9n;dAoia=T5%o=>a&h$BGm4?ct>DK3m? zH>#nl3WlL8a$dG7K7@eL4P;0;mORZT#CI%4>D-LRP&%K(e(WkyZw!e9jWm;J%%m7Y zwC-|qQ4bnIO~?hEwUkcaiU+7Wvkied{cK+Zg*5E z@L+8BK`UXL!~}^+5>q6aCDu!9l-MNkh`^F)!ciB@F%_VE-l|lsl(-A#B>h)7d}F|?h(>ukC3is~sU-?3}SG%Co`sNp4!o9acN5#fvX{uIS;Q!bw7>7J71drDfjrDG{pM zRKw>`=!`QK$2FE5oOE>jyJ7$*pSZ@z0dcm|B87vQG{i|O58W(RoF@fz?85B|b+;OY5!=q+9~YRUjz`QbK{`FOd8Nl5HR*6iBv#lu#fg6i8kIDXTzA=y9@r zg1kIIdQXt_35xLq&G$(XJV}BlY3xaw$CD%oB0&(v2qKHQl*?Qin@efTCBa-Wn=7QS zolCZJ$@VEyeu|WzqD-HnB%eB#L<|;BQKnB(rt?T;9=Up&T2G4>RGuc4r%B~$%Iaxy z`V7tE8B%%XSRQpDc$T`)lGA4?jb};ltPmiVXUQy>atS8)!Q>#A5(=h-f{!Hdt7LtR7vAgTwT71B`0Q1n3EBs$ziNTAWyy$5jdeYNV z_Ik=*Pv?T35?@SS7L$X;REQ;HyM){?A;A(dTS~2^q6NLBRJx@!-=$;`LLo!QEQCUa zQ0YR*B7_nTq2M888$!WDD0m3P4Iu|1RIp{Fyqp{?r?|^0=jG&Oxe&m1IfYz7(iJqe zf;_JvrzioC26EvT%bK&vRmY7(p_!D<>?O_Nzof-n+xeK z(+xD44WzPxj{6NHc$vB{QxRV#&o5IhFO&3TAw@zjlWhbg6hSc}$V&ue6+u}=&{+{d zsYQ^32#Om)aU;l81f3NTRL%&RTLjhg6`KAlBz={fzDiDCC8w`aF0WE9uaeVONo6CA zZKSbCQjR3$NK%d@FOjq_BS|Gvs34(8vW+C$O{BbulsAzIU68@JprY=EqXoyJ+KC&8 zw?((#@RkV%#ACpB@OGZ$G*V0LcaFf-4e!>#*A4Hd6K^*oG2)PdLlfLYye;k&?as9fsXhb~1rAJ75+;D6w=g8!EERBQH zcr00gW7fxG$?A9lc|M-brRkL02@~gOq;n#Tx3`k?1g{S`jc4-lZM?mWx3_b?gJPZ7 zK~ca-a|a*a$vy1l?Hn%6;nEyAk_63s-Y(|6g!6K)Q_kB}+yk%42`eAB^6^8weTcVf zIIrb7)bc2`Tw2S=>$!&}YIhh(3XTlH#Rzifh~w=f&Qmz&v+JnF$#O%7mH3BzMj!J1 z{$T;>d{{`F-#!vY&A~J4Zomr(wCR;o+YM(7oTqc134WvQSTqi64h8{60SN>qA;WPl zdR%5Y#$|EGVrVd4K%!8|ITlTWC~NzT+Od2Z3=k0rWDj1b2QLA~VkiOumvQp|*ugvy zt}*x|oFULt!V3Wg3E+hQUYvr~8yh_o-vMC@cY&?Gny*31_>G z<Tj3&SyG>n^noZlp|B$q;~9K>pVTL$@qJQ{kovi@PbmA`u29A; zlyNJtj8onfShfX+6l=H z$n&a`{t3mnn17v&Lny|@{EtX|LK;6J^$5|&#g|SDfwE6=FwXZ2M={RhpwH{fQH=9A z#}mZ7fV@6HULPRe&$zJj`q&N>*bX#~zR7l=Tw;~L3X`p3Tf$BJ`8?6>rq2xYme>`T zBr!!|szkHItrF?A7wK=8h}UMkPwy{je2+xDwd8%g&)|rcs2uVBmm}UMaO7_wU;rk9-rSKLkowUwKD|w+aq+?gNbi2BFXQp|an#3K5k4;Ch!-Fj z$IA{rF8xOzmVJ8V2s@)eVvIzSME-6Ba#=q@%8S2cm&p6Fj`SLl_wm-0`vvm8tfzRz z1ACdbv0UoW`$Y05>t*EmjiU3Oj*$N&S~x~Ti;fE3!cjHQQc@gQd<<)Vlu}DbX$Y^sa$cE^o1;)y|qb zOu&r9Vu-~OGZBj;7EdgZSQ4?V#4?EG7lIWKtE$u75e_W&W6ixQ=|!+)Jy=Qz*p^VR z)G)BLa4>TOSbC(UBd7Eb>F-WQ2=Se+{`@h@A4i9w%^%kQ;`Er~kM*25J;M06(_;(q zcyM}1@#m|sKh{=i(@N@(^^rI|ZunzuB2Ft2zS;FrjSul!U*e4c{wK|n9|`h5na9u7ePd=Lj8dR@s~=2rkI0=5W96_6&t+*Q6g;M3wgxEGi$uWhrjzvvn_`y?uH z((tsv=;vl5bMiq*P6)}%Y};mQ!cMlU<=PfK>40Mhs(kYAZD2nXS!;C$>7{QzXTM88N6lMPBgq zMQm3E7*{DMG~&ss&iD*YS+Hbc=;Dd04Gd<%WD!gjcm`?%Lqd4eAqD{+bBMtL&o+fd zJjAqt!7PNv@Z3^p#8XR~5zj1jMm(Iffx$DLL5RT%oA<$OO~GG-u{b+{@8>*+^8=jca-PR|KIa9T7jj<2c`@e)IWOV7 zl=Cvq%Q>&$ypr=O&Z{}M5;t)_Choz+J(#$aiCdYtm5E!KxRnW3{(K3ZfBslmzXWlru@jh`!9rEwnUpm z_q(ON#B7N+iSF)FE-_o8O`^Mp^efTbPxNiFzex78)wo1=ozQc?NBWnTEzu^?{g+ZM z^%u#0wnUpm_g@LUY>76B?!T7y60;?`tNpI}_ewp919H{BPs$}`OLUj}ZIP_!B02AD zm9NT6`mrgy2{K<#=~wk7+9bLwxkQ^p_xq*&0}>yUe$==`n?(2DNV&vpgIaH(n?!fD z|5dy>(oUjHqPx^zr0@=@=PGc~TLRU6NqnNX-mCtKP|;WSH|y;B8}0g0c72=2FU5V% z^Wx5EltuWvSKbGye$=I!an{w;XvtUOL^3#2Y9^6KNk0~N**QU+3SA8znLM3;)Pxx2k3YFY%5V_4+_`hBnC{*?ZvOZ(vfI=m2 zmg|VJQ>f(c4I`h06Yd-2b=A0fkDwLLNsq$pM8*zUarIKJIcrp_0eT`HhwX z3YC20AabWQ!vBw?fkI_pJ4pSae1*NAG*GDQ(*~)JQ;67qw@Cwq%HBOd_;-;53YEOs z|GVXj29Z1cMA)nSrcn8}$@;5tg-Y%>S=g((DIAb{2>Fe2K%tU5d40Ei)FAfFgUKfd z|LV9>I1u0SyXDP;%)fb%`DYJeZ+le4SNm0=%Foa5yXDz~$fE{{ALT9ltNo@>#gAGi zj!#!Ppm0Dw$noPoh`f0ax!)l2MT5xQ$BFr=<5r={-!_PS_8@YnLHwKK`YA8(P6}0g z&*kEJIYADn_hCvt_BN6KI60tD$)oNOa&=xQRC1?EA^(+htWe3L20Q)}h5c@6pitR6 znT5Pa4k%ReD7`p-ekunPDtWV9AJx1S4#?&8RMkzPk}sMo{Hy({P|2Nc75S~7sh|L+-Z!6ukuo;?41?~xjL^ED)~lv{ZrRPg-Sly@iFNYas2#78rat_ zO&))$E((?Z$%7qVzZCUT$CW~5A3wmh}>_P zLHtMk_PhOO|3l30Q8_<_%D;Q2sL%6qK%tT^sups!E-F-VzllPw?i&;i$mRL3&MSoj z@)TjO)=h;It$}rErFh;|=i&8I?k)|++R3l8lRHVd{X874!>Mn_W4;3J6SAZ+}`g8wPIWy7kdjtUp+r7dxh)d=O`N`E|T?)l9(;AS)#I2 z>&h3>Zrlb@CpE70l-ym))q3r$6y>e_IX6x*{k=1&GNZ_vNTX=Zy#r8uihsP_TEJK@iPpv{wqZX_{S14e|2B; zWrgV9EcNpbiT*7P>|gm*$klb(`(L83?sG4l7Ja#leZz|_ad`PRKO@#(_1vv+(eK2# zTBj7M^+F}0jvLhZQ=$&ki|HC0A&#=csRUaDP}Z#QOC)uy+*Ce%#UgFAQ=1 zwZokMA_vE>eV&f`j`H{WjW~YP@u1M&&sh0;J_t z<2TP0_pi(439iugdoli*ESy67`>RvK%->P{`-XV_II zQcoS93hm=K>QDYJ9lu`;v3}XvqE1iC1Qj;-efzlm{-5_>%0Fs|=f9)<=jS8xSNBB< z?e{}eyU^Pt1q!pX#P~gOT;VtN@2`cPdM;IHAIDMOQU0Sw3BT&PtI*!hx?vuFj^f*1 z5b@Q0heG@Kj_k(`F@Hz)QA6B+j_lKhc>X%FpD@h)XAIHaZ-c0_yDY3i`#L-7H_P)x z?H`4X^zFyz$UN2hsIYm6^^bZ*|L)HYG0ryvivdUZ`wg*ve!ms*)%zKR4#ItNc$%{*4RQWyQcvC2DYTE{sP8C#`4HnfvOh6Idz<`zl6t?T&{4kj1X2jQR|(;q3-{AL!7^#jH8~<6n-(x{G*1L|DqBx&qZ=#3Y}WT zxUU>nD7ypTsD6I(xkg^>>ti^APKoCgZ647KQfnbkuhgzkG=K zk8&B>I`@6!pBQ3%NBKKFAo5c6P-vgWSO?c%dp$?}al^Eq{9n3%ar(KKzgjmG+RwvL z{Voi%{^R6vp`LdY4mJLSVcL(qeQ3v}qxsJmX8burw6~2D*ZD)TFbbXS5#wv*xWb{< z@A)CdcY03LNxdIaXdlN>-%<{y zaj5pgTz?$JUpK`1JF@p1;`$RW=c)FKLbbmJ#T{b*GpVR>(VxV)PL3`sO$4}G{j~}PU#eP=b?^D<}%>2I?rhWM^=RZoW zYihqKwBLW(5n}$omI8(DabjG3k4d4upK;%F{j`riVVLXB30Ws~UMjSYChZtAuxkCH>=qSG55bxg?Juc#? z^IoBS97p}h!#sZd?iKOX`#ptGL(KpAVeUUC2k{-v*M5Ag{C%W)K2T_{=cw;!|4km| z{+~BQ`x(RBe~$8BH^lgk?9+y6-#o@~{_7m9-vvXo_p1}}SIGnw zHt!YV_sMaE_VagIDD>32t8kHgu2bug!f({!7s6h>_fz-{Jvm?>-|u_c+aE`@!#sZd zhI#%+IaojaR*1T&>xn}9y384F{O?&m`}prUs^7~ZfAxJ3h4%K%e-wJ_r9h#rK#V^q z#}(RtzL?!D^wOoCLiclG{0TX(P<96(&B6K8JjCl~vwTih-&;}G{J4m(j%S4ffn{Uf z_gug1?bi*{zWH||PxZTIh4yh&-~RlG+9vEDl?n=*-xA}~<+wuSN8u?4$4|37F4g(2 zP}wQ8$@4@#Uno>^dsO>Jji30Q>$m-VWSWEe_sMywdMQ+K6_z_V{*-)BoG$9D=B3b) zoqhi04)S+oZ$Iwn`u)Wa=ie;XiC;;_3jN~6yvECMh4yvyb2R_|pS?Q|`scU{J1++t z8;AiPfFX$^Y=aF1UrWFV3lUHxU=nPCAuLH5!8*a5VY3O9WT~WOU8BSHShnoe-PU2Z ze5rM}4oj_jBun;4mZi32ORc+gx9;}6pZCnSUHlq7`8{5xwraN?{qdUVb9#DudV1!0 z^!)yGE#ID}ZQGYu?^^Ty!_9HpcCVw>_?K_u+xBma!=GI9wck%`+dY46jc@mT+it4+ z=H_|dwdQNrrEOobiEr&~+iw=!?CkY(Yxy=Ww(YNMvwYa%`O_b#g+hrana;m|e|zI>tM=@D`C9%j zHW}L1d}xh-^(MY;+x*h%+w+gtd~JSg+m_yM`}5!X+O_)wtf3%T(tJKZGZo(eb(|nv1w=9nl0}C{^#)Kl(qctZ_2l= zx^a#FrA>U>_U+&6TfF}5JT}$t5udXjr^UDJ_}y!KJ6_wia&7zeXL$ep#WO5lzQy~e zonLGJR_lkb`MVMAdbe#W*S24{Z2kXZ+k595A78^iu*q=agKN0W3xDwK>;KQ+{(sQE zJ+0pDZeJVLoO^Z!+C2Y;&HumN)*oHAJ)XCl|G)hogtf$;UBOoWYd7WF`FGiNTmLJ= zTB5z5?YXI-g~Z|ZOD?(2W1{qvo>ssEX_zx_Rr*57+< z{%hm&?VIb^!Y#dRcQ^iz*<{?a71(TBeXahjzK`s#{{MATUu%CmP7AmC+wt1<-R}5l z-z{2w{q=42x6^C&|H?MUe|ukP?f#!#{|m#~vi4kV^|y6MKR#cwY4>*9-_{db)!+Be zw_1OjxBC8X{oU99s&BFVFWB_YR`vJ&^R3qZ+}+gQ-@o5#{r2j$C-z)7-?ZINt^KVZ zznNjP^S!$nrzh{G{?`6BKYy$Bzb33DTK~85?S9=|`=7U)_W#6g>fc@acUOOFZ`(fW zsCB*4o+sxVxoi0K-QPR;_z7$JR{i&PyZYL3{@>cZru(}{-!N-?+xL*mPTaNq_kC;) zxBn0AFT1~&bW&ITx4ZQIyq@2k|Giy*et(z#BVG7KUHG!D{ByhX{`g;gay_569(~QL z*Y)S$-(>8=-`k~M`VZIqdv5ag;S;;`{krhp|7I=!qnq+(zct+6Cr>$a4Zn7i{>0C% z;UC_F&pBufx98a3I&2NUZj&B=c@4j86F#d8AAa$g{-#ZOzj@;5wSU_E`qq!E;r4vF z=%h8=#`g_f__-h2HNCI@vabF<{b#$s-}7)6Hovw0eVsjid)@B6*@n$FZT|k^UT<2{ z&1SpDn>YD4+pyX0`5SAz+HBKiyVt+ml;3Rk_{~lE%{FYdd%k5;ezQ%R?Ov^&-3eaX zjn|92@Eu+F^e%jN7rwCzU*Cn#>cZdI-5<3}f1(SY--RFR=C`+gc-Qgqd)<8a;x62` z|ChV*@C#k|fA8j(Z{KFV zzj0!li2uCJzh9=dnQz!;zHyuR^fvQtb$VJe zzht@U$e-OR>obaPFZ8>qiey(zuwk`|3i1auj|g|XS(p)FI)R#tN-s|=lZSv)4mh@f9?8x^LE|h z@05S@_WgzRdw+ZHY1=ma?7c;Lo9@CE>Fqw;^B14K{&ruhEz;Y4nzl%9>+-#R>FMil z>v*$8dOOcOw)l4%+I8Ri&1?NF+_r5x4X<0%TYK8JP0L}6@@<;k^EaNp{-}l} z-um~@|5o>RJ>Ry8|8)00y7wmj zoA~RxcK+v0{GWC6<6mv!@9ySBwTb^kcijCp@vrOVb+?Is^(WT$wCgx*;(y}oHNIV+ zLpSknJZ+6{*Kgd!|G-Ua{0lcX%=WVe~dp7ZU6MuL&FMn(k|KnZzkKV+;_l8~T zH=Fox-k+PD>p!#RYrhBeK==NUpIFn|`}{9<|6bBV=dS7Px}APwciirKz}?+>Jhyv3 z-1gaB+w&hUUc>Eq@xBYza2v<5`}eR;>)P{U-SIB%#?AR%f4`->UVqj--#&fmuI<_T z$~D}s*KMC)!|l4h`1&>6`gh;Q)^Pjz+#y|h?#^fb&+S@Y|GxgVZe0K2&1?SlcY!|B zwWq)SzuNWxUv}Rk{#|!J-PWxqjy-=pUc3IsowV)T^ByAtM9wJ^R3U}s{qr;3{5N*>|JSbmf8FKZ ztE=zdcKtPW=|6GNuI+ncmwrq4{AuG`e`+n)o*S({fAhub_qq0a?=Ak_^P0cir){0^ z#tU~n{(hSSy!82NJ?-B&Y4N}Ig*AV>|5`n7=;ocaPI>jOul2lQQ}3|ZKKr$6{GOX| z+x%SDo|gZ=b?tBQFZl7bp7#B<9rr(V^LksCUHwCA{`PnITKtdSv7T3Zmu~&`^IiP2 zHU(b)3u`^?J85hGzv|lmf=&KgyMJe(#s5rqz4qDUf7Kh-`hR#+am)X!Tg1Pj>(AEC zw{Fo7|ERmZo5Sw$$6fs`{_8JW+w;;*d-mCEPwe8`asPdHUM>FQx2*O2$fkU&|Kh%$ zO?uiQ{#o63yS-lX^y|e||E9Wc{(D8w>&mOw{*TMIb$c5ZukP;4y|!4dw&S;QZQGYu zuUe1a*5_^8mv7_yJGw<50>wMGJ&FYue z@@?JSwyk_S{}%s>uKZqGjGs2%+O{3<_2;a|Z|fSh#r@ODwd1#S&(C+|!*0sA{%^;7 zV^@BUE$+W|{MPU7dDs7(bgO?CuH7%~{@-fb#@Sw*e-E{V+xDm<*8XbOqs1T4{d}XP ze{hTV=XdM7mjB7kI;-__JMXV-5&z3(ZBOghmj8!NSmRrNwe$bAE#fcV{JgD=%a;EO zA6@Hdu>9()~~PLBL3jp*Zgfg z((?aFUgN)SGmzW;thR`MO}Fl7`G3Fry~-B<#;>mRx8L7s*X<9sh~IyY^?BZYPr2p) ztM2zQ+kOB3E#m*`Z?E;V^=8Ze(eB@CYR``=wut}PZhhDC|ATHF(c-`Ss`a>S{n(x_ zKlo!$AAjO&*7!X){onFm_A_hz4{zez__}+G_^bC?^S`Xi|C9f0jeq$jzKzHKbBp+6 z|HYdB6(*JVo`3$kYyKbI;^8&izGwXFYu9k=x4C;CI;5-bxM%O$o@=}MZoh8V`p)dWFPwMp zuI+g$tl>6(U(&r_zN%~A2|v3Yzm3ady8ig;C2M_c9KY(CHQdI_eS5Cu+xybLx@}Ew z*Xf6TWKD1H1z+gCADz|Je`A`JC{5Yq-5n>#l#^_M^MzfBB>9@!NR$M_u^ap0nm}eb0Pk*Y^CUH?H~H{Bmda`$aGN+M2)3 z|0i|#)33g8E#KzpH+^~6_TSmPhwk%F*8FY!oq6k;zm1=7+^~k*{kM0Q|9|VgxBhfD zUSfAW&iLZ4^*`sPUF-k$?t9f0UH(fSSo630|DSa2`8V^L-tPZD>%wp7=7ZC_@%(q5 zwf0B5{>OCl#gSeA|JQ%KYyaJH$9nv>F8D89`44vIbNjh#{`Nfmqs@HV=HYX@?-;Lt z?s~lT|5H5jlWVv=AK%!W&qdwwZ|ttu4d1bAeOGt$>nFSZx}m$jkL}h$4|Ma*o4WPZ zUv=Z_zHYqyVmF`s%dS5!?dHpubo0r#J-F-mcx76{Z9KoBYhVAsI_s1*e_L<$=`FnX z32VN#4xPI9iLLVe+oRWVZN1*|J*WGwy+`++vsJzqb?f(*?+?57J-Eej`+P4sZf#$C z4`}uMc~{>-Tbys7@6c`Ld-pc;9k$JUhi@~V-e$gIx5)QTFIoGmJ)c{D_1oXT{|+v5A}1^syLGi<`A zZSy=nzs-FAS2w?Iao9bE?&rE&<`gF`F{KEZ65de$E@}B&!4`&S8ua@=XTHUzMdBTY_|?+@%{E6chBoS zy@lU;+7c?djVbSLbds-#5DVxptg>`~2hA_OPOwfp&Hi|@C;-o2Of z=`H-z-Ouw|e7{ZGJnsLo&GGVIw)tGB-FmHW*Y3hQ>$9gH_x-wSXMMJgq@DHI)8A1$ z>$9itm!0+5)A!5H`t0fZWoLc%^!>84K70Cp`TzU+?3=&9^Yo{`6T8y`J3X+|13Nvi z(*rv_u+sxOJ+RXQJ3X+|13Nvi(*rv_u+sxOJ+RXQJ3X+|13Nvi(*rv_u+sxOJ+RXQ zJ3X+|13Nvi(*rv_u+sxOJ+RXQJ3X+|13Nvi(*rv_u+sxOJ+RXQJ3a8%df){w8xHw< zzwxpW4A^%G4g%x@g#v02CgNsDpsy7SIPef)g5f%01OpZvcu2F5p@LdUzz8!$$WWky zTFP1ypn^JC@azScA%gvq;9!CoG8CwwzAOx!;0OkW!wG_cDgRxm4>D93?iI@8l3HPS zLeOBqf`_mK50^a$c0cyOe3T$~2#`M}6i^=*hJ{ba-UtRP%pVaVWGJ9u01XBvDxD!M z)kCC$1O+N+4r#!FhhcwV1Oth-WT>Dh7U}i`1?mFFRUBvp4eAtO01XB#`5c6$rAv@X zJxnk|p@Iqntr}sX|7J*#-!BwU9}q^`r@?}QuoQy`3H*`(Gej5;7Dh0TslI@s4!>_G)Z>xYFKWp4xn4m<>y$TCBM z0u|H^!T=)}aNr@p1T!QkP(dv>? zk1P@LvUluDWe+M0#|auNc$gqUh6;lbG+6L3L4*tyh7SrFEO?k8LWT;%@qz{m9wvwo z-b)Z>h>##dfePwI4F)VY@DN~v86qT5S{Psi4F)VY@DN~v86qUeP@sZ3 zLKt8K4F)VY@DN~v86qUeP@sZ3QZQeUp=`l{hX51I5FtT^0u|I(g#kv;V8B9v31*0p zAVYx)>TALPBWN&S!GVVW6C}t`po03kFu({J3|MgBA;1JPL`aaAz5S$1G8Cww_7?^i zL4yGc4m<>yV1@_@G8Cww4iE+yL4#T2q#5G@f`QB=T|n`inLi^$$WWldMCKXNQVa?x z7A%%M2LUqAqXLTHzz`V0Lx33~sH21dG#IcDV1gMUB*;*pf;w6lz!sSVJxq}Hk+=*6 zDyVk|1B{@-fCUF00!%PNgajE1R8ad01B{>{(9aXh5FtT^0u|JO!T=*^Fkr!fhX51I z5FtT^0u|K2-YImu6AW0;rxFAQ9s*2|p)5f%&rqPkK*9(!HAl!$V0yPOLjns90z|Gt zUSMfZK=E`QU<3`8G2|e?1T!R1voL@L0~RVZhj+?JPcTD-1Q`lcQ12237(s&p3l2O4 zm|%to2{II@px!MEFfMxsNrOf(FdRb=41~*s2_huWV8DTgJO~98wdA7-f})n;J;DeE zoEJPyFoPwZTMh}+NCG4n$TEUiGD9YzfTGfY>o$Uc=_Fx>v~afUWvHO2z_S-%h6uy4 z!UzU3Z7HA#PMq5e3CuDCz(aruX0R-T9fV~`{9f5BFdZh$kfFdp!Uz@|1Q^~Yj4%&&Fkrz!fN9|g*_$CjfeMNWM$j;mIYNdCstN;WFp%k-0*W&q z?i5BaV8MZhuyBX$O%NeLh5~hg6}Mt<1Pul(xCOF!m|%to3G%Xc4SS$IEljj;h6EE= zdWHm!d>$s4A%gjgU?D)JYyowMFfs0DNRS_so4tZ%BsvIS$?PCNp+OY}Djh+CyF&0V z!3^~RL0u?}pkdgTAQ-UVAV7Y%P(Uqr)H`Kw1Ot}g?I3_9&Ow0ag#-mE4U-y3G8u#g8&%{C?kxQ3mPmq2+QS$ z2njL_bms^LEX)@O5i%5TpAFwfCd92sTwRem^l3z(gG))p@QPHCOT(^1bG>Cpbiy0wFH_fd1=KQj$u~n12?mOdkV!3|NKo{_02&O;5FtYWOJ)ZF zCaRhtfhCKB022)F5=JmEP;3OV>@lb{Sa9H%y_r3jV1@|8hlLRgOcx3>B*=hY2ENs4$!%Xt3a6f(RKZ3}*@& zhR5k4u;5{W2pK92OHYCY59w~{>QW(K3Tq=7OJOr4p79wOQP?tSYD-4$j zBjmG$0_tpGfay$Oh6EYZ8NvV>45ZV93>DPr!T=)}u*)75Snv>_Qh{P`1ie5r3^?#$ z$>$)z1euN~py-2{xVR)hSy+w%1GS7xRb+M$V5H3&EVu=l>tTW!hNFZL3}ng{Py{1c z5)`Q5sVcw>5hgOvkYJ*M84_gT3aF!nKyxREkYFHT1Oo#vH6s|XlywkbTE+n+$jdc< zL`GNy`>5byf=pb6fuIJ(%{jmb8Vp!);30syOR(U;Lx2fph>(^zZkM>+Gf-h*@N2MN z6Ff{1Awz|M%o^-cmb+)*r#I>wQvCoUXfR;GfrkJS%n%_#h5{9oVy=S`rq4^<3<)w6 zsGx2V#w2L4;32>SGsOF)r5P$1TCc8>gaJm-V8AZHWqP<$f)mUTAwh<5sfE2^34#U# z7KWvkN%kg~Awq%-)7>-;(iez>0u|I3g#kv;U|^<1fk1Ft;vhnT3GGMdO2L4yUq1o=^gJwoz12#`M@ z6i`~Q>^TT9!3=2$l4XVj1B_snAX!E*V2N`OAoF9B3WnRof&&i$CYT{Yf(!*JD845S zFoFgH794m8Fu@EF)Wgz@0Y=bZz=8u00VXgH2^Ji92r$765fbEu6J@V}I!Vx9rN_a; z1Q9Y+7?`y5!dGO^f`APg{q1_KrxcnDx9VZnii z029m*A%S^Bu;9Q$fC*-ZkRXG4R2X0c4F)VY@DN~v1Q`lcP>%@%jG)1Qg~Wi%P@sY; z!T=*^Fkm52Y=Rl$QVV1#P(eK|3=k+b!3+@+WGGNUani%m2lvWeh5{87*JywdG#E%+ ziVOuRs0W1sM$lj&zyvcyNRXjG1;uS;XuSmoemNPKV1@_@GB}kGe zID!ES4m32r$765fWr5 zP(krCpaDkEV8AYW{N&7n0}lZvm?1)f3X@-LUnR}stI!u@bVTJ^rH^XUpZ(QCHc_SFXfCUF0 zrkjNs5@aY)!M;y$U^$S3;Y48s0~QAhC3mPnVm=<_=MaT;u<^(}mVSw>$L4#c& z)j?SDy+ig!h}4&%!e9jr7CcN4Awz}XWI=-k4--VlP+|CppuvKN2_j^uFnm@!i3d31~1`8f0h>)SeaJHbq zf`Aj+1PvBEOb{VMh2eZb zg9Q&0M95HK_@to0f`Aip z1PvBEOb{VMh2dgBg9Q&0M95HKxJ1xk!NUX*GE^8Y6*O4zFfdDvU|`}NoFReXM$GRN z3aEDp!-s?s3|MdwAVUE~1rvKSB(O&d4gy$aUu z@MB)R{Hzx|Oc0kiYVk0^02<7fr78;!JOr3vh6o8V6sVxSA`CEsyIAlr!3_2k!9jot zh9iU#45W*M3>6f`A|xnKL0uvYpuxZl5i%60pe_|g&|ryk5MWx^U-o85FmQ|!4A^Dw z-HZ}&;32>SGek&`p+E&S3ImLw!GHw^9s*1-Lxcnw3RFAQ!sk@QntB8S zg*EWVBSwP-2NTca84_eDpm^bMR|y^_m?1)f3>6e_PXlN^%3AQCSvZ7ukU9yDJpNKl}Hzvz1<3(OFyIYEK=xxXzzC{RJY z?+2uM&=6pP2nh;Q7!DUkFkrz$fOzr?qy!Yu*GPj5IPj1lLj}bNj-VGlD#Z*qsJDH) zWVv0?K~Bbi16`%z1{}nbzDH_?3h`D>8VZCbo+~A8lRX0ts^QE(D2$*N&i@X{0uJ;; z&yyf{FTnsasOkG96#`5UAwhu(!F zh6ou7s2~iW!GHq~6U>kxLj`q_5Ks9oNq_?8j2BB;@Q@%w1$Cw{f(8o?;>W243eK9Fn|UF z4m?aSLxKzy)KS6+8Z0;nFhPU_1u6_j3nLh?;32>a5i%4|#|Q&xFyO$$1T!SaP(d9l zjG)1Sg8&mmNKl}{aGWrL0Snb}mz^q%peJT|aNr?923@#N;2=VR0`(m-xv71H5i}$( z7o|W2bBhk4m!Qka*S0o29902&N9@G!v)2{Kermk1+h zu;3uT1QF80ZPHf-Dwx{^3myW@5FtYWb%!v31_KT}OfW-&3>DO!!U!5HI0!I7gaidD z40j157_i_Wzzh*G6i{~y186Ydz{3PHB*;)f-6M>k!GePT6GTW*pu&)a5e!)H5MYJ~ z849R-g#k1eaNuEr8O%j8)*N_9kfDOQScvB{{X+qDwLIiT&=6pP2nh;Q7_JdUFkrz$ zfOr8lLjnD`+zSRAs2~R)K|_EEBBW)Hd{hOXt3ZQp2Z=d zEPEHoXfIH~Tqs!Z5FnmQ2`HehlDlyP4FM*Ikf1{;*-Af8DHC}1v^I0qgQWT>F75aLCYfCA=bc};WRAwh-;>I=dM8Z0;nFhM+>`k+94 zhoJTqG{g&q1O?Q2(t;5*1ehQ~TK3MS1e9g(3`wY9&J-+o2oOI(W+sI<7F8fc&=rDdAX{fCSd>#2I3WxIYEKQWR#$QR?;*B4m{M) z3F-!6gsNqa5i%4| zcMAh(FyO$$1T)l6(`%m*M$iyof(U8ZyIk&t1O-fxdE9}A1Q{x*i-Zw0Sa1;cd5&a; z0{&W#1~WuZ*9ik?Fi;Pb$F_Q>FoJ%Elr`WW9UwRMaG)@PhPWg^S@tsh3>D11f&~u& zW{8lXfVxi@K!X7X9wwL}L52$IeqjW?u#b!;18&*-411twP7pjK$WTGi8+xL%!GZoX zRe^^Dc?n)2sR3q)_sdP3pg;xlfMCHxfEnV#EWMVXK%KaquM|cINk-xf5!7wM02&N9 z@G!v)2{LFdw*d$B6j>Q5CybyM6z2vG;;oX9pmOHwN@0X_fb>g&3g$q;LR?azEPF@G zxfQ5jju9+)2+Q78k~zQ(zVIOr^rs|fz(J*YH3%bU2rxk2t5J^o? zARH`lGel5_2m|v) zEce@T=Y5uZ;2}VzKJ^)41ocjd8$m;WX$kI6&EOy=t|b(x;P2)W7wC6z;lV*APTfPo zz9fJHpD6+Q0207KB~IN-!hs}!15aF75(W~$fv5Vg9AiHcz(FNWEyviO1aMIAB7vs) z$TJFN(ED+!;J}kFKqQ!;KxF<)P{CX*Snv>Fh6ou7)UPo0eU+&X)IBn1kDwvI1Q8Mx zs4!$<1Opa41ehU0hOz{?S_um1Yv}`U;30lqPC7wZ_MVb2^ab=FB@8&w`$!f84m{|C z$N~;LkGlXfL{LWw186Ydz{3PHB*;)f9W9KY!GePT6GSDSXA>0Ax68C-z=4MZ87ind zgb_4Ya1dYub%oSCf`$MSL`YDe!Y~OV7_i_Wzzh*G6i`poE*vQhPf#G<$tggA3i>EXFyNqmQsUGF!U!57 z2?@%Qg*ZjGkDwvaLkSA#8)y|c@SwR`1{}n@rC5Rj74)%W0SA?9sV)*m&=5&TP?jvj zDMrZ%dV!H+z(Kr65)u@spbc5TL1kR2ON9~i!U<#n2k|~hNKl|IJitYHkc$EVCWw$g zTWSFZv5)`-D#QonOMZd^`Y5^%9K`!MF4RYua~>5m1ehQ~f&vwW$Al3KSnywzX*j?P z@m9tp6i}DRF-FigG2MUzb-pk{QZJP1!R#Yg@DN~z2=)DPH1z>t1oI7U2uP5jf}*Ms z^upm}2Dj|pE1lyZL52$IK0!YqePzHwATENsUl>4xS@w>gPr*Utf+i@SkCV0-aNr@{ zBllK<0&$e85>znn5iG>p=tL->50H*E;Gy0lSyUD@1ehQ~0{sD+1`hNs^4vGzz(axz z71XWl-73|qB#aO_%LH{fX$GbR4*~R%90(l56X^pepdXbf$bbV6`gBU+yXFkrt2K0@RV8DUCm6n174+%2pF9-%4cu0_!;0aP+fEn~n zl3>7rhXfhwW%3MFmkT54FG`#N2ObjSCHSyp2{41cSrQC5@Q@%c!H<&}W~iT+Pp9f8 zK|_EEA|xnKVYpcs!GHx10koE57;vC(ldEsQflj1?0}lx@=wk!}4&nn$Ef7D(MPuO_Hq_7g042rxs0^aUBG1uB>?3Kl#Bm?1)j0{U1Q2@dLen41pc z-U5HSoMnI+%*|55frkVcDkzRSf(8o?;+@>xP{6-W2#~Int5u+axk|9$A;1g~G89ms z5(dy*XZkLWoP(U9|hk;x6Zeb7VO>zgQn}reL z1v0NCD9aw}$-1m8uaZ3r9spV1@)4DyXXk%_L*MEz`~CX)`$R zpzn|iV8B6qFV_PqLB)j{!94bzk_BR-BcOmO^62o8AVUSklXC8vI?-odIUhqud$>9C%2Op@MpkFoIsVo9h7%f|0>B zLj?6fVE_#VB8^N?mOYwLpn^G2u;3xU3=uSQlL5EPQe1@qGel4NLDS1#_5S!9#!+@IkOcE@32rxs03}p$j^h;2nvdB`G3nS=- zlO@4`gG!vbf-ImxeL<%G5i|stAVPuy6^1VgBN(vYA%H%P+YcP*Q#m*|NRP|CRiHxp zkPPnv70ibP3myW@5J8_v&EPWT>EKVFV2p90ZskLV^MnhHHfp3|R0GAZj_w1O@cHGOi3bsH_RqVZsO+ z0!&NrZh8Y8cu0^ze}$^RL8U%*pD==cuhe3|frkVc>LY@BR2V@+fC(a`Wsj;7l%>)K zWY2&D|2~Sr3=!1f!T@m@8&HB z($6DkFkqM9X^c~FkRIU%g9_$R!GebXGepQxz!-UuI`EJnLk0CgVFV2p90ZskLV^Mn zhU0}13|R0GV1@`83aAr=0d(b61{_o_g?dmJA=38=3RE!f7c8WA%dJttjDiIZ0cMB` zk8Fh6ou7sB?t@G#GH;VS*VFWT>Fd6XHj>s!*V^ z0#)x662Dkk!5l1D@DN~z2pI~fLxce|7;xZWf*BHIsGtrNM$llvLA-)N_h2czL1Opa4 z1ehU0h63s=VE_$g*;DL+1D|Dx2ADw~E*OYKNKhcYPwu<~70ls+1rGsch@c;q5(XUj z4+sJLL+rr}@%=)AdY!zls?Q1|_%oSMV1@|lEMWi*1{`>pV1@)4;>Q_|P#``m58(s_ zD(FWU2jC#xC9N+|!Q3ra@DRYfjG!nCMXb3VQ@hK#Y$@gy>K`00pK7VB&{z{!5l1D@DN~z z21>$+qO$iEAFy{*v zJOt2}NM-{LB2^_QP{G_QSnv=)UoUsJ0k`bkCvgruB*;)f-Ot{>()VgVVFdl4#2Ikl zAwh-;>LI~@PL2^^hI*%51$CD&Lj9z4n7V*og8&mmNKl}Hc5;0UIM8>=&2GSfhxDK{ ztw06ykYK?>fEglWD4-q|2GC%@frklZsQU}*0AU2p!_|OW9<$5K#U!)Y2pYo2<<}Kw zh@d_p44}b)0}m6-kRU?^b&4>81`7@XOb{VKfeM2YMlfK(Lx33~WGJ9c6$a2?z=4Me zW=N2sf;vqYL4ySc0Var$pg@J;bYTPo7CZ!)Awq@%>I`9k`b93qEnEsnkCFu{n8ySQ z9s=|qU2o)QMoV8DTg31&!;p@OP{wt@i%`V7t-9K^%qj1m;6VBRZO z@DN~z2pV1@)4DyYYW5j0qE z5MY7`2?|sgo)AVbV8KIx86spTptv3b`1i}pPkpV1@)4DyVM=BWSST zAix9>5>zLsQ-u-y8A5;=bP^0W@Q@%w+@SwgVxA+Je z0!$DgL4gXxmxU1wSco^seVL#@e2Ak#f%rJ7P@sZ&La<RY0mG2gc4<94w_e%8!JS50aLGeXo1P$tTd1)9y zLx2e)Bq&f}xI-AhfCUc$;$w2~1ZCOd&89#F^RQsSLx33~WGJ8?l?n_vP)TYYK|_EE zA|xnKVYp2g!GHx10rV5nR|Xu!CxrwB>V=X;1z`jY0Vas|au;3v;yj0#p6BMY+snTmBM1FXcpn^GGu;3wpxl?L!;2}YV3W^Uxv2cP= zAU-KICn(^L6av)c3lMQ5#3O_Rnr{UL9K^z-0}52|Pf5N2Gw7oP1O9O#zzmhoCu*s* z%ANrS`u);U0}ebS$WTFjKo~(oEL;jGpr4W+H{ifSf(-FtGDCsN4Xd6MM$iyog7_Gj zp@6TX!VD4AmxKW-tyfF{0yKh#cqa{l0{+W# z<^g8Vnqz8dSb!NKs3U~|;^$;_n4mzUM1lg5ED0)@qXY}_ z%R+(*<|~2)4*~Saa;gR#==%wR0}lx@=#K~n9O$!UY#4A*8HDN@#w2KnhwxK z3l=;Cm?45bl}iB*^pmsz9C(QDqPb8Y94)6XLj=WH4xpFwh4^ktK!JJ?Q{TZ%ePE7~ zEDk&*$WTF1X+4Azhf)IK>C(~!1uB>`1PdMl%n+eIB(t)5SQx>aDRB-wB*;)f(M=<0 zh>VQ{1uB|AK z>Pt|do+EMUTww%l1q1O;8V&{GBqx)gKm~K9V8KIx86xPrq?iE*@c`ydC{V#1C|K|i zV1@`8$`ZVWi53c&^W`!+@Q@%w1@%c`1PvA(1ehQ~f&z7k@_E=eYd<<7;um-mDU%iU@j9ZcnDywW4;0p z2{P0h@1Q{x*ON0?LSa1+vf(Qu; zR2VK5MlfK(Lx33~WGJ9669&*=z=4POSr#WypuS5`?-um+(j^8QL)N_UE;1|AVC5D9yzxF zGw4GZSKvUMCKKZb8tP3<|2H%JgDElvIq;AmLk0DSFoIq1CWw%rK!xF2VT5?595+D$eL2G$JS50aL0uu}vn8Ja2ii-Y8t{-HLj`q? z5WVC}P#{uEf(m95EO-dZ-lt>&2rz@WQW6|^NRXj|x{AH8$;qg%b6TLUmN)|*5@e{L zt`XwZQgea=`XIU;9Qb>r;Q=D3EDWH*fCCSaA&{VezMiVUfnS36${2FsAwh-;>ONrv z4Hg^(m>@!e0u_e)g%RpE{%?}*v*~)AToiOo)yyxMnL1N7=SP|*EwYI%8fer&gQ0;I zVS}IvChkS{CW3K&At9rn;*J9yCnlCZ1uGIZ6zsU8p<`g;_UB+l#)gU=2O3TcEPn}ZNXRIt zxZ^;_iHT(dD-t#o?6{+$V_@R;-@%HE4HY{MG@KY%{u^MW2dy`U4Yr1{*4N9B4Q(u>32yAt9rn;*J9yCnlDsgB1xI3U=Jl&@nJ^dnQ>Pru~*52P@hu zqNE)I6Zw_FhKd~r8oJ*v8JNg_2{u&hIM9$@Ze4X|IOQD&8ahr4q*plt1@)y~<02igHKU-S<3#&bR9(kF z`U+!h_D`YR4QBZBzksh=G1=Y?w`jZ|NFp>WlY^d0Apy9;8 z@~7a2gp7iUI}UW5m{|TCtVn2oj0vh^U?Tr1*ifs0Ec(8KtcLwRCY$e zRD$JQ!HR?(cQkY)wVP4U-eUs>Ch`_+sMxQN;_f)mu-N&AbRCAK7k3QIU)b-L!HVS% z(K}Zp?6{+$V_@R;WUwM*L&c8v_Gsjef$8o3^3q^M!j3x{ItC_g#@2cbFl^RUceX_FrDp=9pp#NcDzAZ-l@~~l#`rmQ4+HoMgFKQ^GprYf% z#PV3seiL*IRB1boYb%!b2R9_-EA+EykBow(EEyH^w+{PVu%hX39Rm~j)4_&{9S0iH z=|m`KPT4Uqkv|Y@sMxR2?}c!neLk}47?{Xk2sTvgIMA-Nf2u?rNKa`&6jXGaNFR>F zGAcSwOe{V-S&`6Qsqrw7e&RPIQ82&nN5p;*r2mSWQbxH#-;U)>K}E-jiRC-NiiG*E z=yl7}dLp{Cacw~UZm^+Z$AO0QO9etfdoHH>j)95x`KZ&5f%$HCzxM>qU*G5$*WclI zHg;Ydu_9gkDz;`6%txXQmUjdz5}NaNjH?9SkF<_~iS+6ioEZh}QIk0)^1Fi#6*~?z z%nzuX52_r@FNuCRNZ4^lL&rR#3oQQ?tjPZk3fhNa8PGAXKO9$iApIdqpHa}7OTfUq zcu$mN*@A=}cQkYiOx)fZtjO3T#X$O9bgqnwjuR8h8LUVb{t8A$xkB$# zQdD%Dm{=YQRwQgF*l|Zg$H2VO-mkbAs4ii@t^>O;3aiHPE!2F1*>Z7JA)R)9_-i`ywFvuuK z55>%oQPFW?VtGrDKJN$=q?g7yG72g>PE0IbVy#GMUod7cQ2!jawjB+NcXKy1qoQM= zUPA-TkAZg#v=>LF9TWK_!G?+*2ilePxj16Sf%a3Q8xv{9i82bNmRY{4d9dS-hJJpi0}(L^}qiwB==v zcwIy@3aYdnO|)ZRN?Wd%HD^RK3hG-Nf%L~%m1Y!Fbew3vjh#CN=9}gBki$M7(Tsxn zTKS=UE}|U+b9KbE;deG*V9I4tg8D=(Tz4F3SUwfpkdRSOamRs<6BEm)gB1xI3U=Jl z&@nJ^`%JJRV?)J`_O$MUf#%CM9RoAD4)s#~^u~?@4a>WN8xk@KD(*PYabjY5G+2?a zp6q(d~Gb>me&O<5_a6LsQ#Q$P_^KW_Ae_pj4Sk1++qeM@(eaq>^RVHVqp1Ka6>{y zLB$;hI!;V1PX{Z~#g`Ql1?^?g6deN-`Q^ceiXHi#QSAj49VaH1cLggFnw&cZ>I*## z;6TIjqTq&vjDm_g4s@KDFO9qXatl_ZZ$!=+1?|;Q$c}-D{F-1x#g6us*tuh%y(fy> zF))$0U_-@@1MNzCNt}Ggf%HIRno&^EabjY5VX*sexd$4SXM-COG72j0IM8uoVtFoD zk+7j)#~lqF0~5FBgB2MYDs~)bI5DvNJGdbsqoCrB105$Omc?2R2^$J_+|kf6FmZc9 zup(na#f}3FCkB=Wf*TSt3M%e6&~aj7d10_3VMD==I~qC$=9RX@3ZP@4{z!x3Kz(=g z&K(CDmiGiVB;+gfl~^Zc6r@i_|H~+-e>a!lK*REn;D&^Zf{Hs1bex!2{u!)D*ig`3 z96h#UT%m`fQx8n!w+9<4b{uF(?ywmJ)xCB{`^RVnzOE;t zAemV+3fkM_5ujtbPcJVCRwV4WqoH4+=X3!Kw3iqz7--2>w0{d>AdOfKW)xI(oJjYm zgN%aurZ{3pLvjPpC`hl2vSbugbex!2UKON&M>oqTsOUH`u`KTPNZ3%&z7;3x7--MB zsbgS%!La{gup(i{9qp@8&m9Bx(~;kf0}ab(f*TSt+6&CF7?{Wp1RE-L9B4Q(u)Hw1 zAt9rn;*J9yCnlB`1uGIZ6zsU8p<`g;_Tpeg#)gU=2O3TcEH4ReNXRItxZ^;_iHYT< zL3?2=Lpui25$%ytP+u1oAlnlw)WVRCJt}SRM&hq>KM_EDEMI z((;O6MZ%6d8amQr(X%rO(w{_8P|^RUaz8D)i2Bx3ISUwr7NZ4^lL&w0x?TKJT#)gU=2O83sBKwSj z^lXgAjDm`e6BEmG!HR?p1?`)WLC3(f$X`4lv~Syhfo5QL3{2z~1RE-L9B4Q({&&TW~`{MnT0L2RcqnEWTN|B4I61z>^RVHVqkeFxFI2OgBubu3M%e6&~aj7`9!cHVMD==I~qC$CT^b$ zR%C3b*m0oY#K7`Ia6>{yLB$;hI!;V1p9)qaY$(`qM?=TJ#O>3;ii`~vI}S9Q7+5|N z+>nq_P;tkBjuR8hXM+_98wz&Z(asL&1(a8af6hZjS~lGB#A~IM8rnV0m|NLqbMD#T^GaPE0KC305R*DA;jF zL&w0xZ3|XpY^d0Apy9;8^4{Qvgp7iUI}UW5m{{HytVq~UuILwH#>^;4AJn-}P;*SL zJDO+bj&VIjUvKbPP<~o(xu`C*y%5 zqaZ!6Vo|Vs)_zFXaYsYPz{G72R%C3b*m0oY#K7{o;D&^Zf{Hs1bex!2J|84+Tr&#x zU&L3)4y6CG0R`1Np8a~!Bib=A{iw|H&0s}B^I31lK=py|j`aPAW)w_mi!X{a(T;&C zZAU7WTPUc1h@$OC|B4f3lqU6X_co z83jGZlrb=o9|<;8>^RVHVxWFAj@@w}{l=G8P%wQ{c6n#8B3=C2E+|N!kFsPGR5V|@ z?HEY^whIa>+VAXwfvQS&9B5eH7u=AL(cT?p?iiTJ?+G?k>^RVHVqiWN4+G2lgB4Bb zI|kYh;sQGc<`sRXV=O;3aiHPEKzb%J$S7Cn(MT((=r}R4xP%o68_E@ZRxT)L z+M{D2zr%j0=r}R4DDH}c4dsgd*0Cs<8gzMAup*(^&@rxEq%Duy1?fVQWfV+l%e(D@ zglT*%zOTF@JsE=}qkT(f#X$OkzJY>@juYv7@hM71K}E-jiRJsjigfW@oIImo|8~63 zInc0tC%7RYqoCrB105&k7u?jp7_4Z%Xx%ZcuU!8y&e1V2Fa8}1*JZItz4%C6envt4 zaIoV*vU5g7`*@^v3``Za{86pFFY@acXupZ;?HHKIzYR82>^RUad^5OXU?P7c*ifL22w__szAlOi` z<3PiSf%LEFG#LdI9VgN|<3t$+?NN1#f%>kPUv?a5SRM^-NXVG4akpB773uA9-i(5Z zjuR7$33)}rhH^ze7LA-y(0pmWV_+gb5Nt@lj<(DwsOUH`vFHaY($y_wy68wNs%qbH zTn&KbN5KsV83h%09OyVvUmxr^kXxLsprYf%#PY*nMY?!C21!OiKO%#HiTq!|hKd~r z8cqx>M)K_%)9;U*I|h>fR*+Gy|6uT3%rDFH!HR_Xe2lUk?c&2Sz(D(hPKbf@baa}G zijEWQWAO_I9Rte)v3gyRu;Y$~j)95W3xgFI8!C1jXgD#h=;P5}ItC_k2{u&hIM8rn zV7^9$t-*@r&jv9PcHGg>F)(raORyqiL&c8t`l!T=g7&P55d+g#cbE4DE7HYtu_2>i zN?YD%7bMI#M9#|_gB1xo?r7*3n7F+uSTT1O_&Jw~`He_hzG*8GcHGg>F)(raRJk^d<3M^i23SUW%6=F~-Zo~m2V%dDf!yP%qoU))#PW+^MZ$)H9d|Tz z3{0dK$P@)rSr*^!XiwxID=Ba~54(Q#s8`BJbVVQQ2`!>^d1i?S@A z4-$6V(aLa34+<(ePE0KN!HR?p z1v~D@&&3rLRCJt}Se_SpQB=v|>v1cRXhyk0e~l4UP|V)$jr%a?6ebJ;nQ%fr3o?At9sLxnm$d6j>Eibex!2 z-V&@x7oT(l3ffaKAUXyn@(eaq>^RVHVq8%fbc`!2*>?;~V)+jt&w0xmG&kBqY8L}D$8vgkBuLNdDyZl< zkvwkv5S(!1A zlsRM0n8KHT1uN!XVlXWuSdp;fj)snbiQ9h%D>61z>}bh(F;L$gr`*vVh?P;tzU?TrD*if=6&V{UcBHq)gq%^Z{5{fEB<#4Op<`g;_K#pi z#)gU=^Ud;mC|J=wVNB$21sf`M9B4?Na;Yd+=tWTn1r;49CYBcmD-t#o?6{+$V_@Ru zCmdF^t7sTVpNI~ZQPFW?V)l1( zFp&NklTk)R$BBvMsbEFI?q>}TG%SA!Zb--|sJP=m$BE>*ETbU(MCnn`e_~d_ME+^8 zp<+ifdO8M{79Dd%!j3x{ItC_gKMYo6Y^d1L-WZkBF_GUCY^d0Apj~Odi{kD$(4LJ( z=@@8l6-9k6*m0n~O%&bg}6hC`ez9_Q)vMH&}>y88SmvN%yS3%3sy*mclFCwjDV4^)8?bb1op9wZp>^RVn-l+9a&>xDE4@~5@ z1RE-L9B4Q(Fx?@R8LZgfsV32|yeqgNA)}z;jsqPhCYDEo6$$N?@lj~UK>E3ldQh-` zO&7)T_27ntjDm_g4s@JITU10w!T!rQ+kuAVSHTSl83h%09OyVPvHUt%k+7j$(RW0< zWfZjE$8w=#V4^)2#poEA$j=8GDs~)bNN>`ND5$@Qez4;}!=mrrkgi^g_6JKQ3^WDm z7)VW~D5w`di1D`LK(iX|7?{XE3N}>iIM8rnT+#n31~L z6zhW>2kOJoX?8R$*66oup>7SAQPBMHs($?itB*(JWE9lbnjX-wye_yQA)}yPX%^NQ z1=SmZ9S0f~E1nzDwe~?fVnB2ZTgBDjyoDU z1}1KQ3sz)osMwMIr~y#0JQYp5BB4p^7*|NG4NT-$1sf`M9B4Q(kbW8yPewsS$BBu> z<6L`-c@hKdt)duc-U@ZpS43s+Xjonu+%R7n6}H@h73ufd7Zn{R+COB4f%bG1vSVN( zKND=I*m0oY#K7V&P2P~+6FFxTH1CW$2BtUkizmnx3H6Op#XAnPzeQTdM0!)CWfY{h z#X!s`sOUJ+9*kW&2J*Xf6;yPbm{=YalIddS73s|}+h!D0bex!29tu_@G_UVE2GT9+ zAfuw=#KdAmtw`8VuISUT2F@txUOx>?+LP|^ID zf5$+2b<|%*MaOwXe-c}F9H_4qMS7){M#20;T+H&MYr~E^8af8%mGow1xGDs~)bI5CjEA8U(@f{Kn46Uz^R z_9OEU2AUq*G0;3VcTD6NY^d0ApdmdJM`RStpGK!yex~PO#~lqF`HT7iDmqT2f5+^T zQ82$7ONixr!HV?3xWJ5pijET#i|>}LNZ3#?eRp;FXs}|wJ?ehR!HR_Ws_0kCtAiEk zXK`&A1r;49CYGNED-zn1@u<)-&}7;%uI$l%9yxamG>3HzOynMHsMv9!T_}CWKz$@K z-Ep9yu95SO1L+rWY(_yv$BBvMm%)mJ`X7<=jsxi(k!eOj#e7}lyu3bG(Hzz>Fp+;1 zY^d0Apdme?)1YAb;~C215ABUe939Yf%ahZzm9?CC*wPkrp+isbH&pkrSD8{x4CZK&AM{CI80z<&J> zDVA>pHzedM^i1rMQP8E$YwI^7w4q{0@}0_za)tgGEnU#Q5IwA8V0m}cigAVf z-t|QOeXyZo$AO0Q19x2%EN?S!V8rxn4-XCcz(jVeFG72g>PE0IM1}hTUH)Vx^`o*Zp9S72jq5(20I!?4N zI}8K)J8@sA=r}R4d^c!cu`>qJiyeXX)u3Zw`GD&{`??JnSRS_l?He{=V9I5ANzlF) zbPOyXbOh2j;^vT1(Q#saNvHX8up)_O6x0{TRqkk5UJ~5U{?mytP+t`6XkQFE#uf7F zc_M#1*if;f`4(`;K=rfWJJRzJ%_x}Cmfr;JOR~qn@|X)mvtP%+@>C3s6-oEWDCj?n zNns-YJlIgN<3PiSfu#pGq{V!Sg7n3hxHAeWI!;V1UkX+vY$(`qM?=TJ#O=$$ii`~v zJDQVs47AV0-MM36B7Zj6P_g4c!-;|U`Do10uf{cpx?|35Z z7-%K>TF1ad{!p-?V#k4o`I9Kn^3z~NdOXrH3Mx8IOe`{8k*;%mJeI3V4OY|#BbOZq z8Wt6CL%OQu3cVm2C8J=fm*t^gMZ%6d8u}G#Y6AmJD|F1OQKV%Qq`yb~WfW9&oM=CG zEC%W);!d*TK)d*fT`-Wor_8A6I5DyK&pRs;HWXC<+jGZ(>1MrrKUk5l{ zb+lgp^#~i%Poo!Slq>YN=&S`59VaFhpVqHP*N69xSbi3)NUw@QW)xI(oS0Z%9jr)b zKQ+H#pnX?=#=t~8WNfI|aiHPEz>;zYnJ9^1)z5lh)CGcHJB_o=|#c+~hI}DmqR~Ebj{P zXJX70)UU)`x8p$mtPN;ijcCU}l6^+Oe0y|@B?l`Knxb_K%txH<9l?r(9d|VJi?758 z7?{Xk4K`HlIM8rnVEI~b!~9y5Z~1z#qJG5K$ANb7nwUX42GSa26r_*Fei;Q7>A&rQ zg6bW&~Tvs&3u3Z4a?ty8xk@KD(*PYabjZmN3bHHJsTI(F_7L9b(%4s&}lxU z(_sH(%%=w$mM4N65;E#fBEKC6>NiBuMqFFR!2XVy7*7mLEMJJ{nH32;?r7*3n7Dm0 zSdp=zV#k4o`7SN^Xs{wVc}78hDjMK6gB8uU2|5Py>*JyeDmqR~EN=)_By1?yaYuT6 zTzN)8_q%xm6Z!dIL&c5*4JQVce+M@tWE51~aiHVG#InRGSEP$S8dfNnp0SsA1}hTU zSE9l?2GW;eaAp)#bew2%=@@7-=opw6UyEFpuLmpAm*cREf{Kn4$=@c*D5&p>Ty`92 zNZ*WHG78dv#$g!+6&)wi7h(uy6jY>L8VV}X51khUY1jn?6?=>M??A(H4^|}P5-X^J ziUSQN29^&6HzZ{A-^3LSOf0_*Zs;G6tpgKl4H7mK?6{+$UunOOV-GZRoY-F-j|B(% zC!)9m6Zw5{Y(d3=h7$wJW5Epx`Qlmif*t8yW((Ad@5PCB99QTs5o*}~CWM}p0Lz<$ z@qb6)nMhCQ&)bOQ-@y(0>te%!{;7x#OzfYv0r`g!EvU#pk9B52#es$s14|EXNXQqT zj`}L7*m1}B*Z&dG|Be$i)Sm`Bjw|%_2rVyA8OU#sNwlEiK*NcFoP&aj0}Uqz`oCg2 z9hg|34iYvL?6_ljWn6SZ#;ztC_SYyR_6LQq&nRR=$NnZ8u>T{b!~^-=kxM~Eeq%I# zLB)ZF69dbef*TU@MT@E{sMvAGq8KasUnBd87LxLHls**D)}$ zJgeutS^2Oi?)twA9vkZWVwW8U8kVPQ_<#*K(6Ia?GDuiHX(fb=4FwfD@-42dV#gf^ z8WsaAA!9>-VKA}0DA?Dap(Fn*N>H(1*rlOgJ0};2#Z|7?^*-%7e(MMvXsG{BBt7eR zbevdB4hj1V8ulTC{z&XHvAiSL-x@S@?C*{vb)BxGzTsMxW5JV?mcP*AbsP}o1ZV)Vyj;W{vpOR%A0$MT6d zDj{P-LB)RYo~VU}juQjRKcX5EGBzwv#(5L^GZCFww9O6sOZ6XgoEVs>55+xs$ARTf zvcmGADCvrX9d|VJEA-YlqGMoj`RS?yzlks~k$)6ysMv9!UC{>&QFNThPe;KkcHFVJ ztb~jW-5cSFMdjSEqCXd1c4B!xNFR)|Wt1!QV zRO~p=kUkV-6fBQN(GoH?lq>oQO@SSE9B5cx;>wY6kN(zQ7J-T7<-xwhMKpz2p4Fx;yXy{kk-36kd5b{uHv zGunBN)n5CK7zXCW_ad}>KUk5lxS_1bx=8&|r0qD+P=6{72inEYBh)c4(N1X?n8#x;1HWci*qoH4EpN;->prPZ$ z@|HNqisiGB{fdPAL{LzXe-l|1R2*nHF|hnLxFI3quqerUoT#8;#~sV7oE*728!Ga9 zVr5rQaiHPEz_JB5B;<= zSLhYd*((k-oEXT@T1KPdK*NcF<+Ak#^hji1P;sE)#6W&uyo)HP zIM8rnV0kRKAt9rnUeR|%E(H|_8cq!KH^m!>fr<4&FC?&`V8C1@NLR>OG$G?2hb|At z#ufXQBk4dx|6p{~fr<6;AYntnjyoDU7H~pk*sjnkPaCkv*k2qp>>g7a_SZ+L8alFD&u}}Re~A5- zCxaCU?HWX}TYA{O=#o4DCgj&fQpJAp-bg!;|3{=>cWWGIk(8Gh?G-!j$ZwMecHCpP z{+b9(EFN}iB+dAD*!140iiySZ^h`~QfeUg9WpGvUPIskXmP6pI>Pgc36L52zm$uR4~;BeY`wmf6$#y9V_;%^Z;-H|V8N{CgsvqZ2YV6jbcUYYc>n z0}Uqz>JOu!I}YTB;&xh4aiHPE!19*hhJ=iQiaQR>AE|;L2P>AhM%s#mf{Hs1bex!2 z-WIG#*if*1P^Q?w9`$;lp?@^$YhYsik04<~!Hzo`I+inPb45bNhOU|i=2hXpiqH-F zi{s=6k_VuSf{Oe9jNCmobqq}8J=jpO<3PjwTQtY=_h7~RZsfjvFIcf(Z{14dzT-f< z_*{fK1}65;2L~FKyIhbx;!F*_Xq^=mJB};*b5R_aSo}ro75Rav=87HN+uVueRnoM{ zf&7h#7F6_S;sOUI)@Or+4Fx;yXy{kk*P^ZuG<2L;9#bGJUyJNlBy=BL3{0#a4iYvL z?6{+$UuizrIMC2>B7ZY>DX2KmaAIKjR&YZ?#%|hc*dK_uAqN@;CT=ebR%C4G7?@aJ z6eMgY*m1}5;$THWLB$;hI!^45$IARb!@$I?1S>K&RO~p=kY5tH6jU7li>^C?^Q5Tn z|36-+c&)clqoXT=_p0$semdS76SHbGYBam+GRj7d$?k%XzrUnVkVZsG@F)?a+$w z9*qGaB$z;*$?XaQF9jaLymSlq2_#Ur@~#p5{QU|@V6K!_3l4@EJ_Yd*z{$L|6!m)v z2I5W9H9>{~_Ba`B06!xu_=^|<5?|$KC}5?rmoi8RQbsBMHU@^o=g|e!Z-oxjIdZfO zSm?pQ03PfI+&Gb7X4) zA|#kV@wu)6#T!}!7J6{d?IMToDw&Fh00S>f9s-p4-3ASMZoQgT2vDd~d{GKjZ6tGGTu7d#rM3^9h+F$6vfQ9%Z8R=WHQyB`VZ?li! znM#=F!+Ty0>3eJz3fT9^APxoy5MhE0>Hwhw19s*+GQ5KUJd9vJBZE2^z+NRM%)tNw zB217$aoRgDU?H6?LuDwSII$i0&$370zazs3h@dPx2;S2G5z?PzybJ~OZGwRw9C#QZ zLITB+)L_6u4~e6mp@4q3V4w#F9!7|e<~q(tfCvdD@Z9tf5=@{DmiyR%g&rIX;5)ga zBP5u>v*!Wq`7(fm0qm(V0|x^Hh%iA0b(+wD0XuW8OwGXn9!5yapn&4bqYgBfnO&s* zPdsbDAHt+SeO{)b!9Y4ewv(ZNK2b2xg98sEL`ZX8k_iNekYEDOlP!QhO@wr^uiV21r-Pm6D-=zEUvIg98sEL`a~xrZpI_ z(1Yiw1yDSkHJJG^eU!{9LjirXV4w#F9!7|eKrwp_1}yXtcaa`aCMllR$^iCvvb_O3 zj9_n*=h^@sl#)6F7Cf)V0m?2?e<|PJ0tXQiRAQl`9kiIWd%}_vJDj4X& zfrk+yq?to`(+CCh2LuB>IPfq+in3aU0{U{nKo1T)j1VD#{i1vo*Y> z`*n#921tyTp@8lL13ftKFhYbh*Riz#5fV(`&tOBKc-7Tl=GWhYWnBjY1c)#}2K7Fn z0|R#EVj0xI03Jq2v}P!v4-pLX;K0KO5fZ3NWL*sgEcBq5vj%&K%-O*J_WiP&g8>3W zm>`2XROrBfg~Xs4$~-)uvv=U%#}NX5h72DdLONDf%TPccCm86#frk+yBv9ALpc)KV z=t1#`4wurNS?2oq$m9}xx!5MhE0o=*S*M95H}>jVuJdhqY&VF`(t zp@2SEFwlbo43Wm>`4wp4>AI z1_%&gf((lH8yy(1GiS)U4h9GiVS)^alair;K2tEzg98sEL`aaKfIU-2aWFuD2oq$m zm&t@23=kl~1Q`_XWI8ZlK^-Q?S%U!w1B?(L!36&EGM4}mG8E{}5;R!oVE_*SBG}K% zOdSjmAi@M0Jf9~8h>)Q`X9W!wdKkb%fCv+0uxH754h9GiVS)^H5F88;Ai@M0l$IZ) z(qO>B03!rQFhK$JK|zCo9vpZW!G2Qa=U{*U5hlo>jukpEV8OuvBLuKtkV!fiAV7o( zGFUAq&%pozB217$eNgDYo-J!Q7$87|2{NeTWV;#+I2d4r00|~2ppF+b80f))XOjUU zWGK)bE@-gO&r4Ux73*Mt01+n0p!l${12cc@2>x+WU*u)gKrd;KlK6V0fZAX1f0VWe zP8##g^0misyu3ts2oUFZs=R(iNH9SL&v!ZEw|G&33W6V1OWNl_yFs`MAcPFKY+rB&iD+3ly_8;6EmN5FvrNkO9HL0On`Zfr9~h`MI<5 zWm!;P5i}TZ{5%>92{IH=d_`uV%%5ZN*_H--njC=vJd6N@5H{!cr|0APEG19%uAK$iJ=eqbTYKefP{ zSq+I#KrULnj&Ri{*}5!CNxlN!{?GQ0)@>0`2Ph64IX z!9WiVJd6+_&2?AEpaCKznC2yZ`XWOCd%1iq>0p2W5hlo>_*|p|19s+%GM2X_~DKW1=JNn2kx;lk`%wc+yxQTCplN3E|3js zFp&6J!VCrU&jbTKIPfq+gaqn**^CAQ7JBe(BS2#K31PUzR}~4B%meL~Diu`g*}Y4-Pzx5Fvs3ima=_ zfQ24BM=gN;icHtR0QLr1&A|WxB217$-6(Wmz(Qis3}Rh%iA0`wh8c91IX3!UP%AH-!!iSV)kefc} z80f))hY`vdoGm_kGxMi#XAuV?L`YD;9?4Y#e&%;_`9x4)AieMI(izktLN~Lsq#Nh~ z{(2#Tl6rfh?3sfB0z{Y~gFQ)bFhGC^6J)Tx;9!6N5hloBKP5OAAV7o(GT4&^2Ll9% zFhK@&ihN0+!GMDSMhK8#f&%JPL4yJNX&J@A00AOQkfF%?D9!sQFULrOmE`z=JM$ZP zj$3drfT63DPD)QlDT5ScB$%Lp;&(vGhvl+U9}zTkkCF8cWrC1ENmV>i#!ZmH z_WWxOFhGI{3aC#B8VvN{AfCi1kmn`pG8C{U3q1_rAwYx)@*I0cfeiN3(%@i#1QQfc zrwAGh^xzM;J-+O z2r0>HMur0Vhk}6~9C#QZLIQQ3JcTqEu+W1#itU1j0BV2g!1GOq0RBi?!SYqjB*!L8 zNmA6&bcaICAbXRcK$w5GiJx?};9!{JadO8x7$87|2{M%Vz%Ysi1H*R(4*?=%zDkKd zlBEP03iyvRX-NF;NQMITM{-OY3=kl~1Q`^+$I^iT3yC9^q0GnbOS05~;qOsfa9|FX zC%AFAT`p)a;J?Bop?kcfFO$H3ktI;)2^#!~)PXvOIv8aw^&S$ab6JAS zXmki*NDL7mUB=;n0_xpTr$IT18VsZ({3P$PfuK z6!0970Oo3m790#P$!MO-J-~38RCx#xL7goP8isGv3IQTynS{x5!CG)&&L@I{0Rlvr zAcL1p8(G~m{Q#zy5iK|vW=@hN4*?=5_SIYm*24F)2|oC6vl zo+wobG89l;`Wnm?ca|~1fxnQ|pl1*++W?V&z9K<}PIjqW&pHLA4dp`C_!#pOJ(E?1r(2i4pcAO(BS#WrvUye*-(H8 z_DeE=g8>3Wm>`4lLI(!y%=I$7g8@8@U@wp^4h9GiVS)_m%R&bRETkJ`-3$fPjY0?Z zJh{gl3=kl~1R3m?1P22Ih%iA0#dBTH5BFnOf^-U719d7}0}b{-IW7ZuFyE1j#)5+Z zJntp~n9tG*4hATE9>{{?Uun=_Ao21ZxkVFXC}1BW^*^B=G8E{k=f+Bqp@5V6^jMh& zr#66PlP5@%;{MiPV3PX8Yk{nxZjoOG(qO>B03!rQFu`!6tnDE{oR@gSx%qwi`{ckx zNMH{U2JkZn$x?&_wi5>Mpbi!cSSY+qD1MJtg8{pf?7I}jZ=o5m;D0ZB8o~d8B}gA; z3{W3|_Xq|oq=V!MR6z05THX93TenF=gai|K){T(nQ5f04^f+0S^$l3)!ShvP1a%{Q z!Jj1r7#}C~%*lX-K-C~^8lt2mB}*B;Bzx>3K%66;0@zDsWd{Q!EjLSs0{Vl3fgT)q z7$HKM;RA1;4H^ts=;x(#+$we$XpGgai|qon^Mal7R>CFhb-ppCCg4!#!ZZ!7xW&fwFv=IY}|6(E%I` zpw4HXpv>_zQm4T{6Rg98sEL`ZWT55xcw5=`LPMgV`c3?CqZ{i>|%V1NJ-Cdi;J6gn_qXR-|HU;qyz z*lT1^2LmKJXDFb*CK%|!frk+yBv8MSp)?q<(1Rb@4^T;l*I>YovYLYd0z{Y~gStrQ zz<`Cspcx9NUke>fkCl!6UIvbkU;=ya-DMNtVT2-m)vYoo1O6LA0QD>CKoK?A&&uEf zco-o-=C-ZbLK;oT7h64IGf`J|!co-o< z0>$scX)s`+pO-!=xBCDAB217$?=0K7T4tfH5j3a|vIL5+;5GP9%gh2qupgIm;b4FO z5hlo>juJXBU}vtBNjVt6!w8Ar2Q8p(Vd;x3oh@iEP$Cn$oT)+LW3CJZ^l5^D9vpZW zAwq%-1@z-&Qc{eR;q%M}BABxT3j_2!v;VTq0O=dD{}~F{(`Dxz3=kl~1R2yBLI(!y z%+F+C2LpH*=eqfuh(D7ZR+FH?fTzLjEcG&Be}L3PP+-9GbMtZj;rYX4Vg~Gtm8AhZ zr~_F8oIKG6DgNv193*bd3wyV*<&Vqp+9C#QZLYgB-fbUBLh>&0c&-WJtL|#`CWGE0Xll@MR zK`|)}itm|gFc2Oq-FO|;^RGu=D^=s1LJANb^6O@@Z+c;9vkxYXHw{?(l2sAV7q4 zo{*t{*-1{Z6fMOc&Dt>VZunwpw%}j@CA|juy4FeYQp_3j0S5!b$I3>IlZ6arUXm(x zn~ZBfeM-=fMy?Df;Q2Rw0wlgcoS{JCAFaqxK>uDa(1QaHBSc6LxLCg~mxl%e7W#SV zDjC?p0QL{Ef`b79M3^9hx<%-~fQ7_R844(Vce8^b$P$g{0mWDP z8q_ygf_S+!B*;*}^K&c_(u|jfRE7fje8E5u4m^wyA%WuSSPcd&^pN-woD2o@5rTmp z9C#QZ|5*N-NBJRt(&I-g5#1F;>KqI(K>|g;1ew^gq+z&NaF+-k0z@d#eNRxJ!GMJx z91P%Lga8o|Owj#A@ZS~8_XP_*I2gdg2mvA_m>@#|b*Z4C0}BQm^pIcx4% zOBp6`)b(J&fQAkN3^0O+2@*ueP(VeYgM5vkSu$W}I7gPlKC%?%Qw9kp$WTCCDRiL0 zfQ23$3^0O+01*;QkfDIOO6Wj?0S6X(7_JulwZaGiA{ge}Gpm7q9!3ZdA;AO%GN>O2 z9cVCMp$7*8co-o-gai|0D4>{M2O11G=()liD9~WQLeH^xFo1^<0z^nKL52eAa-jna z1}ya8U;qyt2SpuvKH9tLpWVT1q)B4n7LfMU)aXfR-* z2M+<<{FDMe?#PeK+o4bSm+^hEgO)BdKe)gw2PbfCe2g&rIX;9-OS5fV(0p@1qv2O11m=)u7N9!3ZdA;AP0 z3aH-;9cVCMp$7*8co-o-gai|0D4_lzbfCe2g&rIX;9-OS5fV(0p@6zY=s<%33q3d( zz{3auA|#j~Ljm&1{3UYI2gdg2mvA_m>@#|^=_d94F)Xq;9vj`BLs+$V1f(<)O&;u zG#IeZgM$G)j1V9~f(bGdPzMMdXfR-*2L}Uq7$HD}1QTQ^pbiu|&|ttq4-N+KFhYO` z2`0!;K)qM!K!X7bQCJ(#zr(B7CYT^Y0d;}Ufd&H>dT>zQCEfn7^pc{b7%5gtJm!uv zCQOi_fU-gd8Vp$I!NC9?MhFlg!2}r!s80$VXfR-*2L}Uq7$HD}1QTQ^5WVbGf(bGd zP#lpCG#IeZgM)akkYIug1=M*$2O11m=wUcR@GwGv2ni<0P{91NtSY6K5`Q2S2`0!; zKwT|#puvEJ9vlqdVT1q?(!6w%9Et=JWGJ9|p#u#DEcD=D01qPsh>&1{33*8f?^Lk&|ttq5AkKvUrPC)1a-L3fd&H>%B6z3Oz1#^0Si4i7{J2_0U{)rAcHwm zu+W2p0X&QlAkMs2)|WC#G3=3r9vlqdVT5>*kYIug1=QDt4m23B(1U{kjJ#r4DZLcK zd9=`jg8@8@5WvVQij~q!aZ&~;@pNfOFhPa_iuXMo==mKGM0xv@q)buv2Nm*S)hPnTKA;Ym{B+vWdK zCMj7;lxIqkV&q+smC{RbQp)FKG{ptkfd&H>dT=m+k%6p~UW$`q_LVH9m*S)hQlgY3 zWs;Jm6e;FtS=mAl4hHaG_LfE|y%Z;9kP@XNDU*~erAUcf3JE62P(W!xewk-&T$T<} zCMj8p`F9yvN-xDpiEop3DU+1U@-6p~0O_DL(iPMJLIMkZUV1O_Kq4rj2h|B_uCqi2 zNOQy7ndr~FuUwK4AVPu(G89ms7dp^jz(NlW2JkRKfCvdD@Si4vJ%tGBR3ao$r@<$v zg9Pdr!9#!u)(Q>=P@fbu7)X$zfIn6U5WyZNI2b@3PaPysCkP$_M6f3c4hB#s2^tI} z$WXxdLVyVNQ-Xs5)X9Pd0|_#eIlf0u$^;q0Q7nNzT1bDCi@|d)^)F>feUiFcxk^AC zD^Yz&@U*5QWGS$u|0I-ojq7A7voyg72_o2eT~@Q8V4y)UKnIx(m3fm)NPR-k;6F?} zNA{zK00r#1Kx<%t2p&dAFwJ$$KFye^xz>v zhVEB_g#iLgpnfeFa4IlehW|0151&oB*)z7d)hygNZbxLj(nOUYh&OOYfr&Jfu1DLgiW4f`T;HLH9%1 zq=6A4bU&gFMu^b;m^v6CLU%27FhYdxC)B|R5xSpJ2O~u2enuUP5TTo>gApQhTy+Mz zuM0hlFhTbX>R^Nkx^GekBTUeJi#izQC(`M%q``s%4*?QnP-npB1PvA(cnFXn&r7$- z2@T-qZS2p{1q}u)^pKTMAi)Ioqk^9yj&mz9uoNLPd;v!sKtTr@3|LUC>%Pl$AwYr* z>S95I1qU7iB*>sH5j0qE;2}VQ4C;G=1`7^61W1rUeP7VfT`5@LPYTMXW&(dwa4mmL zaIFCcBP1xG<*x*;<T*GY1qU7i zB;YSiu2u54B-d)-&rPm%z+akN%U_z5&q9SfFP$J4QU-M*aQ$hp^OXpGh8rwEgb6aJ zZwnn5u;5^T5dtKbpn&?0pus>74m^wyAwh-$T@W-_=wSd40U}J0L2*NLV8HSSPoQ|8 zXu(6zbKJoIo-UrHbet?@C}58l91M^kLz&}8WXWGB8w!vhgZi4F!GZ%10TN_TqoBcp z0}lZbWKb6g8Z0>Q5FmlRL1u5jLj-%H5N=}W*Mfoo5k}~K!x9AO=$xUzFvshu`z>{# zekXKbp@#uHtzBUWMhG*1kfltQiA`om)J<~(Bp$RAWGM489EM~h8`RY;9-OS5hln`KxLr=4F)Xq;9vj`BLqm${Yuba zz(NlLco-o-gai|0D9~|;H5ll@!2li#D9*VC0~UI4Fo1^$2`0!;KyiU+Fkqnv2OdU< zkYIxDW91M_Pf(!-J z?}ZLD7_iWTg8@8@5Fo(>844&a^bQR4;K0KOafXZE&lfOPqT-S=kRWoEOpu{~;+#83 z^I7G%sQGT34+$8s(1U{kBBZ&FBQ!#Q2%2LMXV?YJ{45NR=C21oE)PM?TVewidT=m6 zp|fJC1ACIJF+lnWXnA}Uuty35*iTD?b@T)Kd6poZBNRv%umouo?6-sg>?JILy__Ym z*T9d7kbW){NH?+s>9;I_l|PfYb^v<-69W4_A$>q7kUm7+hgkyq5n+G?_M=2dP{11M zAVC59G3p@A%zOTEBG{v7g~YKcV0)$p2@2Rx5ut!RnFwWG;z*YHaGpW~*i(f864=v- zkidS1rJ4EIf0kBAP{4kUI!ItoX9)_}GlT&W*fWWcpv+60OM4a#kiZT^NKn9jfjUS~ zz)pn&}$b&#Nd{SkGLpv+4=JPO!rX@COu zC&B>srz}B&0`_OrK>|AwAwdEAbNB^yV1LOH6tLF`10*P5ucrs`E zg#`9jEP?$sOJIM)64;xB0TL9jH&X`*>~G=&VN#%n}>TaVB5)`nCM^Ea$^iB- zAp!p^uzUlNr4LdE1?=HOut%^2me(V$e?Z!G+1!pAwYr* z>W_j33l2O4NRUC@Drm6az(arp8PuNy4Hg`D2#_Fyx=qkv!GVVW2{I^kKj{Y+9C!$j zAcNXp&|txVhX4sOsCNq*EVxg|Wif!`qwE1Zj1VA#g??uK{>MjT4L@_ZEG6(q3jxwm z%pTOyf(CUQU3lx4PNd6+W#ipP1OpB{M3_K*RM61F009yd=!{^&!3YsDsE-K-dhifn zf&%(TVSo`5bRQQSL{LWwJp?FVj}}JAU_K#um_Q#R43MC+f`bU^lR^&x3fNGF__9!NLF|B*@SmAQ*7qA;JXeKtV$f0|ZD=pnI=i!NCX-GMIye z9z0B-J7ItX-NAx`2TUim_g&hs*UIvq3wqng^5)(5+O{kq5Z<|U%XUH}Y}l~8b?aVRB_`t53_TAWl4coT7eUDAs7=NT%;-<~px9r8?2vqF7ZTID6CK~7F{kCo1&Mu_? zNpIb6&rS1OChFetAA2wFJs*oXE$_3u=X@|oZ`-`*yt2A$+tTjaw{71v?_5XK>YO%h z-@a8QJ0C^;7Y(xW^IF@s{3qKnf6-yv^7dVqW!&AQ+kE!y?YnH2-JWZEYPW8xN7~)K z%N}wV_g$U9@Ru#^g!sQ~*?Z5{Hr~E%^Im)Ix;k9=i-vb@ns+q*MFZz;S6by#+kMma zE&D8Q*poAn{-URxwLLd+TBh4KZCl>`ZBmzSU)Qd{^1teq_uKI2qoVG1yAvTta@)%C z<}GjAvRMY|XxekH?OWcq--a#QHte%$_bt0_*uK|0=6grexbMp54ZF(GZNqJN+t$7I z*syu;ty}9wVCb`Dn~b{m+vl6YQn77$&t2cPWp~bHPk!r`J-J~V%W~xQT;9wDG|XM) z;$J3t5*LD0?6pG8IJe)vCbT{)%gbBa6&i21TB}M_ZQgB8R) z8|_JN<64#A<~8f`(7MUN+q&1ve$wh&&8A&<-P&&EabA1tvfRsmt_yRwO+rD-6 zkrnTL|D_Etdg%+cZr!xs%a*slXs^BJ`!fCS>ep}DeedNLY=6a`yDsl5+nZ|Zi#KiG zB$9=kH5q1N7h4_>nGcCMe@U$eZjby==eIXCt3=y!a; z(uUVAZ~o`4dvDwRKYRP4<*jmuY}qW+W2eW~>vq-u)0YD)eM0NAey`oPY~HUnzxK8N zAT9Cs+j#Br_SY|OmAj8!m&SDa#+S(LxVO}Ez~^0-4%6*Bu#^8Ywbk>V|Np!E&t*_r zr~kFS9MF08^@X%~NBRG~@3gR>F5YF~4zhgTmJeuov1QZpvs$(-zpCZF<>i)L%kOG= zX!(eieak1eJhps(%c14ia%}m=mQ%|+$fTM7)bd}qoLl~zmP^a8Y@4`j%hb@*7&- z(DKHX_i1^zmJe-trRC#W-nZqmTUIS!+;Z3Q&s)|lFUVY(uW9+gE!&o#+;ZRYOImg< zzq#e1U{I2ns;h>{cbfszva~0U)QqRT-$eV z*)P|8F!>&Gzd!4x^YJ*6Eazk0$@P4EuH~hcFKT&x%U8F&vE|>iywdW0cBtd2mY>kF zZuuoG+m_$bvTJ!SvYg+gz3Y5cYxk}Fqb-M)Khye$eQN)+TV8n5-RJ!aExTvd{L_~6 zvua+rYu%oGYRwOAc}-jYsV%QOv9`Zrwg0ngUS4f~O3m+TIX|Q3kG8DW)qFs`S2>{k-M#Kl zcty>RX?f}IYnH<{Uk~oNHOp?-`~MF0eqZ16#>IvCe7~{fl?Oj`&Ih!-@Q|86-SWBz z)_hURw&kg1{h-=@*B$Hj7Vls4E-mYp|Gwq*52)?Cx4d*iy&ey5dEvU6&uZE3So{B= z<;8`XcaU?#_3v-3{nxde?o`{~-15d9YCfRlrJHL1&#t!LrM6$uvj2H)zwucj1>+|JtWZ9qf*Vgt|x9nQp zyXADRI^V-u4nL~>PhM?r`NEd%k8AsnT3-2K%?tAEXM3vUN4C7!)_)#Z=I8&t&hHIm z8DmYmKKE_e$9laU)z)8X=j$siudJ!_{q<`9_WJbT`_%Eqmj9M4ed2@b>(T4TGQXwE z>U`hb`iIv4=+?gRzIFW1t>#N>|BG7ocdPB!ww%`0e5W;S{3q4?sFqh2YhG&E?Nsxw zt9fnB9hu|P&fh1=a(ous@j0jEbuE9tt)CuQ*T13Vbx*DNj`D_*{atzM1Lynk5iPHO z{N3jKe_GynubSV`vb|5u`?b8VrsgABPWP?ZwXE-1^EX>wf4`c4zPi3VC}kQ8_q|`8 zk81h0j()$MO= zd40Q{S6a4ruk8n~=61Y~ZQ0$ewx8c}-m&IOTlVdKyT0YnuD?4yxXv%N>+fM?IX+X{ z-^aCfy|#|`?3TlmYkqCZxm|z%-twAuy{XmqcD_HH9wIo@3GaF*3JE2N|x(& z;STkA|0c5Re>l75Ep7e9HotvZw)^ZjuWwrRuc`U$mKXlH=Bru`t^L;3{4ceA?O)aT zF1@klm$jT)yL=f?UqAP*?H_D;W6Ni@ywK)zdCM!$sr~=ha(-UT^0sImZ{u@oerC%n zEx($~^S|ByZ*T2teeM6=mQ%||wY>h#wf)?d{mW~PE!%&s`S+{+UtIG89wyt9ag(tL+AG0Z>ss0 zme;+m=KDUp&S&M-H9wgw$0yvQUXRajS?yc%t5@@WHE$-%{l3`l_y4cuN45On*56)N z`=79ybIoV2=9_B%>S``Ee}6UqvF4ww=7pEd$K&SJeCL|)^4E3#_HH#lkSqso-D2Ip z=e4}l@|M;1$JF)@w45JS^I0t~JiO)~wQL_z^IacN$Inlw`Oz(}mp9U!uNSnuvE?_n zY@b=%-`TQydd)|+?4MEdc`dK3t2wr;pH}nDEpL2k%@28G-T#GW*W>k6GW-9?+P=Q! z{Lq^BBFpu;v0b0v(&&yfN4O{+9KxYqn&r@2A!Gw`a9HwfDOhxBlrjwg2^G*?wyG&s`o} z^U?$B`PhkkhlPcFbM614mKR&z-1;v(rS|{tmetNRf4pUTe9fn|ywuM3SIBZcSK9f! zmMq&_{OFqbc-`Exd+0sq{J^!f-9EhLXSJ*zR`Z)%UTEzHt+xMFZ9l2y#b?)?TVC_5 znxFfaI=*Y||JAa7W^MN^+t&a7JJtUA8MXb*EvLV!`NWo0TmKg=Z*1*Pd~98RrLF(p zE&Hd}^~aXo(`vro&b9ygw*Ko|Uf0@9%S&zjU$(p=Us%dvU3l~^b^VP`uK8bEUU)*y zN3+eg&=#FiHyUGwW&)~$WtmfhOg{;}2e#hSlCme+rKZhif~ z$Kz{WIDx*@%sDB^IP-8x_(+y+n>>LzHiO{((>Z{Yu>+Q^?;gBTFrN?`Nw2A-Y?&_ zZXW+JPpWx+%gZglq2&`>-q`ZbTHdYY$3D5Pzp}c1%lo!`e9NlkAGf@8eB1t0>iVkX z<(7TRC$_wBLhb*vmb*6IQ`Xh>b<6K;*|aQgE9>>u@?D==^TyNac&}{Pw|rR3i=V0O zm$a-}e(=*|{d>suw?{qSPa(_sP4`|iAJ12|ysn+EJzCz_&e!`_^Zjc7(_41!{9W4e z!j1L(-$=ffJb&B!|2sXs=F;+mTV6Qf@8|75q2;@^{Cu*^Z|R0Q-WyxHZuiSd%eLi1 zTK|=sYyaa~_V=vw{btKccc}TAmhC-i-r;ZR{MNMXKZGpXm)||9^J{tILhb+JmgRTa z=JpNbdoL`M_IkBXYhQm;Z9lkW`3?HH|FJDEwtQ|||85VduYccb?edE)bN`>UymV{L z3(u(YTmQ$JA4Zn#KcubywAQ|+9gml^ymCwJ|8FhJuUO3E@7LDfrLC`5*Z*~GKegqJ zcd7gTgO(S6SKCX=euvurm}l1cZG2tLFC)wK=U-p1zfG-u&8uts{w@2KP0R9kKIi$J z)AD*-^G{n|I;Q4(J*#d{{sPq8|LUh58=e4~4irRm3%NtwPEiYVI+rQAVYx##{-cO9{=K1XO!kYa>HE(G-eZA&WTVD8P z&A%ec{iWLb(|f+C&Tr}Py1kuO^G9l4YFV}Xrk0(l?b};UN7np-me(9zb5EA%&9mF{ z;)2$`@x0nTk?$$5*X{krpITnu@&jI6+uzXg<6GX?@)G$D^7Z_O>v)@6_Mfczzgx~v zuAc{gqUEKh)cl2(ZEL@zW&On3eqGD!TKipJBHQEmJ+eNZ9zmAvyQkLvPicAK88yFj zwY}vHEie6|&hMa>_0=_>((>X@YX0tOzPaX`S`NRd`N1!(+m{#U`FePM%S%73dFyI> zuKAdj{q;3p+_Ju|<{e+wj^|Z1uWQ-=sOC4cywc|X-z|qW-($%o`8h4?zpeRQtNB4Sf2!q$hu3^X%f98i{e2xTJ)yS0ux0VKqPWA7#9I$oXu~ix-k*V(Z%R+uCw?VeQ|O<$hm$?yKhc zUqil^yx(Z=mu_o$vE{{A)%IOleleNxpI*mXX*oTo=3`ge|EA{4TVAuS=DYk;UEj6- z&uDr5Gi&?5lVv{Z+V&1_`PnUhq4i&RQSE;fnf-5{7ue^r5spjXlobFlkO3UhAHTNxtyVjgqUU%P`|LQe$ zJm0qW>XuX6-hr#_cdPxsxSAhQ^KC6J-J#}ZyjI4O{am6XyL(V=fBZk!cGcQn*K*ggBFp#-PrJu_{d}rr`=pw`*Ycu#qnd6DudDs- zGi!cg%lf4?Z)`dIUCp}XrRUas&g%L**Zhms_MK{e`0Lwzo?P?GT2^iQ+ge`Nws%s? z`KPu24_o&CTJw(o(#G3V^D|mjn`_?G@|u6E`OubA%jdW3H`MlDwH#hm^CRC-$JcMI z`L!)?Y}@;z0?^U-LPu z?VqSQx9ktEdGSqk{587fe`tB-T{Zt_%W2=5Pic8$+x}%O=eGSj{c9a>UEAKXS`OFL z_5Y*gbXLtrw!Cn9&0k&Ze`d|UYI)tcHUB@J?mS+L@&DuaP;zK-7cEK|6`jg5(YFOL zwmKw6wg`+iJEBtQH&^f1{QmlW zpO5$F`drssv)uQ&&)w1ZCiTyJDqn^D_vHI=dZqj-4(7{W;^-y0=FRHoGk*u{EK%MU zyUaHoXSOQ;G^syF{tsJI z_4kIzXBo%OSC{8$cjH>|`#awM4J9uje}cRR`BHL^{B!bB^1a69`Ff+~YvAM7ayuOC zkZ;7%sq#4Eczr$SKifE7-*Eb`A@|7(bD`O=lQlf@t?|1?5qA(JzZ~|j1P-HFWjv>o%nz}13Ul9>u_+5yvsN~f2EwC z6Z*xDUvHfM^m*r{#&Q1~`!yH`J2ieL_Sld2u-!xX4&(TGup8<9OSRk7uMjA2j&s}O z5^O&p4>pe1mu7v>8OQymbNzfoy?4Lr|4ckfKDNK+OU;%$;V3KjO!Ce0*u)Fva^raZ z;mp6$IG(?p`42Bue<%LpR=iDCOPt*#Uxvfa<@js+hxXGMrr$5Ugsq3=t%--rHEvgZ zFhafnXUXrz>B-9H;LHMf3-%tBs}E4WXo~D&3lG7Ch00${Tq$o(>fex$9;klV#q#+$ zPd?Zmk+G zxKsUunQ|MPdQ83c>i*}G~Z|BQD@~p7{~jS<@5G`aT)t}+}&EA*G2U$aUNfsnE7r?T%!7s z$@ojl=W)HET2J~$jc=1U{vxHhp1T;w{X+KlM)IJS z@_TUpcDaoD0{!P>>y^t6_4@>;@Gp2e{j1)q^#lXeudZ=CzfJvFX!X+TU)*@$uU62Zv_AZzE4pKLY!B3U(gQ_&LV$ z@dX^;QgUm&@{e(9oLq@*j_*IlXBdCXNUb-^_%m=+L%%=jp13N%kHYrh@^ll^p87`jF@J64os8rC3D}?O$Wzso-;N!|kHu;7r*VWA8OQsT<9OGQ=jy57 z7ubux*lo_oZX6yfA3I9x%UNeh}x$U%}o?<)0+=b?O~DzDn#gmTQb*z9w=z?9`I4#QECt zAnd)Q{*!SAzlu{YEB_SR`{iG8bU5>m)%{@3yV?0zqo;WYEVl8oQ3Ji=Zdt!F=uepFuXLCu%`Q@#*q|B~;) zse(KsG4&r~_h;pQ;_wf-$wTUIasQo*qhj5Uw_vxE{16V$mgnPaM|mx_$+zR^8_idB zJoAl}n`0-CFT;5}5W7#-KeYc-6F)7#iPO)?-{atUx$Xq^Z=rl);*aFJa1?(L`!LJ0 zp2zM`Il|sBxu}eOBjgKlZjw9(+mq$DvGuUL2m83)MD>ftD<6WL333(}Z~+HXlsA7^ z<5SCJ58Er`2eA9DyaanI^xUQckv0X*pfb$1bzZYjL<)=(mKkK0K9yo``;e2P^UrTWq|HA~c zzMrsjfn5Jl^~+o$cg4ZA@&h>PDKAR$TjZaxf2-VZ3i~-!z5!?Af9PQ5e>(AC`D1L2 zkZXk+?>s19hEt(D5vQM&*Wh5XTxF`p`_IT1;>=8W3=ZbXFJf<(9N{ef4@dtfKm9TF zPkkfz#A*C6&U~eODYmxBKj3h)eC*@uSHKtI@C)U4V|$aF!2w>6qfeCY$L^nB+6 zM)@Y3UN1j_ok)H=@oM=eocmaAFpd5FQ0{`g3i)2_u9fHDTuZKR9PU(p02grUC)MBn zL;3YMzz^ZnZ^~cC-p}$joW<3jQory=R-T@ zVr#GR(Kz}~o`bXG8*S-JRlfkAkF!0L55uV&b^_4PP**D7C<QydO9TXUjFUh_K~PiO4js`@m}^_8DY@@?`;Y<(mDj)U9eCNtGPES0ap z)*yKjE)104!|B`Q{WwG3E~9>_wDM9M@cw^NVvhd}?BFkOMEybRP0)Tdo2CAlhvcr< z8ZY043*<9#p7(28aQZx*ztn8?v$=oH#sR(!XO3e(aH@;E45#rAINw6~u`j5<I0m`q!;qCGO>dUDQ$WsF}|2%AuQ~gR@z?*UA0p-6L*N9K#;rhI@ z+C16Dr(+lQ#6BKj9IrpidZv*FuZ7Y^)&y**o*&Rt-1gDX2n^Oc>(@qRUBzv?ZJo8dONIldg9jQbnM3vqtb^I?*4jrj9o_B%`NrFDINh}|=^ zo-e8QsozVUucf@xsfxI_JJz!C5NMqvLj z9sf-1)KS0XINw;#8`q3~Kga!f*h0;hKStMY1LJtU{1K{eh3z8wT)|27*n;VRD$*#ArJg)e~qmM>VNc7^^b5n93HQ{H})FJkK!P!eoGTCmw&)EuDeYAb8jiX82k8coIXYU zXBk(uEPJUw58XswXr;XBoAhfT7h{Y3+9W?&`B)q^m**yVu^i!`rMw5HTgxrq(tIxU z*BV!k->*#6`;9x2{B0fIQ^xW71J++bp67h;GLEm;fY*!Tm#cq%g~p$49OohVE#x-i z%Wy9K!yoZ&X1$b*ucq~`!w%ks-S`iKnED29Gav4R3-vXAAkOAg{{;4bm$Nvms``yM zsw4lAjIU6AofSHs499b-v3Xu`eRMUBUvF&g=Th>*9U31nKF9O#S@N)k=39gPBjw+z zub}>zcQjwnNcl-P^_u#hhi$IsTd}uZ`GYw7k^B}L);2js63uaoyD<7;aE zM(^r)U5>Xi_VFMb;Ae3LzlU@9SDeR(<<#FgLeE1R+xUF!;#;tfN8 zJl>71YMQ_PO3p7n9lQ7v?BknofJfsDo?#q6e=GRD%4^1l#qVFQ(|*5)t#0zS*c~X> zT%~$zhTIxQBjg)#=3e=J?A|2LNX8G4S7NWbyalI5$yHWszG$r67TdjK4;Q!}2V-}T z@(_D>$%}FB2KnP8?8Zx%e!E`hrz_5}ze9}U{Vdeh_40sQzu7<$m5`9G?%rp}t@E7vqChHGgW2`ehf$XW?*ZRR1sbj+dLiul@n^b;Efa zVAodteC)BF4LCzyr$YU_hN?f`INpyO`#Xp{I!XD{Nj-iq$y+Mljh$w)^8xE^F5hJw zpRX;vf0;p^C;u3yPf`70AF4i2eJkVm`tX}7?}x({^0PR_dN$!~vGST9X?#Tg^Nr*6 zRMLM4F5vli5B`?%F6XD#$Mj?W&c@kRny)7g4<2#oc|8`prz&5K9emU}`n6Vm8P4O! zuupx23*>b^(RhpeYV6^uIE}aB03W|z<86Em4)Hvk!ha>^emN)7_$>KEoWtvI1~=ZI z`aCYh7X6mu0(sR>RUhH5*qfp6!;CPl8b4oF=y|h%++L)7y>a#U=gZEzpMN3Gy`uc6 zjq2~0%ctY)9NA0q>GDwHn(_02=f^YTx!07xZd@bIdA@DH){%Oi{f=#1<1^K}_;l>! z>u`YY#Tonr&fz6EkGC4f_fMv%+M(;Q5_?C=|KQ+gx!NYxr;d{A;vDtOaJHIq2V2!; z7YB^L5K zmD}UsLHT+d2J$_|@%0tu&>73IG885#i_ya^*G}E4#Ro! zsn~f$^>cCIS$S15eyqF$r$@_0+q9k(c{7|Dpu96K+%Df{93Nkb<9V3ex=;E1#3SVo zaAu5LiF0k_YF}&qbZhx!>^GNPoIhK>(Kvp+$h_|yx}NSM_j)OxiS0Aw)i`P@Z%gu% z+X|G~i>a{avKj|R!- zB_1f>gk8=@fE_%`IG*2SzBiNcWqN(vmiQ6*sBbl2CX`#_!X&wyas2$S&eHR`)Yx3# z+<#?w4=%^nOS<0I;3B-;_^^0?9#j84#^(9N_l=L;t~}k~=tJkXrExr;$MIZbY}RwO z*3*;RC%>EVIsU%bcWdKLR!{D{xAL!41w8v4XyibxZm+!}g74qC9e_Q_4I6nWb zuk-&4dGuIWPCg%dGvuB)MLrCNuPJ{j$={F{;QTWABkWF=cVhc6t*_xvT2F42@{Y#w{ghv+ z`?Cl3bMigZr(Re6W8?w(D>%jd{2^|DD;b~etMS!;*8FKp>uHntE#;SEkNd5^as2+n z=k<1^u{qy;biSuiZ~v+BbFqJ`yc#=q%HQGWTDjUUT2ILJ+|;;gydQktaWQ#rfa-6> zsYm7eaIjx~2K#r*%W*Q|6@%c&fJR3lso1lCmPV@YF z8E5GCUgAlr|28rEyAN9rDR20j){_|`pN*~Vau4Hpf85p1q37plisg+ zFT;7Rzpt>vdaC@c`SO3L{siOd@$;YadzNvH`1K*B>+uTev)o^IV>{6JC$YhvzmnuX$!l=9PTr1#_4466wVvz-xf%91 z%9r5OCb<;nK9?t9?-zMCPH&Ol!qKnthNS*?`KKgjzYZq(cIEZ{)cT_DhhzVF`7!J) zkQd^7Z+RWg43huC!4>i`yW;ud`zOQaBQ1>08=axm4&AR8lecsY_@k6p|3~Y~RFj+HLXmtfcBt>3)E}*UU{a4C#OdnF zGsfn5cZ<$P);QjOo7c}(ILG;j81L2A`0tG4=VQp zh?=Or9S#_O0nRzfufTRK*-yqFBM(o;b9`mEP(%6iIJ-puo_H~KR>|+<)Cckw9DFGM zhQqhys(ZA4_kFo8&N9A5lCM{lr3HI>^IP-T?<8{_<6@>w|eMJ~bFPvss-{+~P; zdsVgG5Jy$y*ODB6lH`Xg{|!5Bi++X+})!7-(q{d{2LCo%6k)kE?3*H`D(R{h-;Tm6phv70jA6LAl`X6yBD_>ki<9py)ID`MgmAFGy)mPB}W?b}& z`i)EcfIJTu9^EBi%ZG3;VtZM(y1i^0zhqT3kv#5|`l_Nj+YHL)P;Lt{|^jPyH)#E4+;Q670OL z`3K;Nx8yQh^pN}_F2<{Io_^c$aQYolU-Oqxe=@e0tKY@A=sCF$&M|&G9!~un>`=cZ z8NX2Df5H*Wv=S@z$-Hm_GV;XL^RxRmw2fXndbxCis^#{q7AJm-`8>u?1gljPLD zh9mqXPQ9$-Il7_x?IAD0_6+4u;u8EZPUEVLG=4hngmZX2uEeWx>Us6wi#y=6PEbD| zr*RpckF$6OuH^U|$NxcT^Smk=um0EIE!0oO)=cFe;bMGD6ODJ-pRU*=ABBtQ{~|8I z@8eQjz{45e^hEV9BlmEc`5wj@>a)0<`mb;WZeXilCB7V2F#aK2G(pGv0xrhy;u8EN zF2#Fr8E$Zr=JU88I^oRA>faj|t&=CkeA3j8rHu-;v`lDvLX%~w>WewW||8F?sn z@qAp0zs4c1*G&DE;r6(g{sVCdeh!!7b+`;4z~#7cbM^1R{XYy>kY{lv{tFjP)bX@F zS>ucG1Gofl#-;ewQ&eAur{Hq@JFdW&worW~UW|(#*8E2mGe7Q&OYjr86z6am{tcJo z<65d;1wIE?;@-IE5zRjp7vp8P1b>f9an)ApAI{Tw7nhOWjmz=NxB^GG5+B}L{fZ{3 z-|4s*_r)c68ZN~ZxD5Y|%W;!a)j!YmcM~p}rTL~|2d~FH@KL8}e1I>)<@i1v;YD~4 z{yoXLUr#t){VG^rcU*}d#6^>}z9qOA|A0$yi!;=(6!*qu_<3y4R=+K{1Rv{Yd^z=9 zaRnZSEAa}PX8d7oG`{Fj^*;v};}N(7zlclmDqM!QjvanV%ue+-u~ejU!@UAUNfyS@6A z;45$`z7Ln-dAJ;Zi7Rlb1M9=*;G)O0zFTlH9*;}#%eWMOh^=ysFJK2B-%<0GQQrlZ z<59Q*KaDH#a$LmcSIy2=zhXQIm*CyF6yI_V^W&Mg9Dk21aKm#|U-7DrXDlvSApd9_ zf8ORleUfEX*4s`Bk{^h5QKi$IBHs&GA;hNaG7{DnB0wtK<>b!;7%JQu%L* zKa!hXtbR7@xgKZ7Yrm%8^e3u+4?CaA2b21=+~yMX^B8{{wuUQz4yPul|3)0r@9@qV zpZ-ks?Qxd#(H|FvDxZOE&c_Dqu2Wv6i~3nF%k6Nch33CA@on<+I5krK6kGK*{@4=M zhr40_KGolk3;0cJ-=us;GX7?{_NA=v7Wo34>LCxr(RK3EIJjPZAA4Wwe%y=m*D62x zGS<6Y`BgYz{SV>%Z_1bA)IoU%cB{|JuA-%aZKtNz!d{%Rd>qifaAzfSIky_3GyhkuSq}JO-!kQN9po@Xy#^s{Lu&L;bR=n{+&*aLDWBvZNmG!d@+{_tYEJFO`x9VCQG` zdl_5*$UkGhit3y9)Ofd!?Bno9)z83AbLE?pdR|}Z-=y*RQ;`VvesxFUGTfKF-(H_?g(d zLgTmL;7a)!dV2AbB?5pv)H@3j=U|umPm}tw%8w{jzib!H-wHdI%Gcsl zXL$tnsDA<5XDfdn`{&3zaSqqJUGqifDZc4cd!h2*arP3q*#PzT zaF4|7-vc<;QS}RPrd0c}1BYYedIMQ+Aa}zq`#a7!{`oCcOFzH8g!2!|71XCb)%Elb z4o0Y7i#yam94Yrm+*7_EXKs?`8P~F`7W{kRPs#la>c7`G{`oV-_hXvg8M{XO{cOIU zewlHc+vN9R2hTK)Ur3zI>h~cI@!vSJMS1f&X2f$|oegTV95vCEBlTIM4gHD)*?r#rwC` z#^(B4rSETbB@fQj@r=OU|KwRXJx>16IKG};{=H`*86PM=aj4e6g}@#2edsScfO!b~|+~4K?8HGJOANzPKPU9noX?%cB z!y)d0Gk839S^qqoCEtK^_-`Cxd${JyI{p`N3Rhqo|Arl0e+2u1FToxj zfPMS~PUClRfD1UpO-HJK248`*cpT2*`8dMsjpOqh@I3sJyoCKc_P#ieuZNJ=Ki4=u zzaDvS+yhUbKKMY_!$O>SU;Z3h74pB>$4y3Qz8t;~+w{B5IG*2UzNxqrub@7?N&O4B zfSZrj_%!vG8pp?%cXa>WhHaiN4`H{p@+HRc^PnZqgRgKaTxE><1#NZzwZL{ujlT*z zc%*T>{~`PTG!!;hDKR++F#kroEzn5{`FQmSV+__5mlBB-1ybWg^`RH-# zpE_0N>kOR7*WkiI)t4pp|H{j8NWKf(Q+52!9#nsClH3Cq$S2@%it^KuD}7RjTN{C;@_wjYoWpP=!%5pp}63FLt| zyHK8q({IRIlJV@v(PiovJ*xaXoSr9-!kGo~G90`r?=+6zuUcL7{`B~X>X#~4-W9tO z<{e@K202jk>jIAlNVN8PHyI&#Ova|K}LT>$kFcJzI}c_#or0*&5$+Qd}SJPjH|1=Q^CJ z(Z!0VvFYy9iR@p^2|_czAz^^rSKf6uGtRP{@BR{j5Q<`TJ=aopeK z?+J`Ij{7ED>TVp@ms39y z+wbxI(KtT;InLi_#_{?x1GK)X(=1ECFD8sTaDxE=W^cvjG{hlpng-a+eCha z`aL|4RvO3qRYAWk)CVW3eizO${)nfv9`6L@O|jEhJ{Jea%U2r5{UiF{fw$ms)aRR7 zhmQYI?3^OcFpl@vXaC+L4^L9Q5&KQ$e{kVs`Pk`NuiZj!i(T9k=Nl^@g}p}dY@A{} zYmDRlw(9AA{hHjhRll1&*Hn4+r?vh}HJ$$!#_{;poUaRwZ|@695LU1oa>-}pLF6gT2F*8!eK|{{f*82 z+*HRijy!#i@@KGpzWj!9{C!kwjlS=&i9Ebq`Jc)7SM=|j>OQOatyksqjN|#NW}5Ft z<9OAU+Tl9sYBQE80@|&KacZ^5p}dm37#Hvb z#^(BZz1pGmTx%S!*JVEkQy;Q_lW_)@<1Ai-bND+P;VREF-y+S|5T~x!`7Xf@9*J!{ zFL6KBufh4d#ZzUQ&kQ}u5pd0%-mj>vao=O*P1W@&!!KKVQx;Zp35 zQXVE||KG%Z59MDZ<8P1;;E?$m&(?gIo0Ypbe~auJ$Jd*Ez3$%;#_{WCIq&Bl!x?`5 zUTkcxcdn<6xPS}TdR?#QwO-Kt&OMs%6dbbu7aPa(W$Ax2&f$A;gr_h*f1Ua*#1{Lr z6&J|=OU(JL^P<)h{;B6nTkP$Uufx&j^01`-Gx@2+o8@K6c=E4tdaLpy=5YLZxj69_ zxy0B!ua4L2M{jcLRvq8{*ysLv31{!t{reGi)AHZg!6&|?`RzfoMT{!~yEF zx2xZYy;cr!aJ9S;JJfH&8R~Z@_4~9R^~570B;&u38)db=JU-Xh>~AaW?`7oSD%D?OY<|Au^}sid_se0w zO0kPaVh>NkKAwrw_;noMwZ`Up{6O=6igP)6dy>B^|7mR2m(u-Q^>vNUu2z05wkqUe z?7T0ZjXm5Qhn$ao#_{ontZxL);0ZX3r!hWFzd1PEp!pVHhvQp?Q=Gp|*d^bIvz*Tw z3w3-Rc`ICKR{hZRcrgx7lyAYVEsw+wo@N}M|KKW}|Cfy8)XT63m+QC{c`+$z%P>Vp*~;VfzuP@z1W%}*LfozA79VeC*(Fb zI!o6>C!B68cftAp$=$KLLO*}?PsUfsV{oumejMjk%jMYmP+pzXSIS>v?<2W@?LXz3 zi?#k>r`!ss-;>YB_IGm6#4F`=Qol+rOZ&e3-lz*3uuOk18{d#ikWjely<7;CaACFg6c?tOz@_smv zhf|-9wBD&W^{HHr9nQx}oa1`^9OwU1eI>U4mH$n~-=Ou>eN*dm`^zn`Jw!ea7w(j= zP4Z!K8b`zBDL6Gio{jyM@)DdsPyP%CXUhL1ZYS4yOX~}6kx#+lHF8Is`A^5!9eXvD z_r>-;<@e!iKjo9L-%ZZoREfM4yX@zB9Gs;5+r-V~zp&jdn%1_63 z3;9Ch`1-SXe}1)be1By4K1x689iA6sa8ywLskksn{a(VUN9E->&;1+W>?6u|VCPId zfB#9wFJb*}>v-J7az~t7CSQ+(rSd(-=J~?=tBFbd8_J)dX9QW&hdF>Lu2!PoX_`8Gd}eGP~$sb zd$oKCwmy)1;56&GGs!vLvDja$`p0mlLY|L9`mavLQ~#}Tygr-t?J|z9Uzh8*>btSy zm7Lj&aILs7{~MZ%=eUWe7^mGdO!ENaXf#T z{rwEv$@ODw=G<N90srOx_$jxCD2=1F(xH7{~KlZ8iVP#&LgVPaP}%AM0J5$6w+I z|BdZ`RbOMJ#;5klEwF`M>_+-|xF-(U>i2CUaP+zIXRxxM-EuXT7Mr3ASg;9dJPI;mkD6*AJ(jltk2u+906a0>r|ov&4Y~VbWV3+#sIQmNCtG&;D zR?1CrYL)i$A{z>nhaO7=IYzf8{IlqYY+*5mRYIE|}TXnk&1<&ANH zyaTqMP<{>0;Gs#*{q#tZGyjX&zd_^Q#%a6}7j9Mlb5h?^KH>w;S8urqcBjj2aTZ^S zou`%e#Xb&j9?wehXH>s5$@|I?F5pV+4ODJ@sP)AM zpJ+XqJLR_6y<9Fya@-RKS12Ef^Y{rIc2i!C-7DpHuziF41y1#l|H1x^a-H>BpM9#1 z_vFMA<@2zEug5Mh7aAyk z89Vjl3LKLE@&DtM7k#Svt(WB%*x#)Ctus!4Ef2(*Z{#o;Prf+Gw<-SuJNRHypI3gu zM$Mn!A$P>#FY-;;xk~$SFSh!~VUqLw&0_lw)UVC7x;XCzj6HY zLcq@pbvJ4Kg$Y`3Gwh6z+hK2{d>Iah%RaWp%lF{)ee(U-87+rNK2a{m-eh^XalF2e z-{*aTv-oQq;ooop?=z0~C*bF$nxD%V+!W`qV;ukBlAfXY&&T$2^5r=Dn%oN)_Q+$f z&-t5$J-iC1=ji-wHja-kwL(At|3n_~^Ui);;CidOS?hD>YQEF3HC6pOCpqqeJv=7K zkJtD~*ysKH9Gu3>aWG5$KgP~%c^kGko?X~|R{7Cev|gL>r(mD;bj0~-s_%}yC*?b^ z^Nc(Rhj=EAj@0pFaeAlfR~yIs>#)BYv4_9IY5W)Ct;rf+ZL8LAO_3X6kM{@djpNS) ziuwKFCC2gfmg9cxjw^5<#s_tEKMy6(bNxL?p1(}T^9=U?()w5=I;VNHhJvOd~ z9eg@=@s-%aw__iV!)aV@9G?&CpuW$%%s9TkeLjDCALn?#^bL;YYybaB>W|m?I^rvh zcepztw19@?hFOXMbhv)AGT;TQnyQH4?AAclXruA4~>wM)oA1Pz= zK^4!tlX05kca7uq2dw`_<9I(y`26cG>Z4Dzz6Y?kLw+*J`^m51?Co*|4vV$ld7OGn z>)mA>&wnc4m$kl;Ps7!X|wwkN|=eW>9{@FP0=d=Dj-w#_{|G=Ks_<-v3he|3~r^uV??^J=7of zy~bPr==JV&<9K|U@#h=I_j3>K-z$yd>(S-&q+X1-xn2g7+x+}70f!B=-l@js`rvty zA8dDtW0f`h)w_a^n<%cuOP`BVGkt~j?} zz841vXPU~d;h?qr8Fm)Pd$CR4{s=D5 z#<%)Y^94iYUO4-ZJRbX#Av%D1Qm3w#u8a`=DI?Z}syy-b-+HiSjgd-<4*~(<`djr`KTcQI_@OwD zU&3Ak)o)00Z2hZ#ncceon&HA8xib#-%6H=MFZogI{V6ZP7Wo$JM|%DowvYYUsru$P z*sQz@F0lR~iMK0%HmUzh&f&~K`3IaX$Vcthd|r|Erwz{iqPz!of0rM?{$BZ2oc~h( zJn;s354JYS4G(C(;5f~90rnfogK&!1^JlR|UV(Eb=zRT}3`&Q*y8;4 z!ufs5AHw!Nt#26)@%Pv}p!%Z^s(&80#le5dZ^5~P^0XwkwB9w?KTQ4ud$o1^Ct8Oe zdcU1ITzNO_R+rP*sUbg(bNH-CLD6 zIzs((cgS6_dy{+*_G@bVGdNpI&L#E7$Uox<*R7`hR&C`j4)I;sU8Mb*iv1VlT;iqj z&p7v%-0(>C&n}R=;%K4#0M60x^`!n~4T{n)7EzZ_?`$YZgG7vkt>y&imv z!y0nEqtwr<)cDJ=y-R)&yN9WMG0xSJD{*#*>Q6YDQn>gOnLRGa;KUA_tjcmlTZ z3Y_J6^bHPI>wd86s9!oKH^mw9OR%*@`Q1s*{q#6?tLgaH;=C>Yjs2747RPEnuZ6Cc z%dmBdd2^I}ZEjYP~a)ypy~V=gyYD!WQ)haCo}%2K6*wbcWm!JC1xU zcF&TB;S7EPhwYRvO~&IdZ~1UXnLgzxQx}w_*Ea<$JN$hWU@z{5f2L3%=&N4Lj}S z@k#x;@+(RGIr67TeW|<`yB#%Ovxb^4bGvd6`+ejgIOr=sgVWE+Zzkhs$X{b?fLx=I z`UiX-)d_n8l@G?&^YW9p&`-|csJ~oD#`l)%oS^=B*4Gwi>E8?c&#Hc0k`I#SBpxfT z!{HeDZyb%58#iXYQSv3&q5e*s3Y5=C{D8bVspoq60cW03eoPbfw^(ln?2_M#qrddL znvCu78owmT@s1=fQ(o^x^$#b?9dY!C+#5TS;Dbxou=#OE1buN+3N4^)cQ`w zQ9&-j_8A&~7YBly=GefL~NfWFUA?X1E=`@{;|!}zwoyDUxL#M+UasTvM^*`S@ot!6T z&*gd;LmrXO!g;*XIPT|utbX6&3_hZb^6Wb0t#R;?+!Yu2y#EfI-lhBb(WIWwXS3Md zr+g#!_sjp_!U4JQnVR1^C|`v=K2IHkGk6Xz@cC+l-A!8WPuNN9p~=IvjHS{f;9(AFlmB&6nr%#J0xq^>qf<*OlZRpC1lOoKpXpIGU~fTArBC zOSj;{Ra*aUGu&Tg#_{!?;q_z=_5K*u ze`FjV&v0HZer9|*?j#GFYw(+0X!N+t|KNq*b9=;AQPT@bWjccEy`5oL5 zySO*@@I%O6up57x=tygK>QSI6M!2$8B(p z^VGjkto66R8IHFEXK|@8O8Y<5 zINtAw_rsIP3rA_ai?EwlzYRFMQ{IU){Qj?wtNE-ylshWgp-V{<*R|DAE>dL3UW^(pGh$n9>*U&W3sf0X1W%YWb;=db!jnlEgv^|!$G zf2!|}ojvj>oI4=DlGO9_OAfod-mk}DE7j+*^OfeaF4p{obLF}?(?@QHQ+;(luEWmb z%7@^flROdocqR_J+XRQF>;1xoiTOP1Htb!e z@nf*Veos$)h5Ef}9IwY_J?qG`d_Mdqc`=WESyZl>nD07n`5M(nTGd?T@U zgYtiSe}CiDJG#G*xm4>(^ZDJW#&NyF{<-89-xuqH?TK3NebjfL z{yF1#eMNkqcm+=Ly#ExZ$amoexb9^dZ{zcDF}@W$c&u^!Jo5W!JuhG@`S}wU_`cj; zoX5?(YJ6}|`*#&ii;0l%NPqw<3|b(&n*`{?&rvl4btDU`4opg(%%=~gtPddkopr{sdxcSy(gbxZR+roK;c-2B0LGmXBDuKWw~?t|4I-*a*s>|Z4J#?htn**N@; ze2pu=P`(!j@In_~q4)*XVY?j9D7qP#K8sfBx|$Y8O}d(;=VbG&&4VHI*u(={3D!s zO8y3CssAq=eO~dVBh=sYV)-zfTq1YH@lWId&U57=99|<&bmiyCSK;(q^4&Pwef!+; zKO4uc(%&OqfW1rQ*KrVkj02Mu{{j22l(!wpewZ%rhdt`=>f(1O-VcW_mruw3X>uiw z-6BuM$!p|UuKcy~eC)eeUXJ7VI~>D1o<@IfQvUupbGO_Pr*S`=#AmtkxDvFii0l26IK}nuC7i}9aR#r!S^OLJ&DZs5$J156AMcAj+!hCL zcWZM#N!_ac_QeVQUic6ko}u`eE}oFfu>U%_#+m(a8BQ}FS6Q3!kKz1w3y$Iho`C04 zKEr-`5(n51FOwf+JQ*Cqf8a3Q^$d+SFiZVC0;kyD$KVX(>x+H&C_jXQ%-0##W;{{q zAB|)9Jo4kr&t*9Kkm{S^;y1_-;m}(BeZ~bix>|nQ<#W8O!r_gIe}@BislGq4?-F^B zGd2FuI{kg*LviLCxf4#{6RpkPBX7>%BOi=Cd=^f;*D7~@Da9#Vfm@M(fwegvV*Gu| z>DFfc;>_2b)@DB@*X@+6?;)4ZzhAM4`~>-*;UxYQr|>RkslHfR*S{7xxP$6H4oA0_ zhv9f;$6Wj4uz!_&1rB{K--VOZw-5)KsJ?ex9ItidcT{}4v(>*e_Hbw?#k=9~LbW#> zr-sN;96eRO%Eix;AHs%AEjH7rJ&fsmr>Q87lu?y)cIELRoZVgJ zKgZEM@$7Wv&%t5*686*okFkgUwl?*7PXuzu{}CnX zpEpbOb;pTYr*V3bycUN( zlD8YJ{`!e~I6?g<;P4O1AAwUF<;doIU9T^~@h26(-r8IbW8DATM?A^#{v7tbs{FUH z$G<Sw<<9d||12E)S$^Ew^gm8}uMiLO?=gLZ zeXQ?KII%+IcOI|)#h#N7!wLEuv^MwKKJK4SAs$+@UG91mapnJzFT&oR@(dgpr+;s9 zq4RAT-}~0)c*t-({7O7=tKz$rtAAcXZjGY{Z<}lXL>x@ZVH|i%zS@;vCO?d0Z^}zt ze5IVl*;DjjVYJaDw z+7IDYI5vKp-1vLp=s5W-?A$cvriu%p({aW|I9{J_iXZ}uyjo;|<&F}46zlyW8m&Hly-@97%2hH!j z+x%m(zn9i~I8ODD&&9FhBM1T&s959380rRD!ctD?S+q?vQWC$p?^;5y#exS92+DzI$!PkhRFwF|4_L*4w&bL zwm-vh3Rh#Fc}`*DGjPZ}x3hi{C(Uy%>-TY%{2y`nHJz{anxOt<%zcH;Z;!L)KFE3i z4ig`bqvpD9tLh8lP#3j77RL(Y+g<#} zM!E4mhU34;%Wya=e~tsUsQ$lPe5!oVg=#-MNA7|BSIcMO>`n3{9K1@t2ghg1&*A8$ z@(P@}ME(gUcaZnENbM(^$X#)2C;2oSyi-0O$Jk%9uy?QGFW|&I@)tOMyS&XLwHKQ# zAB6pn$lY=1QF#aXn#-jryb6)o~PhIGsVZ@>~``@95#Pf!46|S_N8?G`4q?Sc4lAN z@rGYiybVs_5Dsml`t3fp`Ju-0bvU-IoWvRO(>PVG@vV3H=g3ViQ+-~g+zQ95!<`B$9XPu|}g2X=g^edXhEvbj78`SXyuy36_ z8K;QfiG#!!ITL@!+I+s6$>*yzIDt2jAL^j_-SbNIH$7PGwZ^GU^07GBN$WElhxbvu z8vB~dGjR+*kF(}J(5}zBIPr#@bvF0)Hol#?&e{E)-B<1HjT2L}U)wuBBlmUrPswLG zKOtAU{DA74Zf!rmJ+1kFkhm|a^?$|M{Jem7(7;@OR=Rj+#n%xp;NOq>lX&1XjenPE zDjy_%5blQq)@FTXvmQNglIKGqXX0mDoB0S&R{iDJKSjRW+VnSZfciU=c&4}Z-#nZ+ zQC?zg+E3Ho`;-sSzcqLmKcDz3<)a~v$LZ=%qCoSzkF}{UOMR{JeEQ$j+Vrm@^@VUJ zTyAZ~7agqnFTvIA_3t2@Cf)@HMk?MP`&hqHoFslR&frNcQu))~0^{ z3n%4{=Woc*RA_w~Uu)v#d1UM~#Sg+he2ldzpSVx)zIX}!J&pV{KTla}blQ@#ra50Ib6iB|G*7vEQ2i!+DGjjmV!5_`-0Vy}hV!Nre~2Vx)dRg9wtDt;l( zw3ctdf&Jup*gHag)x~G(_+N#?)8wCA{&ab#8`R&_(K@~lz{v`^E6$Y5LtK8TT!Fo@ z@?;z${|;+&{B-90ywK&Jqx|=AJgEJ)4yTWk8{f!!A1`~@>nu%27b^h&#W8CkJ!kMSEp66rl3He%_d_lg~`APX%oZeRTFTxCYk;*~uQuB6h1fe*o@8yGAI{hPTY`9Mmd>9~;NS^b z?{{!uAoGi3yQ{uGaiWFdyUkGh;g2+)BXAZUj}t2uABLkJ%VV*(LcR~&SU2@x={T&+}iBF_=UP(>|$+>2k%?1 zZ{!DVR{n7EM{<0PA?}URd|za3ju(%=Up^hj_C zr1AWKy<&N{Ta_Q}to1z_2Rq8Wv7h^uu#1mY`SY=FjC>PLF42DY7Y>&x{u=gPRs3t5 zA-)O6&r$w?x0(K#`JKRc1J-7I{-;&GH}<`t{IH83%l(eEna>RO6E|3!`-#~5`uVVV zEs&oZM61ZkGDvJ5c@E+uD9U<#=jmZTjDp_3lA_=tk{_k=AwA zdjihV-)qRvv{C*YIPkK@_X1A7B7cqjmn#1+9Nb_1+ub||%$*NB`EZ;)L_P*5j@0;0 z!RhJpnK;^2`=cC(yT~!@t5N$mSli=)@h7b7950VqoAJlFAAFJW;f`9*<<@4su6|4F zwF+OnT>i=0)aM40d8hiDd{6FTZRRV${dI5aCT9PBdZNz^%QxKG z%*Q!RTIW2P@?q}3r(qwy&w2;*?=dxMpUZ!ec<|;HIWM+0`?cRHo&Vn@p7}=e{}uNB zkT>CIQ_WxVyG(i0v9u?5ur~9Z;q!BE;_?i*u99*GzIZol3F8_P&?|c-G^@8FHih$e$!Pvo`$?aeg_1 zcxa&F$6K5B{XCBuMm&0w#xoX&PnM_R%mn!koP1r!!;{$WSN%(HlbU3x;`CfZRX!ws`YGbZPwG@T=kuT!?@Dg-XEN<{OQDf3p77>yYkP; z&*Kn&-{oJe_|G_jn?9)aGw%B!oVZ^3{jAOWj$wWyILUs!6leC=_-5d712mljb`Rr{0v?;plQX==`ZX9D6Ux6*zFCdv@4a*9ljC&!o{!TnDt--)-$s8n z$JPF;*sD@}14 z0Wy(X}Kmk{?ItolC08NR<=i$kv{{x|mczH_&v`X9$f z;1v6{o3*)~B?jtxHk5eqS{)DLTzT4?jJ=oC-b@^LS)S|i@ypJ;sJ@SI;x*0Z4>-l| zr#1SQ`s-)@_Qs)=I=)I+=5v3r*u|G>J(lAP-~X<{sWVmok2t$h^>6#Q#uF}3 z|MtLs?pF`7Htk)+{_RRU&d-bVBOYdc&LAFMp!%XXv{3!K%G#X2n{)qr7x7pJ_3v?< zY%9Nl6Q65+KXh)d`qyEvo4oxK8c*~lwb#Ph^uHVZ?}U%Rz3{PkIOWrPJ}$#ye*W@m z=WEozJ1C!GJs!0-$6t`=@r!WmCLNC-T5oSY|NO4!0pD7i^HK5!)%Q0J-7YtKQt@Cj zji(LH_R{CKldR2r&g6PHoVcI-u{cfsRpfij|9#kZm_83Zje~d@j^S0-roXW})xV86 z%FjPEeTq2q)dC0aQvT5{j=Nji^A*ou2NMrHr2KPm3deBvDy{d8*5-KfEz|toMLc|g z;*VIH^^dW>i->#AYX5)W@)ycK;@}JN_D^d(q37fSu#b2FPV)W10BbXz6yu2ykNdTL z7ve0>TW-gplhofiIQ^XRpLae*@#WU$c~Y`U`)8H48Q*b??>B2R9~-#d?Ka=otXJR- z_5TPQUZ(jy0Y`hugK^>wxd?lBB97gyg z9iPuyoBg_k^W_`XrawXMmsVo0Nc$y=ll(mM&gMAHoqxLN{MQ=C`F>&`P9CcH2s;Pl zDjei_-&C9-emnLNPht-*#wqeYaHhSib3pyu#+)~7e|Oxl-}r zI7++>ho&liISy0bEjW0E;*Yv~+J6;$$EtrTtj+n#&-1VK)@FTzBlWyslPf<<=Z}4! zS3JPyk8ajxdhS)0$dnU(rH+n@a8VJd%ywK?DVp3(WX znz-+0_2)WkGu|fb@B4{+KPbKcN6kgwZiD4Gi+^zD^TbXmQ=gqr?w=3Bv7^+V4%VhW zVfu3l@$_Gszfm~8ui77veK+cOieW#;+s!yY`*U$@g7O!-@)PAZahm7HU*jzC-*K4r z+4V(@C&m1?vo`xH!}|9l9=>1WI~!;3me0lh`{XNe<{tT096M2->%52jk~90`OKa2q z8ruI2U(WTj@gns%JVoQ(3nzZm{2q>DKgh>goBFcUHxzHcW66)NQ~u?y{1KCd z&$l+~;qm?0)x-nTe-}>vq4pocQI4P2afsvLbDZM-AUQz$E_o}}Au{T>j8i((f2jC>}LL8)g4USFK{9I*i+Pj?g?sEAYpO0Z5KmU@( zaef}+OPt)G@%(~QoZokPRsHw%)A{viocUY%L2Glq4{*L8VQtRWe$LnBwO##dk;_1%X3IEjNh zX?!o^#En|dk8$`W`6uk#S@}D>X8LRP&rJ5uez*zetG3qWz|P#I{oMzLDL)dYa5+xU zpDSE>o+sXl<4@`Q{S;2)_pu-Uj6=BDQuQZwiN@0kXJ6EK3UC4s#F^FVe<}9&k}t-o z9o3&3ad;>BA?({(e!;ql&llw90n)@{f2+RFt<8Q6vLAo6Hv6$T`*GXXjm>=D&V0AP ze&+jFYct=Wmo&a%ID@NjV6o!YP`)|kXJZd9!maQM%0~}Uf4{*oPu|Xaj(FVj-j|7OeN0P7L3HuD|5S@|d9*e!Ay_I6bNFLkcb`rn9s7s!uVoBPMa zi@KkEn|LOu@vg?nUh+nqxJ2#k@s|1%jLB`Cdno?|96eDUjQzM6hr26&9!}8ym9G5W zir6htaF+Nu?DbXrR-7ch)a6rt`*&1dl=u-iMSL*M(!X*S zr+>HL1nn)tajyTL;3)A%@6sO6KM%tm?S*iX__;Vl{0^KYZh!AFcl;6m4u@%f$M+Nu z(*DsnjnBkhUmc(2IEF8A<f|k6&@T zrQ%IKP=7Q0Jo?@^d5VsYHrQLH{GK@bmK?S=*M|f@?^Z+H&+qe0$BEsvfA7Nq?l%|V z;NcqoN}L|1`hURwZ8W|{E12K&HJ$^ouS)KS6VIspNjNl1>s5r~cgPpua2MrYg#%61 z-YgvLDnI7(`TlZ=btCh9;MNwo^;<#Q*Hq(O@A5Cxd^Y+}{r6ts_{S-HJPrjlA0e0D zP5BY${ng)?%fC#XiNj%)f5_ULKNH;FyzKIi(0Eqh=;88OoNX!p;mrL=(~s!?VTvDu z{fEe1ai+C=lC^1nBSOXGVFdwgD9kHdcDZ}YMGpIo5%+aHIXQ~9HC>?GwM?>s;b zS)2YI&weN&o(d^`9*%Q9xfTcU131k0n+vfYFUNs_s_zTzqyCL9e~{w4e4_D$OXNeG zf7SYR!CBlNhc+mF7WR)(`ATbhKHBNz-1=Wm+&4hS-wimx`RxH5AFlOXh@*TT`L@gF zcwddZ32Ogu?B68s`l-ef$A{v~N2h$c zaPeM>KaJx(%{;^qKPSV}I;xZ4RU$*Sq%E$M>7VaDsTb zGtVn;#2(L+?|0?-eX9jHJVX6?1N*1R864vGM>krV@pPwuyJXbA#O=yI1ZU%NC!CDQ zC*mmm9fec$=W-n5_vdfML4Ln{9?sI<^Va5h%k7Q(&3ebi>-hhh@&Vdw z_PP3>Ro@UCctjrO;t$JHoaf1R zW8Y))6V|r=)~f$i7k^0c&v0yx{3}lL_mXz|Lj8>u>3C>`Q`hNuI}s<(mCwX+z7L*= zvz3b9;Ns`W|FSmgb06#d2JzG#im$?cz7O~jXWJ;=WVOaOhWXv!+SHfo(>J%DI#`?a zOmTnJ$J)$)AgS`F;RMe^Mq}@3t=|PW`@ZJqS{#e2{Czmc_){*V!tv4?xR`00ud!+|s8 zQXD3Jf%D_K9^H)nKF!|)t~}3I7rJHcKfb~8O2k~HQ zbNol${Ue@$Ypm`0$glaFY;Eo*Lzn7#%PivlBh>yJ9L6u;R8afl18dWtB+u8rwKna? zXm2C=34We^=e24-!RMV8)~38SRrenO;@)7@KLAGu$|X3^PoCiN`^z^tlm8eF4N?3R zoIFF$xO}`3Cr($q**EHM_)PgooH$$VfrEGi_Rdm#JWhw@DbAzhJ6%5Ur<{quiQ|RJ z{}N~MpE%rC@jbs)e`BY~ZE*(o#96+N9D&o!cNI2&@F{mborY7dYJcB>lds87yZEKb zU+UtQ$)7s&eDMz)zd`Y4>(pP5pNH#gZO-SjxjqcEHv4Hd_b(Ch!*P|r*!g<-4(!qX z6WF&@{e9KNUzamDihr;+?M-F>Zns|ji@l`$me`L6;7nh|!#LPc=d(#T#LtJ^fa8ZL zJ{w1mkW<*#PRHkRYjb=C7wY)@*1EB|zu@=v{vzLdK;z%*JLUU=`u)H|t?m8HT*bQ* z5A*kuhTs$)kG%zIZ>qJuALDv+hqXCg`*FVc7x6gpSBQs*e?&Y%{Cnafi8uOQ{flwG zyAMv@t?{?SSzLhQ-{|}l!hU`}Ym77Zn=x0OpI4lPL)?!&>Ab(ruWwnK@n-n>xYgEX zKb*k++kk_3*R19v^Rlj|M_8NrPV)W2u{eWI#X+tQH8|B*?Z>T6`-w5CZ!Ylw&u124 z-)$QI+c?Yjm1}T_pC{Pq2ldA@p94&{d~1^E8ltGoK-zFQ=6rXKv=GWU-pI_z^4}8B|6B2?*z+rX8%}Ie{9icGSn(82 z|E&1C&f6-!2FK{{HoveQyDPpc_H843IN4M_76<>N|2W-5@v$zxvmC>jjmp0b$2Z82 z;=uOGf6nFqqIeo7_fY%`m(O_qz_EQ4Z(^R?*z-rGk-QI%|D^ib;?SOo7r6Lda$i^e z#3s4*D8j+M^2IoDhI}jb70Hj|P@(*$wf%h6M*A;AJUmnJpK$tCd57Ovj}dY+?4K*Q zwKm7A@0pWw{W~7}aftkAvGOB0JVTz~e2aWFPArh`z@Z`Xqd0z&ya=cNCBK8chvhXm zbFbXUJU6rJk-kT6ffIMh$Knw4JJ7|;6d#4N{p1>JGoP8E{c_{K0f%F8 z7pVMF9IldAVE+X9D;&5;{@Hn!+{AoN$=wfJDIbhe1J)^CN2pRV|KIP{pj2}e)bCAa?j z{GtBFaC_{-1DsD*ekqO)kT1unQ{?-wH%NXKhwwW%98&yy93;NOpX!fqu;Pc~1P4e-5$71qG?4K-;!|{9N3vu8g`5K(Q zSx(^01@hxAeuexZPMt5mi~ZB(&v9^;{38xsCpX%p@kME`8IH|RyruJv^6@x+lROM( zZk0z{oBbcVNc;an;$Ds7S36%U--#2q$WP*6SYD2^=gR9`eu=!RdG3=tzGuoUap;2W zbH~#OI66@t=He6N(asmj6LI!3`6is0B+tXC>2eB(r^w4){B4 zeQ@|D`6wK^UOo|Lh>ybAn-#Cdu^IApIEv@s#7xB(;tcU+IDV_*t8rkK{3}l4rsnr@ zZT~}eD&7jm9+JD`;B0vWPRx-jaEkcVI6YVKd$Dhx{45UQcd&Pb;%l9m&mGP0?b`lD zFIBuHPLbao2Uzc+IEc@|i3e2v3hX^7+usY$t>1m}LY%o<{tyT6m4C&FguIveJz{%& z1UvP~?a#xk&HYcB=VcwO&F7Vwd_L)IZN?LSN1r!BMTc6;?FL-~WTpY}WB06qnK%y)$=|Ap$i5U08woLj${ z*mtJp`!O8G%Wx2XgG0E<4(ea(4b|TkC(lxS1F=VZ4ECL^_@&s7XW=OMPv98!y=iUs zR}Y?7d`~>Y_?w#Fo6j9TxGhe6qxO1X|F`l;7hfk=GE4J_#p2kk7)wMRKJp zPyRHVT&Va=9A6>N#?cSur*LMaych=-$RFb18}eFfGrpeepY6=gN!#&d8Q&h(=KMBt zhd#OWI>g%KCpe$ACmtr=gYp^1GZ@DgtG&^bpH2Dmh(}rP>u`eo^#D%O-zRYDebx7h z^PBPquKbho8f(+vB<*doHs{AE=i8>{?*Q7kkDpgL5YOb_KW}Gk^8G1&9y-q2d_GF@ zymJsv;Ub*IH8^&G%3on^<~N;D|8BN6^-rKbbBQP3QG5Z;u9BDH)Z6lBIJsQ@*_D4w zZeo6q#kLpxO5Pi%*$+qH_$!Kc!GW*k({K_`!YO<=PU9swh`+-byu10~Fx#Kl8rs7N z;-}*z@rzv?-|Nbg|0d4jUvL~Byqnq!<9^uu1A)2yJRS$|^)4Sjfus0C?8kp%4HMeKI}E4) zlDpvO-*SH(Bz^`?eXjb(I)5TxfCGQ;kX!E?ar#dAVI0JZaQtq?S7QHt@?SXig1n#k zyJmJjhYRFRIQfTsG7kJHk9KicRVzwbX4r|^T$WD)+$Isq$bPxJWLxHtQ8)y~evZ^E(lTrz!tR9Q{kj_Y9o%DL&iUoX-NB&*l?P z{HXZ5#Dm0Fx%hdCXRXbCO&z8Ex=nM&H%sxItxf$Q$~VVhd?b$I?v#(esPZGR{}?%f zJ=(9tfpv;ca`|7$*I1kOW85#yAs+u!@#k>z6L}eqEtkKg{8Y+szpus@dPnhtoGE{t zwQcWJ-M^e{ZLT-7xj#C?+N@uS=egxLgC|>?{o(zo^@`&RpC|6cfo&9@heOA!KhI$Q z5Ax^O`&n+hpX&FIl@G+}F>-rr(?8!X^q+W!`5uW=9hF~#ldI$^=P%`{IPFt^Z*}E4 z|IW5H?Rm7f5C`#c^0Tb}C)Q>@Q(V8-6Aw}U-_~Y7`r2wg?qq(>-Ogv6_< z|9-hE4$qPM;^f2fY1n&AF0(f49cO=>j|1HQUT1CZH(39<)@Ho15t`rm)~0{aO4aug z`AZnzo7U#~(uAL1c#r(VzWRRlH|+Q6dHSvgsJdG}&HOo6U=PP};sy2Z zDd$1Tf5*9-+WX#>@4Z*9zNY5ymfQJ^O;vtd?CaV*7axMtxCZ-!ir?(qO7c=BG&u)~}O%fO9`RUv7s({pCK`H@HQvd=>VF$q5`M z{<_N_qWDIf3dyYxQTqwvr{OT=FT=5+%6}C5@hY68{ap@aJf|wZJN7@R=U38 z2juUtca6O55$d1sLHR(Oru}X>MSP^oUw=@pe;47*S~-EE-^q)ezmdOk`M7CIwV$AT z2ORrW`KRF^`4e$?o#J=kEcvfu-}j2I#WB2lE43HMD&7uf*T_R~hUcXhy8I40pWcUK zUG~q7f0--)t>*757ynNF6Q|b8`?Oa3(Fe6Z+Tq|saz7WJEuW5456Dp*YOM3~H0;}3 zegMbt%Q%g{aQT$qwhjH+N9Fg!;i1~!9dL&0%?O<4=U*#u>{R7X#R1CShr=TjUxc%# z%U|Qye=GJ;-(xOLeQ#ku{rwszslU;Y z%-0!e?+~1({^PJm{xF=RzH@Pg_*JevKd<$;%f}z%EN*<1+V{Vp^NEKud|%zoneThU z*tfl|4|8#l{r&+CF&{g(Q~fc%k2x5plNxUq9Q>C&2nQaOORz`&BpfAvr;GFa{}~*_ z@8K~10sAR`;L++|_Hmsrd*KlAD2`G78l1p$aCoiyyA-E+-n15HzSsR-qk!5AY?AlE zDICDzHah=Dak8~M4@Xbc`Ql4gevo`fd)Bj+d?rrgnJ)gh&Ob|W^eJ8Mw&}onJ*(?i z3!LHn+!y-a9j(bj73F6%n?t8=W){djoaKDqPTbJphmcO;)*-^XG6B_4x+!cn|O zN0py|55Y0q2~Wi*;y50GXW~+vz!ULoJQXMLt$03u7^m0e8o~-}>j~cOVY)`Kid-d_I}U=ach@HzEH9?8kTF=6DYF@B-WlFTnx) z5iY>r;UM0K`{A8BYrG-6A0CO1z+v1CkHIJ5C_WQUz~|r?z8Fu%*Woz67th2`;RJpe z&&D6&BwmZ><3Df;@7qP=U4q--G(Hxuz^C909%XITGr@Y+;MsT@`D@6Zg|qlkyaB&} zeH*lY(zpr!4Eym9xH)dpRpasSez+BGi37MRF2Eri#D%yYJ{O1ZrFbO135W3mcnp3D zNAWv&0{#KV@b(27&s6N;IPQpN;vqPJE3M7v!QjWbo=zq{oA}K*iRa?^_*tC7Z{Q{P zQ=G z{5+nI-@+;U6<&gW#A*CDUV-;Kmi5Q2@fsY&S$sO)fG1$zMy>x8+yvi%{WyV}NZTL1TP z6TEGA_1BME;O6)^?BQX!6&{ZR_)=VeZ^J=+KkkR0#UZ>5kHlZ$Fm7~$`a1?U$5DJ3 zo`3^5hL6KjaX%c#r{kHp94GJvcs8DbllWn4b3IRT{Z0{|Py7v>!e8Pg_%EEsy9PDh z6}Sz~;A8L_+#hH0FuVbe#=bwbA1=gA@Rio4|MThpOyYjxkK^WeG4}9#xE1~i2k;-( z=6ag>Lf6yXdT4wF#629uN8*0C0EcjIJQAOV!}uIL2FGv|Uymo?`)~{|z*F&39LFp1 zOuQZ^@LzZ~-mRy`o5U^fd>p_jd;(sA2jMgxg;(H7ID@ajYw#?b#Sh~R_<8L6OZ($3 zYqMTq)+>WEtF(SUkl%#-M!hsXKRyUI$8E8P`{Gu31P@gZO&f58r`9cs3r1 z7vV5ohR5KKa1?)KZNI;tq|dv*6OZwEtZ8qJcLMnyj^U1YDn1Fv@o9J_F2e~t5zofc za1zhN^YLtJvtEHOwLVYbEcdUAaq3gWm*a3oUT1B`d$GprJ5lw;K3BXc&K#ugFAl-M zV-)X;!(HSs4i(6k;^?vRZ8*_ge$3?u<>ffrL;lLSm+b39e|a9UzqJ{^?|8+JbMZ?w zo)Gciar*w|YV7rp-*fq$l)qhHQ=j>JUOxUk-Hz6#{#0M(7ZLY}-$Xpi_gTwv@?_=j z+)w4hBjmx(!{u2xia*DhvlMUFU*)r>$roDN??+Eje;>0p=kFNbzkf}Bx={K1o}}_o z$`8Tuk&4H0@)ND^8`%3?_Mfcs@z3O;IGT}f$LZDbhd8`k-gAJ;dvD9bvF~|#2F{Yd z0tc2U-r^LMPmy1Q{ckA#Fpj<@ug9@>|l1dtb}zabm4}vx#e zf3dY$|2W6*Mx4OyN2#)klhRUTl zJVd_B+V*Fp`tvsN=rM}#Sg7)uljNXtKlwbICH@GG4^Vs!4iew5NcDvWD&7~zPL?OR zcy~EzZT5eb`OOgbwo`oXV$~Pgr1>3!v&5(3__oS_7JIwMKfCgK%I!;3pKn)r5{@^K zUvTlAC~6!UQ*PH&_5Q!f8N`460EA$K36`eL4Zv9;MBVeUWX5%=$}_*Xdir}}qrnaQ`; zH;&KYIE}Bew#VyV%6|!`DDOK*@!;Qz2XNwBIgC>qX8bAk#}sSR-zD^SE>7d+lux{-^1tEK z+wuWX)#okH{Pngr^OIPt^&4+(>QC_b>~`{l9s1?w`*j>XN1tzhwl?eSeXRNqKUa=F zB@e=0My|BB^G*G;h{qmQd@1n^zyIaKpQXMf z#G~zX{rM9I!*a(e)tBV^=2Dy(q4*s*ST28vv$$Ec$|oumABcld`AQcbE5Cw6+9Je~nX=KjwUu&z!FKL}&W{thL#X z-as9XtBI$EDZl9il@AV@{hQ{)Mxg)?^*5lVc3taz#e`Y2k=@P#QR*R`a*bswb_sUGPNJYzEScm*5-Ve z=I2>oBpx`1{#u*zC!{ z(Uw`8_JfRf6Y)f6_4lYtmG9wE&fOHh(b|+xboJvh_6EgY#=$e?Z6?#7v*hmBceY%Ele6SUaN|Rj-4X6yh7!}1LbpYY>1r1sbO*!#|O&=Q&is9Q=Z`5Pkzz4x7_$j`g^i`6886z zufw51@-m#H|4pZw@^-&*emmaU?1%J~%CErQ)$$yiy;lAf`=-kWO;h#98O=R{GV|Ae7Wsaro6cx zXSg1pX>IraLyAwu@saX#ID8uQ;lLER_0=k$xj-(&-bM1wI5t{-9j6QBKX7uCeAG46 zNBnG@DpvePYjb?~IX)Iy+vByRj<+9)d;I;qL$5V)GhW}WI=`K6ZSoT}%D>+EGkKA< zslPe(|LEc|#Sgts@i6tDYHjNGsQ(&kTmP-fe;J1_(eeKqI9g^p6dG49#{&^mh=izyd&lB=ICC|6z`H?&?&hzp-f1T$IdES)g#y8g= z-)?!{FV9EhxqY6y=ebXw2jqEJo{RE)PM*)r^I-@0eA}B>PxIQwyt5A$kfUfY@14(7F^dF^Fh`j(4t(Y!X8*RSTa-n`bC*H7k^HLst|>lgF-&Ak3JuZ`yQhk5x-9ecb>9pG+}kCQ!j9b{r5!tW?bfllYZv!+q^Mqcowtj-ly)r)6m^c26y$nfn(SEG zInbp;r;?HmrR@v5l@`0~(t=K13nT6M|B5!hUDU14{|Yz1U2KZC?@&_OG19q1r%ttR zckEUe=vETwT2S1jTWRgvT|0H@(y3dQ;-Wyul1S~_#a-JMcWz%&5b0V_Sesqap;I^W z|2lQ((5++VZkw}9I@bMP?c1(@T}ulCwLOV+uKi!Pj+?V1T{=WMbtsKQa#L34ZPV>Y zmo8mPI~En!PE~1pSGoCb?chu6cBHoM(yr}0ck0@ubBCe=)57MuON;8J^LD3tOSXB5 zI|Vv-t-JV}vpaXITVV6s#T^R@Y6F|!F0Fmf{9o?v_8lSxoodrJzg=8XT+*epE8^bn z*wMX{`>%VuQ>UW#g^^ArT_PPKW-IY_*V0I7-T!TVyTP6ml{UDRMWt?aN^|?1N=h59 z+ccNg!BNGdD@K)-msR^l<^Ip|it4h`iK8lO%B#!9M{AY!)tJJnF+~+66MdtK##I!L9aU9! zfvKvfrnIc0U8^=jOkI)6*6n(iRTURjno9Bmp-5!xmhakP4ZquSVs!)6+x!7#b`1IT z+sM#yWyKAIhBnyKQ_Cw&k%pTYQCU_U8CJ1nE2U-Q#%=lT`8K_0jX8u}uZ9*EmY3W4 zu>VKx+qrtpyM4yhRE^p4Z99fOl@;T+jMN{3t0wo~Et7L^53Q~&D29qCnJHcs8QYs^lp>{C-a0VcOkS$W~OVHIN| zn+Iv$>|cIf;kdGrEhjiXHl(I@B~5H#WOQM5*?AEcRXZOT&YYNBpsj%lbO}E)}b_*3&j<%3~d{igj;)?On%1Bk!(WT=Gt0QKc_Nu6?tch0lFOSw#oAFeb9h>`)DU+Ytzq~q9 zX%5(bNGqDyr!sOb8-I&RYNJ)=INNG?==p`w2Ezl)xw5iw+}5kFldzQ*HfL<5k&=k( zmYt1W<0`7`ROZh{{Vcnk{)434vHA~H6<0(j_Aab8H%$MKSYncT+KcHwW|o>=QZ?p3 z%N=9RTSF(Bi^xB;Zu7<$mj7p!j<2YU^en4xXvOQ#V|ipk^?z1nrJ3=5>O(_)Ei10> zZPqb&YB}FtV0)QqZ6J|hY|hp3w8hv-JF%Q93#+QiMwjPku9H2=OLXS>$8tqw)w!!s zLo<=z#^{K-2QWwJ7QL=>lFDmvi=%lf2Xnncc`G>sBj@WRxkdXrhIM7j>%itv1IHe* z29LU;i5!(%skJuRV8t%nVBL1f234A!u*E>knKyU-ugo3fTOPorWfLN9ld(g#sH1_L z{<*v8yqVcbo;#a2l+CEzE^D~yL8YbUtnv>z=0I)n`-n0WzjmH0rF3{dEvY>?H1Acr`Wu3?xc~s;i%KK26Ei()8_8y zavD1BashKi>@_A*JhrN)?s?ON`Zd^KLx)$cgqzRu>OylfT6y%ivZ`t`Jp;^tHedD3 zm3V@E)7-HZN5=K4o?t#YnO4T-KHC&mG!)K#blYmEb{jTO)(p>1R|ApSd1@dyyl`Ai zZre2wQ^)JpY97zz`hVht;z*<-cYCo$AMiotCUy(7Rp(XpR$`6O96FmORn<@_hDnQdTl^X6xC@%UVK2Sx2;G%X%ew>flPq;ib8 zdDu#LXr$0QbFEWyi(QzjukLbhJ}=d-w&|SKx?WW!TGQO>n{Ku%EGo12ytT#ZCiJz3 zYi%f^<=%SPx(WGZD=W8{kjR8+VR?xeMuQ#M9L=lAPGY3WK5p2u^TZ;>TML<0-CD>z z*)>lbwifMgKOJl_Sz8>0=H9Wos>g{#8+^ZSpHog9P%lzlQoqjXlKM4Pm)J{rZ7-@zHlL1iyRABsS3Z(g zK9W~HQd_<_ch0dl|3$?ddkvq0wvyP(b}P5-HlGfU-b(7wNOk|=n+H-ii39qd8?KZ1 zPYu^e-Acn|N49QPZ|86BlS28Yg8Jclr-J&S!kTLHjS4GPKU8eL$uKwNcG|X*VxBFS zFCKCac5+V{wD9$-8DCR-8mb?uiJB*Q_Fk!>VhT3ATw9*WsMwyZdiL79Ir6Jkc=L4U zha-7s7b-O~JS0+5Q(RqEQ9i7&XxtV(u6O)W$R4acd*!!a-ZiIsdsjNJ!hC==kI#k` zj;?q4EcwT4urkd5-)pPa;4M;^kY-D2X0i>GD-A8m>r1yzK z|EW(~BsSc$Ez%n5-LN+I?(m;=P^~ zwddXXZx7PLCv9#UviqcuYRWG)wrWU4wfPpWqP+gpMkAHuYZT~XzWuNX^*W|_B=>#d zmfa?5uR3LgA&9x|sCb6PN|<{Oz_z58u0&_G{ns=?U^fnb+4Mr^CD-o;Z#;;Pn_l(qoZxe+((2ubnX(WFz=q#x?S$- ztpWb;Dl%Jn%UPw%|FbUD|3q>0e^rMq^uHTVbo0UwtN7mxtYbl^|C_n4Q_=r&uItqF zU(a=&I{wSKu2aMR)m(S((Ek5suIp6vzntqjHT~CfU8j!!a<1#t@IRdE(G~5?4-G{l z?b_6s6Gp**ddAqYn4QPXht$>&&4vrQQ{Mli+`pfyE!+8zCT2p1&YjzL%bi~T?YXmF z-oM*I^%5K2A@x!k8dbf7|6myHO3c@??fxex<@)pfAD7>Ji2s-6H*ed#^7cZlpM&BG zXJ@6||Ksi3n%l^cHRq?C$MHl5-L~7Fp4}%|7hBub<%m-E#B6LhN@S6$5yfIxk(SgO z```D=#2rYWigKS5G2<4I7bFrWAdyHUU@)8IJu}eK1-|LOAPgg9zrpetm7pO}2}Dav z%<-nTUaP(dQB|4y8UmA>o1!tyu+JeNRBBaqXS%ts0Mwk`Z{iuj45Kdfh~OGWcE-9 z*TDkO7;f*R+N=gPIVG>#^J-f#px)|5J!RHv2JzyYD4Cn`#v7aCUq zCb52qCh$?IB{??6n92JO8SVxkaDV?n;-2>121PP=3rM*GBymqi0Sye9y9K1&0g|{^ zSfHl}f2_8ZBbKV(+R%JBWHA?E7t2M-ZuQH_) z#f|0Fs@ZIt87gJlQ%x0-F`K~=CY}stJOO3UauZPzJ)Dp-sMUP_zp7b#+i-Y?{`7LV zY}S&2JDOzPVjED8M&Gon=XLu453bY?BMc9G=f+7B>^fYF_G41)$^BU6yLvx9!(-tk z{Bnb3KVCQM2TUAyFYi8Mk7U2IG4ePj-`#zV)%SIuNZR`+q z#Iyy`9{-HN;$akf&BM!oEgsTvPbSE@j`I);{WRLMZ;iOLv&Qo=iQj<>NL${j^mWBRJUYZkZ( zKFDr|1UH!)(@`3CImV|RW#lXQbHU4(Q6ogUD>Xs}(ZBqQ39~EHXGvwN+oI zzq1;`!}4+AZCWTKT3bfLq&ZpTayKK^KdbhLZh4G7-MF|##WcYq@+ zGC2H`QF;|v)U0=i>#4^yOi^4vwr@WCJRqh;efQ4AS&4GIUQjMG7{te``T=dj%yZkf zD?}xfs}ShC_@WF!mTN|=-H!8n49h!m zfzX16(v2{6HQj=O==N#Mh#A|mp5p33SMSH2!Wl-5ogO3YOt4bvWC`~d5V>glPZ?W8 zLd?u!S=4`~qDr_qJ4M1(OI;G)XlIE$4b2eatM3MOz zv#29gzEl~R+Ad=>N&G{aoZ;kAYUkwe0JDh011v->x7Om07+@B6j{z3Z3=S}dKW5Na zY_%IQ_E&KTTbkiv6QYh(B)PyxeS4NWQ7DxTsmJ)C2ZxJ892_nYYO$3LcX+rs-0{OD zrWvn~;rYnpJz{7D*rVnnM=?0CBGi#859gNB7d81g`z?zK?TUMb^I- zoui3AX1OSE5abyfgHt@%dn^ z4MP0%DXUKfF1CeH#u<_+>LBOKG)hux!W0{wVj~CvKJ|GMff^;`~loWM!v}#7|)SI_Idw7cG#Gf7S|(Qt%jx{a2Pjp0MS}v;ADh49Ixs z)%X-Ca_;#ONniR3#9HzW_Ch_yt%I!w!)(vy`xGOaACQb|zE3i``99IO=3}_**?ga3 zWb*@(an1KhMmOIl8qxg0{gE0ZWULl!JBL&_MfHa%@iSJNioMEBB91i-j$tIVp#8D_ zV+1N6HjKcNA^_sXWDjan#L@|EfQ^wntaBh8A`LBCeDmR_fyMxLZ2xG~ePkW(A21!; zKZH7_e+X}|e}FWue;9FeoAId)_YaUp_YZK#_K!y0N7mu~0n@SlL#Si=hwujb2T0@k zhY?F{?y##xR_IkJ-p}HkRnNElV!=m*eWag`jF&T`EVfFUeW=oAM;5w(6j($L^Y<`E zR8C_lDmjFosVjFM@z55h##fbvIAQ2=2n%ADBaj!o971e_da>Ft#yR9Lqt_IsQ3dHb zL_~1A*?ytlxAY=TxKE+t$b&>$h8ph>xpJ_?I}7SjidPf;x`a}bMxsX}DADNa2!{HRd{&{hQ^n%DXRaah%n4HRU`L>CPph=YaR8iVyBEsNMVmbBU z9)FO4D759f7#w^61Qp~!sZPv!`OD$-&9^u2gX)m|QK$Fx(^e8MK+cc_s#?-Bdg>`U z)5{9_DxV`s#8zRrmpN9i<{??5>)MQHNW8zF@sO9TwY zUJUal#|V_0ej~JS{*8di1RTRj2T9}8Z-dGFDVhs-j<((7ir5k0W%Oo9G&6A-J$a_) zX#Pq62=hLQ;j10$+7Kn%Yav?FZy`ADxdhBOG+utEt(%&IC?(Ya1 z_IC&@^mmAu^mhoB`kOGs{w6@w-?|9f8^0fQDgN^{>T@6BUC%@35F{K8RFaGaTbOvt zHILj-A;Ng5AkY)XMVR!Xsa=&nwH=p-X5n^4?|d90Y*wwYu=9W4;iZt%^`gaLw0;!8 zgImQUl>R!6)hK;2WDLd4`my6zFV)PZNmdQk+5@Dgzkc4-5DPiM>B(9>{b{6jy=a#F zR;3sDF2Ew&FvLKHZDe&uQ+nS{32}O*m3pqx+$tL4J<^klFwVZTf~;%zs%FsCc1;lc zi#S4vfSXp{p3Cx2adNE!W?*RhEC^7fduX?KN_g%p3!fUUwj(gm@2#bc0GvP9B2xH4 z`|KG~kj}wf?6yxo<3aNo8wY$!_io=>!0{g3d0jv&2*sOP+^|J@x^#G=D?E6KOW6Hi zu$l9A8op!;^$K?UA)uxuu7j}#3g0e|HEh7=D;lOZ;S&sgH4#ohbcKm&bqbpv42_jx>2PnXp*bHZ*ExApR0=?49K{e|{V z@`QWK|*GCw342V((82q%=d-r%u%<2l+GrRdkcX&9>Fxz&|H1{b) z5eK)A=LakQHi=)0g%(DF#VLHg-#Gu_w8nb@-OzXXNUMn`D?`YUwyf1gztFA>ZlN7a zVS8tYb%Z#?SFtN-h->$;WRCRW!s$`QGB`rIH1b{1f920yRiNG|EtoDg-`^C5=0na9 zp~`SsiupwSr9qh#I}!H;F6zp|TEjDx4sk-z z#^6~GgX$s5SmuQBv35yjGYJn<#hZ8ISca(CrZ^ci!3aULjXSP&KJs3?!v+X_6ubC?RV82ue|%z{Om?Mi(}j&qv|1o(%w+6hK%Vw zs?ndHatE??%`Lj9S2b@_*c~@s=oj^)u3hy_ zc{3vQPeQ(bSGlS=H(!nEX3UqNYo_6GIN?QmA$zHwsezH$T?IX!PV(d4z_K|qMk+n}h zy2LZXeg0vuF8{l{P>OTg-}mDD^B$ak-iz};_Tc=F{Wy>R*y$bOc85fYYwTGvE3egJ zb^{cB==$B}aXk6-LDxTO$qcwFii~z(wjDpsV2&;8!R0%~&9-%W_ZvSYIc#whjG{@#!APo?(|r%+XxiLZg!Ox|IIgO{dPMnRALKXgTfNn-knZe~36@hlH59I&pvy?Bxqp zi>Q0>)jK`;FhXD+;)`t@NtJw_W9ed(Z!BGG{*9*FL(-h)>8baMB3lc`U@^{h{jg~} zKek?dGYKAIMPXw^A54rTMgSonG$La8lRG#*z(L=|Ci(JGoNsk^2X|9kVa#ho_0(7w`zF?_M2uCioz4K}vAriUp;Ypae-uH0FarCjoZ!E)6;U?p?h#mVa z%E){2PIihV?(v6R#NA5}$q!ND9#0iT+`S~hzH%@8cxPFXB;G3)arcrU-dUD7$9u&h z?p{*Fd&Lsxc=uPt9h9Q{VPlFKu@6!b#JD-m2rDg5%MpS+Cx=MFgd8FiXXDATy`{Si z(I;(-!*9kGhXdFahhsGjB&PL3xt>jYsuZ5ePko#oNuVV5M2H-T0#771Uqd0j(x&?< zSoywcAr$CqIGuits?bQ`NUr8{4k0FI0W9C;Havez!NQVIVL?7Po_;z!3xspUY`7&b zgg4=TZ-1n`2XEf}81_n4_siLXI`Im97aVXSC{&dTaX1XPjspSHSOAKT=8M^V7~4DJ zW7Ky?$J3w*su=ASO0N#Xp{H>9qUjcsfX@hIc$yqkGE3-N-ARxDQ&C4q-ZgxKv60k`CiZM zcX6;<;w6pk-9v;QpNh|$4x!sb7RRX1n;yr$^*pN)_PZP(9!(E^IS5qEfUC6l{(;9J z!p7=OINq*PxbQ{7dfz@{UybPbu+pwmbBebV#0czkI9#=Toq7mrdRduD_KSZy&=gHoi?tXMKs;CRVWVB2Z)i-Ovf74S;G~7g6XU9ztK03cP0InW}{| zW@?;n=-1E3Xly{gT(!3op-)h`nj}Bt2^Cy7#T~m1_E_QG2}qbmadYJ0?8wV$KvRGN zU7h7X(|7;)@t=V-y2<5!(GCfBHm$A`hKvx@y{;bW)AjWHG=N~X2pe%vHp!-9Utv0j z0NNLa_=+D*rfVSwYmNvZZ2OXNP&Hn#ntnbAPbgIxE>uOB{6=f8)3p!60}DNvLyAne zELyn7$fJ$sm)P?Ko}(*|5Bo|ya{}NiKH07Lw#(#9h&6rS>5coftIu+Cox)O+U^n6 z#8jhv9w4%7v5LPARn&7Tw+JQptkwK%dMX_xxQvmGklwuUE-g3~s0E_+!Yz1V<=|7# zr3)_Q>txu-Y%y#u)~jc5pZRw;Y+Ey?2^NAkKb{>N26ABWT=%mMPq)K&6GFmC)N)sC z3sCK5FxT4M+P2C=NkihX8$_I^jjytG2DR}WfbI+#{oID;>HUxY&=(i!tKh`URFfsl zAw=UoL4%nvzr?jSTvn-8h(*F5Zk&18+Ni-@JxU-5*jbF@mW(l{fk4=}y;ZIG+C z;~&O-S5#~$gWI4|6(Zd_J2MSq@@Tkf+ihQ} zdYYg`2OqlPn>B@z(ykGkPkP(Wo~*}Lj4Z+Z8ha-4M$vxtIWI)&%wiVagza}^RnFm(w*a1JaKCvg-Rs+zVuVgiPcyBXPrm(AS=V zLO$tmiam9#wR9}WXwe9fff-AtbT9SqtMwLabI4wEKLz=JhAk1g{`m4x+Bhba^QN(r8 zcE@--a(Zwc3WV}meS$^2!wQc5ht|PDP!Hn)Poc8_B4`gF0WYmjUzX{s`JUhz@yz|IK zo5|;jTz~(@oOH0-5=p}F?9++!Qy9?+Q|W>7@Fp}q*z;!y)P8ys0gU8<33EHb;hW3@ z*>za}&-pFjJOVtNdEh@~Vr=Vu_l;=}ilt_v7@1R&O6+HOoDtC?Ktz0(5d;6RcNSnn z(^C9ZtHSB|o9NiVQQ&MX&=(5GXa zg{9(=tx_Q6kzZR-S zfx3icD~)DK?I&?yHnHNlV6(&BGP=J;YfP&0-fUIv5_D8=p@OI`i)J-Q_-9S8mI2D| z6E>@N=1LX-+bat@+hsw4--{LHRYpKb`@CT>OHRm|Sdgm@@w#+GgA7>iF&uiL{DiqkCCet2@wb=C6$0*u#l43=Fuh+@VX{SX$}77tI-^})kZ zF@R>m6f8~DQwl5`=jq8(M9BS6GZ2ZRA3 z3E{#dgF`&j;MB|3i@ES@jJ52082Ag^OZd=Cq+0V*YP3SHncu-dEu=4Gpx4ZoP)iHx zi}`SW&g+-Z>t*OAr0RQ9eJHQP-^-QeQ8onkXN1Ybn^eu3`Q3bih4e+-q6P0oJPPa7 z%lRdX*UMRj>ylp4{w#L9%)Ojhu=bVNZ0?&UY;I^{_-b;}tXAYzyE;0bQsURxlks{8 zTRHh%_zX|=0g<$TF+yg`#4wUha*8W?7z*!jQD{b@3!3XW5F=BEEAi;_byZs|#kV+n zrWhmQDRD|yRjvRYzr*(7pny*}r_9 z*SEXnA&iVSKa%gl{d|jXWB2O=JMir9w?F>mgW2h4f$!dWl<(gD{ezGC(~tka0JXU6 z0JOg-I?nxg|Nfni`tzHA_>50r-|#C1RY#{8H9arr=a$Cj(^634>#AQ|$``LUvCUK}%^#=rw~J-KR@cQ`wNBQqY;I)0E$ ztjh{tD`uOJ$vKjBvGElH;%_zcsYV~FafyVLOx;&1BiIp_7gViW{73-C=pXf5Ig-PQ z6w-CIMBE-!$rmz24D1lqN)$I+ak#lYl-T3Flv4yoV&RL)%u6a^W$}EHnRpU3VH8*# zv3ATgKmK^E##$npn}~Atdl*vH0H2%`xSQ#zz}}(={Ok4ZfrBLHQri}*YAKa3>n#>= zIu5T^5?q-eVSo5jU`E&gMG%(KMdO8J41-wD3~A>uPQps5{G_Q@IF(NU1LK)!FOl1y z{nu&{lelDtt3UN-nj4@9&26IzN#LlTV=_>mQR@jeslH3G%1A_iHnrc9Dd6W7K$4T4U!33tP+b= zizfkXtMBS3kq?!_>P2^kwgZ(%%>UiDYjmZyu<9;jEN9S6T$+_gARv-V+wc+Xf8T`c#=ti{_ZP<&ZeGM1n& zrE2;cuX;Evzbh+6@Vc(tNFV248tg+~u}Z%9801W)I{$~~6H6PD)6 zIj}@pO_>=*%pgP&)Utrjb*jGSxQ^h~ai|U~{4w_3_F*-x7WFh;4I~o*ySGfk0fAvs z&5ScKu1G&u?L9B=(FQFHgV?g2l-HK zbb~Yfl^_VcmEg#qj*RB-r?g0Xff+`cti}gS%E)+Ecag!)#JJ7Mv1b`tfE9#4saRKl zo>_eeK*WOO`DTVIc=DHBAY}J>9?oW=tO_vqpy>`+se}(VBxP-EdorD$APAkG;K-f- z`wsUKajBw<_1eo{CzeoJ&81ndZypfI^aash7$atuOW0D3omOh5b$yB=v`@g2TZm&Q zc=i%GsMPmLaGx;l$9mbUWos~oUvxZmh|HOdIH@=;3@$M_YLjJ5iu~k>iP6iilN#4Q|Ec$`fmWg+fvY_9ci^1_=9a z2!1n&AdeZZiW|BMAhan&c_-rFhLAvcUMI^3H~JjW%@X=fR^GLUeVu;!^l2b)B1NYc zQjg^+4;u;`Hfmt*!xnIaFB``>7aIyrMG`D{z|=kDu$}a(;*jYa;7HRfA=pC`dD+^+ zM*XO^>#;Tnl+lF;lBXm>kWF6)ktuh1OUSz(f1Q`@8-;zRa&PK~z?Vaz_!O>Q(;sGw zXFhHP^tW27dL9i%DVAH#jK7Hx@&5Dkyy~u>|E&A0sSqVFEkkxR{;97xesa z4Cy!2IDurRZboW++T8I%^J;S1lfqA+eap>*vN4_#McP4?nwyXBmFkIDGs47xSwo-* z0X~s8vX}{-GUC4S7sP;Su`v?yoDJ3|hTp8&it+XC|BZd4A@_?hMExO!pZe^Cc?R1V zF7XC1{W-yss>=I+)m_UCOiO|h*W(K533P9Usr_xS9=7;677zF^@DFuWU15F3-+nQX z2PH_x5f+@#ZZIx9#ZGBS(KI3Me^2` z!Vyo*Q!vaZ*YFhlt_%*;_R!$*;`I{!=o4+IXQVRoG28B8OfKck+#5uKInj3Na=TjX zR586bk2%VFu0AO@hZhmRT?|VBK8Zg^Ld*k>Nz_A%Yu10Cu;@x$^>+X;18(Y}slPQE zEf363u^=BDMwM5B7y^9)Oah0~CJOYd$$xG6Ub^W6Y?3dj1I!rXbxwV09P~%*Hk%V3 zUd#4>{Pk~GFkoW-$N&A0rse17>+XNjpZsxm*X@7&Kl3X6SZwRe2LUIup?fd(Z(REh zf5F8Kr2xLbgf;n_{j;lA`d5P(gUR1+cMB`w52P@PP<)NGVq0sunN&cwWC?<5eb=)3A$D#v}*t)kSK?%r~`c&HY$hZD86(~ z-Hj6=K`lt|jg0jHw)E~q`x@D5C-}cg^Y#NjM$x{WahBA{NA+}t9S<5BkRajX3#gDO zay%8X>87<%ZaTl8RBN>0v)kE`dRPM^TWHf68ys=F95J>z#P0>fkTt4M7IY4^!*a!x zh~&KcD4&wAPVmCzmUB@2@4xBR@pOnwny(2|&nB0MNalt3{}^$Ykcm>Yjb(}$=s%w+ zGCb_b^of%%a9c*TZnZ*!xn?$D3YhMQ#I$q)Owf#hk5T#CSUZL|r*;D$!8}#HA^sDX zr(H0X`3B=G?1%x%JKSfV&_6#=UYUtX85w_xNRT<1H%lZNEMXyc;2cXUEn4#8qviy} zC{BYuX93sN}M<8F^fO59@kMt}ko`;x-XVwf%y--`mo9tyD(HGbaafGn(&(AY@Ua?f13KA1PH9 z(sQEh?_%N}C;F4ve7{Ij_&fPs^Y4;~dzoGre*u@^iMyB5X6r#t7yf2|I5FTF%m|*3p_!i`#8p zyDsSAQe`=SKU1GU#j>~yu6)>=Xr=xp@(6D>>@Y4vSArv@TjLW_t z6dgqkS4UW-`q;_y1NnMb<=zKOW!8_D>ez?&33!Rjuj}Qc?Ut{fUc;PveYf3i-tu{3 zvqs_(D4j1}{*XarpeIZQjXVvb_|cPbxMp+F`4q$aDfPpjA?K&|;IV?&1{W>9v&ElP zL;ky1y-;s(KUaUEq?h;{{)`sG-^uB7{}f&n2aAB~rmz1Dc30DD%w~0k$6vmGklepg4)^LO8m^8FII5TZ+8iX~l!+4n6@{eW{ZZ#86Y^D~Pa^)2_A!z37YO<xtJ~$%)P)f?d!TM84`2jpv1$dO| zxP3<2(hq-s`&0gFqUN`FFNAHmzI-M@xa#`i`Ujo*Yk~`Ig7)Yz1kcc9`&Z5P{+EVHj&Xukwxp+kqOPqUib~{K|N&7g>^aWH!Ls9;M=!LSg3Wxufi*qMhz|AePO9r^Q<4{dt6qEO~Z+>Iee`L3mkIzh1?aB=U5CmA98dZb}ls>3;ZHA&)a28 zLh*XJjLd`Nzk=z9KcA_N03^mbmf(kSX!WH$T}K6g6y<>I=C zMU#U+=VRP@YU<)3B|STdaYK5Bqqs<%(@v2ePp(=8*HGx+2sHN6-61#E!4enQ+zK79 zyt?vk_R|=y6n}7qAlYuNcC95r374*AZ({>XS4r^b@mw>969|C@HqOHhdreCjUngGn zX#Z`$Om&LHzDE>3*;k@5&#si(%FN}L_e!ksMdPte_q<{WH~;WmnM!y7uRvhU@7L<# z81r04OkxkyIXf&29Y5pi0J2LcSw^&J6OYx^&!KRDP$shVUQB3G9`08qT=h1W>wc7e zD!=_GU4Fj(=z5!Sbx%6BY4=quM>y!zELo3WVD_249iN@Ak%A}}#F(K{-Z=4_%}`(v z;}~)u3M>Y4U}dI;`EG+00|@ZA?CagUEli;q2Fk6+*Ip1dF2d_N^`UZ`8VOg_7(2WIp8&P*e>=A;{5TL3i!I+s7^LJs<_L29L4{-&EaAqz(cUSia}&NdMi6v2(7|Kpn=B(3Rt&ss|Z0~ zd65rc3E`2he|Gdfz0`DIxKke9qO*o#lggpdg)DY~<;RpoMwhf*Uab~yfyim)9>7jp za1}U2jxjwTBy!6TYolYozbw8vhAB<9A#!1k4G{}dYlxVgQA4!x6KO~X9g{=G3*#6H z?g;6whal!OtLY>z}y<6AK_7i(1-67r^XG3lG9wRGW3|x1c}k- zw=eI3!Pz~maKxk@66`gXTT;~n=Ie@QI}dGphw(>~0rKl&mP(^kEv|R2Fkg80XH-t>~T(Rc_8{-64x>Rw&v~<2BH2i(B>h zccw4?3KRHicG_cU(uq-XD0(%dots!IobeP>;8dXga@$O#24G)hO?{;F6W3*Kp|YP+y7gtYBv9M)w~^JW0rJp7z~=4IVSAy#+N1U zTXIy&+pTg$BY8ivfHl=RJGcUDSUndV4zJvIJ*E;|8sDzqI(T6{>I2pn^9R3EzBSMC z4WsfTMLB?%?UMf$Le2R@Tp}yKpH)fRw>Zqp-TIkwsL*tIiTFmUpvW3YNN|#k<4M+R z5mi}CZ2G`B;GA05?LFn69;id*Zx}-Anc1~^Ay`Cyiwri-atf?8W`Y;DH6epxL{_4Y+|Au-E1Jq8jYU&|;e z#Qz+%=PjI3FQq+_J5hbaBW3d_#(on_;^wNH z`NoqJRs-)S#Xdrk@0&O(`_*K)IXN262ZWh;`GCiTO8Uq#z^NQ=(CkME#SE-4X>HB= z8$G4SxdF4Pu|eV^RN~P%K*UIbP5jgUFO9+W!39wj$ZP*mbr z$?=j0`LLO;Fa{V7T;46wp2OUe9ZN$UKp7y5BQ2<9aP|qXRS%TD?f`wjKnieec>CD4 z!l>m7ll$Ty6ql$#CO@itL^XJUVs_6A?AATA>Y7>*Gst~Cg88at=WEG)G+b#VqI(hi zdj#tMe{f+DYhkLA;gzQ<8C`~|-&Wn0H8pC4dxty2>x4q)nnp}50rue35@3&-TJ#q- zRvZa^>{=z!4lYw6(VzlC^idj!Z}g1llpM)eP2}hYwUH7IY9uA$X+woolxEhHaFjY} z4jwz2Jlw%{c(~)_@NZ3x=+ofd|A=)q!XGD7bRTPsSQ(PBL+vs{KRDDKdgL zyAqEbHZj4VU@^fcvGjUBVkl_L)1&dYy>9DCi^Xtur#TeXPGfzH)lq~$sGs6m z2{ePE2{fbRn*|{vuO^=;0Ih*5fJQ^1Ph&cy`MRg98ZRIj90qY+@c+F?M)n)R+@`ph zL64D8Dg1Lj@g8#17MUDwuO>5k#9>$Ryt#@Ks_&_hX-oSUsb1{jF!JDUAJwf+UQ72P zi75x)3ZZc-ZgbD7L*f_JkC2HOF1gT#Y|qLyrP>_5j8^X}UPe6NmXNwwi%gW?qby6m z?-0}V(}9lm>c6b%#;o{0>hDp3k>I=?@_ZEfA!70;%EPQ)*gIH=DX^fli7T|pUz=Xm zJwAsQsRRKod)5q!7uD4Be2HhmN@r7&vK-;adezK~cWQ1C9-@N}DAsV?=qpmcL;}Td zP|HER>c`7#8@Y-Lbt=kzYo_ymJeotvi?$s-ypwh7s~)x$M}&LUtBnTk*x@LXuxdV^ z2N8{oJ=K+x?kjh@c{Wo=c~=q2Ja6}Hr8>7h&`#&EYpCfSk$TUzKGLb;zGC}C-%%g+ z?dY-S*GYumSuc|hFDpjXV(leI`3(CIju9E&$ z+!bzjb9$AF4$lL&cm^yl4S59+q5BFqeCVmuJYx2$+OTq5CZ6GNJ0EvIJ$KMv-G!Im zhK2E{+y#sgWG08?UZ~f2x~J``uJnme__H2mI+~);4c=XlVO<8u1IqO8j0|%Qu?Ja4 zmrI6KNa>wkO(;itK^G2ba2`>p(DEQV;Ed$&;Ed!pphLxukVf(wnlBVX z#@dG?-A833?TB<+7J>qW zhIFcYVQ5_24Gcgpq+qCBKI%Zb^j?6QH^er;9pD=uS`YEg;Ey|9%@7Y9ttM3aHfh8O z!g>A3s?9Iz7Gq!z5ApKzo;{u)(zrt$Xm@bHKFHNS?H?Na@zM4m^XOcAh<|w8Jj6Z1 z9?**RL=K6d(N2#>BC7M~AyG9~jXWf&JMJBrV*CTVArS)H0SV~!XWZ-f($Z_*nbp|$ zVUC)OQi1^~s(#iq*X@_~F?$E>?WEe_EoSUvpD8(5R@hr4zGxQc3- zlfwuuHkarMQgU-R1?L4Gn=P_!*N4=mq4qFG?zcfq?F|_i=;XCv?*sKtz9|-s@|zvP zWziRmsC<5h0by!bU-nG-knV}(t)Kw+Q#*8rAV9xa@A~4ULyLWcOe)Ga9ukFwExOm3 zCt+P;yIkJzSyX@jkR3jR4V#rxT9j~(>J6p^9MKjI9Kebm+rF#|Uovngp#V;K@VVj% z+k&IZq4ERwNC#XJ@T__AGb@qJm>-Z}ecr6J8};VuONlYU!6}7Gkr{BX{ag8@#qeT)k~y=p~CBsHpsr;9P8f2eEe{k7tUh6`l0 zeN*Z=Ue(3RG7EY%smzWr_%V~hnJU6nXd|p#B|MpD)wNu;x03<;+TrAFYlri0L|yqy zx{lBLJfC*^=IQBVx1J$1@frg={~<4tp}k)0R@1xP7Edm%@#bQd?VaF|9$23|66cK` zprQMEY#NnhDO{I-%kG=WkJ)xKJsCL4eZwEY(Ag5MQLtG_vrb->28+Mh5*lnsHQKWh zdY)m@v{9qdTH;vIU^ zvW;SN>+ve1d47*FqUt)eeJW$xUGe~$zwI4Bb(`2SVz?hI;|3eTGOE9ED`O@*tUP+` zULKepkkxqX+>M1rU7s8H+`4+(J%3dDvd?Xszm43h>tn?QNaOT_Q&@l3?pAof40Ti3 zWL7~Q-q1wV>sfrb?lAeIx;&VdV252?2Rnyn!I5YKYbIRxvzkI;F%@SyDx`K0Nky3( zON)=*%hRTKa8RDi@+9S!>NG@u{TnB{tZ`GbC|Zh+@ADXM-O+NMQ&dV+G#pd(DjQ{= z;=+lrB7w#WgZvQKZk1guX+3K8eqL7(&5SeNkfp8OgdATrGvPCIP8FKB?KAZ=DKaG0 zUH%Krkg7?C8Q@8b>~ccz;8W4vtLqt%9r#L;vbRHX_eR@**IpAOLv2(e;62vM$$<1g)Sv4BqI!tv zGo@u7rFey}C)JWcq}!?RAT+KqDh*&S4fs)o>jw56T4X1A*T zc;2rgXo-W)@bt()?YP7bQ#Ci!bB4vg{_V1BDU;``iN5h5@Qg7{!jmub7IGe+$gaBv ztXJ3`F@Ej}rbc%!G3OT;AN3S=2t+B%%wUCyy-2=oJ=;cnO5U6H<*-W= zI16ZUD&`m{6EFu=QNlSWRghbrxN`bu%B?A}P#71BML{c$6Zf3-9oZTOFmUZNC(Xax z2CExR#IpR|zz~-Mx_$b(r;wKV^=&h6y4|YICcqStkD5+7z{C+PlDLI4YL|$uPE3U} zBN1DeWU_dPXOA&?dj?bD3|5{R&0VPewryNdVublkovD%KBFBJdX!eNNEDmD9vr5oMT|LA zCnK#FGjfZS8es6msWQ+`h$&8)1^i*{YyS6RMZTYnmf4_=7TORvsr%|%{T0c>@l+Me zkJ(&mh8xO0Lic>tCu4Q?x9FMW7mCc*t1g zn&2(seMmw}QxvVs7BJiFCI?q%AAX9;IIS?dq1CHhu?Fjjbq0+pDiBV5D~)spN}? zEx(8G*S}3+K433dAx%N3zzj<7D?r4VK30BL8ywG2w=xR}-FFJ^CDqnUQQo22pC3fz2rRTVRg6NfaNF z@Jhz2VWf8u2?6#CW@<`cW`fE9vJFyn3`WdAhWc#hffSB7RcX+ofl(NKA`v7JN5k@vc^{J=pORY;PH)U2-xI8PN-*mvzTy_bs**Nv)CA_+c_S7OLiW*}6V{n!(+q z-&D5l0L!F|?OnthOQBx2@x;_MoFD_1KB0#C&%HS!0c!SubFsara(D?SCv?>&og0g-WnDHDdx#bG+Q}|__;hf39+MH^^!(QYM6`zW5a9gc`21P`xIt$eYzeK0k{xiU!bg)wo7CyZ zfwBem*J+J+hkxI}8y5@dVRQ&et&0wBB@jHigPj$0amlM#j~UkQ0Kb`efB?%PK?{)Z?Z(D5jsoz z_e>qq9PBftL1mAGMdi?z4$mNF_-kl!==wPRw!)Xg$9XrRuAfHWAQZXOB9__Tljr2g z>DHIo--qV-3ho!sfP*|Kl};UCnop9 zB=SM{@UHIL6&}I@8r+&0UDG5pf2eUE?3=%q_fPRSbb^TP&>h(8S%Wy@3?Q3}cpN0`mx*Arudi~kgpwHw} z)nHOYhqeBcVr1cZJ|VP_jzBj4u#Pc?>N)Mt+hjQpm@HdtA3_^4fUla{+1G{Fq^~&i zLS`A-7RSEPlyF%!U%{Unx*s8)JJ34Zmkx(^q_qMWe5_mC2oSr{z@UB%2e1DOATriW zG2aQhSi}FY^?j`pI2p?ZiO!vc8X@X3Sb7XTPDh)WSLe6sRr^S@T#GN6L;Y&RFw?aG z^<0UD=m*u!6DBR$Gelv_%~mxnv@1D*?9=N3_lMnT+X%G=W-DZd!xJ>NJ>(3(X@9yxN9 znbSXo@!K5&Oq6PZ*egKwO4UwmA6w^_UuJvGqH%TTbP3(U3S^9P>f73r2^nfExyzs6bB=^gZ z_w4Pp$!nAa7~vu7-2`jk6P)7wH^g#(!I-B)1Z|K~PS@L4lLHDajtlkKUR-?mpt<@C zjv6dIF(x{U;~_9@Bp_C3TK?(qC@n$h)$n_v<3KKdH zrLcG5u%HQY3gDX7Wv`ZXh2Br3@&>oXg>`d)Z^r+9wp;!B>u=hq@&Uj8DitP}w^iTF zz{KOqMbqDXAx+Ws9af;bcIEddAJ=_^JL?T>7%RcN`S#ndzeNSn?*@md{$lpY=Qdty`S3)3T3hd_ms(^-`(OgDlH2? zNsAil#xIuiT4f~MPGbm*G>kwrzA zcF+BZ%9foWL~PmO+rfd4+=%6z~Lv9zjcJx+^%Keux z?Se^=nib7AT!gHFDkvln5_8ZEmc?LRWc0hZ^8U{M`WYvf54a>4&bkB!&)ZnG2lXE*REV= za?t{oJpB>MPBwD2xsSK>xNi|h!y2RBy;#(g zvl{t%FEO`1U`tG6iNJ8?pobYmsZDe#u=+YKq>CL0HQ@{>I!P0=;B-b78M~(q4zno0 zNHe1t+}(p>$JK}B*JwwC$}U8WrGnbuzJ2!wcWiW-S(KW&9*Wcw7&i$kYReyi7r@%iiDu<)z* z?CnWbQtq9ArZ7mrTTcZ!I-f#&-flH6PIx&AyNlH{i1{PO65Wr-MRAHb{>#@ai1XlQ zp=L;g2y?hM$jxZjo?gD11ltpZPQ}LLHYKFBSCjL4``C5}eF%$X513i#NK+0itgW9ZEL6^hxaV29@iXUF>a;5-M1 z6@Cg%I#*kS`*vLI%=hgCw;D%F@opd7{Ww#C=h1Rt?;qo0y2Le`dP`pqCHfl1$mvzx z9hCaeK)k8Tb%z1^pRWuZs+c&a&Pf~L*TOhLmn1lXx)K~53dbr{IP#~_sShZxZRAP8 zK7bBE4dd&>OF~a3VOt(fDYiJAhHY^=4_i_;t`?B zh0$OE;z&@?U=+;Pltm9u#=hdn6@P(TV6R2badJGZQlKh=x0SB`(Cnk`D*8a0mk4T< zt4LI|xx#C3{T>I5ht&pmoe-+m)VQ|}x6iGm$zym6Y#u38bhG*P;a}|ZqKt|j zivmCBDo`s>MBA&2rRF6l9 z7O>?knG15 zAt8bsTFJC(%E5m{V6nllZ!^TO@$!%&PvvqIJApuXTAV*ttBgbj7E;q?0Qk@(OCkh0 zLn16s%%2DxT0f6;C#So>r)}S6qGo#M2K4g?$^GFgz0$4?rA2C*`^zd9lA9nBBE?T$ zVUSlrEh=;#K!DTB$?@+y!veofd)Pr6dKJMUoc3qrqNO|UUKye~5t`I28jn@tsslsv zM_Dr8P6rI<39~yg?N2;U-03Be1pd9#%Wps78>H8d=r}?N&P5p0?)R-P;Qvu_|v;AoJDDE>hC zdKiRdD!D4krhW~ygQae*zQIB#({zWAv=tQjL!GR0G8QKrxUcn53={a4zTb|(jGsg; zh=9KA)wi~p!?Ud93CwYyeF!jL*KFCIUMl-s(>vc-Qs6fago^C+l6`0iGM9=Ju4gS1 zDiU$&GEOr?oE_chCiPho4-!!la?m77PGRDsm;v6OHJ7LhZ3>Ee zR0r#4I=)sYb2Vp~e#bUN&tg-~8L5%h{Us)xdV7VeJ9w6)(OWuTlhvWD42$ZDe2oHE z8FeWSy1K+c?utc?sS#m3Es||=P!tBGK3j_5H|vKih7Q03ZP-I#u0c3rM*2B^jfGSr z08ZT&Mu0lc8h~HmX1l5v_{-=Xf1Wjck7b(XPYx{A)tt8n>mEtXd0%%vr4eW*O%R>8 z(;d?LW9qW4RYj@1s@%@~GD5?LSg{PMQV4ikBOMCInrrD4#LOEwevy!9I0s?uLJut9~wsnl(L5p+n88R#ojM7^vLztzlW3^}hGHo~M3w{1khloQTC zeX3TJkY7k$3w8sZ&gSiN1kB$SXe-ZQXk%@OYnsT%aE=2X^Hl^z{-AcV*NHkXp5;eL41P^$Pqt*so6GRDT4PksiJ}KMd8(sQ6<_u@rjzAaZoOMS!nT zliSQ2Hk<2~&@1$dL2)IgV5Zg5c!*St`$=5o=G#xSak0NXc)$9imLfmhm(uiPDQH|6 zGKfGS-KYY!DRh0Oe%Bpk8t3RvsxK<^6%~Ql51~0b&ykY__69O^Q73U`1!k^_x^~;n z=uLH3M%MtEnfodgu`BiEz$yP1-XBMzKR^@hn(P<)d=z)oaA?c|{QXH=2>288rA49B zKioXL#pkm|Rup5et!rcf_?=#2F_@3qZLNQM7mleZ*aiDjHP#f&S=Aho@7!KppDETW zqb>Eewb8CN*tqIvda1s!{MhVgvD6_*gb-lU;C%wNtsA`&4~l%PGT`)*JWL+38%`Sj zO^-|aGa}Hrsg0e;XqZGuFCJT6LLaqUnn-r;pV2Z`_xa-|W#b850d!qw_RJqIV&Y*o zzzooJh5dmUa!vzJcLe>6dMqgNB_lxCjebdp$ycU*lN4(fPH3HCy2XtAznac@iP&eav!eV$i@EpW_>w#Cka7UEKB zVKa#nB>dY=law;)qw&t03cMmDW4l9!MWamG7#*1SMQ(dHqea=k`MwjEbHH~0x$37# ztJ^%Ca9lD&p8KgM5M6zuXCPp-v3uX`cnu`j-kU-m)9O|vF*U_zJD^%(O5wM)9j76@ zd-CkyEf+XTcn973Vt)JSbp7iGWmqc~ZdY#}bRa>Vwr!)}e;98z|9nj^v%|}&9*}!A z2|{5Kpqj|jV(&A^0F_-51NqtnK4--A<9bu04aPyNLUr_E1`X3|315|!M19SN1@IxTM9l8tUr#;0hYo)fs4BypIon8C{Zaz*~ zNeO0FQwe5PT?TV(OAOvPNdxSxw76b@bPEPIH_Sq;a{VDLc9a}RFHe+67KIzP*z^3Z zO_l6GPca9i7@E*wWmcWs&8~6dTX4rb=S*k18BS9Z3A}Y?( z&;~^4B}GXE7k3C0C?k7E!5;8=ssrpCP7IWGQ&FbJLu&IX}ju^B|Sj-rN#*J4wg)1aCVY$kx?93rewy9}uh zG^z5uRwA=!)88HR&+8d^x~UGKtCoK>csEv6pPHdQG|}%JlW~?>5>NXxjC3(n2S&+Y z8z5!DbP?LUQq6|yHI#ugG?FDoyOJ`xFoaVg8-0`&gPvy$#zDe_Fve8o@FM#s;RxS7 zdB?{#JwYEMjWw~$jk9Qb@nqz1IZPXA77s=a*Y5-w2G3E8>r7YmP9HjDJ1jsQBQ<=$ z>WD^|pc6qVN~}nUSEj3W3&UqTB}cj)Vx}o8+@g&Uosl60oQ#qAnh0)Czrd$9Jf<1@ zbV2LvfVk*I^oo8#bA%k&zG$VXVG9Q{UwHH8u|#&6W{iT=lQH(5RH>2xb#LBGFfiiN z8U{waBG9HmXy7M0TC}(ecS!Tu@E8km@=k`}?*!yThWEE}us9lwE4 zX6+#kiriq}(lLcvOG9%lX_DD`j%w+vhpM5896L!e^XcO|qgY&m2!E z`~K*W=|M9Yr)G6WS`<2`TSJy&B2s7GhB-v@{Ss?GO(oSE+|m zstk&!C*wpTmA?^|L}}ZoGLy0JST70ge&=wxI93hzZQ9oi8zfJ%zH zggGE}I!k7F=04W|Noh{_QUWY_Ee=rZGu;E?!}38(mqRrgw1a4O;riS((|?{jUpL>L zXMx=%h2VQJje+N#dnC^a=iLJsG_PVCr@oRrqW~>8UmCemWMLuCBfm?A zoBz53q}Ccrdxp5VHicNFM$u>pvDL4%S8|vGjmwec8kpke z8ku79w{*#G-3y;_ieFL;%`5|5?V;pk^iYbG;Zzx(pXZ?pL$qwAAzHCw_?+Me$9o#; z-TC~tbeX{%=>8m8uKQE`Y%3FiN)5HEz<`Qlyj<-uUa4-qWaJlRjc|&mKXUb%Wk-vT zT`R@F>C*ILjnH%7bc8mta(9&^Sg0aqMUC(!p7IRu9ah4X<9u6bV?9jka2bb%=cI~= zbO1QAW3NUkvd&n8>g1oqg zm?}$$w-0<(Ay#gfg;=HWH)gbzskf;k^ zO+L{pET(7}9ihzk6#q3IGuNH5AX@a(1--s4+3N!YW9y+K**zM}z7NE`(RpZY?;T5) z(hLiCrJWFTfwr#J^yF&1mvq%6$S>f}B!XEi)dD*o1JvAc4CaO+`aWVI6AIiLa4xuO z2!j=cH2c(s6QLPm*=c_`PSKh`S>}6@Xj67C8hH;X=~~N01TSd6B^x;qbZzVc+Gj*) zIxW8oVrD&gUpXLs%Gj6g1 z;y!$Po^n1uOCD;e{SLoeiyF8%Q@%ySsXmINBkJN9DH82bpW>72m!KB)V{hK&RZ6Hq z5sa*dPRo!{lJ08L8`^^niSWnOqL)DKknCBp8Um(0e7*%->d0{#NGV1Nhurq&!xT;6 zP_Q`?QX^zZ-)#_qewKa9gh^(F;X@kcYp5GCqo0puYvGiRtr;Q z=UAgOu`a>sH-nX2-Vn}VKd5&Ogy;zhXz&qeB23lbWBf*4QbxfIi|ygvZhe2zA(MWK z^rNwv$Qwl70MK6oe238a8BQydS4s`Eax?3W4nyol7BRf=)|=D*w1y%&YDy{mAQe9H zEThPpyn}vm8?mWZ{3KJkNggu$4hFE%m!mPvokL;F)9zdI@vj~RvjQAnblZ|X0x3j{ zH}C4>zTGHnu7Me~B91*l9b_lP1USeZIAohWh!j-Y20VMQkK-69(GwX0{c-S2^)bxl4WZH z&tcKiQ&HY9E@BQ<-}E0ll|(+ru|diSgg%BAVNfUDjiy<8$O0U7R8flp-Jqwsh= zYv=J8F%+habKcd`!`-YH138e2Z?_?|dVYPJt(|W4lYxrESiW2zuy8=EwaB%Bq#WHKf}lFX z=RfJjtv>d}LbLY6KPJoemR{)6ZyKm6&ldjOpOajvZ$X8b9TmO4Uwmy;>X7X*Sfyw&glJEUI)FVYx4zRp?58fg*5hV#^ac>e@*d1_qIVAE{}e$@(=Odn=8Dn zh6nQe!7^`mcnIq7>dT2ogQv)q#`*a@t2)0p881FC4!tulo54n@sHSX)NN?O-JaP(o zzsDIynG&z+N90@gg##7s{v(e95tw3{sQu4{U?@uV-zX<81WV@{0Bv3#By;ZR!K_FQ zJ-I}^2|^8^amlY4I~7_O9_mxMX{|2K+Y784EB&Z|EhZ+kA)>e5Lt6+H5%6NI<|TXq z(ZbCLy!IXH1V*7A^)z9Cq=yiJgbYR#IQmmz+6ST@-NR|VB2ao(t)B%R4v?xAYZL`Q z;4XV8s=03+f2ep-X|+T2nEJ5rTwbIjci$S%H3hdNJVj1s5h9r#00Oq^a6j)t4R}XqR%I(AIN@ch3r#1HI(}2ZvW-gd{$$Zt< zW036KAdbRJFPCNTl8qDNQGi&9kAr9EDFx@J7QQ2hMK2M0O~om>cmy~ZKGF4!9IF^j<`!PZ$nc7g zWKL6c4KVX%Xz1xt8D1RKnuo^8NZ~F>$X}ozE1zj@fFf6e{lF~@zAtTX?UBccAD~$J zMpHbws;Zwg%{BIsNMaq&M|k4+j_*H37Cj3>uNJfmM5;fM1(eWYyO6AFnC$7XVocNz zc->pgBFNX9tO#}|p-^J6_&OP_gnAxI;2eA*mr}~eXeFjlgc&5NrZs$VhzT-ji&D8* z?vK=j$gpRP5R(@74zLZ%2+jzs>Kp>y=Gb+$^-BmcBq;KHGvk{f0WXCZ97brtGdu&A zi$PVV+4AtGKrVLeQQs%BTj&&9HqMiqS_AWJWR_eb>~j}vqqYTc&j%=<+B7Wzw=BTA zS?_rJlVyeN5fn_eSZYu(Cw#v1$nbX65bzQqIqVP->mUrX!OyXQ(PT4Vd*&aiKdSLu z7!2u$AZ*ywPi_Sq3nrf|2(=#yALwR<*T@CYG{z-1-jP$vus>^_{HQvzXOfYCs?Hl& zxx7`ox%whhge&Wm?@1yBDDnTA+VuyX?#e6zN4u~W3JF1XD|$pcG)N&F?J|!aHe26m zZWusn>XFp><{?n5tJ!3V?787;5}-uM^g)PtDtu-Tak_1h{)*+wjj0#~LAFXlpJ83kS#XSyU&=`HOs+Q7cFtC$Uw0Q7L{Du|;VE0^bpv6SE z*+e@Y6?DauU93TbRJ?h5qO8ui4|)j=Hz5YDo)*+n%8y@tHBn>k_9)$uFR)!kPF;_2| zGYQmWefS7eb<99TW67n2k0HmcDq_ft-S!gWFSqxSVmPxm3%Nxig%I@VA%`KK`EO`b z&HshB36c)r!$x#-=pTqx!dP}!FG9V2qzG4?tZZo!!R}{dsJ~N@G28}3gom375hXDA zMGW6m7ZDOGJHd)$E9LJJxoHRHlnz6fKRfyJ>2z*uI!&0umF*tA@GJunNwyw43ZkLM zI$+{cKKQs@y?f}!tDsk#G-*24pguSIc(FSa$B@)l3hm(!q}Nkvwt_HrH95XeOm^4@ zbXbg8)rk-RR94)UX7*1>Ze`}KU~Qat*}&3}S$W0+8v#|Cy7HKb@XdT(9ZU~TPrXLd zMfd3E7wMAm%r7karot(VQIG2y zJ5C)g!K;j4qgn(KwdvwWMY@!k1mU~uAP*XT@xsxOCF{#!%9Rw?Z30h1fRm3O$31bF z@FY3dM;Z`>c++9@oIdZjo(y(Am(G>Fpf4pNJM78&_c^%8VvWTA@iE}*Hm~ZaZ=L2M zb(ZWeFjR^uRR)+I^Y{`z*QK;eHg(c*5>6~1cJy_JJ1=b)ZX{GTX}01ccfEqx$7D>S zerL|d>i8rXmYoY#xq{@fCD0+>J^~jj?u!| zd!cP=y~555t?_xHU}FO7ymIr_it>#d;r?ZhXGH~sW5lF%cD5A|&eT(IN=n1_vPHgC zgmKaM3s-B4(bZ)H`iSV1_hU^vHA?(XC4vA}I121F51@wP{Dup;XkipZyMMWuZ6PQO%0s_4yItlVhg>Wl>ikz$)cr@pC8d0QMPp|Zr&he(5-I1jf zls|UW=G?4mKBQamba&w=6R9!<)qp5&Y$A}?l@T`tr+hxFO_2L~K zJpb$8I6g?lQPDk5o|q9UNh2g&zeW&+zLgOK(E>A;BK|ggx*4^CJbEhTGaTs!#9Ns4 z>&VAYK<8@IRCw?WQ3Djg;i=zKuolQDHkw$4Dhy^;IX3prJDGQUgcv*r#NZOc*&K#A z9*V<3rpS#289Uq70(yQF;G~3m(hLKsV?vADwV&<0&-K#{x=^C)FtC_8=}|)H>j(7^ zR`{vC=Hs8@*Qil~BO>@q8+txVMZLpifw=0`$7Wr1+F>dpxVW?s?5iw<*hgVg-qCYA&@J)-)5h*e(j-To5!_jXxui2r48d^3Q}~& zr&m+8K??Tyb*l{@0g^Th+f}E0;tWf>f#I?Aoac@aO`fTCs5DWJdR%QnODCTF)P}y| zR*BQe|%WCf2a{jOYnwV6Bs#W56J6EkSE#4GV>)5Z{@YB=QPAUX><4^ z(CB4AFEB^qw9{6$np6>us1@Pk&M9Uup4c5iJTVFoZBBa-Qt{S24*J>w_;itiEYD8Q zj;&C!ejSiJkTEpSy>DZ{KPsrqI6}3bwZRN|+0|0llQ(ssbNw-(h_1!Gu}NgI-c3vac8Br}vCESK2A$5y0BU zgQB=zLVIt#-IdV#bDu{i&gdQ-8^LVz085$%KV-9Bv|)ly;uozCRHW3$8umv$f#M#B z;gNo7?g-arN_K~+1Y=GUM_#cV2LGgMPaIDXmAjZvqJ$5DR2w!`?Q~TO9JR2SBn~@7 z+0l4&h-|F$)k6+TT!oornrEH3Y0PKVW}YBpupR9h2?Bs zxjmT=p;0A0G=Yp?5g%Vc3oorA%r$h{A#)YGv7ah z7OdbIMQUsHQ3*xrznYx2bF~Sxn6^Ac_Iku|PzEiN(+kbqB6AH+SJzdPsLJLI0Iv6K z;MYM%QAYR!Uk2|3R5#<7(HlHkIv=INLSQzfa#BC^r(=Ged!7%403UEba9MYJmPbp6 z!oY&Wi3mA82^Asmn_*bI5J_+Td{lzb*Rsa8mWwIq4(jB;=>Z%2gA~c7(=D9R@DYPA z{%lmG_{((O?CybH4hES2GX5|81{pp=dc2d~%~ioc^dOA_v8oTYr|Sc@+R&9siu$RZ z?Y6Y@QeQBz(OoMNjAUY4i>wHgFY7g?uUYUR-TAFkh88gC4|2WhKM%Dkc)ffiUnGOz z8Mp0sqrseXfR+g9_tk%hcNpd-c@U$x#i1&eu1-CDu*ln6l#1mVS~)!+j8aZ5dhk|>>yl# z$sf@^2z+B-K>{Q({_-^`M*NLXig)eVG?PK|BE4g!F(Bia_=U|Ky`A5bHt5KRIPOINfQGDHF{(B02%% zs}T5>T$3C;8VVjD>OBXEI?w^sG9%R@^{z*^dq_LjfiLfum-s?t`PC{W)tL?r#}els z*eUoNH(NfW%k_c<$DLpSNgr5<+yxdK^?)mnI=})V{oC?b{SF{}TRt#VzJ&_9x3F0C z4xo=3T(4MAs`zfJ2EUrl{4OyNagNczxI1)l(iys3?g|48281q*ddHMTeWQz`p3$Xo zznEg7R~+b65(b}9+EnF zBOAmN(F&JP(alutWHNX#H60OZA=#=W?$EXOl&RdH@uE5*M_*hft+NU{`~Xy0)M8b5 z3ft-_<{K{23NaYOs)!5(i5%tlKD?e&=;>^4%j4mz0GDk;_FXL9lpIi@a!~XU@!>)- z)@7kI?ow4BxF~mc#9aA#qrzxVC=NI4zFO27xsj{{hJrsL6%pqmz&n}VU{HWny*_X8 zf+o9}!|FE_EscGU)M|`!n94*c%19GySQ`cQIVDwdoGP(7d9hdo#q{C8TK77ZMWok#`Uz=Sq}JAhY)=^d@~3h-^A@vdNw&x^GYePdy{*<+cyA}F1<{~e~j1@jf| z)w8n9LOXSikSzEm4Jri#PsmI7v3A&@`aG0lJ$DHRrpNGc_}trS3zHLZ{!^ zuM4D>!1oe>kiDg=1Ecz(+E8J**V2Xe;W$AX`-D4i#wI$=xw)9^~M@Ua~za$riPaZ;eD#5v=t69TUCkp^Nmr-NJR#xFo`?q@fh~?we z1ZSW=6;`pdVITP|ESK9IZcM@JdrM17Qu+{-lDi8|R;&m#EXZ+4t)KnA z!&>N5i+D62R^)DWwahjVJZJ5byy%h}=O4PWf9@%A?QoD?+MJ>W_g-CT153WzG3#iv6YmP60< z84M7haR_a#Fp;W>%(h-&&fnY~ymxCf9fuZ0iFX^^o*ZhHLZYl5bj%a*!|6Gmsz4qQ zqpJCw@{r(I@cy^9$iwRiQS%&?`IHgg|R)VTKZD2cI!1+eV-0Tk=)^f z`P5dPx49^@Fsx!-A;v;0i7wF%G!9D`V&QpQ(x*$33{a?WhvOGanS-pq;R(qB zB#i8{>M5*0Sa~qUW0mk2AJf;^)GU|0EA&5^n4L7bsk1RzRx8Tn6E;DC<_&H~#;sGJ zv{O|%?%7D3Q2bFF0-ltL1j{PNP`E*K2fOjr1cnz(x(?Pq?F21ZgQFi>8^UkJm8Q!j z!LDh1)3Th*&MA}=V1^ZXiy;nXIMZq?v>#ya^8YYZ~)VZGV0$!J>= zBJ|P7hn-bd>iG>})}{#!Yc{I2mY3!GfRLLtU3w)okrCpH>jBkg5ddeDz(rU01xHrF zuz1i=GUrdaT7+#nI>xJUSAcB|i8*Xk9M{PZURDocC=}RLct()xr^bcE2E6RTk@7Gz z5Ljx|u!NLmGC{cyUb)>!I`w+cGgfu79QX{7kV<*OLP0*RwZF-7jVRn^dePpmx+;h;?cj5(QD2h*^Y zsDJJ;1nJcqk7+yK;d&6RCBK@Gc}?b60Pn$!EbD&Pk(o{Jt9sN5nrOfkf5u4Ez9iQW z1vZ}>Tg3ub^*yn~hcwDX6!Ibet9`g_*l`e70cB7Q;R8e(sq7Nh?McPg8Im^SP}AXp zFKdpg*P*EsYg|sj>r(kD|Ey;#F##ST^0id2`q2UjN!g>B>-KP*3A;yO_eAN5^<`BAwp;8 zO}vTPG|sdon=W*%{D0Q212C%M=_3k)NbjOFK>;NRNeCcP(g`Fa=0X?F%iZO26T zq##X15DTa%RX{`$q*y>v1gWCZK|zoriU@)<1yPE8zuEWR-R^tuk_-Ru|9z5svoo`O zcXoDWwg8K_GuUyy0LLl54TUBQq|t^YB;gp2*byWyIGGI*G>Hg`UMfmf5wxs?CF}!?0lwaSrX!wA?pTZe=N zC=9movjdj_(>tJQNzWe6q7VnxF*OoQh$ZE(U-(gD;E<}p$jc$6Fjhjh;_t!dz@=jM zXKHC?eW!;*Cd_nDlr9AVg&>t|Dmy_Snmm07t)WTPnI(Q4*sS3&9jjGhVsk|V0ctJO zMAYz-abho=6iz(84F?H_eDeK;vRJS|tNR(WlAs#q@nzG@ z;Ff8m$+v$37n;J{NHMW`8DLvsa;WB_l!W;0stQv>u!WB2OTYrj(GT~RY)4f#6pwV#~wl;oj8|l_2AN2H91TU_~r5{KFlz*7Dwf9*w7v#K)P2}`VknS za0MPVT+50yd@URfPLlv^ms#_z>1&2X3%I}*lxFcTF0o@k9UlD9bU4_C!0~h2xV;!# zkw-o1nQ^&)VBt$Pl2Mw%ZG(}2AU!`O8W#7lS?Osh{1RnyBLRwlSO*3V`~Y1n{+OT4 zlaI*>^9gS2H~C@e68RI1PM6W9O{Lz|KuK9C8CfU=XP2k|aVwgM!BUtlhJXf;fL7u( z!^e_VbWKKqq#zWLrI4s6mDgqG*EADb<*=hd70NX_gBE26Ala~)_gi$y6#p{lx=DDw9cktr8{4 zZW1OVJCB!|XmFd;;b#@VF?WdUjI$6wxCkT`*c=nB#)*kmpN{@e3WTzOt5=BLI>=+%bOA;N? zMXyZJ9lAtEMd%f(V+XyQJ4QxFcGkJZVnvo1;J z4qf!h)Hw?H5qgD+x48@@`PnX&)KB9^kkw>>T7tk?7$<7}#EwV{$z)C_?|}TlgOajb zasnNrxyfeo>AVf5IMkZ21I(-z4iW5=?Gkg_1laxxM{f8;_oMh$gr+5C%bC3J zm7c1{9Qre;Lo?#VT0$^mdc-t=VTvc&rI8j;KZyA_B;*&Uhi8!CWOGqBSShr;z}{G5 zw>r2@5S(eGaX2tHBxRV|O2rH~bOxMssX#O}mNB^#kb+vkNw)-(f~)y^QHJO-Buo`U z0*MSUmekEdS9#=#q)nYHqH`#=RK}qrmihuTqnEF^pKsYH= zq;kzMS(_#u{G$0%fV@BoRPXOi^3yi5F^k2{X;rs5CDRz-xd4=7Q6uITKm@_e{*Qr!Xr@EL~w1 ze|%sZ5E7G@uNX{qrjuZrCMbZ+E6#3Lp;@wpR;p6qBgvC1lUoq}%=9TXEVKB;@tbRG zx(W}luw>f`5#fRZU>uW-%R}%;k?J!ZgO@Gds?N30gGTV{ez~i@83`K4$!#ig1 zvm!Hc1k`uqH9u~RkY z;fF==#7tZ?a_TLM+f~4S`f_q)<9~VGumD0q2RSZKC%YwA9T~@(%^xgrm!MjEm<3IM z0edROI)Ve(%pwPySzKtCemY>2r8bILI1Py`_d#T06JlFjB z7xIlzV0It?8K;**7podTV}GvJL2$FPid zH*q;Gegjv^i0cD#Z^VqT(kEq9^fN%mReL=twG#r50J-JM?%WsVUi-HsYkk9j3_&{Y81IBG+Id-?l zi?~O!(I{6|a%NSD4mtVWzJ^#&nt?-exf5}Jl&pnh;{2|Ga>q~vdp2A7`yv^TYjq%A zy+BELfY~WLlfN3!T^n5a)&aOR=hi!B6|8_Y!-r@jw?q{q65tFNx++dgk`qxGD2LnC zDMv{X6ct+pSKqA#V0uLx3BOVJ61aH<2T_a^#{-5`3L@RXhF5U(qoD@x4MPUb!Tgbj z;H19issRWcX|)i3Isl2BOhqJukR%%L4pn9$&@~={l(naTL_O{ZmQ!Sbm>6Jd<8}>O zgt0)n=P=@`)o5ntIn^e|;ozd3-81Ld&1xiR#u(VKlj~HQSvo<)k}`rT0}obrjX=Y- zkj)%tqZ?vm<(7Szgq);Q@*UxavqB}owR!PWER|aOUpBs#C~yVL0a=ZuWeL+pP|xrlLL#MNga;mi|Cr63fIzj}gpvV$ zdGZ8E@ak39W@gcs<810PpAGYXzqpsa6JRvMvm_jXX}ds7;Y}d|oU~mdP(|tG#EL66 zGZB#;9TWT2H2wtrB2qF=Tja)~rp%(qdQN7;P)d?MTaH%0l4=A^UDXKDWtAaX+s0XT zX9=66!g$TVo`Q=2W=zg)5jHbRAp0_Ls%4;gr3ud$A(LDm(Y6m8_&h5H z2!f|=J*J`H$+IM%xG;Jvfrk%(oQK*=MHgB?Uz2a6GoK)T;(Ur3AJ&fNDx4tI2UZ)L zkZ2X)2_%TNdK_F>okU9*n>inCOx|%Sn@4Qs5Nm~;$nKNRnVifx=^616A$qIt17N9` zi~}`PaET_w8RY0GKCI2ETA7$-JOug#K_dtzFjOfJh*idQKw%I~LqHZ6L^&X07sN9e z{&hD8Al0Xa3*l(SN=|`K@M^OGz;klA;18+Z#TYO-Js~l!A19E}i}onc2(c)x3=&sT zVV0LpA6^nqf!IA{KCYhN`g`{8{7`m+`nxzp3VUi5F`p6KCR*AeK2$d!9 zS|uSt&?-@i>UPFfBzk<177k|v#4zGSbd73G25{>D=_!)IK2UIiNI`bw#f2OpNeopv z*C=2(PsR$)ib{gP%0j{#WTbc4`eFtZS+N9c$JaFzPX9VzB##veRovhbJuN@jwTmR>IC%g{XhV=5Aux2 zpTI_86m)^=NrtdCvHrMKa>oFM$VsB<5`&4#CxFzW+U|+XhQnqCw}J!Yfz_fxiKoVu z%41-5ZvKk~K8eiHgeV4hR@=s@@a-74*>3i%h`-HYU+MMP?A*D6%5s8`38Cg<*Rx-6yt-2C0cAPHb`rd8P8JL#LVPE-g@M zsFf@lJ6lm}MPHm;NuQ)|;5H%xK|7llCLQp3?&dst`-BojC{xG=K>6I{&8K4mmqeS5 zDxwARfH1NHoC;9_rmB_>86TUW8a)lI!K)r5ObM!B;;JNm8&@R>8@WGC=n^^S$l$q1NxHd6N&30;;f5dTr^LnfcaIFx z&6go-WE83ZpCVY1h>7YVL7fQcRVa}J(#xJpQPrADQRl$L3=C9}fTCA0oo?OG!SF?q zAljiL!Q(Jo_=QGhkc4F-nTaIAbe3pTTIqaDd^f`CLFtwpkA+GYw8aRfCdyEd;XNel zAVeWab$n5!1kt!EUt?1)X|ValQWSt;?nSY;Rg-`P@9Smq$d-V7wOCSLS1$;Ip{2@C zrEx_^0CZ7U$(JE~F=Y@eu(g!Dp_4+(U)U-zVaUh~b=VnUQY0KZK`)96dqB*3@R8>gAj)@M6Ef$}UgQDtHOEhUk31E1lx+DS+Lyngt;PnM%jO4@5 z@8VMYOn;nAb_ok5uP|D0z~%anjs!;T+wRnkc)K$f=L5S<5M`hZ6&TScl|JSG~Cstdy-43mL}%U!~x>@FGbLC-CAsCX+Ml0i60rhAR&iY1k)A zFYTlV%YjTpz*J#}<`Q_pRt9H6^%OKCjYWt|M5=u(Fq(of#ePt3%!W!s!=P$&1vwuw z(56dX3iYfZ6z7jjL2m+SFjcBMX!B!9=oJr&1f`HnX{M5XDhmW8Nisdpxri=bG%Vnk z#Ukh`W7Arsx_$>QwOI{7!k8+`=VmG;_97b|-l_~hwbG419!xlHP4a`(q8t(kQ$0H* zs8C0SMmOMMi3qHPaC;tdz&gUqi3&uMX)(LSLPN6FXHPkEMX)<4cLAWM>2Z=|2%(Z> z0S=jLIkk@2h&;ds9hTP&_UMzMjM17X>R2dZ3Bhqp2pvHnZ%`Ock0f^U)<^*Yehz_) z6xt?G0~|T~T8k2y&6WVwSj5o4SG6sHf-iM0wo9r>R9mNn1hYoID>-0k>{VVaN_a_? zq(xvi41C$r5vU^5(X$I>Zkz>x+>wz1RaZa(7ER-RmLWaWxueM{TQVesZCeh}{C1Rlvj_EuxyX^={ z%~EyAiv))Sx=iA4Na$N~e>QUK7@!_2J!-5nfMIZUD<`^m6fo0l7I>X&jR26JB>^Zu zP1Kgh1!grjixN~{>3)moh==6_;=E!UFDnT8r_DY=@=L*-#3dEq1!C8tRs1pj@wJ@C^BlA@j zHWqqYF!)j#h|8w7=O*D2CrX5qcVYjKtgRA-(5J)C#SNaAfWRg8qPhA(;>Q#eR%F@S^(1ETr zmXsbMD_p8tU=wA|MOnS2mQ%zmn>{>1E$luhNJ;(aA+qwY6G~~!B#aQ*k$S^I{!#E4 z!OIc2jW#;fx*MfGSy6QfLd=ZvDXrwJ9JuSx$DXA1KK2&_$Mc|lBrPvxmnUFp9Re=A zDS{L`4@qS+V9`WN8w3G_P?ui{ z)DEY(C@^XaCn0UoIYZ@#$wM{W$5BXWygfW9)i=EWK?J6e$|N2@av~9mcSY_B?2<_rz%Ps!8xT41q+JD zGb%9MVPZsJv{4FUAc9y(%OaJd5aFsd)dW*1hy5V+s6v7&=)MBs8i^UZ@`XX<*F+~7 zy3soess!=YfRXCRoeYl6k@x-!z_g`Aj&MHYva*^XcdNgX68O$xC~2@b33HxHFs9Wi3>U^#k4{RS0M}!)wA00Z)CzAy)?}@-cVpV?ZX%@ho8u zDr(CKO|9n!OkQq9elSE7o0azvrrN0Y9xS;2=mUHyym;tMJ!q|7n`(yuHJ!C^I+AQi z1P%}v)Zgl1oC`B<4u=#|Ds{If*X46qG7zELV8>I0LKHEi6|q^wvj7MR4e?stlMA6D zPn|h3v$%?!suk4(u&+P^qdRrNrYG*s%wRN%qo z6(V&==Sdx6Ii*x`b)VX8aLv^60#KM$h{#Sh;=<~{4q{U5WXMMRv|uTo^gdj_NFYt~ zsCyKBEGPm|VG=OOL|R)&C8g8~)A$t1K>+rOA#civd{lFt0Nz-KgSK@+d(Tk46xm8( ztDbrKq0d0fju09FB9Opy9SJR{%gCZ>31&p3Oz@|0);&ylqtZ$ zmTH@%ge)BA=;6vNRn!ht8Hu^1BIX^$1+Zp!QKR&gF(5QDfZ1~G=HDNpd^$DIpL{mQVzyM3rz&EFC8v8LeBywD(oR0^25yw-8l-z zsUAJvJjhTg!3DmBdhHm1YMU{TCbnV#uGfgJ0-c5u92+s`RJM$Oh&S;vKx?Ll1ay&l ziZh^Uj!Oq=mw&Ev&F{m>%W2{FFY##y7GpxVtxzDEMpDJkAukXq2)l=Z-1D8QdAAJb zUDZ2Y1QF*Wo`w+C7WSQP;ObK1k?rO6V44^p$U$`JlMmhM6-f%Hq>ig9BgYKXM-Kuv z7I%#3qC=qxYC`Nwi)tdJXO}ROF4YpsNTs9{r9DOGWxK&3>j))rk!F?x#Z z5QJ0+q?*!O%gEnZ`^W-84QyBBCbbOodEA_MOF&~WZ~4j~BSi=wzKMc4Az&lj2I96c zFhHP0=bhHrr+Q@5ie(@{ydMsq++l#k0TG|#;v)mp?Ii94?DP~X9TMB3VG;$Z%hyl>J4xY)rl6O2M31BZT)ZEa;r*O+ zuv3+rr5IG3l8~rv1neFSUJcGOEotTCAL&%!lV#tR8Wc0H&i+0#tgz z70VOv$mL_oF4fK`0rlQyky9|$^zTUN1{EtN-r))}FabEwu7M;eg=;F(uJuLu5Lg27 zOD%!9#i0mmDDD2L!Ybh4vK4#&OSP{CU}|>sRv1H8FE{}bZXGVdT@qhLK@kJ(vIAlM z_(Pt`^PhdH&Hfos6F8nhX{)0}CoD&N8dOXy;GZlJlh_y6DHMnxc*_-QT+=AVE1ZV{ z90-uj2bKwE)_`G9L1Za=lpi}BYXLJY4wv4+32W2NiS4VPq-_|9M4{mI6X&mnBiUYA zWwVe9^jMe;0a#(k=z+^TvV(ALAQcNTB*S|hD8;DNfDJ{oP03(s{OYh#C2*XC6pmRK zEgfDKKY=kDt*G0Ri> z;FBR;dg0J187YY@^^!ECbfl4)Gkp4%H&T|P2-GDPfR+(Nrf`(Lcmy{tzhHnXJ8!cr zc#wd~-uRSRkv2U6N_N#JkMH3J2;%Xkk>eony>8gs6k^Ks_2simfwqdZr(RM&r({(e zNV8bYb~tOd4WocsHY$OiqdzH=ULn#=k&R>(8h)P0Y+~`Cw$p-{5TKVp{p0Xs`(Zk|SOCs(WA#!H2@a7M4+w(%q24hXG@vRls~N zq;Ee;zBf_$N)o;Xa$l^EBqt|7HG?Hcqfw2TAiJz8$cT9c$4#?XRY{qkpxE&gxv3zR zUd;%AaQno1m>i3>P*Mj4pgM>Q#A7+|M6YTJ5C}(c=H#m|%SRY2Tufx!Av+ayfIQA8 z#6)Z1csatJ&kQ{kOa#NrRcD1LPk6XH7b_A}J^`lg5}&%g{2;#Y08#@c*^8}~U~p0z z`HLXoYcr%%LQHglSTz(4LkrJwTj_#J;Q^}!|D1+`)`N8`j$S0Q;@Mkir)T1*04K$z zR6R9?L6%*?U7a*Q3f&Ye#XkXc>9l+$^@6613Yh+~O3LhbIC*2}rO~w1gZHBYi6s~n zt5+6o@&h%?v_g+)rWTZc=_j)H;7UnKhedq*9Nbd`I7@35lUP{3$U@Vu!Em%~NH=Mv zmX#1BvQp9H$zMJkR&H&XG`t)L5l`+6fkwdD+~x?SToQ@UP}&SJQmuVqoFTvAtYjl@ zoNN@y9y|(0JcT$^K9~%X=|?|7`j%nvQg+w z9<$x9g29vA!R%xdB#Z__frEk}C=dz>#VRLeKu&1M(jKG?!vGB>8dxtR*=Z3Bq)1$) z5hBeb2`_*FGFI_^u;7r2hMOWRlF%Jm+J?os5g>{lT>}9Rmy{YR-~gQQ{UG!Ro!!_f zB~khzv9NZL!^X%={YexI4hy)*MG?U`HuAB9gIMftZwZ|h$u*p3n~yMLYB>4yQ|ahr zso+X5vn#m8%RJD{pAsE~(B?$S`h(Vk}ABGBx0w-6T z14~yMTDUOQSnPE)x;Ut0C{(nG#RWbDw^EIQKspUm^~ejP3S&*wO339>fU2sK5duVV zJD#2|a1}s96BwCdQWivGe^2pAu&&aOC0LmSxjs)mQNuNmDDvgE0vc6Nr_lhSrJesw z^T`0&-jXF^MWd!wYQ`RmkkMr6m{`zH3ed<%*atLa>;pRrpBJk<%t4%NM>CxyEe8QIXcv80TDc7(kfzMQz>=;_<7cOmitzW)$iU>- zLbE)e9ps86qR>H{InMD_Vnxy=W+_C&jyoJze}a}-u!2wtb+c!$hA@UHPF!QzV3se> zU8S13-Kv-9?_FpO;9JzD9ZvgBS3todnO_9pDJ&xuGTBVIr0Aez;~+4i8w`XBrm?7` z7_hmT5P*;(fz#Dg+c1v|(ZfoCxm$GEC^4m@K-z%-pv^~E3Z(+ZL8J;4gicB9c*0(Q zV=`ADF+LXoptw(Zm6H2(!Nc0jRh_l1Uw0W|Ery zsR$1sd05mUKaOHg1cVL!FP^0wfox)QxzDj})ELChVxIJgNsOU5Y0-0tD!_G`Y z2_kMF9XeQXG|?ro(2*8cOZ%_m0)zq%KE%NR07;|*IycABOp0@kQZWLh^z9#;%FzJS zH$Aa$mH=|mOP_u!JgG*P-QstG$z8;^JbO(lfCMqu%#Rp+YX>EO+7T!NF#-eJ6!}Ez zu7HTbeKRRV`li^qM(PyprI=C&hGM2Qpe!8f%}{XA<7J^q!=MZ-428%tQ0PTFIN4|} zaD~bRdEHCIq2;9vK2k@PjimH$*_hHgR5qS6G(y9~cqs#sLVfE6ClZ>(ffwC$d|m~d z{CvHDgd$3iP;~;5eyk(`g|vNTREuox$sDFkG;c@^4|OUveA&%OSk|)IJcI#8_0_Z3 z6xyLk|BhS1f%OKip_t*dygEzzVtJFG4ht+M`K)gO-?RZDl!YD6cM3ljH0qgbyX-5Q z8YwAouQfKx z`Z9S&PGmQ25UO0zI$-q5Ut(G0^-ZegtXp<^u8))GF28V zVO1%*ne>C9Z18L#IvA`_yK;Fm}<)J?|G%meRYCw5DSI~GrHq|BuF zsHmteY6RNUB_j$};n*A;QYF1A`^Jd_B8c=;9-HFOWH(jZ0P=q;;xVJ8ldLlI=va_7 zSbEe*PQ(F7&IA$gvM`b$#j&KmWb4d+v5_bLHsJjWrBsA1X~r0u^2wE30#UtWatXk$ zex(a%9v)}SVcOLIw|EDZ0v<&+RtR8dxv1s=%TaF<@Cn=u;KAJRXJGl>-%Iso0AVsn z5Fggm00P%LEEx|z@X69;k+u#zTpm1HGRoZS)k(&@5xNMC7|6F@R=mtgwoqqRE2h6oVcfMZ969PAy8vBd<-YrfYJ zNKa0J;2uYN48y}ms(&(aFnMK`A;KyktdUrsojzRUF=lwem)!!f4@u1S|D=hc%m)W1 z4o#TE{A{ZQ5BvxdhZ2=pCG#av7T({am{^Qq06=WuLYwX$Y*&^yF)?c-It^wDI&{HE z02k&t^|Av+@-xAwbXby^I&BH2653LfA?R>9ZD}yV&J}^ug&!lLAod0?9vb(Nm97Nx zFAHq_lcAcmFvwtFc*=5E8V+6ISS=K#!oNu{+APdHZc>rQ2o{Ze0vTLByb`Na4zbWo z795jVq2)_<_M6~z(3O*vPoXWLqk%i(23t`sDMN^}WK&7j*pJ~oLH0MyIwEXHhlrujGfGC3c=j#~ z!Zx!-<1mJ@l8uxEB4QvB2Efo4km+84ByyKI9e5*v)J^`Pst`!uq)NqP3}eA0R=>`LoCqBO0#rc;*HWzGYKx<3-G=J72 z9^%U5P6Ovv8yWTmN5airqGn3_Sj;WX9+hC6!8GF|mau;UBJr@Thti{!>B7gjJo7 zX64HDdJ7_@rB0e99Fri($*$NUlV%hJLB@TYO}&r?L&fXtG(O9T&IVT5rOq^Dp)IYZ z{1Dk2tX|Thl+9S;8e&5afG*ZmB)!)eVnIk}9wK)S7UDeW8Oe60%(92)!ulsKOzL=M z2^A_yfywSB$$|~$(unL9rzy-~%CDPkBd$!ckWUcGI$(E&u{#;qLaTQzyDL1$69%V-Ty>kn7RN5jZa?@MeM2z4|nt&Iy zKqPdM=N84xk8@FYMt;ypg(m&Ihk})nB$a_j<>2Y2nj8#~{e!zEvlUuZZ#>3Jigc>y zhM|P0O!hD{9g%gWC>7r4cKEdsJO_gJ%f!v3P*Mg(8CA;w!grE zgyRlerXpdt%l^qg;c$HD5*hKP$d~pRMO>r zpg__!gXX-Zoa3_4xbWH`xf*Uwq$$@SmVJmcOpPo8jSd045el(f=rYSDj{{GztgKW7 zS_*MC)QERVp>6W}IGO_4%u@UsO+v2pzNH3EZ^r7BpWW#|w3Wg=XsGfjEQ%INp&3+1 zP^HAuGku4D>~MpV`~|>E`0W1(sgT*=i=MO1i4j9abl$H|KRI$WdYi8AU2i*XH;s38h&s zeOzT2*=TrmZLWMW?op8<4NTI)Fa-EDn%QOgttI_E&%l1mT)w)*gPF^!fn?1|DqPa{ zD$6os<4-_8GmVuBK`~7uOTi#Xpd_0*fv-Y_G+|Iso=Tc*rZ)sFZFS2%L5g&~d}>^& z-^;|JcA!l%9pY0kWW`EIH$Tm2mL=CPgM0zajNgR9O2#QlI!T6HGE?{IijjJXKtD{a z1q`ODvp7BB_z&uC4_+@J0i5ZFHS%1D^iF7|ppH=OD#3_JJYo_8j8cnBXbk62GzWjX zhDe9V3D6m)N%3z(B91Kes8?FH3T3bpUohGr2S3^d!t@mYauIbiVq|ReBP@ly@bV`* zmhP7b%|S$YhNUY;u#{j`VM1;2(!tU?3`%Vr)JV-7##v)3pjbnEN{SIdYK-hwIe;5$ zahRZ&_2cEb_%A2+6$kvjjlJv$OJH-96y!pA=0`@5WOCaKd_!~0yu|$w1jY7}+qeRV zBU4q}VepWAx&R9xU{)CWo1lIRfDrAP`-FB5TsQ!H1@b(;JRW4X*p2cQ%^|u9T=_1# z1@p6Zn{xAcI)sKs%nS~}XH%EgmutteuW-PfrT?eNiEDW@R%|xetWc z9U)G@>`nRr1FzKvQo1S%z_z* z0N{woLk*}C8DJ`~WGk+Hgw9HaG8Xexs5s7t%%|E<1*MBOm#bznVnA`zD%m$2S0`Ss zHIseL;UN8~FIfWr8u&l?&mpgv%cZKBtQtX1z=} z+47vM2!jDr52Xe=t5+|(8$-a!bHx%xSAGgnN`k>CnHU*i7>x?jafwgNg3t;BB)wFN zl?I07n(imb2N!6JjIp?95;{2rPd1Zch#RyBhr#*|r#?_*m~tJaLayD^$!_!*-vB8d z*$-05ytfHsURXWJ!&AG^^?`pF-$8v$xJR{ct<(p1`guaT^)Z#0a*e56>G~ilg3FUD zGRnnS&S^9t4u!+09+!P`nT?K8*gmj>1iINkvklEaHhBgAhbd9k*0)rp~LV(1>Q*h%om0P(|`7*g|xDs<1Sv*%` zVzJpOUljXUa#J*wXI^3!dNs8~ilm~@r3FfrX38}U$9&--d01Pxx~5@9mf%0Glxa|; z3L_B!I~ok`U_2u?f*l9|@HOSDXLlO6Y^8B~M4A=v*qZDX%odKR71wEYBVNqqSCTYZ z*^GVcd8RxcUlnXSv_u(kPwT-l%(IbGbeGpOJ3lni`0R1R&T)a!2oqK~kelnkG^n}7 zw#6C`>%ahdU+$*~Z##%B2m=XR=&N>|zT9kwnVJ#KgT_=JS2qB;k=r+qD^Oo<)b-`z zxWUETLrit68*>|N$qrv!;oyhJ4Y0l?cIdjCHe-el@zH!%V=wI1km;2HmX28G+;B;E z7~^y8{LD;uSd6{kj)=XKA2I|^A>SfyND!>Gpz1>H9BAoXeGEl9IsIW4n_d1rjBaa8FHPiTqu|NSK#Bq&&U` zECJ^$P7aos^n=NpTSU$XFvK2XD#}%lfDDr(zXWeva~a41r;G+UDvwek1wH^PJ-kOH z-~2$L&lrylrfYR3F~dH7Y$td z8@Tnx!1bQNmE$!g;Q3)*O46(a2FyV$29UJ)Ry4RuT>05NGpM*#;*g=l0moirUz3eL z78r2eFmX+og+-jb;;GaH0GzG(g_^D7+yJKUETN$Y(%;UXNU}_Me6Crhd~#0@*u zoBCOJRK>NG(fHa8vJvaa!jE2fKjf4bfKqOWQilJmZnCp(gFfsJQx!J_R zkBB3k7Ta_;Zd(ErIW8R5RHtHssm@dc(m56oI8|hp$`y?zt1{ySN=oO1M)t{Vuae=g zQa8JYLTClPNckK1f*9-Yk(r`O;)ZfivwnI5ofeMA`8vdeAqE&TC6xIQw6hGPSTk7m zU_fSIw*vl5c_cyznh=CCk(piTP!dRv#3Pi)4-di+SAd*8M=BnJ=@#5%Cb?gwxRHn? z+jPnf26jx}rm7qBH?LsS)A1>mlDQP%HZp?Z$S`xnwqXO)GhqpUvcPVrytJ_O^V700 z;vP8^PH2ocHDV}bhRTz4eO^qaP|$PZb4~dF$cWI;;oXtxf@Ls96IAt~WZ<+G^>dma zQDT2&#*7xl#4{9XzU}%e4D z&dI=@rTbsYgQdb*o`I#bhi(&jP^8;pR=&~dF9WW^%ik-~5?h{jV;+6VJyp30$qX|C z&T333D~+02B~x@Zw5>l}A1?Zp>$7sxB2&p47IHU?i%D!NHxJ0o4${TrNF+-&|1%54 zC!*YpSeR!Ve<>hasKnAnKtcOVmRLhyIJe&}WgNnq%iG~?v%u9ZQ|#O>1HXO$?J{7q z6PxBpI36*_liOv4>t?Hs^mw<+AU%6Hgi8pc7+a7_{|8R+J-hw7q%%dJ$#MH*gXeJD ztzv*f56`Il?Mj#Mw^s>;GR{s;skfgqg^4Lce&CllWo9bbBX2TbDDQYu$U|A5gJmCw zLjoel-gfP8Z5!vmQNSh{{uZUODZRa z(3(+Oa?%UX+Fj1D5CXT}rlYmGM=%8IT+8ZM2wD)p8FrB`?WZ?0+Vg#%no-IUPJHf^|7( zheB5F{5b12fB1|LJE@E%QfCsvhz>Td?2e`!Qx{Z-B0_776m>Pk;^AgcKB9%({OsXe zTAhN(NIF%*`IbZzh!-K}0+M)>!(3hx|C(pW>|dU|WFONEZxH!izfyhey+svD*`b)-^Oc*roFh)oQ(3voRo=m{ zeL&Zgr!#}g-Z}%uO=be+TNvbbM9WEZJG&j32bV7!S&9lx8u42+<9f}*+r9=H5F!Dt z+e+vfgZ$VtVA&9S7>aa=9s`4K_%W5TY>5=o9>`pdNF4_IX)Go%+z2(t(no}tmtA6= zMYaqf@Ry9i+q8qGj@fj#4a=8IyUT1th0+YupxY&7Ht22Hc3qCL;=Tc<>ySjqkR6eV zn8RA=<<(NNsLJJLfQJAxs08IGIcGdy{)V>WtzNuaQ(nRlgdzV3lKPZI7;+Zc-FR#m z8n%$@r;MR;4k5$^m-b|ACZS9zsgV9*SI*qHE+{7@c@@aFdm)aM5a+E_A-Q|YS*QZ? zc`n~DB!^@cXs5JVD6SU>LdfoVA^0Qm85t^-lL}6~i3oTs#kVRaZ7J#z+6rmd>XefL z6_+z3x~QO1mYWdouVDu%O|@T2L0R7=&?D$}Gh44IUZ518q1**wyjU0om?a@JZ7CvW zkY)>TNF^tCa$zWED>4q!@syPW@2-?FpLKeVRI<0xp12^xX^aa*8CuyTqXGOb^8Gld|PiWhHT#MwZ-GKhpM&MouZ~SfOMD!!p=# zm9djCf8RFkAO=$~5q2;{)Xh@bNlj2lrhqUhPo-c{!P`nEqd#ySLq<~6?6M|i5Hh9@ zC^NG_{Hijw;Br2UA_XEG$`?|7I06ruH3u8?GJiJ=9YfpZWdelRz#&DlLsZ(Vj9fz4 z*cfvuuu>V!6h%)NXp$^n29lLop_YL}MJq!JV5O&j;Anxy34x)6sDw~0wT}XP*%&Kp zA`p6LhzL0pCT%S^K;l`eQk3CR1&P4!iDTB=r572|U(0BO;qZ9G4NXux5n5(hu7N32 z)=tjQ@hkyVrL0!+5Brdq!q}^rPAWi?sZsiyRy3Eq1RU= zFJG0lw4vl%WOu_ai5`-tD`_mD5GkY)N#jc%FJ*UENNh^g4=ddeoYVh9VPqEnYeC@Y zh|5p*eB%E{6Om)Bn&0gek)PzZ(P=z+2n7g1x{!J`3GZj+W~RV>y!2_GK?5)ZJQIed z;@V$2N7WJ(`sx*gursW87eDdKTR}bA+sd~*)f6%fZF$BaRMs!hvQ*YM z3Sfu0W`ID(OtZuF8KX6XEMy8?Ya8g%fDkAcUL20CrQLZ-QwAmC0#1imjnWUE5@W)l zCvi)kH+hJTW_83O!fh$Hs}e(5l%ReoQ*t3+<3f3NEvpD@HwuZXyl+|QIomSF21D+{ zsz(A_IY|`3E2P4QjO=!0TQeb_L41Z}UYgaU)Z}h&KCEs%r5a^Qn1S6iNZ;T=a&I_H z8GLSQcs9-#^cDpSl5sQd^iUKcI{un0h?-(9^?F8^O&R-xE)CvNkxao#(+22LCi<5M z{m#)P!gOF}r74vZ|MVX>Y6nt_9MGrPlbqQd??L<^n42sganqg7LmSyO{@(5s~ zbs-d|=ivApWJS;tu;nfx*gZfHe1jW~=6Z{h3Lgt(3X}+_GChRoCC3NZdo?s-RyZc? zGLQcdh|1_d#c7siQAmv|5R|5YVKvvmCRf=~+DeC_%t+hxtV-ayP=}7HAmCCE z)Uriyo~h_bZ_GISkL9qqk{pQd6#8INl>=6Vhl2ki_W!qc8>thQZ7b zLoNu86Q-O{_6z-SMta-WAcq{iGI*Gv9m;KmmO2!{QCP=FgB4ba@1r&gMv>y_3qq5l ze2ah%X=&G%LGmtNp3*{5uCXMMJV9GnsB=NO9cCjxs487s9hxZ8D+-~l9Je{q{baBM z4{lGXEuKUdid?}4zQq;G7UdK?B@*N?sgs9`22y-ER}2fID*sAD0!mq@4`F(QC@Zo0 zOLwul8KcM*j4C*54kD8#HBvJW?$ul(&*POqgv&9;777}c zo>*vdAQp|4Fj%buNmM_I94Wnj>2FkpQcRY6LP>=6uoO)IB}5AujZpGXTu7s}n9Le* zNWmIx&dqnxAH0g3XSC51e`J=&UZ0l#K#PfA(gOk&j22%(WCd`rnki&%j@jvjX;Kbi zcblLsrZYOe$ULfo(T0eG9s~-LG6m}Z20qM1$Q6IlAqegUcNP3Duu@M^{`5g%(D2vI z-sNFG=~*g&I(;DUdj+E%FBy3e7a!<(R%{Uf79HA0& zjd;h~<-ip_dyBV%k-@0y^j4-(szyE(wRSRs$)~o#ADCp|U!Rlx#dAD}(}2v4=sdf{ z=#^ZjDEL$bV}YGsx-0PJl3|(AOdq`1qYR8FBM^|b3nT--{e8_!?}$*gIctLk)D~B9_<2=GD3)6 z85C#`gy3K*efsH;8Xtr}AZs#dh|G=8PO*<|sJEPNh^)ry8^_+C)$!gy|cxFM18Xvws z_KD>cyX{E0cJ_@qM-p$Y%IiGST39Rb$75^S{k-S#j1bN;PA z7S{JvzhmXqgm1RZuHE*)TkGm4)Vuoa_<-SC-9A7(4ovO=nYk>|6ZYjzQb!tW4~B zs`i+-EPsAJrs2WZRwEam$+W*TYQn(8rG2K%vRq8IMYijwiCf)#jms@!#CB^3kp5@*n%*o#!6>pvcWG6!VCt;tyI#4~ z?8Rw^s@zdj|G+)h*A|Vd>#5yv;Od>ZuTL5`YV+dj58vN*aL&A=-mkC4UbCk?@m9(9 z>0hL^S@}WrSq~QJ33feBXuiQ~I4Ox&O7h zm&_USMd#$V#y!^l+LqyUzJ99X&7#zbo01+m5O;Dw&D!^#9CG-;=WkSBZ;W~UzUf)7 z)o#*z!q%a$-JO20m33vmra!fej9PzscYe(0vopp{u>Kl*?#-9nnRm86(W35(`VW44 z;aL3>%Zlqxs@?s!*B(l?t)BW=wT9XAu2ddY^+U7Io7u1Dpi9FS{IhmK*0WoZHYRWX z2WV_Y*zbdo27%BMC^a_gHfaIdE)(tuf0~3-oN6fi&i^2 zKDX%57sixB{|+uXb)@RRC+@g*V^QPy`R~0K{ZySe=g0Rv`oK4~_oD9Ev3mdf&O_&X z{mqV*f8Kax&@*Fie0r_Mw5&_96>i-W#WtGY<`zUB4iF;*Z_Gx!eBse^akUTym|NFmv*pY4z>3KASnl^3>wb;znGb z_RJ$&EC1OzYv+(Z+nnBC^4F?=KR&hO&Gs)@4-Prn|MzwG{@iWep6{j~oW1i@i<7^6 zp4X>Aue!Bv?w!B8*ZWhK+&gI2q5Fp{`+eu4ZBx3QZTNfl=515@PwiT?dhDsx!!I@6 z9(L}YD?e8`ej+ZZMXk(DZSMd0zsv(MXKK`4U~TlccgWGPSGOmeXg9aT(K>^N-Cupr zs(0^tbjIHm`i^iphpu^QLCq%T_AQ-#@zOgB>eXK8eD|R7<6$4JNO!&eM$MESEw>mN zL}c2V7Jc$l*EVZuNRe@%J~Vwq(>-k38_#BcGZNS1RmXV??**;ZF{_&|s=H>y8mopaLa$G^;KHYy`)$byciD||AdS;CeE3*NicdUYe;u$dWWSJm8e|EyE7 z2^Zp?JbT!FSJjoat1;ipYFC#%U3d3B{ok9>-4?~QSol+~3X#nmV|_O! zEod{NWye{YCd|L@>rZAJs_;hS$eXQe_Bm`YU061BRpOAubst5T=fB(Y!@+SM{kSS` ziDRR?-jm_qExz#nBTX-MnNwxv%+Y^;)xMkgRFBkKZ8v^&_2~hVzgS{gko)V(lapRa z=-lp)6$>veY@5}0Me}C0x_0?xZCHhG+ArCEZ=Lteqgws^*Q}|}5B#R;UGu*vPFi*H zXk6Y0Czfulk=r}9Vaw@ztCZBZ5;?Zt$?Fxj{QlUkUt>;&B^;PN^ue!}-nnRLx1j@b zmhV3C;{jJR>%!LK!yl~nUXOR5oA}m>nm@hV?5_DEryjhu zuH}6(FJC|Udes*{JMm5U+bycDoV&TT^2dll{F%SXx$|nReHr1GTSRs=YJ&!jzc$BUc}|)Z&4A zi{gH`mH6S@r5DFe8aw*bv$cNtE#ux}8(;4`Yn()a(Sc%r@;zwPA9374L4x4dHS!;deDuX%T;?E{>q zHOm^`^~>NNewtbN-KQtDT(PF@`1M~nb029oWphz_gbG0tC zcX#@)!h-c@H{LOE{((ovT0iW1aMIexY9*S6PkXy=!rGl3sthQ+Xn*tj%qruqI?tGgL6Z*F*T6*7(b8El+veu&2ji3DQaf9)CX6Csr+Y-M{2-~u) z>bfx-x~%`YLd&%k<11%+oP~@_Ki(rPH)}4>PW{5k4&$c(>~*}ef){XPaIqx;b=U@Tr0li&WPs?6=PaY zzJG7rUsHB&`>=Y{D;2$sAKbj{(Gy|q&(`?p-!+LnGhS-fecvb7mf!g7`FE3R%^Nr3 z?bx30-LYau$2#q@=Inl~ew!yIzxC9>@T0( zdu~sU!P~!jVg4UxQ;kz+I~^JtSO4Bj$J$QOhtnqA)v0UNuqP(`@#XgiPmY{5;=5m0 z86u`Fe#_AL$kh(9@k={Q`N>#yPE6IC<6mz7=j@top8orcqr#Zq-aR`1tGEB&kbLRB zu5~|n_x^;TpEUkw)RZ=J&UE^HNV~R=47M(QuHEIokG8Hn=95Mh=l)%D%x__y>${sB zOYQse9RrtLu6}ia>)rY})l%2ByK*e*59f#qw#mQ0_PpzkIb)t1zirat8~4B1Y+`ZMmdNe6+WaU0L;ucP8IU(k+O{d;JFzCU*9vGGS ze0b!9BW-T};28CHNzY+*99!%Sc5PqN^w-?+d%AA4MYxx3-dSzWH~;ObRJeZ0_$Kpz z-Sa`q0p{nPJw5qKl}ah!#s9is#LO3me025o<>$MNSoL0u8rMHMx-F(boh32j-mmm< zueCn+C~H;Q@vokG{gc`)Q$L+#=;Zv@S;4pO*)s!oy!!JWhChprZu!1LSlHcL8_um- zGUSzs#V@_pE&1IRbIuv2)IM9`U}E$4D{Z-FK$928J=1XVJCC(bdv4{vw=P~7RA=o& z%WtLc`se+Uo3DMhq4Q6B*0-Bmuiu-~zkH_3_s?u`R`Yy0%Y8MW`nvbtTiu|=0N2>z zp5*bq3U7sC%%Jay>UV_ouM_C4Qw#?N&#=G0kvE9(55elHLFp!Vq*PkwYH zuJ!8|KB~QMQOy$(t?%#O&1Eeb`O30)mSl8V^Xbsd4Mw~-_0$pDM(0}#ufMu!YxRch zZ+-aA$xYR!Ty!10+xp@0e_mYD;8s$lMOH&{jad)1fA> zI@Y**I``yM9`{tpB~AJf8de%%=v|oaH-tZ0~=TxX%*bS>52TM@DbD zc5{F6EBjK0r&j*re6uCy?b!Wd{?Qh1jEtMS@W4xB2Ne(aaLw$=m+n1qscFBi-+A9$G+{&a z7eDKKY~9;2%c@j-u>PQ9^{>@3#hl!dJpR^|^pjl+zny%n!um14EPP>|sZ-_iPwg=N z@Xggx-tqIQf3mP^*GHSCJW?;e>zNNWWhb>=`}f61qCZ-9DYNz&cT~Do%l_SW2hQxv-*tZE_hX8a^KV{t zKKtMwA8weRf8w84C#CjyXW*RkTV6dk?LJ@!u-#QqSaGl zY!e>roO1t>J`w1UKW}gKT7w3DG-t@+ z$Llrojs5uh=#^0$4BgJW5@YQ3?ML@COFR5_&grp9eebUHQo_MTTblG*wRp_6W*;8> z;f{~jU3%|)jq59WG<^3S&{v|TUMxF(C&^7>w11XxBazV z%Nxy)t7z+;cri8U%#L1R&#$;K^2)M(;kDBa_sObhX!7Z#$D1`iw#R$tZ}}CYYQ)XR ztMTWN4TX1JSlRjhea&m1tTg_@fvCxw&#w98*f;0DIuurP_0`=qdR{r7nrj~V!l|2I zemA#T$*lI1-|XG(^P?vkn0n7JHq9_C-#mK9k}30kizxoK)#jBKwx@i2qMzMxYrs7- zc750B?D)IZ92zjN?b71MD?bu;B58x!vj3?=$3EV4cFNxU$2Wgdzx4I~ zAuo8Eum5WK!{>&)VH$tu=nRaQmM(|=(SVt{CgGyja5b)n9UQGZ3(Y5MSIKMc6C z_pLquriVS%@}bEm_jnvV5--19IJL|8`~LdIHhbLSD*M;$&F&uk*sGPg&m4B~#+puf z?!6N>?`SgEz4yoaQcm>zF8g3+vnuY&YYU&N_5MRo81@fYf9d?2k3CVX<@^Cpj*d56 zcu1TJz78_^bq}Mc;{Nf1-bT~xmTWgf5#(JW`5du z`hNpA^!<3=s9$_DGOIl>BfZTJ?woObCzrgsJg;!#l!@&d-ArOhOLlCye5G5zN#607 z|7x^tTa!0NM8Ej*(gD*tjb8bBx6H|()NQ!(T--N@UuZJ$&>uTu3%7hY`RP9_S+Bcn zf3}|FzO!0_)%jPmAG!|t@y^+O_uX^0_|$}-cD=Rdi8{|s{p6=>Q|7G;ua?!leaeZY z-NLJGX;X92&)El_xaVtIld*R#KEC0;p$+c45dP`P$t_z6-B@ zc;(CoY_I)3`-KBFmJYr?J#M*o(~8miYv*0B`I+azm}h3ij=cJMo0bn< z*zQ978`HnNS>=Tmaa-=L`}ppm?!uU1RlbOdz3x0+snX5mKaF>f`t*1UU%N9KDki+& z^H%3cbJKIru79L^RGarE zrKLQ0u*aQk!hW4{wBNBqlRDL}cK+AG#OTgu_mgdEKG6Bm?%n5Jy|r&#_CKw9pB!4V z(|G6d8I@*rT;5^f%(tdBnvwjUZSwgW3l}f1(RtQ@XXah~!?@|LnRWg(->km0?eSq9 zzMnE?)%8Vt&J1ij|BtMKl}+zHS9sT*>(16ca^_<6+@kS&X6`EfWaG&NhKAEdjmp?I z{k754SN%JqS^Lq0XZMW$dduR!`g`K%)Z4gtmt$7Mn%<{g>Z9e64wdoJ!StKDX`QwB&sQ#{IYFuPRX`pZECV<2Cm+d1!7?%f|;+ zF#NT0Z{nVZfBwkPVCnlEA8?&Y$bZA@_`FrZn%Qli98|AE<%hCTw_JX~Q}LN5$8Ob$ zda2rxk?o2shOt@Cu5P`zLs%M;u|1j&$ z@H5pm{`z{KdL?(J3HLDr$+9m>PgR6cy#N;%9qc*Tkm4ZkcnHn?wPd9ms7ZD zXx7B2;Xf{08MDyX_^0%ZPw$E?PP$QhLi6w5ZvVx}{---NINWCXJ5yG@KCXM%$thoD z^)$Rx^WPKoK6V}adh6ino9i67Id$ZlXQw`#J9b3O$k(!pr@r#i-2NlmP1%(-e|r1v zbMC*t+MIq5oWIoluiu}GIMsX2ybmTs{dIa}tK;d-23NmsPi*}0%lq8t8m&J(A^+iT z(#NzkBo90O%;ev<_IfRB-LeKBjdHt+P#%h_Wuo!dIV)}mhH zb48Cuy*4)Xv6h=JzaRBtOszXF4f*+zL3Q2hjo&Q(_MYPHwc5RL{Jq`#2W1av{d~-0 z6E{`qSNBeP?!~1ID%O}B6+85$O^qhStY7PRd;Y6?*Nt58aPs3vO%X>=-ThLPj_rFq zxcl&gX&T><@7oH~$IoA4exS#TkIh`PXwQ+IZzqj>_0i;rO;JlOrn(;+w&1TPS6uHl;Pd;s z4fwKc`pj9;FCG2$`u5sYcc%_$dNVuxk!~Z_7Tq0r_4nAM0)s7L$vYPft>P}Mt#;~{ zNsS*k6aLVN6K`K`J$TsqX|uNtJ>p3G_tOCz>uj9#&^r%xd7)}rLBvU`Z^bn856}Pk zVS|V2&bZWm)8)fWR*&1b`ReI@TTf4WXWcdLx!CpNZ;cvq z>%r=cc0Tm``TN(`9sA`pciVay8Iyi}s@}(id3oDXi`P9id(fAEy^%C&;*Dv;-rmw{ zhG%J$2d5TKeAHgeGw-BhZA$oolV`3EXm+a8=|`5|Iu$dm&dn(oVt?5&;e$W#Hc$Jt z|F5rJ&CE2MZs!>_y7lAfOYV8~|42KhWnmZ<3@_WZZQHhO+qP}nwykg3wr$(k|2^#E zX6mGAs(E@NYwgQ5e~eBG?i34GW{Y!VB)5404@h5cZ`bg5Tdx22dR=X{Qi0|6n=x)MHRRM{S!visdO#TR!<(E9RixzPm92h8V`!cH)( z$Ez>^Loy1@&(!}ohpIcZ<|I{%Hc{9Xb$awsfM0`}Yrt#-ZFEaR zyqr#y^g$KP(x`RSNGIwAmYX0IEQ$0s&akxuZ{v?Puc5%UZS` z>Z+CfT+3SGlHIyL7ejO@qmosB;xe`@Jp(WRb8#NxY$K9#ij9j>jsWoAhVqK%NCm@< zc!i>1VU<~Z)ol+kX%yxaMJN}8;T=r2=yLP;*Wwi47xq}u!>$qDVVq(Er20yL^S^6SHW*)0r4!MMIDm352o{x`|ZG z#iMlDA}AT`B9}8%=qA;}IwS}r;_pgNZeRGR$R(LvP9;&Bl??L{5#US+0KP%UwCB$+cqga|TT`${2DDKZju^N`MK2 zqbZdmw5qdQd%pl=R3t_J65c3m3Re+nPqciYr`P~7L~JE(x?tymskzw)?) zB0;n92UEV*_ynHL!j>@yN8AC*@zL-hPjfaC>>(Z9RkFvT1b$zZ+h($fZJWzKfaIS| zDa`t9r^Zx1U0))C>v4M2tBcHFSfO|YvYAUjkwYT`#&9eG#_Z8m^1p0f3f8I+MG-Vq z=gakNm3*|Gz1)s7D$X{LNL!!xP3}hAd45<`3pHX1=~f1PQ2h)W%!|Co;n&1RH?F?1QwM@0wu3FNAq zM+W&C@$dz(yEm>-=53M*fBk+7`bWAbMEU@}FABU+E$}u|!IdbmPbED#iE0Ew<&zTq zpBj*ql09eb{^_M$enKq{z>DiXhFstMqV~GW1T=wz2W@?U0)sX{Oas7c>r&dW-Dq!S z0}IhVi+`&=GU)Xxa?~ilN_KcCy=3rHTL)EpU{d)igO`q@qk#k9J|zDUt8whzPqDP0D2PW!65-lkKKzrZ!Q;$-}WNw5e)V*w zV`U#rlPIFatH-gpB`iNjA>ZVhgg&)`$tcp{tjbd~A+P~-ZOpTXjOVuXMc@(-hpvs# za((anAnct#s31WVn$|(|0_&n*VBe&ZCxl#6Q?+WmzzvZV$Bm>downfju z*$^!1t?9WeXzPB25697AEbVG7q3}$fPK<`oT{NL+hpw+Epr$vntThX41Jwzu4y@GrfAgD&t zYd&8gbB0DVt2~lf)zANOpBuf080VoqEgtESX2;HSS^b+qCE-m?fwWMEzYo$}{|7WP zM5d0gNL6rSLvH)>uQ+6hoe&5S9gH#wr+6c5X1|;+Yp!rih3%YO$b4ZPjt+RXZt#OY-(Lbe_1= zaa$dFO`L?S!=&MU|M}kFO_x&mCeCpC-@6mDVbTnA!~yUFfI-!jl-0*2%(-#D{ln;K z2*7sYxPea}GhEH|1J_JB^W{Jl9>=!W_o0zwRXGLMv3dVTcraHRl)@qF`czf1i=eLEAdKe`T%N@R&0_r01xA*W;$;qm)Wv=TQ6qX$G zLB`sIGwq*bzPg66w8J}_`py(m;@?Pp1$X!Fk|7lO?;%nWjA-6@+y*{49xE2U~$m{DMcTPFD$(gow15buUdr( z$8l}MRfETC>Sv`kDmg%GnSoY)2sgdCT*0txry8_nW*B4;Xd6k{l%p z=3z-j7B3ZJqqMM1LJCG=r75c0bdB$^CaUZg%QHxMw~ZWrB!J4O&-o>=@%pBP46>YX z@Io9JCsb{3FT#GFmKvn&@i0GT9aju$5p({}k4xyqWYXloEixjsM6?khe(C+wi-*>? z^sErGJte@I`8QgXV+~ZDVN7JmC={E-a^(!hgVSeH*uLsPK%JLVp3j~(F7F?H55Ts8 zWLpB0CeychXVZ1KLARr{H1*@azKoZRN3kQ_t|Xo@si{^$8u-``lLPbx2y6tV*! zH3KGkm=$uNcoTwE2hkpfq?eJR`1cJ=uRRp`onUZsfoRTWQT+Jaf|I~hg8j<|hCq&; z(4kRc)qrAoo%WyN@1G}T@E`QXzBQHF?^N;$uK|xrc!63GBF_11d=hu!k+e&{ZJ(BInvG z&Gbsah;s5#1ro$Y8Gbr+Su@4EgTahO67=*QT13Te?u=Bxi6-SM*_5-VfHWV4rCMM3 zp^%|f_^qn@jp&=+(9d(N=kFL9^uVTlB|+^PmMYPT)xO1#!vS<_15mo5Yro)KwDWQG z>5|#qXaf&YCSY>ZJ*w!XbX3d@%S{QKf0yct4pABUkYMH2dC77(#eAKzVDQ(?aye(q zcmV`B)ZrW-U{s!k`Ba%1^z9u>*)NX@Y zQ;8R`0zg61^}e6!#;{WrsT;8tuduy)YA<~Zm#`=y3UMaPO3BCp4&8Mcrv2IX5c zzXz-I1=RmRHOMaIBBX<7AzkwC2k%#KR7$MxvfJ%S;05j@}GEf&2Plj$S( z2NDbx#>UxM^d$w+`h)rrHF%Ho_J%qpz1AAv|2Y!}gtsG)^-cDQ{Vse(lk*>*iCqEo ztVp{3$>PT?S?#cI;K2zzrD-1s8Y0X<>W3)IMQtlB)L89VVtUf@24F7U|e6kN4=f7*|MPE)`R*b zJ@j5fufSt>m`F)*fP1HitX98ez7PX7`bmwEB~1uX%wQRhB9G43_mw{T3rN*T-tbzo zgWjc21p+o-cpME$4v}^j0l8&*VF<+D`NRaM@NH9y^Z4a+hhpvap}6Hx;>aWO#$lC$5@ z9piUPTZDj1vdAV*)Z~}|onCg!UHP^rV0IBrx__si{Sec|m0|o;<7w0KRY>y+(YvY| z&{CeRvSmG1ps$25f^2JmO>RS{KeW? z1>fBVS^G7v3y}!buNBt{EsphN?(mp3%*$Bm&4I;1^hUMl_Z}VSe*k_q=m2^|TiL$?V^`<8vXF#!bG{^^YW@b`~8LJ zcB1!NXt?sXAo1N40sr%9ikQOO$*okFlus21^wpc_EE$I|>* z@X|dy3>MZ2H$rpqPJ?)%X9y8<5Fcwf7$#D)>_pzRZfO^zL4XinkSs>mC`|6xdoM32 z#E_Teq`AygT+DHKWE#`2TbVd+6ehi;b{s*0WR^i((UPy{q7O3X!j0^&OHzP6l!;mE zT70|KwaUPIaG-X!-|%ffE-}6oJP`N2B+GBtCpgQ@df#MePwKN3yD)tlw{y?M1;J;Hgu7^n+1=NE6Ssg7pe z30;W!z--(s^c;noxXa~Cznky}UX7|2^(*{aXxlI%$%E?BxwT*$1Z$tn7Gw8RDvYcE zUD;wL$`y)jc{Yi_e8$r;^fIPA(j51kZYhxx9}e$$z1WP0@$fojniwhknDi>WoqqqV zS_j-x_B-NUFOgVMUmQOu!%Dd^p3}3Gx~ohY|xN6MV`>hwl9^}=ck_V-q=Qr!>g(r0nC z@86%!Il3aJanGi!(u<{joPB)|qmoA^=Is-td0#X50JGJM8g%M~0P{c?0~$f)nnJd> zLg?ceoV`MU09@%GwoH5EpbsD=tkuny8>ii#=I7GguYprQZ(qUQLKn>MC!Hs3Rcjhk13SMbr_P?H`eU}kqgZ?=4Cw!#oJMo* z?6GGV;<|tIwXB%_^7?P3`5UbRk||2y&6RpJ!8T4CEDp|=T8Xu*mxN#e1+ya) zcI+c<)`^r>+X9$67)$3;HUmm9*o{@3IX15Ni?kDLfT187|Gudq`s9rCu2w@MCJ}%{ z2?^4HvpPIY;*f(!7zGA`3|!^*M}w8??vOvmC)OtyML~CGV+2PWBvF(MP*`5QSjK^I zaKk|uX?JR1w(DHxxYs8`Z`cVVqAq9hn4SZJ4V+4oQ;wuqe6elFKM7?QpCm4X_^saf z_2LeHZb1q&^ub!-m}pj{J6GiAUD&@Zl7GG{C>mP5GKsk=)2+qsx7ivwY%b{_=-VJ0 zkjT=E+z&iYk)e^wgtpu_M{Rz%x9wh{PCa>`GGqW22G56SYQd1p5#sw8@sm#ZfVEB^ z7r4#}CT_gZ_uiT@HrkSR2u75E@sXpda8ue`h`&SZZ6zCi(&+4GBSEXUbTUrP*B0p! zDW3otUAJx$J`N+xcW<4YIXhE`Jb$dUX>iU&2}9hgVxa9Lqmzd8M{5^?v^@D|8b%KG z*TFK$N!uvO-GCO-X!3tcXDr;(15%b!lO|ZipK5lWDrSa-v0sWXvAL^YwE+uf9=a{5 zp)*ba=PH{)z1|1(*VZdbJo@Nq`VL%0Xq`8l<9ov;#!ZNSoY}bc5K=Q99(b9R!j||P z;61H*g17}s3}|}FyU1&z>f}Ue_=`7<+4PM=DsE&dE0!TfRGo%U3^H*EDCw*hX8?QVX)rLA5c;Hy zH|!XZf^FOxjeyIkaf3-&gm#zAprX=`{{Y)bA0`+e%M2EcBigllVr=Z!;=9&m>9Di!*f_6qkT@K<<_f<8af-ZPn+zzr}n7MiFmAZl@%J#YGiWBWn zL#U4g!2F5SoY>941kj!gt7%Vt3uy5mG-C`Vsb8uu`SCGWz|Y3JDoeVC-O^0s>E@vC z9?N?URd{la>$}Fzu1F73oWYRu3>#AgX#Q55P@4I+FXuypgP(U;FY4eh2D|CZHqW|y zAj=Pleg)dS#OHfm7Ps=HS`l-O8=}O+K2eRCp?_@3{rnqcLgT{?)3*dH%*%SK zbAHdnn}DQ(*3%+KHP{Gz!uAH)S5F3p1{dsHz2yJe%dMMy zH%v=zH_O^hw0DxVc)rj({Z|ScbA;IubRm&B*)6~mj%P@K0Afa-w1hNmGs-txYy6`Y zjZqmhOUQ4GtD)j?)-?CqHYAj)vrE_;mV_yIGA%{7O$&Qe3dkndlQUYp^+m@>;?{i}5?7Ez zjH`je1wMU*w|51jb4^YC0$G&ikUXt+6-qa#WBnfw1|U4xcdAcx_L;(ncZWY;DUvlV z$68pWCGt80YZ{WOmD9h;-N?>3}Qw-qDGGIbQy=!48@N{0+~Mmiza}SR6e*u-f~x2l9N9QlK$C z2_MzcZ$K_{U{1vxTS~G`y#T_L)G#3~#mw0!e0`MAZfDj&7SBV-v~VupXPy^*Ig45k zzO%3a81LPi7HyY(%S=t`V}+@10PIe@X0Znr1kj~au|iSCt0PRwuno8sk1&5rUxN!< z*^E^_arr%UZPgiQj*+Q?TWZ9JZcPtFl3^E|%4iA8HkV^6g-XI~{fEX^au1x`=}H!( zizLrGv1g=qpBc2{)f~;r1pJR~OR_@fu`S&$`+^*LX)_IOV{nyR{?rgP&=&FfB+1kl zode%sZ(Z`0pIfuA>JeJKqeWBl)}3%E`JWP1?Yqi<4tb{X=;M2CFHWp4zx!Fe&O1k5 zj-Rj!`)DG%sh>d@dzM3R`Lm)e#1D!SbVIa|;BaJonvXxVzNQ10q|f*UT`pr=-eRz3 zpLG|78tuqcwB5+|%VXY^i-qOW|MqSNttN>ta%`W4CE~E+6OGoKc(bg%{jb3;wD8E0 zU8Ek}_drwpd^7}u!0X(L9VFs6*1i?J9zVcQ-`0e~7RCog)b~DemO4J6dJv9|$rH6; zUO&P`O>|LwJ`TIFyt+x+Eoi1i(B>KPtsf{{iof-nlR7S!li%X!L11j>#rNbKzD=)? zr##0O9ks#cLEeYDf+i+P`TW)2ziNo~4@8rFMX zc_v-A9U_x9gH6^G%>-Cm()1l=MhRgeym6^nHN%?>rlm)lJt!EfpoX^o6Uk#vPaK{$ zIH-Wj83OEY?r5_^M6M7bz8WmfoaY*8@Q#(!W!W8z(MlNzCZoP+MPM;7oS&72b zMi1}l)mW{JgtcQ)^_$7xX>aPTg>`AC%*5X2@~l*a@>|q^41E60py)!eic6G@w0*9M z3#-MZ>1STD_1+Yy-AEgY~XUSCFECzuMqP%a=Z~qvwuo%ZAj4aB`yQ zB(N1(Ap{CL?+Z^%1(d3xok=oOeo?}gz)Z6egR`ZJq`2Y?yr^}%%tjo%yY5f%tWkic zD+NTITGV69`-Ew9;5#$dw_>K1Tq6iNjo4F)A8x1vxm>02f2FU{v1jxFQsf7w-;NVi zNwmYSe?d9t+l$gWL_GEjM1maVPhyUvz@%DSTL4xPQvY}d;4Pp9j(eDH`i+QPf}_!t z&`rES@o&+XWuCSgr?o=cYsNQMSjU&;bQX1)0bqA zwD^mub(hMbaI4)CpU)R>xiAOK>RJR|CZkQLi7N|iBClHSP_W7v!y=5s#Sc+nyuBPS z`KLEhT%+Idjx|_36W+dxp7EU$P;1x=RL28Am|TdIjGO{6tCRQ&cblxHo>gqUt-H+-9u_byejtt6yMU^7(QBa&(m{und1i-!+ zVpcmLaDDB62#q@(HLuGjlCH$5<97*(z|N7laVFP_-Y~rN zXph9r+*FVF9C1C*RQ99N!PMXtz7;l@+qQ!gp4M5ExSPn%Wc>CBJjTYre|3Ry0$Vo5 zEdV1Tf`;R1)%KHWPd3*IeqZF4wIeE|X5|%=?Vm>A{>|-~i!KOs3kY@mQWBQ17G2A+ zTF>e&`$nd~&hQN1)jv+M;^zlhtW+!OmWOf!7CUg#<*c*1w~+pEe)Xp4tLEi`V{f(oavR9b z9Rc^Dv@(r?SeZpm_ENf1;9Owos}=^JV1szX19HDGxgk7D7p}heP2eh^;HHW7h@c(l zB)PFnK7)*NUIkl{7jLA_^`O)sd&$liKZ7N)Z&SdLV4GJ4A$`6fGchHRnpnWWauEkw zs8gAJyFba9bCaaI74Kf*>7X3*zqwk3ig+u}%g$pqnf9R(@=B|VV>H&fuW{_E7@NF^ z@&9J;Js~|CXl^g`ye$WYNzG5%ZHp!cF>`5(7dPG5RyqI zpN9R(G7xt79`k&>W-dz1@gJOS>h%z>-03a~+9%w>Vdjg^{NXPbY3`5Y&`N2H+m1_n zw*V42Hqo>xLdm?D^D2m~*6`Z)Km1QrIt5Ncwk)8kIV%xEVYg7%AtbW%PV(R3!Z@X{ zL*9g)mwQ08Z|uJe%{AHF6kHSLUXJpkODQon#T*?tz5u^XizE{PaPLCJ>JLZ+{Fi#jS(6A#T6gBb*4 zUpi;VhkeRrha0G7-llbFs7_LW%3M5UJ^Ge8@FL|4~%Yg_G z^iHmGL(IfnlA~svZarj#JePmvbmvmrOTL`M7s~+PqNWJwRBYmWIc5TMI57Wkgv@79 zUn2RM5IkQIR7D|E5){Loq6^$mr5A$RfT?<31zI`74@h)eJ)u?ZU0mIhu$U{h5_S_t zg6B(Wtd)=*&mCFDm8|ba1i;iVeh5)vHg|$E{|GA$Puux@$=6eP+^LxIsI9Y1Ao%^T zyR9lqoF&19?ly&Ne~!05!&M$!VQ`#a$K1w>xHBj^9_)msH~$FqJ+ur5q%>9Om7QM9 z?c{q8lo+bnl?vzDiRdwGc{y7o6tMy1_#a~3&#PSqW<&f8$>ZR{n$8WZBr4(%-I&?; z_zn)6k=BFThAdICd%47V#aqyV0czNdaCO=7q(yw5f5fB8T6$L(G_ArEjnEE_KH(D2 zTi_6=ep=nEP^D$2z1d#6eRQ>@n=`KYN|>n<8Dp9Q`Q6z;coN)&X)w*f&8+5BkU?x# z!w0}^uXvNsyYXXE4g5Fv&lb&s^^qjoB%n!EOnd>$i)MR7fs~~=Yy{to+Nhw4K4xui zS$Pg9LjN6TS`XYIk(JX!aE;>|Lq6G<$S~U?jEpbztYghUIO{@=CHBWOx4=tD-*oJh z6c{Q~@r$;5#7QxeQ&^~ttY?;$KZ@NS6;*&!kp(VXJWds5r)`Wk*VYQB=WUypF+u0d z;+)549U)O|iN;S6Knh+j=qs7jT3GZQS<1C1{~ME%piXe(Fl-mGjY#`xadR?iIc?^b zaT-{g=<|OYGmy*tk2P82b^#-J67H1DKq=Xi+26#_1#I=qxul-zc$-yWXQWJ1;;S;GJn zh%*&kn`v|dpHhi?T9^@`rB|>#c?a1Ldnh?tRHXqn^32}6&5@@kRjE|l#o@s7NJ}ps zAumBObQ7GJf-Vx|Lv{jI2~W#JfL6Im$ek?ux}z2(@4*GxIr0*C)JkM+D=oPMDdJ4w zzkZ~ld{(aM9y-LfOK~pCC5*b@zQ#24AvjCD`Dcgw#gMDxwLFYXG9U5N&U7S{>AEnV z{%W`IA3zgUbUOVwMm_z2X}Z_ib4qk=h_Pe*de%F-KBr>QQm7b(KA1Y%k;K*A7VsgP z{om~~Xv5=r$9<@X@zTc}@Wj=;1WNrB^R~i$6!FB+2jHf0@);NmSms~M1HvHE3Gux| z$y)D{z+Cdv&_?ra7;CrKzA>MBX|>KMI05={h!cEn+)r6SRcn6S5I^(?&4y{NHTZ}u zajn~y?+`b+{{*uzyOMmDVUeO&p#AiHvryla$U`}>Gr9QF?y31G4)t&*v7dltPw(){ z3*rI1lt{5XYNo7E^GF1=A3Il%_jwgD##Hihq;_XY?a*C@XEkgZKLG&rL9#}1 zq+g5oIlm45OuQ>n%y-mN=;YRf)&|=Ak|Odr1%?+p!SfWwG1BlcD6nvUhK4^Hd=!}P zq%^8-Y`;TO1OY-M{B52mrx!uxv!avp750*SaLW{ zbdH+E6PFQJa*L9hiU&CiI{Dy1Rkaueqv*(8_Hay9u;m76UNVl>D8_<-oi%zui3P|X|^0buor=j4Kgj)Rt#K)5h3^t@aQpO|YZtc!)&lqyM#As)*s~z}$)V8UI$&(E8 z%+AvYGhqyko~Ia4<;_n8RltPW#kcVQB_=!*CzSB|wOI*TP*=ap5ze>h+O0Wa67K-Y zBLkmJ~7a|1SIKjkxC!ZAD`cSC{i){MwK3Xfsb~N^$QHF zp2Y#Aq9(3+s~iMj<6HH3qUOxCWtY?kbFdg6cG9>=<5Mya{)Z6VRJwIe4UnUXRuyMb#VtW`>7h0C@##FE!$i_Vu12^e+`Pv=)#AmS4y3y%c%d+`xo}dTurpkXQlT z(UB(n$!UHX{CN3-jl9xL2y=c8X(psXMS5nWFPSKMpFb$T2KG7EoUoGdm{~`sPzn@% zmO&nqUK2d0C}~gKWw92tCZ>5!HZo>Y1;`5%=-&6UG#e?F3x+}Otg@K~i-$;&q1H(B z@i?Qet~+v?Q5nz4ZlgMMdtO*NF)=)Fx^2&XuXrSiJSR~hgn>%o2`kZUMUthL?)%$4 zO2XRvwD>fUd}&!qds|>eJm>>=TX1akO6(B){<;u{5sQ~wz8BPAL_;@}E;>p#ip5Zq z2i~AFuT>{3Znc=<-x5`kF;5ie#T+G;elfHNNTW}lxVZik4!p(IRR%Y;ZX&B+yda&f za|-@igWIiSw|iyCAJj+^0WGooXiSNDTa;1Cz^Y9Ch9x|Nu!wu5IfybS782F^o*11n zGPDU@Cv&i|&PRm_k_i_5ke80LDX7QC;)A|I zsFU2Yd*F4c5?u_Xwob4cUyyo~>6Y^-0n*X?<(3BZ8ahn>;RQ=?DT8VkZUBtz)SVOI z>(d%c4H5ZC>8Uxw11GA1k9Ft)X5>hz1Uo6YtPSAeiY-FLwZ=A9_)Xuy5<3ZeqOg-x z^u5Um7O?VliCg{YR{6`Kc59OiNon*&i~%h~q{HDRynG}*)tG&alt{N-?!)5I{l@u~ z{uQLEU7eUWeJCF$*9Op85?_Ta`NAaE&UazJU@R2O{0o_8ZMh1BotC#BF|P96 zN&^g}sdE~?XoF4w07we$x9(RQN2fxL&upJ4Q()gJwiW<5a~ZDBwhNhAHN7$}UY=+q z1UK5KE!~klO50iSZ1w;TCo*MVMM2@;AKcrP(LOIQoIh6~EsmJ3Vc|vc2wH+XX_@wP z7Y7B%Na&EfxKbr>SZy%_4d3NFlMrl6ooSS|-=Yn33@DCVQ>}roGELm~#juQ#9XE

xz%2u{R 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 ZWMIhHWs=qm%Y5jy5JZFaJ^UvC5ly(i<=OxM literal 0 HcmV?d00001 diff --git a/kong-versions/3.2.2.4/kong/bin/kong b/kong-versions/3.2.2.4/kong/bin/kong new file mode 100755 index 00000000..3e0ecf97 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/bin/kong @@ -0,0 +1,9 @@ +#!/usr/bin/env resty + +setmetatable(_G, nil) + +pcall(require, "luarocks.loader") + +package.path = (os.getenv("KONG_LUA_PATH_OVERRIDE") or "") .. "./?.lua;./?/init.lua;" .. package.path + +require("kong.cmd.init")(arg) diff --git a/kong-versions/3.2.2.4/kong/bin/kong-health b/kong-versions/3.2.2.4/kong/bin/kong-health new file mode 100755 index 00000000..24c10865 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/bin/kong-health @@ -0,0 +1,77 @@ +#!/usr/bin/env resty + +setmetatable(_G, nil) +package.path = (os.getenv("KONG_LUA_PATH_OVERRIDE") or "") .. "./?.lua;./?/init.lua;" .. package.path + +local kill = require "kong.cmd.utils.kill" +local kong_default_conf = require "kong.templates.kong_defaults" +local pl_app = require "pl.lapp" +local pl_config = require "pl.config" +local pl_path = require "pl.path" +local pl_stringio = require "pl.stringio" + +local KONG_DEFAULT_PREFIX = "/usr/local/kong" + + +local function get_kong_prefix() + local prefix = os.getenv("KONG_PREFIX") + + if not prefix then + local s = pl_stringio.open(kong_default_conf) + local defaults = pl_config.read(s, { + smart = false, + list_delim = "_blank_" -- mandatory but we want to ignore it + }) + s:close() + if defaults then + prefix = defaults.prefix + end + + end + + return prefix or KONG_DEFAULT_PREFIX +end + + +local function execute(args) + local prefix = args.prefix or get_kong_prefix(args) + assert(pl_path.exists(prefix), "no such prefix: " .. prefix) + + local kong_env = pl_path.join(prefix, ".kong_env") + assert(pl_path.exists(kong_env), "Kong is not running at " .. prefix) + + print("") + local pid_file = pl_path.join(prefix, "pids", "nginx.pid") + kill.is_running(pid_file) + assert(kill.is_running(pid_file), "Kong is not running at " .. prefix) + print("Kong is healthy at ", prefix) +end + + +local lapp = [[ +Usage: kong-health [OPTIONS] +Check if the necessary services are running for this node. +Options: + -p,--prefix (optional string) prefix at which Kong should be running + --v verbose + --vv debug +]] + +local function run(args) + args = pl_app(lapp) + xpcall(function() execute(args) end, function(err) + if not (args.v or args.vv) then + err = err:match "^.-:.-:.(.*)$" + io.stderr:write("Error: " .. err .. "\n") + io.stderr:write("\n Run with --v (verbose) or --vv (debug) for more details\n") + else + local trace = debug.traceback(err, 2) + io.stderr:write("Error: \n") + io.stderr:write(trace .. "\n") + end + pl_app.quit(nil, true) + end) +end + + +run(arg) diff --git a/kong-versions/3.2.2.4/kong/spec-ee/README.md b/kong-versions/3.2.2.4/kong/spec-ee/README.md new file mode 100644 index 00000000..4e468446 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/README.md @@ -0,0 +1,4 @@ +Test helpers for Kong-EE (integration) tests +============================================ + +See `spec/README.md` on how to render the test documentation. diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/.keep b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/.keep new file mode 100644 index 00000000..e69de29b diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/handler.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/handler.lua new file mode 100644 index 00000000..28839684 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/handler.lua @@ -0,0 +1,30 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +local Sleeper = { + VERSION = "1.0.0", + PRIORITY = 1, +} + +local HEADERS = { + read_body_sleep = "NGX-Req-Get-Body-Data-Sleep", +} + +do + local orig_get_body_data = ngx.req.get_body_data + ngx.req.get_body_data = function() -- luacheck: ignore + local delay = kong.request.get_header(HEADERS.read_body_sleep) + if delay then + ngx.sleep(tonumber(delay)) + end + return orig_get_body_data() + end +end + + +return Sleeper diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/schema.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/schema.lua new file mode 100644 index 00000000..73775a26 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/custom_plugins/kong/plugins/sleeper/schema.lua @@ -0,0 +1,21 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +return { + name = "sleeper", + fields = { + { + config = { + type = "record", + fields = { + + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/expired_license.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/expired_license.json new file mode 100644 index 00000000..6761c467 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/expired_license.json @@ -0,0 +1,16 @@ +{ + "license": { + "version": 1, + "payload": { + "customer": "ee-build-test", + "product_subscription": "Kong Only", + "support_plan": "None", + "admin_seats": "1", + "dataplanes": "1", + "license_creation_date": "2020-9-23", + "license_expiration_date": "2020-09-24", + "license_key": "ASDASDASDASDASDASDASDASDASD_a1VASASD" + }, + "signature": "8229128802796d7a846a6cabf9832af936c39b8ae154b03d49182e4195fd1697cb62cd79b7e7e529eb806b566edd8d5c8833a542363a0948dac31fce57df3a38" + } +} \ No newline at end of file diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_rate_limit_plugins.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_rate_limit_plugins.conf new file mode 100644 index 00000000..ccd27096 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_rate_limit_plugins.conf @@ -0,0 +1,5 @@ +rate_limiting_restrict_redis_only=on +response_ratelimiting_restrict_redis_only=on +redis_host=a-redis-host.internal +redis_port=17812 + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_vitals_tsdb.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_vitals_tsdb.conf new file mode 100644 index 00000000..013d5895 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/feature_vitals_tsdb.conf @@ -0,0 +1,3 @@ +vitals_prometheus_enable_cluster_level=on +vitals_prometheus_auth_header=Basic supersecret +vitals_prometheus_custom_filters=client="client1" \ No newline at end of file diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.crt b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.crt new file mode 100644 index 00000000..9f34c6bc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIC7DCCAdSgAwIBAgIUC0PiBBaFTNFA3luD/clpwRoUiNAwDQYJKoZIhvcNAQEL +BQAwRjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRIwEAYDVQQDEwlrb25nLnRlc3QwIBcNMjMwMTE4MjMyNjAwWhgPMjA1 +MDA2MDUyMzI2MDBaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEAxMQY2xpZW50LmtvbmcudGVzdDBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABFKUjxEsR1ptgCiI+hQuBWckro5Ye9JByU6U +w/jm6SLwrKkPI6h21h5+6XKvVjIli0JDbKBQmgqpI/ljVfOWR/2jgZMwgZAwDgYD +VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFPQ7r0wfD9hBwP6d6xuG0wP5e1Q+MB8GA1UdIwQYMBaAFMrYLDOz +YFEPdpBvVrY50diVTTEDMBsGA1UdEQQUMBKCEGNsaWVudC5rb25nLnRlc3QwDQYJ +KoZIhvcNAQELBQADggEBAKc+h5jywEdjkPGnP0chG5pWiHRrB3W2Vv3Qg2mVqanh +4XTePNaovxLsjdniYwV2DUHvak3bW2SZJYBkwsdWyVqpJUPsWT+l2r0/Onzu1TwI +Uv4EYnfF8PNsXv6aPp0d+ufabzMmfAnVDDxBCkagHSOEndqsMiowgiLMxV331PoY +bq0w2v2TBK68tvN9dByBvaPO+lqc+1eKAgI0oaF2PahvWuuGAR6xQQ4hzP0X9KuA +MRqfi3OrOgqblxMLA54Uu60dNRaGCU2hecGB1nZNbqCX79goC9YMtWY5Et9Zr/ZP +6AzQiV7SSp3B/hycWrEkPMHk1EvKVlbcpVWKpdvlVxo= +-----END CERTIFICATE----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.key b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.key new file mode 100644 index 00000000..b00441c5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/client.kong.test.key @@ -0,0 +1,6 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIJSbICO7kV4+Js3KMmYIdi97ZuUIPbnRkZXUuKIn7XzeoAoGCCqGSM49 +AwEHoUQDQgAEUpSPESxHWm2AKIj6FC4FZySujlh70kHJTpTD+ObpIvCsqQ8jqHbW +Hn7pcq9WMiWLQkNsoFCaCqkj+WNV85ZH/Q== +-----END EC PRIVATE KEY----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.crt b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.crt new file mode 100644 index 00000000..9a4e179d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIC6DCCAdCgAwIBAgIUFh5XOK+C6w2Ys9xvBiDb/J29mzwwDQYJKoZIhvcNAQEL +BQAwRjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRIwEAYDVQQDEwlrb25nLnRlc3QwIBcNMjMwMTE4MjMyODAwWhgPMjA1 +MDA2MDUyMzI4MDBaMEsxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEXMBUGA1UEAxMOZGVueS5rb25nLnRlc3QwWTATBgcq +hkjOPQIBBggqhkjOPQMBBwNCAARjodkyL3brvBVWKW/chtT8cYMlcK91FrGb5qsF +HzIQv4QvHrWqBdpI1E97wpG1az8QqZjYG+zTY/4qQMgKFqx9o4GRMIGOMA4GA1Ud +DwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0G +A1UdDgQWBBT0JOdoKQ/7oAD3osEyzfG+E2j76jAfBgNVHSMEGDAWgBTK2Cwzs2BR +D3aQb1a2OdHYlU0xAzAZBgNVHREEEjAQgg5kZW55LmtvbmcudGVzdDANBgkqhkiG +9w0BAQsFAAOCAQEAJ+cN0sHdSzEQ0TDA4soe7HNO+h0xI3USvH+xi8IHIoJe9iXo +AwZQqjKTCf8YUJAE0g8coG52nF+07rVDrapqRFvtdJcrYswJXyK8Pv6OGkOsDDnF +B6czFsDfNhdKGqM0Ic9rUOR6hZqiFM68s+KRI8w02LNLtg1qKwL/83x/+olLWaef +rnH2XLuj4zpyAnfR6m6hB3zTi0ubFhfRswDzEprMMYb9sWfAnKZNByn1/K1ViS+X +LS2C6pEXU9Q5QCKribL0S2hizzKE9urLsJBISQkpaSKPFgdWl0xmz8p3x4jNE9B1 +QPSIfY5weguStTSd/NBvzELwxF3m/c+PKnwXLg== +-----END CERTIFICATE----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.key b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.key new file mode 100644 index 00000000..c63a2e18 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/deny.kong.test.key @@ -0,0 +1,6 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEICpD8KuHRdP9Ak04Yv8DHrHmkPLM7k52UCYxkO9fqgwFoAoGCCqGSM49 +AwEHoUQDQgAEY6HZMi9267wVVilv3IbU/HGDJXCvdRaxm+arBR8yEL+ELx61qgXa +SNRPe8KRtWs/EKmY2Bvs02P+KkDIChasfQ== +-----END EC PRIVATE KEY----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.crt b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.crt new file mode 100644 index 00000000..31cf620f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDXDCCAkSgAwIBAgIUOuMoLPNQa+SQo2HpPRCMPV/1SlkwDQYJKoZIhvcNAQEL +BQAwRjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRIwEAYDVQQDEwlrb25nLnRlc3QwHhcNMjMwMTE4MjMyMzAwWhcNMjgw +MTE3MjMyMzAwWjBGMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcT +DVNhbiBGcmFuY2lzY28xEjAQBgNVBAMTCWtvbmcudGVzdDCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAL4zf3FFaKKktKe9tziQBItYgEKB1RhUFJxKDT2X +NugZQI7Cvyjeb9kr+oeFJhl2LxLhBNv/6+q2dqOz7Ia3Q6SCp5P2YbF0TIZ7DfjP +ArXx5Ft17rgCyMg0EnvTU4OoZe/9QbOUVzlWyvGtXZCKCgoPkNApLGuucZE0+h7l +RSdDbximtmGgg0j6KRtxme5GV8uPYb9yXV0fJdqX/eFYcj07RPBv2ApesZih2Ybi +VCDrLmDRHb/TYBX82e2M/3AQvuDOyIsDYrvFJEModZGKleOL3qO/fXfPe5kJ99/v +8PFrM/F4w8dw72A3VU4pxctBkzvwJECcPkLaYZhvQsKY6RcCAwEAAaNCMEAwDgYD +VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMrYLDOzYFEP +dpBvVrY50diVTTEDMA0GCSqGSIb3DQEBCwUAA4IBAQBMnvmz+aGDfiWr1wj8nhRz +aB5rBnRAUKcoJnnLL2++dlZfFVXXe7E0Qr4AulIy9mr+zpFpIzMMCmSMhKnOtYoS +uPsex4BqaNP/xQCIjfIQ17bv5ahtMpd9RkXqM/djVPhhadUJqtz3demkqe+tOqfY +RIOP6x5cv0bvY3ezQfSYHKhNP3cx0qHEaIgDevgb1lxpkyPvRigr09ZmI9a6MD6F +M7XdbQf2Gb2HX9kcL4FJw2LqzL9LADtK7RxvipCsgdW04xe1GonMr0z0xIajEb3K +1ZPyl3R04HRz080Ft3OqPRmiSBOAZJFIybRKWLx8gZ1Gh2Nse6w4QNsq5+r6rlDZ +-----END CERTIFICATE----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.key b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.key new file mode 100644 index 00000000..43b394b2 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/kong.test.ca.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+M39xRWiipLSn +vbc4kASLWIBCgdUYVBScSg09lzboGUCOwr8o3m/ZK/qHhSYZdi8S4QTb/+vqtnaj +s+yGt0OkgqeT9mGxdEyGew34zwK18eRbde64AsjINBJ701ODqGXv/UGzlFc5Vsrx +rV2QigoKD5DQKSxrrnGRNPoe5UUnQ28YprZhoINI+ikbcZnuRlfLj2G/cl1dHyXa +l/3hWHI9O0Twb9gKXrGYodmG4lQg6y5g0R2/02AV/NntjP9wEL7gzsiLA2K7xSRD +KHWRipXji96jv313z3uZCfff7/DxazPxeMPHcO9gN1VOKcXLQZM78CRAnD5C2mGY +b0LCmOkXAgMBAAECggEACYfjFvX3bE78jns/NyJgV+szYiHHX9S2w64iQ7fUFIVP +atfvZEjhKey+PRQ6+IOnkDaeW7fTRoumHkXh0E5WoWO6qftqoc3GF+cKqDEXXa6l +Vr/uGmJpVT7mvjW0taA2m3QBWtJQHJtwx/N8AMYqAp8NDqFBjJPNNQ2Giw3KDVGJ +k/dbG2vtIj6aMc7ut6UedReUDpOW1HoDsro9RxKRX4ypVQRMzPRM8VWPtONpku8G +5NrBsZoJSGcCo92Ltwy8JiQokBA3ZHdEU2sFFS9IHlfhWu8TLwru+zkMMcifII+c +p/G4fU9lgJYPA2ARKSvl9+cC25vI/HZcXp71TsftgQKBgQDqYmjD5QnM7xwPyxgw +pTFiAZnPIvlZppsXZ1uhsFwnojHNDo6gfGkXZjz7LnnnsrDPHohOi6YphZvuNE3D +T8NkgaoBHPWGQ/QwDZE36+9V7xrwa1jiqWdmiC0ryQVn310CqiZGa4NpFrdhbsFq +/cTeWjgArZIilHkY6xLG9REj5wKBgQDPvfbs+CSLdpM6pWMJW33guZYRWhVvmIQK +9lvaX8UQwTtKOf8Ccr7jCLo5hCFzG4zcTlEHnUd+F18f4mRfoGxI/2R9gzJizpry +wLYSSeeK+b346hoLhKc5EXveRBDRUcOS6UfaqtNsuDpy+zsZiW3Od1BmuN/3fcmt +UR3Qex1rUQKBgH+DBkf8pPZO509YSFK+rD0LbegYuNsjHqD+5AT0803EmZ9bWhDJ +XksSnf5w7HU266XikHla1A0m2QwgfGXTUROuzxRH8vMWqRQzbVulCdIQgPFnFTZK +vywyzZBSjpRSGkHG24fYGefkKePh42wXnzDwmCMWSrhxWehKiy6eSLLlAoGBAMFN +rFS4WZkEDt+FQXBVl/3h8sfWoRekPUnOD45VixOaGkdpS+bFSuYLGu2mC1IGkr30 +ieWh7gJgUP1kNa3doqUSMDmyONJEGV5E/6Zo6nEhDipt+yo4lzm9ERuzDksX3/n1 +5AyO5AjILGsNZuLORETYNRJAePbcLyt8zVdPGALhAoGBAIhgcrmDbgjteeuo31qg +HJXkEBSKdWS44JnLfMfl86pF8RY/3Pi98JqL5IA0qBgWxmL6OUMpXMZOjJIkn2Su ++5YlNlbElCEERm8Leopo50Z/S/7OMzMKWHXgnj/0k1LaxO2vAytqPLDbIYyCr+7w +OnJrCl23GuoSTOk34ibL3S7H +-----END PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.crt b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.crt new file mode 100644 index 00000000..485b4640 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIC4DCCAcigAwIBAgIUBiyvfYNDTho/aBcrEZoQ5rdE9v4wDQYJKoZIhvcNAQEL +BQAwRjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRIwEAYDVQQDEwlrb25nLnRlc3QwIBcNMjMwMTE5MDA0NzAwWhgPMjA1 +MDA2MDYwMDQ3MDBaMEcxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzETMBEGA1UEAxMKb3RoZXIudGVzdDBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABNAor5xiXRFBmtcS0DLm8EUaObDQIZP19WzCKt2PLXyS +mErLiI9NXFGR9BLjIXsmRklf7IOCKO6pw08x2vYP42CjgY0wgYowDgYDVR0PAQH/ +BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O +BBYEFJv7fXcaZ+Qg90Dyr++puZvSBeZ/MB8GA1UdIwQYMBaAFMrYLDOzYFEPdpBv +VrY50diVTTEDMBUGA1UdEQQOMAyCCm90aGVyLnRlc3QwDQYJKoZIhvcNAQELBQAD +ggEBAK6ttR7DgFdE5wL6iks01yTcyGmLOIFYd+pWNPlqsDbY50FqZz4ES2lFZiu3 +ml3bOzXIkt4cEL2Ali3f78h/Qz+t2ue9GCqbuz8MiGtmzpFiMaNw4OQQtfBmmRcv +0Za/sBqvdqe04W7FFNnUYlzR5TG68n+deaI1ECK/I7bdeF+iAOshZn7NA/9ObQtc +/1MIOkeknY0VD2aARkGBBc8WXeOM3ZWnzpkmM1xRX5SdsHO5ABNBjsd1HyUKbwO1 +EnaHBQgS2WfRZecmFqAGKqJT94yj3fJALlHleiI5yxvmeaHkX6Qe80l3g1nzNnEV +49IgLj1KiFOstLi/9NGWPPKn5Ac= +-----END CERTIFICATE----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.key b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.key new file mode 100644 index 00000000..b7cd5044 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/other.test.key @@ -0,0 +1,6 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIEcfRJyD43xdzLtm2zu9O2I4Gc1dgWClsQHUGRj11TUOoAoGCCqGSM49 +AwEHoUQDQgAE0CivnGJdEUGa1xLQMubwRRo5sNAhk/X1bMIq3Y8tfJKYSsuIj01c +UZH0EuMheyZGSV/sg4Io7qnDTzHa9g/jYA== +-----END EC PRIVATE KEY----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.crt b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.crt new file mode 100644 index 00000000..40db9ae2 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIC7DCCAdSgAwIBAgIUbIesJK6G+cSeGC5sPOB19EpLi1EwDQYJKoZIhvcNAQEL +BQAwRjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRIwEAYDVQQDEwlrb25nLnRlc3QwIBcNMjMwMTE4MjMyNzAwWhgPMjA1 +MDA2MDUyMzI3MDBaME0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UE +BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEAxMQc2VydmVyLmtvbmcudGVzdDBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABHTTPmOTHh8kPrGs4bfgyeM7HaMjAflXeRM+ +pOXXBXZNa5pD52UV8NkB4QzXsSixLYXeuPrpMB0/k6UpYD9Ne1mjgZMwgZAwDgYD +VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAw +HQYDVR0OBBYEFOmB/rv752qDKbJiVQSl+cevDB9EMB8GA1UdIwQYMBaAFMrYLDOz +YFEPdpBvVrY50diVTTEDMBsGA1UdEQQUMBKCEHNlcnZlci5rb25nLnRlc3QwDQYJ +KoZIhvcNAQELBQADggEBAB1kwS9Mbe5HdqJNBnKeSsbDaXst1FmoPIilCEm77jc7 +2PCywxLwelSiHr4eqKopbc5B3lX27eqW6fnyHxL0cazIdUfKf1e2A3MKeQ0lzl5B +BNN6Rrde0Y5QVfnmWNTJxeJO1Sh2ewdlmDyWEPLzV8BLGm3wtcCLmhs/VN0+Cj4n +58avNrkJztRyjf9AxVObSH1BUCP67IlUUpgBSF4PCynoyCq0bpoox9UHV9sdI2Y3 +p3ci5KZpD/PF9coDas+pM+/o6vpgbR5vI7/G4LGF7BDmn5eXk60RZQBKO3IrUpvv +XJmYWeviI9CZINGtkFZqBCvYNkoyalNeEHDNhhJsbpc= +-----END CERTIFICATE----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.key b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.key new file mode 100644 index 00000000..5acedffc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/hybrid-pki/server.kong.test.key @@ -0,0 +1,6 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEILAtN8/p8eAdPDnaKP2Z8RF9izmj41ToELVEh67jnsMnoAoGCCqGSM49 +AwEHoUQDQgAEdNM+Y5MeHyQ+sazht+DJ4zsdoyMB+Vd5Ez6k5dcFdk1rmkPnZRXw +2QHhDNexKLEthd64+ukwHT+TpSlgP017WQ== +-----END EC PRIVATE KEY----- + diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_cert.pem b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_cert.pem new file mode 100644 index 00000000..f40836e3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_cert.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmYYPKcMZWEp2RUX0bEwN +2rLDWHb10cM0+yQRE/O4eyFRrgCxdDnXY0yBcpkMHRxZHNmsktVJ34U8HzScsGRc +xbEIWGJEhs0Lj6RM0/YxRNwtUu8JwgzhxTpiXN4vya16WmSF4or4C5dvLPHKHzB0 +fNKJWrRtcOsP4ZxWmhj0kjT2YoAQiR+9r5I1HgbPMoJhS/PVevSypYrH83iB1slu +LegBkrmaif81O9E+sWMQkyyCgYXa1OplIRZdUkyPY4Alvs9WDFgYKJanBXab2Oql +WjzcfNX9t/hmc4KpFOzL7IkELintw2l8owMUSVxbaTSV1TRejhMX9jxLqPGJyM7U +DwIDAQAB +-----END PUBLIC KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_key.pem b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_key.pem new file mode 100644 index 00000000..116c6559 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/crypto_key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAmYYPKcMZWEp2RUX0bEwN2rLDWHb10cM0+yQRE/O4eyFRrgCx +dDnXY0yBcpkMHRxZHNmsktVJ34U8HzScsGRcxbEIWGJEhs0Lj6RM0/YxRNwtUu8J +wgzhxTpiXN4vya16WmSF4or4C5dvLPHKHzB0fNKJWrRtcOsP4ZxWmhj0kjT2YoAQ +iR+9r5I1HgbPMoJhS/PVevSypYrH83iB1sluLegBkrmaif81O9E+sWMQkyyCgYXa +1OplIRZdUkyPY4Alvs9WDFgYKJanBXab2OqlWjzcfNX9t/hmc4KpFOzL7IkELint +w2l8owMUSVxbaTSV1TRejhMX9jxLqPGJyM7UDwIDAQABAoIBAGYDarf5aDH+6LAH +V+9OajZUavGxuo50BBSNVrvHS2KmNTxGQaRVewYEpE+d2yrM13oQOlgnWjsosVab +AzNCvVKv3De+tIJOZcxBBLwj74EuPP/KztUe8ja4IPxMt7xvhcni2gQ7C6/IJJvc +3s3yyLTYwWSAV+iciaUE2Zbz1i//8etfTARBK49fPdULoFPhwEe2eivJgDj842xn +s/Wc/rhU/HCjnKVbjZ8IHBbQowsMkJ54xMMmYYCRq+Bsr+mgg0nyeDUHsvlxMm6K +3dGEFQ5qHPPPzxV/65d3e/u6O+/00lMTY4glugNocutyaOVljc2wpqY8JYow83yZ +7aim+QECgYEAyM25BFpjoKkEkIXphppRM5odl33GOhcBhQyEHBDkq5yrSHM0LQmg +Obm2uJIDAyCylVj4RSOmBZkISc3S4pzLjt+FowLYRmyrKH9s1kfu6DMq0+swE2+P +oGcGC7eO2c3+ho8RCypArDH9/VpaMzWTo90lqu6l9oYs1xAqaxQ46yECgYEAw7lP +w2KNpnahIRO+cUDrGt/onoZ7vSIg+RtTfLcY9bP+N7bn5eONmAEMC1ZY6rHlh5sb +Q0Z+Zw/s5RyJ8d7+QRPhBk3bGgilYBj+q77TNWnbG5qsUUqOD5TgA0e+i19diqAf +K/EqfproaXgo0AAwRPqVIXzwG0NkYRIgb/qniS8CgYByZxKT8lN0gxcAp+qmL2E3 +/wQA/T1kdxr8jGbv/ofpZfcH7eq6BhPtD2uUuEtTCtvzzp6T9X1vDwLz2Xnedepb +WemvN720UdEp339Ije8FB7HMzt+zEwpHHqsJHekbGgt66iORst7pvAmywDlHl6yn +3STKv/B6BXOii6k/HGRZQQKBgQCKUjCYuNG6zyPYqIdyqpp9B7jyL8DLTY9X/YPn +I88z9dy3q0AAK+0pe7PzXza/xrGcQHXn+a3jUFHvKVgj46B0hYQGXId3wpx9aayx +286QdRswSwN0/+eeA2y9ZLq47NDC456kA3AwwXF2+EB/n2J9nUo/vHhEDECoiZL7 +EH3OaQKBgQCbEpR5Z3jTAF2i8lQY2vSUuzPxy8nIWVtldLoAIQL19GidRRtSkFZa +Kl09C+BYNqzpNCw0G7VJx9se2u/JkcuZHBOMg/nHtVHXpUETXf/YrAB6pF7bbZzM +mwtea0ZgW5t/nII9X2VqRtRaW4wy85GqA8YiTtfT5Dku7YSBH+GlnQ== +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/key.pem b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/key.pem new file mode 100644 index 00000000..f881e008 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA2q4Xg7nrWYhwU3xMlIValpB/BkdWEkoOluk1e7U5elXEITkE +UaXm8BzLU+PU0yHiqWe5s1wiceaEXNvpwgVDhpzisBMutmpoxEnVMNC+n6LS1IIO +dup6NbhPD/zI+2wJD9YD40kmHEtpoUR1ZrRIitrkP4S+iKamVhKRxAVvZqEfftEp +aDwN+V9YlXbSGFMPC/Hkjsi3WkynS9BMl0GDH7k7qFr5SDxkCZiL7MvgQrrIrB1m +YhOF7HNmiWTOlbX7qbitw/H3vvnZzPz4RDloPti51c22dRTredvEdE+PYpwSrzkX +ESuQwxLJGT9LUENHXJUWtWp6i2uav1KIHbWzUQIDAQABAoIBAGWj9z/9oTs7JGJZ +asq5dNJ4lOHZNFNJ4qAYAwjdwbpvtLpwYuaEQuOlrofuZFRB8rUkhfasw0HHkAwN +FwhcI/ekYeTO9a5JpSpe2t1WmNNf/bhSPuDcuTLQ2Maois35d/jJU4NH05PhJVaU +mDDFaNZJST+QtnKTasqk1OWUVSQQsa6MBb6TYuGJ8sj83eT6S0q+XTPzNFLemhPM +WGyo/B76ZjLKBv38WqWS+zgQngVBgSm9EFicH0xBJSzEOYU06G2clcyCKYzqB+z4 +8ZPJB848D5kvOiU+IfM6K+GMh9r78I6KPVoC7MrknN7z1Sg5SwXiwQCz34F+3IDu +HYSW+DECgYEA8hhUwnjY3HFqz4Bs771H/wSmNGDdHNzX8hEeOBhtRpJBuAHcqXW4 +EwZXRFij0MUjdm64jqJAgpKzp4hnErZroJUsmlAC2oFqqPBPicD/dTZFE9xBr3Iv +ndgpkdockL3GyRl6ju1+b/+AT3LlTeL+jJPROh2UYKpDT85unbiz8A0CgYEA5z15 +2ml7gMIL4Szo0JC19aOXXCbS4mu/tzwJZ/c9pvEJCiqOECbvHJAR/9cWvR9IhSIw +Cd3BjMoeIUQyMuWqZuRmQxht93AScMApxF0ZkCOhhmo9fvGMEOIUXbfap6XVwOdR +KRxwHX8Kf1WupPjmeX2Xa9jaKJeXqkEv5ws0O1UCgYEAsArRV7jYuTQgH1Ob45kY +SXDwCxaEswBEZ1nbR587lx2zfEKeWvunJu5tdt2eAanY574LpmyFzG0xBppBmXHd +QaA4Ft4ntQx2qvJUZC9bk7gq8w4vFY1K4tTVJaIdM4NMkd9dJ6G7V2XLv/oklEaE +I2U5t7DavJAS8m2CMl6lOeECgYA/6rM61vtHTNvBwwsbU1SocC6PTz/tTAEzIcor +zaBh+7AW+kpIVqqzR3NiN07WucXu3tNOdthgFSIc6d/CR89BH5LQqvkCcxz1w3gI +Cf/d4qtsHwOeih/ALu2YNhCfVGxwJMA/T9gBnzMEnWdnvFDgdgGb0tYCcFyAuAII +qAUo/QKBgQCXlyLVOeyHobmWb2qaoXqUXbnKMImEz5CHqFNr0zYzG1AgSC1Fa/2W +FTNqF6lSzCAIyDZ2r8DOqKHjohOYjrMtmFRF0Y8+YFFh40VKwDLRmwLJYmEanZ9r +5rVqmejnImL2BYTQntzxbWs075wzojWuf3KG2l2TPo076cfrrx70tQ== +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/pub.pem b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/pub.pem new file mode 100644 index 00000000..d24914f5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/keyring/pub.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2q4Xg7nrWYhwU3xMlIVa +lpB/BkdWEkoOluk1e7U5elXEITkEUaXm8BzLU+PU0yHiqWe5s1wiceaEXNvpwgVD +hpzisBMutmpoxEnVMNC+n6LS1IIOdup6NbhPD/zI+2wJD9YD40kmHEtpoUR1ZrRI +itrkP4S+iKamVhKRxAVvZqEfftEpaDwN+V9YlXbSGFMPC/Hkjsi3WkynS9BMl0GD +H7k7qFr5SDxkCZiL7MvgQrrIrB1mYhOF7HNmiWTOlbX7qbitw/H3vvnZzPz4RDlo +Pti51c22dRTredvEdE+PYpwSrzkXESuQwxLJGT9LUENHXJUWtWp6i2uav1KIHbWz +UQIDAQAB +-----END PUBLIC KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_distributions_constants.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_distributions_constants.lua new file mode 100644 index 00000000..84a4af59 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_distributions_constants.lua @@ -0,0 +1,71 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local c = {} + +c.plugins = { +} + +c.featureset = { + full = { + conf = {}, + }, + full_expired = { + conf = {}, + write_admin_api = false, + allow_admin_api = { + ["/licenses"] = { ["*"] = true }, + } + }, + free = { + conf = { + enforce_rbac = "off", + -- XXX need to keep this alias to enforce_rbac + rbac = "off", + vitals = false, + anonymous_reports = true, + portal = false, + event_hooks_enabled = false, + -- NOOP (unset it) + admin_gui_auth = function() end, + }, + allow_admin_api = { + -- Allow these granularly + ["/workspaces"] = { GET = true, OPTIONS = true }, + ["/workspaces/:workspaces"] = { GET = true, OPTIONS = true }, + }, + deny_admin_api = { + -- Deny any other + ["/workspaces"] = { ["*"] = true }, + ["/workspaces/:workspaces"] = { ["*"] = true }, + ["/event-hooks"] = { ["*"] = true }, + ["/event-hooks/:event_hooks"] = { ["*"] = true }, + ["/event-hooks/:event_hooks/test"] = { ["*"] = true }, + ["/event-hooks/:event_hooks/ping"] = { ["*"] = true }, + ["/event-hooks/sources"] = { ["*"] = true }, + ["/event-hooks/sources/:source"] = { ["*"] = true }, + ["/event-hooks/sources/:source/:event"] = { ["*"] = true }, + ["/consumer_groups"] = { ["*"] = true }, + ["/consumer_groups/:consumer_groups"] = { ["*"] = true }, + ["/consumer_groups/:consumer_groups/consumers"] = { ["*"] = true }, + ["/consumer_groups/:consumer_groups/consumers/:consumers"] = { ["*"] = true }, + ["/consumer_groups/:consumer_groups/overrides/plugins/rate-limiting-advanced"] = { ["*"] = true }, + ["/consumers/:consumers/consumer_groups"] = { ["*"] = true }, + ["/consumers/:consumers/consumer_groups/:consumer_groups"] = { ["*"] = true }, + + }, + -- deny a particular entity (and related api methods) + -- deny_entity = { ["some_entity_name"] = true }, + -- disable running of enterprise plugins + ee_plugins = false, + } +} + +-- This is a flag is being used to indicate a generated release +c.release = false + +return setmetatable(c, {__index = function() return {} end }) diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_feature_flags.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_feature_flags.conf new file mode 100644 index 00000000..dacc0a93 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_feature_flags.conf @@ -0,0 +1,4 @@ +foo=on +bar_value=42 +baz = off +multi = kong,strong diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_license.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_license.json new file mode 100644 index 00000000..9b165065 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/mock_license.json @@ -0,0 +1,14 @@ +{ + "license": { + "payload": { + "customer": "", + "product_subscription": "Enterprise", + "support_plan": "Silver", + "admin_seats": "5", + "license_creation_date": "2018-01-01", + "license_expiration_date": "2099-12-31", + "license_key": "0014100000LyLlf_00641000008di8T" + }, + "signature": "LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tCgpvd0did012TXdDVjJyL3J6aHlkL2I4OWdQTzJXeEJDNXc3Zk15TlFpMFRnbEtkWFFJTm5Dd3NMY3dNdzh6Y0xTCnhNelV4TUxjMGpMWjBDakpNdEU0emRna05jblEwdExJd2lBcE9TMHQwU3paMk5BbzBUVEoxQ3pOcktPVWhVR00KaTBGV1RKRkZhSjd2SWUrNVA0cDIzRzZUZ05uRHlnU3loSUdMVXdBbXNzYVo0Wi9HalhZRmhXTEhlNnZhOXlabgp1OWJVeVRaT3kxOGI3WDFyMXFrVlltRzdObnN3L05OZjBLK2xYc3BaYXhjNldhSi9hdUw1aElaTEowdVk1dDZkCmI3cW9VUEQrVm5ZQQo9ZnV1cgotLS0tLUVORCBQR1AgTUVTU0FHRS0tLS0tCg==" + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.json new file mode 100644 index 00000000..422d10d9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.json @@ -0,0 +1,153 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore3", + "license": { + "name": "MIT" + } + }, + "basePath": "/v3", + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pets": { + "get": { + "summary": "List all pets", + "operationId": "listPets", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "How many items to return at one time (max 100)", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "type": "string", + "description": "A link to the next page of responses" + } + }, + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "summary": "Create a pet", + "operationId": "createPets", + "tags": [ + "pets" + ], + "responses": { + "201": { + "description": "Null response" + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/pets/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/definitions/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.yaml b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.yaml new file mode 100644 index 00000000..f24edd9a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_host_v2.yaml @@ -0,0 +1,699 @@ +openapi: '2.0' +info: + description: 'This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.' + version: 1.0.0 + title: Swagger Petstore + termsOfService: 'http://swagger.io/terms/' + contact: + email: apiteam@swagger.io + license: + name: Apache 2.0 + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' +basePath: /v2 +tags: + - name: pet + description: Everything about your Pets + externalDocs: + description: Find out more + url: 'http://swagger.io' + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user + externalDocs: + description: Find out more about our store + url: 'http://swagger.io' +schemes: + - https + - http +paths: + /pet: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + put: + tags: + - pet + summary: Update an existing pet + description: '' + operationId: updatePet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '400': + description: Invalid ID supplied + '404': + description: Pet not found + '405': + description: Validation exception + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + produces: + - application/xml + - application/json + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + type: array + items: + type: string + enum: + - available + - pending + - sold + default: available + collectionFormat: multi + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid status value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: 'Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.' + operationId: findPetsByTags + produces: + - application/xml + - application/json + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + type: array + items: + type: string + collectionFormat: multi + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid tag value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + deprecated: true + '/pet/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + type: integer + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: '' + operationId: updatePetWithForm + consumes: + - application/x-www-form-urlencoded + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + type: integer + format: int64 + - name: name + in: formData + description: Updated name of the pet + required: false + type: string + - name: status + in: formData + description: Updated status of the pet + required: false + type: string + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + delete: + tags: + - pet + summary: Deletes a pet + description: '' + operationId: deletePet + produces: + - application/xml + - application/json + parameters: + - name: api_key + in: header + required: false + type: string + - name: petId + in: path + description: Pet id to delete + required: true + type: integer + format: int64 + responses: + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + '/pet/{petId}/uploadImage': + post: + tags: + - pet + summary: uploads an image + description: '' + operationId: uploadFile + consumes: + - multipart/form-data + produces: + - application/json + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + type: integer + format: int64 + - name: additionalMetadata + in: formData + description: Additional data to pass to server + required: false + type: string + - name: file + in: formData + description: file to upload + required: false + type: file + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/ApiResponse' + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + produces: + - application/json + parameters: [] + responses: + '200': + description: successful operation + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: '' + operationId: placeOrder + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: order placed for purchasing the pet + required: true + schema: + $ref: '#/definitions/Order' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid Order + '/store/order/{orderId}': + get: + tags: + - store + summary: Find purchase order by ID + description: For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions + operationId: getOrderById + produces: + - application/xml + - application/json + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + type: integer + maximum: 10 + minimum: 1 + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid ID supplied + '404': + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors + operationId: deleteOrder + produces: + - application/xml + - application/json + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + type: integer + minimum: 1 + format: int64 + responses: + '400': + description: Invalid ID supplied + '404': + description: Order not found + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Created user object + required: true + schema: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithArrayInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithListInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: '' + operationId: loginUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: query + description: The user name for login + required: true + type: string + - name: password + in: query + description: The password for login in clear text + required: true + type: string + responses: + '200': + description: successful operation + schema: + type: string + headers: + X-Rate-Limit: + type: integer + format: int32 + description: calls per hour allowed by the user + X-Expires-After: + type: string + format: date-time + description: date in UTC when token expires + '400': + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: '' + operationId: logoutUser + produces: + - application/xml + - application/json + parameters: [] + responses: + default: + description: successful operation + '/user/{username}': + get: + tags: + - user + summary: Get user by user name + description: '' + operationId: getUserByName + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: 'The name that needs to be fetched. Use user1 for testing. ' + required: true + type: string + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/User' + '400': + description: Invalid username supplied + '404': + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: name that need to be updated + required: true + type: string + - in: body + name: body + description: Updated user object + required: true + schema: + $ref: '#/definitions/User' + responses: + '400': + description: Invalid user supplied + '404': + description: User not found + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid username supplied + '404': + description: User not found +securityDefinitions: + petstore_auth: + type: oauth2 + authorizationUrl: 'https://petstore.swagger.io/oauth/dialog' + flow: implicit + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header +definitions: + Order: + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + User: + type: object + properties: + id: + type: integer + format: int64 + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Category: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Category + Tag: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + category: + $ref: '#/definitions/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/definitions/Tag' + status: + type: string + description: pet status in the store + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string +externalDocs: + description: Find out more about Swagger + url: 'http://swagger.io' diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.json new file mode 100644 index 00000000..a961305b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.json @@ -0,0 +1,148 @@ +{ + "openapi": "3.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore3", + "license": { + "name": "MIT" + } + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pets": { + "get": { + "summary": "List all pets", + "operationId": "listPets", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "How many items to return at one time (max 100)", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "type": "string", + "description": "A link to the next page of responses" + } + }, + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "summary": "Create a pet", + "operationId": "createPets", + "tags": [ + "pets" + ], + "responses": { + "201": { + "description": "Null response" + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/pets/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/definitions/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.yaml b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.yaml new file mode 100644 index 00000000..6a08cc0d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/missing_servers_v3.yaml @@ -0,0 +1,107 @@ +openapi: "3.0.0" +info: + version: 1.0.0 + title: Swagger Petstore + license: + name: MIT +paths: + /pets: + get: + summary: List all pets + operationId: listPets + tags: + - pets + parameters: + - name: limit + in: query + description: How many items to return at one time (max 100) + required: false + schema: + type: integer + format: int32 + responses: + '200': + description: A paged array of pets + headers: + x-next: + description: A link to the next page of responses + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + summary: Create a pet + operationId: createPets + tags: + - pets + responses: + '201': + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /pets/{petId}: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + schema: + type: string + responses: + '200': + description: Expected response to a valid request + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Pet: + required: + - id + - name + properties: + id: + type: integer + format: int64 + name: + type: string + tag: + type: string + Pets: + type: array + items: + $ref: "#/components/schemas/Pet" + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.json new file mode 100644 index 00000000..1703cd7e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.json @@ -0,0 +1,154 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore", + "license": { + "name": "MIT" + } + }, + "host": "petstore.swagger.io:9999", + "basePath": "/yeeee", + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pets": { + "get": { + "summary": "List all pets", + "operationId": "listPets", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "How many items to return at one time (max 100)", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "type": "string", + "description": "A link to the next page of responses" + } + }, + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "summary": "Create a pet", + "operationId": "createPets", + "tags": [ + "pets" + ], + "responses": { + "201": { + "description": "Null response" + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/pets/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/definitions/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.yaml b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.yaml new file mode 100644 index 00000000..5a6628ce --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2.yaml @@ -0,0 +1,228 @@ +openapi: '2.0' +info: + description: 'This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.' + version: 1.0.0 + title: Swagger Petstore + termsOfService: 'http://swagger.io/terms/' + contact: + email: apiteam@swagger.io + license: + name: Apache 2.0 + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' +host: petstore.swagger.io:9999 +basePath: /yeeee +tags: + - name: pet + description: Everything about your Pets + externalDocs: + description: Find out more + url: 'http://swagger.io' + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user + externalDocs: + description: Find out more about our store + url: 'http://swagger.io' +schemes: + - https + - http +paths: + /pets: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + get: + tags: + - pet + summary: List all pets + description: '' + operationId: listPets + produces: + - application/xml + - application/json + '/pets/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + type: integer + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] +securityDefinitions: + petstore_auth: + type: oauth2 + authorizationUrl: 'https://petstore.swagger.io/oauth/dialog' + flow: implicit + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header +definitions: + Order: + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + User: + type: object + properties: + id: + type: integer + format: int64 + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Category: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Category + Tag: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + category: + $ref: '#/definitions/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/definitions/Tag' + status: + type: string + description: pet status in the store + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string +externalDocs: + description: Find out more about Swagger + url: 'http://swagger.io' diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.json new file mode 100644 index 00000000..4763a6ad --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.json @@ -0,0 +1,154 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore", + "license": { + "name": "MIT" + } + }, + "host": "new.swagger.io:8000", + "basePath": "/wooo", + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pets": { + "get": { + "summary": "List all pets", + "operationId": "listPets", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "How many items to return at one time (max 100)", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "type": "string", + "description": "A link to the next page of responses" + } + }, + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "summary": "Create a pet", + "operationId": "createPets", + "tags": [ + "pets" + ], + "responses": { + "201": { + "description": "Null response" + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/pets/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/definitions/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.yaml b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.yaml new file mode 100644 index 00000000..7d9f2619 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v2_service_patch.yaml @@ -0,0 +1,228 @@ +openapi: '2.0' +info: + description: 'This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.' + version: 1.0.0 + title: Swagger Petstore + termsOfService: 'http://swagger.io/terms/' + contact: + email: apiteam@swagger.io + license: + name: Apache 2.0 + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' +host: new.swagger.io:8000 +basePath: /wooo +tags: + - name: pet + description: Everything about your Pets + externalDocs: + description: Find out more + url: 'http://swagger.io' + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user + externalDocs: + description: Find out more about our store + url: 'http://swagger.io' +schemes: + - https + - http +paths: + /pets: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + get: + tags: + - pet + summary: List all pets + description: '' + operationId: listPets + produces: + - application/xml + - application/json + '/pets/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + type: integer + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] +securityDefinitions: + petstore_auth: + type: oauth2 + authorizationUrl: 'https://petstore.swagger.io/oauth/dialog' + flow: implicit + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header +definitions: + Order: + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + User: + type: object + properties: + id: + type: integer + format: int64 + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Category: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Category + Tag: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + category: + $ref: '#/definitions/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/definitions/Tag' + status: + type: string + description: pet status in the store + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string +externalDocs: + description: Find out more about Swagger + url: 'http://swagger.io' diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.json new file mode 100644 index 00000000..7f03c238 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.json @@ -0,0 +1,156 @@ +{ + "openapi": "3.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore", + "license": { + "name": "MIT" + } + }, + "servers": [ + { + "url": "http://petstore.swagger.io:9999/yeeee" + }, + { + "url": "https://petstore.swagger.io:9999/yeeee" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pets": { + "get": { + "summary": "List all pets", + "operationId": "listPets", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "How many items to return at one time (max 100)", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "type": "string", + "description": "A link to the next page of responses" + } + }, + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "summary": "Create a pet", + "operationId": "createPets", + "tags": [ + "pets" + ], + "responses": { + "201": { + "description": "Null response" + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/pets/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/definitions/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.yaml b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.yaml new file mode 100644 index 00000000..1c6fa278 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3.yaml @@ -0,0 +1,110 @@ +openapi: "3.0.0" +info: + version: 1.0.0 + title: Swagger Petstore + license: + name: MIT +servers: + - url: http://petstore.swagger.io:9999/yeeee + - url: https://petstore.swagger.io:9999/yeeee +paths: + /pets: + get: + summary: List all pets + operationId: listPets + tags: + - pets + parameters: + - name: limit + in: query + description: How many items to return at one time (max 100) + required: false + schema: + type: integer + format: int32 + responses: + '200': + description: A paged array of pets + headers: + x-next: + description: A link to the next page of responses + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + summary: Create a pet + operationId: createPets + tags: + - pets + responses: + '201': + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /pets/{petId}: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + schema: + type: string + responses: + '200': + description: Expected response to a valid request + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Pet: + required: + - id + - name + properties: + id: + type: integer + format: int64 + name: + type: string + tag: + type: string + Pets: + type: array + items: + $ref: "#/components/schemas/Pet" + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.json b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.json new file mode 100644 index 00000000..139e9c16 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.json @@ -0,0 +1,156 @@ +{ + "openapi": "3.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore", + "license": { + "name": "MIT" + } + }, + "servers": [ + { + "url": "http://new.swagger.io:8000/wooo" + }, + { + "url": "https://new.swagger.io:8000/wooo" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/pets": { + "get": { + "summary": "List all pets", + "operationId": "listPets", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "How many items to return at one time (max 100)", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "type": "string", + "description": "A link to the next page of responses" + } + }, + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + }, + "post": { + "summary": "Create a pet", + "operationId": "createPets", + "tags": [ + "pets" + ], + "responses": { + "201": { + "description": "Null response" + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + }, + "/pets/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "schema": { + "$ref": "#/definitions/Pets" + } + }, + "default": { + "description": "unexpected error", + "schema": { + "$ref": "#/definitions/Error" + } + } + } + } + } + }, + "definitions": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/definitions/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.yaml b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.yaml new file mode 100644 index 00000000..f11116f2 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/oas_config/petstore_v3_service_patch.yaml @@ -0,0 +1,110 @@ +openapi: "3.0.0" +info: + version: 1.0.0 + title: Swagger Petstore + license: + name: MIT +servers: + - url: http://new.swagger.io:8000/wooo + - url: https://new.swagger.io:8000/wooo +paths: + /pets: + get: + summary: List all pets + operationId: listPets + tags: + - pets + parameters: + - name: limit + in: query + description: How many items to return at one time (max 100) + required: false + schema: + type: integer + format: int32 + responses: + '200': + description: A paged array of pets + headers: + x-next: + description: A link to the next page of responses + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + summary: Create a pet + operationId: createPets + tags: + - pets + responses: + '201': + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /pets/{petId}: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + schema: + type: string + responses: + '200': + description: Expected response to a valid request + content: + application/json: + schema: + $ref: "#/components/schemas/Pets" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Pet: + required: + - id + - name + properties: + id: + type: integer + format: int64 + name: + type: string + tag: + type: string + Pets: + type: array + items: + $ref: "#/components/schemas/Pet" + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_invalid.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_invalid.conf new file mode 100644 index 00000000..01448af7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_invalid.conf @@ -0,0 +1,2 @@ +response_transformation_enable_limit_body=on +response_transformation_limit_body_size=wow diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_not_defined.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_not_defined.conf new file mode 100644 index 00000000..5055e397 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body-body_size_not_defined.conf @@ -0,0 +1 @@ +response_transformation_enable_limit_body=on diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body.conf new file mode 100644 index 00000000..f59c0b3d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body.conf @@ -0,0 +1,2 @@ +response_transformation_enable_limit_body=on +response_transformation_limit_body_size=16384 diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body_chunked.conf b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body_chunked.conf new file mode 100644 index 00000000..9ba66f4d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/response_transformer/feature_response_transformer_limit_body_chunked.conf @@ -0,0 +1,2 @@ +response_transformation_enable_limit_body=on +response_transformation_limit_body_size=5 diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket.lua new file mode 100644 index 00000000..c785babb --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket.lua @@ -0,0 +1,124 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local const = require "spec-ee.fixtures.websocket.constants" + +local fmt = string.format + +local PORTS = const.ports + +local function mock_upstream(root_path) + root_path = root_path or ".." + return fmt([[ + lua_shared_dict kong_test_websocket_fixture 64m; + + server { + listen %s; + listen %s ssl; + + server_name ws_fixture; + + ssl_certificate %s/spec/fixtures/mtls_certs/example.com.crt; + ssl_certificate_key %s/spec/fixtures/mtls_certs/example.com.key; + + ssl_client_certificate %s/spec/fixtures/mtls_certs/ca.crt; + ssl_verify_client optional; + + ssl_session_tickets off; + ssl_session_cache off; + keepalive_requests 0; + + lua_check_client_abort on; + + # we use sock:receiveany() in the WS session fixture in order to forward + # bytes blindly, so a large buffer size helps with performance and test + # reliability + lua_socket_buffer_size 64k; + + lingering_close off; + + rewrite_by_lua_block { + require("spec-ee.fixtures.websocket.upstream").rewrite() + } + + location / { + content_by_lua_block { + require("spec-ee.fixtures.websocket.upstream").echo() + } + } + + location ~ "^/status/(?\d{3})$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local code = tonumber(ngx.var.code) + if not code then + return ngx.exit(ngx.HTTP_NOT_FOUND) + end + ngx.status = code + return mu.send_default_json_response({ + code = code, + }) + } + } + + location = /session/client { + content_by_lua_block { + require("spec-ee.fixtures.websocket.upstream").client() + } + } + + location = /session/listen { + content_by_lua_block { + require("spec-ee.fixtures.websocket.upstream").listen() + } + } + + location ~ ^/log/(?.+)$ { + content_by_lua_block { + require("spec-ee.fixtures.websocket.upstream").get_log() + } + } + } + ]], PORTS.ws, PORTS.wss, root_path, root_path, root_path) +end + + +---@param wc ws.test.client|string +---@param timeout? integer +---@return kong.log.serialized.entry +local function get_session_log(wc, timeout) + local id = wc + if type(id) == "table" then + id = assert(wc.id) + end + timeout = timeout or 5 + + local httpc = require("resty.http").new() + assert(httpc:connect({ + scheme = "http", + host = "127.0.0.1", + port = PORTS.ws, + })) + + local res, err = httpc:request({ + method = "GET", + path = "/log/" .. id, + query = { timeout = timeout }, + }) + + assert(res, err) + assert(res.status == 200, "non-200 response: " .. (tostring(res.status))) + + return require("cjson").decode(res:read_body()) +end + + +return { + get_session_log = get_session_log, + const = const, + mock_upstream = mock_upstream, +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/action.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/action.lua new file mode 100644 index 00000000..26693fe4 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/action.lua @@ -0,0 +1,646 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +local const = require "spec-ee.fixtures.websocket.constants" + +local fmt = string.format +local find = string.find +local re_find = ngx.re.find +local OPCODES = const.opcode +local sleep = ngx.sleep + +--- +-- WebSocket "actions" represent small pieces of code that are to be +-- consumed/executed by the `spec-ee.fixtures.websocket.session` module in +-- order to validate correct behavior. +-- +-- They consist of a name, callback function, and a target identifier. The target +-- informs the session of the object that is to be passed in to the callback +-- function--one of `client`, `server`, or `session` (for "meta" actions that +-- act upon the session object itself). +-- +-- Action callbacks should return `true` on success or `nil` and an error string +-- on failure. +-- +-- Example: +-- +-- ```lua +-- session:assert({ +-- { +-- name = "send_ping", +-- target = "client", +-- fn = function(client) +-- if client:send_ping("ping") then +-- return true +-- end +-- return nil, "failed sending ping" +-- end, +-- } +-- }) +-- +---@class ws.session.action +---@field name string +---@field target '"server"'|'"client"'|'"session"' +---@field fn ws.session.action.callback + +---@alias ws.session.action.callback fun(target:ws.test.client|ws.session, ...):boolean|nil, string|nil + +---@alias ws.session.action.factory fun(...):ws.session.action + +---@alias ws.session.action.collection table + +local function is_timeout(err) + return type(err) == "string" or find(err, "timeout") ~= nil +end + +local function is_closed(err) + return type(err) == "string" and find(err, "closed") ~= nil +end + +local function is_fin(err) + return err ~= "again" +end + +---@param ws ws.test.client +---@return boolean ok +---@return string? error +local function recv_any(ws) + local data, _, err = ws:recv_frame() + return data ~= nil, err +end + +---@param timeout integer +---@return ws.session.action.callback +local function recv_timeout(timeout) + ---@param ws ws.test.client + ---@param session ws.session + ---@return boolean ok + ---@return string? error + return function(ws, session) + if timeout then + ws.client.sock:settimeouts(nil, nil, timeout) + end + + local data, typ, err = ws:recv_frame() + + if timeout then + ws.client.sock:settimeouts(nil, nil, session.timeout) + end + + if data ~= nil then + return nil, fmt("expected timeout but received %s frame", typ) + end + + if not is_timeout(err) then + return nil, fmt("expected timeout but received non-timeout error: %q", err) + end + + return true + end +end + +---@param exp_err string +---@return ws.session.action.callback +local function recv_error(exp_err) + assert(type(exp_err) == "string", "expected error string is required") + + ---@param ws ws.test.client + return function(ws) + local data, typ, err = ws:recv_frame() + if data ~= nil then + return nil, fmt("expected error but received %s frame", typ) + end + + if is_timeout(err) then + return nil, "expected error but received timeout" + end + + if not re_find(err, exp_err, "oj") then + return nil, fmt("receied error (%q) did not match %q", err, exp_err) + end + + return true + end +end + + +---@type ws.session.action.callback +---@param ws ws.test.client +---@param check_err? boolean +local function close_conn(ws, check_err) + local ok, err = ws:close() + + if not ok and check_err and not is_closed(err) then + return nil, fmt("ws client did not close cleanly: %q", err) + end + + return true +end + + +---@param ws ws.test.client +---@param exp_type resty.websocket.protocol.type +---@param exp_data? string +---@param exp_status? integer +local function recv_type(ws, exp_type, exp_data, exp_status) + local data, typ, err = ws:recv_frame() + if not data then + if is_timeout(err) then + return nil, fmt("expected %s frame but got timeout", exp_type) + + elseif is_closed(err) then + return nil, fmt("expected %s frame but connection is closed", exp_type) + end + + return nil, fmt("expected %s frame but got an error: %q", exp_type, err) + + elseif typ ~= exp_type then + return nil, fmt("expected %s frame but got %s frame", exp_type, typ) + + elseif exp_data and data ~= exp_data then + return nil, fmt("expected payload: %q, received: %q", exp_data, data) + + elseif typ == "close" + and exp_status + and exp_status ~= err + then + return nil, fmt("expected close status %s but received %s", exp_status, err) + + end + + return true +end + + +---@param target '"client"'|'"server"' +---@param exp_type resty.websocket.protocol.type +---@param exp_data? string +---@param exp_status? integer +---@return ws.session.action +local function receiver(target, exp_type, exp_data, exp_status) + return { + name = "recv_" .. exp_type, + target = target, + ---@param ws ws.test.client + fn = function(ws) + return recv_type(ws, exp_type, exp_data, exp_status) + end, + } +end + +---@param target '"client"'|'"server"' +---@param fn string +---@param data? string +---@param status? integer +---@return ws.session.action +local function sender(target, fn, data, status) + return { + name = fn, + target = target, + fn = function(ws) + return ws[fn](ws, data, status) + end, + } +end + +---@param ws ws.test.client +---@param exp_typ? resty.websocket.protocol.type +local function handle_echo(ws, exp_typ) + local data, typ, err = ws:recv_frame() + if not data then + return nil, fmt("expected %s frame but got error: %q", exp_typ, err) + + elseif exp_typ and typ ~= exp_typ then + return nil, fmt("expected %s frame but got %s frame", exp_typ, typ) + end + + local sent + if typ == "ping" then + sent, err = ws:send_pong(data) + + elseif typ == "pong" then + sent, err = ws:send_pong(data) + + elseif typ == "close" then + sent, err = ws:send_close(data, err) + + else + local fin = is_fin(err) + local opcode = OPCODES[typ] + sent, err = ws:send_frame(fin, opcode, data) + end + + if not sent then + return nil, fmt("failed sending echo response: %q", err) + end + + return true +end + + +local function echoer(typ, data, status) + local exp_type = typ + if typ == "ping" then exp_type = "pong" + elseif typ == "pong" then exp_type = "ping" + end + + return { + name = "echo_" .. typ, + target = "session", + ---@param sess ws.session + fn = function(sess) + local client = sess.client + local fn = client["send_" .. typ] + local ok, err = fn(client, data, status) + if not ok then + return nil, err + end + + if sess.server_echo then + ok, err = handle_echo(sess.server, typ) + if not ok then + return nil, err + end + end + + return recv_type(client, exp_type, data, status) + end, + } +end + + +---@param target '"client"'|'"server"' +local function send_actions(target) + return { + --- + -- Send a ping frame + -- + ---@param data? string + ---@return ws.session.action + ping = function(data) + return sender(target, "send_ping", data) + end, + + --- + -- Send a pong frame + -- + ---@param data? string + ---@return ws.session.action + pong = function(data) + return sender(target, "send_pong", data) + end, + + --- + -- Send a text frame + -- + ---@param data string + ---@return ws.session.action + text = function(data) + return sender(target, "send_text", data) + end, + + --- + -- Send a binary frame + -- + ---@param data string + ---@return ws.session.action + binary = function(data) + return sender(target, "send_binary", data) + end, + + --- + -- Send a close frame + -- + ---@param data? string + ---@param status? integer + ---@return ws.session.action + close = function(data, status) + return sender(target, "send_close", data, status) + end, + + + --- + -- Send a continuation frame + -- + ---@param data string + ---@return ws.session.action + continue = function(data) + return sender(target, "send_continue", data) + end, + + --- + -- Send the first frame of a fragmented text message + -- + ---@param data string + ---@return ws.session.action + text_fragment = function(data) + return sender(target, "init_text_fragment", data) + end, + + --- + -- Send the first frame of a fragmented binary message + -- + ---@param data string + ---@return ws.session.action + binary_fragment = function(data) + return sender(target, "init_binary_fragment", data) + end, + + --- + -- Send the final frame of a fragmented message + -- + ---@param data string + ---@return ws.session.action + final_fragment = function(data) + return sender(target, "send_final_fragment", data) + end, + } +end + +---@param target '"client"'|'"server"' +local function recv_actions(target) + return { + --- + -- Expect a text frame and validate its payload + -- + ---@param data string + text = function(data) + return receiver(target, "text", data) + end, + + --- + -- Expect a binary frame and validate its payload + -- + ---@param data string + binary = function(data) + return receiver(target, "binary", data) + end, + + --- + -- Expect a ping frame and validate its payload + -- + ---@param data string + ping = function(data) + return receiver(target, "ping", data) + end, + + --- + -- Expect a pong frame and validate its payload + -- + ---@param data string + pong = function(data) + return receiver(target, "pong", data) + end, + + --- + -- Expect a continuation frame and validate its payload + -- + ---@param data string + continue = function(data) + return receiver(target, "continue", data) + end, + + --- + -- Expect a close frame and validate its payload and status code + -- + ---@param data? string + ---@param status? integer + close = function(data, status) + return receiver(target, "close", data, status) + end, + + + --- + -- Recieve a single frame of any type + ---@return ws.session.action + any = function() + return { + target = target, + fn = recv_any, + } + end, + + --- + -- Call recv_frame() and ensure that the read operation times out + -- with no frame having been received + -- + ---@param timeout? integer + ---@return ws.session.action + timeout = function(timeout) + return { + target = target, + fn = recv_timeout(timeout), + } + end, + + --- + -- Call recv_frame() and expect an error + -- + ---@param err string + ---@return ws.session.action + error = function(err) + return { + target = target, + fn = recv_error(err), + } + end, + } +end + +---@param target '"client"'|'"server"' +---@return ws.session.action.factory +local function close_action(target) + --- + -- Close the WebSocket connection + return function() + return { + name = "close", + target = target, + fn = close_conn, + } + end +end + + +local function server_echo() + local t = { + --- + -- Enable automatic echo replies from the server + enable = function() + return { + name = "enable_echo", + target = "session", + fn = function(sess) + sess.server_echo = true + return true + end, + } + end, + + --- + -- Disable automatic echo replies from the server + disable = function() + return { + name = "disable_echo", + target = "session", + fn = function(sess) + sess.server_echo = false + return true + end, + } + end, + } + + setmetatable(t, { + __call = function() + return { + name = "echo", + target = "server", + fn = function(ws) + return handle_echo(ws) + end, + } + end, + }) + + return t +end + +local function client_echo() + return { + --- + -- Send a text frame from the client and validate that the server echoes it + -- back to us. + ---@param data string + text = function(data) + return echoer("text", data) + end, + + --- + -- Send a binary frame from the client and validate that the server echoes it + -- back to us. + ---@param data string + binary = function(data) + return echoer("binary", data) + end, + + --- + -- Send a ping frame from the client and validate that the server responds + -- with a matching pong frame + ---@param data? string + ping = function(data) + return echoer("ping", data) + end, + + --- + -- Send a close frame from the client and validate that the server responds + -- with a matching close frame + ---@param data? string + ---@param status? integer + close = function(data, status) + return echoer("close", data, status) + end, + } +end + + +local function client_actions() + return { + send = send_actions("client"), + recv = recv_actions("client"), + close = close_action("client"), + echo = client_echo(), + } +end + +local function server_actions() + return { + send = send_actions("server"), + recv = recv_actions("server"), + close = close_action("server"), + echo = server_echo(), + } +end + + +local actions = { + client = client_actions(), + server = server_actions(), + echo = client_echo(), + + --- + -- Gracefully close the session. + close = function() + return { + name = "graceful_close", + target = "session", + ---@param sess ws.session + fn = function(sess) + sess.server:send_close() + sess.client:recv_frame() + sess.client:send_close() + sess.server:recv_frame() + sess.server:close() + sess.client:close() + return true + end, + } + end, + + ---@type ws.session.action.factory + ---@param duration number + sleep = function(duration) + return { + name = "sleep", + target = "session", + fn = function() + sleep(duration) + return true + end, + } + end, + + ---@type ws.session.action.factory + ---@param timeout integer + set_recv_timeout = function(timeout) + return { + name = "set_recv_timeout", + target = "session", + ---@param session ws.session + fn = function(session) + session.client.client.sock:settimeouts(nil, nil, timeout) + session.server.client.sock:settimeouts(nil, nil, timeout) + return true + end, + } + end, +} + +-- The labels `client` and `server` were chosen because they are the same +-- string length, and the alignment makes tests more readable: +-- +-- local client, server = actions.client, actions.server +-- session:assert({ +-- client.send.text("hi"), +-- server.recv.text("hi"), +-- }) +-- +-- In many other contexts, we use `upstream` instead of `server`, so having +-- an alias for it helps when constructing parameterized tests: +-- +-- for src, dst in pairs({ client = "upstream", upstream = "client"}) do +-- session:assert({ +-- actions[src].send.text("hi"), +-- actions[dst].recv.text("hi"), +-- }) +-- end +-- +actions.upstream = actions.server + + +return actions diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/constants.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/constants.lua new file mode 100644 index 00000000..0a68257c --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/constants.lua @@ -0,0 +1,32 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local const = require "kong.enterprise_edition.constants" + +return { + headers = { + id = "x-mock-websocket-request-id", + self = "x-mock-websocket", + multi = "x-mock-websocket-multi", + }, + + ports = { + ws = 3000, + wss = 3001, + }, + + -- token message values that the client sends to request + -- connection metadata from the mock upstream server + tokens = { + request = "$_REQUEST", + response = "$_RESPONSE", + }, + + opcode = const.WEBSOCKET.OPCODE_BY_TYPE, + type = const.WEBSOCKET.TYPE_BY_OPCODE, + status = const.WEBSOCKET.STATUS, +} diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/rpc.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/rpc.lua new file mode 100644 index 00000000..9810dde1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/rpc.lua @@ -0,0 +1,452 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +local cjson = require "cjson.safe" +local utils = require "kong.tools.utils" +local const = require "spec-ee.fixtures.websocket.constants" + +local unpack = utils.unpack +local log = ngx.log +local concat = table.concat +local insert = table.insert +local fmt = string.format + +local NOTICE = ngx.NOTICE + +--- +-- RPC Plugin fixture +-- +-- This fixture is designed around turning the pre-function/post-function +-- plugins into somewhat of an RPC tool for WebSocket connections. +-- +-- It consists of two main components: +-- * Functions that are called during websocket handlers (for instance, by +-- calling `require("spec-ee.fixtures.websocket.rpc").handler.ws_handshake()` +-- during the ws_handshake phase +-- * Helper functions for generating RPC call actions +-- +-- The goal of all this is to enable easy testing of various PDK functions +-- inside the WebSocket plugin handlers. +-- +local RPC = {} + + +---@alias ws.test.rpc.target +---| '"client"' +---| '"upstream"' +---| '"close"' + + +---@class ws.test.rpc.cmd : table +---@field target ws.test.rpc.target +---@field fn string +---@field args any[] +---@field eval string +---@field postpone boolean + + +---@param cmd ws.test.rpc.cmd +local function handler(cmd) + if cmd.fn then + local ref = _G + cmd.fn:gsub("([^.]+)", function(k) + assert(type(ref) == "table") + ref = ref[k] + end) + + assert(type(ref) == "function", tostring(cmd.fn) .. " is not a function") + + local args = cmd.args or {} + + log(NOTICE, "RPC ", cmd.target, " call: ", cmd.fn, + ", args: ", concat(args, ",")) + + return ref(unpack(args)) + + elseif cmd.eval then + log(NOTICE, "RPC ", cmd.target, " eval: ", cmd.eval) + + local fn = assert(loadstring(cmd.eval)) + return fn() + end +end + + +---@param role '"client"'|'"upstream"' +local function ws_frame(role) + local ws = kong.websocket[role] + local ctx = kong.ctx.plugin + + local data, typ, status = ws.get_frame() + + local record = ctx.DATA[role] + record.frames = record.frames + 1 + + if typ == "close" then + record.close_status = status or const.status.NO_STATUS.CODE + record.close_reason = data ~= "" and data or const.status.NO_STATUS.REASON + end + + ---@type ws.test.rpc.cmd + local cmd + + -- check for any pending commands + if ctx.pending and ctx.pending.target == role then + ngx.log(NOTICE, "found a pending rpc command") + cmd = ctx.pending + ctx.pending = nil + + -- check the in-flight text frame for a command + elseif typ == "text" then + local decoded = cjson.decode(data) + if type(decoded) == "table" and decoded.target then + cmd = decoded + end + end + + if not cmd then + return + end + + -- schedule command for ws_close + if cmd.target == "close" then + local t = ctx.rpc_close or {} + insert(t, cmd) + ctx.rpc_close = t + ws.drop_frame() + return + + -- postpone command until next frame + -- frame will be dropped + elseif cmd.postpone then + ngx.log(NOTICE, "postponing ", cmd.target, " command") + cmd.postpone = nil + ctx.pending = cmd + + ws.drop_frame() + return + + elseif cmd.target ~= role then + return + end + + local res = handler(cmd) + + if res then + ws.set_frame_data(tostring(res)) + end +end + + +--- +-- RPC handler functions +-- +-- These are wired in via pre-function/post-function expressions +RPC.handler = { + --- + -- Handshake handler for RPC plugin fixture + ws_handshake = function() + kong.response.set_header("ws-function-test", "hello") + kong.ctx.plugin.DATA = { + upstream = { + frames = 0, + close_status = const.status.NO_STATUS.CODE, + close_reason = const.status.NO_STATUS.REASON, + }, + client = { + frames = 0, + close_status = const.status.NO_STATUS.CODE, + close_reason = const.status.NO_STATUS.REASON, + }, + } + end, + + --- + -- Client frame handler for RPC plugin fixture + ws_client_frame = function() + return ws_frame("client") + end, + + --- + -- Upstream frame handler for RPC plugin fixture + ws_upstream_frame = function() + return ws_frame("upstream") + end, + + --- + -- Close handler for RPC plugin fixture + ws_close = function() + kong.log.set_serialize_value("ws", kong.ctx.plugin.DATA) + + local cmds = kong.ctx.plugin.rpc_close + if cmds then + for _, cmd in ipairs(cmds) do + handler(cmd) + end + end + end, +} + + +--- +-- Create an RPC call action +-- +---@param target ws.test.rpc.target +---@param postpone boolean +---@param fn string +---@vararg any +---@return ws.session.action +local function rpc_call(target, postpone, fn, ...) + local name = "rpc_call" + if postpone then + name = name .. "_postpone" + end + + local args + if select("#", ...) > 0 then + args = {} + for i = 1, select("#", ...) do + args[i] = select(i, ...) + end + end + + local payload = cjson.encode({ + target = target, + postpone = postpone, + fn = fn, + args = args, + }) + + return { + name = name, + target = "client", + fn = function(ws) + return ws:send_text(payload) + end, + } +end + + +--- +-- Create an RPC eval action +-- +---@param target ws.test.rpc.target +---@param postpone boolean +---@param code string +---@return ws.session.action +local function rpc_eval(target, postpone, code) + local name = "rpc_eval" + if postpone then + name = name .. "_postpone" + end + + local payload = cjson.encode({ + target = target, + postpone = postpone, + eval = code, + }) + + return { + name = name, + target = "client", + fn = function(ws) + return ws:send_text(payload) + end + } +end + + +local function make_rpc(target) + return { + --- + -- Call the given function upon receipt of this frame + -- + -- If the function returns a truth-y value, the payload of the current + -- frame are replaced with this return value + -- + --```lua + -- session:assert({ + -- RPC.client.call("kong.request.get_scheme"), + -- WS.server.recv.text("http"), + -- }) + --``` + -- + ---@param fn string + ---@vararg any + call = function(fn, ...) + return rpc_call(target, false, fn, ...) + end, + + --- + -- Evaluate the given lua expression upon receipt of this frame + -- + -- If the expression returns truth-y value, the payload of the current + -- frame are replaced with this return value + -- + --```lua + -- session:assert({ + -- RPC.client.eval("kong.ctx.plugin.foo = 1"), + -- WS.server.recv.any(), + -- + -- RPC.client.eval("return kong.ctx.plugin.foo"), + -- WS.server.recv.text("1"), + -- }) + --``` + -- + ---@param expr string + eval = function(expr) + return rpc_eval(target, false, expr) + end, + + next = { + --- + -- Call the given function upon receipt of the _next_ frame. + -- + -- The frame containing this RPC instruction will be dropped. + -- + ---@param fn string + ---@vararg any + call = function(fn, ...) + return rpc_call(target, true, fn, ...) + end, + + --- + -- Evaluate the given lua code upon receipt of the _next_ frame + -- + -- The frame containing this RPC instruction will be dropped. + -- + ---@param code string + eval = function(code) + return rpc_eval(target, true, code) + end, + } + } +end + + +--- +-- RPC client frame actions +RPC.client = make_rpc("client") + + +--- +-- RPC upstream frame actions +RPC.upstream = make_rpc("upstream") + + +--- +-- RPC close actions +RPC.close = { + --- + -- Evaluate the given lua code during the ws_close phase + -- + ---@param code string + eval = function(code) + return rpc_eval("close", false, code) + end, +} + + +--- +-- Generate a lua function string that writes to a temp file. +-- +-- The body should be a lua expression. +-- +-- The filename and function string are returned. +-- +-- This was written with `RPC.close.eval()` in mind: +-- +--```lua +-- local fname, writer = RPC.file_writer("kong.ctx.plugin.foo") +-- +-- session:assert({ +-- RPC.close.eval(writer) +-- }) +-- +-- session:close() +-- +-- assert_file_exists(fname) +-- assert.equals("foo contents", read_file(fname)) +--``` +-- +---@param body string +---@return string filename +---@return string writer +function RPC.file_writer(body) + local fname = os.tmpname() + + -- in environments like gojira where busted and Kong run as different users, + -- this file will be unwritable, so remove it first + os.remove(fname) + + return fname, fmt([[ + local fname = %q + local fh = assert(io.open(fname, "w+")) + local content = %s + ngx.log(ngx.WARN, "Writing '", content, "' to ", fname) + assert(fh:write(content)) + fh:close() + ]], fname, body) +end + + +-- Generate a lua function string that writes the output of +-- `kong.log.serialize()` to a temp file. +-- +-- The filename and function string are returned +-- +---@return string filename +---@return string writer +function RPC.log_writer() + return RPC.file_writer([[require("cjson").encode(kong.log.serialize())]]) +end + + +--- +-- Generate an RPC config for the pre-function/post-function plugins +-- +-- The optional `extra` param allows one to extend the config table before +-- returning it. If `extra` is a table, its contents are copied into the +-- final config. If `extra` is a function, it is called with the config as its +-- first argument, and the return value is used as the final config. +-- +---@param extra? table|function +---@return table +function RPC.plugin_conf(extra) + local conf = { + ws_handshake = {[[ + require("spec-ee.fixtures.websocket.rpc").handler.ws_handshake() + ]]}, + ws_client_frame = {[[ + require("spec-ee.fixtures.websocket.rpc").handler.ws_client_frame() + ]]}, + ws_upstream_frame = {[[ + require("spec-ee.fixtures.websocket.rpc").handler.ws_upstream_frame() + ]]}, + ws_close = {[[ + require("spec-ee.fixtures.websocket.rpc").handler.ws_close() + ]]}, + } + + if type(extra) == "table" then + for phase, items in pairs(extra) do + conf[phase] = conf[phase] or {} + for _, item in ipairs(items) do + table.insert(conf[phase], item) + end + end + + elseif type(extra) == "function" then + conf = extra(conf) + end + + return conf +end + + +return RPC diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/session.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/session.lua new file mode 100644 index 00000000..3f22c72d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/session.lua @@ -0,0 +1,163 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +local helpers = require "spec.helpers" +local ee_helpers = require "spec-ee.helpers" +local const = require "spec-ee.fixtures.websocket.constants" +local cjson = require "cjson" +local assert = require "luassert" +local pl_file = require "pl.file" + +---@class ws.session +---@field client ws.test.client +---@field server ws.test.client +---@field request ws.request.info +---@field id string +---@field timeout integer +---@field server_echo boolean +local session = {} +session.__index = session + +session.actions = require "spec-ee.fixtures.websocket.action" + +local fmt = string.format +local rep = string.rep +local concat = table.concat + + +---@return string +local function get_error_log() + local log = helpers.get_running_conf().nginx_err_logs + if not log then + return "NO ERROR LOG FILE FOUND!" + end + + local content, err = pl_file.read(log) + if err then + return "FAILED READING ERROR LOG: " .. tostring(err or "unknown error") + + elseif content == nil or content == "" then + return "ERROR LOG IS EMPTY!" + end + + local lines = { "error.log contents:" , + rep("-", 80), + content, + rep("-", 80) } + + return concat(lines, "\n") +end + + +--- +-- Validate WebSocket session activity. +-- +-- +-- @see `spec-ee.fixtures.websocket.action` for action examples +-- +-- +---@param actions ws.session.action[] +function session:assert(actions) + local len = #actions + for i, act in ipairs(actions) do + local target + if act.target == "session" then + target = self + else + target = self[act.target] + end + + local ok, err = act.fn(target, self) + + local extra = "" + if not ok then + extra = get_error_log() + end + + assert(ok, fmt( + "\nsession: %s\nposition: %s/%s\naction: %s\ntarget: %s\nerror:\n\t%q\n%s", + self.id, i, len, act.name, act.target, err, extra + )) + end +end + +--- +-- Close/teardown the WebSocket session. +-- +-- This method is intended for post-test cleanup and does not perform +-- error-checking or attempt to gracefully close the connection. +function session:close() + self.client:close() + self.server:close() +end + +---@class ws.test.session.opts : ws.test.client.opts +---@field idle_timeout number + +--- +-- Initialize a mock WebSocket connection. +-- +-- This accepts an optional table of options, which are passed to the client +-- constructor (`spec-ee.helpers.ws_proxy_client`). It returns a table with +-- two WS client objects ("client" and "server") as well as a table containing +-- the details of the client handshake request. +-- +---@param opts ws.test.session.opts +---@return ws.session +return function(opts) + opts = opts or {} + + local idle_timeout = opts.idle_timeout or 5000 + + ngx.log(ngx.INFO, "connecting to session listen endpoint") + + local server = ee_helpers.ws_client({ + scheme = "ws", + path = "/session/listen", + port = const.ports.ws, + fail_on_error = true, + query = { idle_timeout = idle_timeout }, + }) + + local id = server.id + ngx.log(ngx.INFO, "connected to session listen endpoint: ", id) + + opts.query = opts.query or {} + opts.path = "/session/client" + opts.timeout = opts.timeout or 500 + opts.query.session = id + + ngx.log(ngx.INFO, "connecting to session client endpoint") + + local client = ee_helpers.ws_proxy_client(opts) + + ngx.log(ngx.INFO, "connected to session client endpoint") + + ngx.log(ngx.INFO, "receiving handshake from upstream client") + server.client.sock:settimeouts(nil, nil, 500) + local data, typ, err = server:recv_frame() + + assert.is_nil(err, "failed receiving initial connect frame: " .. tostring(err)) + assert.equals("text", typ, "invalid initial frame type: " .. typ) + assert.equals("string", type(data), "invalid data returned from connection") + assert.truthy(#data > 0, "empty payload in initial connect frame") + + local request = cjson.decode(data) + + server.client.sock:settimeouts(nil, nil, opts.timeout) + + ngx.log(ngx.INFO, "session initialized") + + return setmetatable({ + client = client, + server = server, + request = request, + id = server.id, + timeout = opts.timeout, + }, session) +end diff --git a/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/upstream.lua b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/upstream.lua new file mode 100644 index 00000000..d60cc7f3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/fixtures/websocket/upstream.lua @@ -0,0 +1,779 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local cjson = require "cjson" +local ws_server = require "resty.websocket.server" +local utils = require "kong.tools.utils" +local const = require "spec-ee.fixtures.websocket.constants" + +--- +-- WebSocket mock upstream fixture +-- +-- # Features +-- +-- ## echo server +-- +-- You send it, it sends it back! Only exceptions to this are: +-- +-- * ping: it responds with a pong +-- * pong: it does nothing but emit a log entry +-- +-- +-- ## session server +-- +-- This allows you to use two websocket clients to emulate both sides of a +-- client <-> upstream WS session: +-- +-- 1. Connect a WS client to `/session/listen` +-- * x-mock-websocket-request-id response header from step 1 contains a UUID +-- * this is the "upstream" WS connection +-- 2. Connect another WS client to `/session/client?session=$ID` using the UUID +-- from step #1 +-- * this is the "client" WS connection +-- 3. Call `recv_frame()` with the upstream WS client: +-- * expect a text frame +-- * text frame contains a json blob containing the client request details +-- 4. Messages sent by each WS client are forwarded across shared memory +-- +-- For convenience, `spec-ee.fixtures.websocket.session` takes care of all this +-- setup work for you. + +local _M = {} + +local fmt = string.format +local ngx = ngx +local req = ngx.req +local var = ngx.var +local header = ngx.header +local log = ngx.log +local sleep = ngx.sleep +local spawn = ngx.thread.spawn +local wait = ngx.thread.wait +local kill = ngx.thread.kill +local on_abort = ngx.on_abort +local encode = cjson.encode +local decode = cjson.decode +local find = string.find +local ngx_now = ngx.now +local update_time = ngx.update_time +local min = math.min + +local INFO = ngx.INFO +local NOTICE = ngx.NOTICE +local WARN = ngx.WARN +local ERR = ngx.ERR +local DEBUG = ngx.DEBUG + + +local HEADERS = const.headers +local OPCODES = const.opcode + +local shm = assert(ngx.shared.kong_test_websocket_fixture, + "missing 'kong_test_websocket_fixture' shm declaration") + + +local READ_TIMEOUT = 5 +local IDLE_TIMEOUT = 5 +local SESSION_TIMEOUT = 30 +local MAX_STEP = 0.5 + +local function exit(status, body) + if ngx.get_phase() == "log" then + error(fmt("tried to call ngx.exit() in log phase: %s, status: %s", + body or "unknown", status)) + end + + if status == 444 then + return ngx.exit(444) + end + + ngx.status = status + header["content-type"] = "application/json" + if type(body) == "table" then + body = cjson.encode(body) + end + ngx.say(body) + return ngx.exit(0) +end + +local function substr(subj, s) + return type(subj) == "string" + and find(subj, s, nil, true) +end + +local function is_timeout(err) + return substr(err, "timeout") +end + +local function is_closed(err) + return substr(err, "closed") +end + +local function is_fin(err) + return err ~= "again" +end + +local function is_client_abort(err) + return substr(err, "client aborted") +end + +local function is_reset(err) + return substr(err, "connection reset by peer") +end + +local function now() + update_time() + return ngx_now() +end + +--- +-- Some of our test cases cover things like "what happens when the NGINX worker +-- is exiting?" Delaying the exit event here gives things a grace period so +-- that our tests don't contend with the lifetime of the "upstream" +local exiting +do + local worker_exiting = ngx.worker.exiting + local exited + local timeout = 1 + + function exiting() + if not worker_exiting() then + return false + end + + exited = exited or now() + + local delay = now() - exited + + if delay > timeout then + log(INFO, "delayed exit event by ", delay " seconds") + return true + end + + return false + end +end + +local function request_infos() + ---@class ws.request.info + local info = { + url = fmt("%s://%s:%s%s", + var.scheme, var.host, + var.server_port, + var.request_uri), + headers = req.get_headers(0), + headers_raw = req.get_headers(0, true), + query = req.get_uri_args(0), + method = req.get_method(), + uri = var.uri, + host = var.host, + hostname = var.hostname, + https = var.https, + scheme = var.scheme, + is_args = var.is_args, + server_addr = var.server_addr, + server_port = var.server_port, + server_name = var.server_name, + server_protocol = var.server_protocol, + remote_addr = var.remote_addr, + remote_port = var.remote_port, + realip_remote_addr = var.realip_remote_addr, + realip_remote_port = var.realip_remote_port, + binary_remote_addr = var.binary_remote_addr, + request = var.request, + request_uri = var.request_uri, + request_time = var.request_time, + request_length = var.request_length, + bytes_received = var.bytes_received, + ssl_client_s_dn = var.ssl_client_s_dn, + ssl_server_name = var.ssl_server_name, + } + return info +end + + +local function response_infos() + ---@class ws.response.info + local info = { + status = ngx.status, + headers = ngx.resp.get_headers(0), + } + return info +end + + +local NS = { + STATE = "state", + SESSION = "session", + HANDSHAKE = "handshake", + CLIENT = "client", + UPSTREAM = "upstream", +} + +local PEER = setmetatable({ + [NS.CLIENT] = NS.UPSTREAM, + [NS.UPSTREAM] = NS.CLIENT, +}, { + __index = function(_, k) + error("unknown role: " .. tostring(k)) + end +}) + +local function make_key(ns, id) + return ns .. "/" .. id +end + +local function shm_push(ns, id, data) + local key = make_key(ns, id) + local ok, err = shm:rpush(key, data) + if not ok then + log(ERR, "failed writing data to shm: ", err) + return exit(444) + end +end + +local function shm_pop(ns, id) + local key = make_key(ns, id) + local value, err = shm:lpop(key) + + if err ~= nil then + log(ERR, "failed LPOP from ", key, ": ", err) + return exit(444) + end + + return value +end + +local function shm_get(ns, id) + local key = make_key(ns, id) + local value, err = shm:get(key) + + if err then + log(ERR, "error while reading ", key, ": ", err) + return exit(444) + end + + return value, err +end + +local function shm_read(ns, id, method, timeout) + timeout = timeout or READ_TIMEOUT + local step = 0.01 + local waited = 0 + local start = now() + + local get = method == "get" and shm_get or shm_pop + + while true do + if exiting() then + return nil, "exiting" + end + + local data = get(ns, id) + + if data then + return data + + elseif waited >= timeout then + break + end + + sleep(step) + waited = now() - start + step = min(step * 1.25, MAX_STEP) + end + + return nil, "timeout" +end + +local function shm_add(ns, id, value, ttl) + ttl = ttl or READ_TIMEOUT + local key = make_key(ns, id) + local ok, err = shm:add(key, value, ttl) + if not ok then + log(ERR, "failed storing ", key, " to shm: ", err) + return exit(444) + end +end + +local function shm_set(ns, id, state) + local key = make_key(ns, id) + local ok, err = shm:set(key, state, SESSION_TIMEOUT) + if not ok then + log(ERR, "failed shm:set ", key, ": ", err) + return exit(444) + end +end + +local STATE = { + LISTEN = 1, + CONNECT = 2, + ACCEPT = 3, + PROXY = 4, + CLOSING = 5, + ABORT = 6, + CLOSED = 7, +} + +local EOF = "eof" + + +local function shm_transition(id, state, last) + local current = shm_get(NS.STATE, id) + + if last then + assert(current == last, fmt("current state (%s) does not match expected (%s)", + current, last)) + assert(state > current, fmt("invalid state change %s => %s", current, state)) + else + current = current or 0 + end + + local diff = state - current + if diff == 0 then return end + + local key = make_key(NS.STATE, id) + local new, err = shm:incr(key, diff) + assert(new ~= nil, fmt("state change shm operation failed: %s", err)) + assert(new == state, fmt("state change %s => %s resulted in %s", current, state, new)) +end + + +local function shm_await_state(id, state, timeout) + timeout = timeout or IDLE_TIMEOUT + local step = 0.01 + local waited = 0 + local start = now() + + local init = shm_get(NS.STATE, id) + + while true do + if exiting() then + return nil, "exiting" + end + + local cur = shm_get(NS.STATE, id) + + if cur == state then + log(DEBUG, fmt("waited %s seconds for state transition %s => %s", + waited, init, state)) + return true + + elseif cur and type(cur) ~= "number" then + log(ERR, "invalid ", NS.STATE, " value: ", cur) + break + + elseif cur and cur > state then + log(ERR, NS.STATE, " is past expected: ", cur) + break + + elseif waited >= timeout then + break + end + + sleep(step) + waited = now() - start + step = min(step * 1.25, MAX_STEP) + end + + log(ERR, "awaiting state change to ", state, " failed") + return exit(444) +end + + +local session = { + accept = function(id, timeout) + log(DEBUG, "session upstream LISTEN: ", id) + shm_add(NS.SESSION, id, encode({ idle_timeout = timeout }), SESSION_TIMEOUT) + shm_add(NS.STATE, id, STATE.LISTEN, SESSION_TIMEOUT) + shm_await_state(id, STATE.CONNECT) + + log(DEBUG, "session upstream ACCEPT: ", id) + shm_transition(id, STATE.ACCEPT, STATE.CONNECT) + return shm_read(NS.HANDSHAKE, id, "get") + end, + + connect = function(id, request) + log(DEBUG, "session client SESSION: ", id) + local data = shm_get(NS.SESSION, id) + + if not data then + return exit(404, { error = fmt("session %s not found", id) }) + end + + local listen = decode(data) + if not listen then + return exit(500, { error = fmt("session %s data invalid: %s", id, data) }) + end + + log(DEBUG, "session client HANDSHAKE: ", id) + shm_add(NS.HANDSHAKE, id, encode(request)) + + log(DEBUG, "session client CONNECT: ", id) + shm_transition(id, STATE.CONNECT, STATE.LISTEN) + shm_await_state(id, STATE.ACCEPT) + + return listen + end, + + abort = function(id) + log(WARN, "session ABORT: ", id) + shm_set(NS.STATE, id, STATE.ABORT) + end, + + aborted = function(id) + return shm_get(NS.STATE, id) == STATE.ABORT + end, + + cleanup = function(role, id) + shm:delete(make_key(role, id)) + end, + + write = function(role, id, data) + shm_push(role, id, data) + end, + + close = function(role, id) + shm_push(role, id, EOF) + end, +} + + +local function init_ws_server(ctx) + local ws, err = ws_server:new({ + timeout = 5000, + max_payload_len = 2^31, + }) + + if not ws then + log(ERR, "failed creating websocket server: ", err) + return exit(444) + end + + ctx.ws = ws +end + + +function _M.rewrite() + local ctx = ngx.ctx + ctx.request = request_infos() + local id = ctx.request.headers[HEADERS.id] or utils.uuid() + + ctx.request_id = id + header[HEADERS.id] = id + + -- for testing header forwarding + header[HEADERS.self] = "1" + header[HEADERS.multi] = { "one", "two" } + + -- masquerade as mock_upstream + header["X-Powered-By"] = "mock_upstream" + + -- allow the client to specify some response headers for us to send + for name, value in pairs(ctx.request.headers) do + name = ngx.re.gsub(name, "^x-mock-websocket-echo-(.+)", "$1", "oji") + if name then + header[name] = value + end + end +end + + +function _M.echo() + local ctx = ngx.ctx + init_ws_server(ctx) + + log(INFO, "new echo server session") + + ---@type resty.websocket.server + local ws = ctx.ws + + local data, typ, sent, err + + local closing = false + + on_abort(function() + log(WARN, "handling client abort") + closing = true + end) + + while not closing and not exiting() do + data, typ, err = ws:recv_frame() + + if data then + if typ == "close" then + closing = true + sent, err = ws:send_close(err, data) + + elseif typ == "binary" or typ == "text" then + if data == const.tokens.request then + data = encode(ctx.request) + + elseif data == const.tokens.response then + data = encode(response_infos()) + end + + sent, err = ws:send_frame(is_fin(err), OPCODES[typ], data) + + elseif typ == "ping" then + sent, err = ws:send_pong(data) + + elseif typ == "pong" then + log(INFO, "client ponged: ", data) + + else + log(ERR, "unhandled echo frame type: ", typ) + closing = true + end + + elseif is_closed(err) or is_client_abort(err) then + log(ERR, "client aborted connection, exiting") + closing = true + + elseif not is_timeout(err) then + log(ERR, "unexpected error while receiving frame: ", err) + closing = true + end + + if not sent and not closing then + log(ERR, "failed sending echo frame: ", err) + closing = true + end + end + + log(INFO, "echo server terminating...") +end + +--- +-- Reads from shm and forwards downstream +-- +---@param role string +---@param id string +---@param sock tcpsock +---@param idle_timeout integer? +local function shm_to_sock(role, id, sock, idle_timeout) + local msg, sent, err + + local read_timeout = idle_timeout * 0.1 + local last = now() + + local peer = PEER[role] + + while not exiting() do + msg, err = shm_read(role, id, "pop", read_timeout) + + if msg == EOF then + log(INFO, role, " reached end of stream") + break + + elseif msg then + log(DEBUG, "sock(", role, ") <- shm, len: ", #msg) + last = now() + sent, err = sock:send(msg) + + if not sent then + log(ERR, "failed forwarding from shm: ", err) + break + end + + elseif err == "timeout" then + local idle = now() - last + + if idle > idle_timeout then + log(NOTICE, "reader session timed out") + break + + elseif session.aborted(id) then + log(WARN, "peer (", peer, ") aborted connection") + break + end + + elseif err == "exiting" then + break + + else + log(ERR, "error while reading from shm: ", err or "unknown") + break + end + end + + log(INFO, role, " shm_to_sock exiting") + + session.cleanup(role, id) + + return "reader" +end + +--- +-- Reads from a socket and writes to shm +-- +---@param role string +---@param id string +---@param sock tcpsock +---@param timeout integer? +local function sock_to_shm(role, id, sock, timeout) + local last = now() + + local peer = PEER[role] + + while not exiting() do + sock:settimeout(timeout * 1000) + local data, err = sock:receiveany(1024 * 128) + + if data then + last = now() + + log(DEBUG, "sock(", role, ") -> shm, len: ", #data) + session.write(peer, id, data) + + elseif is_client_abort(err) then + log(WARN, "sock_to_shm ", role, " abort") + session.abort(id) + break + + elseif is_timeout(err) then + local idle = now() - last + if idle > timeout then + log(ERR, role, " reached idle timeout") + break + + elseif session.aborted(id) then + log(WARN, peer, " aborted connection") + break + end + + elseif is_closed(err) or is_reset(err) then + break + + else + log(ERR, "unexpected sock:receiveany() error: ", err) + break + end + end + + log(INFO, role, " sock_to_shm exiting") + + session.close(peer, id) + + return "writer" +end + +---@param role string +---@param sock tcpsock +---@param id string +local function pipe(role, sock, id, idle_timeout) + local reader = spawn(shm_to_sock, role, id, sock, idle_timeout) + local writer = spawn(sock_to_shm, role, id, sock, idle_timeout) + + local _, res = wait(reader, writer) + + local abort = session.aborted(id) + + local term = abort + and kill + or wait + + if res == "reader" then + term(writer) + + elseif res == "writer" then + term(reader) + + else + log(ERR, "thread exited with error: ", res) + kill(reader) + kill(writer) + end + + log(INFO, "closing ", role, " session...") + + if abort then + exit(444) + end +end + + +--- +-- Upsream/Listener side of a WS session +function _M.listen() + local t = var.arg_idle_timeout + if t and not tonumber(t) then + return exit(400, { error = "invalid idle_timeout: " .. t }) + end + + t = t and tonumber(t) and tonumber(t) / 1000 + t = t or IDLE_TIMEOUT + + local ctx = ngx.ctx + init_ws_server(ctx) + + local id = ctx.request_id + + local data, err = session.accept(id, t) + + if err == "timeout" then + log(ERR, "timed out waiting for client connection") + return + + elseif not data then + log(ERR, "error reading from shm while waiting for client: ", err) + return + end + + assert(ctx.ws:send_text(encode(data))) + + pipe(NS.UPSTREAM, ctx.ws.sock, id, t) +end + + +--- +-- Client side of a WS session +function _M.client() + local id = var.arg_session + if not id or id == "" then + return exit(400, { error = "session query arg is required" }) + end + + local ctx = ngx.ctx + local listen = session.connect(id, ctx.request) + + init_ws_server(ctx) + + pipe(NS.CLIENT, ctx.ws.sock, id, listen.idle_timeout) +end + + +function _M.get_log() + local id = var.log_id + local timeout = tonumber(var.arg_timeout) or 1 + + local entry = shm_read("log", id, "get", timeout) + + if not entry then + return exit(404, { + error = fmt("log for request %s not found", id), + }) + end + + return exit(200, entry) +end + + +function _M.log_to_shm() + local id = header[HEADERS.id] or ngx.req.get_headers()[HEADERS.id] + + if not id then + log(ngx.WARN, "Request with no ", HEADERS.id, " request/response header") + return + end + + local entry = cjson.encode(kong.log.serialize()) + shm_set("log", id, entry) +end + + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec-ee/helpers.lua b/kong-versions/3.2.2.4/kong/spec-ee/helpers.lua new file mode 100644 index 00000000..d89bfd0a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec-ee/helpers.lua @@ -0,0 +1,1164 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +------------------------------------------------------------------ +-- Collection of utilities to help testing Kong-Enterprise features and plugins. +-- +-- @copyright Copyright 2016-2022 Kong Inc. All rights reserved. +-- @module spec-ee.helpers +-- @usage +-- local helpers = require 'spec.helpers' +-- local eehelpers = require 'spec-ee.helpers' + +local helpers = require "spec.helpers" +local listeners = require "kong.conf_loader.listeners" +local cjson = require "cjson.safe" +local assert = require "luassert" +local utils = require "kong.tools.utils" +local admins_helpers = require "kong.enterprise_edition.admins_helpers" + + +local _M = {} + +--- Returns Redis Cluster nodes list. +-- The list can be configured in environment variable `KONG_SPEC_TEST_REDIS_CLUSTER_ADDRESSES`. +-- @function parsed_redis_cluster_addresses +-- @treturn table nodes list +-- @usage +-- ~ $ export KONG_SPEC_TEST_REDIS_CLUSTER_ADDRESSES=node-1:6379,node-2:6379,node-3:6379 +-- +-- local redis_cluster_addresses = parsed_redis_cluster_addresses() +function _M.parsed_redis_cluster_addresses() + local env_cluster_addresses = os.getenv("KONG_SPEC_TEST_REDIS_CLUSTER_ADDRESSES") + + -- default + if not env_cluster_addresses then + return { "localhost:6381", "localhost:6382", "localhost:6383" } + end + + local redis_cluster_addresses = {} + for node in string.gmatch(env_cluster_addresses, "[^,]+") do + table.insert(redis_cluster_addresses, node) + end + + return redis_cluster_addresses +end + +--- Registers RBAC resources. +-- @param db db db object (see `spec.helpers.get_db_utils`) +-- @param ws_name (optional) +-- @param ws_table (optional) +-- @return on success: `super_admin, super_user_role` +-- @return on failure: `nil, nil, err` +function _M.register_rbac_resources(db, ws_name, ws_table) + local bit = require "bit" + local rbac = require "kong.rbac" + local bxor = bit.bxor + + local opts = ws_table and { workspace = ws_table.id } + + -- action int for all + local action_bits_all = 0x0 + for k, v in pairs(rbac.actions_bitfields) do + action_bits_all = bxor(action_bits_all, rbac.actions_bitfields[k]) + end + + local roles = {} + local err, _ + -- now, create the roles and assign endpoint permissions to them + + -- first, a read-only role across everything + roles.read_only, err = db.rbac_roles:insert({ + id = utils.uuid(), + name = "read-only", + comment = "Read-only access across all initial RBAC resources", + }, opts) + + if err then + return nil, nil, err + end + + -- this role only has the 'read-only' permissions + _, err = db.rbac_role_endpoints:insert({ + role = { id = roles.read_only.id, }, + workspace = ws_name or "*", + endpoint = "*", + actions = rbac.actions_bitfields.read, + }) + + ws_name = ws_name or "default" + + if err then + return nil, nil, err + end + + -- admin role with CRUD access to all resources except RBAC resource + roles.admin, err = db.rbac_roles:insert({ + id = utils.uuid(), + name = "admin", + comment = "CRUD access to most initial resources (no RBAC)", + }, opts) + + if err then + return nil, nil, err + end + + -- the 'admin' role has 'full-access' + 'no-rbac' permissions + _, err = db.rbac_role_endpoints:insert({ + role = { id = roles.admin.id, }, + workspace = "*", + endpoint = "*", + actions = action_bits_all, -- all actions + }) + + if err then + return nil, nil, err + end + + local rbac_endpoints = { '/rbac/*', '/rbac/*/*', '/rbac/*/*/*' } + for _, endpoint in ipairs(rbac_endpoints) do + _, err = db.rbac_role_endpoints:insert({ + role = { id = roles.admin.id, }, + workspace = "*", + endpoint = endpoint, + negative = true, + actions = action_bits_all, -- all actions + }) + + if err then + return nil, nil, err + end + end + + -- finally, a super user role who has access to all initial resources + roles.super_admin, err = db.rbac_roles:insert({ + id = utils.uuid(), + name = "super-admin", + comment = "Full CRUD access to all initial resources, including RBAC entities", + }, opts) + + if err then + return nil, nil, err + end + + _, err = db.rbac_role_entities:insert({ + role = { id = roles.super_admin.id, }, + entity_id = "*", + entity_type = "wildcard", + actions = action_bits_all, -- all actions + }) + + if err then + return nil, nil, err + end + + _, err = db.rbac_role_endpoints:insert({ + role = { id = roles.super_admin.id, }, + workspace = "*", + endpoint = "*", + actions = action_bits_all, -- all actions + }) + + if err then + return nil, nil, err + end + + local super_admin, err = db.rbac_users:insert({ + id = utils.uuid(), + name = "super_gruce-" .. ws_name, + user_token = "letmein-" .. ws_name, + enabled = true, + comment = "Test - Initial RBAC Super Admin User" + }, opts) + + if err then + return nil, nil, err + end + + local super_user_role, err = db.rbac_user_roles:insert({ + user = super_admin, + role = roles.super_admin, + }) + + if err then + return nil, nil, err + end + + return super_admin, super_user_role +end + + +--- returns a pre-configured `http_client` for the Kong Admin GUI. +-- @tparam[opt=60000] number timeout the timeout to use +-- @tparam[opt] number forced_port if provided will override the port in +-- the Kong configuration with this port +-- @return http-client, see `spec.helpers.http_client`. +function _M.admin_gui_client(timeout, forced_port) + local admin_ip = "127.0.0.1" + local admin_port = forced_port + for _, entry in ipairs(_M.admin_gui_listeners) do + if entry.ssl == false then + admin_ip = entry.ip + admin_port = entry.port + end + end + assert(admin_port, "No http-admin found in the configuration") + return helpers.http_client(admin_ip, admin_port, timeout or 60000) +end + +--- Returns the Dev Portal port. +-- Throws an error if not found in the configuration. +-- @tparam[opt=false] boolean ssl if `true` returns the ssl port +-- @treturn number the port +function _M.get_portal_api_port(ssl) + if ssl == nil then ssl = false end + for _, entry in ipairs(_M.portal_api_listeners) do + if entry.ssl == ssl then + return entry.port + end + end + error("No portal port found for ssl=" .. tostring(ssl), 2) +end + + +--- Returns the Dev Portal ip. +-- Throws an error if not found in the configuration. +-- @tparam[opt=false] boolean ssl if `true` returns the ssl ip +-- @treturn string the ip address +function _M.get_portal_api_ip(ssl) + if ssl == nil then ssl = false end + for _, entry in ipairs(_M.portal_api_listeners) do + if entry.ssl == ssl then + return entry.ip + end + end + error("No portal ip found for ssl=" .. tostring(ssl), 2) +end + + +--- Returns the Dev Portal port. +-- Throws an error if not found in the configuration. +-- @tparam[opt=false] boolean ssl if `true` returns the ssl port +-- @treturn number the port +function _M.get_portal_gui_port(ssl) + if ssl == nil then ssl = false end + for _, entry in ipairs(_M.portal_gui_listeners) do + if entry.ssl == ssl then + return entry.port + end + end + error("No portal port found for ssl=" .. tostring(ssl), 2) +end + + +--- Returns the Dev Portal ip. +-- Throws an error if not found in the configuration. +-- @tparam[opt=false] boolean ssl if `true` returns the ssl ip +-- @treturn string the ip address +function _M.get_portal_gui_ip(ssl) + if ssl == nil then ssl = false end + for _, entry in ipairs(_M.portal_gui_listeners) do + if entry.ssl == ssl then + return entry.ip + end + end + error("No portal ip found for ssl=" .. tostring(ssl), 2) +end + + +--- returns a pre-configured `http_client` for the Dev Portal API. +-- @tparam number timeout the timeout to use +-- the Kong configuration with this port +-- @return http-client, see `spec.helpers.http_client`. +function _M.portal_api_client(timeout) + local portal_ip = _M.get_portal_api_ip() + local portal_port = _M.get_portal_api_port() + assert(portal_ip, "No portal_ip found in the configuration") + return helpers.http_client(portal_ip, portal_port, timeout) +end + + +--- returns a pre-configured `http_client` for the Dev Portal GUI. +-- @tparam number timeout the timeout to use +-- the Kong configuration with this port +-- @return http-client, see `spec.helpers.http_client`. +function _M.portal_gui_client(timeout) + local portal_ip = _M.get_portal_gui_ip() + local portal_port = _M.get_portal_gui_port() + assert(portal_ip, "No portal_ip found in the configuration") + return helpers.http_client(portal_ip, portal_port, timeout) +end + +-- TODO: remove this, the clients already have a post helper method... +function _M.post(client, path, body, headers, expected_status) + headers = headers or {} + headers["Content-Type"] = "application/json" + local res = assert(client:send{ + method = "POST", + path = path, + body = body or {}, + headers = headers + }) + return cjson.decode(assert.res_status(expected_status or 201, res)) +end + + +--- Creates a new Admin user. +-- The returned admin will have the rbac token set in field `rbac_user.raw_user_token`. This +-- is only for test purposes and should never be done outside the test environment. +-- @param email email address +-- @param custom_id custom id to use +-- @param status admin status +-- @param db db object (see `spec.helper.get_db_utils`) +-- @param username username +-- @param workspace workspace +-- @return The admin object created, or `nil + err` on failure to get the token +-- @usage +-- local admin = eehelpers.create_admin(...) +-- local admin_token = admin.rbac_user.raw_user_token +function _M.create_admin(email, custom_id, status, db, username, workspace) + local opts = workspace and { workspace = workspace.id } + + local admin = assert(db.admins:insert({ + username = username or email, + custom_id = custom_id, + email = email, + status = status, + }, opts)) + + local token_res, err = admins_helpers.update_token(admin) + if err then + return nil, err + end + + -- only used for tests so we can reference token + -- WARNING: do not do this outside test environment + admin.rbac_user.raw_user_token = token_res.body.token + + return admin +end + +-- add a retry logic for CI +local function get_auth(client, username, password, retry) + if not client then + client = helpers.admin_client() + end + local res, err = assert(client:send { + method = "GET", + path = "/auth", + headers = { + ["Authorization"] = "Basic " .. ngx.encode_base64(username .. ":" + .. password), + ["Kong-Admin-User"] = username, + } + }) + + if err and err:find("closed", nil, true) and not retry then + client = nil + return get_auth(client, username, password, true) + end + assert.is_nil(err, "failed GET /auth: " .. tostring(err)) + assert.res_status(200, res) + return res +end + +--- returns the cookie for the admin. +-- @param client the http-client to use to make the auth request +-- @param username the admin user name to get the cookie for +-- @param password the password for the admin user +-- @return the cookie value, as returned in the `Set-Cookie` response header. +function _M.get_admin_cookie_basic_auth(client, username, password) + local res = get_auth(client, username, password) + return res.headers["Set-Cookie"] +end + +--- Sets up the oauth introspection fixture. +-- This generates a fixture. The ip+port+path is used to generate the nginx directives +-- `listen` and `location` in the fixture/mock. +-- @tparam[opt] string ip the ip address, default `"127.0.0.1"` +-- @tparam[opt] number port the port, default `10000` +-- @tparam[opt] string path the path, default `"/introspect"` +-- @return fixture + url, where url is build from the input ip/port/path, and fixture is a table with an `http_mock` that +-- can be used when calling `spec.helpers.start_kong`. +function _M.setup_oauth_introspection_fixture(ip, port, path) + path = path or "/introspect" + ip = ip or "127.0.0.1" + port = port or "10000" + + local introspection_url = ("http://%s:%s%s"):format( + ip, port, path) + local fixtures = { + http_mock = { + mock_introspection = [=[ + server { + server_name mock_introspection; + listen ]=] .. port .. [=[; + location ~ "]=] .. path .. [=[" { + content_by_lua_block { + local function x() + + ngx.req.set_header("Content-Type", "application/json") + + if ngx.req.get_method() == "POST" then + ngx.req.read_body() + local args = ngx.req.get_post_args() + if not args then + return ngx.exit(500) + end + if args.token == "valid" or + args.token == "valid_consumer_client_id" or + args.token == "valid_consumer_client_id_not_added_initially" or + args.token == "valid_consumer" or + args.token == "valid_consumer_limited" or + args.token == "valid_expired" or + args.token == "invalid_with_errors" or + args.token == "invalid_without_errors" or + args.token == "valid_complex" then + + if args.token == "valid_consumer" then + ngx.say([[{"active":true, + "username":"bob"}]]) + elseif args.token == "valid_consumer_client_id" then -- omit `username`, return `client_id` + ngx.say([[{"active":true, + "client_id": "kongsumer"}]]) + elseif args.token == "valid_consumer_client_id_not_added_initially" then -- omit `username`, return `client_id` + ngx.say([[{"active":true, + "client_id": "kongsumer_not_added_initially"}]]) + elseif args.token == "valid_consumer_limited" then + ngx.say([[{"active":true, + "username":"limited-bob"}]]) + elseif args.token == "valid_complex" then + ngx.say([[{"active":true, + "username":"some_username", + "client_id":"some_client_id", + "scope":"some_scope", + "sub":"some_sub", + "aud":"some_aud", + "iss":"some_iss", + "exp":"99999999999", + "iat":"some_iat", + "foo":"bar", + "bar":"baz", + "baz":"baaz"}]]) + elseif args.token == "valid_expired" then + ngx.say([[{"active":true, + "exp":"1"}]]) + elseif args.token == "invalid_with_errors" then + ngx.say([[{"active":false, "error":"dummy error", "error_description": "dummy error desc"}]]) + elseif args.token == "invalid_without_errors" then + ngx.say([[{"active":false}]]) + else + ngx.say([[{"active":true}]]) + end + return ngx.exit(200) + end + end + + ngx.say([[{"active":false}]]) + return ngx.exit(200) + + end + local ok, err = pcall(x) + if not ok then + ngx.log(ngx.ERR, "Mock error: ", err) + end + } + } + } + ]=] + }, + } + return fixtures, introspection_url +end + + + + +do + local resty_ws_client = require "resty.websocket.client" + local ws = require "spec-ee.fixtures.websocket" + local ws_const = require "spec-ee.fixtures.websocket.constants" + local inspect = require "inspect" + + local function response_status(res) + if type(res) ~= "string" then + error("expected response data as a string", 2) + end + + -- 123456789012345678901234567890 + -- 000000000111111111122222222223 + -- HTTP/1.1 301 Moved Permanently + local version = tonumber(res:sub(6, 8)) + if not version then + return nil, "failed parsing HTTP response version" + end + + local status = tonumber(res:sub(10, 12)) + if not status then + return nil, "failed parsing HTTP response status" + end + + local reason = res:match("[^\r\n]+", 14) + + return status, version, reason + end + + local headers_mt = { + __index = function(self, k) + return rawget(self, k:lower()) + end, + + __newindex = function(self, k, v) + return rawset(self, k:lower(), v) + end, + } + + + local function add_header(t, name, value) + if not name or not value then + return + end + + if t[name] then + value = { t[name], value } + end + t[name] = value + end + + + local function response_headers(res) + if type(res) ~= "string" then + return nil, "expected response data as a string" + end + + local seen_status_line = false + + local headers = setmetatable({}, headers_mt) + + for line in res:gmatch("([^\r\n]+)") do + if seen_status_line then + local name, value = line:match([[^([^:]+):%s*(.+)]]) + + add_header(headers, name, value) + else + seen_status_line = true + end + end + + return headers + end + + -- format WebSocket request headers + -- + -- This function accepts headers in both forms: + -- + -- * hash-like: { name = "value" } + -- * array-like: { "name: value" } + -- + -- ...and formats them into { "name: value" } for lua-resty-websocket + -- + local function format_request_headers(headers) + if not headers then return end + + local t = {} + + for i = 1, #headers do + t[i] = headers[i] + headers[i] = nil + end + for k, v in pairs(headers) do + if type(v) == "table" then + for _, val in ipairs(v) do + table.insert(t, k .. ": " .. val) + end + else + table.insert(t, k .. ": " .. v) + end + end + + if #t == 0 then return end + return t + end + + local fmt = string.format + + local function handle_failure(params, uri, err, res, id) + local msg = { + "WebSocket handshake failed!", + "--- Request URI: " .. uri, + "--- Request Params:", inspect(params), + "--- Error: ", err or "unknown error", + "--- Response:", res or "", + } + + -- attempt to retrieve the request ID from the request or response headers + local header = ws_const.headers.id + id = id or + params and + params.headers and + params.headers[header] or + (response_headers(res) or {})[header] + + if id then + table.insert(msg, "--- Request ID: " .. id) + local log = ws.get_session_log(id) + if log then + table.insert(msg, "--- kong.log.serialize():") + table.insert(msg, inspect(log)) + end + end + + table.insert(msg, "---") + assert(nil, table.concat(msg, "\n\n")) + end + + + -- param client ws.test.client + local function body_reader(client) + -- param res ws.test.client.response + return function(res) + if res._cached_body then + return res._cached_body + end + + local body = "" + local err + + local status = res.original_status or res.status + local content_length = tonumber(res.headers["content-length"]) + + local sock = client.client.sock + + if status == 101 then + -- simulate HTTP mock upstream + body = client:get_raw_request() + + elseif content_length then + sock:settimeout(1000) + body, err = sock:receive(content_length) + sock:close() + + else + sock:close() + end + + -- cache the result so :read_body() can be called multiple times + res._cached_body = body or "" + + return body, err + end + end + + local OPCODES = ws_const.opcode + + -- param client resty.websocket.client + -- param data string + -- return boolean ok + -- return string? error + local function init_fragment(client, opcode, data) + return client:send_frame(false, opcode, data) + end + + -- param client resty.websocket.client + -- param data string + -- return boolean ok + -- return string? error + local function continue_fragment(client, data) + return client:send_frame(false, OPCODES.continuation, data) + end + + -- param client resty.websocket.client + -- param data string + -- return boolean ok + -- return string? error + local function finish_fragment(client, data) + return client:send_frame(true, OPCODES.continuation, data) + end + + -- param client resty.websocket.client + -- param typ '"text"'|'"binary"' + -- param data string[] + -- return boolean ok + -- return string? error + local function send_fragments(client, typ, data) + assert(typ == "text" or typ == "string", + "attempt to fragment non-data frame") + + local opcode = OPCODES[typ] + local ok, err + local len = #data + for i = 1, len do + local first = i == 1 + local last = i == len + + local payload = data[i] + + -- single length: just send a single frame + if first and last then + ok, err = client:send_frame(true, opcode, payload) + + -- first frame: init fragment + elseif first then + ok, err = init_fragment(client, opcode, payload) + + -- last frame: finish fragment + elseif last then + ok, err = finish_fragment(client, payload) + + -- in the middle: continue + else + ok, err = continue_fragment(client, payload) + end + + if not ok then + return nil, fmt("failed sending %s fragment %s/%s: %s", + typ, i, len, err) + end + end + + return true + end + + -- @class ws.test.client.response : table + -- @field status number + -- @field reason string + -- @field version number + -- @field headers table + -- @field read_body function + + -- @class ws.test.client + -- @field client resty.websocket.client + -- @field id string + -- @field response ws.test.client.response + local ws_client = {} + + -- param data string|string[] + -- return boolean ok + -- return string? error + function ws_client:send_text(data) + if type(data) == "table" then + return send_fragments(self.client, "text", data) + end + + return self.client:send_text(data) + end + + -- param data string|string[] + -- return boolean ok + -- return string? error + function ws_client:send_binary(data) + if type(data) == "table" then + return send_fragments(self.client, "binary", data) + end + + return self.client:send_binary(data) + end + + -- param data string + -- return boolean ok + -- return string? error + function ws_client:init_text_fragment(data) + return init_fragment(self.client, OPCODES.text, data) + end + + -- param data string + -- return boolean ok + -- return string? error + function ws_client:init_binary_fragment(data) + return init_fragment(self.client, OPCODES.binary, data) + end + + -- param data string + -- return boolean ok + -- return string? error + function ws_client:send_continue(data) + return continue_fragment(self.client, data) + end + + -- param data string + -- return boolean ok + -- return string? error + function ws_client:send_final_fragment(data) + return finish_fragment(self.client, data) + end + + + -- param data? string + -- return boolean ok + -- return string? error + function ws_client:send_ping(data) + return self.client:send_ping(data) + end + + -- param data? string + -- return boolean ok + -- return string? error + function ws_client:send_pong(data) + return self.client:send_pong(data) + end + + -- param data? string + -- param status? integer + -- return boolean ok + -- return string? error + function ws_client:send_close(data, status) + return self.client:send_close(status, data) + end + + function ws_client:send_frame(...) + return self.client:send_frame(...) + end + + -- return string? data + -- return string? type + -- return string|number|nil err + function ws_client:recv_frame() + return self.client:recv_frame() + end + + -- unlike resty.websocket.client, this does _not_ attempt to send + -- a close frame + -- return boolean ok + -- return string? error + function ws_client:close() + return self.client.sock:close() + end + + -- fetch the raw handshake request data (as seen by the mock upstream) + -- return string + function ws_client:get_raw_request() + if self._request then + return self._request + end + + local sent, err = self:send_text(ws_const.tokens.request) + assert.truthy(sent, "failed sending $_REQUEST text frame: " .. tostring(err)) + + local data, typ, status = self:recv_frame() + assert.truthy(data, "failed receiving request data: " .. tostring(status)) + assert.equals("text", typ, "wrong message type for request: " .. typ) + + self._request = data + return data + end + + -- fetch and decode handshake request data (as seen by the mock upstream) + -- return table + function ws_client:get_request() + local data = self:get_raw_request() + local req = assert(cjson.decode(data)) + + local headers = setmetatable({}, headers_mt) + for k, v in pairs(req.headers) do + headers[k] = v + end + req.headers = headers + + return req + end + + ws_client.__index = ws_client + + + --- Instantiate a WebSocket client + -- @tparam table opts options table + -- @tparam string opts.path the path + -- @tparam table opts.query table with query args + -- @tparam string opts.scheme either '"ws"'|'"wss"' + -- @tparam number opts.port port + -- @tparam string opts.addr address + -- @tparam bool opts.fail_on_error boolean fail on error + -- @tparam number opts.connect_timeout connect timeout + -- @tparam number opts.write_timeout write timeout + -- @tparam number opts.read_timeout read timeout + -- @tparam number opts.timeout generic timeout if others not given + -- @return websocket client + function _M.ws_client(opts) + opts = opts or {} + + local query = opts.query or {} + local scheme = opts.scheme or "ws" + + local port = opts.port + if not port then + port = (scheme == "wss" and 443) or 80 + end + + local client, err = resty_ws_client:new({ max_payload_len = 2^31 }) + assert(client, err) + + local qs = ngx.encode_args(query) + if qs and qs ~= "" then qs = "?" .. qs end + + local uri = fmt("%s://%s:%s%s%s", + scheme, + opts.addr or opts.host or "127.0.0.1", + port, + opts.path or "/", + qs + ) + + if opts.connect_timeout or opts.write_timeout or opts.read_timeout then + client.sock:settimeouts(opts.connect_timeout, + opts.write_timeout, + opts.read_timeout) + elseif opts.timeout then + client.sock:settimeout(opts.timeout) + end + + local id = opts.headers and opts.headers[ws_const.headers.id] + + local params = { + host = opts.host or opts.addr or "127.0.0.1", + origin = opts.origin, + key = opts.key, + server_name = opts.server_name or opts.host or opts.addr, + keep_response = true, + headers = format_request_headers(opts.headers), + client_cert = opts.client_cert, + client_priv_key = opts.client_priv_key, + } + + local ok, res + ok, err, res = client:connect(uri, params) + + if opts.fail_on_error and (not ok or err ~= nil) then + handle_failure(params, uri, err, res, id) + end + + assert.is_not_nil(res, "resty.websocket.client:connect() returned no response data") + + local status, version, reason = response_status(res) + assert.not_nil(status, version) + + local self = setmetatable({ + client = client, + response = { + status = status, + reason = reason, + version = version, + headers = response_headers(res), + } + }, ws_client) + + + -- without this function the response modifier won't think this is + -- a valid response object + self.response.read_body = body_reader(self) + + self.id = id or self.response.headers[ws_const.headers.id] + + return self + end + + --- Establish a WebSocket connection to Kong. + -- The defaults take the `opts.scheme` into account and will automatically + -- pick either the plain or ssl based details. + -- @tparam table opts same table as `ws_client`, but has defaults for the following fields; + -- @tparam number opts.port port, defaults to Kong proxy port + -- @tparam string opts.addr address, defaults to Kong proxy ip + -- @tparam bool opts.fail_on_error boolean fail on error, defaults to `true` + -- @return websocket client + function _M.ws_proxy_client(opts) + opts = opts or {} + local ssl = opts.scheme == "wss" + + if not opts.addr then + opts.addr = helpers.get_proxy_ip(ssl) + end + + if not opts.port then + opts.port = helpers.get_proxy_port(ssl) + end + + if opts.fail_on_error ~= false then + opts.fail_on_error = true + end + + return assert(_M.ws_client(opts)) + end + + + -- A client object that is loosely compatible with `helpers.proxy_client` + -- but is WebSocket-aware. + -- + -- This is mostly useful for tests that need to validate request/response + -- data (i.e. auth plugins) and is not intended for WebSocket-centric tests + local ws_compat_client = {} + + function ws_compat_client:send(params) + if params.method then + assert.equals("GET", params.method, "only GET is supported") + params.method = nil + end + + do + local host, host_key + for k, v in pairs(params.headers or {}) do + if k:lower() == "host" then + host = v + host_key = k + break + end + end + + if host_key then + params.headers[host_key] = nil + end + + params.host = host + end + + if not params.force_path then + -- this saves me from having to update lots and lots of tests + local path = params.path or "/" + + local qs = path:find("?", 1, true) + if qs then + params.query = ngx.decode_args( (path:sub(qs + 1)) ) + path = path:sub(1, qs - 1) + end + + params.path = path + end + + params.fail_on_error = false + + if self.ssl then + params.ssl = true + end + + local client = _M.ws_proxy_client(params) + assert.not_nil(client) + + local response = client.response + + if response.status == 101 then + assert.not_nil(response.headers[ws_const.headers.self], + ws.const.headers.self .. " header is missing. " .. + "The request was not routed to the proper route/service") + client:get_request() + client:send_close() + client:close() + + -- many existing tests check for a 200 status code + -- + -- monkey-patch it so that we don't have to update everything + response.status = 200 + response.original_status = 101 + else + + -- read the body once (this ensures that the underlying socket is closed) + local body, err = response:read_body() + assert.not_nil(body, "failed reading non-101 websocket response body: ", err) + end + + return client.response + end + + function ws_compat_client:get(path, params) + params.path = path + params.method = "GET" + return self:send(params) + end + + function ws_compat_client:close() + return true + end + + setmetatable(ws_compat_client, { + __index = function(_, k) + error("method " .. tostring(k) .. " is NYI") + end, + }) + + + + --- A client object that is loosely compatible with `spec.helpers.proxy_client` + -- but is WebSocket-aware. + -- + -- This is mostly useful for tests that need to validate request/response + -- data (i.e. auth plugins) and is not intended for WebSocket-centric tests + -- + -- See `spec-ee.helpers.each_protocol` + function _M.ws_proxy_client_compat() + return setmetatable({ ssl = false }, { __index = ws_compat_client }) + end + + --- A client for wss. Same as the WS one, but for WSS. + -- See `spec-ee.helpers.ws_proxy_client_compat` and `spec-ee.helpers.each_protocol`. + function _M.wss_proxy_client_compat() + return setmetatable({ ssl = true }, { __index = ws_compat_client }) + end + +end + + +do + local protos = { + http = { + proxy_client = helpers.proxy_client, + proxy_ssl_client = helpers.proxy_ssl_client, + OK = 200, + route_protos = { "http" }, + service_proto = "http", + service_proto_tls = "https", + }, + + websocket = { + proxy_client = _M.ws_proxy_client_compat, + proxy_ssl_client = _M.wss_proxy_client_compat, + OK = 101, + route_protos = { "ws" }, + service_proto = "ws", + service_proto_tls = "wss", + }, + } + + --- Iterator over http and websocket protocols. + -- This is useful to run the same tests over multiple protocols. The returned + -- table has entries for each protocol specific element. + -- + -- @usage + -- -- check the 'proto' table for other fields supported + -- for proto in eehelpers.each_protocol() do + -- + -- describe("running tests for protocol '"..proto.service_proto.."'", function() + -- + -- local client = proto.proxy_client() -- returns either an `http` or `ws` client + -- local sslclient = proto.proxy_ssl_client() -- returns either an `https` or `wss` client + -- local ok_status = proto.OK -- returns either 200 (for http) or 101 (for ws) + -- + -- it("do a test", function() + -- -- test here + -- end) + -- end) + -- end + function _M.each_protocol() + return pairs(protos) + end +end + +---------------- +-- Variables/constants +-- @section exported-fields + + +--- A list of fields/constants exported on the `spec-ee.helpers` module table: +-- @table helpers +-- @field portal_api_listeners the listener configuration for the Portal API +-- @field portal_gui_listeners the listener configuration for the Portal GUI +-- @field admin_gui_listeners the listener configuration for the Admin GUI +-- @field redis_cluster_addresses the contact points for the Redis Cluster + +local http_flags = { "ssl", "http2", "proxy_protocol", "transparent" } +_M.portal_api_listeners = listeners._parse_listeners(helpers.test_conf.portal_api_listen, http_flags) +_M.portal_gui_listeners = listeners._parse_listeners(helpers.test_conf.portal_gui_listen, http_flags) +_M.admin_gui_listeners = listeners._parse_listeners(helpers.test_conf.admin_gui_listen, http_flags) +_M.redis_cluster_addresses = _M.parsed_redis_cluster_addresses() + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/README.md b/kong-versions/3.2.2.4/kong/spec/README.md new file mode 100644 index 00000000..b2fd654e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/README.md @@ -0,0 +1,31 @@ +Test helpers for Kong (integration) tests +========================================= + +To generate the documentation run the following command in the Kong source tree: + +``` +# install ldoc using LuaRocks +luarocks install ldoc + +# generate and open the docs +cd spec && ldoc . && open docs/index.html && cd .. +``` + +## Environment variables + +When testing, Kong will ignore the `KONG_xxx` environment variables that are +usually used to configure it. This is to make sure that the tests run deterministically. +If this behaviour needs to be overridden, the `KONG_TEST_xxx` +version of the variable can be used, which will be respected by the Kong test +instance. + +To prevent the test helpers from cleaning the Kong working directory, the +variable `KONG_TEST_DONT_CLEAN` can be set. +This comes in handy when inspecting the logs after the tests complete. + +When testing with Redis, the environment variable `KONG_SPEC_TEST_REDIS_HOST` can be +used to specify where the Redis server can be found. If not specified, it will default +to `127.0.0.1`. This setting is available to tests via `helpers.redis_host`. + +The configuration file to be used can be set with `KONG_SPEC_TEST_CONF_PATH`. It can be +accessed via helpers as `helpers.test_conf_path`. diff --git a/kong-versions/3.2.2.4/kong/spec/config.ld b/kong-versions/3.2.2.4/kong/spec/config.ld new file mode 100644 index 00000000..9a425db8 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/config.ld @@ -0,0 +1,11 @@ +project='Kong test helpers' +title='Kong test framework' +description='Test helper functions for Kong (integration) testing' +format='markdown' +file={"./helpers.lua","../spec-ee/helpers.lua"} +dir='docs' +readme='README.md' +sort=true +sort_modules=true +style='./' +no_space_before_args=true diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/1.2_custom_nginx.template b/kong-versions/3.2.2.4/kong/spec/fixtures/1.2_custom_nginx.template new file mode 100644 index 00000000..bd90a621 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/1.2_custom_nginx.template @@ -0,0 +1,579 @@ +# This is a custom nginx configuration template for Kong specs +# This is the Kong 1.2 default template + +> if nginx_user then +user ${{NGINX_USER}}; +> end +worker_processes ${{NGINX_WORKER_PROCESSES}}; +daemon ${{NGINX_DAEMON}}; + +pid pids/nginx.pid; # mandatory even for custom config templates +error_log logs/error.log ${{LOG_LEVEL}}; + +events {} + +http { +> if #proxy_listeners > 0 or #admin_listeners > 0 then + error_log logs/error.log ${{LOG_LEVEL}}; + +> if nginx_optimizations then +>-- send_timeout 60s; # default value +>-- keepalive_timeout 75s; # default value +>-- client_body_timeout 60s; # default value +>-- client_header_timeout 60s; # default value +>-- tcp_nopush on; # disabled until benchmarked +>-- proxy_buffer_size 128k; # disabled until benchmarked +>-- proxy_buffers 4 256k; # disabled until benchmarked +>-- proxy_busy_buffers_size 256k; # disabled until benchmarked +>-- reset_timedout_connection on; # disabled until benchmarked +> end + + proxy_ssl_server_name on; + underscores_in_headers on; + + lua_package_path '${{LUA_PACKAGE_PATH}};;'; + lua_package_cpath '${{LUA_PACKAGE_CPATH}};;'; + lua_socket_pool_size ${{LUA_SOCKET_POOL_SIZE}}; + lua_max_running_timers 4096; + lua_max_pending_timers 16384; + lua_shared_dict kong 5m; + lua_shared_dict kong_db_cache ${{MEM_CACHE_SIZE}}; +> if database == "off" then + lua_shared_dict kong_db_cache_2 ${{MEM_CACHE_SIZE}}; +> end + lua_shared_dict kong_db_cache_miss 12m; +> if database == "off" then + lua_shared_dict kong_db_cache_miss_2 12m; +> end + lua_shared_dict kong_locks 8m; + lua_shared_dict kong_process_events 5m; + lua_shared_dict kong_cluster_events 5m; + lua_shared_dict kong_healthchecks 5m; + lua_shared_dict kong_rate_limiting_counters 12m; +> if database == "cassandra" then + lua_shared_dict kong_cassandra 5m; +> end + lua_socket_log_errors off; +> if lua_ssl_trusted_certificate_combined then + lua_ssl_trusted_certificate '${{LUA_SSL_TRUSTED_CERTIFICATE_COMBINED}}'; +> end + lua_ssl_verify_depth ${{LUA_SSL_VERIFY_DEPTH}}; + + lua_shared_dict kong_mock_upstream_loggers 10m; + + # injected nginx_http_* directives +> for _, el in ipairs(nginx_http_directives) do + $(el.name) $(el.value); +> end + + init_by_lua_block { + Kong = require 'kong' + Kong.init() + } + + init_worker_by_lua_block { + Kong.init_worker() + } + +> if #proxy_listeners > 0 then + upstream kong_upstream { + server 0.0.0.1; + balancer_by_lua_block { + Kong.balancer() + } +> if upstream_keepalive and upstream_keepalive > 0 then + keepalive ${{UPSTREAM_KEEPALIVE}}; +> end + } + + server { + server_name kong; +> for i = 1, #proxy_listeners do + listen $(proxy_listeners[i].listener); +> end + error_page 400 404 408 411 412 413 414 417 494 /kong_error_handler; + error_page 500 502 503 504 /kong_error_handler; + + access_log logs/access.log; + +> if proxy_ssl_enabled then +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; + ssl_certificate_by_lua_block { + Kong.ssl_certificate() + } +> end + + # injected nginx_proxy_* directives +> for _, el in ipairs(nginx_proxy_directives) do + $(el.name) $(el.value); +> end +> for i = 1, #trusted_ips do + set_real_ip_from $(trusted_ips[i]); +> end + + location / { + default_type ''; + + set $ctx_ref ''; + set $upstream_te ''; + set $upstream_host ''; + set $upstream_upgrade ''; + set $upstream_connection ''; + set $upstream_scheme ''; + set $upstream_uri ''; + set $upstream_x_forwarded_for ''; + set $upstream_x_forwarded_proto ''; + set $upstream_x_forwarded_host ''; + set $upstream_x_forwarded_port ''; + + rewrite_by_lua_block { + Kong.rewrite() + } + + access_by_lua_block { + Kong.access() + } + + proxy_http_version 1.1; + proxy_set_header Host $upstream_host; + proxy_set_header Upgrade $upstream_upgrade; + proxy_set_header Connection $upstream_connection; + proxy_set_header X-Forwarded-For $upstream_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host; + proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass_header Server; + proxy_pass_header Date; + proxy_ssl_name $upstream_host; + proxy_pass $upstream_scheme://kong_upstream$upstream_uri; + + header_filter_by_lua_block { + Kong.header_filter() + } + + body_filter_by_lua_block { + Kong.body_filter() + } + + log_by_lua_block { + Kong.log() + } + } + + location = /kong_error_handler { + internal; + uninitialized_variable_warn off; + + content_by_lua_block { + Kong.handle_error() + } + + header_filter_by_lua_block { + Kong.header_filter() + } + + body_filter_by_lua_block { + Kong.body_filter() + } + + log_by_lua_block { + Kong.log() + } + } + } +> end + +> if #admin_listeners > 0 then + server { + charset UTF-8; + server_name kong_admin; +> for i = 1, #admin_listeners do + listen $(admin_listeners[i].listener); +> end + + access_log logs/admin_access.log; + +> if admin_ssl_enabled then +> for i = 1, #admin_ssl_cert do + ssl_certificate $(admin_ssl_cert[i]); + ssl_certificate_key $(admin_ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; +> end + + # injected nginx_admin_* directives +> for _, el in ipairs(nginx_admin_directives) do + $(el.name) $(el.value); +> end + + location / { + default_type application/json; + content_by_lua_block { + Kong.serve_admin_api() + } + } + + location /nginx_status { + internal; + access_log off; + stub_status; + } + + location /robots.txt { + return 200 'User-agent: *\nDisallow: /'; + } + } +> end + + server { + server_name mock_upstream; + + listen 15555; + listen 15556 ssl; + +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; + + set_real_ip_from 127.0.0.1; + + location / { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + ngx.status = 404 + return mu.send_default_json_response() + } + } + + location = / { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({ + valid_routes = { + ["/ws"] = "Websocket echo server", + ["/get"] = "Accepts a GET request and returns it in JSON format", + ["/xml"] = "Returns a simple XML document", + ["/post"] = "Accepts a POST request and returns it in JSON format", + ["/response-headers?:key=:val"] = "Returns given response headers", + ["/cache/:n"] = "Sets a Cache-Control header for n seconds", + ["/anything"] = "Accepts any request and returns it in JSON format", + ["/request"] = "Alias to /anything", + ["/delay/:duration"] = "Delay the response for seconds", + ["/basic-auth/:user/:pass"] = "Performs HTTP basic authentication with the given credentials", + ["/status/:code"] = "Returns a response with the specified ", + ["/stream/:num"] = "Stream chunks of JSON data via chunked Transfer Encoding", + }, + }) + } + } + + location = /ws { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.serve_web_sockets() + } + } + + location /get { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_method("GET") + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response() + } + } + + location /xml { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local xml = [[ + + + Kong, Monolith destroyer. + + ]] + return mu.send_text_response(xml, "application/xml") + } + } + + location /post { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_method("POST") + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response() + } + } + + location = /response-headers { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_method("GET") + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({}, ngx.req.get_uri_args()) + } + } + + location = /hop-by-hop { + content_by_lua_block { + local header = ngx.header + header["Keep-Alive"] = "timeout=5, max=1000" + header["Proxy"] = "Remove-Me" + header["Proxy-Connection"] = "close" + header["Proxy-Authenticate"] = "Basic" + header["Proxy-Authorization"] = "Basic YWxhZGRpbjpvcGVuc2VzYW1l" + header["Transfer-Encoding"] = "chunked" + header["Content-Length"] = nil + header["TE"] = "trailers, deflate;q=0.5" + header["Trailer"] = "Expires" + header["Upgrade"] = "example/1, foo/2" + + ngx.print("hello\r\n\r\nExpires: Wed, 21 Oct 2015 07:28:00 GMT\r\n\r\n") + ngx.exit(200) + } + } + + location ~ "^/cache/(?\d+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({}, { + ["Cache-Control"] = "public, max-age=" .. ngx.var.n, + }) + } + } + + location ~ "^/basic-auth/(?[a-zA-Z0-9_]+)/(?.+)$" { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_basic_auth(ngx.var.username, + ngx.var.password) + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({ + authenticated = true, + user = ngx.var.username, + }) + } + } + + location ~ "^/(request|anything)" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response() + } + } + + location ~ "^/delay/(?\d{1,3})$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local delay_seconds = tonumber(ngx.var.delay_seconds) + if not delay_seconds then + return ngx.exit(ngx.HTTP_NOT_FOUND) + end + + ngx.sleep(delay_seconds) + + return mu.send_default_json_response({ + delay = delay_seconds, + }) + } + } + + location ~ "^/status/(?\d{3})$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local code = tonumber(ngx.var.code) + if not code then + return ngx.exit(ngx.HTTP_NOT_FOUND) + end + ngx.status = code + return mu.send_default_json_response({ + code = code, + }) + } + } + + location ~ "^/stream/(?\d+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local rep = tonumber(ngx.var.num) + local res = require("cjson").encode(mu.get_default_json_response()) + + ngx.header["X-Powered-By"] = "mock_upstream" + ngx.header["Content-Type"] = "application/json" + + for i = 1, rep do + ngx.say(res) + end + } + } + + location ~ "^/post_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.store_log(ngx.var.logname) + } + } + + location ~ "^/post_auth_log/(?[a-z0-9_]+)/(?[a-zA-Z0-9_]+)/(?.+)$" { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_basic_auth(ngx.var.username, + ngx.var.password) + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.store_log(ngx.var.logname) + } + } + + location ~ "^/read_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.retrieve_log(ngx.var.logname) + } + } + + location ~ "^/count_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.count_log(ngx.var.logname) + } + } + + location ~ "^/reset_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.reset_log(ngx.var.logname) + } + } + } + + include '*.http_mock'; + +> end +} + +> if #stream_listeners > 0 then +stream { + log_format basic '$remote_addr [$time_local] ' + '$protocol $status $bytes_sent $bytes_received ' + '$session_time'; + + lua_package_path '${{LUA_PACKAGE_PATH}};;'; + lua_package_cpath '${{LUA_PACKAGE_CPATH}};;'; + lua_shared_dict stream_kong 5m; + lua_shared_dict stream_kong_db_cache ${{MEM_CACHE_SIZE}}; +> if database == "off" then + lua_shared_dict stream_kong_db_cache_2 ${{MEM_CACHE_SIZE}}; +> end + lua_shared_dict stream_kong_db_cache_miss 12m; +> if database == "off" then + lua_shared_dict stream_kong_db_cache_miss_2 12m; +> end + lua_shared_dict stream_kong_locks 8m; + lua_shared_dict stream_kong_process_events 5m; + lua_shared_dict stream_kong_cluster_events 5m; + lua_shared_dict stream_kong_healthchecks 5m; + lua_shared_dict stream_kong_rate_limiting_counters 12m; +> if database == "cassandra" then + lua_shared_dict stream_kong_cassandra 5m; +> end + lua_shared_dict stream_prometheus_metrics 5m; + + # injected nginx_stream_* directives +> for _, el in ipairs(nginx_stream_directives) do + $(el.name) $(el.value); +> end + + init_by_lua_block { + -- shared dictionaries conflict between stream/http modules. use a prefix. + local shared = ngx.shared + ngx.shared = setmetatable({}, { + __index = function(t, k) + return shared["stream_"..k] + end, + }) + + Kong = require 'kong' + Kong.init() + } + + init_worker_by_lua_block { + Kong.init_worker() + } + + upstream kong_upstream { + server 0.0.0.1:1; + balancer_by_lua_block { + Kong.balancer() + } + } + + server { +> for i = 1, #stream_listeners do + listen $(stream_listeners[i].listener); +> end + + access_log logs/access.log basic; + error_log logs/error.log debug; + +> for i = 1, #trusted_ips do + set_real_ip_from $(trusted_ips[i]); +> end + + # injected nginx_sproxy_* directives +> for _, el in ipairs(nginx_sproxy_directives) do + $(el.name) $(el.value); +> end + +> if ssl_preread_enabled then + ssl_preread on; +> end + + preread_by_lua_block { + Kong.preread() + } + + proxy_pass kong_upstream; + + log_by_lua_block { + Kong.log() + } + } + + server { + listen 15557; + listen 15558 ssl; + +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2; + + content_by_lua_block { + local sock = assert(ngx.req.socket(true)) + local data = sock:receive() -- read a line from downstream + ngx.say(data) -- echo whatever was sent + } + } + + include '*.stream_mock'; + +} +> end diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/admin_api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/admin_api.lua new file mode 100644 index 00000000..c8a954f7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/admin_api.lua @@ -0,0 +1,99 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local blueprints = require "spec.fixtures.blueprints" +local helpers = require "spec.helpers" +local cjson = require "cjson" + + +local prefix = "" + + +local function api_send(method, path, body, forced_port) + local api_client = helpers.admin_client(nil, forced_port) + local res, err = api_client:send({ + method = method, + path = prefix .. path, + headers = { + ["Content-Type"] = "application/json" + }, + body = body, + }) + if not res then + api_client:close() + return nil, err + end + + if res.status == 204 then + api_client:close() + return nil + end + + local resbody = res:read_body() + api_client:close() + if res.status < 300 then + return cjson.decode(resbody) + end + + return nil, "Error " .. tostring(res.status) .. ": " .. resbody +end + + +local admin_api_as_db = {} + + +for name, dao in pairs(helpers.db.daos) do + local admin_api_name = dao.schema.admin_api_name or name + admin_api_as_db[name] = { + insert = function(_, tbl) + return api_send("POST", "/" .. admin_api_name, tbl) + end, + remove = function(_, tbl) + return api_send("DELETE", "/" .. admin_api_name .. "/" .. tbl.id) + end, + update = function(_, id, tbl) + return api_send("PATCH", "/" .. admin_api_name .. "/" .. id, tbl) + end, + } +end + + +admin_api_as_db["basicauth_credentials"] = { + insert = function(_, tbl) + return api_send("POST", "/consumers/" .. tbl.consumer.id .. "/basic-auth", tbl) + end, + remove = function(_, tbl) + return api_send("DELETE", "/consumers/" .. tbl.consumer.id .. "/basic-auth/" .. tbl.id) + end, + update = function(_, id, tbl) + return api_send("PATCH", "/consumers/" .. tbl.consumer.id .. "/basic-auth/" .. id, tbl) + end, +} + +admin_api_as_db["targets"] = { + insert = function(_, tbl) + return api_send("POST", "/upstreams/" .. tbl.upstream.id .. "/targets", tbl) + end, + remove = function(_, tbl) + return api_send("DELETE", "/upstreams/" .. tbl.upstream.id .. "/targets/" .. tbl.id) + end, + update = function(_, id, tbl) + return api_send("PATCH", "/upstreams/" .. tbl.upstream.id .. "/targets/" .. id, tbl) + end, +} + + +local bp = blueprints.new(admin_api_as_db) + + +function bp.set_prefix(p) + prefix = p +end + + +return bp + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/aws-lambda.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/aws-lambda.lua new file mode 100644 index 00000000..2c9ad3d3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/aws-lambda.lua @@ -0,0 +1,132 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local helpers = require "spec.helpers" + +local fixtures = { + dns_mock = helpers.dns_mock.new(), + http_mock = { + lambda_plugin = [[ + + server { + server_name mock_aws_lambda; + listen 10001 ssl; +> if ssl_cert[1] then +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end +> else + ssl_certificate ${{SSL_CERT}}; + ssl_certificate_key ${{SSL_CERT_KEY}}; +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; + + location ~ "/2015-03-31/functions/(?:[^/])*/invocations" { + content_by_lua_block { + local function x() + local function say(res, status) + ngx.header["x-amzn-RequestId"] = "foo" + + if string.match(ngx.var.uri, "functionWithUnhandledError") then + ngx.header["X-Amz-Function-Error"] = "Unhandled" + end + + ngx.status = status + + if string.match(ngx.var.uri, "functionWithBadJSON") then + local badRes = "{\"foo\":\"bar\"" + ngx.header["Content-Length"] = #badRes + 1 + ngx.say(badRes) + + elseif string.match(ngx.var.uri, "functionWithNoResponse") then + ngx.header["Content-Length"] = 0 + + elseif string.match(ngx.var.uri, "functionWithBase64EncodedResponse") then + ngx.say("{\"statusCode\": 200, \"body\": \"dGVzdA==\", \"isBase64Encoded\": true}") + + elseif string.match(ngx.var.uri, "functionWithNotBase64EncodedResponse") then + ngx.say("{\"statusCode\": 200, \"body\": \"dGVzdA=\", \"isBase64Encoded\": false}") + + elseif string.match(ngx.var.uri, "functionWithIllegalBase64EncodedResponse") then + ngx.say("{\"statusCode\": 200, \"body\": \"dGVzdA=\", \"isBase64Encoded\": \"abc\"}") + + elseif string.match(ngx.var.uri, "functionWithMultiValueHeadersResponse") then + ngx.say("{\"statusCode\": 200, \"headers\": { \"Age\": \"3600\"}, \"multiValueHeaders\": {\"Access-Control-Allow-Origin\": [\"site1.com\", \"site2.com\"]}}") + + elseif string.match(ngx.var.uri, "functionEcho") then + require("spec.fixtures.mock_upstream").send_default_json_response() + + elseif type(res) == 'string' then + ngx.header["Content-Length"] = #res + 1 + ngx.say(res) + + else + ngx.req.discard_body() + ngx.header['Content-Length'] = 0 + end + + ngx.exit(0) + end + + ngx.sleep(.2) -- mock some network latency + + local invocation_type = ngx.var.http_x_amz_invocation_type + if invocation_type == 'Event' then + say(nil, 202) + + elseif invocation_type == 'DryRun' then + say(nil, 204) + end + + local qargs = ngx.req.get_uri_args() + ngx.req.read_body() + local request_body = ngx.req.get_body_data() + if request_body == nil then + local body_file = ngx.req.get_body_file() + if body_file then + ngx.log(ngx.DEBUG, "reading file cached to disk: ",body_file) + local file = io.open(body_file, "rb") + request_body = file:read("*all") + file:close() + end + end + print(request_body) + local args = require("cjson").decode(request_body) + + say(request_body, 200) + end + local ok, err = pcall(x) + if not ok then + ngx.log(ngx.ERR, "Mock error: ", err) + end + } + } + } + + ]] + }, +} + +fixtures.stream_mock = { + lambda_proxy = [[ + server { + listen 13128; + + content_by_lua_block { + require("spec.fixtures.forward-proxy-server").connect() + } + } + ]], +} + +fixtures.dns_mock:A { + name = "lambda.us-east-1.amazonaws.com", + address = "127.0.0.1", +} + +return fixtures diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/balancer_utils.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/balancer_utils.lua new file mode 100644 index 00000000..19fb02ac --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/balancer_utils.lua @@ -0,0 +1,649 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local cjson = require "cjson" +local declarative = require "kong.db.declarative" +local helpers = require "spec.helpers" +local utils = require "kong.tools.utils" +local https_server = require "spec.fixtures.https_server" + + +local CONSISTENCY_FREQ = 1 +local HEALTHCHECK_INTERVAL = 1 +local SLOTS = 10 +local TEST_LOG = false -- extra verbose logging +local healthchecks_defaults = { + active = { + timeout = 1, + concurrency = 10, + http_path = "/", + healthy = { + interval = 0, -- 0 = disabled by default + http_statuses = { 200, 302 }, + successes = 2, + }, + unhealthy = { + interval = 0, -- 0 = disabled by default + http_statuses = { 429, 404, + 500, 501, 502, 503, 504, 505 }, + tcp_failures = 2, + timeouts = 3, + http_failures = 5, + }, + }, + passive = { + healthy = { + http_statuses = { 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, + 300, 301, 302, 303, 304, 305, 306, 307, 308 }, + successes = 5, + }, + unhealthy = { + http_statuses = { 429, 500, 503 }, + tcp_failures = 2, + timeouts = 7, + http_failures = 5, + }, + }, +} +local get_available_port = helpers.get_available_port + + +local prefix = "" + + +local function healthchecks_config(config) + return utils.deep_merge(healthchecks_defaults, config) +end + + +local function direct_request(host, port, path, protocol, host_header) + local pok, client = pcall(helpers.http_client, { + host = host, + port = port, + scheme = protocol, + }) + if not pok then + return nil, "pcall: " .. client .. " : " .. host ..":"..port + end + if not client then + return nil, "client" + end + + local res, err = client:send { + method = "GET", + path = path, + headers = { ["Host"] = host_header or host } + } + local body = res and res:read_body() + client:close() + if err then + return nil, err + end + return body +end + + +local function put_target_endpoint(upstream_id, host, port, endpoint) + if host == "[::1]" then + host = "[0000:0000:0000:0000:0000:0000:0000:0001]" + end + local path = "/upstreams/" .. upstream_id + .. "/targets/" + .. utils.format_host(host, port) + .. "/" .. endpoint + local api_client = helpers.admin_client() + local res, err = assert(api_client:put(prefix .. path, { + headers = { + ["Content-Type"] = "application/json", + }, + body = {}, + })) + api_client:close() + return res, err +end + +-- client_sync_request requires a route with +-- hosts = { "200.test" } to sync requests +local function client_sync_request(proxy_host , proxy_port) + -- kong have two port 9100(TCP) and 80(HTTP) + -- we just need to request http + if proxy_port == 9100 then + proxy_port = 80 + end + local proxy_client = helpers.proxy_client({ + host = proxy_host, + port = proxy_port, + }) + + local res = assert(proxy_client:send { + method = "GET", + headers = { + ["Host"] = "200.test", + }, + path = "/", + }) + local status = res.status + proxy_client:close() + return status == 200 +end + +local function client_requests(n, host_or_headers, proxy_host, proxy_port, protocol, uri) + local oks, fails = 0, 0 + local last_status + for _ = 1, n do + -- hack sync avoid concurrency request + -- There is an issue here, if a request is completed and a response is received, + -- it does not necessarily mean that the log phase has been executed + -- (many operations require execution in the log phase, such as passive health checks), + -- so we need to ensure that the log phase has been completely executed here. + -- We choose to wait here for the log phase of the last connection to finish. + client_sync_request(proxy_host, proxy_port) + local client + if proxy_host and proxy_port then + client = helpers.http_client({ + host = proxy_host, + port = proxy_port, + scheme = protocol, + }) + + else + if protocol == "https" then + client = helpers.proxy_ssl_client() + else + client = helpers.proxy_client() + end + end + + local res = client:send { + method = "GET", + path = uri or "/", + headers = type(host_or_headers) == "string" + and { ["Host"] = host_or_headers } + or host_or_headers + or {} + } + if not res then + fails = fails + 1 + if TEST_LOG then + print("FAIL (no body)") + end + elseif res.status == 200 then + oks = oks + 1 + if TEST_LOG then + print("OK ", res.status, res:read_body()) + end + elseif res.status > 399 then + fails = fails + 1 + if TEST_LOG then + print("FAIL ", res.status, res:read_body()) + end + end + last_status = res and res.status + client:close() + end + return oks, fails, last_status +end + + +local add_certificate +local add_upstream +local remove_upstream +local patch_upstream +local get_upstream +local get_upstream_health +local get_balancer_health +local put_target_address_health +local get_router_version +local add_target +local update_target +local add_api +local patch_api +local gen_multi_host +local invalidate_router +do + local gen_sym + do + local sym = 0 + gen_sym = function(name) + sym = sym + 1 + return name .. "_" .. sym + end + end + + local function api_send(method, path, body, forced_port) + local api_client = helpers.admin_client(nil, forced_port) + local res, err = api_client:send({ + method = method, + path = prefix .. path, + headers = { + ["Content-Type"] = "application/json" + }, + body = body, + }) + if not res then + api_client:close() + return nil, err + end + local res_body = res.status ~= 204 and cjson.decode((res:read_body())) + api_client:close() + return res.status, res_body + end + + add_certificate = function(bp, data) + local certificate_id = utils.uuid() + local req = utils.deep_copy(data) or {} + req.id = certificate_id + bp.certificates:insert(req) + return certificate_id + end + + add_upstream = function(bp, data) + local upstream_id = utils.uuid() + local req = utils.deep_copy(data) or {} + local upstream_name = req.name or gen_sym("upstream") + req.name = upstream_name + req.slots = req.slots or SLOTS + req.id = upstream_id + bp.upstreams:insert(req) + return upstream_name, upstream_id + end + + remove_upstream = function(bp, upstream_id) + bp.upstreams:remove({ id = upstream_id }) + end + + patch_upstream = function(upstream_id, data) + local res = api_send("PATCH", "/upstreams/" .. upstream_id, data) + assert(res == 200) + end + + get_upstream = function(upstream_id, forced_port) + local path = "/upstreams/" .. upstream_id + local status, body = api_send("GET", path, nil, forced_port) + if status == 200 then + return body + end + end + + get_upstream_health = function(upstream_id, forced_port) + local path = "/upstreams/" .. upstream_id .."/health" + local status, body = api_send("GET", path, nil, forced_port) + if status == 200 then + return body + end + end + + get_balancer_health = function(upstream_id, forced_port) + local path = "/upstreams/" .. upstream_id .."/health?balancer_health=1" + local status, body = api_send("GET", path, nil, forced_port) + if status == 200 then + return body + end + end + + put_target_address_health = function(upstream_id, target_id, address, mode, forced_port) + local path = "/upstreams/" .. upstream_id .. "/targets/" .. target_id .. "/" .. address .. "/" .. mode + return api_send("PUT", path, {}, forced_port) + end + + get_router_version = function(forced_port) + local path = "/cache/router:version" + local status, body = api_send("GET", path, nil, forced_port) + if status == 200 then + return body.message + end + end + + invalidate_router = function(forced_port) + local path = "/cache/router:version" + local status, body = api_send("DELETE", path, nil, forced_port) + if status == 204 then + return true + end + + return nil, body + end + + do + local host_num = 0 + gen_multi_host = function() + host_num = host_num + 1 + return "multiple-hosts-" .. tostring(host_num) .. ".test" + end + end + + add_target = function(bp, upstream_id, host, port, data) + port = port or get_available_port() + local req = utils.deep_copy(data) or {} + if host == "[::1]" then + host = "[0000:0000:0000:0000:0000:0000:0000:0001]" + end + req.target = req.target or utils.format_host(host, port) + req.weight = req.weight or 10 + req.upstream = { id = upstream_id } + local new_target = bp.targets:insert(req) + return port, new_target + end + + update_target = function(bp, upstream_id, host, port, data) + local req = utils.deep_copy(data) or {} + if host == "[::1]" then + host = "[0000:0000:0000:0000:0000:0000:0000:0001]" + end + req.target = req.target or utils.format_host(host, port) + req.weight = req.weight or 10 + req.upstream = { id = upstream_id } + bp.targets:update(req.id or req.target, req) + end + + add_api = function(bp, upstream_name, opts) + opts = opts or {} + local route_id = utils.uuid() + local service_id = utils.uuid() + local route_host = gen_sym("host") + local sproto = opts.service_protocol or opts.route_protocol or "http" + local rproto = opts.route_protocol or "http" + local sport = rproto == "tcp" and 9100 or 80 + + local rpaths = { + "/", + "~/(?[^/]+)/(?[0-9]+)/?", -- uri capture hash value + } + + -- add a 200 route to sync kong async thread + local route = bp.routes:insert { + hosts = { "200.test" }, + } + + bp.plugins:insert { + route = route, + name = "request-termination", + config = { + status_code = 200, + message = "Terminated" + }, + } + + bp.services:insert({ + id = service_id, + host = upstream_name, + port = sport, + protocol = sproto, + read_timeout = opts.read_timeout, + write_timeout = opts.write_timeout, + connect_timeout = opts.connect_timeout, + retries = opts.retries, + }) + bp.routes:insert({ + id = route_id, + service = { id = service_id }, + protocols = { rproto }, + hosts = rproto ~= "tcp" and { route_host } or nil, + destinations = (rproto == "tcp") and {{ port = 9100 }} or nil, + paths = rproto ~= "tcp" and rpaths or nil, + }) + + bp.plugins:insert({ + name = "post-function", + service = { id = service_id }, + config = { + header_filter = {[[ + local value = ngx.ctx and + ngx.ctx.balancer_data and + ngx.ctx.balancer_data.hash_value + if value == "" or value == nil then + value = "NONE" + end + + ngx.header["x-balancer-hash-value"] = value + ngx.header["x-uri"] = ngx.var.request_uri + ]]}, + }, + }) + + return route_host, service_id, route_id + end + + patch_api = function(bp, service_id, new_upstream, read_timeout) + bp.services:update(service_id, { + url = new_upstream, + read_timeout = read_timeout, + }) + end +end + + +local poll_wait_health +local poll_wait_address_health +do + local function poll_wait(upstream_id, host, port, admin_port, fn) + if host == "[::1]" then + host = "[0000:0000:0000:0000:0000:0000:0000:0001]" + end + local hard_timeout = ngx.now() + 70 + while ngx.now() < hard_timeout do + local health = get_upstream_health(upstream_id, admin_port) + if health then + for _, d in ipairs(health.data) do + if d.target == host .. ":" .. port and fn(d) then + return true + end + end + end + ngx.sleep(0.1) -- poll-wait + end + return false + end + + poll_wait_health = function(upstream_id, host, port, value, admin_port) + local ok = poll_wait(upstream_id, host, port, admin_port, function(d) + return d.health == value + end) + if ok then + return true + end + assert(false, "timed out waiting for " .. host .. ":" .. port .. " in " .. + upstream_id .. " to become " .. value) + end + + poll_wait_address_health = function(upstream_id, host, port, address_host, address_port, value) + local ok = poll_wait(upstream_id, host, port, nil, function(d) + for _, ad in ipairs(d.data.addresses) do + if ad.ip == address_host + and ad.port == address_port + and ad.health == value then + return true + end + end + end) + if ok then + return true + end + assert(false, "timed out waiting for " .. address_host .. ":" .. address_port .. " in " .. + upstream_id .. " to become " .. value) + end +end + + +local function wait_for_router_update(bp, old_rv, localhost, proxy_port, admin_port) + -- add dummy upstream just to rebuild router + local dummy_upstream_name, dummy_upstream_id = add_upstream(bp) + local dummy_port = add_target(bp, dummy_upstream_id, localhost) + local dummy_api_host = add_api(bp, dummy_upstream_name) + local dummy_server = https_server.new(dummy_port, localhost) + dummy_server:start() + + -- forces the router to be rebuild, reduces the flakiness of the test suite + -- TODO: find out what's wrong with router invalidation in the particular + -- test setup causing the flakiness + assert(invalidate_router(admin_port)) + + helpers.wait_until(function() + client_requests(1, dummy_api_host, "127.0.0.1", proxy_port) + local rv = get_router_version(admin_port) + return rv ~= old_rv + end, 5) + + dummy_server:shutdown() +end + + +local function tcp_client_requests(nreqs, host, port) + local fails, ok1, ok2 = 0, 0, 0 + for _ = 1, nreqs do + local sock = ngx.socket.tcp() + assert(sock:connect(host, port)) + assert(sock:send("hello\n")) + local response, err = sock:receive() + if err then + fails = fails + 1 + elseif response:match("^1 ") then + ok1 = ok1 + 1 + elseif response:match("^2 ") then + ok2 = ok2 + 1 + end + end + return ok1, ok2, fails +end + + +local function begin_testcase_setup(strategy, bp) + if strategy == "off" then + bp.done() + end +end + +local function begin_testcase_setup_update(strategy, bp) + if strategy == "off" then + bp.reset_back() + end +end + + +local function end_testcase_setup(strategy, bp) + if strategy == "off" then + -- setup some dummy entities for checking the config update status + local host = "localhost" + local port = get_available_port() + + local server = https_server.new(port, host, "http", nil, 1) + server:start() + + local upstream_name, upstream_id = add_upstream(bp) + add_target(bp, upstream_id, host, port) + local api_host = add_api(bp, upstream_name) + + local cfg = bp.done() + local yaml = declarative.to_yaml_string(cfg) + local admin_client = helpers.admin_client() + local res = assert(admin_client:send { + method = "POST", + path = "/config", + body = { + config = yaml, + }, + headers = { + ["Content-Type"] = "multipart/form-data", + } + }) + assert(res ~= nil) + assert(res.status == 201) + admin_client:close() + + local ok, err = pcall(function () + -- wait for dummy config ready + helpers.pwait_until(function () + local oks = client_requests(3, api_host) + assert(oks == 3) + end, 15) + end) + + server:shutdown() + + + if not ok then + error(err) + end + + else + helpers.wait_for_all_config_update() + end +end + + +local function get_db_utils_for_dc_and_admin_api(strategy, tables) + local bp = assert(helpers.get_db_utils(strategy, tables)) + if strategy ~= "off" then + bp = require("spec.fixtures.admin_api") + end + return bp +end + +local function setup_prefix(p) + prefix = p + local bp = require("spec.fixtures.admin_api") + bp.set_prefix(prefix) +end + + +local function teardown_prefix() + prefix = "" + local bp = require("spec.fixtures.admin_api") + bp.set_prefix(prefix) +end + +local localhosts = { + ipv4 = "127.0.0.1", + ipv6 = "[::1]", + hostname = "localhost", +} + + +local consistencies = {"strict", "eventual"} + + +local balancer_utils = {} +--balancer_utils. +balancer_utils.add_certificate = add_certificate +balancer_utils.add_api = add_api +balancer_utils.add_target = add_target +balancer_utils.update_target = update_target +balancer_utils.add_upstream = add_upstream +balancer_utils.remove_upstream = remove_upstream +balancer_utils.begin_testcase_setup = begin_testcase_setup +balancer_utils.begin_testcase_setup_update = begin_testcase_setup_update +balancer_utils.client_requests = client_requests +balancer_utils.consistencies = consistencies +balancer_utils.CONSISTENCY_FREQ = CONSISTENCY_FREQ +balancer_utils.direct_request = direct_request +balancer_utils.end_testcase_setup = end_testcase_setup +balancer_utils.gen_multi_host = gen_multi_host +balancer_utils.get_available_port = get_available_port +balancer_utils.get_balancer_health = get_balancer_health +balancer_utils.get_db_utils_for_dc_and_admin_api = get_db_utils_for_dc_and_admin_api +balancer_utils.get_router_version = get_router_version +balancer_utils.get_upstream = get_upstream +balancer_utils.get_upstream_health = get_upstream_health +balancer_utils.healthchecks_config = healthchecks_config +balancer_utils.HEALTHCHECK_INTERVAL = HEALTHCHECK_INTERVAL +balancer_utils.localhosts = localhosts +balancer_utils.patch_api = patch_api +balancer_utils.patch_upstream = patch_upstream +balancer_utils.poll_wait_address_health = poll_wait_address_health +balancer_utils.poll_wait_health = poll_wait_health +balancer_utils.put_target_address_health = put_target_address_health +balancer_utils.put_target_endpoint = put_target_endpoint +balancer_utils.SLOTS = SLOTS +balancer_utils.tcp_client_requests = tcp_client_requests +balancer_utils.wait_for_router_update = wait_for_router_update + +-- XXX: EE [[ +balancer_utils.setup_prefix = setup_prefix +balancer_utils.teardown_prefix = teardown_prefix +-- ]] + +return balancer_utils diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/blueprints.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/blueprints.lua new file mode 100644 index 00000000..466dd80a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/blueprints.lua @@ -0,0 +1,547 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ssl_fixtures = require "spec.fixtures.ssl" +local utils = require "kong.tools.utils" + + +local deep_merge = utils.deep_merge +local fmt = string.format + + +local Blueprint = {} +Blueprint.__index = Blueprint + + +-- TODO: port this back to OSS since it should be useful there too +function Blueprint:defaults(defaults) + self._defaults = defaults +end + +function Blueprint:build(overrides) + overrides = overrides or {} + if self._defaults then + overrides = deep_merge(self._defaults, overrides) + end + + return deep_merge(self.build_function(overrides), overrides) +end + + +function Blueprint:insert(overrides, options) + local entity, err = self.dao:insert(self:build(overrides), options) + if err then + error(err, 2) + end + return entity +end + + +-- insert blueprint in workspace specified by `ws` +function Blueprint:insert_ws(overrides, workspace) + local old_workspace = ngx.ctx.workspace + + ngx.ctx.workspace = workspace.id + local entity = self:insert(overrides) + ngx.ctx.workspace = old_workspace + + return entity +end + + +function Blueprint:remove(overrides, options) + local entity, err = self.dao:remove({ id = overrides.id }, options) + if err then + error(err, 2) + end + return entity +end + + +function Blueprint:update(id, overrides, options) + local entity, err = self.dao:update(id, overrides, options) + if err then + error(err, 2) + end + return entity +end + + +function Blueprint:upsert(id, overrides, options) + local entity, err = self.dao:upsert(id, overrides, options) + if err then + error(err, 2) + end + return entity +end + + +function Blueprint:insert_n(n, overrides, options) + local res = {} + for i=1,n do + res[i] = self:insert(overrides, options) + end + return res +end + + +local function new_blueprint(dao, build_function) + return setmetatable({ + dao = dao, + build_function = build_function, + }, Blueprint) +end + + +local Sequence = {} +Sequence.__index = Sequence + + +function Sequence:next() + self.count = self.count + 1 + return fmt(self.sequence_string, self.count) +end + + +local function new_sequence(sequence_string) + return setmetatable({ + count = 0, + sequence_string = sequence_string, + }, Sequence) +end + + +local _M = {} + + +function _M.new(db) + local res = {} + + local sni_seq = new_sequence("server-name-%d") + res.snis = new_blueprint(db.snis, function(overrides) + return { + name = overrides.name or sni_seq:next(), + certificate = overrides.certificate or res.certificates:insert(), + } + end) + + res.certificates = new_blueprint(db.certificates, function() + return { + cert = ssl_fixtures.cert, + key = ssl_fixtures.key, + } + end) + + res.ca_certificates = new_blueprint(db.ca_certificates, function() + return { + cert = ssl_fixtures.cert_ca, + } + end) + + local upstream_name_seq = new_sequence("upstream-%d") + res.upstreams = new_blueprint(db.upstreams, function(overrides) + local slots = overrides.slots or 100 + local name = overrides.name or upstream_name_seq:next() + local host_header = overrides.host_header or nil + + return { + name = name, + slots = slots, + host_header = host_header, + } + end) + + local consumer_custom_id_seq = new_sequence("consumer-id-%d") + local consumer_username_seq = new_sequence("consumer-username-%d") + res.consumers = new_blueprint(db.consumers, function() + return { + custom_id = consumer_custom_id_seq:next(), + username = consumer_username_seq:next(), + } + end) + + local developer_email_seq = new_sequence("dev-%d@example.com") + res.developers = new_blueprint(db.developers, function() + return { + email = developer_email_seq:next(), + } + end) + + res.targets = new_blueprint(db.targets, function(overrides) + return { + weight = 10, + upstream = overrides.upstream or res.upstreams:insert(), + } + end) + + res.plugins = new_blueprint(db.plugins, function() + return {} + end) + + res.routes = new_blueprint(db.routes, function(overrides) + local service = overrides.service + local protocols = overrides.protocols + + local route = { + service = service, + } + + if type(service) == "table" then + -- set route.protocols from service + if service.protocol == "ws" or + service.protocol == "wss" and + not protocols + then + route.protocols = { service.protocol } + end + + else + service = {} + + -- set service.protocol from route.protocols + if type(protocols) == "table" then + for _, proto in ipairs(protocols) do + if proto == "ws" or proto == "wss" then + service.protocol = proto + break + end + end + end + + service = res.services:insert(service) + + -- reverse: set route.protocols based on the inserted service, which + -- may have inherited some defaults + if protocols == nil and + (service.protocol == "ws" or service.protocol == "wss") + then + route.protocols = { service.protocol } + end + + route.service = service + end + + return route + end) + + res.services = new_blueprint(db.services, function(overrides) + local service = { + protocol = "http", + host = "127.0.0.1", + port = 15555, + } + + service.protocol = overrides.protocol or service.protocol + + if service.protocol == "ws" then + service.port = 3000 + + elseif service.protocol == "wss" then + service.port = 3001 + end + + return service + end) + + res.vaults = new_blueprint(db.vaults, function(overrides) + local vault = { + name = "env", + prefix = "env-1", + description = "description", + } + + vault.prefix = overrides.prefix or vault.prefix + vault.description = overrides.description or vault.description + + return vault + end) + + res.consumer_groups = new_blueprint(db.consumer_groups, function(overrides) + local consumer_groups = { + name = "testGroup", + } + + consumer_groups.name = overrides.name or consumer_groups.name + + return consumer_groups + end) + + res.consumer_group_consumers = new_blueprint(db.consumer_group_consumers, function(overrides) + local consumer_group_consumers = {} + + consumer_group_consumers.consumer = overrides.consumer or consumer_group_consumers.consumer + consumer_group_consumers.consumer_group = overrides.consumer_group or consumer_group_consumers.consumer_group + + return consumer_group_consumers + end) + + res.clustering_data_planes = new_blueprint(db.clustering_data_planes, function() + return { + hostname = "dp.example.com", + ip = "127.0.0.1", + config_hash = "a9a166c59873245db8f1a747ba9a80a7", + } + end) + + local named_service_name_seq = new_sequence("service-name-%d") + local named_service_host_seq = new_sequence("service-host-%d.test") + res.named_services = new_blueprint(db.services, function() + return { + protocol = "http", + name = named_service_name_seq:next(), + host = named_service_host_seq:next(), + port = 15555, + } + end) + + local named_route_name_seq = new_sequence("route-name-%d") + local named_route_host_seq = new_sequence("route-host-%d.test") + res.named_routes = new_blueprint(db.routes, function(overrides) + return { + name = named_route_name_seq:next(), + hosts = { named_route_host_seq:next() }, + service = overrides.service or res.services:insert(), + } + end) + + res.acl_plugins = new_blueprint(db.plugins, function() + return { + name = "acl", + config = {}, + } + end) + + local acl_group_seq = new_sequence("acl-group-%d") + res.acls = new_blueprint(db.acls, function() + return { + group = acl_group_seq:next(), + } + end) + + res.cors_plugins = new_blueprint(db.plugins, function() + return { + name = "cors", + config = { + origins = { "example.com" }, + methods = { "GET" }, + headers = { "origin", "type", "accepts"}, + exposed_headers = { "x-auth-token" }, + max_age = 23, + credentials = true, + } + } + end) + + res.loggly_plugins = new_blueprint(db.plugins, function() + return { + name = "loggly", + config = {}, -- all fields have default values already + } + end) + + res.tcp_log_plugins = new_blueprint(db.plugins, function() + return { + name = "tcp-log", + config = { + host = "127.0.0.1", + port = 35001, + }, + } + end) + + res.udp_log_plugins = new_blueprint(db.plugins, function() + return { + name = "udp-log", + config = { + host = "127.0.0.1", + port = 35001, + }, + } + end) + + res.jwt_plugins = new_blueprint(db.plugins, function() + return { + name = "jwt", + config = {}, + } + end) + + local jwt_key_seq = new_sequence("jwt-key-%d") + res.jwt_secrets = new_blueprint(db.jwt_secrets, function() + return { + key = jwt_key_seq:next(), + secret = "secret", + } + end) + + res.oauth2_plugins = new_blueprint(db.plugins, function() + return { + name = "oauth2", + config = { + scopes = { "email", "profile" }, + enable_authorization_code = true, + mandatory_scope = true, + provision_key = "provision123", + token_expiration = 5, + enable_implicit_grant = true, + } + } + end) + + res.oauth2_credentials = new_blueprint(db.oauth2_credentials, function() + return { + name = "oauth2 credential", + client_secret = "secret", + } + end) + + local oauth_code_seq = new_sequence("oauth-code-%d") + res.oauth2_authorization_codes = new_blueprint(db.oauth2_authorization_codes, function() + return { + code = oauth_code_seq:next(), + scope = "default", + } + end) + + res.oauth2_tokens = new_blueprint(db.oauth2_tokens, function() + return { + token_type = "bearer", + expires_in = 1000000000, + scope = "default", + } + end) + + res.key_auth_plugins = new_blueprint(db.plugins, function() + return { + name = "key-auth", + config = {}, + } + end) + + local keyauth_key_seq = new_sequence("keyauth-key-%d") + res.keyauth_credentials = new_blueprint(db.keyauth_credentials, function() + return { + key = keyauth_key_seq:next(), + } + end) + + local keyauth_enc_key_seq = new_sequence("keyauth-enc-key-%d") + res.keyauth_enc_credentials = new_blueprint(db.keyauth_enc_credentials, function() + return { + key = keyauth_enc_key_seq:next(), + } + end) + + res.keyauth_enc_plugins = new_blueprint(db.plugins, function() + return { + name = "key-auths-enc", + config = {}, + } + end) + + res.basicauth_credentials = new_blueprint(db.basicauth_credentials, function() + return {} + end) + + res.hmac_auth_plugins = new_blueprint(db.plugins, function() + return { + name = "hmac-auth", + config = {}, + } + end) + + local hmac_username_seq = new_sequence("hmac-username-%d") + res.hmacauth_credentials = new_blueprint(db.hmacauth_credentials, function() + return { + username = hmac_username_seq:next(), + secret = "secret", + } + end) + + res.rate_limiting_plugins = new_blueprint(db.plugins, function() + return { + name = "rate-limiting", + config = {}, + } + end) + + res.response_ratelimiting_plugins = new_blueprint(db.plugins, function() + return { + name = "response-ratelimiting", + config = {}, + } + end) + + res.datadog_plugins = new_blueprint(db.plugins, function() + return { + name = "datadog", + config = {}, + } + end) + + res.statsd_plugins = new_blueprint(db.plugins, function() + return { + name = "statsd", + config = {}, + } + end) + + local workspace_name_seq = new_sequence("workspace-name-%d") + res.workspaces = new_blueprint(db.workspaces, function() + return { + name = workspace_name_seq:next(), + } + end) + + res.rewriter_plugins = new_blueprint(db.plugins, function() + return { + name = "rewriter", + config = {}, + } + end) + + local rbac_user_name_seq = new_sequence("rbac_user-%d") + local rbac_user_user_token_seq = new_sequence("rbac_user_token-%d") + res.rbac_users = new_blueprint(db.rbac_users, function() + return { + name = rbac_user_name_seq:next(), + user_token = rbac_user_user_token_seq:next(), + } + end) + + local rbac_roles_seq = new_sequence("rbac_role-%d") + res.rbac_roles = new_blueprint(db.rbac_roles, function() + return { + name = rbac_roles_seq:next(), + } + end) + + local rbac_users_seq = new_sequence("rbac_user-%d") + res.rbac_users = new_blueprint(db.rbac_users, function() + return { + name = rbac_users_seq:next(), + } + end) + + local key_sets_seq = new_sequence("key-sets-%d") + res.key_sets = new_blueprint(db.key_sets, function() + return { + name = key_sets_seq:next(), + } + end) + local keys_seq = new_sequence("keys-%d") + res.keys = new_blueprint(db.keys, function() + return { + name = keys_seq:next(), + } + end) + + return res +end + + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/burst.yml b/kong-versions/3.2.2.4/kong/spec/fixtures/burst.yml new file mode 100644 index 00000000..46f03c31 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/burst.yml @@ -0,0 +1,23649 @@ +_format_version: "1.1" +services: +- connect_timeout: 60000 + host: something-static.4test-any.svc + name: 4test-any.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-any.example.test + name: 4test-any.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-any.svc + name: 4test-any.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-any.example.test + name: 4test-any.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-any.svc + name: 4test-any.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-any-admin.example.test + name: 4test-any.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-any.example.test + name: 4test-any.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-any.svc + name: 4test-any.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-any-admin.example.test + name: 4test-any.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-any.svc + name: 4test-any.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-any.example.test + name: 4test-any.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing1-otherthing.svc + name: 4test-athing1-otherthing.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-otherthing.example.test + name: 4test-athing1-otherthing.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing1-otherthing.svc + name: 4test-athing1-otherthing.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-otherthing.example.test + name: 4test-athing1-otherthing.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing1-otherthing.svc + name: 4test-athing1-otherthing.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-otherthing-admin.example.test + name: 4test-athing1-otherthing.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing1-otherthing.example.test + name: 4test-athing1-otherthing.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing1-otherthing.svc + name: 4test-athing1-otherthing.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-otherthing-admin.example.test + name: 4test-athing1-otherthing.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing1-otherthing.svc + name: 4test-athing1-otherthing.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-otherthing.example.test + name: 4test-athing1-otherthing.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing1-name.svc + name: 4test-athing1-name.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-name.example.test + name: 4test-athing1-name.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing1-name.svc + name: 4test-athing1-name.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-name.example.test + name: 4test-athing1-name.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing1-name.svc + name: 4test-athing1-name.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-name-admin.example.test + name: 4test-athing1-name.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing1-name.example.test + name: 4test-athing1-name.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing1-name.svc + name: 4test-athing1-name.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-name-admin.example.test + name: 4test-athing1-name.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing1-name.svc + name: 4test-athing1-name.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-name.example.test + name: 4test-athing1-name.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing1-othername.svc + name: 4test-athing1-othername.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-othername.example.test + name: 4test-athing1-othername.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing1-othername.svc + name: 4test-athing1-othername.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-othername.example.test + name: 4test-athing1-othername.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing1-othername.svc + name: 4test-athing1-othername.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-othername-admin.example.test + name: 4test-athing1-othername.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing1-othername.example.test + name: 4test-athing1-othername.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing1-othername.svc + name: 4test-athing1-othername.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-othername-admin.example.test + name: 4test-athing1-othername.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing1-othername.svc + name: 4test-athing1-othername.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-othername.example.test + name: 4test-athing1-othername.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing1-morenames.svc + name: 4test-athing1-morenames.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-morenames.example.test + name: 4test-athing1-morenames.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing1-morenames.svc + name: 4test-athing1-morenames.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-morenames.example.test + name: 4test-athing1-morenames.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing1-morenames.svc + name: 4test-athing1-morenames.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-morenames-admin.example.test + name: 4test-athing1-morenames.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing1-morenames.example.test + name: 4test-athing1-morenames.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing1-morenames.svc + name: 4test-athing1-morenames.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-morenames-admin.example.test + name: 4test-athing1-morenames.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing1-morenames.svc + name: 4test-athing1-morenames.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing1-morenames.example.test + name: 4test-athing1-morenames.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-thatthing.svc + name: 4test-thatthing.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-thatthing.example.test + name: 4test-thatthing.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-thatthing.svc + name: 4test-thatthing.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-thatthing.example.test + name: 4test-thatthing.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-thatthing.svc + name: 4test-thatthing.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-thatthing-admin.example.test + name: 4test-thatthing.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-thatthing.example.test + name: 4test-thatthing.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-thatthing.svc + name: 4test-thatthing.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-thatthing-admin.example.test + name: 4test-thatthing.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-thatthing.svc + name: 4test-thatthing.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-thatthing.example.test + name: 4test-thatthing.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing2-suchthing.svc + name: 4test-athing2-suchthing.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-suchthing.example.test + name: 4test-athing2-suchthing.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing2-suchthing.svc + name: 4test-athing2-suchthing.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-suchthing.example.test + name: 4test-athing2-suchthing.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing2-suchthing.svc + name: 4test-athing2-suchthing.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-suchthing-admin.example.test + name: 4test-athing2-suchthing.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing2-suchthing.example.test + name: 4test-athing2-suchthing.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing2-suchthing.svc + name: 4test-athing2-suchthing.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-suchthing-admin.example.test + name: 4test-athing2-suchthing.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing2-suchthing.svc + name: 4test-athing2-suchthing.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-suchthing.example.test + name: 4test-athing2-suchthing.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing2-wow.svc + name: 4test-athing2-wow.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-wow.example.test + name: 4test-athing2-wow.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing2-wow.svc + name: 4test-athing2-wow.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-wow.example.test + name: 4test-athing2-wow.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing2-wow.svc + name: 4test-athing2-wow.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-wow-admin.example.test + name: 4test-athing2-wow.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing2-wow.example.test + name: 4test-athing2-wow.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing2-wow.svc + name: 4test-athing2-wow.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-wow-admin.example.test + name: 4test-athing2-wow.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing2-wow.svc + name: 4test-athing2-wow.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing2-wow.example.test + name: 4test-athing2-wow.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-manythings.svc + name: 4test-manythings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-manythings.example.test + name: 4test-manythings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-manythings.svc + name: 4test-manythings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-manythings.example.test + name: 4test-manythings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-manythings.svc + name: 4test-manythings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-manythings-admin.example.test + name: 4test-manythings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-manythings.example.test + name: 4test-manythings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-manythings.svc + name: 4test-manythings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-manythings-admin.example.test + name: 4test-manythings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-manythings.svc + name: 4test-manythings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-manythings.example.test + name: 4test-manythings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-verythings.svc + name: 4test-verythings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-verythings.example.test + name: 4test-verythings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-verythings.svc + name: 4test-verythings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-verythings.example.test + name: 4test-verythings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-verythings.svc + name: 4test-verythings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-verythings-admin.example.test + name: 4test-verythings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-verythings.example.test + name: 4test-verythings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-verythings.svc + name: 4test-verythings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-verythings-admin.example.test + name: 4test-verythings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-verythings.svc + name: 4test-verythings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-verythings.example.test + name: 4test-verythings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing3-tester2.svc + name: 4test-athing3-tester2.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-tester2.example.test + name: 4test-athing3-tester2.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing3-tester2.svc + name: 4test-athing3-tester2.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-tester2.example.test + name: 4test-athing3-tester2.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing3-tester2.svc + name: 4test-athing3-tester2.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-tester2-admin.example.test + name: 4test-athing3-tester2.testing-ingress-admin.01 + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing3-tester2.example.test + name: 4test-athing3-tester2.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static.4test-athing3-tester2.svc + name: 4test-athing3-tester2.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-tester2-admin.example.test + name: 4test-athing3-tester2.testing-ingress-admin.00 + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing3-tester2.example.test + name: 4test-athing3-tester2.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing3-oldthings.svc + name: 4test-athing3-oldthings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-oldthings.example.test + name: 4test-athing3-oldthings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing3-oldthings.svc + name: 4test-athing3-oldthings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-oldthings.example.test + name: 4test-athing3-oldthings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing3-oldthings.svc + name: 4test-athing3-oldthings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-oldthings-admin.example.test + name: 4test-athing3-oldthings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing3-oldthings.example.test + name: 4test-athing3-oldthings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing3-oldthings.svc + name: 4test-athing3-oldthings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-oldthings-admin.example.test + name: 4test-athing3-oldthings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing3-oldthings.svc + name: 4test-athing3-oldthings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing3-oldthings.example.test + name: 4test-athing3-oldthings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-demo1.svc + name: 4test-demo1.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo1.example.test + name: 4test-demo1.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-demo1.svc + name: 4test-demo1.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo1.example.test + name: 4test-demo1.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-demo1.svc + name: 4test-demo1.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo1-admin.example.test + name: 4test-demo1.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-demo1.example.test + name: 4test-demo1.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-demo1.svc + name: 4test-demo1.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo1-admin.example.test + name: 4test-demo1.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-demo1.svc + name: 4test-demo1.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo1.example.test + name: 4test-demo1.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-demo2.svc + name: 4test-demo2.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo2.example.test + name: 4test-demo2.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-demo2.svc + name: 4test-demo2.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo2.example.test + name: 4test-demo2.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-demo2.svc + name: 4test-demo2.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo2-admin.example.test + name: 4test-demo2.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-demo2.example.test + name: 4test-demo2.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-demo2.svc + name: 4test-demo2.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo2-admin.example.test + name: 4test-demo2.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-demo2.svc + name: 4test-demo2.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-demo2.example.test + name: 4test-demo2.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-dev.svc + name: 4test-dev.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-dev.example.test + name: 4test-dev.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-dev.svc + name: 4test-dev.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-dev.example.test + name: 4test-dev.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-dev.svc + name: 4test-dev.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-dev-admin.example.test + name: 4test-dev.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-dev.example.test + name: 4test-dev.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-dev.svc + name: 4test-dev.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-dev-admin.example.test + name: 4test-dev.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-dev.svc + name: 4test-dev.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-dev.example.test + name: 4test-dev.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing4-sothings.svc + name: 4test-athing4-sothings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing4-sothings.example.test + name: 4test-athing4-sothings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing4-sothings.svc + name: 4test-athing4-sothings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing4-sothings.example.test + name: 4test-athing4-sothings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing4-sothings.svc + name: 4test-athing4-sothings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing4-sothings-admin.example.test + name: 4test-athing4-sothings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing4-sothings.example.test + name: 4test-athing4-sothings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing4-sothings.svc + name: 4test-athing4-sothings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing4-sothings-admin.example.test + name: 4test-athing4-sothings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing4-sothings.svc + name: 4test-athing4-sothings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing4-sothings.example.test + name: 4test-athing4-sothings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing5-cousin.svc + name: 4test-athing5-cousin.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-cousin.example.test + name: 4test-athing5-cousin.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing5-cousin.svc + name: 4test-athing5-cousin.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-cousin.example.test + name: 4test-athing5-cousin.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing5-cousin.svc + name: 4test-athing5-cousin.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-cousin-admin.example.test + name: 4test-athing5-cousin.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing5-cousin.example.test + name: 4test-athing5-cousin.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing5-cousin.svc + name: 4test-athing5-cousin.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-cousin-admin.example.test + name: 4test-athing5-cousin.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing5-cousin.svc + name: 4test-athing5-cousin.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-cousin.example.test + name: 4test-athing5-cousin.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing5-verythings.svc + name: 4test-athing5-verythings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-verythings.example.test + name: 4test-athing5-verythings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing5-verythings.svc + name: 4test-athing5-verythings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-verythings.example.test + name: 4test-athing5-verythings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing5-verythings.svc + name: 4test-athing5-verythings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-verythings-admin.example.test + name: 4test-athing5-verythings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing5-verythings.example.test + name: 4test-athing5-verythings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing5-verythings.svc + name: 4test-athing5-verythings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-verythings-admin.example.test + name: 4test-athing5-verythings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing5-verythings.svc + name: 4test-athing5-verythings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-verythings.example.test + name: 4test-athing5-verythings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing5-ygbkm.svc + name: 4test-athing5-ygbkm.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-ygbkm.example.test + name: 4test-athing5-ygbkm.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing5-ygbkm.svc + name: 4test-athing5-ygbkm.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-ygbkm.example.test + name: 4test-athing5-ygbkm.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing5-ygbkm.svc + name: 4test-athing5-ygbkm.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-ygbkm-admin.example.test + name: 4test-athing5-ygbkm.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing5-ygbkm.example.test + name: 4test-athing5-ygbkm.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing5-ygbkm.svc + name: 4test-athing5-ygbkm.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-ygbkm-admin.example.test + name: 4test-athing5-ygbkm.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing5-ygbkm.svc + name: 4test-athing5-ygbkm.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-ygbkm.example.test + name: 4test-athing5-ygbkm.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing5-gothings.svc + name: 4test-athing5-gothings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-gothings.example.test + name: 4test-athing5-gothings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing5-gothings.svc + name: 4test-athing5-gothings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-gothings.example.test + name: 4test-athing5-gothings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing5-gothings.svc + name: 4test-athing5-gothings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-gothings-admin.example.test + name: 4test-athing5-gothings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing5-gothings.example.test + name: 4test-athing5-gothings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing5-gothings.svc + name: 4test-athing5-gothings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-gothings-admin.example.test + name: 4test-athing5-gothings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing5-gothings.svc + name: 4test-athing5-gothings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-gothings.example.test + name: 4test-athing5-gothings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing5-clever.svc + name: 4test-athing5-clever.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-clever.example.test + name: 4test-athing5-clever.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing5-clever.svc + name: 4test-athing5-clever.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-clever.example.test + name: 4test-athing5-clever.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing5-clever.svc + name: 4test-athing5-clever.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-clever-admin.example.test + name: 4test-athing5-clever.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing5-clever.example.test + name: 4test-athing5-clever.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing5-clever.svc + name: 4test-athing5-clever.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-clever-admin.example.test + name: 4test-athing5-clever.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing5-clever.svc + name: 4test-athing5-clever.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing5-clever.example.test + name: 4test-athing5-clever.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing6-itis.svc + name: 4test-athing6-itis.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing6-itis.example.test + name: 4test-athing6-itis.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing6-itis.svc + name: 4test-athing6-itis.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing6-itis.example.test + name: 4test-athing6-itis.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing6-itis.svc + name: 4test-athing6-itis.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing6-itis-admin.example.test + name: 4test-athing6-itis.testing-ingress-admin.01 + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing6-itis.example.test + name: 4test-athing6-itis.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static.4test-athing6-itis.svc + name: 4test-athing6-itis.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing6-itis-admin.example.test + name: 4test-athing6-itis.testing-ingress-admin.00 + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing6-itis.example.test + name: 4test-athing6-itis.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-tldr.svc + name: 4test-tldr.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-tldr.example.test + name: 4test-tldr.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-tldr.svc + name: 4test-tldr.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-tldr.example.test + name: 4test-tldr.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-tldr.svc + name: 4test-tldr.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-tldr-admin.example.test + name: 4test-tldr.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-tldr.example.test + name: 4test-tldr.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-tldr.svc + name: 4test-tldr.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-tldr-admin.example.test + name: 4test-tldr.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-tldr.svc + name: 4test-tldr.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-tldr.example.test + name: 4test-tldr.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-shock.svc + name: 4test-shock.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-shock.example.test + name: 4test-shock.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-shock.svc + name: 4test-shock.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-shock.example.test + name: 4test-shock.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-shock.svc + name: 4test-shock.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-shock-admin.example.test + name: 4test-shock.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-shock.example.test + name: 4test-shock.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-shock.svc + name: 4test-shock.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-shock-admin.example.test + name: 4test-shock.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-shock.svc + name: 4test-shock.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-shock.example.test + name: 4test-shock.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-local.svc + name: 4test-local.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-local.example.test + name: 4test-local.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-local.svc + name: 4test-local.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-local.example.test + name: 4test-local.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-local.svc + name: 4test-local.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-local-admin.example.test + name: 4test-local.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-local.example.test + name: 4test-local.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-local.svc + name: 4test-local.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-local-admin.example.test + name: 4test-local.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-local.svc + name: 4test-local.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-local.example.test + name: 4test-local.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-newthings.svc + name: 4test-newthings.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-newthings.example.test + name: 4test-newthings.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-newthings.svc + name: 4test-newthings.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-newthings.example.test + name: 4test-newthings.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-newthings.svc + name: 4test-newthings.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-newthings-admin.example.test + name: 4test-newthings.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-newthings.example.test + name: 4test-newthings.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-newthings.svc + name: 4test-newthings.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-newthings-admin.example.test + name: 4test-newthings.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-newthings.svc + name: 4test-newthings.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-newthings.example.test + name: 4test-newthings.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing7-halftest.svc + name: 4test-athing7-halftest.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-halftest.example.test + name: 4test-athing7-halftest.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing7-halftest.svc + name: 4test-athing7-halftest.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-halftest.example.test + name: 4test-athing7-halftest.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing7-halftest.svc + name: 4test-athing7-halftest.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-halftest-admin.example.test + name: 4test-athing7-halftest.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing7-halftest.example.test + name: 4test-athing7-halftest.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing7-halftest.svc + name: 4test-athing7-halftest.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-halftest-admin.example.test + name: 4test-athing7-halftest.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing7-halftest.svc + name: 4test-athing7-halftest.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-halftest.example.test + name: 4test-athing7-halftest.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing7-moartests.svc + name: 4test-athing7-moartests.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-moartests.example.test + name: 4test-athing7-moartests.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing7-moartests.svc + name: 4test-athing7-moartests.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-moartests.example.test + name: 4test-athing7-moartests.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing7-moartests.svc + name: 4test-athing7-moartests.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-moartests-admin.example.test + name: 4test-athing7-moartests.testing-ingress-admin.01 + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing7-moartests.example.test + name: 4test-athing7-moartests.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static.4test-athing7-moartests.svc + name: 4test-athing7-moartests.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-moartests-admin.example.test + name: 4test-athing7-moartests.testing-ingress-admin.00 + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing7-moartests.example.test + name: 4test-athing7-moartests.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing7-gettests.svc + name: 4test-athing7-gettests.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-gettests.example.test + name: 4test-athing7-gettests.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing7-gettests.svc + name: 4test-athing7-gettests.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-gettests.example.test + name: 4test-athing7-gettests.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing7-gettests.svc + name: 4test-athing7-gettests.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-gettests-admin.example.test + name: 4test-athing7-gettests.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing7-gettests.example.test + name: 4test-athing7-gettests.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing7-gettests.svc + name: 4test-athing7-gettests.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-gettests-admin.example.test + name: 4test-athing7-gettests.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing7-gettests.svc + name: 4test-athing7-gettests.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing7-gettests.example.test + name: 4test-athing7-gettests.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-gottests.svc + name: 4test-gottests.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-gottests.example.test + name: 4test-gottests.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-gottests.svc + name: 4test-gottests.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-gottests.example.test + name: 4test-gottests.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-gottests.svc + name: 4test-gottests.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-gottests-admin.example.test + name: 4test-gottests.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-gottests.example.test + name: 4test-gottests.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-gottests.svc + name: 4test-gottests.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-gottests-admin.example.test + name: 4test-gottests.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-gottests.svc + name: 4test-gottests.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-gottests.example.test + name: 4test-gottests.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-fam.svc + name: 4test-fam.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-fam.example.test + name: 4test-fam.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-fam.svc + name: 4test-fam.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-fam.example.test + name: 4test-fam.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-fam.svc + name: 4test-fam.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-fam-admin.example.test + name: 4test-fam.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-fam.example.test + name: 4test-fam.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-fam.svc + name: 4test-fam.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-fam-admin.example.test + name: 4test-fam.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-fam.svc + name: 4test-fam.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-fam.example.test + name: 4test-fam.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing8-2007.svc + name: 4test-athing8-2007.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing8-2007.example.test + name: 4test-athing8-2007.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing8-2007.svc + name: 4test-athing8-2007.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing8-2007.example.test + name: 4test-athing8-2007.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing8-2007.svc + name: 4test-athing8-2007.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing8-2007-admin.example.test + name: 4test-athing8-2007.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing8-2007.example.test + name: 4test-athing8-2007.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing8-2007.svc + name: 4test-athing8-2007.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing8-2007-admin.example.test + name: 4test-athing8-2007.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing8-2007.svc + name: 4test-athing8-2007.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing8-2007.example.test + name: 4test-athing8-2007.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-grantests.svc + name: 4test-grantests.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-grantests.example.test + name: 4test-grantests.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-grantests.svc + name: 4test-grantests.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-grantests.example.test + name: 4test-grantests.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-grantests.svc + name: 4test-grantests.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-grantests-admin.example.test + name: 4test-grantests.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-grantests.example.test + name: 4test-grantests.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-grantests.svc + name: 4test-grantests.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-grantests-admin.example.test + name: 4test-grantests.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-grantests.svc + name: 4test-grantests.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-grantests.example.test + name: 4test-grantests.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-btests.svc + name: 4test-btests.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-btests.example.test + name: 4test-btests.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-btests.svc + name: 4test-btests.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-btests.example.test + name: 4test-btests.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-btests.svc + name: 4test-btests.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-btests-admin.example.test + name: 4test-btests.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-btests.example.test + name: 4test-btests.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-btests.svc + name: 4test-btests.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-btests-admin.example.test + name: 4test-btests.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-btests.svc + name: 4test-btests.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-btests.example.test + name: 4test-btests.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-lttl.svc + name: 4test-lttl.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-lttl.example.test + name: 4test-lttl.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-lttl.svc + name: 4test-lttl.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-lttl.example.test + name: 4test-lttl.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-lttl.svc + name: 4test-lttl.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-lttl-admin.example.test + name: 4test-lttl.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-lttl.example.test + name: 4test-lttl.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-lttl.svc + name: 4test-lttl.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-lttl-admin.example.test + name: 4test-lttl.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-lttl.svc + name: 4test-lttl.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-lttl.example.test + name: 4test-lttl.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing9-valid.svc + name: 4test-athing9-valid.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-valid.example.test + name: 4test-athing9-valid.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing9-valid.svc + name: 4test-athing9-valid.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-valid.example.test + name: 4test-athing9-valid.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing9-valid.svc + name: 4test-athing9-valid.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-valid-admin.example.test + name: 4test-athing9-valid.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing9-valid.example.test + name: 4test-athing9-valid.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing9-valid.svc + name: 4test-athing9-valid.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-valid-admin.example.test + name: 4test-athing9-valid.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing9-valid.svc + name: 4test-athing9-valid.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-valid.example.test + name: 4test-athing9-valid.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing9-morevalid.svc + name: 4test-athing9-morevalid.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-morevalid.example.test + name: 4test-athing9-morevalid.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing9-morevalid.svc + name: 4test-athing9-morevalid.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-morevalid.example.test + name: 4test-athing9-morevalid.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing9-morevalid.svc + name: 4test-athing9-morevalid.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-morevalid-admin.example.test + name: 4test-athing9-morevalid.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing9-morevalid.example.test + name: 4test-athing9-morevalid.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing9-morevalid.svc + name: 4test-athing9-morevalid.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-morevalid-admin.example.test + name: 4test-athing9-morevalid.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing9-morevalid.svc + name: 4test-athing9-morevalid.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-morevalid.example.test + name: 4test-athing9-morevalid.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing9-wanttotest.svc + name: 4test-athing9-wanttotest.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-wanttotest.example.test + name: 4test-athing9-wanttotest.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing9-wanttotest.svc + name: 4test-athing9-wanttotest.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-wanttotest.example.test + name: 4test-athing9-wanttotest.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing9-wanttotest.svc + name: 4test-athing9-wanttotest.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-wanttotest-admin.example.test + name: 4test-athing9-wanttotest.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing9-wanttotest.example.test + name: 4test-athing9-wanttotest.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing9-wanttotest.svc + name: 4test-athing9-wanttotest.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-wanttotest-admin.example.test + name: 4test-athing9-wanttotest.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing9-wanttotest.svc + name: 4test-athing9-wanttotest.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-wanttotest.example.test + name: 4test-athing9-wanttotest.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing9-whichtest.svc + name: 4test-athing9-whichtest.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-whichtest.example.test + name: 4test-athing9-whichtest.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing9-whichtest.svc + name: 4test-athing9-whichtest.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-whichtest.example.test + name: 4test-athing9-whichtest.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing9-whichtest.svc + name: 4test-athing9-whichtest.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-whichtest-admin.example.test + name: 4test-athing9-whichtest.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing9-whichtest.example.test + name: 4test-athing9-whichtest.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing9-whichtest.svc + name: 4test-athing9-whichtest.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-whichtest-admin.example.test + name: 4test-athing9-whichtest.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing9-whichtest.svc + name: 4test-athing9-whichtest.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-whichtest.example.test + name: 4test-athing9-whichtest.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing9-frank.svc + name: 4test-athing9-frank.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-frank.example.test + name: 4test-athing9-frank.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing9-nsf.svc + name: 4test-athing9-nsf.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-nsf.example.test + name: 4test-athing9-nsf.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing9-nsf.svc + name: 4test-athing9-nsf.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-nsf.example.test + name: 4test-athing9-nsf.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing9-nsf.svc + name: 4test-athing9-nsf.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-nsf-admin.example.test + name: 4test-athing9-nsf.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing9-nsf.example.test + name: 4test-athing9-nsf.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing9-nsf.svc + name: 4test-athing9-nsf.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-nsf-admin.example.test + name: 4test-athing9-nsf.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing9-nsf.svc + name: 4test-athing9-nsf.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing9-nsf.example.test + name: 4test-athing9-nsf.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing10-jnk.svc + name: 4test-athing10-jnk.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-jnk.example.test + name: 4test-athing10-jnk.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing10-jnk.svc + name: 4test-athing10-jnk.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-jnk.example.test + name: 4test-athing10-jnk.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing10-jnk.svc + name: 4test-athing10-jnk.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-jnk-admin.example.test + name: 4test-athing10-jnk.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing10-jnk.example.test + name: 4test-athing10-jnk.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing10-jnk.svc + name: 4test-athing10-jnk.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-jnk-admin.example.test + name: 4test-athing10-jnk.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing10-jnk.svc + name: 4test-athing10-jnk.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-jnk.example.test + name: 4test-athing10-jnk.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing10-local.svc + name: 4test-athing10-local.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-local.example.test + name: 4test-athing10-local.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing10-local.svc + name: 4test-athing10-local.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-local.example.test + name: 4test-athing10-local.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing10-local.svc + name: 4test-athing10-local.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-local-admin.example.test + name: 4test-athing10-local.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing10-local.example.test + name: 4test-athing10-local.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing10-local.svc + name: 4test-athing10-local.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-local-admin.example.test + name: 4test-athing10-local.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing10-local.svc + name: 4test-athing10-local.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-local.example.test + name: 4test-athing10-local.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing10-bbitw.svc + name: 4test-athing10-bbitw.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-bbitw.example.test + name: 4test-athing10-bbitw.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing10-bbitw.svc + name: 4test-athing10-bbitw.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-bbitw.example.test + name: 4test-athing10-bbitw.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing10-bbitw.svc + name: 4test-athing10-bbitw.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-bbitw-admin.example.test + name: 4test-athing10-bbitw.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing10-bbitw.example.test + name: 4test-athing10-bbitw.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing10-bbitw.svc + name: 4test-athing10-bbitw.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-bbitw-admin.example.test + name: 4test-athing10-bbitw.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing10-bbitw.svc + name: 4test-athing10-bbitw.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-bbitw.example.test + name: 4test-athing10-bbitw.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing10-gettests.svc + name: 4test-athing10-gettests.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-gettests.example.test + name: 4test-athing10-gettests.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing10-gettests.svc + name: 4test-athing10-gettests.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-gettests.example.test + name: 4test-athing10-gettests.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing10-gettests.svc + name: 4test-athing10-gettests.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-gettests-admin.example.test + name: 4test-athing10-gettests.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing10-gettests.example.test + name: 4test-athing10-gettests.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing10-gettests.svc + name: 4test-athing10-gettests.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-gettests-admin.example.test + name: 4test-athing10-gettests.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing10-gettests.svc + name: 4test-athing10-gettests.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-gettests.example.test + name: 4test-athing10-gettests.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-athing10-phn.svc + name: 4test-athing10-phn.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-phn.example.test + name: 4test-athing10-phn.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-athing10-phn.svc + name: 4test-athing10-phn.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-phn.example.test + name: 4test-athing10-phn.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-athing10-phn.svc + name: 4test-athing10-phn.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-tim-admin.example.test + name: 4test-athing10-phn.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-athing10-phn.example.test + name: 4test-athing10-phn.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-athing10-phn.svc + name: 4test-athing10-phn.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-tim-admin.example.test + name: 4test-athing10-phn.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-athing10-phn.svc + name: 4test-athing10-phn.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-athing10-phn.example.test + name: 4test-athing10-phn.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-test1.svc + name: 4test-test1.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test1.example.test + name: 4test-test1.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-test1.svc + name: 4test-test1.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test1.example.test + name: 4test-test1.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-test1.svc + name: 4test-test1.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test1-admin.example.test + name: 4test-test1.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-test1.example.test + name: 4test-test1.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-test1.svc + name: 4test-test1.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test1-admin.example.test + name: 4test-test1.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-test1.svc + name: 4test-test1.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test1.example.test + name: 4test-test1.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: something-static.4test-test2.svc + name: 4test-test2.something-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test2.example.test + name: 4test-test2.something-ingress-static.00 + paths: + - /something/4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing-ws.4test-test2.svc + name: 4test-test2.testing-testing-ws.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test2.example.test + name: 4test-test2.testing-ingress-app.01 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/ws + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-testing.4test-test2.svc + name: 4test-test2.testing-testing.8000 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test2-admin.example.test + name: 4test-test2.testing-ingress-admin.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https + - hosts: + - 4test-test2.example.test + name: 4test-test2.testing-ingress-app.00 + methods: + - POST + - GET + - PATCH + - PUT + - DELETE + paths: + - /4test/api + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: false + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: testing-static-admin.4test-test2.svc + name: 4test-test2.testing-static-admin.80 + path: /static/admin + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test2-admin.example.test + name: 4test-test2.testing-ingress-admin-static.00 + methods: + - GET + paths: + - /4test/static/admin + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 + plugins: + - name: ip-restriction + config: + deny: null + allow: + - 0.0.0.0/0 + enabled: true + protocols: + - grpc + - grpcs + - http + - https +- connect_timeout: 60000 + host: testing-static.4test-test2.svc + name: 4test-test2.testing-static.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - 4test-test2.example.test + name: 4test-test2.testing-ingress-static.00 + paths: + - /4test + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: konga.kong.svc + name: kong.konga.http + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - konga-k8s-demo01-kong.example.test + name: kong.konga.00 + paths: + - / + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: grafana.monitoring.svc + name: monitoring.grafana.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - monitor-k8s-demo01-kong.example.test + name: monitoring.grafana.00 + paths: + - / + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +- connect_timeout: 60000 + host: prometheus-alertmanager.monitoring.svc + name: monitoring.prometheus-alertmanager.80 + path: / + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 + routes: + - hosts: + - alerts-k8s-demo01.example.test + name: monitoring.prometheus-alertmanager.00 + paths: + - / + preserve_host: true + protocols: + - http + - https + regex_priority: 0 + strip_path: true + https_redirect_status_code: 426 +upstreams: +- name: grafana.monitoring.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.48:3000 + weight: 100 +- name: konga.kong.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.223.36:1337 + weight: 100 +- name: prometheus-alertmanager.monitoring.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.142:9093 + weight: 100 +- name: something-static.4test-any.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.117:80 + weight: 100 +- name: something-static.4test-athing1-otherthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.249:80 + weight: 100 +- name: something-static.4test-athing1-name.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.172:80 + weight: 100 +- name: something-static.4test-athing1-othername.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.96.92.92:80 + weight: 100 +- name: something-static.4test-athing1-morenames.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.209:80 + weight: 100 +- name: something-static.4test-thatthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.31.239:80 + weight: 100 +- name: something-static.4test-athing2-suchthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.134:80 + weight: 100 +- name: something-static.4test-athing2-wow.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.159:80 + weight: 100 +- name: something-static.4test-manythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.113:80 + weight: 100 +- name: something-static.4test-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.52:80 + weight: 100 +- name: something-static.4test-athing3-tester2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.20:80 + weight: 100 +- name: something-static.4test-athing3-oldthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.132:80 + weight: 100 +- name: something-static.4test-demo1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.35:80 + weight: 100 +- name: something-static.4test-demo2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.235:80 + weight: 100 +- name: something-static.4test-dev.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.172:80 + weight: 100 +- name: something-static.4test-athing4-sothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.74:80 + weight: 100 +- name: something-static.4test-athing5-cousin.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.47:80 + weight: 100 +- name: something-static.4test-athing5-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.126:80 + weight: 100 +- name: something-static.4test-athing5-ygbkm.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.107:80 + weight: 100 +- name: something-static.4test-athing5-gothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.30:80 + weight: 100 +- name: something-static.4test-athing5-clever.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.72:80 + weight: 100 +- name: something-static.4test-athing6-itis.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.101.121:80 + weight: 100 +- name: something-static.4test-tldr.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.100:80 + weight: 100 +- name: something-static.4test-shock.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.171:80 + weight: 100 +- name: something-static.4test-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.107.57.110:80 + weight: 100 +- name: something-static.4test-newthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.49:80 + weight: 100 +- name: something-static.4test-athing7-halftest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.152:80 + weight: 100 +- name: something-static.4test-athing7-moartests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.119.243.142:80 + weight: 100 +- name: something-static.4test-athing7-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.107.57.83:80 + weight: 100 +- name: something-static.4test-gottests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.20:80 + weight: 100 +- name: something-static.4test-fam.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.96.92.105:80 + weight: 100 +- name: something-static.4test-athing8-2007.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.132:80 + weight: 100 +- name: something-static.4test-grantests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.89:80 + weight: 100 +- name: something-static.4test-btests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.205:80 + weight: 100 +- name: something-static.4test-lttl.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.119.243.166:80 + weight: 100 +- name: something-static.4test-athing9-valid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.150:80 + weight: 100 +- name: something-static.4test-athing9-morevalid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.100:80 + weight: 100 +- name: something-static.4test-athing9-wanttotest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.121:80 + weight: 100 +- name: something-static.4test-athing9-whichtest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.119:80 + weight: 100 +- name: something-static.4test-athing9-frank.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.141:80 + weight: 100 +- name: something-static.4test-athing9-nsf.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.187:80 + weight: 100 +- name: something-static.4test-athing10-jnk.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.40:80 + weight: 100 +- name: something-static.4test-athing10-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.12:80 + weight: 100 +- name: something-static.4test-athing10-bbitw.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.5:80 + weight: 100 +- name: something-static.4test-athing10-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.69:80 + weight: 100 +- name: something-static.4test-athing10-phn.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.106:80 + weight: 100 +- name: something-static.4test-test1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.223.44:80 + weight: 100 +- name: something-static.4test-test2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.136:80 + weight: 100 +- name: testing-testing-ws.4test-any.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.24:8000 + weight: 100 +- name: testing-testing-ws.4test-athing1-otherthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.169:8000 + weight: 100 +- name: testing-testing-ws.4test-athing1-name.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.174:8000 + weight: 100 +- name: testing-testing-ws.4test-athing1-othername.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.91:8000 + weight: 100 +- name: testing-testing-ws.4test-athing1-morenames.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.74:8000 + weight: 100 +- name: testing-testing-ws.4test-thatthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.216:8000 + weight: 100 +- name: testing-testing-ws.4test-athing2-suchthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.85:8000 + weight: 100 +- name: testing-testing-ws.4test-athing2-wow.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.179:8000 + weight: 100 +- name: testing-testing-ws.4test-manythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.108:8000 + weight: 100 +- name: testing-testing-ws.4test-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.92:8000 + weight: 100 +- name: testing-testing-ws.4test-athing3-tester2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.105:8000 + weight: 100 +- name: testing-testing-ws.4test-athing3-oldthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.109:8000 + weight: 100 +- name: testing-testing-ws.4test-demo1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.15:8000 + weight: 100 +- name: testing-testing-ws.4test-demo2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.107.57.97:8000 + weight: 100 +- name: testing-testing-ws.4test-dev.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.148:8000 + weight: 100 +- name: testing-testing-ws.4test-athing4-sothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.12:8000 + weight: 100 +- name: testing-testing-ws.4test-athing5-cousin.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.17:8000 + weight: 100 +- name: testing-testing-ws.4test-athing5-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.99:8000 + weight: 100 +- name: testing-testing-ws.4test-athing5-ygbkm.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.172:8000 + weight: 100 +- name: testing-testing-ws.4test-athing5-gothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.165:8000 + weight: 100 +- name: testing-testing-ws.4test-athing5-clever.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.173:8000 + weight: 100 +- name: testing-testing-ws.4test-athing6-itis.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.23:8000 + weight: 100 +- name: testing-testing-ws.4test-tldr.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.119.243.162:8000 + weight: 100 +- name: testing-testing-ws.4test-shock.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.107.57.114:8000 + weight: 100 +- name: testing-testing-ws.4test-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.221:8000 + weight: 100 +- name: testing-testing-ws.4test-newthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.117:8000 + weight: 100 +- name: testing-testing-ws.4test-athing7-halftest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.31.196:8000 + weight: 100 +- name: testing-testing-ws.4test-athing7-moartests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.71:8000 + weight: 100 +- name: testing-testing-ws.4test-athing7-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.147:8000 + weight: 100 +- name: testing-testing-ws.4test-gottests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.179:8000 + weight: 100 +- name: testing-testing-ws.4test-fam.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.60:8000 + weight: 100 +- name: testing-testing-ws.4test-athing8-2007.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.96.92.72:8000 + weight: 100 +- name: testing-testing-ws.4test-grantests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.151:8000 + weight: 100 +- name: testing-testing-ws.4test-btests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.232:8000 + weight: 100 +- name: testing-testing-ws.4test-lttl.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.166:8000 + weight: 100 +- name: testing-testing-ws.4test-athing9-valid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.15:8000 + weight: 100 +- name: testing-testing-ws.4test-athing9-morevalid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.63:8000 + weight: 100 +- name: testing-testing-ws.4test-athing9-wanttotest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.106:8000 + weight: 100 +- name: testing-testing-ws.4test-athing9-whichtest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.88:8000 + weight: 100 +- name: testing-testing-ws.4test-athing9-nsf.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.115:8000 + weight: 100 +- name: testing-testing-ws.4test-athing10-jnk.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.31.225:8000 + weight: 100 +- name: testing-testing-ws.4test-athing10-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.13:8000 + weight: 100 +- name: testing-testing-ws.4test-athing10-bbitw.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.179:8000 + weight: 100 +- name: testing-testing-ws.4test-athing10-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.120.185.28:8000 + weight: 100 +- name: testing-testing-ws.4test-athing10-phn.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.46:8000 + weight: 100 +- name: testing-testing-ws.4test-test1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.137:8000 + weight: 100 +- name: testing-testing-ws.4test-test2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.223.49:8000 + weight: 100 +- name: testing-testing.4test-any.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.54:8000 + weight: 100 +- name: testing-testing.4test-athing1-otherthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.169:8000 + weight: 100 +- name: testing-testing.4test-athing1-name.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.101.70:8000 + weight: 100 +- name: testing-testing.4test-athing1-othername.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.11:8000 + weight: 100 +- name: testing-testing.4test-athing1-morenames.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.96.92.101:8000 + weight: 100 +- name: testing-testing.4test-thatthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.11:8000 + weight: 100 +- name: testing-testing.4test-athing2-suchthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.202:8000 + weight: 100 +- name: testing-testing.4test-athing2-wow.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.98:8000 + weight: 100 +- name: testing-testing.4test-manythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.81:8000 + weight: 100 +- name: testing-testing.4test-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.168:8000 + weight: 100 +- name: testing-testing.4test-athing3-tester2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.161:8000 + weight: 100 +- name: testing-testing.4test-athing3-oldthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.152:8000 + weight: 100 +- name: testing-testing.4test-demo1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.119.243.153:8000 + weight: 100 +- name: testing-testing.4test-demo2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.107.57.116:8000 + weight: 100 +- name: testing-testing.4test-dev.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.26:8000 + weight: 100 +- name: testing-testing.4test-athing4-sothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.119.243.159:8000 + weight: 100 +- name: testing-testing.4test-athing5-cousin.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.127:8000 + weight: 100 +- name: testing-testing.4test-athing5-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.109:8000 + weight: 100 +- name: testing-testing.4test-athing5-ygbkm.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.101.122:8000 + weight: 100 +- name: testing-testing.4test-athing5-gothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.59:8000 + weight: 100 +- name: testing-testing.4test-athing5-clever.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.228.184:8000 + weight: 100 +- name: testing-testing.4test-athing6-itis.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.179:8000 + weight: 100 +- name: testing-testing.4test-tldr.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.29:8000 + weight: 100 +- name: testing-testing.4test-shock.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.225:8000 + weight: 100 +- name: testing-testing.4test-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.34:8000 + weight: 100 + - target: 100.114.171.74:8000 + weight: 100 +- name: testing-testing.4test-newthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.36:8000 + weight: 100 +- name: testing-testing.4test-athing7-halftest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.101.113:8000 + weight: 100 +- name: testing-testing.4test-athing7-moartests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.96.92.109:8000 + weight: 100 +- name: testing-testing.4test-athing7-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.188:8000 + weight: 100 +- name: testing-testing.4test-gottests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.119.243.160:8000 + weight: 100 +- name: testing-testing.4test-fam.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.59:8000 + weight: 100 +- name: testing-testing.4test-athing8-2007.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.96.92.117:8000 + weight: 100 +- name: testing-testing.4test-grantests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.58:8000 + weight: 100 +- name: testing-testing.4test-btests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.237:8000 + weight: 100 +- name: testing-testing.4test-lttl.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.146:8000 + weight: 100 +- name: testing-testing.4test-athing9-valid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.18:8000 + weight: 100 +- name: testing-testing.4test-athing9-morevalid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.255:8000 + weight: 100 +- name: testing-testing.4test-athing9-wanttotest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.99:8000 + weight: 100 +- name: testing-testing.4test-athing9-whichtest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.36:8000 + weight: 100 +- name: testing-testing.4test-athing9-nsf.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.114:8000 + weight: 100 +- name: testing-testing.4test-athing10-jnk.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.120.185.31:8000 + weight: 100 +- name: testing-testing.4test-athing10-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.15:8000 + weight: 100 +- name: testing-testing.4test-athing10-bbitw.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.120.185.24:8000 + weight: 100 +- name: testing-testing.4test-athing10-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.120.185.27:8000 + weight: 100 +- name: testing-testing.4test-athing10-phn.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.47:8000 + weight: 100 +- name: testing-testing.4test-test1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.223.25:8000 + weight: 100 +- name: testing-testing.4test-test2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.165:8000 + weight: 100 +- name: testing-static-admin.4test-any.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.98:80 + weight: 100 +- name: testing-static-admin.4test-athing1-otherthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.251:80 + weight: 100 +- name: testing-static-admin.4test-athing1-name.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.147:80 + weight: 100 +- name: testing-static-admin.4test-athing1-othername.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.72:80 + weight: 100 +- name: testing-static-admin.4test-athing1-morenames.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.132:80 + weight: 100 +- name: testing-static-admin.4test-thatthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.95:80 + weight: 100 +- name: testing-static-admin.4test-athing2-suchthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.87:80 + weight: 100 +- name: testing-static-admin.4test-athing2-wow.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.71:80 + weight: 100 +- name: testing-static-admin.4test-manythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.73:80 + weight: 100 +- name: testing-static-admin.4test-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.17:80 + weight: 100 +- name: testing-static-admin.4test-athing3-oldthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.183:80 + weight: 100 +- name: testing-static-admin.4test-demo1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.32:80 + weight: 100 +- name: testing-static-admin.4test-demo2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.50:80 + weight: 100 +- name: testing-static-admin.4test-dev.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.167:80 + weight: 100 +- name: testing-static-admin.4test-athing4-sothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.157:80 + weight: 100 +- name: testing-static-admin.4test-athing5-cousin.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.89:80 + weight: 100 +- name: testing-static-admin.4test-athing5-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.118:80 + weight: 100 +- name: testing-static-admin.4test-athing5-ygbkm.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.105:80 + weight: 100 +- name: testing-static-admin.4test-athing5-gothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.27:80 + weight: 100 +- name: testing-static-admin.4test-athing5-clever.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.237:80 + weight: 100 +- name: testing-static-admin.4test-tldr.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.94:80 + weight: 100 +- name: testing-static-admin.4test-shock.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.170:80 + weight: 100 +- name: testing-static-admin.4test-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.125:80 + weight: 100 +- name: testing-static-admin.4test-newthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.51:80 + weight: 100 +- name: testing-static-admin.4test-athing7-halftest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.132:80 + weight: 100 +- name: testing-static-admin.4test-athing7-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.44:80 + weight: 100 +- name: testing-static-admin.4test-gottests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.207:80 + weight: 100 +- name: testing-static-admin.4test-fam.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.149:80 + weight: 100 +- name: testing-static-admin.4test-athing8-2007.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.34:80 + weight: 100 +- name: testing-static-admin.4test-grantests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.13:80 + weight: 100 +- name: testing-static-admin.4test-btests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.222:80 + weight: 100 +- name: testing-static-admin.4test-lttl.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.244:80 + weight: 100 +- name: testing-static-admin.4test-athing9-valid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.5:80 + weight: 100 +- name: testing-static-admin.4test-athing9-morevalid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.178:80 + weight: 100 +- name: testing-static-admin.4test-athing9-wanttotest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.100:80 + weight: 100 +- name: testing-static-admin.4test-athing9-whichtest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.77:80 + weight: 100 +- name: testing-static-admin.4test-athing9-nsf.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.116:80 + weight: 100 +- name: testing-static-admin.4test-athing10-jnk.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.31.222:80 + weight: 100 +- name: testing-static-admin.4test-athing10-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.14:80 + weight: 100 +- name: testing-static-admin.4test-athing10-bbitw.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.38:80 + weight: 100 +- name: testing-static-admin.4test-athing10-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.120.185.29:80 + weight: 100 +- name: testing-static-admin.4test-athing10-phn.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.79:80 + weight: 100 +- name: testing-static-admin.4test-test1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.228:80 + weight: 100 +- name: testing-static-admin.4test-test2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.189:80 + weight: 100 +- name: testing-static.4test-any.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.98:80 + weight: 100 +- name: testing-static.4test-athing1-otherthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.251:80 + weight: 100 +- name: testing-static.4test-athing1-name.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.147:80 + weight: 100 +- name: testing-static.4test-athing1-othername.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.72:80 + weight: 100 +- name: testing-static.4test-athing1-morenames.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.132:80 + weight: 100 +- name: testing-static.4test-thatthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.95:80 + weight: 100 +- name: testing-static.4test-athing2-suchthing.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.87:80 + weight: 100 +- name: testing-static.4test-athing2-wow.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.91.71:80 + weight: 100 +- name: testing-static.4test-manythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.73:80 + weight: 100 +- name: testing-static.4test-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.17:80 + weight: 100 +- name: testing-static.4test-athing3-tester2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.160:80 + weight: 100 +- name: testing-static.4test-athing3-oldthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.127.21.183:80 + weight: 100 +- name: testing-static.4test-demo1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.32:80 + weight: 100 +- name: testing-static.4test-demo2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.50:80 + weight: 100 +- name: testing-static.4test-dev.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.167:80 + weight: 100 +- name: testing-static.4test-athing4-sothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.157:80 + weight: 100 +- name: testing-static.4test-athing5-cousin.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.89:80 + weight: 100 +- name: testing-static.4test-athing5-verythings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.118:80 + weight: 100 +- name: testing-static.4test-athing5-ygbkm.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.105:80 + weight: 100 +- name: testing-static.4test-athing5-gothings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.27:80 + weight: 100 +- name: testing-static.4test-athing5-clever.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.237:80 + weight: 100 +- name: testing-static.4test-athing6-itis.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.115.236.22:80 + weight: 100 +- name: testing-static.4test-tldr.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.94:80 + weight: 100 +- name: testing-static.4test-shock.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.222.170:80 + weight: 100 +- name: testing-static.4test-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.97.79.125:80 + weight: 100 +- name: testing-static.4test-newthings.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.85.51:80 + weight: 100 +- name: testing-static.4test-athing7-halftest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.132:80 + weight: 100 +- name: testing-static.4test-athing7-moartests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.122.180.94:80 + weight: 100 +- name: testing-static.4test-athing7-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.121.148.44:80 + weight: 100 +- name: testing-static.4test-gottests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.207:80 + weight: 100 +- name: testing-static.4test-fam.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.1.149:80 + weight: 100 +- name: testing-static.4test-athing8-2007.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.34:80 + weight: 100 +- name: testing-static.4test-grantests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.13:80 + weight: 100 +- name: testing-static.4test-btests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.197.222:80 + weight: 100 +- name: testing-static.4test-lttl.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.244:80 + weight: 100 +- name: testing-static.4test-athing9-valid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.103.246.5:80 + weight: 100 +- name: testing-static.4test-athing9-morevalid.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.105.108.178:80 + weight: 100 +- name: testing-static.4test-athing9-wanttotest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.123.141.100:80 + weight: 100 +- name: testing-static.4test-athing9-whichtest.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.77:80 + weight: 100 +- name: testing-static.4test-athing9-nsf.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.229.116:80 + weight: 100 +- name: testing-static.4test-athing10-jnk.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.113.31.222:80 + weight: 100 +- name: testing-static.4test-athing10-local.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.99.213.14:80 + weight: 100 +- name: testing-static.4test-athing10-bbitw.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.112.140.38:80 + weight: 100 +- name: testing-static.4test-athing10-gettests.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.120.185.29:80 + weight: 100 +- name: testing-static.4test-athing10-phn.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.114.171.79:80 + weight: 100 +- name: testing-static.4test-test1.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.98.136.228:80 + weight: 100 +- name: testing-static.4test-test2.svc + algorithm: round-robin + slots: 10000 + healthchecks: + active: + concurrency: 10 + healthy: + http_statuses: + - 200 + - 302 + interval: 0 + successes: 0 + http_path: / + https_verify_certificate: true + type: http + timeout: 1 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 404 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + tcp_failures: 0 + timeouts: 0 + interval: 0 + passive: + healthy: + http_statuses: + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 226 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + successes: 0 + unhealthy: + http_failures: 0 + http_statuses: + - 429 + - 500 + - 503 + tcp_failures: 0 + timeouts: 0 + hash_on: none + hash_fallback: none + hash_on_cookie_path: / + targets: + - target: 100.100.77.189:80 + weight: 100 +plugins: +- name: prometheus + enabled: true + protocols: + - grpc + - grpcs + - http + - https diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_nginx.template b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_nginx.template new file mode 100644 index 00000000..1306bd4a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_nginx.template @@ -0,0 +1,1374 @@ +# This is a custom nginx configuration template for Kong specs + +pid pids/nginx.pid; # mandatory even for custom config templates +error_log ${{PROXY_ERROR_LOG}} ${{LOG_LEVEL}}; + +env KONG_LICENSE_DATA; +env KONG_LICENSE_PATH; + +# injected nginx_main_* directives +> for _, el in ipairs(nginx_main_directives) do +$(el.name) $(el.value); +> end + +> if database == "off" then +lmdb_environment_path ${{LMDB_ENVIRONMENT_PATH}}; +lmdb_map_size ${{LMDB_MAP_SIZE}}; +> end + +events { + # injected nginx_events_* directives +> for _, el in ipairs(nginx_events_directives) do + $(el.name) $(el.value); +> end +} + +> if role == "control_plane" or #proxy_listeners > 0 or #admin_listeners > 0 or #status_listeners > 0 then +http { + server_tokens off; + + error_log ${{PROXY_ERROR_LOG}} ${{LOG_LEVEL}}; + + lua_package_path '${{LUA_PACKAGE_PATH}};;'; + lua_package_cpath '${{LUA_PACKAGE_CPATH}};;'; + lua_socket_pool_size ${{LUA_SOCKET_POOL_SIZE}}; + lua_socket_log_errors off; + lua_max_running_timers 4096; + lua_max_pending_timers 16384; + lua_ssl_verify_depth ${{LUA_SSL_VERIFY_DEPTH}}; +> if lua_ssl_trusted_certificate_combined then + lua_ssl_trusted_certificate '${{LUA_SSL_TRUSTED_CERTIFICATE_COMBINED}}'; +> end + + lua_shared_dict kong 5m; + lua_shared_dict kong_locks 8m; + lua_shared_dict kong_healthchecks 5m; + lua_shared_dict kong_process_events 5m; + lua_shared_dict kong_cluster_events 5m; + lua_shared_dict kong_rate_limiting_counters 12m; + lua_shared_dict kong_core_db_cache ${{MEM_CACHE_SIZE}}; + lua_shared_dict kong_core_db_cache_miss 12m; + lua_shared_dict kong_db_cache ${{MEM_CACHE_SIZE}}; + lua_shared_dict kong_db_cache_miss 12m; +> if database == "cassandra" then + lua_shared_dict kong_cassandra 5m; +> end +> if role == "control_plane" then + lua_shared_dict kong_clustering 5m; +> end + lua_shared_dict kong_mock_upstream_loggers 10m; + + lua_shared_dict kong_vitals_counters 5m; + lua_shared_dict kong_vitals_lists 1m; + lua_shared_dict kong_vitals 1m; + lua_shared_dict kong_counters 1m; + lua_shared_dict kong_reports_consumers 1m; + lua_shared_dict kong_reports_routes 1m; + lua_shared_dict kong_reports_services 1m; + lua_shared_dict kong_keyring 5m; + lua_shared_dict kong_profiling_state 1536k; # 1.5 MBytes + + underscores_in_headers on; +> if ssl_ciphers then + ssl_ciphers ${{SSL_CIPHERS}}; +> end + + # injected nginx_http_* directives +> for _, el in ipairs(nginx_http_directives) do + $(el.name) $(el.value); +> end + + init_by_lua_block { + Kong = require 'kong' + Kong.init() + } + + init_worker_by_lua_block { + Kong.init_worker() + } + +> if (role == "traditional" or role == "data_plane") and #proxy_listeners > 0 then + # Load variable indexes + lua_kong_load_var_index default; + + upstream kong_upstream { + server 0.0.0.1; + + # injected nginx_upstream_* directives +> for _, el in ipairs(nginx_upstream_directives) do + $(el.name) $(el.value); +> end + + balancer_by_lua_block { + Kong.balancer() + } + } + + server { + server_name kong; +> for _, entry in ipairs(proxy_listeners) do + listen $(entry.listener); +> end + + error_page 400 404 405 408 411 412 413 414 417 494 /kong_error_handler; + error_page 500 502 503 504 /kong_error_handler; + + access_log ${{PROXY_ACCESS_LOG}}; + error_log ${{PROXY_ERROR_LOG}} ${{LOG_LEVEL}}; + +> if proxy_ssl_enabled then +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_session_cache shared:SSL:${{SSL_SESSION_CACHE_SIZE}}; + ssl_certificate_by_lua_block { + Kong.ssl_certificate() + } +> end + + # injected nginx_proxy_* directives +> for _, el in ipairs(nginx_proxy_directives) do + $(el.name) $(el.value); +> end +> for _, ip in ipairs(trusted_ips) do + set_real_ip_from $(ip); +> end + + rewrite_by_lua_block { + Kong.rewrite() + } + + access_by_lua_block { + Kong.access() + } + + header_filter_by_lua_block { + Kong.header_filter() + } + + body_filter_by_lua_block { + Kong.body_filter() + } + + log_by_lua_block { + Kong.log() + } + + location / { + default_type ''; + + set $ctx_ref ''; + set $upstream_te ''; + set $upstream_host ''; + set $upstream_upgrade ''; + set $upstream_connection ''; + set $upstream_scheme ''; + set $upstream_uri ''; + set $upstream_x_forwarded_for ''; + set $upstream_x_forwarded_proto ''; + set $upstream_x_forwarded_host ''; + set $upstream_x_forwarded_port ''; + set $upstream_x_forwarded_path ''; + set $upstream_x_forwarded_prefix ''; + set $kong_proxy_mode 'http'; + + set $set_request_id $request_id; + + proxy_http_version 1.1; + proxy_buffering on; + proxy_request_buffering on; + + proxy_set_header TE $upstream_te; + proxy_set_header Host $upstream_host; + proxy_set_header Upgrade $upstream_upgrade; + proxy_set_header Connection $upstream_connection; + proxy_set_header X-Forwarded-For $upstream_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host; + proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port; + proxy_set_header X-Forwarded-Path $upstream_x_forwarded_path; + proxy_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass_header Server; + proxy_pass_header Date; + proxy_ssl_name $upstream_host; + proxy_ssl_server_name on; +> if client_ssl then + proxy_ssl_certificate ${{CLIENT_SSL_CERT}}; + proxy_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + proxy_pass $upstream_scheme://kong_upstream$upstream_uri; + } + + location @unbuffered { + internal; + default_type ''; + set $kong_proxy_mode 'unbuffered'; + + proxy_http_version 1.1; + proxy_buffering off; + proxy_request_buffering off; + + proxy_set_header TE $upstream_te; + proxy_set_header Host $upstream_host; + proxy_set_header Upgrade $upstream_upgrade; + proxy_set_header Connection $upstream_connection; + proxy_set_header X-Forwarded-For $upstream_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host; + proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port; + proxy_set_header X-Forwarded-Path $upstream_x_forwarded_path; + proxy_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass_header Server; + proxy_pass_header Date; + proxy_ssl_name $upstream_host; + proxy_ssl_server_name on; +> if client_ssl then + proxy_ssl_certificate ${{CLIENT_SSL_CERT}}; + proxy_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + proxy_pass $upstream_scheme://kong_upstream$upstream_uri; + } + + location @unbuffered_request { + internal; + default_type ''; + set $kong_proxy_mode 'unbuffered'; + + proxy_http_version 1.1; + proxy_buffering on; + proxy_request_buffering off; + + proxy_set_header TE $upstream_te; + proxy_set_header Host $upstream_host; + proxy_set_header Upgrade $upstream_upgrade; + proxy_set_header Connection $upstream_connection; + proxy_set_header X-Forwarded-For $upstream_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host; + proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port; + proxy_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass_header Server; + proxy_pass_header Date; + proxy_ssl_name $upstream_host; + proxy_ssl_server_name on; +> if client_ssl then + proxy_ssl_certificate ${{CLIENT_SSL_CERT}}; + proxy_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + proxy_pass $upstream_scheme://kong_upstream$upstream_uri; + } + + location @unbuffered_response { + internal; + default_type ''; + set $kong_proxy_mode 'unbuffered'; + + proxy_http_version 1.1; + proxy_buffering off; + proxy_request_buffering on; + + proxy_set_header TE $upstream_te; + proxy_set_header Host $upstream_host; + proxy_set_header Upgrade $upstream_upgrade; + proxy_set_header Connection $upstream_connection; + proxy_set_header X-Forwarded-For $upstream_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host; + proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port; + proxy_set_header X-Forwarded-Path $upstream_x_forwarded_path; + proxy_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass_header Server; + proxy_pass_header Date; + proxy_ssl_name $upstream_host; + proxy_ssl_server_name on; +> if client_ssl then + proxy_ssl_certificate ${{CLIENT_SSL_CERT}}; + proxy_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + proxy_pass $upstream_scheme://kong_upstream$upstream_uri; + } + + location @grpc { + internal; + default_type ''; + set $kong_proxy_mode 'grpc'; + + grpc_set_header TE $upstream_te; + grpc_set_header X-Forwarded-For $upstream_x_forwarded_for; + grpc_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + grpc_set_header X-Forwarded-Host $upstream_x_forwarded_host; + grpc_set_header X-Forwarded-Port $upstream_x_forwarded_port; + grpc_set_header X-Forwarded-Path $upstream_x_forwarded_path; + grpc_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix; + grpc_set_header X-Real-IP $remote_addr; + grpc_pass_header Server; + grpc_pass_header Date; + grpc_ssl_name $upstream_host; + grpc_ssl_server_name on; +> if client_ssl then + grpc_ssl_certificate ${{CLIENT_SSL_CERT}}; + grpc_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + grpc_pass $upstream_scheme://kong_upstream; + } + + location @websocket { + internal; + default_type ''; + set $kong_proxy_mode 'websocket'; + + lua_check_client_abort on; + lingering_close always; + lingering_time 5s; + lingering_timeout 1s; + + body_filter_by_lua_block {;} + + access_by_lua_block { + Kong.ws_handshake() + } + + content_by_lua_block { + Kong.ws_proxy() + } + + log_by_lua_block { + Kong.ws_close() + } + } + + + location = /kong_buffered_http { + internal; + default_type ''; + set $kong_proxy_mode 'http'; + + rewrite_by_lua_block {;} + access_by_lua_block {;} + header_filter_by_lua_block {;} + body_filter_by_lua_block {;} + log_by_lua_block {;} + + proxy_http_version 1.1; + proxy_set_header TE $upstream_te; + proxy_set_header Host $upstream_host; + proxy_set_header Upgrade $upstream_upgrade; + proxy_set_header Connection $upstream_connection; + proxy_set_header X-Forwarded-For $upstream_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto; + proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host; + proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port; + proxy_set_header X-Forwarded-Path $upstream_x_forwarded_path; + proxy_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass_header Server; + proxy_pass_header Date; + proxy_ssl_name $upstream_host; + proxy_ssl_server_name on; +> if client_ssl then + proxy_ssl_certificate ${{CLIENT_SSL_CERT}}; + proxy_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + proxy_pass $upstream_scheme://kong_upstream$upstream_uri; + } + + location = /kong_error_handler { + internal; + default_type ''; + + uninitialized_variable_warn off; + + rewrite_by_lua_block {;} + access_by_lua_block {;} + + content_by_lua_block { + Kong.handle_error() + } + } + } +> end -- (role == "traditional" or role == "data_plane") and #proxy_listeners > 0 + + +> if (role == "control_plane" or role == "traditional") and #admin_listen > 0 and #admin_gui_listeners > 0 then +server { + server_name kong_gui; +> for i = 1, #admin_gui_listeners do + listen $(admin_gui_listeners[i].listener); +> end + +> if admin_gui_ssl_enabled then +> for i = 1, #admin_gui_ssl_cert do + ssl_certificate $(admin_gui_ssl_cert[i]); + ssl_certificate_key $(admin_gui_ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; +> end + + client_max_body_size 10m; + client_body_buffer_size 10m; + + types { + text/html html htm shtml; + text/css css; + text/xml xml; + image/gif gif; + image/jpeg jpeg jpg; + application/javascript js; + application/json json; + image/png png; + image/tiff tif tiff; + image/x-icon ico; + image/x-jng jng; + image/x-ms-bmp bmp; + image/svg+xml svg svgz; + image/webp webp; + } + + gzip on; + gzip_types text/plain text/css application/json application/javascript; + + location ~* \.(jpg|jpeg|png|gif|ico|css|ttf|js)$ { + root gui; + + expires 90d; + add_header Cache-Control 'public'; + add_header X-Frame-Options 'sameorigin'; + add_header X-XSS-Protection '1; mode=block'; + add_header X-Content-Type-Options 'nosniff'; + add_header X-Permitted-Cross-Domain-Policies 'master-only'; + etag off; + } + + location / { + root gui; + + try_files $uri /index.html; + + add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + add_header X-Frame-Options 'sameorigin'; + add_header X-XSS-Protection '1; mode=block'; + add_header X-Content-Type-Options 'nosniff'; + add_header X-Permitted-Cross-Domain-Policies 'master-only'; + etag off; + + access_log ${{ADMIN_GUI_ACCESS_LOG}}; + error_log ${{ADMIN_GUI_ERROR_LOG}}; + } + + location /robots.txt { + return 200 'User-agent: *\nDisallow: /'; + } + + location = /kconfig.js { + root gui_config; + expires -1; + } +} +> end + + +> if (role == "control_plane" or role == "traditional") and portal then +server { + server_name kong_portal_gui; +> for i = 1, #portal_gui_listeners do + listen $(portal_gui_listeners[i].listener); +> end + + access_log ${{PORTAL_GUI_ACCESS_LOG}}; + error_log ${{PORTAL_GUI_ERROR_LOG}} ${{LOG_LEVEL}}; + +> if portal_gui_ssl_enabled then +> for i = 1, #portal_gui_ssl_cert do + ssl_certificate $(portal_gui_ssl_cert[i]); + ssl_certificate_key $(portal_gui_ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; +> end + + client_max_body_size 10m; + client_body_buffer_size 10m; + log_not_found off; + + types { + text/html html htm shtml; + text/css css; + text/xml xml; + image/gif gif; + image/jpeg jpeg jpg; + application/javascript js; + application/json json; + image/png png; + image/tiff tif tiff; + image/x-icon ico; + image/x-jng jng; + image/x-ms-bmp bmp; + image/svg+xml svg svgz; + image/webp webp; + } + + gzip on; + gzip_types text/plain text/css application/json application/javascript; + + location ^~ /__legacy { + root portal; + + header_filter_by_lua_block { + ngx.header["server"] = nil + } + + expires 90d; + add_header Cache-Control 'public'; + add_header X-Frame-Options 'sameorigin'; + add_header X-XSS-Protection '1; mode=block'; + add_header X-Content-Type-Options 'nosniff'; + etag off; + } + + location ~* \.(jpg|jpeg|png|gif|ico|css|ttf|js)$ { + root portal; + + header_filter_by_lua_block { + ngx.header["server"] = nil + } + + content_by_lua_block { + Kong.serve_portal_gui({ + acah = "Content-Type", + }) + } + + expires 90d; + add_header Cache-Control 'public'; + add_header X-Frame-Options 'sameorigin'; + add_header X-XSS-Protection '1; mode=block'; + add_header X-Content-Type-Options 'nosniff'; + etag off; + } + + + location / { + root portal; + default_type text/html; + + header_filter_by_lua_block { + ngx.header["server"] = nil + } + + content_by_lua_block { + Kong.serve_portal_gui({ + acah = "Content-Type", + }) + } + + add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + add_header Access-Control-Allow-Headers 'Content-Type'; + add_header Access-Control-Allow-Origin '*'; + etag off; + } + + location /robots.txt { + header_filter_by_lua_block { + ngx.header["server"] = nil + } + + return 200 'User-agent: *\nDisallow: /'; + } +} + +> if #portal_api_listeners > 0 and portal_api_listen then + +server { + server_name portal_api; +> for i = 1, #portal_api_listeners do + listen $(portal_api_listeners[i].listener); +> end + + access_log ${{PORTAL_API_ACCESS_LOG}}; + error_log ${{PORTAL_API_ERROR_LOG}} ${{LOG_LEVEL}}; + + client_max_body_size 10m; + client_body_buffer_size 10m; + +> if portal_api_ssl_enabled then +> for i = 1, #portal_api_ssl_cert do + ssl_certificate $(portal_api_ssl_cert[i]); + ssl_certificate_key $(portal_api_ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; + + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + ssl_prefer_server_ciphers on; +> if ssl_ciphers then + ssl_ciphers ${{SSL_CIPHERS}}; +> end +> end + + location / { + default_type application/json; + content_by_lua_block { + Kong.serve_portal_api({ + acah = "Content-Type", + }) + } + } + + location /robots.txt { + return 200 'User-agent: *\nDisallow: /'; + } +} +> end +> end + + +> if (role == "control_plane" or role == "traditional") and #admin_listeners > 0 then + server { + charset UTF-8; + server_name kong_admin; +> for _, entry in ipairs(admin_listeners) do + listen $(entry.listener); +> end + + access_log ${{ADMIN_ACCESS_LOG}}; + error_log ${{ADMIN_ERROR_LOG}} ${{LOG_LEVEL}}; + +> if admin_ssl_enabled then +> for i = 1, #admin_ssl_cert do + ssl_certificate $(admin_ssl_cert[i]); + ssl_certificate_key $(admin_ssl_cert_key[i]); +> end + ssl_session_cache shared:AdminSSL:10m; +> end + + # injected nginx_admin_* directives +> for _, el in ipairs(nginx_admin_directives) do + $(el.name) $(el.value); +> end + + location /timers { + default_type application/json; + content_by_lua_block { + local body = { + worker = { + id = ngx.worker.id(), + count = ngx.worker.count(), + }, + stats = kong.timer:stats({ + verbose = true, + flamegraph = true, + }) + } + ngx.say(require("cjson").encode(body)) + } + } + + location / { + default_type application/json; + content_by_lua_block { + Kong.admin_content({ + acah = "Content-Type, ${{RBAC_AUTH_HEADER}}", + }) + } + + log_by_lua_block { + local audit_log = require "kong.enterprise_edition.audit_log" + audit_log.admin_log_handler() + } + + header_filter_by_lua_block { + Kong.admin_header_filter() + } + } + + location /robots.txt { + return 200 'User-agent: *\nDisallow: /'; + } + } +> end -- (role == "control_plane" or role == "traditional") and #admin_listeners > 0 + +> if #status_listeners > 0 then + server { + charset UTF-8; + server_name kong_status; +> for _, entry in ipairs(status_listeners) do + listen $(entry.listener); +> end + + access_log ${{STATUS_ACCESS_LOG}}; + error_log ${{STATUS_ERROR_LOG}} ${{LOG_LEVEL}}; + +> if status_ssl_enabled then +> for i = 1, #status_ssl_cert do + ssl_certificate $(status_ssl_cert[i]); + ssl_certificate_key $(status_ssl_cert_key[i]); +> end + ssl_session_cache shared:StatusSSL:1m; +> end + + # injected nginx_status_* directives +> for _, el in ipairs(nginx_status_directives) do + $(el.name) $(el.value); +> end + + location / { + default_type application/json; + content_by_lua_block { + Kong.status_content() + } + header_filter_by_lua_block { + Kong.status_header_filter() + } + } + + location /robots.txt { + return 200 'User-agent: *\nDisallow: /'; + } + } +> end + +> if #debug_listeners > 0 then +server { + server_name kong_debug; +> for _, entry in ipairs(debug_listeners) do + listen $(entry.listener); +> end + + access_log ${{DEBUG_ACCESS_LOG}}; + error_log ${{DEBUG_ERROR_LOG}} ${{LOG_LEVEL}}; + +> if status_ssl_enabled then +> for i = 1, #status_ssl_cert do + ssl_certificate $(debug_ssl_cert[i]); + ssl_certificate_key $(debug_ssl_cert_key[i]); +> end + ssl_session_cache shared:DebugSSL:1m; +> end + + # injected nginx_debug_* directives +> for _, el in ipairs(nginx_debug_directives) do + $(el.name) $(el.value); +> end + + location / { + default_type application/json; + content_by_lua_block { + Kong.debug_content() + } + header_filter_by_lua_block { + Kong.debug_header_filter() + } + } + + location /robots.txt { + return 200 'User-agent: *\nDisallow: /'; + } +} +> end + +> if role == "control_plane" then + server { + charset UTF-8; + server_name kong_cluster_listener; +> for _, entry in ipairs(cluster_listeners) do + listen $(entry.listener) ssl; +> end + + access_log ${{ADMIN_ACCESS_LOG}}; + error_log ${{ADMIN_ERROR_LOG}} ${{LOG_LEVEL}}; + + ssl_verify_client optional_no_ca; + ssl_certificate ${{CLUSTER_CERT}}; + ssl_certificate_key ${{CLUSTER_CERT_KEY}}; + ssl_session_cache shared:ClusterSSL:10m; + + location = /v1/outlet { + content_by_lua_block { + Kong.serve_cluster_listener() + } + } + } +> end -- role == "control_plane" + +> if role == "control_plane" then + server { + server_name kong_cluster_telemetry_listener; +> for _, entry in ipairs(cluster_telemetry_listeners) do + listen $(entry.listener) ssl; +> end + + access_log off; + + ssl_verify_client optional_no_ca; + ssl_certificate ${{CLUSTER_CERT}}; + ssl_certificate_key ${{CLUSTER_CERT_KEY}}; + ssl_session_cache shared:ClusterSSL:10m; + + location = /v1/ingest { + content_by_lua_block { + Kong.serve_cluster_telemetry_listener() + } + } + } +> end -- role == "control_plane" + +> if role ~= "data_plane" then + server { + server_name mock_upstream; + + listen 15555; + listen 15556 ssl; + +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; + + set_real_ip_from 127.0.0.1; + + location / { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + ngx.status = 404 + return mu.send_default_json_response() + } + } + + location = / { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({ + valid_routes = { + ["/ws"] = "Websocket echo server", + ["/get"] = "Accepts a GET request and returns it in JSON format", + ["/xml"] = "Returns a simple XML document", + ["/post"] = "Accepts a POST request and returns it in JSON format", + ["/response-headers?:key=:val"] = "Returns given response headers", + ["/cache/:n"] = "Sets a Cache-Control header for n seconds", + ["/anything"] = "Accepts any request and returns it in JSON format", + ["/request"] = "Alias to /anything", + ["/delay/:duration"] = "Delay the response for seconds", + ["/basic-auth/:user/:pass"] = "Performs HTTP basic authentication with the given credentials", + ["/status/:code"] = "Returns a response with the specified ", + ["/stream/:num"] = "Stream chunks of JSON data via chunked Transfer Encoding", + }, + }) + } + } + + location = /408 { + return 408 "408"; + } + + location = /ws { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.serve_web_sockets() + } + } + + location = /ws/log { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.retrieve_ws_log() + } + } + + location /get { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_method("GET") + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response() + } + } + + location /xml { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local xml = [[ + + + Kong, Monolith destroyer. + + ]] + return mu.send_text_response(xml, "application/xml") + } + } + + location /post { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_method("POST") + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response() + } + } + + location = /response-headers { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_method("GET") + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({}, ngx.req.get_uri_args()) + } + } + + location = /hop-by-hop { + content_by_lua_block { + local header = ngx.header + header["Keep-Alive"] = "timeout=5, max=1000" + header["Proxy"] = "Remove-Me" + header["Proxy-Connection"] = "close" + header["Proxy-Authenticate"] = "Basic" + header["Proxy-Authorization"] = "Basic YWxhZGRpbjpvcGVuc2VzYW1l" + header["Transfer-Encoding"] = "chunked" + header["Content-Length"] = nil + header["TE"] = "trailers, deflate;q=0.5" + header["Trailer"] = "Expires" + header["Upgrade"] = "example/1, foo/2" + + ngx.print("hello\r\n\r\nExpires: Wed, 21 Oct 2015 07:28:00 GMT\r\n\r\n") + ngx.exit(200) + } + } + + location ~ "^/cache/(?\d+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({}, { + ["Cache-Control"] = "public, max-age=" .. ngx.var.n, + }) + } + } + + location ~ "^/basic-auth/(?[a-zA-Z0-9_]+)/(?.+)$" { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_basic_auth(ngx.var.username, + ngx.var.password) + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response({ + authenticated = true, + user = ngx.var.username, + }) + } + } + + location ~ "^/(request|anything)" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.send_default_json_response() + } + } + + location ~ "^/delay/(?\d{1,3})$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local delay_seconds = tonumber(ngx.var.delay_seconds) + if not delay_seconds then + return ngx.exit(ngx.HTTP_NOT_FOUND) + end + + ngx.sleep(delay_seconds) + + return mu.send_default_json_response({ + delay = delay_seconds, + }) + } + } + + location ~ "^/status/(?\d{3})$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local code = tonumber(ngx.var.code) + if not code then + return ngx.exit(ngx.HTTP_NOT_FOUND) + end + ngx.status = code + return mu.send_default_json_response({ + code = code, + }) + } + } + + location ~ "^/stream/(?\d+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + local rep = tonumber(ngx.var.num) + local res = require("cjson").encode(mu.get_default_json_response()) + + ngx.header["X-Powered-By"] = "mock_upstream" + ngx.header["Content-Type"] = "application/json" + + for i = 1, rep do + ngx.say(res) + end + } + } + + location ~ "^/post_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.store_log(ngx.var.logname) + } + } + + location ~ "^/post_auth_log/(?[a-z0-9_]+)/(?[a-zA-Z0-9_]+)/(?.+)$" { + access_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.filter_access_by_basic_auth(ngx.var.username, + ngx.var.password) + } + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.store_log(ngx.var.logname) + } + } + + location ~ "^/read_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.retrieve_log(ngx.var.logname) + } + } + + location ~ "^/count_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.count_log(ngx.var.logname) + } + } + + location ~ "^/reset_log/(?[a-z0-9_]+)$" { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.reset_log(ngx.var.logname) + } + } + + location = /echo_sni { + return 200 'SNI=$ssl_server_name\n'; + } + + location = /ocsp { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.handle_ocsp() + } + } + + location = /set_ocsp { + content_by_lua_block { + local mu = require "spec.fixtures.mock_upstream" + return mu.set_ocsp(ngx.var.arg_status) + } + } + } +> end -- role ~= "data_plane" + + include '*.http_mock'; + +> if not legacy_worker_events then + server { + charset UTF-8; + server_name kong_worker_events; + listen unix:${{PREFIX}}/worker_events.sock; + access_log off; + location / { + content_by_lua_block { + require("resty.events.compat").run() + } + } + } +> end -- not legacy_worker_events +} +> end + +> if #stream_listeners > 0 or cluster_ssl_tunnel then +stream { + log_format basic '$remote_addr [$time_local] ' + '$protocol $status $bytes_sent $bytes_received ' + '$session_time'; + + lua_package_path '${{LUA_PACKAGE_PATH}};;'; + lua_package_cpath '${{LUA_PACKAGE_CPATH}};;'; + lua_socket_pool_size ${{LUA_SOCKET_POOL_SIZE}}; + lua_socket_log_errors off; + lua_max_running_timers 4096; + lua_max_pending_timers 16384; + lua_ssl_verify_depth ${{LUA_SSL_VERIFY_DEPTH}}; +> if lua_ssl_trusted_certificate_combined then + lua_ssl_trusted_certificate '${{LUA_SSL_TRUSTED_CERTIFICATE_COMBINED}}'; +> end + + lua_shared_dict stream_kong 5m; + lua_shared_dict stream_kong_locks 8m; + lua_shared_dict stream_kong_healthchecks 5m; + lua_shared_dict stream_kong_process_events 5m; + lua_shared_dict stream_kong_cluster_events 5m; + lua_shared_dict stream_kong_rate_limiting_counters 12m; + lua_shared_dict stream_kong_core_db_cache ${{MEM_CACHE_SIZE}}; + lua_shared_dict stream_kong_core_db_cache_miss 12m; + lua_shared_dict stream_kong_db_cache ${{MEM_CACHE_SIZE}}; + lua_shared_dict stream_kong_db_cache_miss 12m; +> if database == "cassandra" then + lua_shared_dict stream_kong_cassandra 5m; +> end + + lua_shared_dict stream_kong_vitals_counters 50m; + lua_shared_dict stream_kong_counters 50m; + lua_shared_dict stream_kong_vitals_lists 1m; + lua_shared_dict stream_kong_vitals 1m; + +> if ssl_ciphers then + ssl_ciphers ${{SSL_CIPHERS}}; +> end + + # injected nginx_stream_* directives +> for _, el in ipairs(nginx_stream_directives) do + $(el.name) $(el.value); +> end + + init_by_lua_block { + -- shared dictionaries conflict between stream/http modules. use a prefix. + local shared = ngx.shared + ngx.shared = setmetatable({}, { + __index = function(t, k) + return shared["stream_" .. k] + end, + }) + + Kong = require 'kong' + Kong.init() + } + + init_worker_by_lua_block { + Kong.init_worker() + } + + upstream kong_upstream { + server 0.0.0.1:1; + balancer_by_lua_block { + Kong.balancer() + } + + # injected nginx_supstream_* directives +> for _, el in ipairs(nginx_supstream_directives) do + $(el.name) $(el.value); +> end + } + +> if #stream_listeners > 0 then +# non-SSL listeners, and the SSL terminator + server { +> for _, entry in ipairs(stream_listeners) do +> if not entry.ssl then + listen $(entry.listener); +> end +> end + +> if stream_proxy_ssl_enabled then + listen unix:${{PREFIX}}/stream_tls_terminate.sock ssl proxy_protocol; +> end + + access_log ${{PROXY_STREAM_ACCESS_LOG}}; + error_log ${{PROXY_STREAM_ERROR_LOG}} ${{LOG_LEVEL}}; + +> for _, ip in ipairs(trusted_ips) do + set_real_ip_from $(ip); +> end + set_real_ip_from unix:; + + # injected nginx_sproxy_* directives +> for _, el in ipairs(nginx_sproxy_directives) do + $(el.name) $(el.value); +> end + +> if stream_proxy_ssl_enabled then +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_session_cache shared:StreamSSL:${{SSL_SESSION_CACHE_SIZE}}; + ssl_certificate_by_lua_block { + Kong.ssl_certificate() + } +> end + + preread_by_lua_block { + Kong.preread() + } + + set $upstream_host ''; + proxy_ssl_name $upstream_host; + proxy_ssl on; + proxy_ssl_server_name on; +> if client_ssl then + proxy_ssl_certificate ${{CLIENT_SSL_CERT}}; + proxy_ssl_certificate_key ${{CLIENT_SSL_CERT_KEY}}; +> end + proxy_pass kong_upstream; + + log_by_lua_block { + Kong.log() + } + } + +> if stream_proxy_ssl_enabled then +# SSL listeners, but only preread the handshake here + server { +> for _, entry in ipairs(stream_listeners) do +> if entry.ssl then + listen $(entry.listener:gsub(" ssl", "")); +> end +> end + + access_log ${{PROXY_STREAM_ACCESS_LOG}}; + error_log ${{PROXY_STREAM_ERROR_LOG}} ${{LOG_LEVEL}}; + +> for _, ip in ipairs(trusted_ips) do + set_real_ip_from $(ip); +> end + + # injected nginx_sproxy_* directives +> for _, el in ipairs(nginx_sproxy_directives) do + $(el.name) $(el.value); +> end + + preread_by_lua_block { + Kong.preread() + } + + ssl_preread on; + + proxy_protocol on; + + set $kong_tls_preread_block 1; + set $kong_tls_preread_block_upstream ''; + proxy_pass $kong_tls_preread_block_upstream; + } + +server { + listen unix:${{PREFIX}}/stream_tls_passthrough.sock proxy_protocol; + + access_log ${{PROXY_STREAM_ACCESS_LOG}}; + error_log ${{PROXY_STREAM_ERROR_LOG}} ${{LOG_LEVEL}}; + + set_real_ip_from unix:; + + # injected nginx_sproxy_* directives +> for _, el in ipairs(nginx_sproxy_directives) do + $(el.name) $(el.value); +> end + + preread_by_lua_block { + Kong.preread() + } + + ssl_preread on; + + set $kong_tls_passthrough_block 1; + + proxy_pass kong_upstream; + + log_by_lua_block { + Kong.log() + } + } +> end -- stream_proxy_ssl_enabled + + +> if database == "off" then + server { + listen unix:${{PREFIX}}/stream_config.sock; + + error_log ${{PROXY_ERROR_LOG}} ${{LOG_LEVEL}}; + + content_by_lua_block { + Kong.stream_config_listener() + } + } +> end -- database == "off" +> end -- #stream_listeners > 0 + + server { + listen 15557; + listen 15558 ssl; + listen 15557 udp; + +> for i = 1, #ssl_cert do + ssl_certificate $(ssl_cert[i]); + ssl_certificate_key $(ssl_cert_key[i]); +> end + ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; + + content_by_lua_block { + local sock = assert(ngx.req.socket()) + local data = sock:receive() -- read a line from downstream + + if ngx.var.protocol == "TCP" then + ngx.say(data) + + else + sock:send(data) -- echo whatever was sent + end + } + } + + include '*.stream_mock'; + + server { # ignore (and close }, to ignore content) + listen unix:${{PREFIX}}/stream_rpc.sock; + error_log ${{ADMIN_ERROR_LOG}} ${{LOG_LEVEL}}; + content_by_lua_block { + Kong.stream_api() + } + } + +> if not legacy_worker_events then + server { + listen unix:${{PREFIX}}/stream_worker_events.sock; + access_log off; + content_by_lua_block { + require("resty.events.compat").run() + } + } +> end -- not legacy_worker_events + +> if cluster_ssl_tunnel then + server { + listen unix:${{PREFIX}}/cluster_proxy_ssl_terminator.sock; + + proxy_pass ${{cluster_ssl_tunnel}}; + proxy_ssl on; + # as we are essentially talking in HTTPS, passing SNI should default turned on + proxy_ssl_server_name on; +> if proxy_server_ssl_verify then + proxy_ssl_verify on; +> if lua_ssl_trusted_certificate_combined then + proxy_ssl_trusted_certificate '${{LUA_SSL_TRUSTED_CERTIFICATE_COMBINED}}'; +> end + proxy_ssl_verify_depth 5; # 5 should be sufficient +> else + proxy_ssl_verify off; +> end + proxy_socket_keepalive on; + } +> end -- cluster_ssl_tunnel + +} +> end diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/api.lua new file mode 100644 index 00000000..c14315d7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/api.lua @@ -0,0 +1,16 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + ["/method_without_exit"] = { + GET = function() + kong.response.set_status(201) + kong.response.set_header("x-foo", "bar") + ngx.print("hello") + end, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/handler.lua new file mode 100644 index 00000000..b9ea64bb --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/handler.lua @@ -0,0 +1,15 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- a plugin fixture to test a method on the admin api + +local AdminApiMethod = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + +return AdminApiMethod diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/schema.lua new file mode 100644 index 00000000..e004e219 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/schema.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "admin-api-method", + fields = { + { + config = { + type = "record", + fields = { + { foo = { type = "string" } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/status_api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/status_api.lua new file mode 100644 index 00000000..6b05e5ff --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/admin-api-method/status_api.lua @@ -0,0 +1,14 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + ["/hello"] = { + GET = function() + kong.response.exit(200, { hello = "from status api" }) + end, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/api.lua new file mode 100644 index 00000000..22cb9923 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/api.lua @@ -0,0 +1,32 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local kong = kong + + +return { + ["/routes"] = { + schema = kong.db.routes.schema, + GET = function(_, _, _, parent) + kong.response.set_header("Kong-Api-Override", "ok") + return parent() + end, + POST = function(_, _, _, parent) + kong.response.set_header("Kong-Api-Override", "ok") + return parent() + end, + }, + ["/services"] = { + schema = kong.db.services.schema, + methods = { + GET = function(_, _, _, parent) + kong.response.set_header("Kong-Api-Override", "ok") + return parent() + end + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/handler.lua new file mode 100644 index 00000000..5e2dd0d6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/handler.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + PRIORITY = 1000, + VERSION = "1.0", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/schema.lua new file mode 100644 index 00000000..77906b0a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/api-override/schema.lua @@ -0,0 +1,34 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "api-override", + fields = { + { + protocols = typedefs.protocols { + default = { + "http", + "https", + "tcp", + "tls", + "grpc", + "grpcs" + }, + }, + }, + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/handler.lua new file mode 100644 index 00000000..cbec08d1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/handler.lua @@ -0,0 +1,50 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local type = type + + +local CacheHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + + +function CacheHandler:access(conf) + ngx.req.read_body() + + local args, err = ngx.req.get_post_args() + if not args then + kong.log.err(err) + return kong.response.exit(500, { message = "An unexpected error occurred" }) + end + + local cache_key = args.cache_key + if not cache_key then + return kong.response.exit(400, { message = "missing cache_key" }) + end + + local cache_value = args.cache_value + if not cache_value then + return kong.response.exit(400, { message = "missing cache_value" }) + end + + local function cb() + return cache_value + end + + local value, err = kong.cache:get(cache_key, nil, cb) + if err then + kong.log.err(err) + return kong.response.exit(500, { message = "An unexpected error occurred" }) + end + + return kong.response.exit(200, type(value) == "table" and value or { message = value }) +end + + +return CacheHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/schema.lua new file mode 100644 index 00000000..47012869 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/cache/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "cache", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/handler.lua new file mode 100644 index 00000000..47a3b4c5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/handler.lua @@ -0,0 +1,22 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local CtxCheckerHandler = require "spec.fixtures.custom_plugins.kong.plugins.ctx-checker.handler" + + +local CtxCheckerLastHandler = { + VERSION = "0.1-t", + PRIORITY = 0, + _name = "ctx-checker-last", +} + + +CtxCheckerLastHandler.access = CtxCheckerHandler.access +CtxCheckerLastHandler.header_filter = CtxCheckerHandler.header_filter + + +return CtxCheckerLastHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/schema.lua new file mode 100644 index 00000000..39014001 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker-last/schema.lua @@ -0,0 +1,27 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "ctx-checker-last", + fields = { + { + config = { + type = "record", + fields = { + { ctx_set_field = { type = "string" } }, + { ctx_set_value = { type = "string", default = "set_by_ctx_checker" } }, + { ctx_set_array = { type = "array", elements = { type = "string" } } }, + { ctx_check_field = { type = "string" } }, + { ctx_check_value = { type = "string" } }, + { ctx_check_array = { type = "array", elements = { type = "string" } } }, + { ctx_kind = { type = "string", default = "ngx.ctx" } }, + { ctx_throw_error = { type = "boolean", default = false } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/handler.lua new file mode 100644 index 00000000..8a3c0f9d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/handler.lua @@ -0,0 +1,118 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local tablex = require "pl.tablex" +local inspect = require "inspect" + + +local ngx = ngx +local kong = kong +local type = type +local error = error +local tostring = tostring + + +local CtxCheckerHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, + _name = "ctx-checker", +} + + +local function get_ctx(ctx_kind) + if ctx_kind == "kong.ctx.shared" then + return kong.ctx.shared + end + + if ctx_kind == "kong.ctx.plugin" then + return kong.ctx.plugin + end + + return ngx.ctx +end + + +local function set_header(conf, name, value) + if conf.ctx_kind == "kong.ctx.shared" + or conf.ctx_kind == "kong.ctx.plugin" then + return kong.response.set_header(name, value) + end + + ngx.header[name] = value +end + + +function CtxCheckerHandler:access(conf) + local set_field = conf.ctx_set_field + if not set_field then + return + end + + local ctx = get_ctx(conf.ctx_kind) + local existing = ctx[set_field] + if existing ~= nil and conf.throw_error then + if type(existing) == "table" then + existing = inspect(existing) + end + + error("Expected to be able to set" .. + conf.ctx_kind .. + "['" .. set_field .. + "'] but it was already set. Found value: " .. + tostring(existing)) + end + + + if type(conf.ctx_set_array) == "table" then + ctx[set_field] = conf.ctx_set_array + elseif type(conf.ctx_set_map) == "table" then + ctx[set_field] = conf.ctx_set_map + elseif type(conf.ctx_set_value) == "string" then + ctx[set_field] = conf.ctx_set_value + end +end + + +function CtxCheckerHandler:header_filter(conf) + local check_field = conf.ctx_check_field + if not check_field then + return + end + + local ctx = get_ctx(conf.ctx_kind) + local val = ctx[check_field] + + local ok + if conf.ctx_check_array then + if type(val) == "table" then + ok = tablex.compare(val, conf.ctx_check_array, "==") + else + ok = false + end + + elseif conf.ctx_check_value then + ok = val == conf.ctx_check_value + else + ok = true + end + + if type(val) == "table" then + val = inspect(val) + end + + if ok then + return set_header(conf, self._name .."-" .. check_field, tostring(val)) + end + + if conf.throw_error then + error("Expected " .. conf.ctx_kind .. "['" .. check_field .. + "'] to be set, but it was " .. tostring(val)) + end +end + + +return CtxCheckerHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/schema.lua new file mode 100644 index 00000000..defc11cd --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-checker/schema.lua @@ -0,0 +1,25 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "ctx-checker", + fields = { + { config = { + type = "record", + fields = { + { ctx_set_field = { type = "string" }, }, + { ctx_set_value = { type = "string", default = "set_by_ctx_checker" } }, + { ctx_set_array = { type = "array", elements = { type = "string" } } }, + { ctx_set_map = { type = "map", keys = { type = "string" }, values = { type = "string" } } }, + { ctx_check_field = { type = "string" } }, + { ctx_check_value = { type = "string" } }, + { ctx_check_array = { type = "array", elements = { type = "string" } } }, + { ctx_kind = { type = "string", default = "ngx.ctx" } }, + { ctx_throw_error = { type = "boolean", default = false } }, + }, + }, }, }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/handler.lua new file mode 100644 index 00000000..0929f219 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/handler.lua @@ -0,0 +1,434 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ngx = ngx +local kong = kong +local type = type +local assert = assert +local subsystem = ngx.config.subsystem +local math = math + + +local function is_nil(ctx, name) + if ctx[name] ~= nil then + return false, "[ctx-tests] " .. name .. " is not a nil" + end + + return true +end + + +local function is_true(ctx, name) + if ctx[name] ~= true then + return false, "[ctx-tests] " .. name .. " is not true" + end + + return true +end + + +local function is_positive_integer(ctx, name) + local value = ctx[name] + if type(value) ~= "number" then + return false, "[ctx-tests] " .. name .. " is not a number" + end + + if math.floor(value) ~= value then + return false, "[ctx-tests] " .. name .. " is not an integer" + end + + if value <= 0 then + return false, "[ctx-tests] " .. name .. " is not a positive integer" + end + + return true +end + + +local function is_non_negative_integer(ctx, name) + local value = ctx[name] + if value == 0 then + return true + end + + return is_positive_integer(ctx, name) +end + + +local function is_equal_to_start_time(ctx, name) + local ok, err = is_positive_integer(ctx, name) + if not ok then + return ok, err + end + + if ctx[name] < ctx.KONG_PROCESSING_START then + return false, "[ctx-tests] " .. name .. " is less than the processing start" + end + + if subsystem ~= "stream" then + if ctx[name] ~= (ngx.req.start_time() * 1000) then + return false, "[ctx-tests] " .. name .. " is less than the request start time" + end + end + + return true +end + + +local function is_greater_or_equal_to_start_time(ctx, name) + local ok, err = is_positive_integer(ctx, name) + if not ok then + return ok, err + end + + if ctx[name] < ctx.KONG_PROCESSING_START then + return false, "[ctx-tests] " .. name .. " is less than the processing start" + end + + if subsystem ~= "stream" then + if ctx[name] < (ngx.req.start_time() * 1000) then + return false, "[ctx-tests] " .. name .. " is less than the request start time" + end + end + + return true +end + + +local function is_greater_or_equal_to_ctx_value(ctx, name, greater_name) + local ok, err = is_positive_integer(ctx, name) + if not ok then + return ok, err + end + + ok, err = is_positive_integer(ctx, greater_name) + if not ok then + return ok, err + end + + if ctx[greater_name] < ctx[name] then + return false, "[ctx-tests] " .. name .. " is greater than " .. greater_name + end + + return true +end + + +local function has_correct_proxy_latency(ctx) + local ok, err = is_positive_integer(ctx, "KONG_BALANCER_ENDED_AT") + if not ok then + return ok, err + end + + ok, err = is_non_negative_integer(ctx, "KONG_PROXY_LATENCY") + if not ok then + return ok, err + end + + if ctx.KONG_BALANCER_ENDED_AT < ctx.KONG_PROCESSING_START then + return false, "[ctx-tests] KONG_BALANCER_ENDED_AT is less than the processing start" + end + + local latency = ctx.KONG_BALANCER_ENDED_AT - ctx.KONG_PROCESSING_START + if ctx.KONG_PROXY_LATENCY ~= latency then + return false, "[ctx-tests] KONG_PROXY_LATENCY is not calculated correctly" + end + + if subsystem ~= "stream" then + latency = ctx.KONG_BALANCER_ENDED_AT - ngx.req.start_time() * 1000 + if ctx.KONG_PROXY_LATENCY ~= latency then + return false, "[ctx-tests] KONG_PROXY_LATENCY is not calculated correctly (request start time)" + end + end + + return true +end + + +local function has_correct_waiting_time(ctx) + local err + local ok = is_positive_integer(ctx, "KONG_RESPONSE_START") + if not ok then + ok, err = is_positive_integer(ctx, "KONG_HEADER_FILTER_START") + if not ok then + return ok, err + end + end + + ok, err = is_positive_integer(ctx, "KONG_BALANCER_ENDED_AT") + if not ok then + return ok, err + end + + local waiting_time = (ctx.KONG_RESPONSE_START or ctx.KONG_HEADER_FILTER_START) - + ctx.KONG_BALANCER_ENDED_AT + + if ctx.KONG_WAITING_TIME ~= waiting_time then + return false, "[ctx-tests] KONG_WAITING_TIME is not calculated correctly" + end + + return true +end + + +local function has_correct_receive_time(ctx) + local ok, err = is_positive_integer(ctx, "KONG_BODY_FILTER_ENDED_AT") + if not ok then + return ok, err + end + + ok, err = is_positive_integer(ctx, "KONG_HEADER_FILTER_START") + if not ok then + return ok, err + end + + local receive_time = ctx.KONG_BODY_FILTER_ENDED_AT - + (ctx.KONG_RESPONSE_START or ctx.KONG_HEADER_FILTER_START) + + if ctx.KONG_RECEIVE_TIME ~= receive_time then + return false, "[ctx-tests] KONG_RECEIVE_TIME is not calculated correctly" + end + + return true +end + + +local CtxTests = { + PRIORITY = -1000000, + VERSION = "1.0", +} + + +function CtxTests:preread() + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_REWRITE_START")) + assert(is_nil(ctx, "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_REWRITE_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_BALANCER_START")) + assert(is_nil(ctx, "KONG_BALANCER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BALANCER_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_PROXIED")) + assert(is_nil(ctx, "KONG_PROXY_LATENCY")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_WAITING_TIME")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:rewrite() + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_REWRITE_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_BALANCER_START")) + assert(is_nil(ctx, "KONG_BALANCER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BALANCER_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_PROXIED")) + assert(is_nil(ctx, "KONG_PROXY_LATENCY")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_WAITING_TIME")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:access(config) + if config.buffered then + kong.service.request.enable_buffering() + end + + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_BALANCER_START")) + assert(is_nil(ctx, "KONG_BALANCER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BALANCER_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_PROXIED")) + assert(is_nil(ctx, "KONG_PROXY_LATENCY")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_WAITING_TIME")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:response(config) +-- assert(config.buffered == true, "response should only be executed when buffering the response was requested") + + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_START", "KONG_ACCESS_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_ACCESS_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(has_correct_waiting_time(ctx)) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:log(config) + local ctx = ngx.ctx + if subsystem == "stream" then + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_PREREAD_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PREREAD_START", "KONG_PREREAD_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_PREREAD_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PREREAD_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_LOG_START")) + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(is_nil(ctx, "KONG_REWRITE_START")) + assert(is_nil(ctx, "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_REWRITE_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + + -- TODO: ngx.var.upstream_first_byte_time? + assert(is_nil(ctx, "KONG_WAITING_TIME")) + + + -- TODO: ngx.ctx.KONG_LOG_START - (ngx.ctx.BALANCER_ENDED_AT + ngx.var.upstream_first_byte_time)? + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) + + else + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_START", "KONG_ACCESS_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_ACCESS_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_HEADER_FILTER_START")) + + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_RESPONSE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_START", "KONG_RESPONSE_ENDED_AT")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_ENDED_AT", "KONG_HEADER_FILTER_START")) + assert(is_non_negative_integer(ctx, "KONG_RESPONSE_TIME")) + + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_HEADER_FILTER_START", "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_HEADER_FILTER_ENDED_AT", "KONG_BODY_FILTER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BODY_FILTER_START", "KONG_BODY_FILTER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BODY_FILTER_ENDED_AT", "KONG_LOG_START")) + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(has_correct_waiting_time(ctx)) + assert(has_correct_receive_time(ctx)) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + end +end + + +return CtxTests diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/schema.lua new file mode 100644 index 00000000..9fb4932a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests-response/schema.lua @@ -0,0 +1,34 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +-- TODO: At the moment this tests the happy case. Perhaps it could be extended to work +-- even with unhappy cases, e.g. together with error-generator plugin. Or the plugin +-- could be made to error by itself. +return { + name = "ctx-tests-response", + fields = { + { + protocols = typedefs.protocols { default = { "http", "https", "tcp", "tls", "grpc", "grpcs" } }, + }, + { + config = { + type = "record", + fields = { + { + buffered = { + type = "boolean", + default = false, + }, + }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/handler.lua new file mode 100644 index 00000000..c2a0c17c --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/handler.lua @@ -0,0 +1,498 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ngx = ngx +local kong = kong +local type = type +local assert = assert +local subsystem = ngx.config.subsystem +local math = math +local get_phase = ngx.get_phase + + +local function is_nil(ctx, name) + if ctx[name] ~= nil then + return false, "[ctx-tests] " .. name .. " is not a nil" + end + + return true +end + + +local function is_true(ctx, name) + if ctx[name] ~= true then + return false, "[ctx-tests] " .. name .. " is not true" + end + + return true +end + + +local function is_positive_integer(ctx, name) + local value = ctx[name] + if type(value) ~= "number" then + return false, "[ctx-tests] " .. name .. " is not a number" + end + + if math.floor(value) ~= value then + return false, "[ctx-tests] " .. name .. " is not an integer" + end + + if value <= 0 then + return false, "[ctx-tests] " .. name .. " is not a positive integer" + end + + return true +end + + +local function is_non_negative_integer(ctx, name) + local value = ctx[name] + if value == 0 then + return true + end + + return is_positive_integer(ctx, name) +end + + +local function is_equal_to_start_time(ctx, name) + local ok, err = is_positive_integer(ctx, name) + if not ok then + return ok, err + end + + if ctx[name] < ctx.KONG_PROCESSING_START then + return false, "[ctx-tests] " .. name .. " is less than the processing start" + end + + if subsystem ~= "stream" then + if ctx[name] ~= (ngx.req.start_time() * 1000) then + return false, "[ctx-tests] " .. name .. " is less than the request start time" + end + end + + return true +end + + +local function is_greater_or_equal_to_start_time(ctx, name) + local ok, err = is_positive_integer(ctx, name) + if not ok then + return ok, err + end + + if ctx[name] < ctx.KONG_PROCESSING_START then + return false, "[ctx-tests] " .. name .. " is less than the processing start" + end + + if subsystem ~= "stream" then + if ctx[name] < (ngx.req.start_time() * 1000) then + return false, "[ctx-tests] " .. name .. " is less than the request start time" + end + end + + return true +end + + +local function is_greater_or_equal_to_ctx_value(ctx, name, greater_name) + local ok, err = is_positive_integer(ctx, name) + if not ok then + return ok, err + end + + ok, err = is_positive_integer(ctx, greater_name) + if not ok then + return ok, err + end + + if ctx[greater_name] < ctx[name] then + return false, "[ctx-tests] " .. name .. " is greater than " .. greater_name + end + + return true +end + + +local function has_correct_proxy_latency(ctx) + local ok, err = is_positive_integer(ctx, "KONG_BALANCER_ENDED_AT") + if not ok then + return ok, err + end + + ok, err = is_non_negative_integer(ctx, "KONG_PROXY_LATENCY") + if not ok then + return ok, err + end + + if ctx.KONG_BALANCER_ENDED_AT < ctx.KONG_PROCESSING_START then + return false, "[ctx-tests] KONG_BALANCER_ENDED_AT is less than the processing start" + end + + local latency = ctx.KONG_BALANCER_ENDED_AT - ctx.KONG_PROCESSING_START + if ctx.KONG_PROXY_LATENCY ~= latency then + return false, "[ctx-tests] KONG_PROXY_LATENCY is not calculated correctly" + end + + if subsystem ~= "stream" then + latency = ctx.KONG_BALANCER_ENDED_AT - ngx.req.start_time() * 1000 + if ctx.KONG_PROXY_LATENCY ~= latency then + return false, "[ctx-tests] KONG_PROXY_LATENCY is not calculated correctly (request start time)" + end + end + + if get_phase() == "log" then + local log = kong.log.serialize() + if ctx.KONG_PROXY_LATENCY > log.latencies.kong then + return false, "[ctx-tests] kong.log.serialize() latency is less than KONG_PROXY_LATENCY" + end + end + + return true +end + + +local function has_correct_waiting_time(ctx) + local err + local ok = is_positive_integer(ctx, "KONG_RESPONSE_START") + if not ok then + ok, err = is_positive_integer(ctx, "KONG_HEADER_FILTER_START") + if not ok then + return ok, err + end + end + + ok, err = is_positive_integer(ctx, "KONG_BALANCER_ENDED_AT") + if not ok then + return ok, err + end + + local waiting_time = (ctx.KONG_RESPONSE_START or ctx.KONG_HEADER_FILTER_START) - + ctx.KONG_BALANCER_ENDED_AT + + if ctx.KONG_WAITING_TIME ~= waiting_time then + return false, "[ctx-tests] KONG_WAITING_TIME is not calculated correctly" + end + + return true +end + + +local function has_correct_receive_time(ctx) + local ok, err = is_positive_integer(ctx, "KONG_BODY_FILTER_ENDED_AT") + if not ok then + return ok, err + end + + ok, err = is_positive_integer(ctx, "KONG_HEADER_FILTER_START") + if not ok then + return ok, err + end + + local receive_time = ctx.KONG_BODY_FILTER_ENDED_AT - + (ctx.KONG_RESPONSE_START or ctx.KONG_HEADER_FILTER_START) + + if ctx.KONG_RECEIVE_TIME ~= receive_time then + return false, "[ctx-tests] KONG_RECEIVE_TIME is not calculated correctly" + end + + return true +end + + +local CtxTests = { + PRIORITY = -1000000, + VERSION = "1.0", +} + + +function CtxTests:preread() + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_REWRITE_START")) + assert(is_nil(ctx, "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_REWRITE_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_BALANCER_START")) + assert(is_nil(ctx, "KONG_BALANCER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BALANCER_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_PROXIED")) + assert(is_nil(ctx, "KONG_PROXY_LATENCY")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_WAITING_TIME")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:rewrite() + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_REWRITE_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_BALANCER_START")) + assert(is_nil(ctx, "KONG_BALANCER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BALANCER_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_PROXIED")) + assert(is_nil(ctx, "KONG_PROXY_LATENCY")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_WAITING_TIME")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:access(config) + if config.buffered then + kong.service.request.enable_buffering() + end + + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_BALANCER_START")) + assert(is_nil(ctx, "KONG_BALANCER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BALANCER_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_PROXIED")) + assert(is_nil(ctx, "KONG_PROXY_LATENCY")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_WAITING_TIME")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:header_filter(config) + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_START", "KONG_ACCESS_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_ACCESS_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + if config.buffered then + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_RESPONSE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_START", "KONG_RESPONSE_ENDED_AT")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_ENDED_AT", "KONG_HEADER_FILTER_START")) + assert(is_non_negative_integer(ctx, "KONG_RESPONSE_TIME")) + else + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_HEADER_FILTER_START")) + end + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(has_correct_waiting_time(ctx)) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:body_filter(config) + if not ngx.arg[2] then + return + end + + local ctx = ngx.ctx + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_START", "KONG_ACCESS_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_ACCESS_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_HEADER_FILTER_START")) + if config.buffered then + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_RESPONSE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_START", "KONG_RESPONSE_ENDED_AT")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_ENDED_AT", "KONG_HEADER_FILTER_START")) + assert(is_non_negative_integer(ctx, "KONG_RESPONSE_TIME")) + else + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_HEADER_FILTER_START")) + end + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_HEADER_FILTER_START", "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_HEADER_FILTER_ENDED_AT", "KONG_BODY_FILTER_START")) + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(has_correct_waiting_time(ctx)) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_START")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) +end + + +function CtxTests:log(config) + local ctx = ngx.ctx + if subsystem == "stream" then + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_PREREAD_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PREREAD_START", "KONG_PREREAD_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_PREREAD_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PREREAD_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_LOG_START")) + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(is_nil(ctx, "KONG_REWRITE_START")) + assert(is_nil(ctx, "KONG_REWRITE_ENDED_AT")) + assert(is_nil(ctx, "KONG_REWRITE_TIME")) + assert(is_nil(ctx, "KONG_ACCESS_START")) + assert(is_nil(ctx, "KONG_ACCESS_ENDED_AT")) + assert(is_nil(ctx, "KONG_ACCESS_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_START")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_nil(ctx, "KONG_BODY_FILTER_START")) + assert(is_nil(ctx, "KONG_BODY_FILTER_ENDED_AT")) + assert(is_nil(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + assert(is_nil(ctx, "KONG_RESPONSE_LATENCY")) + + -- TODO: ngx.var.upstream_first_byte_time? + assert(is_nil(ctx, "KONG_WAITING_TIME")) + + + -- TODO: ngx.ctx.KONG_LOG_START - (ngx.ctx.BALANCER_ENDED_AT + ngx.var.upstream_first_byte_time)? + assert(is_nil(ctx, "KONG_RECEIVE_TIME")) + + else + assert(is_equal_to_start_time(ctx, "KONG_PROCESSING_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_PROCESSING_START", "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_start_time(ctx, "KONG_REWRITE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_START", "KONG_REWRITE_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_REWRITE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_REWRITE_ENDED_AT", "KONG_ACCESS_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_START", "KONG_ACCESS_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_ACCESS_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_ACCESS_ENDED_AT", "KONG_BALANCER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_START", "KONG_BALANCER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BALANCER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_HEADER_FILTER_START")) + if config.buffered then + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_RESPONSE_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_START", "KONG_RESPONSE_ENDED_AT")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_RESPONSE_ENDED_AT", "KONG_HEADER_FILTER_START")) + assert(is_non_negative_integer(ctx, "KONG_RESPONSE_TIME")) + else + assert(is_nil(ctx, "KONG_RESPONSE_START")) + assert(is_nil(ctx, "KONG_RESPONSE_ENDED_AT")) + assert(is_nil(ctx, "KONG_RESPONSE_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BALANCER_ENDED_AT", "KONG_HEADER_FILTER_START")) + end + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_HEADER_FILTER_START", "KONG_HEADER_FILTER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_HEADER_FILTER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_HEADER_FILTER_ENDED_AT", "KONG_BODY_FILTER_START")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BODY_FILTER_START", "KONG_BODY_FILTER_ENDED_AT")) + assert(is_non_negative_integer(ctx, "KONG_BODY_FILTER_TIME")) + assert(is_greater_or_equal_to_ctx_value(ctx, "KONG_BODY_FILTER_ENDED_AT", "KONG_LOG_START")) + assert(is_true(ctx, "KONG_PROXIED")) + assert(has_correct_proxy_latency(ctx)) + assert(has_correct_waiting_time(ctx)) + assert(has_correct_receive_time(ctx)) + assert(is_nil(ctx, "KONG_PREREAD_START")) + assert(is_nil(ctx, "KONG_PREREAD_ENDED_AT")) + assert(is_nil(ctx, "KONG_PREREAD_TIME")) + assert(is_nil(ctx, "KONG_LOG_ENDED_AT")) + assert(is_nil(ctx, "KONG_LOG_TIME")) + end +end + + +return CtxTests diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/schema.lua new file mode 100644 index 00000000..2da7724f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/ctx-tests/schema.lua @@ -0,0 +1,34 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +-- TODO: At the moment this tests the happy case. Perhaps it could be extended to work +-- even with unhappy cases, e.g. together with error-generator plugin. Or the plugin +-- could be made to error by itself. +return { + name = "ctx-tests", + fields = { + { + protocols = typedefs.protocols { default = { "http", "https", "tcp", "tls", "grpc", "grpcs" } }, + }, + { + config = { + type = "record", + fields = { + { + buffered = { + type = "boolean", + default = false, + }, + }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/handler.lua new file mode 100644 index 00000000..d718db27 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/handler.lua @@ -0,0 +1,43 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local DummyHandler = { + VERSION = "9.9.9", + PRIORITY = 1000, +} + + +function DummyHandler:access() + if ngx.req.get_uri_args()["send_error"] then + return kong.response.exit(404, { message = "Not found" }) + end + + ngx.header["Dummy-Plugin-Access-Header"] = "dummy" +end + + +function DummyHandler:header_filter(conf) + ngx.header["Dummy-Plugin"] = conf.resp_header_value + + if conf.resp_code then + ngx.status = conf.resp_code + end + + if conf.append_body then + ngx.header["Content-Length"] = nil + end +end + + +function DummyHandler:body_filter(conf) + if conf.append_body and not ngx.arg[2] then + ngx.arg[1] = string.sub(ngx.arg[1], 1, -2) .. conf.append_body + end +end + + +return DummyHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/schema.lua new file mode 100644 index 00000000..ad8f4f86 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/dummy/schema.lua @@ -0,0 +1,22 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "dummy", + fields = { + { + config = { + type = "record", + fields = { + { resp_header_value = { type = "string", default = "1" } }, + { append_body = { type = "string" } }, + { resp_code = { type = "number" } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/handler.lua new file mode 100644 index 00000000..a3b792e3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/handler.lua @@ -0,0 +1,41 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ngx = ngx +local kong = kong + + +local EnableBuffering = { + PRIORITY = 1000000, + VERSION = "1.0", +} + + +function EnableBuffering:access() + kong.service.request.enable_buffering() +end + + +function EnableBuffering:response(conf) + if conf.phase == "response" then + if conf.mode == "modify-json" then + local body = assert(kong.service.response.get_body()) + body.modified = true + return kong.response.exit(kong.service.response.get_status(), body, { + Modified = "yes", + }) + end + + if conf.mode == "md5-header" then + local body = kong.service.response.get_raw_body() + kong.response.set_header("MD5", ngx.md5(body)) + end + end +end + + +return EnableBuffering diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/schema.lua new file mode 100644 index 00000000..1358e1d6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering-response/schema.lua @@ -0,0 +1,30 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "enable-buffering-response", + fields = { + { + config = { + type = "record", + fields = { + { + phase = { + type = "string", + default = "header_filter", + }, + }, + { + mode = { + type = "string", + }, + }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/handler.lua new file mode 100644 index 00000000..110c770d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/handler.lua @@ -0,0 +1,41 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ngx = ngx +local kong = kong + + +local EnableBuffering = { + PRIORITY = 1000000, + VERSION = "1.0", +} + + +function EnableBuffering:access() + kong.service.request.enable_buffering() +end + + +function EnableBuffering:header_filter(conf) + if conf.phase == "header_filter" then + if conf.mode == "modify-json" then + local body = assert(kong.service.response.get_body()) + body.modified = true + return kong.response.exit(kong.response.get_status(), body, { + Modified = "yes", + }) + end + + if conf.mode == "md5-header" then + local body = kong.service.response.get_raw_body() + kong.response.set_header("MD5", ngx.md5(body)) + end + end +end + + +return EnableBuffering diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/schema.lua new file mode 100644 index 00000000..b59b4a76 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/enable-buffering/schema.lua @@ -0,0 +1,30 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "enable-buffering", + fields = { + { + config = { + type = "record", + fields = { + { + phase = { + type = "string", + default = "header_filter", + }, + }, + { + mode = { + type = "string", + }, + }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/handler.lua new file mode 100644 index 00000000..ff137ce8 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/handler.lua @@ -0,0 +1,21 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local kong = kong + + +local EncryptedHandler = { + PRIORITY = 0, + VERSION = "1.0.0", +} + +function EncryptedHandler:access(conf) + kong.response.exit(200, { message = conf.message }) +end + + +return EncryptedHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/schema.lua new file mode 100644 index 00000000..1d6e5d86 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/encrypted-field/schema.lua @@ -0,0 +1,21 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + +return { + name = "encrypted-field", + fields = { + { protocols = typedefs.protocols }, + { config = { + type = "record", + fields = { + { message = { type = "string", required = true, encrypted = true} } + } + } } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/handler.lua new file mode 100644 index 00000000..13950acf --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/handler.lua @@ -0,0 +1,72 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +local error = error + + +local ErrorGeneratorLastHandler = {} + + +ErrorGeneratorLastHandler.PRIORITY = -1000000 +ErrorGeneratorLastHandler.VERSION = "1.0" + +function ErrorGeneratorLastHandler:init_worker() +end + + +function ErrorGeneratorLastHandler:certificate(conf) + if conf.certificate then + error("[error-generator-last] certificate") + end +end + + +function ErrorGeneratorLastHandler:rewrite(conf) + if conf.rewrite then + error("[error-generator-last] rewrite") + end +end + + +function ErrorGeneratorLastHandler:preread(conf) + if conf.preread then + error("[error-generator-last] preread") + end +end + + + +function ErrorGeneratorLastHandler:access(conf) + if conf.access then + error("[error-generator-last] access") + end +end + + +function ErrorGeneratorLastHandler:header_filter(conf) + if conf.header_filter then + error("[error-generator-last] header_filter") + end +end + + +function ErrorGeneratorLastHandler:body_filter(conf) + if conf.header_filter then + error("[error-generator-last] body_filter") + end +end + + +function ErrorGeneratorLastHandler:log(conf) + if conf.log then + error("[error-generator] body_filter") + end +end + + +return ErrorGeneratorLastHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/schema.lua new file mode 100644 index 00000000..bc5f76d1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator-last/schema.lua @@ -0,0 +1,25 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "error-generator-last", + fields = { + { config = { + type = "record", + fields = { + { certificate = { type = "boolean", required = false, default = false } }, + { rewrite = { type = "boolean", required = false, default = false } }, + { preread = { type = "boolean", required = false, default = false } }, + { access = { type = "boolean", required = false, default = false } }, + { header_filter = { type = "boolean", required = false, default = false } }, + { body_filter = { type = "boolean", required = false, default = false } }, + { log = { type = "boolean", required = false, default = false } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/handler.lua new file mode 100644 index 00000000..24b478a3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/handler.lua @@ -0,0 +1,71 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local error = error + + +local ErrorGeneratorHandler = { + VERSION = "0.1-t", + PRIORITY = 1000000, +} + + +function ErrorGeneratorHandler:init_worker() +end + + +function ErrorGeneratorHandler:certificate(conf) + if conf.certificate then + error("[error-generator] certificate") + end +end + + +function ErrorGeneratorHandler:rewrite(conf) + if conf.rewrite then + error("[error-generator] rewrite") + end +end + + +function ErrorGeneratorHandler:preread(conf) + if conf.preread then + error("[error-generator] preread") + end +end + + +function ErrorGeneratorHandler:access(conf) + if conf.access then + error("[error-generator] access") + end +end + + +function ErrorGeneratorHandler:header_filter(conf) + if conf.header_filter then + error("[error-generator] header_filter") + end +end + + +function ErrorGeneratorHandler:body_filter(conf) + if conf.header_filter then + error("[error-generator] body_filter") + end +end + + +function ErrorGeneratorHandler:log(conf) + if conf.log then + error("[error-generator] body_filter") + end +end + + + +return ErrorGeneratorHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/schema.lua new file mode 100644 index 00000000..866d3725 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-generator/schema.lua @@ -0,0 +1,30 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "error-generator", + fields = { + { consumer = typedefs.no_consumer }, + { protocols = typedefs.protocols_http }, + { config = { + type = "record", + fields = { + { certificate = { type = "boolean", required = false, default = false } }, + { rewrite = { type = "boolean", required = false, default = false } }, + { preread = { type = "boolean", required = false, default = false } }, + { access = { type = "boolean", required = false, default = false } }, + { header_filter = { type = "boolean", required = false, default = false } }, + { body_filter = { type = "boolean", required = false, default = false } }, + { log = { type = "boolean", required = false, default = false } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/handler.lua new file mode 100644 index 00000000..c8f5bff4 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/handler.lua @@ -0,0 +1,59 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local cjson = require("cjson") +local ngx = ngx + + +local ErrorHandlerLog = {} + + +ErrorHandlerLog.PRIORITY = 1000 +ErrorHandlerLog.VERSION = "1.0" + +local function register(phase) + local ws_id = ngx.ctx.workspace or kong.default_workspace + local phases = ngx.ctx.err_handler_log_phases or {} + local in_ws = phases[ws_id] or {} + phases[ws_id] = in_ws + table.insert(in_ws, phase) + ngx.ctx.err_handler_log_phases = phases +end + + +function ErrorHandlerLog:rewrite(conf) + register("rewrite") +end + + +function ErrorHandlerLog:access(conf) + register("access") +end + + +function ErrorHandlerLog:header_filter(conf) + register("header_filter") + + local phases = ngx.ctx.err_handler_log_phases or {} + + + ngx.header["Content-Length"] = nil + ngx.header["Log-Plugin-Phases"] = table.concat(phases[ngx.ctx.workspace] or {}, ",") + ngx.header["Log-Plugin-Workspaces"] = cjson.encode(phases) + + ngx.header["Log-Plugin-Service-Matched"] = ngx.ctx.service and ngx.ctx.service.name +end + + +function ErrorHandlerLog:body_filter(conf) + if not ngx.arg[2] then + ngx.arg[1] = "body_filter" + end +end + + +return ErrorHandlerLog diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/schema.lua new file mode 100644 index 00000000..b1c91f5f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/error-handler-log/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "error-handler-log", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/handler.lua new file mode 100644 index 00000000..3bb887d8 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/handler.lua @@ -0,0 +1,24 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- a plugin fixture to force one authentication failure + +local FailOnceAuth = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + +local failed = {} + +function FailOnceAuth:access(conf) + if not failed[conf.service_id] then + failed[conf.service_id] = true + return kong.response.exit(401, { message = conf.message }) + end +end + +return FailOnceAuth diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/schema.lua new file mode 100644 index 00000000..5ea0aada --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/fail-once-auth/schema.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "fail-once-auth", + fields = { + { + config = { + type = "record", + fields = { + { message = { type = "string", default = "try again!" } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/daos.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/daos.lua new file mode 100644 index 00000000..dbf6c784 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/daos.lua @@ -0,0 +1,34 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + { + name = "foreign_entities", + primary_key = { "id" }, + endpoint_key = "name", + admin_api_name = "foreign-entities", + fields = { + { id = typedefs.uuid }, + { name = { type = "string", unique = true } }, + { same = typedefs.uuid }, + }, + }, + { + name = "foreign_references", + primary_key = { "id" }, + endpoint_key = "name", + admin_api_name = "foreign-references", + fields = { + { id = typedefs.uuid }, + { name = { type = "string", unique = true } }, + { same = { type = "foreign", reference = "foreign_entities", on_delete = "cascade" } }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/handler.lua new file mode 100644 index 00000000..05c25c48 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/handler.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + PRIORITY = 1, + VERSION = "1.0", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/000_base_foreign_entity.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/000_base_foreign_entity.lua new file mode 100644 index 00000000..f1fff4f7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/000_base_foreign_entity.lua @@ -0,0 +1,52 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + CREATE TABLE IF NOT EXISTS "foreign_entities" ( + "id" UUID PRIMARY KEY, + "name" TEXT UNIQUE, + "same" UUID + ); + + CREATE TABLE IF NOT EXISTS "foreign_references" ( + "id" UUID PRIMARY KEY, + "name" TEXT UNIQUE, + "same_id" UUID REFERENCES "foreign_entities" ("id") ON DELETE CASCADE + ); + + DO $$ + BEGIN + CREATE INDEX IF NOT EXISTS "foreign_references_fkey_same" ON "foreign_references" ("same_id"); + EXCEPTION WHEN UNDEFINED_COLUMN THEN + -- Do nothing, accept existing state + END$$; + ]], + }, + + cassandra = { + up = [[ + CREATE TABLE IF NOT EXISTS foreign_entities ( + id uuid PRIMARY KEY, + name text, + same uuid + ); + + CREATE INDEX IF NOT EXISTS ON foreign_entities(name); + + CREATE TABLE IF NOT EXISTS foreign_references ( + id uuid PRIMARY KEY, + name text, + same_id uuid + ); + + CREATE INDEX IF NOT EXISTS ON foreign_references (name); + CREATE INDEX IF NOT EXISTS ON foreign_references (same_id); + ]], + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/init.lua new file mode 100644 index 00000000..ce8fe5ae --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/migrations/init.lua @@ -0,0 +1,10 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + "000_base_foreign_entity", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/schema.lua new file mode 100644 index 00000000..c24e8412 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/foreign-entity/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "foreign-entity", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/handler.lua new file mode 100644 index 00000000..d2ef6ae6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/handler.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local InitWorkerLuaError = {} + + +InitWorkerLuaError.PRIORITY = 1000 +InitWorkerLuaError.VERSION = "1.0" + + +function InitWorkerLuaError:init_worker(conf) + error("this fails intentionally") +end + + +return InitWorkerLuaError diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/schema.lua new file mode 100644 index 00000000..25c51020 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/init-worker-lua-error/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "init-worker-lua-error", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/handler.lua new file mode 100644 index 00000000..e0eb6bca --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/handler.lua @@ -0,0 +1,13 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local InvalidSchemaHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + +return InvalidSchemaHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/schema.lua new file mode 100644 index 00000000..70fe40e6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalid-schema/schema.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "invalid-schema", + fields = { + { + config = { + type = "record", + fields = { + { foo = { type = "bar" } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/handler.lua new file mode 100644 index 00000000..86fefcad --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/handler.lua @@ -0,0 +1,33 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local kong = kong +local assert = assert + + +local counts = {} + + +local Invalidations = { + PRIORITY = 0, + VERSION = "1.0", +} + + +function Invalidations:init_worker() + assert(kong.cluster_events:subscribe("invalidations", function(key) + counts[key] = (counts[key] or 0) + 1 + end)) +end + + +function Invalidations:access(_) + return kong.response.exit(200, counts) +end + + +return Invalidations diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/schema.lua new file mode 100644 index 00000000..a0031ec6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/invalidations/schema.lua @@ -0,0 +1,34 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "invalidations", + fields = { + { + protocols = typedefs.protocols { + default = { + "http", + "https", + "tcp", + "tls", + "grpc", + "grpcs" + }, + }, + }, + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/handler.lua new file mode 100644 index 00000000..ff2e5fce --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/handler.lua @@ -0,0 +1,26 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local LoggerHandler = require "spec.fixtures.custom_plugins.kong.plugins.logger.handler" + +local LoggerLastHandler = { + VERSION = "0.1-t", + PRIORITY = 0, +} + + +LoggerLastHandler.init_worker = LoggerHandler.init_worker +LoggerLastHandler.certificate = LoggerHandler.certificate +LoggerLastHandler.preread = LoggerHandler.preread +LoggerLastHandler.rewrite = LoggerHandler.rewrite +LoggerLastHandler.access = LoggerHandler.access +LoggerLastHandler.header_filter = LoggerHandler.header_filter +LoggerLastHandler.body_filter = LoggerHandler.body_filter +LoggerLastHandler.log = LoggerHandler.log + + +return LoggerLastHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/schema.lua new file mode 100644 index 00000000..c80ef607 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger-last/schema.lua @@ -0,0 +1,25 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "logger-last", + fields = { + { + protocols = typedefs.protocols { default = { "http", "https", "tcp", "tls", "grpc", "grpcs" } }, + }, + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/handler.lua new file mode 100644 index 00000000..5043427f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/handler.lua @@ -0,0 +1,54 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local LoggerHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + + +function LoggerHandler:init_worker(conf) + kong.log("init_worker phase") +end + + +function LoggerHandler:certificate(conf) + kong.log("certificate phase") +end + + +function LoggerHandler:preread(conf) + kong.log("preread phase") +end + + +function LoggerHandler:rewrite(conf) + kong.log("rewrite phase") +end + + +function LoggerHandler:access(conf) + kong.log("access phase") +end + + +function LoggerHandler:header_filter(conf) + kong.log("header_filter phase") +end + + +function LoggerHandler:body_filter(conf) + kong.log("body_filter phase") +end + + +function LoggerHandler:log(conf) + kong.log("log phase") +end + + +return LoggerHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/schema.lua new file mode 100644 index 00000000..b57026b7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/logger/schema.lua @@ -0,0 +1,25 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "logger", + fields = { + { + protocols = typedefs.protocols { default = { "http", "https", "tcp", "tls", "grpc", "grpcs" } }, + }, + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/handler.lua new file mode 100644 index 00000000..0aea21e2 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/handler.lua @@ -0,0 +1,18 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +local PluginConfigDumpHandler = { + VERSION = "1.0.0", + PRIORITY = 1, +} + +function PluginConfigDumpHandler:access(conf) + kong.response.exit(200, conf) +end + +return PluginConfigDumpHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/schema.lua new file mode 100644 index 00000000..95fd74a6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-config-dump/schema.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +return { + name = "plugin-config-dump", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/custom_dao.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/custom_dao.lua new file mode 100644 index 00000000..b19c85c7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/custom_dao.lua @@ -0,0 +1,16 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local CustomDAO = {} + + +function CustomDAO:custom_method() + return self.strategy:custom_method() +end + + +return CustomDAO diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/daos.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/daos.lua new file mode 100644 index 00000000..a2a07866 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/daos.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + { + dao = "kong.plugins.plugin-with-custom-dao.custom_dao", + name = "custom_dao", + primary_key = { "id" }, + fields = { + { id = typedefs.uuid }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/handler.lua new file mode 100644 index 00000000..502ca42a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/handler.lua @@ -0,0 +1,14 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local MyHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + + +return MyHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/schema.lua new file mode 100644 index 00000000..5d877b3b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "plugin-with-custom-dao", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/cassandra/custom_dao.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/cassandra/custom_dao.lua new file mode 100644 index 00000000..028df916 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/cassandra/custom_dao.lua @@ -0,0 +1,14 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local CustomDAO = {} + +function CustomDAO:custom_method() + return "I was implemented for cassandra" +end + +return CustomDAO diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/postgres/custom_dao.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/postgres/custom_dao.lua new file mode 100644 index 00000000..e890eb7a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/plugin-with-custom-dao/strategies/postgres/custom_dao.lua @@ -0,0 +1,14 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local CustomDAO = {} + +function CustomDAO:custom_method() + return "I was implemented for postgres" +end + +return CustomDAO diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/api.lua new file mode 100644 index 00000000..6d01be65 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/api.lua @@ -0,0 +1,26 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local reports = require "kong.reports" +local constants = require "kong.constants" + + +return { + ["/reports/send-ping"] = { + POST = function(self) + -- if a port was passed, patch it in constants.REPORTS so + -- that tests can change the default reports port + if self.params.port then + constants.REPORTS.STATS_TLS_PORT = self.params.port + end + + reports._sync_counter() + reports.send_ping() + kong.response.exit(200, { message = "ok" }) + end, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/handler.lua new file mode 100644 index 00000000..fcbb0793 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/handler.lua @@ -0,0 +1,22 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ReportsApiHandler = { + PRIORITY = 1000, + VERSION = "1.0", +} + +function ReportsApiHandler:preread() + local reports = require "kong.reports" + reports._sync_counter() + reports.send_ping() + ngx.print("ok") + ngx.exit(200) +end + + +return ReportsApiHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/schema.lua new file mode 100644 index 00000000..e8da127a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/reports-api/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "reports-api", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/handler.lua new file mode 100644 index 00000000..07a545b5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/handler.lua @@ -0,0 +1,21 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local resp_phase = {} + + +resp_phase.PRIORITY = 950 +resp_phase.VERSION = "1.0-t" + + +function resp_phase:access() +end + +function resp_phase:response() +end + +return resp_phase diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/schema.lua new file mode 100644 index 00000000..a050c226 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/response-phase/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +return { + name = "response-phase", + fields = { + { config = { + type = "record", + fields = { + }, + } + } + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/handler.lua new file mode 100644 index 00000000..5c20510b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/handler.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- a plugin fixture to test running of the rewrite phase handler. + +local Rewriter = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + +function Rewriter:rewrite(conf) + ngx.req.set_header("rewriter", conf.value) +end + +return Rewriter diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/schema.lua new file mode 100644 index 00000000..cb2a7729 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/rewriter/schema.lua @@ -0,0 +1,21 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "rewriter", + fields = { + { + config = { + type = "record", + fields = { + { value = { type = "string" } }, + { extra = { type = "string", default = "extra" } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/handler.lua new file mode 100644 index 00000000..6ccd7f48 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/handler.lua @@ -0,0 +1,47 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local cjson = require "cjson" + + +local kong = kong +local tostring = tostring +local init_worker_called = false + + +local ShortCircuitHandler = { + VERSION = "0.1-t", + PRIORITY = 1000000, +} + + +function ShortCircuitHandler:init_worker() + init_worker_called = true +end + + +function ShortCircuitHandler:access(conf) + return kong.response.exit(conf.status, { + status = conf.status, + message = conf.message, + }, { + ["Kong-Init-Worker-Called"] = tostring(init_worker_called), + }) +end + + +function ShortCircuitHandler:preread(conf) + local message = cjson.encode({ + status = conf.status, + message = conf.message, + init_worker_called = init_worker_called, + }) + return kong.response.exit(conf.status, message) +end + + +return ShortCircuitHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/schema.lua new file mode 100644 index 00000000..02f301fc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/short-circuit/schema.lua @@ -0,0 +1,27 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "short-circuit", + fields = { + { + protocols = typedefs.protocols { default = { "http", "https", "tcp", "tls" } }, + }, + { + config = { + type = "record", + fields = { + { status = { type = "integer", default = 503 } }, + { message = { type = "string", default = "short-circuited" } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/api.lua new file mode 100644 index 00000000..f9d6e2c8 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/api.lua @@ -0,0 +1,32 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + ["/slow-resource"] = { + GET = function(self) + local delay = self.params.delay or 1 + + if self.params.prime then + ngx.timer.at(0, function() + local _, err = kong.db.connector:query("SELECT pg_sleep(" .. delay .. ")") + if err then + ngx.log(ngx.ERR, err) + end + end) + + return kong.response.exit(204) + end + + local _, err = kong.db.connector:query("SELECT pg_sleep(" .. delay .. ")") + if err then + return kong.response.exit(500, { error = err }) + end + + return kong.response.exit(204) + end, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/handler.lua new file mode 100644 index 00000000..ecd85940 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/handler.lua @@ -0,0 +1,14 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local SlowQueryHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + + +return SlowQueryHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/schema.lua new file mode 100644 index 00000000..b4f37e39 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/slow-query/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "slow-query", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/api.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/api.lua new file mode 100644 index 00000000..2a06f7b9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/api.lua @@ -0,0 +1,26 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local cjson_decode = require("cjson").decode + + +return { + _stream = function(data) + local json = cjson_decode(data) + local action = json.action or "echo" + + if action == "echo" then + return json.payload, json.err + + elseif action == "rep" then + return string.rep("1", json.rep or 0) + + elseif action == "throw" then + error(json.err or "error!") + end + end, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/handler.lua new file mode 100644 index 00000000..787093e0 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/handler.lua @@ -0,0 +1,12 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +return { + PRIORITY = 1000, + VERSION = "1.0", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/schema.lua new file mode 100644 index 00000000..00ce3b2e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/stream-api-echo/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "stream-api-echo", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/handler.lua new file mode 100644 index 00000000..1b69be81 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/handler.lua @@ -0,0 +1,139 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local cjson = require "cjson" +local str = require "resty.string" +local http = require "resty.http" + +local ngx = ngx +local kong = kong +local table = table +local insert = table.insert +local to_hex = str.to_hex + +local _M = { + PRIORITY = 1001, + VERSION = "1.0", +} + +local tracer_name = "tcp-trace-exporter" + +function _M:rewrite(config) + if not config.custom_spans then + return + end + + local tracer = kong.tracing(tracer_name) + + local span = tracer.start_span("rewrite", { + parent = kong.tracing.active_span(), + }) + tracer.set_active_span(span) + + -- tracing DNS! + local httpc = http.new() + -- Single-shot requests use the `request_uri` interface. + local res, err = httpc:request_uri("https://konghq.com", { + method = "GET", + }) + + if not res then + ngx.log(ngx.ERR, "request failed: ", err) + end +end + + +function _M:access(config) + local tracer = kong.tracing(tracer_name) + + local span + if config.custom_spans then + span = tracer.start_span("access") + tracer.set_active_span(span) + end + + kong.db.routes:page() + + if span then + span:finish() + end +end + + +function _M:header_filter(config) + local tracer = kong.tracing(tracer_name) + + local span + if config.custom_spans then + span = tracer.start_span("header_filter") + tracer.set_active_span(span) + end + + if span then + span:finish() + end +end + + +local function push_data(premature, data, config) + if premature then + return + end + + local tcpsock = ngx.socket.tcp() + tcpsock:settimeout(1000) + local ok, err = tcpsock:connect(config.host, config.port) + if not ok then + kong.log.err("connect err: ".. err) + return + end + local _, err = tcpsock:send(data .. "\n") + if err then + kong.log.err(err) + end + tcpsock:close() +end + +function _M:log(config) + local tracer = kong.tracing(tracer_name) + local span = tracer.active_span() + + if span then + kong.log.debug("Exit span name: ", span.name) + span:finish() + end + + kong.log.debug("Total spans: ", ngx.ctx.KONG_SPANS and #ngx.ctx.KONG_SPANS) + + local spans = {} + local process_span = function (span) + local s = table.clone(span) + s.tracer = nil + s.parent = nil + s.trace_id = to_hex(s.trace_id) + s.parent_id = s.parent_id and to_hex(s.parent_id) + s.span_id = to_hex(s.span_id) + insert(spans, s) + end + tracer.process_span(process_span) + kong.tracing.process_span(process_span) + + local sort_by_start_time = function(a,b) + return a.start_time_ns < b.start_time_ns + end + table.sort(spans, sort_by_start_time) + + local data = cjson.encode(spans) + + local ok, err = ngx.timer.at(0, push_data, data, config) + if not ok then + kong.log.err("failed to create timer: ", err) + end +end + + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/schema.lua new file mode 100644 index 00000000..b4e75475 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/tcp-trace-exporter/schema.lua @@ -0,0 +1,24 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + +return { + name = "tcp-trace-exporter", + fields = { + { + config = { + type = "record", + fields = { + { host = typedefs.host({ required = true }), }, + { port = typedefs.port({ required = true }), }, + { custom_spans = { type = "boolean", default = false }, } + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/daos.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/daos.lua new file mode 100644 index 00000000..6de1f50a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/daos.lua @@ -0,0 +1,79 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + { + name = "transformations", + primary_key = { "id" }, + endpoint_key = "name", + fields = { + { id = typedefs.uuid }, + { name = { type = "string" }, }, + { secret = { type = "string", required = false, auto = true }, }, + { hash_secret = { type = "boolean", required = true, default = false }, }, + { meta = { type = "string", required = false, referenceable = true }, }, + { case = { type = "string", required = false, referenceable = true }, }, + }, + transformations = { + { + input = { "hash_secret" }, + needs = { "secret" }, + on_write = function(hash_secret, client_secret) + if not hash_secret then + return {} + end + local hash = assert(ngx.md5(client_secret)) + return { + secret = hash, + } + end, + }, + { + input = { "meta" }, + on_write = function(meta) + if not meta or meta == ngx.null then + return {} + end + return { + meta = string.reverse(meta), + } + end, + on_read = function(meta) + if not meta or meta == ngx.null then + return {} + end + return { + meta = string.reverse(meta), + } + end, + }, + { + on_write = function(entity) + local case = entity.case + if not case or case == ngx.null then + return {} + end + return { + case = string.upper(case), + } + end, + on_read = function(entity) + local case = entity.case + if not case or case == ngx.null then + return {} + end + return { + case = string.lower(case), + } + end, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/handler.lua new file mode 100644 index 00000000..05c25c48 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/handler.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + PRIORITY = 1, + VERSION = "1.0", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/000_base_transformations.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/000_base_transformations.lua new file mode 100644 index 00000000..5b70dbfe --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/000_base_transformations.lua @@ -0,0 +1,34 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + CREATE TABLE IF NOT EXISTS "transformations" ( + "id" UUID PRIMARY KEY, + "name" TEXT, + "secret" TEXT, + "hash_secret" BOOLEAN, + "meta" TEXT, + "case" TEXT + ); + ]], + }, + + cassandra = { + up = [[ + CREATE TABLE IF NOT EXISTS transformations ( + id uuid PRIMARY KEY, + name text, + secret text, + hash_secret boolean, + meta text, + case text + ); + ]], + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/init.lua new file mode 100644 index 00000000..568e1bbc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/migrations/init.lua @@ -0,0 +1,10 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + "000_base_transformations", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/schema.lua new file mode 100644 index 00000000..96a8a9f9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/transformations/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "transformations", + fields = { + { + config = { + type = "record", + fields = { + } + } + } + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/daos.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/daos.lua new file mode 100644 index 00000000..3b763568 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/daos.lua @@ -0,0 +1,31 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + { + name = "unique_foreigns", + primary_key = { "id" }, + admin_api_name = "unique-foreigns", + fields = { + { id = typedefs.uuid }, + { name = { type = "string" }, }, + }, + }, + { + name = "unique_references", + primary_key = { "id" }, + admin_api_name = "unique-references", + fields = { + { id = typedefs.uuid }, + { note = { type = "string" }, }, + { unique_foreign = { type = "foreign", reference = "unique_foreigns", on_delete = "cascade", unique = true }, }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/handler.lua new file mode 100644 index 00000000..05c25c48 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/handler.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + PRIORITY = 1, + VERSION = "1.0", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/000_base_unique_foreign.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/000_base_unique_foreign.lua new file mode 100644 index 00000000..fec1191f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/000_base_unique_foreign.lua @@ -0,0 +1,40 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + CREATE TABLE IF NOT EXISTS "unique_foreigns" ( + "id" UUID PRIMARY KEY, + "name" TEXT + ); + + CREATE TABLE IF NOT EXISTS "unique_references" ( + "id" UUID PRIMARY KEY, + "note" TEXT, + "unique_foreign_id" UUID UNIQUE REFERENCES "unique_foreigns" ("id") ON DELETE CASCADE + ); + ]], + }, + + cassandra = { + up = [[ + CREATE TABLE IF NOT EXISTS unique_foreigns ( + id uuid PRIMARY KEY, + name text + ); + + CREATE TABLE IF NOT EXISTS unique_references ( + id uuid PRIMARY KEY, + note text, + unique_foreign_id uuid + ); + + CREATE INDEX IF NOT EXISTS ON unique_references(unique_foreign_id); + ]], + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/init.lua new file mode 100644 index 00000000..9dc9bec5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/migrations/init.lua @@ -0,0 +1,10 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + "000_base_unique_foreign", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/schema.lua new file mode 100644 index 00000000..c9d7e8e8 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/unique-foreign/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "unique-foreign", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/daos.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/daos.lua new file mode 100644 index 00000000..818f773f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/daos.lua @@ -0,0 +1,17 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + { + name = "foos", + primary_key = { "color" }, + fields = { + { color = { type = "string" } }, + { shape = { type = "string" } }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/handler.lua new file mode 100644 index 00000000..25dbd7ab --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/handler.lua @@ -0,0 +1,14 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local WithMigrationHandler = { + VERSION = "0.1-t", + PRIORITY = 1000, +} + + +return WithMigrationHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/000_base_with_migrations.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/000_base_with_migrations.lua new file mode 100644 index 00000000..dd669b03 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/000_base_with_migrations.lua @@ -0,0 +1,40 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + CREATE TABLE IF NOT EXISTS "foos" ( + "color" TEXT PRIMARY KEY + ); + + INSERT INTO foos (color) values ('red'); + ]], + }, + + cassandra = { + up = [[ + CREATE TABLE IF NOT EXISTS foos ( + color text PRIMARY KEY + ); + + INSERT INTO foos(color) values('red'); + ]], + up_f = function(connector) + local coordinator = assert(connector:get_stored_connection()) + local _, err = coordinator:execute([[ + INSERT INTO foos(color) values('green'); + ]]) + + if err then + return nil, err + end + + return true + end, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/001_14_to_15.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/001_14_to_15.lua new file mode 100644 index 00000000..c4816f24 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/001_14_to_15.lua @@ -0,0 +1,109 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + DO $$ + BEGIN + ALTER TABLE IF EXISTS ONLY "foos" ADD "shape" TEXT UNIQUE; + EXCEPTION WHEN DUPLICATE_COLUMN THEN + -- Do nothing, accept existing state + END; + $$; + ]], + + teardown = function(connector, _) + -- update shape in all foos + for row, err in connector:iterate('SELECT * FROM "foos";') do + if err then + return nil, err + end + + local shape = "triangle" + local sql = string.format([[ + UPDATE "foos" SET "shape" = '%s' WHERE "color" = '%s'; + ]], shape, row.color) + assert(connector:query(sql)) + end + + + -- check insertion and update + local count = 0 + for row, err in connector:iterate('SELECT * FROM "foos";') do + if err then + return nil, err + end + + count = count + 1 + assert(row.color == "red", "Wrong color: " .. tostring(row.color)) + assert(row.shape == "triangle", "Wrong shape: " .. tostring(row.shape)) + end + + assert(count == 1, "Expected 1 foo, found " .. tostring(count)) + + return true + end, + }, + + cassandra = { + up = [[ + ALTER TABLE foos ADD shape text; + CREATE INDEX IF NOT EXISTS foos_shape_idx ON foos(shape); + ]], + up_f = function(connector) + local coordinator = assert(connector:get_stored_connection()) + local _, err = coordinator:execute([[ + INSERT INTO foos(color) values('blue'); + ]]) + + if err then + return nil, err + end + + return true + end, + + teardown = function(connector, _) + local coordinator = assert(connector:get_stored_connection()) + -- Update: assing shape=triangle to all foos + for rows, err in coordinator:iterate("SELECT * FROM foos") do + if err then + return nil, err + end + + for _, row in ipairs(rows) do + local shape = "triangle" + local cql = string.format([[ + UPDATE foos SET shape = '%s' WHERE color = '%s' + ]], shape, row.color) + assert(coordinator:execute(cql)) + end + end + + -- final check of insertions/updates + local count = 0 + for rows, err in coordinator:iterate("SELECT * FROM foos") do + if err then + return nil, err + end + + for _, row in ipairs(rows) do + count = count + 1 + assert(row.shape == "triangle", "Wrong shape: " .. tostring(row.shape)) + local c = row.color + assert( + c == "red" or c == "green" or c == "blue", + "Wrong color: " .. tostring(c)) + end + end + assert(count == 3, "Expected 3 foos, found " .. tostring(count)) + + return true + end, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/init.lua new file mode 100644 index 00000000..20767fcc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/migrations/init.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + "000_base_with_migrations", + "001_14_to_15", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/schema.lua new file mode 100644 index 00000000..0615a621 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/with-migrations/schema.lua @@ -0,0 +1,19 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "with-migrations", + fields = { + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/handler.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/handler.lua new file mode 100644 index 00000000..615e9c2f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/handler.lua @@ -0,0 +1,71 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local semaphore = require "ngx.semaphore" +local cjson = require "cjson" + + +local ngx = ngx +local kong = kong +local table = table + + +local worker_events = {} +local sema + + +local function load_data() + local ok, err = sema:wait(5) + if ok then + local data = table.remove(worker_events, 1) + if data then + return data + end + + return { + error = "worker event data not found" + } + end + + return { + error = err + } +end + + +local WorkerEventsHandler = { + PRIORITY = 500, +} + + +function WorkerEventsHandler.init_worker() + sema = semaphore.new() + kong.worker_events.register(function(data) + worker_events[#worker_events+1] = { + operation = data.operation, + entity = data.entity, + old_entity = data.old_entity, + } + sema:post() + end, "dao:crud") +end + + +function WorkerEventsHandler:preread() + local data = load_data() + local json = cjson.encode(data) + ngx.print(json) + return ngx.exit(200) +end + + +function WorkerEventsHandler:access() + return kong.response.exit(200, load_data()) +end + + +return WorkerEventsHandler diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/schema.lua new file mode 100644 index 00000000..db12abcd --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_plugins/kong/plugins/worker-events/schema.lua @@ -0,0 +1,25 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local typedefs = require "kong.db.schema.typedefs" + + +return { + name = "worker-events", + fields = { + { + protocols = typedefs.protocols { default = { "http", "https", "tcp", "tls", "grpc", "grpcs" } }, + }, + { + config = { + type = "record", + fields = { + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/init.lua new file mode 100644 index 00000000..1b806a8c --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/init.lua @@ -0,0 +1,44 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local env = require "kong.vaults.env" +local http = require "resty.http" + + +local assert = assert +local getenv = os.getenv + + +local function init() + env.init() + assert(getenv("KONG_PROCESS_SECRETS") == nil, "KONG_PROCESS_SECRETS environment variable found") + assert(env.get({}, "KONG_PROCESS_SECRETS") == nil, "KONG_PROCESS_SECRETS environment variable found") +end + + +local function get(conf, resource, version) + local client, err = http.new() + if not client then + return nil, err + end + + client:set_timeouts(20000, 20000, 20000) + assert(client:request_uri("http://mockbin.org/headers", { + headers = { + Accept = "application/json", + }, + })) + + return env.get(conf, resource, version) +end + + +return { + VERSION = "1.0.0", + init = init, + get = get, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/schema.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/schema.lua new file mode 100644 index 00000000..d54bf0e0 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/custom_vaults/kong/vaults/mock/schema.lua @@ -0,0 +1,20 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + name = "mock", + fields = { + { + config = { + type = "record", + fields = { + { prefix = { type = "string", match = [[^[%a_][%a%d_]*$]] } }, + }, + }, + }, + }, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/dc_blueprints.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/dc_blueprints.lua new file mode 100644 index 00000000..8b4c6f12 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/dc_blueprints.lua @@ -0,0 +1,102 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local blueprints = require "spec.fixtures.blueprints" +local tablex = require "pl.tablex" + + +local dc_blueprints = {} + + +local null = ngx.null + + +local function reset() + return { + _format_version = "3.0" + } +end + + +local function remove_nulls(tbl) + for k,v in pairs(tbl) do + if v == null then + tbl[k] = nil + elseif type(v) == "table" then + tbl[k] = remove_nulls(v) + end + end + return tbl +end + + +function dc_blueprints.new(db) + local dc_as_db = {} + + local save_dc + local dc = reset() + + for name, _ in pairs(db.daos) do + dc_as_db[name] = { + insert = function(_, tbl) + tbl = tablex.deepcopy(tbl) + if not dc[name] then + dc[name] = {} + end + local schema = db.daos[name].schema + tbl = schema:process_auto_fields(tbl, "insert") + for fname, field in schema:each_field() do + if field.type == "foreign" then + tbl[fname] = type(tbl[fname]) == "table" + and tbl[fname].id + or nil + end + end + table.insert(dc[name], remove_nulls(tbl)) + return tablex.deepcopy(tbl) + end, + update = function(_, id, tbl) + if not dc[name] then + return nil, "not found" + end + tbl = tablex.deepcopy(tbl) + local element + for _, e in ipairs(dc[name]) do + if e.id == id then + element = e + break + end + end + if not element then + return nil, "not found" + end + for k,v in pairs(tbl) do + element[k] = v + end + return element + end + } + end + + local bp = blueprints.new(dc_as_db) + + bp.done = function() + local ret = dc + save_dc = dc + dc = reset() + return ret + end + + bp.reset_back = function() + dc = save_dc + end + + return bp +end + + +return dc_blueprints diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/deprecated_custom_plugin.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/deprecated_custom_plugin.conf new file mode 100644 index 00000000..85ded0fa --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/deprecated_custom_plugin.conf @@ -0,0 +1,6 @@ +admin_listen = 127.0.0.1:9001 +proxy_listen = 0.0.0.0:9000 +prefix = servroot +custom_plugins = ctx-checker +pg_database = kong_tests +cassandra_keyspace = kong_tests diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/dump_lmdb_key.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/dump_lmdb_key.lua new file mode 100644 index 00000000..78837385 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/dump_lmdb_key.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local lmdb = require("resty.lmdb") +local key = assert(arg[1]) + +ngx.print(lmdb.get(key)) diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/forward-proxy-server.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/forward-proxy-server.lua new file mode 100644 index 00000000..dbfa8351 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/forward-proxy-server.lua @@ -0,0 +1,153 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local _M = {} + +local split = require("kong.tools.utils").split + +local header_mt = { + __index = function(self, name) + name = name:lower():gsub("_", "-") + return rawget(self, name) + end, + + __newindex = function(self, name, value) + name = name:lower():gsub("_", "-") + rawset(self, name, value) + end, +} + +local function new_headers() + return setmetatable({}, header_mt) +end + +-- This is a very naive forward proxy, which accepts a CONNECT over HTTP, and +-- then starts tunnelling the bytes blind (for end-to-end SSL). +function _M.connect(opts) + local req_sock = ngx.req.socket(true) + req_sock:settimeouts(1000, 1000, 1000) + + -- receive request line + local req_line = req_sock:receive() + ngx.log(ngx.DEBUG, "request line: ", req_line) + + local method, host_port = unpack(split(req_line, " ")) + if method ~= "CONNECT" then + return ngx.exit(400) + end + + local upstream_host, upstream_port = unpack(split(host_port, ":")) + + local headers = new_headers() + + -- receive headers + repeat + local line = req_sock:receive("*l") + local name, value = line:match("^([^:]+):%s*(.+)$") + if name and value then + ngx.log(ngx.DEBUG, "header: ", name, " => ", value) + headers[name] = value + end + until ngx.re.find(line, "^\\s*$", "jo") + + + local basic_auth = opts and opts.basic_auth + if basic_auth then + ngx.log(ngx.DEBUG, "checking proxy-authorization...") + + local found = headers["proxy-authorization"] + if not found then + ngx.log(ngx.NOTICE, "client did not send proxy-authorization header") + ngx.print("HTTP/1.1 401 Unauthorized\r\n\r\n") + return ngx.exit(ngx.OK) + end + + local auth = ngx.re.gsub(found, [[^Basic\s*]], "", "oji") + + if auth ~= basic_auth then + ngx.log(ngx.NOTICE, "client sent incorrect proxy-authorization") + ngx.print("HTTP/1.1 403 Forbidden\r\n\r\n") + return ngx.exit(ngx.OK) + end + + ngx.log(ngx.DEBUG, "accepted basic proxy-authorization") + end + + + -- Connect to requested upstream + local upstream_sock = ngx.socket.tcp() + upstream_sock:settimeouts(1000, 1000, 1000) + local ok, err = upstream_sock:connect(upstream_host, upstream_port) + if not ok then + ngx.log(ngx.ERR, "connect to upstream ", upstream_host, ":", upstream_port, + " failed: ", err) + return ngx.exit(504) + end + + -- Tell the client we are good to go + ngx.print("HTTP/1.1 200 OK\r\n\r\n") + ngx.flush() + + ngx.log(ngx.DEBUG, "tunneling started") + + -- 10Kb in either direction should be plenty + local max_bytes = 10 * 1024 + + local should_exit = false + + local upload = ngx.thread.spawn(function() + while not should_exit do + local req_data, err = req_sock:receiveany(max_bytes) + if req_data then + ngx.log(ngx.DEBUG, "client RCV ", #req_data, " bytes") + + local bytes, err = upstream_sock:send(req_data) + if bytes then + ngx.log(ngx.DEBUG, "upstream SND ", bytes, " bytes") + elseif err then + ngx.log(ngx.ERR, "upstream SND failed: ", err) + break + end + elseif err ~= "timeout" then + ngx.log(ngx.ERR, "client RCV failed: ", err) + break + end + end + should_exit = true + end) + + local download = ngx.thread.spawn(function() + while not should_exit do + local res_data, err = upstream_sock:receiveany(max_bytes) + if res_data then + ngx.log(ngx.DEBUG, "upstream RCV ", #res_data, " bytes") + + local bytes, err = req_sock:send(res_data) + if bytes then + ngx.log(ngx.DEBUG, "client SND: ", bytes, " bytes") + elseif err then + ngx.log(ngx.ERR, "client SND failed: ", err) + break + end + elseif err ~= "timeout" then + ngx.log(ngx.ERR, "upstream RCV failed: ", err) + break + end + end + should_exit = true + end) + + ngx.thread.wait(upload, download) + ngx.thread.kill(upload) + ngx.thread.kill(download) + + upstream_sock:close() + + ngx.log(ngx.DEBUG, "tunneling ended") +end + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/go/go-hello.go b/kong-versions/3.2.2.4/kong/spec/fixtures/go/go-hello.go new file mode 100644 index 00000000..f55099a1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/go/go-hello.go @@ -0,0 +1,79 @@ +/* +A "hello world" plugin in Go, +which reads a request header and sets a response header. +*/ +package main + +import ( + "fmt" + "github.com/Kong/go-pdk" + "github.com/Kong/go-pdk/server" +) + +type Config struct { + Message string +} + +func New() interface{} { + return &Config{} +} + +func main() { + server.StartServer(New, "0.1", 1) +} + +func (conf Config) Access(kong *pdk.PDK) { + host, err := kong.Request.GetHeader("host") + if err != nil { + kong.Log.Err(err.Error()) + } + message := conf.Message + if message == "" { + message = "hello" + } + kong.Response.SetHeader("x-hello-from-go", fmt.Sprintf("Go says %s to %s", message, host)) + kong.Ctx.SetShared("shared_msg", message) +} + +func (conf Config) Log(kong *pdk.PDK) { + access_start, err := kong.Nginx.GetCtxFloat("KONG_ACCESS_START") + if err != nil { + kong.Log.Err(err.Error()) + } + kong.Log.Debug("access_start: ", access_start) + + header_value, err := kong.Request.GetHeader("X-Loose-Data") + if err != nil { + kong.Log.Err(err.Error()) + } + kong.Log.Debug("request_header: ", header_value) + + header_value, err = kong.Response.GetHeader("X-Powered-By") + if err != nil { + kong.Log.Err(err.Error()) + } + kong.Log.Debug("response_header: ", header_value) + + shared_msg, err := kong.Ctx.GetSharedString("shared_msg") + if err != nil { + kong.Log.Err(err.Error()) + } + + kong.Log.Debug("shared_msg: ", shared_msg) + + serialized, err := kong.Log.Serialize() + if err != nil { + kong.Log.Err(err.Error()) + } + + kong.Log.Debug("serialized:", serialized) +} + +func (conf Config) Response(kong *pdk.PDK) { + srvr, err := kong.ServiceResponse.GetHeader("Server") + if err != nil { + kong.Log.Err(err.Error()) + } + + kong.Response.SetHeader("x-hello-from-go-at-response", fmt.Sprintf("got from server '%s'", srvr)) +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/go/go.mod b/kong-versions/3.2.2.4/kong/spec/fixtures/go/go.mod new file mode 100644 index 00000000..def3ac47 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/go/go.mod @@ -0,0 +1,5 @@ +module go-plugins + +go 1.13 + +require github.com/Kong/go-pdk v0.7.1 diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/go/go.sum b/kong-versions/3.2.2.4/kong/spec/fixtures/go/go.sum new file mode 100644 index 00000000..382f9ec5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/go/go.sum @@ -0,0 +1,84 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Kong/go-pdk v0.7.1 h1:DWpmvuafH/35xws0VsXPyiGVtQmUuICnok9Hqolgdgg= +github.com/Kong/go-pdk v0.7.1/go.mod h1:48+yltNveiFYTo6/I1AnmGn3m8goSQbtkfamH1zkwhw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/ugorji/go v1.2.1 h1:dz+JxTe7GZQdErTo7SREc1jQj/hFP1k7jyIAwODoW+k= +github.com/ugorji/go v1.2.1/go.mod h1:cSVypSfTLm2o9fKxXvQgn3rMmkPXovcWor6Qn5tbFmI= +github.com/ugorji/go/codec v1.2.1 h1:/TRfW3XKkvWvmAYyCUaQlhoCDGjcvNR8xVVA/l5p/jQ= +github.com/ugorji/go/codec v1.2.1/go.mod h1:s/WxCRi46t8rA+fowL40EnmD7ec0XhR7ZypxeBNdzsM= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/direct_imports.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/direct_imports.proto new file mode 100644 index 00000000..1a4bb350 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/direct_imports.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +import "helloworld.proto"; + +service Own { + rpc Open(hello.HelloRequest) returns (hello.HelloResponse); +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/annotations.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/annotations.proto new file mode 100644 index 00000000..85c361b4 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/annotations.proto @@ -0,0 +1,31 @@ +// Copyright (c) 2015, Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +import "google/api/http.proto"; +import "google/protobuf/descriptor.proto"; + +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "AnnotationsProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +extend google.protobuf.MethodOptions { + // See `HttpRule`. + HttpRule http = 72295728; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/http.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/http.proto new file mode 100644 index 00000000..2bd3a19b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/http.proto @@ -0,0 +1,318 @@ +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "HttpProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + + +// Defines the HTTP configuration for an API service. It contains a list of +// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method +// to one or more HTTP REST API methods. +message Http { + // A list of HTTP configuration rules that apply to individual API methods. + // + // **NOTE:** All service configuration rules follow "last one wins" order. + repeated HttpRule rules = 1; + + // When set to true, URL path parmeters will be fully URI-decoded except in + // cases of single segment matches in reserved expansion, where "%2F" will be + // left encoded. + // + // The default behavior is to not decode RFC 6570 reserved characters in multi + // segment matches. + bool fully_decode_reserved_expansion = 2; +} + +// `HttpRule` defines the mapping of an RPC method to one or more HTTP +// REST API methods. The mapping specifies how different portions of the RPC +// request message are mapped to URL path, URL query parameters, and +// HTTP request body. The mapping is typically specified as an +// `google.api.http` annotation on the RPC method, +// see "google/api/annotations.proto" for details. +// +// The mapping consists of a field specifying the path template and +// method kind. The path template can refer to fields in the request +// message, as in the example below which describes a REST GET +// operation on a resource collection of messages: +// +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}"; +// } +// } +// message GetMessageRequest { +// message SubMessage { +// string subfield = 1; +// } +// string message_id = 1; // mapped to the URL +// SubMessage sub = 2; // `sub.subfield` is url-mapped +// } +// message Message { +// string text = 1; // content of the resource +// } +// +// The same http annotation can alternatively be expressed inside the +// `GRPC API Configuration` YAML file. +// +// http: +// rules: +// - selector: .Messaging.GetMessage +// get: /v1/messages/{message_id}/{sub.subfield} +// +// This definition enables an automatic, bidrectional mapping of HTTP +// JSON to RPC. Example: +// +// HTTP | RPC +// -----|----- +// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))` +// +// In general, not only fields but also field paths can be referenced +// from a path pattern. Fields mapped to the path pattern cannot be +// repeated and must have a primitive (non-message) type. +// +// Any fields in the request message which are not bound by the path +// pattern automatically become (optional) HTTP query +// parameters. Assume the following definition of the request message: +// +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http).get = "/v1/messages/{message_id}"; +// } +// } +// message GetMessageRequest { +// message SubMessage { +// string subfield = 1; +// } +// string message_id = 1; // mapped to the URL +// int64 revision = 2; // becomes a parameter +// SubMessage sub = 3; // `sub.subfield` becomes a parameter +// } +// +// +// This enables a HTTP JSON to RPC mapping as below: +// +// HTTP | RPC +// -----|----- +// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))` +// +// Note that fields which are mapped to HTTP parameters must have a +// primitive type or a repeated primitive type. Message types are not +// allowed. In the case of a repeated type, the parameter can be +// repeated in the URL, as in `...?param=A¶m=B`. +// +// For HTTP method kinds which allow a request body, the `body` field +// specifies the mapping. Consider a REST update method on the +// message resource collection: +// +// +// service Messaging { +// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { +// option (google.api.http) = { +// put: "/v1/messages/{message_id}" +// body: "message" +// }; +// } +// } +// message UpdateMessageRequest { +// string message_id = 1; // mapped to the URL +// Message message = 2; // mapped to the body +// } +// +// +// The following HTTP JSON to RPC mapping is enabled, where the +// representation of the JSON in the request body is determined by +// protos JSON encoding: +// +// HTTP | RPC +// -----|----- +// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })` +// +// The special name `*` can be used in the body mapping to define that +// every field not bound by the path template should be mapped to the +// request body. This enables the following alternative definition of +// the update method: +// +// service Messaging { +// rpc UpdateMessage(Message) returns (Message) { +// option (google.api.http) = { +// put: "/v1/messages/{message_id}" +// body: "*" +// }; +// } +// } +// message Message { +// string message_id = 1; +// string text = 2; +// } +// +// +// The following HTTP JSON to RPC mapping is enabled: +// +// HTTP | RPC +// -----|----- +// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")` +// +// Note that when using `*` in the body mapping, it is not possible to +// have HTTP parameters, as all fields not bound by the path end in +// the body. This makes this option more rarely used in practice of +// defining REST APIs. The common usage of `*` is in custom methods +// which don't use the URL at all for transferring data. +// +// It is possible to define multiple HTTP methods for one RPC by using +// the `additional_bindings` option. Example: +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http) = { +// get: "/v1/messages/{message_id}" +// additional_bindings { +// get: "/v1/users/{user_id}/messages/{message_id}" +// } +// }; +// } +// } +// message GetMessageRequest { +// string message_id = 1; +// string user_id = 2; +// } +// +// +// This enables the following two alternative HTTP JSON to RPC +// mappings: +// +// HTTP | RPC +// -----|----- +// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` +// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")` +// +// # Rules for HTTP mapping +// +// The rules for mapping HTTP path, query parameters, and body fields +// to the request message are as follows: +// +// 1. The `body` field specifies either `*` or a field path, or is +// omitted. If omitted, it indicates there is no HTTP request body. +// 2. Leaf fields (recursive expansion of nested messages in the +// request) can be classified into three types: +// (a) Matched in the URL template. +// (b) Covered by body (if body is `*`, everything except (a) fields; +// else everything under the body field) +// (c) All other fields. +// 3. URL query parameters found in the HTTP request are mapped to (c) fields. +// 4. Any body sent with an HTTP request can contain only (b) fields. +// +// The syntax of the path template is as follows: +// +// Template = "/" Segments [ Verb ] ; +// Segments = Segment { "/" Segment } ; +// Segment = "*" | "**" | LITERAL | Variable ; +// Variable = "{" FieldPath [ "=" Segments ] "}" ; +// FieldPath = IDENT { "." IDENT } ; +// Verb = ":" LITERAL ; +// +// The syntax `*` matches a single path segment. The syntax `**` matches zero +// or more path segments, which must be the last part of the path except the +// `Verb`. The syntax `LITERAL` matches literal text in the path. +// +// The syntax `Variable` matches part of the URL path as specified by its +// template. A variable template must not contain other variables. If a variable +// matches a single path segment, its template may be omitted, e.g. `{var}` +// is equivalent to `{var=*}`. +// +// If a variable contains exactly one path segment, such as `"{var}"` or +// `"{var=*}"`, when such a variable is expanded into a URL path, all characters +// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the +// Discovery Document as `{var}`. +// +// If a variable contains one or more path segments, such as `"{var=foo/*}"` +// or `"{var=**}"`, when such a variable is expanded into a URL path, all +// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables +// show up in the Discovery Document as `{+var}`. +// +// NOTE: While the single segment variable matches the semantics of +// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 +// Simple String Expansion, the multi segment variable **does not** match +// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion +// does not expand special characters like `?` and `#`, which would lead +// to invalid URLs. +// +// NOTE: the field paths in variables and in the `body` must not refer to +// repeated fields or map fields. +message HttpRule { + // Selects methods to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + string selector = 1; + + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + oneof pattern { + // Used for listing and getting information about resources. + string get = 2; + + // Used for updating a resource. + string put = 3; + + // Used for creating a resource. + string post = 4; + + // Used for deleting a resource. + string delete = 5; + + // Used for updating a resource. + string patch = 6; + + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + CustomHttpPattern custom = 8; + } + + // The name of the request field whose value is mapped to the HTTP body, or + // `*` for mapping all fields not captured by the path pattern to the HTTP + // body. NOTE: the referred field must not be a repeated field and must be + // present at the top-level of request message type. + string body = 7; + + // Optional. The name of the response field whose value is mapped to the HTTP + // body of response. Other response fields are ignored. When + // not set, the response message will be used as HTTP body of response. + string response_body = 12; + + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + repeated HttpRule additional_bindings = 11; +} + +// A custom pattern is used for defining custom HTTP verb. +message CustomHttpPattern { + // The name of this custom HTTP verb. + string kind = 1; + + // The path matched by this custom verb. + string path = 2; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/httpbody.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/httpbody.proto new file mode 100644 index 00000000..4428515c --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/api/httpbody.proto @@ -0,0 +1,78 @@ +// Copyright 2018 Google LLC. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +syntax = "proto3"; + +package google.api; + +import "google/protobuf/any.proto"; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody"; +option java_multiple_files = true; +option java_outer_classname = "HttpBodyProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +// Message that represents an arbitrary HTTP body. It should only be used for +// payload formats that can't be represented as JSON, such as raw binary or +// an HTML page. +// +// +// This message can be used both in streaming and non-streaming API methods in +// the request as well as the response. +// +// It can be used as a top-level request field, which is convenient if one +// wants to extract parameters from either the URL or HTTP template into the +// request fields and also want access to the raw HTTP body. +// +// Example: +// +// message GetResourceRequest { +// // A unique request id. +// string request_id = 1; +// +// // The raw HTTP body is bound to this field. +// google.api.HttpBody http_body = 2; +// } +// +// service ResourceService { +// rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); +// rpc UpdateResource(google.api.HttpBody) returns +// (google.protobuf.Empty); +// } +// +// Example with streaming methods: +// +// service CaldavService { +// rpc GetCalendar(stream google.api.HttpBody) +// returns (stream google.api.HttpBody); +// rpc UpdateCalendar(stream google.api.HttpBody) +// returns (stream google.api.HttpBody); +// } +// +// Use of this type only changes how the request and response bodies are +// handled, all other features will continue to work unchanged. +message HttpBody { + // The HTTP Content-Type header value specifying the content type of the body. + string content_type = 1; + + // The HTTP request/response body as raw binary. + bytes data = 2; + + // Application specific response metadata. Must be set in the first response + // for streaming APIs. + repeated google.protobuf.Any extensions = 3; +} \ No newline at end of file diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/any.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/any.proto new file mode 100644 index 00000000..49329425 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/any.proto @@ -0,0 +1,154 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/any"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := ptypes.MarshalAny(foo) +// ... +// foo := &pb.Foo{} +// if err := ptypes.UnmarshalAny(any, foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name that uniquely identifies the type of the serialized + // protocol buffer message. The last segment of the URL's path must represent + // the fully qualified name of the type (as in + // `path/google.protobuf.Duration`). The name should be in a canonical form + // (e.g., leading "." is not accepted). + // + // In practice, teams usually precompile into the binary all types that they + // expect it to use in the context of Any. However, for URLs which use the + // scheme `http`, `https`, or no scheme, one can optionally set up a type + // server that maps type URLs to message definitions as follows: + // + // * If no scheme is provided, `https` is assumed. + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Note: this functionality is not currently available in the official + // protobuf release, and it is not used for type URLs beginning with + // type.googleapis.com. + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/api.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/api.proto new file mode 100644 index 00000000..f37ee2fa --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/api.proto @@ -0,0 +1,210 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "google/protobuf/source_context.proto"; +import "google/protobuf/type.proto"; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "ApiProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/api;api"; + +// Api is a light-weight descriptor for an API Interface. +// +// Interfaces are also described as "protocol buffer services" in some contexts, +// such as by the "service" keyword in a .proto file, but they are different +// from API Services, which represent a concrete implementation of an interface +// as opposed to simply a description of methods and bindings. They are also +// sometimes simply referred to as "APIs" in other contexts, such as the name of +// this message itself. See https://cloud.google.com/apis/design/glossary for +// detailed terminology. +message Api { + + // The fully qualified name of this interface, including package name + // followed by the interface's simple name. + string name = 1; + + // The methods of this interface, in unspecified order. + repeated Method methods = 2; + + // Any metadata attached to the interface. + repeated Option options = 3; + + // A version string for this interface. If specified, must have the form + // `major-version.minor-version`, as in `1.10`. If the minor version is + // omitted, it defaults to zero. If the entire version field is empty, the + // major version is derived from the package name, as outlined below. If the + // field is not empty, the version in the package name will be verified to be + // consistent with what is provided here. + // + // The versioning schema uses [semantic + // versioning](http://semver.org) where the major version number + // indicates a breaking change and the minor version an additive, + // non-breaking change. Both version numbers are signals to users + // what to expect from different versions, and should be carefully + // chosen based on the product plan. + // + // The major version is also reflected in the package name of the + // interface, which must end in `v`, as in + // `google.feature.v1`. For major versions 0 and 1, the suffix can + // be omitted. Zero major versions must only be used for + // experimental, non-GA interfaces. + // + // + string version = 4; + + // Source context for the protocol buffer service represented by this + // message. + SourceContext source_context = 5; + + // Included interfaces. See [Mixin][]. + repeated Mixin mixins = 6; + + // The source syntax of the service. + Syntax syntax = 7; +} + +// Method represents a method of an API interface. +message Method { + + // The simple name of this method. + string name = 1; + + // A URL of the input message type. + string request_type_url = 2; + + // If true, the request is streamed. + bool request_streaming = 3; + + // The URL of the output message type. + string response_type_url = 4; + + // If true, the response is streamed. + bool response_streaming = 5; + + // Any metadata attached to the method. + repeated Option options = 6; + + // The source syntax of this method. + Syntax syntax = 7; +} + +// Declares an API Interface to be included in this interface. The including +// interface must redeclare all the methods from the included interface, but +// documentation and options are inherited as follows: +// +// - If after comment and whitespace stripping, the documentation +// string of the redeclared method is empty, it will be inherited +// from the original method. +// +// - Each annotation belonging to the service config (http, +// visibility) which is not set in the redeclared method will be +// inherited. +// +// - If an http annotation is inherited, the path pattern will be +// modified as follows. Any version prefix will be replaced by the +// version of the including interface plus the [root][] path if +// specified. +// +// Example of a simple mixin: +// +// package google.acl.v1; +// service AccessControl { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v1/{resource=**}:getAcl"; +// } +// } +// +// package google.storage.v2; +// service Storage { +// rpc GetAcl(GetAclRequest) returns (Acl); +// +// // Get a data record. +// rpc GetData(GetDataRequest) returns (Data) { +// option (google.api.http).get = "/v2/{resource=**}"; +// } +// } +// +// Example of a mixin configuration: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// +// The mixin construct implies that all methods in `AccessControl` are +// also declared with same name and request/response types in +// `Storage`. A documentation generator or annotation processor will +// see the effective `Storage.GetAcl` method after inherting +// documentation and annotations as follows: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/{resource=**}:getAcl"; +// } +// ... +// } +// +// Note how the version in the path pattern changed from `v1` to `v2`. +// +// If the `root` field in the mixin is specified, it should be a +// relative path under which inherited HTTP paths are placed. Example: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// root: acls +// +// This implies the following inherited HTTP annotation: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; +// } +// ... +// } +message Mixin { + // The fully qualified name of the interface which is included. + string name = 1; + + // If non-empty specifies a path under which inherited HTTP paths + // are rooted. + string root = 2; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/descriptor.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/descriptor.proto new file mode 100644 index 00000000..ed08fcbc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/descriptor.proto @@ -0,0 +1,883 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + + +syntax = "proto2"; + +package google.protobuf; +option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + optional string syntax = 12; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; + optional int32 end = 2; + + optional ExtensionRangeOptions options = 3; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + }; + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + }; + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; + + // Range of reserved numeric values. Reserved values may not be used by + // entries in the same enum. Reserved ranges may not overlap. + // + // Note that this is distinct from DescriptorProto.ReservedRange in that it + // is inclusive such that it can appropriately represent the entire int32 + // domain. + message EnumReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. + } + + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + repeated EnumReservedRange reserved_range = 4; + + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + repeated string reserved_name = 5; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default=false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default=false]; +} + + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + optional string java_outer_classname = 8; + + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default=false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + optional bool java_string_check_utf8 = 27 [default=false]; + + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default=SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default=false]; + optional bool java_generic_services = 17 [default=false]; + optional bool py_generic_services = 18 [default=false]; + optional bool php_generic_services = 42 [default=false]; + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default=false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default=false]; + + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + + + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be used + // for determining the namespace. + optional string php_metadata_namespace = 44; + + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + optional string ruby_package = 45; + + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. + // See the documentation for the "Options" section above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default=false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default=false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default=false]; + + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementions still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + optional CType ctype = 1 [default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + optional bool lazy = 5 [default=false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default=false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default=false]; + + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype +} + +message OneofOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default=false]; + + reserved 5; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default=false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default=false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default=false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = + 34 [default=IDEMPOTENCY_UNKNOWN]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + // "foo.(bar.baz).qux". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendent. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed=true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed=true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed=true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/duration.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/duration.proto new file mode 100644 index 00000000..975fce41 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/duration.proto @@ -0,0 +1,117 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/duration"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// # Examples +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// +// +message Duration { + + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/empty.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/empty.proto new file mode 100644 index 00000000..03cacd23 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/empty.proto @@ -0,0 +1,52 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/empty"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "EmptyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +// The JSON representation for `Empty` is empty JSON object `{}`. +message Empty {} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/field_mask.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/field_mask.proto new file mode 100644 index 00000000..76e09f39 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/field_mask.proto @@ -0,0 +1,252 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "FieldMaskProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask"; + +// `FieldMask` represents a set of symbolic field paths, for example: +// +// paths: "f.a" +// paths: "f.b.d" +// +// Here `f` represents a field in some root message, `a` and `b` +// fields in the message found in `f`, and `d` a field found in the +// message in `f.b`. +// +// Field masks are used to specify a subset of fields that should be +// returned by a get operation or modified by an update operation. +// Field masks also have a custom JSON encoding (see below). +// +// # Field Masks in Projections +// +// When used in the context of a projection, a response message or +// sub-message is filtered by the API to only contain those fields as +// specified in the mask. For example, if the mask in the previous +// example is applied to a response message as follows: +// +// f { +// a : 22 +// b { +// d : 1 +// x : 2 +// } +// y : 13 +// } +// z: 8 +// +// The result will not contain specific values for fields x,y and z +// (their value will be set to the default, and omitted in proto text +// output): +// +// +// f { +// a : 22 +// b { +// d : 1 +// } +// } +// +// A repeated field is not allowed except at the last position of a +// paths string. +// +// If a FieldMask object is not present in a get operation, the +// operation applies to all fields (as if a FieldMask of all fields +// had been specified). +// +// Note that a field mask does not necessarily apply to the +// top-level response message. In case of a REST get operation, the +// field mask applies directly to the response, but in case of a REST +// list operation, the mask instead applies to each individual message +// in the returned resource list. In case of a REST custom method, +// other definitions may be used. Where the mask applies will be +// clearly documented together with its declaration in the API. In +// any case, the effect on the returned resource/resources is required +// behavior for APIs. +// +// # Field Masks in Update Operations +// +// A field mask in update operations specifies which fields of the +// targeted resource are going to be updated. The API is required +// to only change the values of the fields as specified in the mask +// and leave the others untouched. If a resource is passed in to +// describe the updated values, the API ignores the values of all +// fields not covered by the mask. +// +// If a repeated field is specified for an update operation, the existing +// repeated values in the target resource will be overwritten by the new values. +// Note that a repeated field is only allowed in the last position of a `paths` +// string. +// +// If a sub-message is specified in the last position of the field mask for an +// update operation, then the existing sub-message in the target resource is +// overwritten. Given the target message: +// +// f { +// b { +// d : 1 +// x : 2 +// } +// c : 1 +// } +// +// And an update message: +// +// f { +// b { +// d : 10 +// } +// } +// +// then if the field mask is: +// +// paths: "f.b" +// +// then the result will be: +// +// f { +// b { +// d : 10 +// } +// c : 1 +// } +// +// However, if the update mask was: +// +// paths: "f.b.d" +// +// then the result would be: +// +// f { +// b { +// d : 10 +// x : 2 +// } +// c : 1 +// } +// +// In order to reset a field's value to the default, the field must +// be in the mask and set to the default value in the provided resource. +// Hence, in order to reset all fields of a resource, provide a default +// instance of the resource and set all fields in the mask, or do +// not provide a mask as described below. +// +// If a field mask is not present on update, the operation applies to +// all fields (as if a field mask of all fields has been specified). +// Note that in the presence of schema evolution, this may mean that +// fields the client does not know and has therefore not filled into +// the request will be reset to their default. If this is unwanted +// behavior, a specific service may require a client to always specify +// a field mask, producing an error if not. +// +// As with get operations, the location of the resource which +// describes the updated values in the request message depends on the +// operation kind. In any case, the effect of the field mask is +// required to be honored by the API. +// +// ## Considerations for HTTP REST +// +// The HTTP kind of an update operation which uses a field mask must +// be set to PATCH instead of PUT in order to satisfy HTTP semantics +// (PUT must only be used for full updates). +// +// # JSON Encoding of Field Masks +// +// In JSON, a field mask is encoded as a single string where paths are +// separated by a comma. Fields name in each path are converted +// to/from lower-camel naming conventions. +// +// As an example, consider the following message declarations: +// +// message Profile { +// User user = 1; +// Photo photo = 2; +// } +// message User { +// string display_name = 1; +// string address = 2; +// } +// +// In proto a field mask for `Profile` may look as such: +// +// mask { +// paths: "user.display_name" +// paths: "photo" +// } +// +// In JSON, the same mask is represented as below: +// +// { +// mask: "user.displayName,photo" +// } +// +// # Field Masks and Oneof Fields +// +// Field masks treat fields in oneofs just as regular fields. Consider the +// following message: +// +// message SampleMessage { +// oneof test_oneof { +// string name = 4; +// SubMessage sub_message = 9; +// } +// } +// +// The field mask can be: +// +// mask { +// paths: "name" +// } +// +// Or: +// +// mask { +// paths: "sub_message" +// } +// +// Note that oneof type names ("test_oneof" in this case) cannot be used in +// paths. +// +// ## Field Mask Verification +// +// The implementation of any API method which has a FieldMask type field in the +// request should verify the included field paths, and return an +// `INVALID_ARGUMENT` error if any path is duplicated or unmappable. +message FieldMask { + // The set of field mask paths. + repeated string paths = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/source_context.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/source_context.proto new file mode 100644 index 00000000..f3b2c966 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/source_context.proto @@ -0,0 +1,48 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "SourceContextProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/source_context;source_context"; + +// `SourceContext` represents information about the source of a +// protobuf element, like the file in which it is defined. +message SourceContext { + // The path-qualified name of the .proto file that contained the associated + // protobuf element. For example: `"google/protobuf/source_context.proto"`. + string file_name = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/struct.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/struct.proto new file mode 100644 index 00000000..7d7808e7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/struct.proto @@ -0,0 +1,96 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "StructProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +message Struct { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of that +// variants, absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +message Value { + // The kind of value. + oneof kind { + // Represents a null value. + NullValue null_value = 1; + // Represents a double value. + double number_value = 2; + // Represents a string value. + string string_value = 3; + // Represents a boolean value. + bool bool_value = 4; + // Represents a structured value. + Struct struct_value = 5; + // Represents a repeated `Value`. + ListValue list_value = 6; + } +} + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +enum NullValue { + // Null value. + NULL_VALUE = 0; +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +message ListValue { + // Repeated field of dynamically typed values. + repeated Value values = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/timestamp.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/timestamp.proto new file mode 100644 index 00000000..eafb3fa0 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/timestamp.proto @@ -0,0 +1,135 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/timestamp"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required. A proto3 JSON serializer should always use UTC (as indicated by +// "Z") when printing the Timestamp type and a proto3 JSON parser should be +// able to accept both UTC and other timezones (as indicated by an offset). +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) +// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one +// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// ) to obtain a formatter capable of generating timestamps in this format. +// +// +message Timestamp { + + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/type.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/type.proto new file mode 100644 index 00000000..624c15ee --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/type.proto @@ -0,0 +1,187 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "google/protobuf/any.proto"; +import "google/protobuf/source_context.proto"; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TypeProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/ptype;ptype"; + +// A protocol buffer message type. +message Type { + // The fully qualified message name. + string name = 1; + // The list of fields. + repeated Field fields = 2; + // The list of types appearing in `oneof` definitions in this type. + repeated string oneofs = 3; + // The protocol buffer options. + repeated Option options = 4; + // The source context. + SourceContext source_context = 5; + // The source syntax. + Syntax syntax = 6; +} + +// A single field of a message type. +message Field { + // Basic field types. + enum Kind { + // Field type unknown. + TYPE_UNKNOWN = 0; + // Field type double. + TYPE_DOUBLE = 1; + // Field type float. + TYPE_FLOAT = 2; + // Field type int64. + TYPE_INT64 = 3; + // Field type uint64. + TYPE_UINT64 = 4; + // Field type int32. + TYPE_INT32 = 5; + // Field type fixed64. + TYPE_FIXED64 = 6; + // Field type fixed32. + TYPE_FIXED32 = 7; + // Field type bool. + TYPE_BOOL = 8; + // Field type string. + TYPE_STRING = 9; + // Field type group. Proto2 syntax only, and deprecated. + TYPE_GROUP = 10; + // Field type message. + TYPE_MESSAGE = 11; + // Field type bytes. + TYPE_BYTES = 12; + // Field type uint32. + TYPE_UINT32 = 13; + // Field type enum. + TYPE_ENUM = 14; + // Field type sfixed32. + TYPE_SFIXED32 = 15; + // Field type sfixed64. + TYPE_SFIXED64 = 16; + // Field type sint32. + TYPE_SINT32 = 17; + // Field type sint64. + TYPE_SINT64 = 18; + }; + + // Whether a field is optional, required, or repeated. + enum Cardinality { + // For fields with unknown cardinality. + CARDINALITY_UNKNOWN = 0; + // For optional fields. + CARDINALITY_OPTIONAL = 1; + // For required fields. Proto2 syntax only. + CARDINALITY_REQUIRED = 2; + // For repeated fields. + CARDINALITY_REPEATED = 3; + }; + + // The field type. + Kind kind = 1; + // The field cardinality. + Cardinality cardinality = 2; + // The field number. + int32 number = 3; + // The field name. + string name = 4; + // The field type URL, without the scheme, for message or enumeration + // types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + string type_url = 6; + // The index of the field type in `Type.oneofs`, for message or enumeration + // types. The first type has index 1; zero means the type is not in the list. + int32 oneof_index = 7; + // Whether to use alternative packed wire representation. + bool packed = 8; + // The protocol buffer options. + repeated Option options = 9; + // The field JSON name. + string json_name = 10; + // The string value of the default value of this field. Proto2 syntax only. + string default_value = 11; +} + +// Enum type definition. +message Enum { + // Enum type name. + string name = 1; + // Enum value definitions. + repeated EnumValue enumvalue = 2; + // Protocol buffer options. + repeated Option options = 3; + // The source context. + SourceContext source_context = 4; + // The source syntax. + Syntax syntax = 5; +} + +// Enum value definition. +message EnumValue { + // Enum value name. + string name = 1; + // Enum value number. + int32 number = 2; + // Protocol buffer options. + repeated Option options = 3; +} + +// A protocol buffer option, which can be attached to a message, field, +// enumeration, etc. +message Option { + // The option's name. For protobuf built-in options (options defined in + // descriptor.proto), this is the short name. For example, `"map_entry"`. + // For custom options, it should be the fully-qualified name. For example, + // `"google.api.http"`. + string name = 1; + // The option's value packed in an Any message. If the value is a primitive, + // the corresponding wrapper type defined in google/protobuf/wrappers.proto + // should be used. If the value is an enum, it should be stored as an int32 + // value using the google.protobuf.Int32Value type. + Any value = 2; +} + +// The syntax in which a protocol buffer element is defined. +enum Syntax { + // Syntax `proto2`. + SYNTAX_PROTO2 = 0; + // Syntax `proto3`. + SYNTAX_PROTO3 = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/wrappers.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/wrappers.proto new file mode 100644 index 00000000..01947639 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/google/protobuf/wrappers.proto @@ -0,0 +1,118 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/wrappers"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +message DoubleValue { + // The double value. + double value = 1; +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +message FloatValue { + // The float value. + float value = 1; +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +message Int64Value { + // The int64 value. + int64 value = 1; +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +message UInt64Value { + // The uint64 value. + uint64 value = 1; +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +message Int32Value { + // The int32 value. + int32 value = 1; +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +message UInt32Value { + // The uint32 value. + uint32 value = 1; +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +message BoolValue { + // The bool value. + bool value = 1; +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +message StringValue { + // The string value. + string value = 1; +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +message BytesValue { + // The bytes value. + bytes value = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/hello.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/hello.proto new file mode 100644 index 00000000..273a41fb --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/hello.proto @@ -0,0 +1,21 @@ +// from https://github.com/moul/pb +// based on https://grpc.io/docs/guides/concepts.html + +syntax = "proto2"; + +package hello; + +service HelloService { + rpc SayHello(HelloRequest) returns (HelloResponse); + rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse); + rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse); + rpc BidiHello(stream HelloRequest) returns (stream HelloResponse); +} + +message HelloRequest { + optional string greeting = 1; +} + +message HelloResponse { + required string reply = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/helloworld.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/helloworld.proto new file mode 100644 index 00000000..6967b3ab --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/helloworld.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +package hello; + +service HelloService { + rpc SayHello(HelloRequest) returns (HelloResponse) { + option (google.api.http) = { + // https://github.com/googleapis/googleapis/blob/master/google/api/http.proto + // HTTP | gRPC + // -----|----- + // `GET /v1/messages/123456` | `HelloRequest(greeting: "123456")` + get: "/v1/messages/{greeting}" + additional_bindings { + get: "/v1/messages/legacy/{greeting=**}" + } + post: "/v1/messages/" + body: "*" + } + }; + + // define a gRPC method that's not implemented in grpcbin + rpc UnknownMethod(HelloRequest) returns (HelloResponse) { + option (google.api.http) = { + get: "/v1/unknown/{greeting}" + } + }; +} + +message HelloRequest { + required string greeting = 1; +} + +message HelloResponse { + required string reply = 1; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/second_level_imports.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/second_level_imports.proto new file mode 100644 index 00000000..7edce70a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/second_level_imports.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +import "direct_imports.proto"; + +service Added { + rpc Final(hello.HelloRequest) returns (hello.HelloResponse); +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.mod b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.mod new file mode 100644 index 00000000..24a43b89 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.mod @@ -0,0 +1,10 @@ +module target + +go 1.15 + +require ( + github.com/golang/protobuf v1.5.2 + google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea + google.golang.org/grpc v1.39.0 + google.golang.org/protobuf v1.27.1 +) diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.sum b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.sum new file mode 100644 index 00000000..780a5f3f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/go.sum @@ -0,0 +1,170 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed h1:OZmjad4L3H8ncOIR8rnb5MREYqG8ixi5+WbeUsquF0c= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 h1:dulLQAYQFYtG5MTplgNGHWuV2D+OBD+Z8lmDBmbLg+s= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/yuin/goldmark v1.3.5 h1:dPmz1Snjq0kmkz159iL7S6WzdahUTHnHB5M56WFVifs= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.opentelemetry.io/proto/otlp v0.7.0 h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4 h1:c2HOrn5iMezYjSlGPncknSEr/8x5LELb/ilJbXi9DEA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.1.4 h1:cVngSRcfgyZCzys3KYOpCFa+4dqX/Oub9tAq00ttGVs= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea h1:8ZyCcgugUqamxp/vZSEJw9CMy7VZlSWYJLLJPi/dSDA= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.39.0 h1:Klz8I9kdtkIN6EpHHUOMLCYhTn/2WAe5a0s1hcBkdTI= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3 h1:fvjTMHxHEw/mxHbtzPi3JCcKXQRAnQTBRo6YCJSVHKI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc h1:/hemPrYIhOhy8zYrNj+069zDB68us2sMGsfkFJO0iZs= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/grpc-target.go b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/grpc-target.go new file mode 100644 index 00000000..32995ed5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/grpc-target.go @@ -0,0 +1,63 @@ +package main + +import ( + "context" + "fmt" + "log" + "net" + "time" + + pb "target/targetservice" + + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + port = ":15010" +) + +type server struct { + pb.UnimplementedBouncerServer +} + +func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloResponse, error) { + return &pb.HelloResponse{ + Reply: fmt.Sprintf("hello %s", in.GetGreeting()), + BooleanTest: in.GetBooleanTest(), + }, nil +} + +func (s *server) BounceIt(ctx context.Context, in *pb.BallIn) (*pb.BallOut, error) { + w := in.GetWhen().AsTime() + now := in.GetNow().AsTime() + ago := now.Sub(w) + + reply := fmt.Sprintf("hello %s", in.GetMessage()) + time_message := fmt.Sprintf("%s was %v ago", w.Format(time.RFC3339), ago.Truncate(time.Second)) + + return &pb.BallOut{ + Reply: reply, + TimeMessage: time_message, + Now: timestamppb.New(now), + }, nil +} + +func (s *server) GrowTail(ctx context.Context, in *pb.Body) (*pb.Body, error) { + in.Tail.Count += 1 + + return in, nil +} + +func main() { + lis, err := net.Listen("tcp", port) + if err != nil { + log.Fatalf("failed to listen: %v", err) + } + s := grpc.NewServer() + pb.RegisterBouncerServer(s, &server{}) + log.Printf("server listening at %v", lis.Addr()) + if err := s.Serve(lis); err != nil { + log.Fatalf("failed to serve: %v", err) + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice.pb.go b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice.pb.go new file mode 100644 index 00000000..37ab067a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice.pb.go @@ -0,0 +1,607 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0-devel +// protoc v3.12.4 +// source: targetservice.proto + +package targetservice + +import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HelloRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Greeting string `protobuf:"bytes,1,opt,name=greeting,proto3" json:"greeting,omitempty"` + BooleanTest bool `protobuf:"varint,2,opt,name=boolean_test,json=booleanTest,proto3" json:"boolean_test,omitempty"` +} + +func (x *HelloRequest) Reset() { + *x = HelloRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_targetservice_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HelloRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelloRequest) ProtoMessage() {} + +func (x *HelloRequest) ProtoReflect() protoreflect.Message { + mi := &file_targetservice_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead. +func (*HelloRequest) Descriptor() ([]byte, []int) { + return file_targetservice_proto_rawDescGZIP(), []int{0} +} + +func (x *HelloRequest) GetGreeting() string { + if x != nil { + return x.Greeting + } + return "" +} + +func (x *HelloRequest) GetBooleanTest() bool { + if x != nil { + return x.BooleanTest + } + return false +} + +type HelloResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reply string `protobuf:"bytes,1,opt,name=reply,proto3" json:"reply,omitempty"` + BooleanTest bool `protobuf:"varint,2,opt,name=boolean_test,json=booleanTest,proto3" json:"boolean_test,omitempty"` +} + +func (x *HelloResponse) Reset() { + *x = HelloResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_targetservice_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HelloResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelloResponse) ProtoMessage() {} + +func (x *HelloResponse) ProtoReflect() protoreflect.Message { + mi := &file_targetservice_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead. +func (*HelloResponse) Descriptor() ([]byte, []int) { + return file_targetservice_proto_rawDescGZIP(), []int{1} +} + +func (x *HelloResponse) GetReply() string { + if x != nil { + return x.Reply + } + return "" +} + +func (x *HelloResponse) GetBooleanTest() bool { + if x != nil { + return x.BooleanTest + } + return false +} + +type BallIn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + When *timestamp.Timestamp `protobuf:"bytes,2,opt,name=when,proto3" json:"when,omitempty"` + Now *timestamp.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"` +} + +func (x *BallIn) Reset() { + *x = BallIn{} + if protoimpl.UnsafeEnabled { + mi := &file_targetservice_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BallIn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BallIn) ProtoMessage() {} + +func (x *BallIn) ProtoReflect() protoreflect.Message { + mi := &file_targetservice_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BallIn.ProtoReflect.Descriptor instead. +func (*BallIn) Descriptor() ([]byte, []int) { + return file_targetservice_proto_rawDescGZIP(), []int{2} +} + +func (x *BallIn) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *BallIn) GetWhen() *timestamp.Timestamp { + if x != nil { + return x.When + } + return nil +} + +func (x *BallIn) GetNow() *timestamp.Timestamp { + if x != nil { + return x.Now + } + return nil +} + +type BallOut struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reply string `protobuf:"bytes,1,opt,name=reply,proto3" json:"reply,omitempty"` + TimeMessage string `protobuf:"bytes,2,opt,name=time_message,json=timeMessage,proto3" json:"time_message,omitempty"` + Now *timestamp.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"` +} + +func (x *BallOut) Reset() { + *x = BallOut{} + if protoimpl.UnsafeEnabled { + mi := &file_targetservice_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BallOut) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BallOut) ProtoMessage() {} + +func (x *BallOut) ProtoReflect() protoreflect.Message { + mi := &file_targetservice_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BallOut.ProtoReflect.Descriptor instead. +func (*BallOut) Descriptor() ([]byte, []int) { + return file_targetservice_proto_rawDescGZIP(), []int{3} +} + +func (x *BallOut) GetReply() string { + if x != nil { + return x.Reply + } + return "" +} + +func (x *BallOut) GetTimeMessage() string { + if x != nil { + return x.TimeMessage + } + return "" +} + +func (x *BallOut) GetNow() *timestamp.Timestamp { + if x != nil { + return x.Now + } + return nil +} + +type Limb struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + Endings string `protobuf:"bytes,2,opt,name=endings,proto3" json:"endings,omitempty"` +} + +func (x *Limb) Reset() { + *x = Limb{} + if protoimpl.UnsafeEnabled { + mi := &file_targetservice_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Limb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Limb) ProtoMessage() {} + +func (x *Limb) ProtoReflect() protoreflect.Message { + mi := &file_targetservice_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Limb.ProtoReflect.Descriptor instead. +func (*Limb) Descriptor() ([]byte, []int) { + return file_targetservice_proto_rawDescGZIP(), []int{4} +} + +func (x *Limb) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *Limb) GetEndings() string { + if x != nil { + return x.Endings + } + return "" +} + +type Body struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Hands *Limb `protobuf:"bytes,2,opt,name=hands,proto3" json:"hands,omitempty"` + Legs *Limb `protobuf:"bytes,3,opt,name=legs,proto3" json:"legs,omitempty"` + Tail *Limb `protobuf:"bytes,4,opt,name=tail,proto3" json:"tail,omitempty"` +} + +func (x *Body) Reset() { + *x = Body{} + if protoimpl.UnsafeEnabled { + mi := &file_targetservice_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Body) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Body) ProtoMessage() {} + +func (x *Body) ProtoReflect() protoreflect.Message { + mi := &file_targetservice_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Body.ProtoReflect.Descriptor instead. +func (*Body) Descriptor() ([]byte, []int) { + return file_targetservice_proto_rawDescGZIP(), []int{5} +} + +func (x *Body) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Body) GetHands() *Limb { + if x != nil { + return x.Hands + } + return nil +} + +func (x *Body) GetLegs() *Limb { + if x != nil { + return x.Legs + } + return nil +} + +func (x *Body) GetTail() *Limb { + if x != nil { + return x.Tail + } + return nil +} + +var File_targetservice_proto protoreflect.FileDescriptor + +var file_targetservice_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x65, + 0x73, 0x74, 0x22, 0x48, 0x0a, 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, + 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x22, 0x80, 0x01, 0x0a, + 0x06, 0x42, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x77, 0x68, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x77, 0x68, 0x65, + 0x6e, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x22, + 0x70, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, + 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, + 0x77, 0x22, 0x36, 0x0a, 0x04, 0x4c, 0x69, 0x6d, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x04, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x6d, 0x62, 0x52, 0x05, 0x68, 0x61, 0x6e, 0x64, + 0x73, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x65, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x4c, 0x69, 0x6d, 0x62, 0x52, 0x04, 0x6c, 0x65, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, + 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x6d, 0x62, 0x52, 0x04, 0x74, + 0x61, 0x69, 0x6c, 0x32, 0xb3, 0x03, 0x0a, 0x07, 0x42, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x12, + 0x9f, 0x01, 0x0a, 0x08, 0x53, 0x61, 0x79, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x1b, 0x2e, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, + 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x12, + 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x67, + 0x72, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x7d, 0x3a, 0x01, 0x2a, 0x5a, 0x34, 0x12, 0x21, 0x2f, + 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, + 0x63, 0x79, 0x2f, 0x7b, 0x67, 0x72, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x3d, 0x2a, 0x2a, 0x7d, + 0x5a, 0x0f, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2f, 0x12, 0x6a, 0x0a, 0x0d, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x12, 0x1b, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x2f, 0x7b, 0x67, 0x72, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x7d, 0x12, 0x4d, 0x0a, + 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x12, 0x15, 0x2e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x6c, 0x49, 0x6e, + 0x1a, 0x16, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x42, 0x61, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, + 0x22, 0x07, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x4b, 0x0a, 0x08, + 0x47, 0x72, 0x6f, 0x77, 0x54, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x1a, 0x13, 0x2e, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x6f, + 0x64, 0x79, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, + 0x67, 0x72, 0x6f, 0x77, 0x2f, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_targetservice_proto_rawDescOnce sync.Once + file_targetservice_proto_rawDescData = file_targetservice_proto_rawDesc +) + +func file_targetservice_proto_rawDescGZIP() []byte { + file_targetservice_proto_rawDescOnce.Do(func() { + file_targetservice_proto_rawDescData = protoimpl.X.CompressGZIP(file_targetservice_proto_rawDescData) + }) + return file_targetservice_proto_rawDescData +} + +var file_targetservice_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_targetservice_proto_goTypes = []interface{}{ + (*HelloRequest)(nil), // 0: targetservice.HelloRequest + (*HelloResponse)(nil), // 1: targetservice.HelloResponse + (*BallIn)(nil), // 2: targetservice.BallIn + (*BallOut)(nil), // 3: targetservice.BallOut + (*Limb)(nil), // 4: targetservice.Limb + (*Body)(nil), // 5: targetservice.Body + (*timestamp.Timestamp)(nil), // 6: google.protobuf.Timestamp +} +var file_targetservice_proto_depIdxs = []int32{ + 6, // 0: targetservice.BallIn.when:type_name -> google.protobuf.Timestamp + 6, // 1: targetservice.BallIn.now:type_name -> google.protobuf.Timestamp + 6, // 2: targetservice.BallOut.now:type_name -> google.protobuf.Timestamp + 4, // 3: targetservice.Body.hands:type_name -> targetservice.Limb + 4, // 4: targetservice.Body.legs:type_name -> targetservice.Limb + 4, // 5: targetservice.Body.tail:type_name -> targetservice.Limb + 0, // 6: targetservice.Bouncer.SayHello:input_type -> targetservice.HelloRequest + 0, // 7: targetservice.Bouncer.UnknownMethod:input_type -> targetservice.HelloRequest + 2, // 8: targetservice.Bouncer.BounceIt:input_type -> targetservice.BallIn + 5, // 9: targetservice.Bouncer.GrowTail:input_type -> targetservice.Body + 1, // 10: targetservice.Bouncer.SayHello:output_type -> targetservice.HelloResponse + 1, // 11: targetservice.Bouncer.UnknownMethod:output_type -> targetservice.HelloResponse + 3, // 12: targetservice.Bouncer.BounceIt:output_type -> targetservice.BallOut + 5, // 13: targetservice.Bouncer.GrowTail:output_type -> targetservice.Body + 10, // [10:14] is the sub-list for method output_type + 6, // [6:10] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_targetservice_proto_init() } +func file_targetservice_proto_init() { + if File_targetservice_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_targetservice_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelloRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_targetservice_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelloResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_targetservice_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BallIn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_targetservice_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BallOut); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_targetservice_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Limb); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_targetservice_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Body); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_targetservice_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_targetservice_proto_goTypes, + DependencyIndexes: file_targetservice_proto_depIdxs, + MessageInfos: file_targetservice_proto_msgTypes, + }.Build() + File_targetservice_proto = out.File + file_targetservice_proto_rawDesc = nil + file_targetservice_proto_goTypes = nil + file_targetservice_proto_depIdxs = nil +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice_grpc.pb.go b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice_grpc.pb.go new file mode 100644 index 00000000..da488e4b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/target/targetservice/targetservice_grpc.pb.go @@ -0,0 +1,215 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.12.4 +// source: targetservice.proto + +package targetservice + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// BouncerClient is the client API for Bouncer service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type BouncerClient interface { + SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) + // define a gRPC method that's not implemented in the target + UnknownMethod(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) + BounceIt(ctx context.Context, in *BallIn, opts ...grpc.CallOption) (*BallOut, error) + GrowTail(ctx context.Context, in *Body, opts ...grpc.CallOption) (*Body, error) +} + +type bouncerClient struct { + cc grpc.ClientConnInterface +} + +func NewBouncerClient(cc grpc.ClientConnInterface) BouncerClient { + return &bouncerClient{cc} +} + +func (c *bouncerClient) SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { + out := new(HelloResponse) + err := c.cc.Invoke(ctx, "/targetservice.Bouncer/SayHello", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bouncerClient) UnknownMethod(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { + out := new(HelloResponse) + err := c.cc.Invoke(ctx, "/targetservice.Bouncer/UnknownMethod", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bouncerClient) BounceIt(ctx context.Context, in *BallIn, opts ...grpc.CallOption) (*BallOut, error) { + out := new(BallOut) + err := c.cc.Invoke(ctx, "/targetservice.Bouncer/BounceIt", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bouncerClient) GrowTail(ctx context.Context, in *Body, opts ...grpc.CallOption) (*Body, error) { + out := new(Body) + err := c.cc.Invoke(ctx, "/targetservice.Bouncer/GrowTail", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BouncerServer is the server API for Bouncer service. +// All implementations must embed UnimplementedBouncerServer +// for forward compatibility +type BouncerServer interface { + SayHello(context.Context, *HelloRequest) (*HelloResponse, error) + // define a gRPC method that's not implemented in the target + UnknownMethod(context.Context, *HelloRequest) (*HelloResponse, error) + BounceIt(context.Context, *BallIn) (*BallOut, error) + GrowTail(context.Context, *Body) (*Body, error) + mustEmbedUnimplementedBouncerServer() +} + +// UnimplementedBouncerServer must be embedded to have forward compatible implementations. +type UnimplementedBouncerServer struct { +} + +func (UnimplementedBouncerServer) SayHello(context.Context, *HelloRequest) (*HelloResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SayHello not implemented") +} +func (UnimplementedBouncerServer) UnknownMethod(context.Context, *HelloRequest) (*HelloResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnknownMethod not implemented") +} +func (UnimplementedBouncerServer) BounceIt(context.Context, *BallIn) (*BallOut, error) { + return nil, status.Errorf(codes.Unimplemented, "method BounceIt not implemented") +} +func (UnimplementedBouncerServer) GrowTail(context.Context, *Body) (*Body, error) { + return nil, status.Errorf(codes.Unimplemented, "method GrowTail not implemented") +} +func (UnimplementedBouncerServer) mustEmbedUnimplementedBouncerServer() {} + +// UnsafeBouncerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to BouncerServer will +// result in compilation errors. +type UnsafeBouncerServer interface { + mustEmbedUnimplementedBouncerServer() +} + +func RegisterBouncerServer(s grpc.ServiceRegistrar, srv BouncerServer) { + s.RegisterService(&Bouncer_ServiceDesc, srv) +} + +func _Bouncer_SayHello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BouncerServer).SayHello(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/targetservice.Bouncer/SayHello", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BouncerServer).SayHello(ctx, req.(*HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Bouncer_UnknownMethod_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BouncerServer).UnknownMethod(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/targetservice.Bouncer/UnknownMethod", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BouncerServer).UnknownMethod(ctx, req.(*HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Bouncer_BounceIt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BallIn) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BouncerServer).BounceIt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/targetservice.Bouncer/BounceIt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BouncerServer).BounceIt(ctx, req.(*BallIn)) + } + return interceptor(ctx, in, info, handler) +} + +func _Bouncer_GrowTail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Body) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BouncerServer).GrowTail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/targetservice.Bouncer/GrowTail", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BouncerServer).GrowTail(ctx, req.(*Body)) + } + return interceptor(ctx, in, info, handler) +} + +// Bouncer_ServiceDesc is the grpc.ServiceDesc for Bouncer service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Bouncer_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "targetservice.Bouncer", + HandlerType: (*BouncerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SayHello", + Handler: _Bouncer_SayHello_Handler, + }, + { + MethodName: "UnknownMethod", + Handler: _Bouncer_UnknownMethod_Handler, + }, + { + MethodName: "BounceIt", + Handler: _Bouncer_BounceIt_Handler, + }, + { + MethodName: "GrowTail", + Handler: _Bouncer_GrowTail_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "targetservice.proto", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/targetservice.proto b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/targetservice.proto new file mode 100644 index 00000000..400722e5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/grpc/targetservice.proto @@ -0,0 +1,83 @@ +syntax = "proto3"; + +package targetservice; + +import "google/api/annotations.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "./targetservice"; + +service Bouncer { + rpc SayHello(HelloRequest) returns (HelloResponse) { + option (google.api.http) = { + // https://github.com/googleapis/googleapis/blob/master/google/api/http.proto + // HTTP | gRPC + // -----|----- + // `GET /v1/messages/123456` | `HelloRequest(greeting: "123456")` + get: "/v1/messages/{greeting}" + additional_bindings { + get: "/v1/messages/legacy/{greeting=**}" + additional_bindings { + post: "/v1/messages/" + } + } + body: "*" + }; + }; + + // define a gRPC method that's not implemented in the target + rpc UnknownMethod(HelloRequest) returns (HelloResponse) { + option (google.api.http) = { + get: "/v1/unknown/{greeting}" + }; + }; + + rpc BounceIt (BallIn) returns (BallOut) { + option (google.api.http) = { + post: "/bounce" + body: "*" + }; + } + + rpc GrowTail(Body) returns (Body) { + option (google.api.http) = { + get: "/v1/grow/tail" + }; + } +} + + +message HelloRequest { + string greeting = 1; + bool boolean_test = 2; +} + +message HelloResponse { + string reply = 1; + bool boolean_test = 2; +} + + +message BallIn { + string message = 1; + google.protobuf.Timestamp when = 2; + google.protobuf.Timestamp now = 3; +} + +message BallOut { + string reply = 1; + string time_message = 2; + google.protobuf.Timestamp now = 3; +} + +message Limb { + int32 count = 1; + string endings = 2; +} + +message Body { + string name = 1; + Limb hands = 2; + Limb legs = 3; + Limb tail = 4; +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/headers.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/headers.conf new file mode 100644 index 00000000..16121d48 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/headers.conf @@ -0,0 +1,30 @@ +# 1st digit is 9 for our test instances +admin_listen = 127.0.0.1:9001 +proxy_listen = 0.0.0.0:9000, 0.0.0.0:9443 ssl + +ssl_cert = spec/fixtures/kong_spec.crt +ssl_cert_key = spec/fixtures/kong_spec.key + +admin_ssl_cert = spec/fixtures/kong_spec.crt +admin_ssl_cert_key = spec/fixtures/kong_spec.key + +database = postgres +pg_host = 127.0.0.1 +pg_port = 5432 +pg_timeout = 10000 +pg_database = kong_tests +cassandra_keyspace = kong_tests +cassandra_timeout = 10000 +anonymous_reports = off + +dns_hostsfile = spec/fixtures/hosts + +nginx_main_worker_processes = 1 +nginx_main_worker_rlimit_nofile = NONE +nginx_events_worker_connections = NONE +nginx_events_multi_accept = off + +prefix = servroot +log_level = debug + +headers = server_tokens, X-Kong-Proxy-Latency diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/hosts b/kong-versions/3.2.2.4/kong/spec/fixtures/hosts new file mode 100644 index 00000000..75721cd5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/hosts @@ -0,0 +1 @@ +127.0.0.1 localhost diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/https_server.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/https_server.lua new file mode 100644 index 00000000..403d2761 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/https_server.lua @@ -0,0 +1,284 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local https_server = {} +https_server.__index = https_server + + +local fmt = string.format +local mock_srv_tpl_file = require "spec.fixtures.mock_webserver_tpl" +local ngx = require "ngx" +local pl_dir = require "pl.dir" +local pl_file = require "pl.file" +local pl_template = require "pl.template" +local pl_path = require "pl.path" +local pl_stringx = require "pl.stringx" +local uuid = require "resty.jit-uuid" +local http_client = require "resty.http" +local cjson = require "cjson" + + +-- we need this to get random UUIDs +math.randomseed(os.time()) + + +local HTTPS_SERVER_START_MAX_RETRY = 10 + +local tmp_root = os.getenv("TMPDIR") or "/tmp" +local host_regex = [[([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(:?[0-9]+)*]] + + + +local function create_temp_dir(copy_cert_and_key) + local tmp_name = fmt("nginx_%s", uuid()) + local tmp_path = fmt("%s/%s", tmp_root, tmp_name) + local _, err = pl_path.mkdir(tmp_path) + if err then + return nil, err + end + + local _, err = pl_path.mkdir(tmp_path .. "/logs") + if err then + return nil, err + end + + if copy_cert_and_key then + local status = pl_dir.copyfile("./spec/fixtures/kong_spec.crt", tmp_path) + if not status then + return nil, "could not copy cert" + end + + status = pl_dir.copyfile("./spec/fixtures/kong_spec.key", tmp_path) + if not status then + return nil, "could not copy private key" + end + end + + return tmp_path +end + + +local function create_conf(params) + local tpl, err = pl_template.compile(mock_srv_tpl_file) + if err then + return nil, err + end + + local compiled_tpl = pl_stringx.Template(tpl:render(params, { ipairs = ipairs })) + local conf_filename = params.base_path .. "/nginx.conf" + local conf, err = io.open (conf_filename, "w") + if err then + return nil, err + end + + conf:write(compiled_tpl:substitute(params)) + conf:close() + + return conf_filename +end + + +local function count_results(logs_dir) + local results = { + ["ok"] = 0, + ["fail"] = 0, + ["total"] = 0, + ["status_ok"] = 0, + ["status_fail"] = 0, + ["status_total"] = 0 + } + local error_log_filename = logs_dir .. "/error.log" + + for line in io.lines(error_log_filename) do + local m = ngx.re.match(line, [[^.*\[COUNT\] (.+) (\d\d\d)\,.*\, host: \"(.+)\"$]]) + if m then + local location = m[1] + local status = m[2] + local host = m[3] + if host then + local host_no_port = ngx.re.match(m[3], host_regex) + if host_no_port then + host = host_no_port[2] + end + else + host = "nonamehost" + end + if results[host] == nil then + results[host] = { + ["ok"] = 0, + ["fail"] = 0, + ["status_ok"] = 0, + ["status_fail"] = 0, + } + end + + if location == "slash" then + if status == "200" then + results.ok = results.ok + 1 + results[host].ok = results[host].ok + 1 + else + results.fail = results.fail + 1 + results[host].fail = results[host].fail + 1 + end + results.total = results.ok + results.fail + elseif location == "status" then + if status == "200" then + results.status_ok = results.status_ok + 1 + results[host].status_ok = results[host].status_ok + 1 + else + results.status_fail = results.status_fail + 1 + results[host].status_fail = results[host].status_fail + 1 + end + results.status_total = results.status_ok + results.status_fail + end + end + end + + return results +end + + +function https_server.clear_access_log(self) + local client = assert(http_client.new()) + + local uri = string.format("%s://%s:%d/clear_log", self.protocol, self.host, self.http_port) + + local res = assert(client:request_uri(uri, { + method = "GET" + })) + + assert(res.body == "cleared\n") +end + + +function https_server.get_access_log(self) + local client = assert(http_client.new()) + + local uri = string.format("%s://%s:%d/log?do_not_log", self.protocol, self.host, self.http_port) + + local res = assert(client:request_uri(uri, { + method = "GET" + })) + + return assert(cjson.decode(res.body)) +end + + +function https_server.start(self) + if not pl_path.exists(tmp_root) or not pl_path.isdir(tmp_root) then + error("could not get a temporary path", 2) + end + + local err + self.base_path, err = create_temp_dir(self.protocol == "https") + if err then + error(fmt("could not create temp dir: %s", err), 2) + end + + local conf_params = { + base_path = self.base_path, + delay = self.delay, + cert_path = "./", + check_hostname = self.check_hostname, + logs_dir = self.logs_dir, + host = self.host, + hosts = self.hosts, + http_port = self.http_port, + protocol = self.protocol, + worker_num = self.worker_num, + } + + local file, err = create_conf(conf_params) + if err then + error(fmt("could not create conf: %s", err), 2) + end + + for _ = 1, HTTPS_SERVER_START_MAX_RETRY do + if os.execute("nginx -c " .. file .. " -p " .. self.base_path) then + return + end + + ngx.sleep(1) + end + + error("failed starting nginx") +end + + +function https_server.shutdown(self) + local pid_filename = self.base_path .. "/logs/nginx.pid" + local pid_file = io.open (pid_filename, "r") + if pid_file then + local pid, err = pid_file:read() + if err then + error(fmt("could not read pid file: %s", tostring(err)), 2) + end + + local kill_nginx_cmd = fmt("kill -s TERM %s", tostring(pid)) + local status = os.execute(kill_nginx_cmd) + if not status then + error(fmt("could not kill nginx test server. %s was not removed", self.base_path), 2) + end + + local pidfile_removed + local watchdog = 0 + repeat + pidfile_removed = pl_file.access_time(pid_filename) == nil + if not pidfile_removed then + ngx.sleep(0.01) + watchdog = watchdog + 1 + if(watchdog > 100) then + error("could not stop nginx", 2) + end + end + until(pidfile_removed) + end + + local count, err = count_results(self.base_path .. "/" .. self.logs_dir) + if err then + -- not a fatal error + print(fmt("could not count results: %s", tostring(err))) + end + + local _, err = pl_dir.rmtree(self.base_path) + if err then + print(fmt("could not remove %s: %s", self.base_path, tostring(err))) + end + + return count +end + + +function https_server.new(port, hostname, protocol, check_hostname, workers, delay) + local self = setmetatable({}, https_server) + local host + local hosts + + if type(hostname) == "table" then + hosts = hostname + host = "" + for _, h in ipairs(hostname) do + host = fmt("%s %s", host, h) + end + else + hosts = {hostname} + host = hostname + end + + self.check_hostname = check_hostname or false + self.delay = tonumber(delay) or 0 + self.host = host or "localhost" + self.hosts = hosts + self.http_port = port + self.logs_dir = "logs" + self.protocol = protocol or "http" + self.worker_num = workers or 2 + + return self +end + +return https_server diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/invalid-module.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/invalid-module.lua new file mode 100644 index 00000000..e40e5929 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/invalid-module.lua @@ -0,0 +1,12 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- Invalid module (syntax error) for utils.load_module_if_exists unit tests. +-- Assert that load_module_if_exists throws an error helps for development, where one could +-- be confused as to the reason why his or her plugin doesn't load. (not implemented or has an error) + +local a = "hello", diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/invalid.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/invalid.conf new file mode 100644 index 00000000..297dfe0a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/invalid.conf @@ -0,0 +1,2 @@ +pg_ssl = on +cassandra_repl_strategy = foo diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/invalid_nginx_directives.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/invalid_nginx_directives.conf new file mode 100644 index 00000000..46738cc2 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/invalid_nginx_directives.conf @@ -0,0 +1 @@ +nginx_http_random_directive = value diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.crt new file mode 100644 index 00000000..a92d31ca --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.crt @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIDzTCCArWgAwIBAgIUMmq4W4is+P02LXKinUdLoPjFuDYwDQYJKoZIhvcNAQEL +BQAwdjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM +DVNhbiBGcmFuY2lzY28xIDAeBgNVBAoMF0tvbmcgQ2x1c3RlcmluZyBUZXN0aW5n +MRgwFgYDVQQDDA9rb25nX2NsdXN0ZXJpbmcwHhcNMTkxMTEzMDU0NTA1WhcNMjkx +MTEwMDU0NTA1WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEW +MBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEgMB4GA1UECgwXS29uZyBDbHVzdGVyaW5n +IFRlc3RpbmcxGDAWBgNVBAMMD2tvbmdfY2x1c3RlcmluZzCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBALr7evXK3nLxW98lXDWUcyNRCKDzUVX5Rlm7ny0a +qVIh+qRUT7XGHFnDznl7s1gEkcxLtuMnKBV7Ic2jVTzKluZZFJD5H2plP7flpVu/ +byvpBNguERFDC2mbnlX7TSRhhWjlYTgFS2KiFP1OjYjim6vemszobDsCg2gRs0Mh +A7XwsVvPSFNfnAOPTpyLRGtN3ShEA0LKjBkjg2u67MPAfg1y8/8Tm3h/kqfOciMT +5ax2J1Ll/9/oCWX9qW6gNmnnUGNlBpcAZk3pzh6n1coRnVaysoCPYPgd9u1KoBkt +uTQJOn1Qi3OWPZzyiLGRa/X0tGx/5QQDnLr6GyDjwPcC09sCAwEAAaNTMFEwHQYD +VR0OBBYEFNNvhlhHAsJtBZejHystlPa/CoP2MB8GA1UdIwQYMBaAFNNvhlhHAsJt +BZejHystlPa/CoP2MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AHQpVBYGfFPFTRY/HvtWdXROgW358m9rUC5E4SfTJ8JLWpCB4J+hfjQ+mASTFb1V +5FS8in8S/u1MgeU65RC1/xt6Rof7Tu/Cx2SusPWo0YGyN0E9mwr2c91JsIgDO03Y +gtDiavyw3tAPVo5n2U3y5Hf46bfT5TLZ2yFnUJcKRZ0CeX6YAJA5dwG182xOn02r +kkh9T1bO72pQHi15QxnQ9Gc4Mi5gjuxX4/Xyag5KyEXnniTb7XquW+JKP36RfhnU +DGoEEUNU5UYwIzh910NM0UZubu5Umya1JVumoDqAi1lf2DHhKwDNAhmozYqE1vJJ ++e1C9/9oqok3CRyLDe+VJ7M= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.key b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.key new file mode 100644 index 00000000..67e3d9f3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6+3r1yt5y8Vvf +JVw1lHMjUQig81FV+UZZu58tGqlSIfqkVE+1xhxZw855e7NYBJHMS7bjJygVeyHN +o1U8ypbmWRSQ+R9qZT+35aVbv28r6QTYLhERQwtpm55V+00kYYVo5WE4BUtiohT9 +To2I4pur3prM6Gw7AoNoEbNDIQO18LFbz0hTX5wDj06ci0RrTd0oRANCyowZI4Nr +uuzDwH4NcvP/E5t4f5KnznIjE+WsdidS5f/f6All/aluoDZp51BjZQaXAGZN6c4e +p9XKEZ1WsrKAj2D4HfbtSqAZLbk0CTp9UItzlj2c8oixkWv19LRsf+UEA5y6+hsg +48D3AtPbAgMBAAECggEBALoFVt8RZR2VYYEu+f2UIrgP9jWp3FFcHdFIB6Qn0iwU +AfdaqbJ91da4JsJVfqciZKqK6Pg0DHzSc17SEArawiWImh1guxBuimW54jjUyxU0 +Tc2EhxZVTRVT7MI9sRFws/kXuxCws7784UTg0Y5NY/IpFHinAoXyiikO8vjl73sg +trN5mQGNTE/c8lEs7pUAFWX9zuNbmV0m1q25lHDgbkAD76/9X26lLCK1A5e2iCj3 +MME6/2GlSy3hrtSY7mCiR1GktvnK+yidXXJSkGMNCSopQARfcAlMvcCDav5ODxTz +mB+A47oxGKBTdc9gGF44dR15y5E1kRAvTtaAIzpc14ECgYEA4u9uZkZS0gEiiA5K +pOm/lnBp6bloGg9RlsOO5waE8DiGZgkwWuDwsncxUB1SvLd28MgxZzNQClncS98J +viJzdAVzauMpn3Iqrdtk9drGzEeuxibic1FKMf1URGwKnlcsDHaeKAGyRQgO2Q7l +Oy7EwtRmUKBUA3RCIqLSoiEi6NcCgYEA0u4a2abgYdyR1QMavgevqCGhuqu1Aa2Y +rbD3TmIfGVubI2YZeFSyhC/7Jx+5HofQj5cpMRgASxzKXqrCXuyb+Q+u23kHogfQ +cO1yO2GzjlA3FVHTK28t9EDPTOgHWQt3q7iS1s44VHwXDOpEQJ2onKKohvcP5WTf +LO0T2K9NOJ0CgYEAtX9nHXc6/+iWdJhxjKnCaBBqNNrrboQ37ctj/FOTeQjMPMk2 +mkhzWVjI4NlC9doJz5NdJ7u7VTv/W9L7WMz256EAaUlbXcGSbtAcVCFwg6sFFke9 +Lxuhqo+AmOSMLY1sll88KKUKrfk+3szx+z5xcZ0sY2mHJ+gQiOEOc0rrP6sCgYBi +Ksi6RU0mnoYMki5PBLq+0DA59ZH/XvCw3ayrgUUiAx1XwzvVYe3XUZFc6wm36NOr +EFnubFIuow6YMnbVwN7yclcZ8+EWivZ6qDfC5Tyw3ipUtMlH7K2BgOw5yb8ptQmU +FQnaCQ30W/BKZXkwbW+8voMalT+DroejnA7hiOyyjQKBgFLi6x6w76fTgQ7Ts8x0 +eATLOrvdvfotuLyMSsQLbljXyJznCTNrOGfYTua/Ifgkn4LpnoOkkxvVbj/Eugc7 +WeXBG+gbEi25GZUktrZWP1uc6s8aXH6rjYJP8iXnUpFHmQAPGuGiFnfB5MxlSns9 +9SKBXe7AvKGknGf7zg8WLKJZ +-----END PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_ca.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_ca.crt new file mode 100644 index 00000000..c16572e0 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_ca.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDLTCCAhWgAwIBAgIUBEI9LAuIcrg6fFLxC+Qo8SaEvfswDQYJKoZIhvcNAQEL +BQAwHjEcMBoGA1UEAwwTa29uZ19jbHVzdGVyaW5nX3BraTAeFw0yMDAyMTkxODIw +MzlaFw0zMDAyMTYxODIxMDlaMB4xHDAaBgNVBAMME2tvbmdfY2x1c3RlcmluZ19w +a2kwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqJdBsqWhTxA0k83N1 +9KvV6Z9YBee4BnYhQiOe8HgL8+d/SS/Ri35Ue+rZ5YbGu0im2KwzpsIEc5dw2/Tm +eL5QL7rGnPeEQlRNufP27lI07M5XVsQx3VeZ41lhVFBwr03XQCOdozkeimriZryd +WElslevdH4htxALDobK+HaSWl8FR8kJWlflaXuoOH0A4SQf2djo3/kmRkok5OXZz +oeActuO5tE8/EveykABNyC4HOOfHSFCrm4dzVTskEZsJKEgQGqXNG30S5SmP6keS +4npcgVTYV8DQinwY3lpwGb5f62nCFYbiu7M41e3ly+J9UP+qxmI9Qm1QG3rlVCtF +wCJbAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0G +A1UdDgQWBBRdgggWza66a1dWqUDM05ANj+BUJDAfBgNVHSMEGDAWgBRdgggWza66 +a1dWqUDM05ANj+BUJDANBgkqhkiG9w0BAQsFAAOCAQEAt9nD9jNxF0d08ioqY92R +MR4WXa7Lp0jZUavLevXl+xhSXUo/ovUARHXs9qJ8SA/8u6eADtUQNGs0D03OSpD+ +klY4FmbcfJSBSXjOgwUz4hUVnUk/MESmLOKRMfqAW9oToBqWa/sdh9B8UzXLeM7c +DPazf0K9AcaITUuwltDIFkQH80DiRZnoOk6nag/eBkK4nI42UZCvrg0ffRq4HY43 +jvb4EpIOf3i6PfkWznxwPq4UJLoj3NGhPwBzxZEpyfu5bvXFB4sSww9RMwu+w/fT ++wjt04CbQf286zWgOcGShJYBzNZ2EKQji6dC5PBpBO/iidddnxxCKnF/04ivSBME +6g== +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.crt new file mode 100644 index 00000000..b5853359 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjGgAwIBAgIUYr7mGItDJ+hOGVdVQSYBgacnKqIwDQYJKoZIhvcNAQEL +BQAwHjEcMBoGA1UEAwwTa29uZ19jbHVzdGVyaW5nX3BraTAeFw0yMDAyMTkxODI1 +NDhaFw0zMDAyMTIxNDI2MThaMCwxKjAoBgNVBAMMIWNsaWVudC5rb25nX2NsdXN0 +ZXJpbmdfcGtpLmRvbWFpbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMv1wKHhIy7RrHr/MFNYzZXyCEcdc0/b+BxFzhgdy8n3KI2rR60WtVulCGItbr35 +Dj3NxfRHTTAF1BvlbCg+A4bEOz3lfuuD1NQHRbLK+j2mH+GuHmUMV9fP9jf7SfbL +zGR1zdj+d/xQHe3oSsEW3LQ/vjnWpFmVA8LFE6xYKQQtKqPHxJ+/hnohqcW2RiOJ +EW7oAgjB/HWgwg1kgshEaAhouWWSzI2uEilxHEPtsTcSJCd1bxO0oU61jYa1dkwX ++CWhW/CDoyiCWzxr97lavyW02xRwvcDvTbpXD3sFQScp36quZ1Igr3iWGniKCaQa +hZ4/OA7TGlhbOf5Bu4RihTECAwEAAaNxMG8wDgYDVR0PAQH/BAQDAgOoMB0GA1Ud +JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQUaeNNIcyO/C7B4L0F +BQC/2ZILhiowHwYDVR0jBBgwFoAUXYIIFs2uumtXVqlAzNOQDY/gVCQwDQYJKoZI +hvcNAQELBQADggEBAKUBSjBESwRwgyhSLmZU6LWbVmezmGmkTdTmaArwN4SZL0Vm +gBJSatBN+MHuqzgnUxvgLIGmZLCMfL1rW6ERv/sOXWV6QTN+91RoGFf9zGBJ+tmH +oXs+qps9Ge8zV+W63DoNqRKOkU9TrEWYt9kAQE/y6zTCMtmwRBaSAWurlwO6FZcF +D9apy74B7RNjM3L0NF4Nj9z5O44drWPIcBpd+26sVQuUkyda2MCyLItla7OSHAWl +FgDQt1Bmx1ByL1PeogKBQ/2elwsw0hn8jqNLDu0YuNEdUz4h6oGxdPsh1zJeGT7l +u/Jqwu+kkQgZk8UIiKV7A9cGXD88W3+ABpf5IX8= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.key b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.key new file mode 100644 index 00000000..f4abb659 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_client.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAy/XAoeEjLtGsev8wU1jNlfIIRx1zT9v4HEXOGB3LyfcojatH +rRa1W6UIYi1uvfkOPc3F9EdNMAXUG+VsKD4DhsQ7PeV+64PU1AdFssr6PaYf4a4e +ZQxX18/2N/tJ9svMZHXN2P53/FAd7ehKwRbctD++OdakWZUDwsUTrFgpBC0qo8fE +n7+GeiGpxbZGI4kRbugCCMH8daDCDWSCyERoCGi5ZZLMja4SKXEcQ+2xNxIkJ3Vv +E7ShTrWNhrV2TBf4JaFb8IOjKIJbPGv3uVq/JbTbFHC9wO9NulcPewVBJynfqq5n +UiCveJYaeIoJpBqFnj84DtMaWFs5/kG7hGKFMQIDAQABAoIBAECRRPE6P5QTxoGN +hbPs+fBNFbfFp/qRDWON6aeSzy/ZsZnfrioqdTFU9ml2Loevb4W7Pb6OT+4y+in2 +oB3BPAaO2p5Gp75RFrAkuTjXrw6TJ6afI3ojxS9J441nXMvnSoZHEOpv7HYQutjU +381uumHJiCPxQkglt3ISR58YratnPFKKO21p9JRXBVDGefLhR9cFjhvRixsxF+DU +y9l0X6hBq/VXtozzLMYpsUwLtzc6+FWIz+pLv5Y+JGtONx5IdaTW5z/VFLMNZHdP +9cwwYKdR9dm5c37a1HKuHOZvBVAWRwjaC+uaF8IoyrGteAA9HMjCvR+jz9VST+nG +CVGaN1ECgYEA3+OCeOcdWA2dolWlHPcSkR0BEpHmKlxSYjShJVa1JvW9C91rXw/E +5jeCtTBmMOT/6OT/SEtaSHtMfuWSknig8OfHO0zO1N5t4+xgmp47vWUFR2fHK5PF +GoqAYYPmYOZdSAsqE+9Rm7gzjDhriCRl6vvr0gV1bbn3BtyrCJo3XR0CgYEA6TaF +qDhAoNQlC/GuC0JcrcxZzH2WecdSjncEPFv5xsvzc7K6Y1ptRx+9ntC8x0VyLHJJ +RL2fPOC3HmGIVko/JS9b8kjciymwRzsQBsq3mDHzloqBAnJI3w1nzibAKfc9Azsp +ZsZsLK+PWTkx5QR/cl+Avw8K7z+Wil4pfxUdUCUCgYEAnyXgRwUybLcxCIYM2qwe +vJx7eLHRhOcfgMOckSgzmUAxY8+/VVGmS2fGN/nximweJXUyqjc2NDPBSqryJ8Ar +11NK4jJVDCgYwV3zxbUZDiZTPFDe2XEvORCe9bKG/vaB9IZLIOSLhD/KFLC+b4ZA +FGuDVEWhFaCNookV4wWMuVkCgYAQ+VjtD3sUuZwgrGyAgUoBlFgM3C8xmeJWYC88 +vW0GnR2RFDcguBowDQ1eG89BqbpPpdnTWQHYCnsJiQvFTA4ghLvqfIcg0d30sUXP +WL3YI/qYwGf3Z54KLg2aIZPm+gnEzG+M/XAuKHEEi3coNhWYm37haRTgqP4qAASB +LWY+yQKBgEN/zl6yTDg1iCGt/QlZWTdeQEWvCSrdaGjqvsFXlWoNsnf20zXiS/rU +NATB1+T74kKIohYiagcgYt4H4P8wXX7rEFhCi+aYtz5ZRmjrD0hrbJkqmR+VPBJP +SIHDqpgwRx0gXFoCV3JWl9dvHWUFl/FgRD55oCe1C8lxqZNpt2Fu +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.crt new file mode 100644 index 00000000..7abc701e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFOTCCAyGgAwIBAgIUGIGEUNv1gzJpSkoCZbKcsjmuQxcwDQYJKoZIhvcNAQEL +BQAwLDEqMCgGA1UEAwwhc2VydmVyLmtvbmdfY2x1c3RlcmluZ19wa2kuZG9tYWlu +MB4XDTIwMTIwODA5NDU1M1oXDTMwMTIwNjA5NDU1M1owLDEqMCgGA1UEAwwhc2Vy +dmVyLmtvbmdfY2x1c3RlcmluZ19wa2kuZG9tYWluMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA3SvUdI94oqmGXkv3YBws8wxITBJ+f/ri+dTBlKSaw0/b +2MRaP8zkhGywuQd9owVv0q9XfTUJChbmzAKwS4oC/Kk0oJ6/xD5Xv/6KtRHCydtG +Yn3o/INzE6gJJ8f+pAotvTZfLRs7O4nfJHYpKlnpJsUG31RR66yiVOd09c5dQyQg +CjcLH35Jv4vIIyQN6QXVZAf3QVYgF193bqoFEaL5OZH4i4Y5PMevaCOLl7f4NXy4 +XEHbvRtBUuN4EISai7Riyx00M60a/ocmWzJr3PtBFYu4t5hIiReNuoQAJxAmqvLb +RXh5ti3LOgNel1kjlcKXaDWGMeIAj4T5IgRikMPosEhdUU7CIlTcGJFj03e9uUNY +VW7SfTopDLdbFrblYqrqPO7djQ7XI5iHGyP3EJHkKWpbT6YGCRd5+bWp4qwRHHjZ +xyxK5lx3tVbhd6ZXqlj/+7fiEn5W6fVGUyRjb+SPavpihgal2G/yeJrY4JYeHTSj +nWQ0P5dIGHVBgDWzcUpSJmTmuayQ/+lU2+zc2UWfhFqmgyArR4QlzzNMDU0362qb +amxN+VOsHMJ2XJWETB44IfgW3qv5oVoOuZdl6883TmE4oSzWzyG/HKBvujBMOSIQ +u5PPDXQrweuoWx7mHhIaSNy4/v4BtpZ7Y3IUxbWXA5W7Voe16E9v+Aos3lx6Si8C +AwEAAaNTMFEwHQYDVR0OBBYEFA2pU/tVp1+iXxS1pAQJSVY807rfMB8GA1UdIwQY +MBaAFA2pU/tVp1+iXxS1pAQJSVY807rfMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggIBAE9wnFNn/D6qB9CYfT6AU7+Xza6i+a1pKOkPheU9LSRWUKNh +Qz0+N2qdV3mozBC1kjT3XW5LRxE8NpQjGG6oZ+Caa6VR9RQZkLihYxqGtgociVT1 +N34tWzy6ck1UAsMpy9QwvFUE0udgpR1NSbYjFElMQmOM5Pr5phr4r0+mDljX2ro3 +I5m5NZ/W9jaICrxqS3GnP91a5V2TcLmwSZGiC2TOqJLhi0zc+Jfkscr6hik3P2Bc +kzSbM4A+6lo5nE7221/CRFg/hQXx8dxfySCl3eHQYjuBSQAsYyVSO5DFmaX+KJE6 +4Wg5sMRcmMDRa/sQhDJiBH1+RQMtJRUPDwds0y6WIK4pfONJjiCeE0/3PLpem5qE +/h3AJjoYWnJ0hTkjnR26OW7bWrwuo/RVMQq3An78TsQWyr1SDazPpjfFYwxZk722 +sgYkIuCZ3I+rW+cAw9VvrT3gh7QFpEb3Yuh5ehr6srl/jD2p/WeVBYQwHJKpgxGF +13t3DXbzAVdNDy/M1gJxfHyDTe3kxs03BckMz+fd19EQhlVd4ZI+14xm2kr+ULKg ++pDTdg5TpcgqcfpG55sHWm5G2059fkEk/z/8ABtB4v4fcKA7ZmrUcDlpSQd/ejjt +obN+e+Dq0Rm5Rb5oI/wHHd6JLW1TqLEH6w6ZyNsOjofiJWSSJTC75eH4HJgl +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.key b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.key new file mode 100644 index 00000000..2add6a0e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_clustering_server.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +VzlV/SRWxLEaQCujgP/IFVniA+r/yw0= +-----END PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.crt new file mode 100644 index 00000000..10a2427c --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICIzCCAYSgAwIBAgIUUMiD8e3GDZ+vs7XBmdXzMxARUrgwCgYIKoZIzj0EAwIw +IzENMAsGA1UECgwES29uZzESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIyMTIzMDA0 +MDcwOFoXDTQyMTIyNTA0MDcwOFowIzENMAsGA1UECgwES29uZzESMBAGA1UEAwwJ +bG9jYWxob3N0MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBxSldGzzRAtjt825q +Uwl+BNgxecswnvbQFLiUDqJjVjCfs/B53xQfV97ddxsRymES2viC2kjAm1Ete4TH +CQmVltUBItHzI77HB+UsfqHoUdjl3lC/HC1yDSPBp5wd9eRRSagdl0eiJwnB9lof +MEnmOQLg177trb/YPz1vcCCZj7ikhzCjUzBRMB0GA1UdDgQWBBSUI6+CKqKFz/Te +ZJppMNl/Dh6d9DAfBgNVHSMEGDAWgBSUI6+CKqKFz/TeZJppMNl/Dh6d9DAPBgNV +HRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA4GMADCBiAJCAZL3qX21MnGtQcl9yOMr +hNR54VrDKgqLR+ChU7/358n/sK/sVOjmrwVyQ52oUyqaQlfBQS2EufQVO/01+2sx +86gzAkIB/4Ilf4RluN2/gqHYlVEDRZzsqbwVJBHLeNKsZBSJkhNNpJBwa2Ndl9/i +u2tDk0KZFSAvRnqRAo9iDBUkIUI1ahA= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.key b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.key new file mode 100644 index 00000000..894bc719 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/kong_spec.key @@ -0,0 +1,7 @@ +-----BEGIN EC PRIVATE KEY----- +MIHcAgEBBEIARPKnAYLB54bxBvkDfqV4NfZ+Mxl79rlaYRB6vbWVwFpy+E2pSZBR +doCy1tHAB/uPo+QJyjIK82Zwa3Kq0i1D2QigBwYFK4EEACOhgYkDgYYABAHFKV0b +PNEC2O3zbmpTCX4E2DF5yzCe9tAUuJQOomNWMJ+z8HnfFB9X3t13GxHKYRLa+ILa +SMCbUS17hMcJCZWW1QEi0fMjvscH5Sx+oehR2OXeUL8cLXINI8GnnB315FFJqB2X +R6InCcH2Wh8wSeY5AuDXvu2tv9g/PW9wIJmPuKSHMA== +-----END EC PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/000_base.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/000_base.lua new file mode 100644 index 00000000..0da77c45 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/000_base.lua @@ -0,0 +1,42 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + CREATE TABLE IF NOT EXISTS "cluster_events" ( + "id" UUID PRIMARY KEY, + "node_id" UUID NOT NULL, + "at" TIMESTAMP WITH TIME ZONE NOT NULL, + "nbf" TIMESTAMP WITH TIME ZONE, + "expire_at" TIMESTAMP WITH TIME ZONE NOT NULL, + "channel" TEXT, + "data" TEXT + ); + CREATE TABLE IF NOT EXISTS "consumers" ( + "id" UUID PRIMARY KEY + ); + ]] + }, + cassandra = { + up = [[ + CREATE TABLE IF NOT EXISTS cluster_events( + channel text, + at timestamp, + node_id uuid, + id uuid, + data text, + nbf timestamp, + PRIMARY KEY (channel, at, node_id, id) + ) WITH default_time_to_live = 86400; + CREATE TABLE IF NOT EXISTS consumers ( + id uuid, + PRIMARY KEY (id) + ); + ]], + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/001_14_to_15.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/001_14_to_15.lua new file mode 100644 index 00000000..a2925661 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/001_14_to_15.lua @@ -0,0 +1,17 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + ]], + }, + cassandra = { + up = [[ + ]], + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/init.lua new file mode 100644 index 00000000..5c4163d3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/db/migrations/core/init.lua @@ -0,0 +1,10 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + "000_base", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/000_base.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/000_base.lua new file mode 100644 index 00000000..ad4e633b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/000_base.lua @@ -0,0 +1,33 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ + CREATE TABLE IF NOT EXISTS workspaces ( + id UUID PRIMARY KEY, + name TEXT UNIQUE, + comment TEXT, + created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT timezone('utc'::text, ('now'::text)::timestamp(0) with time zone), + meta JSON DEFAULT '{}'::json, + config JSON DEFAULT '{"portal":false}'::json + ); + ]] + }, + cassandra = { + up = [[ + CREATE TABLE IF NOT EXISTS workspaces( + id uuid PRIMARY KEY, + name text, + comment text, + created_at timestamp, + meta text, + config text + ); + ]], + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/006_1301_to_1500.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/006_1301_to_1500.lua new file mode 100644 index 00000000..1824b4e1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/006_1301_to_1500.lua @@ -0,0 +1,15 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + postgres = { + up = [[ ]], + }, + cassandra = { + up = [[ ]], + } +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/init.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/init.lua new file mode 100644 index 00000000..3edb511d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/migrations/kong/enterprise_edition/db/migrations/enterprise/init.lua @@ -0,0 +1,11 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + "000_base", + "006_1301_to_1500", +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mock_upstream.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/mock_upstream.lua new file mode 100644 index 00000000..03f89a3e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mock_upstream.lua @@ -0,0 +1,426 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local utils = require "kong.tools.utils" +local cjson_safe = require "cjson.safe" +local cjson = require "cjson" +local ws_server = require "resty.websocket.server" +local pl_stringx = require "pl.stringx" +local pl_file = require "pl.file" + + +local kong = { + table = require("kong.pdk.table").new() +} + +local ocsp_status = "good" + +local function parse_multipart_form_params(body, content_type) + if not content_type then + return nil, 'missing content-type' + end + + local m, err = ngx.re.match(content_type, "boundary=(.+)", "oj") + if not m or not m[1] or err then + return nil, "could not find boundary in content type " .. content_type .. + "error: " .. tostring(err) + end + + local boundary = m[1] + local parts_split = utils.split(body, '--' .. boundary) + local params = {} + local part, from, to, part_value, part_name, part_headers, first_header + for i = 1, #parts_split do + part = pl_stringx.strip(parts_split[i]) + + if part ~= '' and part ~= '--' then + from, to, err = ngx.re.find(part, '^\\r$', 'ojm') + if err or (not from and not to) then + return nil, nil, "could not find part body. Error: " .. tostring(err) + end + + part_value = part:sub(to + 2, #part) -- +2: trim leading line jump + part_headers = part:sub(1, from - 1) + first_header = utils.split(part_headers, '\\n')[1] + if pl_stringx.startswith(first_header:lower(), "content-disposition") then + local m, err = ngx.re.match(first_header, 'name="(.*?)"', "oj") + + if err or not m or not m[1] then + return nil, "could not parse part name. Error: " .. tostring(err) + end + + part_name = m[1] + else + return nil, "could not find part name in: " .. part_headers + end + + params[part_name] = part_value + end + end + + return params +end + + +local function send_text_response(text, content_type, headers) + headers = headers or {} + content_type = content_type or "text/plain" + + text = ngx.req.get_method() == "HEAD" and "" or tostring(text) + + ngx.header["X-Powered-By"] = "mock_upstream" + ngx.header["Server"] = "mock-upstream/1.0.0" + ngx.header["Content-Length"] = #text + 1 + ngx.header["Content-Type"] = content_type + + for header,value in pairs(headers) do + if type(value) == "table" then + ngx.header[header] = table.concat(value, ", ") + else + ngx.header[header] = value + end + end + + return ngx.say(text) +end + + +local function filter_access_by_method(method) + if ngx.req.get_method() ~= method then + ngx.status = ngx.HTTP_NOT_ALLOWED + send_text_response("Method not allowed for the requested URL") + return ngx.exit(ngx.OK) + end +end + + +local function find_http_credentials(authorization_header) + if not authorization_header then + return + end + + local iterator, iter_err = ngx.re.gmatch(authorization_header, + "\\s*[Bb]asic\\s*(.+)") + if not iterator then + ngx.log(ngx.ERR, iter_err) + return + end + + local m, err = iterator() + + if err then + ngx.log(ngx.ERR, err) + return + end + + if m and m[1] then + local decoded_basic = ngx.decode_base64(m[1]) + + if decoded_basic then + local user_pass = utils.split(decoded_basic, ":") + return user_pass[1], user_pass[2] + end + end +end + + +local function filter_access_by_basic_auth(expected_username, + expected_password) + local headers = ngx.req.get_headers() + + local username, password = + find_http_credentials(headers["proxy-authorization"]) + + if not username then + username, password = + find_http_credentials(headers["authorization"]) + end + + if username ~= expected_username or password ~= expected_password then + ngx.header["WWW-Authenticate"] = "mock_upstream" + ngx.header["X-Powered-By"] = "mock_upstream" + return ngx.exit(ngx.HTTP_UNAUTHORIZED) + end +end + + +local function get_ngx_vars() + local var = ngx.var + return { + uri = var.uri, + host = var.host, + hostname = var.hostname, + https = var.https, + scheme = var.scheme, + is_args = var.is_args, + server_addr = var.server_addr, + server_port = var.server_port, + server_name = var.server_name, + server_protocol = var.server_protocol, + remote_addr = var.remote_addr, + remote_port = var.remote_port, + realip_remote_addr = var.realip_remote_addr, + realip_remote_port = var.realip_remote_port, + binary_remote_addr = var.binary_remote_addr, + request = var.request, + request_uri = var.request_uri, + request_time = var.request_time, + request_length = var.request_length, + request_method = var.request_method, + bytes_received = var.bytes_received, + ssl_server_name = var.ssl_server_name or "no SNI", + } +end + + +local function get_body_data() + local req = ngx.req + + req.read_body() + local data = req.get_body_data() + if data then + return data + end + + local file_path = req.get_body_file() + if file_path then + local file = io.open(file_path, "r") + data = file:read("*all") + file:close() + return data + end + + return "" +end + +local function get_post_data(content_type) + local text = get_body_data() + local kind = "unknown" + local params = cjson_safe.null + local err + + if type(content_type) == "string" then + if content_type:find("application/x-www-form-urlencoded", nil, true) then + + kind = "form" + params, err = ngx.req.get_post_args() + + elseif content_type:find("multipart/form-data", nil, true) then + kind = "multipart-form" + params, err = parse_multipart_form_params(text, content_type) + + elseif content_type:find("application/json", nil, true) then + kind = "json" + params, err = cjson_safe.decode(text) + end + + params = params or cjson_safe.null + + if err then + kind = kind .. " (error)" + err = tostring(err) + end + end + + return { text = text, kind = kind, params = params, error = err } +end + + +local function get_default_json_response() + local headers = ngx.req.get_headers(0) + local vars = get_ngx_vars() + + return { + headers = headers, + post_data = get_post_data(headers["Content-Type"]), + url = ("%s://%s:%s%s"):format(vars.scheme, vars.host, + vars.server_port, vars.request_uri), + uri_args = ngx.req.get_uri_args(), + vars = vars, + } +end + + +local function send_default_json_response(extra_fields, response_headers) + local tbl = kong.table.merge(get_default_json_response(), extra_fields) + return send_text_response(cjson.encode(tbl), + "application/json", response_headers) +end + + +local function serve_web_sockets() + local wb, err = ws_server:new({ + timeout = 5000, + max_payload_len = 65535, + }) + + if not wb then + ngx.log(ngx.ERR, "failed to open websocket: ", err) + return ngx.exit(444) + end + + while true do + local data, typ, err = wb:recv_frame() + if wb.fatal then + ngx.log(ngx.ERR, "failed to receive frame: ", err) + return ngx.exit(444) + end + + if data then + if typ == "close" then + break + end + + if typ == "ping" then + local bytes, err = wb:send_pong(data) + if not bytes then + ngx.log(ngx.ERR, "failed to send pong: ", err) + return ngx.exit(444) + end + + elseif typ == "pong" then + ngx.log(ngx.INFO, "client ponged") + + elseif typ == "text" then + local bytes, err = wb:send_text(data) + if not bytes then + ngx.log(ngx.ERR, "failed to send text: ", err) + return ngx.exit(444) + end + end + + else + local bytes, err = wb:send_ping() + if not bytes then + ngx.log(ngx.ERR, "failed to send ping: ", err) + return ngx.exit(444) + end + end + end + + wb:send_close() +end + + +local function get_logger() + local logger = ngx.shared.kong_mock_upstream_loggers + if not logger then + error("missing 'kong_mock_upstream_loggers' shm declaration") + end + + return logger +end + + +local function store_log(logname) + ngx.req.read_body() + + local raw_entries = ngx.req.get_body_data() + local logger = get_logger() + + local entries = cjson.decode(raw_entries) + if #entries == 0 then + -- backwards-compatibility for `conf.queue_size == 1` + entries = { entries } + end + + local log_req_headers = ngx.req.get_headers() + local log_req_params = ngx.req.get_uri_args() + + for i = 1, #entries do + local store = { + entry = entries[i], + log_req_headers = log_req_headers, + log_req_params = log_req_params, + } + + assert(logger:rpush(logname, cjson.encode(store))) + assert(logger:incr(logname .. "|count", 1, 0)) + end + + ngx.status = 200 +end + + +local function retrieve_log(logname) + local logger = get_logger() + local len = logger:llen(logname) + local entries = {} + + for i = 1, len do + local encoded_stored = assert(logger:lpop(logname)) + local stored = cjson.decode(encoded_stored) + entries[i] = stored.entry + entries[i].log_req_headers = stored.log_req_headers + entries[i].log_req_params = stored.log_req_params + assert(logger:rpush(logname, encoded_stored)) + end + + local count, err = logger:get(logname .. "|count") + if err then + error(err) + end + + ngx.status = 200 + ngx.say(cjson.encode({ + entries = entries, + count = count, + })) +end + + +local function count_log(logname) + local logger = get_logger() + local count = assert(logger:get(logname .. "|count")) + + ngx.status = 200 + ngx.say(count) +end + + +local function reset_log(logname) + local logger = get_logger() + logger:delete(logname) + logger:delete(logname .. "|count") +end + + +local function handle_ocsp() + if ocsp_status == "good" then + ngx.print(pl_file.read(ngx.config.prefix() .. "/../spec/fixtures/ocsp_certs/resp-good.dat")) + + elseif ocsp_status == "revoked" then + ngx.print(pl_file.read(ngx.config.prefix() .. "/../spec/fixtures/ocsp_certs/resp-revoked.dat")) + + elseif ocsp_status == "error" then + ngx.exit(500) + + else + assert("unknown ocsp_status:" ..ocsp_status) + end +end + + +local function set_ocsp(status) + ocsp_status = status +end + + +return { + get_default_json_response = get_default_json_response, + filter_access_by_method = filter_access_by_method, + filter_access_by_basic_auth = filter_access_by_basic_auth, + send_text_response = send_text_response, + send_default_json_response = send_default_json_response, + serve_web_sockets = serve_web_sockets, + store_log = store_log, + retrieve_log = retrieve_log, + count_log = count_log, + reset_log = reset_log, + handle_ocsp = handle_ocsp, + set_ocsp = set_ocsp, +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mock_webserver_tpl.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/mock_webserver_tpl.lua new file mode 100644 index 00000000..cba02b68 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mock_webserver_tpl.lua @@ -0,0 +1,261 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return [[daemon on; +worker_processes ${worker_num}; +error_log ${base_path}/${logs_dir}/error.log info; +pid ${base_path}/${logs_dir}/nginx.pid; +worker_rlimit_nofile 8192; + +events { + worker_connections 1024; +} + +http { + lua_shared_dict server_values 512k; + lua_shared_dict logs 512k; + lua_shared_dict log_locks 512k; + + init_worker_by_lua_block { + local resty_lock = require "resty.lock" + _G.log_locks = resty_lock:new("log_locks") + + _G.log_record = function(ngx_req) + local cjson = require("cjson") + local args, err = ngx_req.get_uri_args() + local key = args['key'] or "default" + local log_locks = _G.log_locks + + if err then + return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) + end + + log_locks:lock("lock") + + local logs = ngx.shared.logs:get(key) or "[]" + + if not args['do_not_log'] then + local log = { + time = ngx.now(), + -- path = "/log", + method = ngx_req.get_method(), + headers = ngx_req.get_headers(), + } + + logs = cjson.decode(logs) + table.insert(logs, log) + logs = cjson.encode(logs) + ngx.shared.logs:set(key, logs) + end + + log_locks:unlock() + + return logs + end + + local server_values = ngx.shared.server_values +# for _, prefix in ipairs(hosts) do + if server_values:get("$(prefix)_healthy") == nil then + server_values:set("$(prefix)_healthy", true) + ngx.log(ngx.INFO, "Creating entries for $(prefix)_healthy") + end + + if server_values:get("$(prefix)_timeout") == nil then + server_values:set("$(prefix)_timeout", false) + ngx.log(ngx.INFO, "Creating entries for $(prefix)_timeout") + end +# end + } + + default_type application/json; + access_log ${base_path}/${logs_dir}/access.log; + sendfile on; + tcp_nopush on; + server_names_hash_bucket_size 128; + + server { +# if protocol ~= 'https' then + listen 127.0.0.1:${http_port}; + listen [::1]:${http_port}; +# else + listen 127.0.0.1:${http_port} ssl http2; + listen [::1]:${http_port} ssl http2; + ssl_certificate ${cert_path}/kong_spec.crt; + ssl_certificate_key ${cert_path}/kong_spec.key; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers HIGH:!aNULL:!MD5; +#end +# if check_hostname then + server_name ${host}; +#end + + location = /clear_log { + content_by_lua_block { + local log_locks = _G.log_locks + log_locks:lock("lock") + ngx.shared.logs:flush_all() + log_locks:unlock() + ngx.say("cleared") + } + } + + location = /log { + content_by_lua_block { + ngx.say(_G.log_record(ngx.req)) + } + } + + location = /always_200 { + content_by_lua_block { + ngx.say("ok") + return ngx.exit(ngx.HTTP_OK) + } + } + + location = /healthy { + access_by_lua_block { + local host = ngx.req.get_headers()["host"] or "localhost" + local host_no_port = ngx.re.match(host, [=[([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(:?[0-9]+)*]=]) + if host_no_port == nil then + return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) + else + host = host_no_port[2] + if host == "[0000:0000:0000:0000:0000:0000:0000:0001]" then + host = "[::1]" + end + end + ngx.shared.server_values:set(host .. "_healthy", true) + ngx.shared.server_values:set(host .. "_timeout", false) + ngx.log(ngx.INFO, "Host ", host, " is now healthy") + } + + content_by_lua_block { + ngx.say("server ", ngx.var.server_name, " is now healthy") + return ngx.exit(ngx.HTTP_OK) + } + } + + location = /unhealthy { + access_by_lua_block { + local host = ngx.req.get_headers()["host"] or "localhost" + local host_no_port = ngx.re.match(host, [=[([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(:?[0-9]+)*]=]) + if host_no_port == nil then + return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) + else + host = host_no_port[2] + if host == "[0000:0000:0000:0000:0000:0000:0000:0001]" then + host = "[::1]" + end + end + ngx.shared.server_values:set(host .. "_healthy", false) + ngx.log(ngx.INFO, "Host ", host, " is now unhealthy") + } + + content_by_lua_block { + ngx.say("server ", ngx.var.server_name, " is now unhealthy") + return ngx.exit(ngx.HTTP_OK) + } + } + + location = /timeout { + access_by_lua_block { + local host = ngx.req.get_headers()["host"] or "localhost" + local host_no_port = ngx.re.match(host, [=[([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(:?[0-9]+)*]=]) + if host_no_port == nil then + return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) + else + host = host_no_port[2] + if host == "[0000:0000:0000:0000:0000:0000:0000:0001]" then + host = "[::1]" + end + end + ngx.shared.server_values:set(host .. "_timeout", true) + ngx.log(ngx.INFO, "Host ", host, " is timeouting now") + } + + content_by_lua_block { + ngx.say("server ", ngx.var.server_name, " is timeouting now") + return ngx.exit(ngx.HTTP_OK) + } + } + + location = /status { + access_by_lua_block { + _G.log_record(ngx.req) + local i = require 'inspect' + ngx.log(ngx.ERR, "INSPECT status (headers): ", i(ngx.req.get_headers())) + local host = ngx.req.get_headers()["host"] or "localhost" + local host_no_port = ngx.re.match(host, [=[([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(:?[0-9]+)*]=]) + if host_no_port == nil then + return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) + else + host = host_no_port[2] + if host == "[0000:0000:0000:0000:0000:0000:0000:0001]" then + host = "[::1]" + end + end + local server_values = ngx.shared.server_values + + local status = server_values:get(host .. "_healthy") and + ngx.HTTP_OK or ngx.HTTP_INTERNAL_SERVER_ERROR + + if server_values:get(host .. "_timeout") == true then + ngx.log(ngx.INFO, "Host ", host, " timeouting...") + ngx.log(ngx.INFO, "[COUNT] status 599") + ngx.sleep(4) + else + ngx.log(ngx.INFO, "[COUNT] status ", status) + end + + ngx.exit(status) + } + } + + location / { + access_by_lua_block { + _G.log_record(ngx.req) + local cjson = require("cjson") + local server_values = ngx.shared.server_values + local host = ngx.req.get_headers()["host"] or "localhost" + local host_no_port = ngx.re.match(host, [=[([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(:?[0-9]+)*]=]) + if host_no_port == nil then + return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) + else + host = host_no_port[2] + if host == "[0000:0000:0000:0000:0000:0000:0000:0001]" then + host = "[::1]" + end + end + local status + + local status = server_values:get(host .. "_healthy") and + ngx.HTTP_OK or ngx.HTTP_INTERNAL_SERVER_ERROR + + if server_values:get(host .. "_timeout") == true then + -- not this status actually, but it is used to count failures + ngx.log(ngx.INFO, "[COUNT] slash 599") + ngx.sleep(4) + else + ngx.log(ngx.INFO, "[COUNT] slash ", status) + end + + ngx.sleep(${delay}/1000) + ngx.exit(status) + } + } + } +# if check_hostname then + server { + listen 127.0.0.1:${http_port} default_server; + listen [::1]:${http_port} default_server; + server_name _; + return 400; + } +# end + +} +]] diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mocker.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/mocker.lua new file mode 100644 index 00000000..2080c57d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mocker.lua @@ -0,0 +1,68 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local mocker = {} + +-- Setup mocks, which are undone in a finally() block +-- @param finally The `finally` function, that needs to be passed in because +-- Busted generates it dynamically. +-- @param args A table containing three optional fields: +-- * modules: an array of pairs (module name, module content). +-- This allows modules to be declared in order. +-- * kong: a mock of the kong global (which will fallback to the default one +-- via metatable) +-- * ngx: a mock of the ngx global (which will fallback to the default one +-- via metatable) +function mocker.setup(finally, args) + + local mocked_modules = {} + local _ngx = _G.ngx + local _kong = _G.kong + + local function mock_module(name, tbl) + local old_module = require(name) + mocked_modules[name] = true + package.loaded[name] = setmetatable(tbl or {}, { + __index = old_module, + }) + end + + if args.ngx then + _G.ngx = setmetatable(args.ngx, { __index = _ngx }) + end + + if args.kong then + _G.kong = setmetatable(args.kong, { __index = _kong }) + end + + if args.modules then + for _, pair in ipairs(args.modules) do + mock_module(pair[1], pair[2]) + end + end + + finally(function() + _G.ngx = _ngx + _G.kong = _kong + + for k in pairs(mocked_modules) do + package.loaded[k] = nil + end + end) +end + + +function mocker.table_where_every_key_returns(value) + return setmetatable({}, { + __index = function() + return value + end + }) +end + + +return mocker diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-dns/resty/dns/resolver.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-dns/resty/dns/resolver.lua new file mode 100644 index 00000000..048fc1b1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-dns/resty/dns/resolver.lua @@ -0,0 +1,121 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- Mock for the underlying 'resty.dns.resolver' library +-- (so NOT the Kong dns client) + +-- this file should be in the Kong working directory (prefix) +local MOCK_RECORD_FILENAME = "dns_mock_records.json" + + +local LOG_PREFIX = "[mock_dns_resolver] " +local cjson = require "cjson.safe" + +-- first thing is to get the original (non-mock) resolver +local resolver +do + local function get_source_path() + -- find script path remember to strip off the starting @ + -- should be like: 'spec/fixtures/mocks/lua-resty-dns/resty/dns/resolver.lua' + return debug.getinfo(2, "S").source:sub(2) --only works in a function, hence the wrapper + end + local path = get_source_path() + + -- module part is like: 'resty.dns.resolver' + local module_part = select(1,...) + + -- create the packagepath part, like: 'spec/fixtures/mocks/lua-resty-dns/?.lua' + path = path:gsub(module_part:gsub("%.", "/"), "?") .. ";" -- prefix path, so semi-colon at end + + -- grab current paths + local old_paths = package.path + + -- drop the element that picked this mock from the path + local s, e = old_paths:find(path, 1, true) + package.path = old_paths:sub(1, s-1) .. old_paths:sub(e + 1, -1) + + -- With the mock out of the path, require the module again to get the original. + -- Problem is that package.loaded contains a userdata now, because we're in + -- the middle of loading that same module name. So swap it. + local swap + swap, package.loaded[module_part] = package.loaded[module_part], nil + resolver = require(module_part) + package.loaded[module_part] = swap + + -- restore the package path + package.path = old_paths +end + + +-- load and cache the mock-records +local get_mock_records +do + local mock_file + get_mock_records = function() + if mock_file then + return mock_file.records, mock_file.mocks_only + end + + local is_file = require("pl.path").isfile + local prefix = ((kong or {}).configuration or {}).prefix + if not prefix then + -- we might be invoked before the Kong config was loaded, so exit early + -- and do not set _mock_records yet. + return {} + end + + local filename = prefix .. "/" .. MOCK_RECORD_FILENAME + + mock_file = {} + if not is_file(filename) then + -- no mock records set up, return empty default + ngx.log(ngx.DEBUG, LOG_PREFIX, "bypassing mock, no mock records found") + return mock_file + end + + -- there is a file with mock records available, go load it + local f = assert(io.open(filename)) + local json_file = assert(f:read("*a")) + f:close() + + mock_file = assert(cjson.decode(json_file)) + return mock_file.records, mock_file.mocks_only + end +end + + +-- patch the actual query method +local old_query = resolver.query +resolver.query = function(self, name, options, tries) + local mock_records, mocks_only = get_mock_records() + local qtype = (options or {}).qtype or resolver.TYPE_A + + local answer = (mock_records[qtype] or {})[name] + if answer then + -- we actually have a mock answer, return it + ngx.log(ngx.DEBUG, LOG_PREFIX, "serving '", name, "' from mocks") + return answer, nil, tries + end + + if not mocks_only then + -- no mock, so invoke original resolver + local a, b, c = old_query(self, name, options, tries) + return a, b, c + end +end + +-- do +-- local semaphore = require "ngx.semaphore" +-- local old_post = semaphore.post +-- function semaphore.post(self, n) +-- old_post(self, n) +-- ngx.sleep(0) +-- end +-- end + + +return resolver diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-websocket/resty/websocket/peer.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-websocket/resty/websocket/peer.lua new file mode 100644 index 00000000..ea36c414 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mocks/lua-resty-websocket/resty/websocket/peer.lua @@ -0,0 +1,150 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local semaphore = require "ngx.semaphore" +local semaphore_new = semaphore.new + +local remove = table.remove +local insert = table.insert + +-- buffer +local recv_buf = {} +local recv_buf_mt = { __index = recv_buf } + +local default_timeout = 5 + +function recv_buf.new() + return setmetatable({ smph = semaphore_new() }, recv_buf_mt) +end + +function recv_buf:push(obj) + insert(self, obj) + if #self == 1 then + self.smph:post() + end + + return true +end + +function recv_buf:pop_no_wait() + return remove(self) +end + +function recv_buf:pop(timeout) + if #self == 0 then + local ok, err = self.smph:wait(timeout or default_timeout) + if not ok then + return nil, err + end + end + + return remove(self) +end + +-- end buffer + +local unpack = unpack + +local _M = {} +local mt = { __index = _M } + +local empty = {} + +-- we ignore mask problems and most of error handling + +function _M:new(opts) + opts = opts or empty + + local new_peer = setmetatable({ + timeout = opts.timeout, + buf = recv_buf.new(), + }, mt) + + return new_peer +end + +function _M:set_timeout(time) + self.timeout = time + return true +end + +local types = { + [0x0] = "continuation", + [0x1] = "text", + [0x2] = "binary", + [0x8] = "close", + [0x9] = "ping", + [0xa] = "pong", +} + +function _M:translate_frame(fin, op, payload) + payload = payload or "" + local payload_len = #payload + op = types[op] + if op == "close" then + -- being a close frame + if payload_len > 0 then + return payload[2], "close", payload[1] + end + + return "", "close", nil + end + + return payload, op, not fin and "again" or nil +end + +function _M:recv_frame() + local buf = self.buf + local obj, err = buf:pop(self.timeout) + if not obj then + return nil, nil, err + end + + return self:translate_frame(unpack(obj)) -- data, typ, err +end + +local function send_frame(self, fin, op, payload) + local message = { fin, op, payload } + + return self.peer.buf:push(message) +end + +_M.send_frame = send_frame + +function _M:send_text(data) + return self:send_frame(true, 0x1, data) +end + +function _M:send_binary(data) + return self:send_frame(true, 0x2, data) +end + +function _M:send_close(code, msg) + local payload + if code then + payload = {code, msg} + end + return self:send_frame(true, 0x8, payload) +end + +function _M:send_ping(data) + return self:send_frame(true, 0x9, data) +end + +function _M:send_pong(data) + return self:send_frame(true, 0xa, data) +end + +-- for clients +function _M.connect() +end +function _M.set_keepalive() +end +function _M.close() +end + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.crt new file mode 100644 index 00000000..6b5555eb --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.crt @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFoTCCA4mgAwIBAgIUQDBLwIychoRbVRO44IzBBk9R4oYwDQYJKoZIhvcNAQEL +BQAwWDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoM +DEtvbmcgVGVzdGluZzEdMBsGA1UEAwwUS29uZyBUZXN0aW5nIFJvb3QgQ0EwHhcN +MTkwNTAyMTkzNDQyWhcNMzkwNDI3MTkzNDQyWjBYMQswCQYDVQQGEwJVUzETMBEG +A1UECAwKQ2FsaWZvcm5pYTEVMBMGA1UECgwMS29uZyBUZXN0aW5nMR0wGwYDVQQD +DBRLb25nIFRlc3RpbmcgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC +AgoCggIBAMp6IggUp3aSNRbLAac8oOkrbUnFuxtlKGYgg8vfA2UU71qTktigdwO6 +Kod0/M+daO3RDqJJXQL2rD14NDO3MaextICanoQSEe+nYyMFUIk+QplXLD3fbshU +nHoJcMS2w0x4cm1os4ebxR2Evndo6luz39ivcjau+BL+9iBAYL1g6+eGOjcSy7ft +1nAMvbxcQ7dmbAH2KP6OmF8cok+eQWVqXEjqtVx5GDMDlj1BjX6Kulmh/vhNi3Hr +NEi+kPrw/YtRgnqnN0sv3NnAyKnantxy7w0TDicFjiBsSIhjB5aUfWYErBR+Nj/m +uumwc/kRJcHWklqDzxrZKCIyOyWcE5Dyjjr46cnF8HxhYwgZcwkmgTtaXOLpBMlo +XUTgOQrWpm9HYg2vOJMMA/ZPUJ2tJ34/4RgiA00EJ5xG8r24suZmT775l+XFLFzp +Ihxvs3BMbrWsXlcZkI5neNk7Q/1jLoBhWeTYjMpUS7bJ/49YVGQZFs3xu2IcLqeD +5WsB1i+EqBAI0jm4vWEynsyX+kS2BqAiDtCsS6WYT2q00DTeP5eIHh/vHsm75jJ+ +yUEb1xFxGnNevLKNTcHUeXxPUnowdC6wqFnaJm7l09qVGDom7tLX9i6MCojgpAP0 +hMpBxzh8jLxHh+zZQdiORSFdYxNnlnWwbic2GUJruiQVLuhpseenAgMBAAGjYzBh +MB0GA1UdDgQWBBQHT/IIheEC2kdBxI/TfGqUxWJw9zAfBgNVHSMEGDAWgBQHT/II +heEC2kdBxI/TfGqUxWJw9zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQsFAAOCAgEAqXZjy4EltJCRtBmN0ohAHPWqH4ZJQCI2HrM3 +wHB6c4oPWcJ+M2PfmYPUJo9VMjvn4S3sZuAysyoHduvRdGDnElW4wglL1xxpoUOx +FqoZUoYWV8hDFmUTWM5b4CtJxOPdTAd8VgypulM3iUEzBQrjR6tnMOdkiFMOmVag +0/Nnr+Tcfk/crMCx3xsVnisYjJoQBFBH4UY+gWE/V/MS1Sya4/qTbuuCUq+Qym5P +r8TkWAJlg7iVVLbZ2j94VUdpiQPWJEGMtJck/NEmOTruhhQlT7c1u/lqXCGj7uci +LmhLsBVmdtWT9AWS8Rl7Qo5GXbjxKIaP3IM9axhDLm8WHwPRLx7DuIFEc+OBxJhz +wkr0g0yLS0AMZpaC6UGbWX01ed10U01mQ/qPU5uZiB0GvruwsYWZsyL1QXUeqLz3 +/KKrx3XsXjtBu3ZG4LAnwuxfeZCNw9ofg8CqF9c20ko+7tZAv6DCu9UL+2oZnEyQ +CboRDwpnAlQ7qJVSp2xMgunO3xxVMlhD5LZpEJz1lRT0nQV3uuLpMYNM4FS9OW/X +MZSzwHhDdCTDWtc/iRszimOnYYV8Y0ubJcb59uhwcsHmdfnwL9DVO6X5xyzb8wsf +wWaPbub8SN2jKnT0g6ZWuca4VwEo1fRaBkzSZDqXwhkBDWP8UBqLXMXWHdZaT8NK +0NEO74c= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.key b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.key new file mode 100644 index 00000000..22f7391c --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/ca.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.crt new file mode 100644 index 00000000..8a3257f9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.crt @@ -0,0 +1,63 @@ +-----BEGIN CERTIFICATE----- +MIIFTDCCAzSgAwIBAgICIAAwDQYJKoZIhvcNAQELBQAwYDELMAkGA1UEBhMCVVMx +EzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoMDEtvbmcgVGVzdGluZzElMCMG +A1UEAwwcS29uZyBUZXN0aW5nIEludGVybWlkaWF0ZSBDQTAeFw0xOTA1MDIxOTU1 +MjFaFw0yOTA0MjgxOTU1MjFaME8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp +Zm9ybmlhMRUwEwYDVQQKDAxLb25nIFRlc3RpbmcxFDASBgNVBAMMC2V4YW1wbGUu +Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqCozbPPts2H7CsUf +4KlyKwbCOjqUa7ZhBcXfX5KuEHOvAUZfJOlm2TCNbO1wMTI1QHwjn6a9HM1njhBG +4r9HH8CLckF83b247iJQbqUEjjvbb6DMTxjbC7dBunIikv6gUXeWGlRHupy/UEh8 +K0Y2KM2fm+HEbKI6zvjg/wb7zb0agzNaKV6fyEourKL0Xjz8ePm3kH58HaUmqhfk +PPf7GnGW1xk/aIm6tsi9wzj2VBI/T3E5hVnMGrJTYnXh5DoFQrbuLvWtOB6MdZcM +BWN/he8ISvvhKrctjWvUjpWgoZE9bRoMxkzxpHF/agM++WlHJrJ7my3yRHN3LspF +4ER+/QIDAQABo4IBHzCCARswCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCBkAw +MwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIFNlcnZlciBDZXJ0aWZp +Y2F0ZTAdBgNVHQ4EFgQUlpSl7QvKjdvJLx/sI3CXST3SqwowgYEGA1UdIwR6MHiA +FAsOBA6X+G1iTyTwO8Zv0go7jRERoVykWjBYMQswCQYDVQQGEwJVUzETMBEGA1UE +CAwKQ2FsaWZvcm5pYTEVMBMGA1UECgwMS29uZyBUZXN0aW5nMR0wGwYDVQQDDBRL +b25nIFRlc3RpbmcgUm9vdCBDQYICEAAwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM +MAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQA6kfAONRKeg0ygcyY8OwVi +y9SGPKnKtOGjF2BSk74UF3bj63kx7utIQ0w5LZA3CwjcE2VzdPx+lQEDy/dbv442 +2bWrc7kG0/Dcr92KoUbzuuI0kPRoM/4rcOb8shKG9txFL1j44a60SWlbvkoNUD88 +vKZy2uSJ++OeQ7vuxrt2UDsfO2jRk74p/ztQibTX/cpwjvHrz2JcLTSxUZXK342x +o7bWl1f7XMn8o7nPtNWHZq418uwFJ6OZO/rLc+FxE+31SnHYJUYC6/TSAg9kGomk +Ws+K453QVoiPsG08Uz1JRjUQWotlEmqFAwax3kmfnrsiKmKy451CcwVAlyEIvnSb +s2hEePHUaJltsatvFNPLnjcsOtqA46zJN0mv63BKuoa9fWAYr81D8wilcPgx534j +KQcSv24cAoWesp/KhERK5G+F5mE0qnlCfMpFJFtfMjh+CDLbR//L4/0KQrSS/eRn +ooeXinTpO5S2WOxk0W96rZMsBL2rBUI2qhfjBW8aQAiew4cMtddxryyUKskDlJPx +bZXB2OmPibOOOTrTrBFkQ+tjKCuPKbOQDsIPTasZQKc2jK0boixXE8AXhN/A+3J4 +muvYnypmWGb0jMLEQT2u+RQzCNDjIOEHBP50XnoEX3jkOgEwknje89VDm/JXcClR +l5HH4/9/AbS7rFCRnphOjQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFmjCCA4KgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCVVMx +EzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoMDEtvbmcgVGVzdGluZzEdMBsG +A1UEAwwUS29uZyBUZXN0aW5nIFJvb3QgQ0EwHhcNMTkwNTAyMTk0MDQ4WhcNMjkw +NDI5MTk0MDQ4WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEV +MBMGA1UECgwMS29uZyBUZXN0aW5nMSUwIwYDVQQDDBxLb25nIFRlc3RpbmcgSW50 +ZXJtaWRpYXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0dnj +oHlJmNM94vQnK2FIIQJm9OAVvyMtAAkBKL7Cxt8G062GHDhq6gjQ9enuNQE0l3Vv +mSAh7N9gNlma6YbRB9VeG54BCuRQwCxveOBiwQvC2qrTzYI34kF/AeflrDOdzuLb +zj5cLADKXGCbGDtrSPKUwdlkuLs3pRr/YAyIQr7zJtlLz+E0GBYp0GWnLs0FiLSP +qSBWllC9u8gt2MiKyNlXw+kZ8lofOehCJzfFr6qagVklPw+8IpU6OGmRLFQVwVhp +zdAJmAGmSo/AGNKGqDdjzC4N2l4uYGH6n2KmY2yxsLBGZgwtLDst3fK4a3Wa5Tj7 +cUwCcGLGtfVTaIXZYbqQ0nGsaYUd/mhx3B3Jk1p3ILZ72nVYowhpj22ipPGal5hp +ABh1MX3s/B+2ybWyDTtSaspcyhsRQsS6axB3DwLOLRy5Xp/kqEdConCtGCsjgm+U +FzdupubXK+KIAmTKXDx8OM7Af/K7kLDfFTre40sEB6fwrWwH8yFojeqkA/Uqhn5S +CzB0o4F3ON0xajsw2dRCziiq7pSe6ALLXetKpBr+xnVbUswH6BANUoDvh9thVPPx +1trkv+OuoJalkruZaT+38+iV9xwdqxnR7PUawqSyvrEAxjqUo7dDPsEuOpx1DJjO +XwRJCUjd7Ux913Iks24BqpPhEQz/rZzJLBApRVsCAwEAAaNmMGQwHQYDVR0OBBYE +FAsOBA6X+G1iTyTwO8Zv0go7jRERMB8GA1UdIwQYMBaAFAdP8giF4QLaR0HEj9N8 +apTFYnD3MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQAWzIvIVM32iurqM451Amz0HNDG9j84cORnnaRR5opFTr3P +EqI3QkgCyP6YOs9t0QSbA4ur9WUzd3c9Ktj3qRRgTE+98JBOPO0rv+Kjj48aANDV +5tcbI9TZ9ap6g0jYr4XNT+KOO7E8QYlpY/wtokudCUDJE9vrsp1on4Bal2gjvCdh +SU0C1lnj6q6kBdQSYHrcjiEIGJH21ayVoNaBVP/fxyCHz472w1xN220dxUI/GqB6 +pjcuy9cHjJHJKJbrkdt2eDRAFP5cILXc3mzUoGUDHY2JA1gtOHV0p4ix9R9AfI9x +snBEFiD8oIpcQay8MJH/z3NLEPLoBW+JaAAs89P+jcppea5N9vbiAkrPi687BFTP +PWPdstyttw6KrvtPQR1+FsVFcGeTjo32/UrckJixdiOEZgHk+deXpp7JoRdcsgzD ++okrsG79/LgS4icLmzNEp0IV36QckEq0+ALKDu6BXvWTkb5DB/FUrovZKJgkYeWj +GKogyrPIXrYi725Ff306124kLbxiA+6iBbKUtCutQnvut78puC6iP+a2SrfsbUJ4 +qpvBFOY29Mlww88oWNGTA8QeW84Y1EJbRkHavzSsMFB73sxidQW0cHNC5t9RCKAQ +uibeZgK1Yk7YQKXdvbZvXwrgTcAjCdbppw2L6e0Uy+OGgNjnIps8K460SdaIiA== +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.key b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.key new file mode 100644 index 00000000..c8ad8f2e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAqCozbPPts2H7CsUf4KlyKwbCOjqUa7ZhBcXfX5KuEHOvAUZf +JOlm2TCNbO1wMTI1QHwjn6a9HM1njhBG4r9HH8CLckF83b247iJQbqUEjjvbb6DM +TxjbC7dBunIikv6gUXeWGlRHupy/UEh8K0Y2KM2fm+HEbKI6zvjg/wb7zb0agzNa +KV6fyEourKL0Xjz8ePm3kH58HaUmqhfkPPf7GnGW1xk/aIm6tsi9wzj2VBI/T3E5 +hVnMGrJTYnXh5DoFQrbuLvWtOB6MdZcMBWN/he8ISvvhKrctjWvUjpWgoZE9bRoM +xkzxpHF/agM++WlHJrJ7my3yRHN3LspF4ER+/QIDAQABAoIBACHkx5KpI3qpP+ju +zDsCzAECDrmfvvRqwOlh9WCU9sJYHqi6H0kYReN2lrqirJ8tyG/j1WZDPBCHEd0f +SLpA5TvwGesAagNjTteoUN/MILvuMo8wMJ2sm9GjsPq8MF3CNlvVJ4rM+9wP5btv +sJ8kOpxEvWu0uFtQ41t97BNau/u+UtMk3oNCYBhiUWDg0rWPrUeX8cKzFSM8VAt4 +vvsybRHPbBmSLW01xO1Hq5cZdqbN4SxyQC1Ug9gW/afJQNRK7CubpWjOOQAsla0j +ExyBxMMwDLLZfYCQpRn92ZB4x+LiaXqnbrtyfA+GLLjtlUPY6ClpdXa7KSN/mEuE +LIIjiV0CgYEA2YsCt1+Yak+GOX6tSx1YUDz6UpZyOo2OKwqJ+G+SKT7JLT84A5nP +rn6r6UUpNKhK3glpU1A1VJKiFnZ9qJi/gHJcNiSEIcUFHNFflDSmiZc6MyfcIkCZ +xLUCrYHpETubTnB5P5jOhmsA3/uApaAc/Pv5hfSRzQv524k08TRgCU8CgYEAxeSQ +MIRV1SKDYsEdEfXJE+WJLz2rlpR19l/9Wfuc5QVgAgDhFCCvHUX1ULU8yGQUSHqz +DseR3iQF+Jvo3MK7pgC2fH6UePjakWOCXqXey1CpAzUHM/Qhwd451VqAGAT+Pabj +tzPJ0cSC7sszxhwmAzotIUrjZDbuAzwQyRXdh/MCgYEApP2KVNt69H5V9bs+4W5j +MY/d5s9V2VTNE5XNqI+uEfwdhmShLhH08on+BlC+/MH67kXDDT4TBI6lwlWh3kHj +VB7oEuRFFnuf8ghV7ki0WjxJFs1PZucJ+Ke0XTXfN4O2uZoSS4qwcEAtjLLqEjPK +aJEO4WrpPdOsb7WzYpDvmX8CgYEAwPunXZkAN0xkAl8+4S/mup+Ci+5BMiRvcSek +4yaLl5AJU4rV9JH3E74QgHdt4iIu4Yu+qHAYoSBSLmKk0PyakEVrsLakReCxDU2U +aoapYW60k6sX7iNq9CuqDJUoC8R6x1bEBPndG9LeuM6zG8SBkW4farMkU6t5qu/d +kqvfEN8CgYAQphK9AoATrEomLbGwmcW+8JkjU9Sxnq+zo8io75wFAY2cUnQJQEId +zGWwYjwHxXQCNCZ3ZwD7+iYgFHfxbPaiTWELkV2nEpBHQI0cLgzlcEBwo+uoFiYK +33Yxb6EhNFSy7d2GPVZMjIR+KifCIem+i/3BiIlzneuFSRlnKORekQ== +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.crt new file mode 100644 index 00000000..85756548 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.crt @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEJzCCAg8CFAQ6oTnLBUHbumx1bxyY9kV0W21BMA0GCSqGSIb3DQEBCwUAMFgx +CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRUwEwYDVQQKDAxLb25n +IFRlc3RpbmcxHTAbBgNVBAMMFEtvbmcgVGVzdGluZyBSb290IENBMB4XDTIwMDQx +MzIzNDg0MVoXDTMwMDQxMTIzNDg0MVowSDELMAkGA1UEBhMCVVMxCzAJBgNVBAgM +AkNBMRUwEwYDVQQKDAxLb25nIFRlc3RpbmcxFTATBgNVBAMMDGV4YW1wbGUyLmNv +bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+kZhxdN8PA3SW9cXiv +xgtANq57PIWNnSDsg9Yxn0/+JKR45pSU+SKYtZUJJJuOdkv4IIJLm6uG6LbOPUDO +g9EaV0Zw7RQtbY6EDFDFzeyq0/Mwl9wLJtXf0fPsXGyFIdeelBjzoSVsGGJKPWbP +rlUtSHCrpFX53NTPnNVUJz9V6CdzZJgbyoiWP7ggKJeRPq6jCW5pt+cd+sR4+EPh +daBmEVWeifLEKCbBvsQaOGfU1aVG1AlX0RpLBkTxOOFIIk/3dgWOsrek2ofjku4F +g0MeWmD8oXOHUX2JxO77/BbLDQt0lzD27y/EkDoqy6mMAH85/LTYrU+P0WsEyexg +CHcCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAwWAxQjQOoGxU5LQu4ZmsCkps9y0B +kNj8MUpLcFmK+02VIUh3hM4vuB6Gct2Ph+6zqCge3oqTXltU0Bs2MTwAKs/scsxq +Mtanz4W00UlmG3QdgHaEs196tYQ8cKIaGZsNBv15VgBBduUG478pKqYE8bJKBbw7 +1Ym390hSPo0dNe7jLFXx6AaJvlEYh09P4FgfkXuY5VVTGXfN7XgJI073pLRY6iGH +Qd+Egymh86AQtnoNpmqSCMNcjRVAyR8Ti3qnyro8ruZCnNYHieGeh/ZsZvhGDeWX +v4YXjW2NDQ5+Ok6Gtvhf/l6RSrnXLbZtv8NStqwQJ+ydu05BJglZ/7Sb0uQYVNq2 +H8V+MtApFT6fG6ANM6hadNFG+p8Hwz6k4BLrc9ZxeWYKWIIusqExR9JIlGzEjvFJ +6NmNjm3eZE9Ue4YgURj1KTr53wAso4LbJpz/zuZS+m9PMz7n8fRL25/Z5b/92L3a +w0vsxUJyTDeMvYf8oT6OkxNVJ0zBRZNtEg5AJKdP6nU53V998jHP9vUisrU2ALhu +Jw3QiWiDKnRtx8PiiRx7dWo+Xwn9+xVypytqNz3w/XJlOjMwOg73q399w+vMiFTl +qdr7eYvaQBGOZVc3OdiP8afyVxlhHBowUoi8G+iPbgOsARHv/j4UeMVyIThzxv73 +a2EQ5BzyOzQ81H4= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.key b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.key new file mode 100644 index 00000000..05c29251 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/mtls_certs/example2.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAr6RmHF03w8DdJb1xeK/GC0A2rns8hY2dIOyD1jGfT/4kpHjm +lJT5Ipi1lQkkm452S/gggkubq4bots49QM6D0RpXRnDtFC1tjoQMUMXN7KrT8zCX +3Asm1d/R8+xcbIUh156UGPOhJWwYYko9Zs+uVS1IcKukVfnc1M+c1VQnP1XoJ3Nk +mBvKiJY/uCAol5E+rqMJbmm35x36xHj4Q+F1oGYRVZ6J8sQoJsG+xBo4Z9TVpUbU +CVfRGksGRPE44UgiT/d2BY6yt6Tah+OS7gWDQx5aYPyhc4dRfYnE7vv8FssNC3SX +MPbvL8SQOirLqYwAfzn8tNitT4/RawTJ7GAIdwIDAQABAoIBAHMJzgdN1rRToYSS +a7uMBL5htG7bMGyYsA1cW4zyu1F9NyqyNPOkDvjl5ChU8LEhwcFIJqKwOqlBlzIE +KoJDwHo4MmlklSLeDh+FxTsyEwmraV6iuRPaCfmSusR0TqSVHfFHX+Bn0WfdQKs/ +zK+F3rzTB9sj0GKvYD/SKvpeP8Zuu9EBqo4N7PU3VHwDq5t32Ut/+M5XWtulsQcs +qXr2R3agj/DnODANT6Dn/mJboTrYOSV18S/Yw/+OnWBcLzlT5sj0aLgrtXvIputv +9caux4HklAQr29+lKB8nBTfjhXnBntMaEgqCVJ3ri83MuEfVDhmjwo6PnX22/J0h +2XbCyUECgYEA2v8m+CTBTjdAqOuje34+UiWRzT2P9OFONV8nYgzEcQW5JkUoFCun +KgQQIvjCsX4jY6/8w/IPF1ieTconZYJUWSyMZFtBBDCVif1GZRiiM2C4Zcero1KV +U0V3wZcnYkzafzIHkqFUYZwamvdKWVI4c6F5MhSEKCgcbgKKI52TEokCgYEAzVHr +KjQt+dqNkbipYoGH2ywLdcogDwKoyUFbgcvz/q625gu4am025wF25yRKExm7Dyjx +eCQC+KOsBfJSc78fG5R6KPIDK1JrpUEGSCeqFICiqGv9kUzPf5zeGZVf9cU4tyPT +5wYUEM7NX8VRoasZ4OUvYyYBw1Cx8vMdvQn/gv8CgYAIhxcFYqkEWrJx4XskO+5B +VKUw0MziREO/YE0wTD76B7cF/ntpDaocwLvAIN+z+a13HEtDdhGQXysK7GxMT57p +OgrdfZAykZHBJdOv7B2k0odbr0LHwVd/Pp1DNJecBFId0dzpoM6gXmvKzQZgJAt+ +tTL6+EGNLsKspfyrFl+7wQKBgQDAt2VuJbAJ1xQOdS+4IDCujfbrxp60uCBJVylW ++WK56LAP2WxtqLlhtsQuTKeiqgIkRp/vzo1jZ+0tX7f4oKnIL2NCT3aeESys3g3R +aDmCKQOD5mkJGvmgpFLr3INHoqiLbfuV2uS2qgWnIQRwJLOTnksOWzxIYdPFYGDH +cTz9bQKBgQDGv929DUinrKXe/uKJHLAcq+MjmF/+kZU9yn+svq6SSdplqp7xbXX4 +3T5HCWqD4Sy+PVzGaDg5YfXC8yaFPPfY0/35T2FoQEiCAPQO+07Smg6RqJ3yVpIm +LTsbLleJTc8CX0bI4SukQ7MVQsiHimzyEzx3eyLt1S8aBdJuRFZ2mg== +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/nginx-directives.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/nginx-directives.conf new file mode 100644 index 00000000..c7a73f59 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/nginx-directives.conf @@ -0,0 +1,8 @@ +nginx_http_variables_hash_bucket_size = 128 +nginx_stream_variables_hash_bucket_size = 128 +nginx_http_lua_shared_dict = custom_cache 5m +nginx_stream_lua_shared_dict = custom_cache 5m +nginx_proxy_proxy_bind = 127.0.0.1 +nginx_sproxy_proxy_bind = 127.0.0.1 +nginx_admin_server_tokens = off +nginx_status_client_body_buffer_size = 8k diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca-chain.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca-chain.crt new file mode 100644 index 00000000..9c3449c5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca-chain.crt @@ -0,0 +1,65 @@ +-----BEGIN CERTIFICATE----- +MIIFmTCCA4GgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwXjELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjENMAsGA1UECgwES29uZzEUMBIGA1UE +CwwLRW5naW5lZXJpbmcxEDAOBgNVBAMMB3Jvb3RfY2EwHhcNMjEwMzA0MTEyMjM1 +WhcNNDEwMjI3MTEyMjM1WjBZMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExDTAL +BgNVBAoMBEtvbmcxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA9pbnRl +cm1lZGlhdGVfY2EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXcXvt +kyiEY7Nr8VeEF2KTpGkEwPLNoLW9eNpFH0bFlKcmM/+IocSUErD091SCf0fGCRuo +8bISb4MVa5esq8XMUSR63cDmz2IbWOtvNir4wLfAoUuA4JBhubaSyaslXLf376QT +sYDjLH9jQ3rFYskz9hrlX1HFFmm0hlDnuqr1w0GF+6PxPdxRKkdvKexPuQp3qaVZ +dzKvFcGuCu7nuqemb37CBBkdRAgVUj37pXBIcc5p5h8PVAU24r7pAaYppDmmZMWa +uTSjz4K/PTh5GzG+snf8iH+EpTLGUqPElR+ABP8YiNrQQzgA91lPjwLqp6D34sMT +7xvk4Ri1cOpOsNA4hCdFPilzolMQ6Zpz0ELI25vBt8qY57JMlsUjaY2PR1gI+pE+ +jc52e18Bt/axNnbgxoxTQWPcw27mUs7H4+1WiZufhzz59obgWRnoCom0Fb6RN9Rl +8ezl+h30+Dgk8ftiFm/fI1BttL6dihveSP/xvuMYRFyT0F1ZNZhgME218cOB5hZN +dKOFynRgI4SfCeMNSy3KnrBoPYE3P/f1ljBbrR5x/xQE0V5iWFJwZwWexO0+Hf7h +Aaql5dcwsMIjf8MfHKuQOfZauUmPxu0EbM4NiQu5GEK/9rGEIO51Tlo237l6k4tF +oKCj3EUZ9cM02CROKGDM6vfkyeyGDbuDPGmdLwIDAQABo2YwZDAdBgNVHQ4EFgQU +xTAm/Gj7/9K32+Wdc0BOHFKRFeEwHwYDVR0jBBgwFoAU9NE7mu7p9CqGxLNWl7km +VfMeEO0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZI +hvcNAQELBQADggIBAKFvNX1Wv7lOsYvDGOCmIrJEDdjW2Q60p23v1U/R9Wv7xo7X +2SRuQvqKd3AB/9dCSgaaXKHwYgTPIS8NwUJ0SMvSwrnnRpZS5qkOB9JgRgAX5Ebd +eyupB2AumZ1BGaw2gqPYHm8zxu3N2yw2pVV9LJ2nM+IPTqiQrYCV7BxNpAd/v9OA +EC9XbKhPqdJ4bD6dGg7w5iBPadb6amAKkGutKjjB+AC/lJlM9bMEGd6RP0ywptQx +jAfY0VTElLsN30Q6pn31Xf4UzZk4xzyW04GaPFcJVoHTWSl969p0k0L/WAMakDHB +/g4VvkMTFDoH1Mi7ohakHnMC9XQbMVj2t/EE3XLiD4gcNEyCjXczIxDYJRYe2X3f +51vQNR921P1KUNTooGusltMmHuWBnT046o9rp/2uQvHm2y/qv1kCPHTiP7vhb/TG +2JCc+3LZ621EjH5jRvL60Pji4RnGGqLDBykLK68dymHVfrSAi+ZCx6PNxSm0Ydm6 +ZM1Vb8lD2EwEm20qKWM484ItWcVHgWEWDvaMjh0iIq45LA0KmN47iUN8X6rmdulZ +MDSnSYwJfRt1DdyUC0nDWMQaW1JOQxQxoJCoDmiLwv9BIeNB8LNJEU0FTOPc8xhf +VdlbjNIC1fs2OMWOc3A1hAFlf+vU8UYLRgYhLiAhFT2iwhBksSzGURY7eKqM +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFrTCCA5WgAwIBAgIUFQe9z25yjw26iWzS+P7+hz1zx6AwDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjENMAsG +A1UECgwES29uZzEUMBIGA1UECwwLRW5naW5lZXJpbmcxEDAOBgNVBAMMB3Jvb3Rf +Y2EwHhcNMjEwMzA0MTEyMjM0WhcNNDEwMjI3MTEyMjM0WjBeMQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ0wCwYDVQQKDARLb25nMRQwEgYD +VQQLDAtFbmdpbmVlcmluZzEQMA4GA1UEAwwHcm9vdF9jYTCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAKKjido39I5SEmPhme0Z+hG0buOylXg+jmqHpJ/K +rs+dSq/PsJCjSke81eOP2MFa5duyBxdnXmMJwZYxuQ91bKxdzWVE9ZgCJgNJYsB6 +y5+Fe7ypERwa2ebS/M99FFJ3EzpF017XdsgnSfVh1GEQOZkWQ1+7YrEUEgtwN5lO +MVUmj1EfoL+jQ/zwxwdxpLu3dh3Ica3szmx3YxqIPRnpyoYYqbktjL63gmFCjLeW +zEXdVZyoisdaA4iZ9e/wmuLR2/F4cbZ0SjU7QULZ2Zt/SCrs3CaJ3/ZAa6s84kjg +JBMav+GxbvATSuWQEajiVQrkW9HvXD/NUQBCzzZsOfpzn0044Ls7XvWDCCXs+xtG +Uhd5cJfmlcbHbZ9PU1xTBqdbwiRX+XlmX7CJRcfgnYnU/B3m5IheA1XKYhoXikgv +geRwq5uZ8Z2E/WONmFts46MLSmH43Ft+gIXA1u1g3eDHkU2bx9u592lZoluZtL3m +bmebyk+5bd0GdiHjBGvDSCf/fgaWROgGO9e0PBgdsngHEFmRspipaH39qveM1Cdh +83q4I96BRmjU5tvFXydFCvp8ABpZz9Gj0h8IRP+bK5ukU46YrEIxQxjBee1c1AAb +oatRJSJc2J6zSYXRnQfwf5OkhpmVYc+1TAyqPBfixa2TQ7OOhXxDYsJHAb7WySKP +lfonAgMBAAGjYzBhMB0GA1UdDgQWBBT00Tua7un0KobEs1aXuSZV8x4Q7TAfBgNV +HSMEGDAWgBT00Tua7un0KobEs1aXuSZV8x4Q7TAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAgI8CSmjvzQgmnzcNwqX5 +o+KBWEMHJEqQfowaZE7o6xkvEljb1YHRDE0hlwUtD1vbKUthoHD8Mqim3No5z4J0 +dEE+mXQ3zlJWKl5gqHs9KtcLhk51mf4VJ2TW8Z7AoE2OjWSnycLNdlpqUvxzCQOn +CIhvyDfs4OV1RYywbfiLLmzTCYT7Mt5ye1ZafoRNZ37DCnI/uqoOaMb+a6VaE+0F +ZXlDonXmy54QUmt6foSG/+kYaqdVLribsE6H+GpePmPTKKOvgE1RutR5+nvMJUB3 ++zMQSPVVYLzizwV+Tq9il81qNQB2hZGvM8iSRraBNn8mwpx7M6kcoJ4gvCA3kHCI +rmuuzlhkNcmZYh0uG378CzhdEOV+JMmuCh4xt2SbQIr5Luqm/+Xoq4tDplKoUVkC +DScxPoFNoi9bZYW/ppcaeX5KT3Gt0JBaCfD7d0CtbUp/iPS1HtgXTIL9XiYPipsV +oPLtqvfeORl6aUuqs1xX8HvZrSgcld51+r8X31YIs6feYTFvlbfP0/Jhf2Cs0K/j +jhC0sGVdWO1C0akDlEBfuE5YMrehjYrrOnEavtTi9+H0vNaB+BGAJHIAj+BGj5C7 +0EkbQdEyhB0pliy9qzbPtN5nt+y0I1lgN9VlFMub6r1u5novNzuVm+5ceBrxG+ga +T6nsr9aTE1yghO6GTWEPssw= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca.crt new file mode 100644 index 00000000..a33350b0 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ca.crt @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFrTCCA5WgAwIBAgIUFQe9z25yjw26iWzS+P7+hz1zx6AwDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjENMAsG +A1UECgwES29uZzEUMBIGA1UECwwLRW5naW5lZXJpbmcxEDAOBgNVBAMMB3Jvb3Rf +Y2EwHhcNMjEwMzA0MTEyMjM0WhcNNDEwMjI3MTEyMjM0WjBeMQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ0wCwYDVQQKDARLb25nMRQwEgYD +VQQLDAtFbmdpbmVlcmluZzEQMA4GA1UEAwwHcm9vdF9jYTCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAKKjido39I5SEmPhme0Z+hG0buOylXg+jmqHpJ/K +rs+dSq/PsJCjSke81eOP2MFa5duyBxdnXmMJwZYxuQ91bKxdzWVE9ZgCJgNJYsB6 +y5+Fe7ypERwa2ebS/M99FFJ3EzpF017XdsgnSfVh1GEQOZkWQ1+7YrEUEgtwN5lO +MVUmj1EfoL+jQ/zwxwdxpLu3dh3Ica3szmx3YxqIPRnpyoYYqbktjL63gmFCjLeW +zEXdVZyoisdaA4iZ9e/wmuLR2/F4cbZ0SjU7QULZ2Zt/SCrs3CaJ3/ZAa6s84kjg +JBMav+GxbvATSuWQEajiVQrkW9HvXD/NUQBCzzZsOfpzn0044Ls7XvWDCCXs+xtG +Uhd5cJfmlcbHbZ9PU1xTBqdbwiRX+XlmX7CJRcfgnYnU/B3m5IheA1XKYhoXikgv +geRwq5uZ8Z2E/WONmFts46MLSmH43Ft+gIXA1u1g3eDHkU2bx9u592lZoluZtL3m +bmebyk+5bd0GdiHjBGvDSCf/fgaWROgGO9e0PBgdsngHEFmRspipaH39qveM1Cdh +83q4I96BRmjU5tvFXydFCvp8ABpZz9Gj0h8IRP+bK5ukU46YrEIxQxjBee1c1AAb +oatRJSJc2J6zSYXRnQfwf5OkhpmVYc+1TAyqPBfixa2TQ7OOhXxDYsJHAb7WySKP +lfonAgMBAAGjYzBhMB0GA1UdDgQWBBT00Tua7un0KobEs1aXuSZV8x4Q7TAfBgNV +HSMEGDAWgBT00Tua7un0KobEs1aXuSZV8x4Q7TAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAgI8CSmjvzQgmnzcNwqX5 +o+KBWEMHJEqQfowaZE7o6xkvEljb1YHRDE0hlwUtD1vbKUthoHD8Mqim3No5z4J0 +dEE+mXQ3zlJWKl5gqHs9KtcLhk51mf4VJ2TW8Z7AoE2OjWSnycLNdlpqUvxzCQOn +CIhvyDfs4OV1RYywbfiLLmzTCYT7Mt5ye1ZafoRNZ37DCnI/uqoOaMb+a6VaE+0F +ZXlDonXmy54QUmt6foSG/+kYaqdVLribsE6H+GpePmPTKKOvgE1RutR5+nvMJUB3 ++zMQSPVVYLzizwV+Tq9il81qNQB2hZGvM8iSRraBNn8mwpx7M6kcoJ4gvCA3kHCI +rmuuzlhkNcmZYh0uG378CzhdEOV+JMmuCh4xt2SbQIr5Luqm/+Xoq4tDplKoUVkC +DScxPoFNoi9bZYW/ppcaeX5KT3Gt0JBaCfD7d0CtbUp/iPS1HtgXTIL9XiYPipsV +oPLtqvfeORl6aUuqs1xX8HvZrSgcld51+r8X31YIs6feYTFvlbfP0/Jhf2Cs0K/j +jhC0sGVdWO1C0akDlEBfuE5YMrehjYrrOnEavtTi9+H0vNaB+BGAJHIAj+BGj5C7 +0EkbQdEyhB0pliy9qzbPtN5nt+y0I1lgN9VlFMub6r1u5novNzuVm+5ceBrxG+ga +T6nsr9aTE1yghO6GTWEPssw= +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt new file mode 100644 index 00000000..d9c4e670 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt @@ -0,0 +1,3 @@ +V 310302112235Z 1000 unknown /C=US/ST=CA/L=SF/O=Kong/OU=Engineering/CN=ocsp +V 310302112337Z 1001 unknown /C=US/ST=CA/L=SF/O=Kong/OU=Engineering/CN=kong_clustering +V 310302112425Z 1002 unknown /C=US/ST=CA/L=SF/O=Kong/OU=Engineering/CN=kong_data_plane diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt.revoked b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt.revoked new file mode 100644 index 00000000..adc8959a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/index.txt.revoked @@ -0,0 +1,3 @@ +V 310302112235Z 1000 unknown /C=US/ST=CA/L=SF/O=Kong/OU=Engineering/CN=ocsp +V 310302112337Z 1001 unknown /C=US/ST=CA/L=SF/O=Kong/OU=Engineering/CN=kong_clustering +R 310302112425Z 210304112822Z 1002 unknown /C=US/ST=CA/L=SF/O=Kong/OU=Engineering/CN=kong_data_plane diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.crt new file mode 100644 index 00000000..43ae9de2 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.crt @@ -0,0 +1,63 @@ +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwWTELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAkNBMQ0wCwYDVQQKDARLb25nMRQwEgYDVQQLDAtFbmdpbmVlcmlu +ZzEYMBYGA1UEAwwPaW50ZXJtZWRpYXRlX2NhMB4XDTIxMDMwNDExMjMzN1oXDTMx +MDMwMjExMjMzN1owZjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjENMAsGA1UECgwES29uZzEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNV +BAMMD2tvbmdfY2x1c3RlcmluZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBANaCyZeJxFogkiIBjNBTZcztOsW/8vfljzK/m6Yi589hbrTw2CgDGBl+3Pnl +3AA8bkpAG0Tl0TjB3h/hij5Ywopd/dDEeNAhjvlBNiDMy2cN93t3XvGyp7w4hF9u +yaUiJgyTH7AjuCDO01jvj8GT31cfNDBMBwjQF0AltsGScZhanwy82fHUZzvpHMr6 +OQ+riBwb2rXKHoSCukxbs/Y1HfPxmpNShWDPXFFMbsujPRT6meVcCKQuThIWLdwA +KvJYSYC3gTHQyadjwTF9nLZgMu6cWxTheWXXZ/sF4tZ1DPQCjd/1Pdi/TwEawAUa +vOHP7ArfB2vHOX59bJgJbFyGB3ECAwEAAaOCASYwggEiMAkGA1UdEwQCMAAwEQYJ +YIZIAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRl +ZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFCOojCEbuBGgdyxoUfYTEyYU +ioxGMIGIBgNVHSMEgYAwfoAUxTAm/Gj7/9K32+Wdc0BOHFKRFeGhYqRgMF4xCzAJ +BgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDTALBgNVBAoMBEtv +bmcxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRAwDgYDVQQDDAdyb290X2NhggIQADAO +BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEL +BQADggIBAHJmrqebjeI7dz34cJBZH0iKTv/dHqinck4u2Dnol85SUICDAlIk1ZDm ++VHA7ZH3ittPjWbiR8N8CJ+GW+2zfcenM+9BfCm95FJ8K/4vU9Xrx/NZH621NELm +fneD/rFWahf+KT9J7H9SeR3oIiecsDEDM0RAFrqU3innLAnWoTKDNQukjBGUrTnm +3YPv6+MAUHl1AaZpX4yEtakevQHxY0Kfpt0U1iZbvL5jeC9HuswTFCplARI5qnxG +0RhRveApQ6Im0clUKx8eqG2Iez4clSNLGJEsUpvyr3CwbyOU/9UneK98hbf13rww +DPoYT1U6JMEJuKBuL1qDECH8UUF0X41KEPP9s+dgBcAXE/gaD89hjIzOhbkDXbLO +L8511Fr466Gcab05FBGupXjnJ63EB3Ct4TAkRS6W8IrOtWRPOtOCbRJtSKqcZnfE +F8UCklCfIHaM7y8JClVLWSIjaOtg2UVJqCJnEMo+5h4WLnkGfBZr7VAJRKPKC3Vt +jfKbOUcWcMJxR+UWWu+9A/kMb97cAXuSwZRyeeKAnMzQHWYMx6Bo/m2JHWwhlsf+ +vX6mp4C+FeyoXejP1cZBVkMh1JsRKWHAxbGLQkrYHhTKwYudLvsXURatJ0i+BNjI +QmBTKAfIh2q6qJDRcsDURDsvBD46f2p/kzg08+f5eQv+cMx2ryAq +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFmTCCA4GgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwXjELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjENMAsGA1UECgwES29uZzEUMBIGA1UE +CwwLRW5naW5lZXJpbmcxEDAOBgNVBAMMB3Jvb3RfY2EwHhcNMjEwMzA0MTEyMjM1 +WhcNNDEwMjI3MTEyMjM1WjBZMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExDTAL +BgNVBAoMBEtvbmcxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA9pbnRl +cm1lZGlhdGVfY2EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXcXvt +kyiEY7Nr8VeEF2KTpGkEwPLNoLW9eNpFH0bFlKcmM/+IocSUErD091SCf0fGCRuo +8bISb4MVa5esq8XMUSR63cDmz2IbWOtvNir4wLfAoUuA4JBhubaSyaslXLf376QT +sYDjLH9jQ3rFYskz9hrlX1HFFmm0hlDnuqr1w0GF+6PxPdxRKkdvKexPuQp3qaVZ +dzKvFcGuCu7nuqemb37CBBkdRAgVUj37pXBIcc5p5h8PVAU24r7pAaYppDmmZMWa +uTSjz4K/PTh5GzG+snf8iH+EpTLGUqPElR+ABP8YiNrQQzgA91lPjwLqp6D34sMT +7xvk4Ri1cOpOsNA4hCdFPilzolMQ6Zpz0ELI25vBt8qY57JMlsUjaY2PR1gI+pE+ +jc52e18Bt/axNnbgxoxTQWPcw27mUs7H4+1WiZufhzz59obgWRnoCom0Fb6RN9Rl +8ezl+h30+Dgk8ftiFm/fI1BttL6dihveSP/xvuMYRFyT0F1ZNZhgME218cOB5hZN +dKOFynRgI4SfCeMNSy3KnrBoPYE3P/f1ljBbrR5x/xQE0V5iWFJwZwWexO0+Hf7h +Aaql5dcwsMIjf8MfHKuQOfZauUmPxu0EbM4NiQu5GEK/9rGEIO51Tlo237l6k4tF +oKCj3EUZ9cM02CROKGDM6vfkyeyGDbuDPGmdLwIDAQABo2YwZDAdBgNVHQ4EFgQU +xTAm/Gj7/9K32+Wdc0BOHFKRFeEwHwYDVR0jBBgwFoAU9NE7mu7p9CqGxLNWl7km +VfMeEO0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZI +hvcNAQELBQADggIBAKFvNX1Wv7lOsYvDGOCmIrJEDdjW2Q60p23v1U/R9Wv7xo7X +2SRuQvqKd3AB/9dCSgaaXKHwYgTPIS8NwUJ0SMvSwrnnRpZS5qkOB9JgRgAX5Ebd +eyupB2AumZ1BGaw2gqPYHm8zxu3N2yw2pVV9LJ2nM+IPTqiQrYCV7BxNpAd/v9OA +EC9XbKhPqdJ4bD6dGg7w5iBPadb6amAKkGutKjjB+AC/lJlM9bMEGd6RP0ywptQx +jAfY0VTElLsN30Q6pn31Xf4UzZk4xzyW04GaPFcJVoHTWSl969p0k0L/WAMakDHB +/g4VvkMTFDoH1Mi7ohakHnMC9XQbMVj2t/EE3XLiD4gcNEyCjXczIxDYJRYe2X3f +51vQNR921P1KUNTooGusltMmHuWBnT046o9rp/2uQvHm2y/qv1kCPHTiP7vhb/TG +2JCc+3LZ621EjH5jRvL60Pji4RnGGqLDBykLK68dymHVfrSAi+ZCx6PNxSm0Ydm6 +ZM1Vb8lD2EwEm20qKWM484ItWcVHgWEWDvaMjh0iIq45LA0KmN47iUN8X6rmdulZ +MDSnSYwJfRt1DdyUC0nDWMQaW1JOQxQxoJCoDmiLwv9BIeNB8LNJEU0FTOPc8xhf +VdlbjNIC1fs2OMWOc3A1hAFlf+vU8UYLRgYhLiAhFT2iwhBksSzGURY7eKqM +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.key b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.key new file mode 100644 index 00000000..77e81fde --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_clustering.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA1oLJl4nEWiCSIgGM0FNlzO06xb/y9+WPMr+bpiLnz2FutPDY +KAMYGX7c+eXcADxuSkAbROXROMHeH+GKPljCil390MR40CGO+UE2IMzLZw33e3de +8bKnvDiEX27JpSImDJMfsCO4IM7TWO+PwZPfVx80MEwHCNAXQCW2wZJxmFqfDLzZ +8dRnO+kcyvo5D6uIHBvatcoehIK6TFuz9jUd8/Gak1KFYM9cUUxuy6M9FPqZ5VwI +pC5OEhYt3AAq8lhJgLeBMdDJp2PBMX2ctmAy7pxbFOF5Zddn+wXi1nUM9AKN3/U9 +2L9PARrABRq84c/sCt8Ha8c5fn1smAlsXIYHcQIDAQABAoIBAGXOrN6/A/HCg5ig +I7S74BTigoJYF3iP+uabCcRPzLUgCOrXY7+ZuFZhX387GK8D/1Q+GLMaX7IQUNvQ +r0vn1GzXLx9mH/Cn/LNPv+DRUbgXaN2wSd9say9po2mnqww0qNpO+TsfuMPZZXVQ +PWoiRF2U8a/6ZVxJZr+LJrG4TzF+8gyHoUJrlncob8ma5EQKOR3HzMxfJx9OrjQW +ISu+g2D+0qpaiPGlEUOMKBnrFhVCd5LUaCKM1F7qTe08hvyywqp7CJ4rw2loa+4W +cdl2UTl01lTke3uEPsBdtvpwQ0DAvFyXgA09LmnwRjHtPzHjNxnkGE2qz14sctBi +OXt2KAECgYEA+qGxJ5tYkqob+JTvrAQp1zD9ECs9ElVbJZwZ5Z/lhxMBJ07v11Ku +++M9rSUjhWcYbd2gfGEkxXzSK9yYc4ryzDvCREuNmGxYs52VnaBlKPY3T/h046/9 +S0NivzApCTVK+CYdntT4XNyn9+WGO7zq7x6FQkSsFuj2lnfHrahq0i0CgYEA2xsI +KMYMe0NTJFNzhfFQMzkSU1R1+TvhaXjpqfneeizF4plYxrZOtOb3vzriWepB70de +4atsoxZUfqS34RKkLX1WyuoLm3WtpJHHmhUfj18PlIMu0gXrisUZM8evltTOyRsg +mn+V/nZeXn34tZARbJ4rAMrmOKIz/z0OCtZ6yNUCgYEArb6ZiNNwO3whl9nnrF/W +gY88X5EZ7TOu1Au7CCwoedL64b0fFy4CkCuf/f/Y+AnYLZGOR6swSpeVO0LZjH+u +gVaL/bxClH/HnfyIU5V1i0fkYFPk9FJ0TVCRi+hfCjsflZcWwZzx764n4voCbDcy +xkFqL95bTiaBix3OFtzB8KECgYEAuyhbDuEllkELCxORsY9Qz4Bnq/CQmWXSBVM4 +XW5H4RrPqeENWSgvEQ3eAGZfJSkaSzcu0BurP5/6avdu7n4K6aSP9+J2KcQaoGG6 +G18Bx2kPGO/5lYNjEPWNspJW5cNAI77dWbu0N1mLALIgOY8nox10ZEfs4eGEAvl3 +PkC5P0UCgYBh1qnXWvj5KT0pt7p2X7ayg2FHunNHO1QLpFBWhhgQlyvLns/toQWc +XXKogwiMZ8D6g3eex8vZ25K01JNn7uQUDUNVhzyUcSjfVFB1Bc9dLdNfIYvL4adz +BTZ7TjBYdScSIhjHKbaLwimHcNllYqz3vJ6hAK9YFVt5sI+/EixHmQ== +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.crt new file mode 100644 index 00000000..4f30d968 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.crt @@ -0,0 +1,62 @@ +-----BEGIN CERTIFICATE----- +MIIFOjCCAyKgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwWTELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAkNBMQ0wCwYDVQQKDARLb25nMRQwEgYDVQQLDAtFbmdpbmVlcmlu +ZzEYMBYGA1UEAwwPaW50ZXJtZWRpYXRlX2NhMB4XDTIxMDMwNDExMjQyNVoXDTMx +MDMwMjExMjQyNVowZjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjENMAsGA1UECgwES29uZzEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNV +BAMMD2tvbmdfZGF0YV9wbGFuZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK8wCJuLAIZa+hihNEOx/YBSx+05lXXgoNirVuJjmUhx80oZQsrUnCA3PPe0 +snkUfUTpe0g1P1YPMDQBoXK+MffpanTL2e5EIkD+T1ti9EkTZg+jnjdGaAZ27Y70 +9k6KTb/rFj1Lezswdo86WlXpxcbCFyHlMO590pCPpQ/VpQodqn9bTPPoTKTHlL4q +8no26rb16t7wBVrbADOu7lzcIZYB2xLslM5B8fk7jzIBPMb3uQxh+AhKn2bw07jv +unPMHJK64alfUwqRk9krd/1WICSm51eKi400kefrtzXRwtxjr72EmOCnZdHr2A0O +7ZKlHhZolVXaACghMd4IRI/eUD8CAwEAAaOB/jCB+zAJBgNVHRMEAjAAMBEGCWCG +SAGG+EIBAQQEAwIFoDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5lcmF0ZWQg +Q2xpZW50IENlcnRpZmljYXRlMB0GA1UdDgQWBBSpSKxdiN8o9qYMOy158lXYg2MI +qTAfBgNVHSMEGDAWgBTFMCb8aPv/0rfb5Z1zQE4cUpEV4TAOBgNVHQ8BAf8EBAMC +BeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDcGCCsGAQUFBwEBBCsw +KTAnBggrBgEFBQcwAYYbaHR0cDovLzEyNy4wLjAuMToxNTU1NS9vY3NwMA0GCSqG +SIb3DQEBCwUAA4ICAQCxdljA6Yxg7DLCs0RDZwzjHf4/H7SO888v7Tad+mbQcIzI +dzxEaAcXf0qvDsDEPcE8n3vKDC9kHm3wKFJqK04Clc6Su+BLvGwVO0TTi9yC5X0j +OFQQQAeth6ByJh7fqXkY4qkER7aunN77tpdmz4/m19we8U3DO/oQm87Fu89l6hMH +942rpu4uSz2J0d+PpnXulLOJx0xLWv8ARmJkGD8oWUrVMmeeq9q1Yz41Oyyf37Xn +iGUMLC1ejDTBw89wuMuqD9smka9stMdC/7mQWJJqz/Ww16MqGwqLvcK2WZzvU6jE +V42n0Zdq/rnPV63B/NZgwGEpfqWqZj5K0NfjboCoRmS70vWurFlP/oeaYZBoCoUW +cMiw8lnS53fFtX5Mt8gV4NLzoy5a4Q6qoZMzuudcabmEKMNONBp8phkqosSgkDKY +wJvhK1mYdWf3VcX2mjyW3j/shTXlKibesNZAR2XiKqEFqTkqFY6Dx+wpvsNIyvHw +ZWLwa71ZONVhVgt5Hu6w/u+hzrL22v/s9ticVx1jJ6lopppiXf/0Ex4EHjZI5h3w +Sdj2fCBsv05FWJqFadMY6gt92/pmyA1HL7S5rK5odoDviRGQxsCvBax2Vv4WDrIh +tcGGGUZ4nLeWPOqb9e8fJKJtILvQ9x4qRMmeYKMAkflsbjDNw6g612D3TV2WXQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFmTCCA4GgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwXjELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjENMAsGA1UECgwES29uZzEUMBIGA1UE +CwwLRW5naW5lZXJpbmcxEDAOBgNVBAMMB3Jvb3RfY2EwHhcNMjEwMzA0MTEyMjM1 +WhcNNDEwMjI3MTEyMjM1WjBZMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExDTAL +BgNVBAoMBEtvbmcxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA9pbnRl +cm1lZGlhdGVfY2EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXcXvt +kyiEY7Nr8VeEF2KTpGkEwPLNoLW9eNpFH0bFlKcmM/+IocSUErD091SCf0fGCRuo +8bISb4MVa5esq8XMUSR63cDmz2IbWOtvNir4wLfAoUuA4JBhubaSyaslXLf376QT +sYDjLH9jQ3rFYskz9hrlX1HFFmm0hlDnuqr1w0GF+6PxPdxRKkdvKexPuQp3qaVZ +dzKvFcGuCu7nuqemb37CBBkdRAgVUj37pXBIcc5p5h8PVAU24r7pAaYppDmmZMWa +uTSjz4K/PTh5GzG+snf8iH+EpTLGUqPElR+ABP8YiNrQQzgA91lPjwLqp6D34sMT +7xvk4Ri1cOpOsNA4hCdFPilzolMQ6Zpz0ELI25vBt8qY57JMlsUjaY2PR1gI+pE+ +jc52e18Bt/axNnbgxoxTQWPcw27mUs7H4+1WiZufhzz59obgWRnoCom0Fb6RN9Rl +8ezl+h30+Dgk8ftiFm/fI1BttL6dihveSP/xvuMYRFyT0F1ZNZhgME218cOB5hZN +dKOFynRgI4SfCeMNSy3KnrBoPYE3P/f1ljBbrR5x/xQE0V5iWFJwZwWexO0+Hf7h +Aaql5dcwsMIjf8MfHKuQOfZauUmPxu0EbM4NiQu5GEK/9rGEIO51Tlo237l6k4tF +oKCj3EUZ9cM02CROKGDM6vfkyeyGDbuDPGmdLwIDAQABo2YwZDAdBgNVHQ4EFgQU +xTAm/Gj7/9K32+Wdc0BOHFKRFeEwHwYDVR0jBBgwFoAU9NE7mu7p9CqGxLNWl7km +VfMeEO0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZI +hvcNAQELBQADggIBAKFvNX1Wv7lOsYvDGOCmIrJEDdjW2Q60p23v1U/R9Wv7xo7X +2SRuQvqKd3AB/9dCSgaaXKHwYgTPIS8NwUJ0SMvSwrnnRpZS5qkOB9JgRgAX5Ebd +eyupB2AumZ1BGaw2gqPYHm8zxu3N2yw2pVV9LJ2nM+IPTqiQrYCV7BxNpAd/v9OA +EC9XbKhPqdJ4bD6dGg7w5iBPadb6amAKkGutKjjB+AC/lJlM9bMEGd6RP0ywptQx +jAfY0VTElLsN30Q6pn31Xf4UzZk4xzyW04GaPFcJVoHTWSl969p0k0L/WAMakDHB +/g4VvkMTFDoH1Mi7ohakHnMC9XQbMVj2t/EE3XLiD4gcNEyCjXczIxDYJRYe2X3f +51vQNR921P1KUNTooGusltMmHuWBnT046o9rp/2uQvHm2y/qv1kCPHTiP7vhb/TG +2JCc+3LZ621EjH5jRvL60Pji4RnGGqLDBykLK68dymHVfrSAi+ZCx6PNxSm0Ydm6 +ZM1Vb8lD2EwEm20qKWM484ItWcVHgWEWDvaMjh0iIq45LA0KmN47iUN8X6rmdulZ +MDSnSYwJfRt1DdyUC0nDWMQaW1JOQxQxoJCoDmiLwv9BIeNB8LNJEU0FTOPc8xhf +VdlbjNIC1fs2OMWOc3A1hAFlf+vU8UYLRgYhLiAhFT2iwhBksSzGURY7eKqM +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.key b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.key new file mode 100644 index 00000000..79ea99e4 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/kong_data_plane.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEArzAIm4sAhlr6GKE0Q7H9gFLH7TmVdeCg2KtW4mOZSHHzShlC +ytScIDc897SyeRR9ROl7SDU/Vg8wNAGhcr4x9+lqdMvZ7kQiQP5PW2L0SRNmD6Oe +N0ZoBnbtjvT2TopNv+sWPUt7OzB2jzpaVenFxsIXIeUw7n3SkI+lD9WlCh2qf1tM +8+hMpMeUviryejbqtvXq3vAFWtsAM67uXNwhlgHbEuyUzkHx+TuPMgE8xve5DGH4 +CEqfZvDTuO+6c8wckrrhqV9TCpGT2St3/VYgJKbnV4qLjTSR5+u3NdHC3GOvvYSY +4Kdl0evYDQ7tkqUeFmiVVdoAKCEx3ghEj95QPwIDAQABAoIBACkcGXj+pnHg2X18 +HrqgAv/g7R+C+sq9mqEdm/bmLmssqk3CHcVhHP4GWF08XwFAyKCqNY7dR+6XA9XA +aDV34lvtv1iHGa3q+SrNQqwMTYz0a2fSGmeYMwMJV3fLjh0iIVqe/QoHM3TRS5ES +vW4ZvJqGo00F7nSYvBfGTZKorODxb3CIjFXTlJZ1u/+YDVswWv3+XrqXKponoedr +Zl8SCf7iqLz6cIPGnx6joIR/e7LK9eDBfgV8bxfsyulby51f06V/cBTQk4l8Qjeb +Z+iFJzZxDuxq219JLWYqKH/JIAchvPoov1PBfEZXK4fKunAR/mw6j4OL/X5H+Dj1 +ziFjbyECgYEA51NHPMiChIRJ4poaTE99CPPcJek3rIAP83+BSRm0e38hibfB7p3C +FpPhtWlMMM6YRAJsVkYrLWTtdl2nZbw3AuH46MM03nTbEgueQ2ry4hofzUKQfe5Y +VyQccFQvQx1XF8lFML0TIEZ1ID38G8oNhme/fk5eHsR7Bn8Pi8XlpY8CgYEAwd/S +qbTph05yCTYGeqqsMh+hUq9oqLvcYJDd7lStJjLlt6b8jEjZspePTHTtcL2vOwx3 +hmA4PQR2Rnc4M4nl8zMHSySk7m7dR9w01uORzk2BzWb2XHy+SdtwFWS+2bKJBWuf +DAtlQzvfF07ccxZfQQTjMGVkhnsDMinriWCxMlECgYBJTRNSyHrLQRwkiQ5yRfHq +B1QoUzmIGOB1GV8/abzOMV/QQwFZ+nWJL/0iviYdhSmsy1PHFt8RuFyi2FR2IWkR +Kcf1Af5by42rrzDMTjR+vyZ6pXAh54fovRGh6ps7Wi3B5M5e/lr0LD9rIxkjOSiG +AZQlkvGyMDKHwXWMpf36MwKBgGDMslBNpfQK9OEoel+w670zEcdJEYZ+FfCZJFYl +LTbPXuctlxcsIJYNGl1gXFVYQC/Jb7xGOo4stilEyWjiR1AAgHnCWB88d3uztSY+ +BcTt6gt2hzdyiUgzKmlkHe5wN/3e2FCZN/wz3pWyqFtGJlU+bXjyhximPthDGflD +r/WhAoGBAKFWK2lmVTiChupq3nihccggW0Dvk1NBLF+OTOGdkPDmNhypMJ7e1OhE +4KYHCmGKFPvg1M0+CQzqop4lxTzFz8NI/Pt/HkWbkbmRyHE2p2cUY4zGIfF9/nwq +vS/uKrJbHMqXyu/pa3HzmFtWrMoXd8/yCdSGwaNDK4ZCiP+hVMQ3 +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.crt new file mode 100644 index 00000000..21930086 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.crt @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwWTELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAkNBMQ0wCwYDVQQKDARLb25nMRQwEgYDVQQLDAtFbmdpbmVlcmlu +ZzEYMBYGA1UEAwwPaW50ZXJtZWRpYXRlX2NhMB4XDTIxMDMwNDExMjIzNVoXDTMx +MDMwMjExMjIzNVowWzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjENMAsGA1UECgwES29uZzEUMBIGA1UECwwLRW5naW5lZXJpbmcxDTALBgNV +BAMMBG9jc3AwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDOlydfksGd +jK5CI2yNdsqpA9/Zr6eksPE0BOkbb1LdrqNyI2pRw9D8tpEY6AqaaYwQQyVDA54U +BKE0L/PiqpACm4nKWv1XNsRK+REhEw8V4aqgkt8oyVz2w22mXq+DH8+iCmlpap1N +ZfLXpKz0ZS47uvhFscs3N8bohWI92EHrMxp3JKbmWdoE/NnyAF9wV1WvYpfdpcDT +BKwxO7lW7cgIB3kArtvGLLrtkVhR/js/B+Ff9CLugImGrNnSXfiXOMeLhui1U4v2 +aYEM+BN5TC8PTIoLwo96SRoBnZBoZ215liJiF3peVQNnR1NCYmJ6jQjtBXC4/wz9 +ganFdYF9+WSzSrBHiwIe7Nn7ARdRAtJPvOUBvaj3/zNpNCfikqcvGSTgJ1ixw0oO +8o+UvWThQCGfB34FkG3oAl0y7SEpFKU6+8IWqPoM7Kdm0ZFUKXA2G7RNl5gH/o/B +qVJyx31OvvZZoc3OyTInRpxNdhrWRaJppYw8xxv4mudedf48CToFGQjsWumVkjlU +VdPSVP4VbgrOeVwwas7YBONES7oqkKnvjmLHqAYdalMLyopSuvnb3X96Fp6L2Oms +FuNo6/7AUBVQtm0I08uCRWhP2CPeca1fERgTbO/puECMW3XqNAhyBB5e20uxcB/E +h3qgu4y2xcn6Za1aQ30+RUB5n7DST0odEQIDAQABo3UwczAJBgNVHRMEAjAAMB0G +A1UdDgQWBBRnqkgve+lZRPAGhX4AwHIMJl++gzAfBgNVHSMEGDAWgBTFMCb8aPv/ +0rfb5Z1zQE4cUpEV4TAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYB +BQUHAwkwDQYJKoZIhvcNAQELBQADggIBACuoaNr7uVBIfDFo6jdLqtiVAOKsUxO9 +EDoBIpGGiLOk3/NZxKUG2+xhsuAwZxPIVxifkg64qlLmMzZMrWFzOvkvRDYnU2se +s/1sbOC3h+Xm5G5HjRhwmHczXUljyZySz0m8UHWeJ49zkDVIGzEBXrRnzBtji1N2 +9PddIz8zhqMtP33nKTo9m1kkkdoA3cZ/fcM21doZ6+ZimtRcOOz7BgQLOwPupq0L +9DxBjJYwPrXj5IRaib0rZQ+kdjPNgggCryvJCk/27dKAwFe4rWLmFYQ+fgY2N2DL +djXtxDxZ8Gw3x+GM5agI/BUhTscx4AvscZZr7brSPPmW5Q8nAE6NJQtanuT0VCuU +VoRwNuTs0w4uTXyS7TwXDvfSrQqQLI+O7BWDnJT02FYmakT5CFsf7zqJzsbhSqq7 +11qK32MBN6q7QvH9SZi6A1jK2UgGiZSCZxF8OFQGJxaf5VBL6naP2NlPSeCZUZ5X +eWVqE/lXi4LLUIWTwGdjbfkY72FFWThZoxtS+lM/CGVjVWS9gwABL+jiirZL++qQ +y9IzzULMyxd6Xl3/eEzwT8kYjgwUQ2KWnjaHSBxHssJiRyHUhl0cUXuLGiW5fsHE +TG6WevipP7qdOiIttLzFyC60pLR7v+vW5VrRXGR1kzou5N1ESi/ixl7PY9fg+wp0 +cWEwPQGHYdE/ +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.key b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.key new file mode 100644 index 00000000..5d0bf2cc --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/ocsp.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/resp-good.dat b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/resp-good.dat new file mode 100644 index 0000000000000000000000000000000000000000..0004e5f8ba0226217345899a68ac2ba4d229b1ba GIT binary patch literal 2259 zcmcJQYdDna8pr2-=bbTT#wliKkWft;D9Oh`l_mWC8V4oj#U zLk^41B%LG2VmF-}mgNxD$gIk;9U|6f@Ah8T-s{8uvOhc@{`YfV&vV_^_5b~EScvJu z0*E3ZrWF=qn$YqTG=M_M!2kdWF}1SNRrt81*c;wU#liAuq#J}*1>Ib}3k)8#+WK9{ z;X#)jR0SBf)P}`F_6LJ`R5f_nlEmS0%wQfrn9B|2%c}ouLgJx=oUjlLC1co_3e#W{ zD%IGOMrXm!uoG-9`wvA?M1mv~0#XCxH{7cBkLXD~+Q+u3wKDV%pyWYnkKr}*0dtGu zn|-7CVOw@-IcE@tKu{TsL;Tm9#rm)=tn=^rKxi4HtZRPgpf|@*lF4pUP8IA}v)snxrRrmn!`B=_+5aJ2e$Czkgz5H(6OsI^sMn zVYaK2ET7JI&KG$iYck?t!C+b^wpFmktXMMLzS2EYbab6VXt|+I?m8+zD`)46GxU&@ zkPgdF&fq}q%P)$3b&`Up{V&hVE8OepB(@8#G4_(;1`6@bQN){nXQl_B{U@?FCCA$P zoGab`u485P=x~hS=Go5mtX3V-=ldUf_HBEUpqFMo!@Y9W!b2^Z)^_g0fsV~>u?c15 z0*f$%=Db5w(FLef>Pqo1VLxx3h&?h<=PC+4+iCK|pV$I5mlln95o$vl1{1E+lY#vH z@f7T}a(TaljxU62g-;51RVx&R#ywkc80xTIg~}zf7DjIX~7v%5c zPP{Iyp5$&YZ4 zsjh)q8Ds7dvEmDUynO$&3|E5?y5^0YIk|ERX%8!%LtA2Y-J9|(e%je)Ox}^VGlKMr zd4XS+V$q^GbMBo__=1Hz1GOA8&XSzT{K3`jx!84q5RC1N^nwMQ-O!uu_6_UOD?grQ zw^X3D1unSuWaoz2zWyJhhy|iAD)PIfu4;`-OX zz`>g*N8gSFTc>J-+GtV%pBua@YXsY8F?)4BGLkx*hwQ3uzh)&5Z~)V)+uJ^WwaslndbIc0pp&wM zJe6Z+u4po`aMa0uEF!JD$I*81?Ct{hNUlJ2)?Fm*a60kR10E-6R^y`|)6>keMAP|; zizSB3ar3_$j{uC`4=2~z&yA&bh-pu^J?W6K`dpG2{`HZ%<>PURFRti literal 0 HcmV?d00001 diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/resp-revoked.dat b/kong-versions/3.2.2.4/kong/spec/fixtures/ocsp_certs/resp-revoked.dat new file mode 100644 index 0000000000000000000000000000000000000000..9744f11df95d86d445534d1e8181468b84bf0967 GIT binary patch literal 2276 zcmcJQYdDna8pmhed1nkWNRAP5N~L&bh9QI;a>^lxG$UljV1z^zQW|myF%l{XQMl-U zkYYQIQ#w#9hn2>0IgCSPV^ZwV-tE2CzSf8JWqo)){Qu8=JVK@qJXpGPl3h)CI^2CJ}lsP z2qy?(Hp>LCp!KOhADkGpbyH%n7_&ehdLWG!Oy{}(DMDbuQ`C?kDPcT>$3X;06Nkg= zXlarmD&z_2@%}@q2_XP!Bn%V-V$`3Od4&z6oExH8JTckp<*SwhinT#Izxl3h^wtbb z+zv6a-R{5?9|3?ZK)%Qy-^Am|e>8ZXUh+X{qDy}7R zgCIc^|DHIDxD`P-9D{@*7yuk*<07weoyl=T&ijd)VuW&{cPA9swstUW4LYWg3n`C+ zlbLMWRMz%F#9;Jykw$7pRN{ToaJ)`Ul(Q8-NP|QqS6|H(D9od#+ihrkl!UQJ4}*~X zZT0Ns)PkHavjP<$1W_Zc?EiMQv8Qrca@G3Ql93qZG^T$0d{~POL(Ec5X&3i%=Fy!m zZ26iQ>(}Yx^(ap8(FDJUt7! z{3pP$f@^ldN~kPxNZrN^z1;W8t|x(Y{=jN?wpba^9-HbaYWb54Jgk3jPDz6-V{ifM?kx$a1GA#7%)X72bl6J*!RSnA3gmJ4=vt==( z*4IrNT2}8>_YC%msNSz7O)uhhvCLyZ--VG~I_UBWrMnq;_Ku#&#Ew>D`6TwvMH~@= z$|f6u+8tR5!)I%7c?@JZ#6XttP7%aFq~sw0IKWFC?Ek_7k$#f#C(QgMOr#)*O?VJk zVS3;hT5tf(i|%=b=0Wv@ zU=xs+S*jlCO}CRD7%Tawgmsl5J`Oy*U-;;gCO9o~%HhLb83X8H2ij&uTMaDrXoc$!rd9+WA127p+uyh=a50Q8`$rcO4>p%MRC0< ztsa>t0dkyyHMryvpx5sC1iZd@WrIN1R2@yfudz*;t$OTni4>u z0aJh*eokSxSds2pvqbS%Ea$%W8>Z9lAfil_O;$GFdTLXNLvVYPZNoAtzvpEqUiDCp zO_=mAW(D-3Wc_xT)tkS$hpy}M>ms+IIppc<>HD3W`+A+$#RCOih98IgUiO1yrq*?P z(n=PtQre4AvVM-3t}708+@TK_BP4Q@`lrhz#(Zbj8|}sIs{_z|-3&8dyMCqN)8!r_ zQlkC~)3rv)uAwuU=wMLJeaQN8kbG-=MBcOH>bB0Wv~sdZl!2L1_?<_+c2=??00It! z-wlOAerya`Q4oM&kSs6BvO=H)DCSdYp%FPvGF?Pnz5r_s#_sfJh~W)l-nA0QOMLX7 zPIX9Vvp^UQ-vB`bz!&|43|W;;jfDhI=zp&*1pn`Y`Ey{a75fgZJ+-$ukMo_;wl3|z z4jV0V6s_N)3s+>uB~%uE{6cCiLJe^|E7*{aXori`ophnvQin+b@o>3kh%Q&dl&I=> zQm*p5zdySseqwSw&^$#dDElnI&63)glm5!`xqWD^YHCQDmW2!s?q22dLWY{;7`C+H zresKnySvXY>bKpx2X2v+nS-zotcy`C#CL<+W+y2(-yYZDtf4@R9%BApIc7=!U~(p8 z@MLT}mYi6xMiVX!BlIxPz(ci80lVe7-snb`+H%UIc&xz%6jA#`cbL{(t3GMbU%P!I zd7>EoOaYCs|+?lYqo(W6sAF#7z-#C)%5>E3I<+>y>y6rDtYxJQ8aHSSJ%}6?= zyD|=69SzYmso{Gyx3lH10)!;5yEQdhBJCX~!vV!Xw6 z^NMDQxx(8xx9vwFlcZIiUTA7P9GDrgT4GptTUT*k)$_Iv^{T?E$bZcKGC_WG+$;2& fuKM@~Q!9;8misH}d-j^ZnbV%o0eHOU8^eDAXF{1Q literal 0 HcmV?d00001 diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/opentelemetry/otelcol.yaml b/kong-versions/3.2.2.4/kong/spec/fixtures/opentelemetry/otelcol.yaml new file mode 100644 index 00000000..9cd430d1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/opentelemetry/otelcol.yaml @@ -0,0 +1,28 @@ +receivers: + otlp: + protocols: + grpc: + http: + +processors: + batch: + +exporters: + logging: + loglevel: debug + file: + path: /etc/otel/file_exporter.json + +extensions: + health_check: + pprof: + zpages: + endpoint: "0.0.0.0:55679" + +service: + extensions: [pprof, zpages, health_check] + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [logging, file] diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/500services-each-4-routes.sql b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/500services-each-4-routes.sql new file mode 100644 index 00000000..73048645 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/500services-each-4-routes.sql @@ -0,0 +1,2549 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 11.16 (Debian 11.16-1.pgdg90+1) +-- Dumped by pg_dump version 11.16 (Debian 11.16-1.pgdg90+1) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + + +SET SCHEMA 'public'; +TRUNCATE public.workspaces CASCADE; +TRUNCATE public.routes CASCADE; +TRUNCATE public.services CASCADE; + +-- +-- Data for Name: workspaces; Type: TABLE DATA; Schema: public; Owner: kong +-- + +COPY public.workspaces (id, name, comment, created_at, meta, config) FROM stdin; +dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 default \N 2022-05-26 09:04:16+00 {} {} +\. + + +-- +-- Data for Name: services; Type: TABLE DATA; Schema: public; Owner: kong +-- + +COPY public.services (id, created_at, updated_at, name, retries, protocol, host, port, path, connect_timeout, write_timeout, read_timeout, tags, client_certificate_id, tls_verify, tls_verify_depth, ca_certificates, ws_id, enabled) FROM stdin; +a7182665-e3bb-4ad0-91bc-bb013404d465 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3c089a41-3c85-4e95-94bc-9dcbcc02d5bf 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e4e0c0f8-8f86-4138-b90b-1ab4b42c545a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +635667df-d7c8-4c8e-961a-79094fb7edf7 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5db07df7-6efa-42f1-b526-aeea5f46aa7f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0cf9ed94-6fe4-4356-906d-34bf7f5e323d 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b0d849d4-9d3d-48bd-bddd-59aeed02789c 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d609eb1a-3c6c-4867-ae94-ad5757bab196 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d92656d5-a8d8-4bab-93cf-5c5630eceffb 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1e306cf3-2a3b-40b8-91b4-f50caf61d455 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b13775fd-dac8-4322-b7a4-a089d677c22d 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0d5ae4f4-5ab1-4320-8057-cd0b21d81496 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e6a15913-9bdf-46ed-8e9e-b71a91b1197a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9124182f-7ccf-465a-9553-4802b87f4308 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ad9d034f-2de2-4a1a-90ad-7f1cf7039a2a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9d36f4e2-ba97-4da7-9f10-133270adbc2e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +71164672-4b79-4b4c-8f23-d7b3d193996f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d2c68623-5766-4b26-a956-aa750b23e6b9 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c733f9c1-8fb2-4c99-9229-d9a3fe79420f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +879a9948-ed52-4827-b326-232b434d6586 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6c2f637e-3365-4475-854d-2da53cf54236 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e5322b5b-36ef-4b9d-9238-99de86473537 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d71477b1-e512-4b80-b755-d0a074de32c5 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +548bb3e7-fc07-41c9-9299-84a0708a2a59 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4ce0aa65-7a39-4c13-8560-50cbbfbfb393 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f4dae3be-eb46-4361-b84c-da2f83277f00 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +25076386-d45e-40fb-bf23-6078de3ecab7 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1525a86d-6ae4-421e-a2dc-d5758ba22312 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2c961425-9119-41ad-8df7-7b288060e995 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b960c35a-83b5-425b-9fe3-2602de569f5d 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a882f2cc-b1ac-40a4-8e5d-09d9595c5140 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d730b9c1-e795-4c90-b771-3e3ceb21ab91 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +406467e3-6d3d-40a2-bc8e-9942b8be51b8 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d5ab8d0f-b02b-4bd6-9d46-ab7da78e15ef 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +62131b85-cb9b-43d1-97d8-f4b2966dbb68 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +35fefbaf-66df-47b2-abf0-1231af2788b5 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +63639c14-7690-4f27-8a69-4df1aca28594 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +872066a1-4cfb-4f69-ab14-2de00fe8a82e 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +056302e1-150a-416c-9a4f-a9fb03f3f651 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +73734495-785d-42d2-a755-0ad0b1acf933 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8e691f37-eb65-4e3b-a6e2-0525412a98ab 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +569a3987-9516-4053-92b8-aeebdaeeed5d 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5839b3b1-f03a-41f9-b645-a35ff680acbe 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +649cf33b-3d04-46f8-b849-4bfa449c8a7f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3282f133-b8eb-4e46-80c6-a217df510860 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +da88cad4-bd4b-4a9d-b81d-d1445bf108a8 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +365b2abb-1347-4077-8ffc-5b21984fca7f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e3cc7fa5-1919-4753-9afe-6f30f67a2c2e 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fb53dd51-d113-4650-b980-e761871f3c54 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +851cd368-f1ea-4584-8cec-9a430f9b1a3f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4658664d-4ff6-4ab7-a9bf-8c0492c974de 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4d48bf3c-a575-4520-8817-34f0b84dd4b6 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +26968e02-8bda-4c4e-818c-8ed35d44fd9c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +27f10e41-7155-4eed-bdfa-783271fc8bae 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +73bc0430-7355-4c6d-a974-74f5bf707db1 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ef27392a-1fb8-4611-8757-c42b55900756 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b45da34e-3338-4878-a3e5-d78df8cd22e7 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dc5da515-f616-40e9-9b94-d699fded3db7 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8168f4cc-39af-49bd-8b6e-a365f038bebd 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +051898cd-71d2-457b-9ee8-c080908da498 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cdb3688d-b5fc-421a-8c06-cb14fc6c5ff9 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cae8aca9-818b-450d-97a6-7ea08373e0cc 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1b7c0f6a-9eab-428e-b979-5995a4ff6527 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3e658a76-cb76-4be7-a15a-84d4883b472b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +800121b2-3644-4ea0-8539-25d513acb472 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +89b2af01-b55f-4425-844e-bc2dea397b93 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +34f521cb-53b9-4824-89b7-15459e96532f 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +33a92a68-5e8d-487b-977e-89dd42a458bd 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dbbe71cb-7ec1-4c43-804d-ef6a92721d90 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +69a88ba4-e530-4723-b7c3-f739b92a5a66 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0d1eb445-8a10-49bb-952f-5eb35a8599d3 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a03dac5a-20dc-492d-b4db-732a79d4a30c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +291a0424-2ad1-47a6-a8b2-c63a037bf03c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4eb8a749-0bd2-47af-8fdc-4cf128bf0b66 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c398e6e1-2f3e-4897-912f-483c03ec6959 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c544969b-0b53-43a7-a6a9-79e400d7b852 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1dc10ac4-8720-49d0-9624-e2320ad83910 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +961eda07-6db4-41a9-b053-55f3d86feab9 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a92dc0e0-3cd3-4c00-bfbd-1b9d849c617b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6fc0c8de-dd47-4b2d-be48-acff77604738 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c1477ea4-988e-40e5-b7a8-6fa4e688f36d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c0ac16b4-51b2-4388-a75c-99a6e8864567 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b3490c56-2668-4cf8-ac26-9d3c38fb9ce6 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6f607e1a-2baf-4f12-b0ed-270073df30c6 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4284966e-2ef5-45f7-b16c-faba6666c300 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0a3d005f-e8ae-46a0-bc92-0a4a8147fe3f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f7039445-e8fa-44c0-ba30-4db609972643 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +10db8481-4fa8-4531-9e0c-fb20e642dc40 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0069a9d9-459a-4efc-b5a2-c0ae786c92bd 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fa73881d-a74d-4349-8a9c-b2ae17b414fd 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fea825b5-53e7-4d5e-b594-5e6d20822e27 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0f9df5d5-3dd4-4a0b-beef-5aed37af31c6 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7d839f08-fe27-44a8-bbea-abaea85e8ec4 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4e27c8d3-1b57-4837-a62e-7b7129f23b87 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +187a1bbe-8750-47fd-a693-eb832b67106f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +97cac022-7f9a-4eb7-a600-3f99cbdf8484 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f731ee23-32fc-428e-858c-2451542ef358 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7cdc1f2b-844d-44af-80ee-9ee8ce30ec3a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +786c4ca2-f7e2-497f-afe9-04a7d389cffb 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +327348b0-de35-47ef-a46b-292bf1a2ce91 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +42231a53-eac6-41d4-906f-96a6007efd5c 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2e5dce8d-7e56-4037-a53f-5363e78cfb67 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +880c0dfc-3b35-4557-9f4f-20e450605453 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2d1e40d6-8080-4cee-98b2-c64c3dfbeb70 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +92e0b48f-e57a-4b37-a150-ca88c81d14a3 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +837f896d-e596-4681-94af-74e1f8832cec 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dfa8a1f7-4dba-4abe-b98d-11146dddf483 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +87b83cd7-e97b-46e2-b8aa-cfc3f41df930 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +090f6901-a7d3-42e6-94f4-69ff07632983 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f0c01e5e-139d-4458-a3f7-47c6f9eb59de 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c1ad53a6-4115-441a-a162-5a27b3e5c01d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6b12e083-97d5-4964-82c5-22bc95802ef0 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +75d7f4d4-c369-46cd-bf84-fb40784d4fe1 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5e861b07-f18f-48b1-aa4d-e44f7ca06eb5 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dc67018b-ba17-48f8-962a-e39d4e96eff4 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d025ea98-eb37-4e43-bddc-302f5d4ecee1 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +34f418de-2a74-47b6-ac68-9099b4281763 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +81c2ba99-2238-48c5-9d7b-ee96f85ed0c5 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bebc02c6-4798-4c51-9c65-6ac83e7e2050 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +84579611-336d-4291-ba77-6907426203d0 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +03d2fc5d-582c-4f45-bce2-41f8a1e45f45 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8bd5e802-0de6-462c-89d8-8a3dc33743fc 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +75a284e6-a2d0-4fa0-9210-d1dfbfe393cc 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9462d6ae-3811-488a-8f43-93afe7e8d6ed 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6a8aa9d7-cefe-455e-8671-721e43cd0b96 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1a79fb8d-58e0-42d1-a2b2-a9f730a6d635 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +693ae85e-2dcb-4bac-a88f-832ef036ec35 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cf55043c-e758-4007-9d0b-f29ce449b017 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b0f369f5-47ca-4790-a7c6-f70ef9670801 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f54e8793-3010-4551-8a86-bc026fcdbd71 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +eda8a272-adab-466a-b5c9-ba27137d2bc3 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +78c825c8-abdd-4280-9da9-d3bf00e23f82 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c3dc6599-036f-46b8-a95e-8e5b6ef3a3f5 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4372ca08-22e6-4a0e-8d13-f598ba86cf37 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0766430c-c266-489c-bc27-58df3fd10388 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c7167c55-60fb-45f7-b257-4acddb1d9119 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +76b8797a-0ad8-4a9f-9fdf-561c79e481d9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bad7c636-19ad-430e-8c49-6e4efddc4376 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fd6fd9ca-1169-45ba-bb87-8b846a8d0d3e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a2ee552e-0961-4036-8d1c-8ebd420f28ed 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6fca3f1f-fa31-4c70-8059-aee7dd0d5be3 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +70d03905-4002-4dc1-b3f9-336d25ee164e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4693dd6c-1d27-46df-b5be-259eda6ad3df 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +390c61c3-b91b-44d0-9132-d629f3f7f2c2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +addbf9ae-c319-4a46-831b-a2c71204cfdc 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d59261e7-93ca-464a-b84d-cc9c64e2d649 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +37262d9e-1dd7-4314-9a5a-d289c7479be0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d3ec5e93-e9e3-4fd4-a27b-6af1e300aa4b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0cdb0d81-1c8a-49b4-b5aa-50b627e298c6 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5e987b7a-1d92-49e3-ad2f-362501d07bf9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +98193422-6ec1-4767-8568-e34555d37244 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +23c5d21a-6ff6-4f87-950b-3189611df400 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +61b20f0c-ad75-46c5-bdb1-c9ee4db679eb 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f658e233-91f5-4e42-a97f-43303defe86d 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bf2c91f2-cfdd-4f0a-bb05-0433141ad9ce 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +44e7d282-81cf-4f35-b20d-289a41d57da9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5e9458db-1f76-4728-bf68-8f100dcb5e04 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5cf7efb5-6ce3-4bfa-9b9c-69615c0424c3 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e601de5f-ad58-4d48-83b7-bc0e20cadd7e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3995380e-ac1c-4133-a6e1-65a2b355a121 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +109dabd3-4d13-40ea-b6f4-2a94d74c7f6c 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +502c5b41-66bf-4383-918a-badfea2d25c7 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9557d7a1-d82f-4fab-a4c1-59b705f29b2e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cefbb83a-2d32-4aba-83e1-1ad7811849e9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +24fbd204-d7a7-4d11-9109-a73e52f718b1 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ef9b8d4d-3e83-4353-a80e-426e5fc7cbb9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bd6e4a2a-b1f5-4fdf-bb0d-6e9918275bd6 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a39c21f4-1588-473b-b5f0-ca58437f5670 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cd7ff4b6-0461-43d7-89d4-00df67b34598 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d46890a2-26b2-4d3c-860d-f54cc24b7663 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4d17db21-c723-4052-9a5f-d704fd01862f 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a9c1b4cf-9457-4010-a9b8-4f5236dcc5ce 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e79cb133-66ba-406a-895d-559eddf73902 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8b99e7b2-ccdf-4cb9-b185-e3cde9ec9af7 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d807dd5e-21de-4d30-823e-41d98b76bf8e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +00284c22-d742-4a15-9a67-4bb4dcd90d8f 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +751853be-1e25-490e-a6ef-9417a6b540ef 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f73bf090-0d18-40e8-b186-7fc9e91e62d1 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +12042bab-a587-44e7-881d-2315a7305c39 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9b0c19f6-6ab2-4119-8a6f-37e8f15cdd98 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d76ebd2e-5ee7-4810-864b-3a12440faca9 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bd3ca0d9-03ac-4021-8de2-08321ccb3277 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +528428e4-3f06-482d-8b4b-65b51c3bb653 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +73e663c8-0f96-4908-a02c-5c7eea81e327 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2c40d9e2-469a-4c7a-9bcf-61552994e02e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3e2fe25a-fc33-4a1e-a1f1-a60ac070e341 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a344e177-1f6e-4753-8404-a3fbd716a992 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ababbb85-337f-4aba-9922-41daf23c2865 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1b075615-d2ce-4b5c-997d-729c664dc4f4 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fe3e3c81-0f6c-4f7b-82d7-06022c1613b6 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +54d95a23-896b-40b4-b93a-dfe4b4083a23 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +92af388d-d0f3-41a9-ad5f-ed90b03de869 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5a61733d-2684-4d4a-9d35-bf785b7c07c2 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ece058ba-4c37-48de-a640-d7b889c4fb6c 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c2c49d74-23c3-4ce3-a9e5-f0ede3967097 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fbdc551b-4550-4528-a74d-a595aa492b51 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +92c2bcd2-bb73-4339-aaf1-8b552ceb0106 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c60849dc-5675-492f-8bab-5d8cb3626823 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1d6aa622-24ef-4888-a080-ba20e5c89316 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +204833b7-0070-4b55-9583-1df64dc7ab2a 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2cebb659-d522-4e02-9ba6-90e09ced208c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8fd65cbb-d37c-45ad-95ba-f5bb0acf87e0 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +310fe133-a807-45dc-9dd1-6a6b1fe1d07d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f7df66fb-1d8f-46dc-b569-de1b63a0344b 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b75d1f70-93f2-4de0-9bb4-7a1fae40e29b 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cde580a3-81d5-4cef-9858-f99a1f629422 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ebc496df-a1c7-4046-bf99-45778c2de1c6 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2a2d78fd-a19a-4a2c-80c1-816deb18c823 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +88c9d8c2-1bfd-4b33-81c7-7d77866b2d7e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0eb52ec4-f6fc-4c6d-ac31-e07b84f7e17e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1c255589-3ec2-42b8-b722-32c1f9ad2510 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b5af350e-6e66-40e4-8333-e0595f756e83 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +607a67a8-1ab1-4c96-869d-71ffc14a90cb 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +97657a2e-8286-4638-b42b-d8f1418f68f3 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8ebbdaa1-2ede-459c-8f20-9eaf6c4c5e34 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dc47a6ab-1456-4e60-95d2-50b7251072be 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +17157627-0993-4a53-ac67-5dc31565a022 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8456d2fa-f8ee-44c4-b062-376c225c6ad9 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +289e1e86-7c79-4686-910d-91d138398782 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ef250969-68ff-4fc9-a9f9-46f776374937 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f75fa431-1d5b-4a84-adc9-f2ab778755f2 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +395b99d4-38f4-4268-9cd0-fa6e0f2cff94 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fd296ad3-4272-4acb-8246-1853ba56f38c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2128d33e-4e88-442c-a077-753f5bc3cfb1 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0e047d1b-5481-4e2e-949c-8bb2dcf9e5e9 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b3a256a3-3d0f-4a67-9518-dda233dab2a4 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +75b76bb1-fcd9-4b1d-8a07-9c89e323838d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b9fd2d19-6d98-409c-822c-b53d23fc6bf4 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +999a382f-59db-47a3-95e5-3c7c387e519c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +12475fba-736b-41ef-b7c9-91f0ab42706f 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +991a0eb0-d11a-40c7-9c0c-69134e425825 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a8911c95-832e-49cd-bbbf-adf393a69d28 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +05d5816d-797f-4329-8693-6864ba16fa00 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b198788c-dabc-4723-aaeb-258b242f5bf7 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f827a7cb-3a5d-49dd-b15b-4a6a05c8f76c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +37142dfa-010c-4d0b-ae54-3285c60e177c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +82375487-c356-468a-9a2a-3999121b401e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d15f0c0a-bce7-427d-8da1-07928f5d415b 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +24e96d1e-b429-4a11-8fd1-ec0688531b53 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +eea2568d-e01a-4936-a539-01988a96bda8 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +aea5c9f3-3582-4705-be7d-88c291890572 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +062ddf91-5330-4185-877a-f8cdc29b5580 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +839c749b-aebf-46d3-b72b-ce58fb730dbe 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +75fa1631-c22b-4234-b8e0-0e6a79d24963 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +56e78f0a-a314-4f02-865a-ccfd68eaa009 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +11b2be65-4a17-48f2-8a23-3c377c31b8bb 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8497dff1-9e4d-4a60-b7ba-d4c8ff11af87 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +712a182e-b50a-4efb-a0f0-ca4fe894e577 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ab44cae8-8ac0-41f1-9671-d07d69bb4ad2 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +86074cab-06f4-425d-b52a-7ba8958f3778 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3342939c-cfcb-437b-9ba9-ba20845e2183 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +be8251f2-6fd1-4823-8bf1-bc8c7fcd04be 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3d42dc37-596d-4996-8f00-b3c2fb6de270 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +704f1d16-e489-41d3-8a88-ee2c5b9b603f 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +de8247fa-8178-495c-9fdb-111b5ae55037 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9a548e20-7aef-4cbc-b959-e1680c595689 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6d28de77-2ca4-4bb6-bc60-cd631380e860 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9630e957-6d21-4127-b724-dc7be3e201c1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +439b1ab5-f5d1-4fce-b52d-b2beca2c2d6b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c385836e-5c56-47a7-b3d8-2388d62b077c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5e375f63-692a-4416-a031-72323da9262b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +15ae2d93-8e77-49a2-a00b-1f8c7bf6b5a4 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b4045684-2ff9-4810-a1ca-9bd3993f7cd4 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +75d178df-1223-4f56-80b4-1bea51adfc97 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b44e03a1-22f5-4443-ba10-921c56788bfe 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8577c35b-106c-418c-8b93-90decb06af58 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +18b21a7d-7f74-48b1-b9db-9ffa2db7d904 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +62f8d892-76fb-4ef9-9b66-b0b81564bce5 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +08da3a9d-5fdf-47a8-be8f-ce287d2f2914 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e6ff5e56-255d-440d-81df-a452a2072297 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5d13ade8-944a-46a1-89db-e6707760f27a 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +783e864e-f9f2-410b-ae7e-f083694fd114 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dd29a63e-9bd9-4a46-99a2-bb4de34b390d 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d308ba72-8ccb-4b74-bc09-c3ea91561b47 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bb545b0f-69e5-4dbe-8b3a-8d692e9f0465 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +09688798-b181-4282-9b47-4ea11cbed88f 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f2f31531-6e81-4e47-8ee5-21db84a28cae 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5718da07-3088-41a8-a8e9-56d83309d49f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +858587ef-4507-470b-bf83-53d9d428607d 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e838f443-11b9-47d3-952c-b29d32c47d99 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3c00d6b0-b98a-4e77-a9e8-3255963487ca 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7968fa6f-3fce-4d76-98b7-ac7e1abd5f3b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0215b396-4130-4073-8c0b-a994e36641fc 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +053a5358-18e8-401d-8eae-709cae78044b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +645d937e-50e6-428b-a66b-b940faa02f28 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +19fa1c11-2031-49e3-8242-33a1fc7aeb18 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9832ee7f-74e0-4e0b-8897-44cfd8c7892a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0a5d0d3b-055c-4338-b19e-1fd4d196234a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +70fae9ae-8e2b-4fe7-8c2d-3c50cf88dbac 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +554fa44c-d64b-4501-84f6-8543e0ac1c42 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ff177547-b49b-4e7e-b3d9-f99ba78df0db 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +76217b97-af15-44da-8565-39546305a786 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5f70b4d9-fcd2-4a6b-b5d5-57f603a2d936 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cddf8c8a-8e68-45c7-a771-d5d2d8aca8f5 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f1e1ff63-b396-4ed6-9305-d4d045a2e9a7 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +22fa79c7-1a20-4b96-afbb-cac2c2c22706 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dc31ed76-081d-4ae2-b4d3-c249a4348842 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6331cb28-6a75-45e7-9d9d-7225d0996e0f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d9a841c6-6bf4-4cd6-921c-f38e9f772cb0 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +49b9e591-2b39-4cca-b0ad-94880347cb6e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +50d5126f-ed18-4022-a93a-3fee8b5a2a61 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e1e1f82a-936b-49d0-8d28-ebab1f134a1b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b5815188-d327-4734-ad11-6bd6459b38a4 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0808e339-4431-4419-8c80-0bd658eb351a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8e7cf859-20b8-46cf-a515-89cff33cbaf3 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +876e891f-4820-4e1d-96d5-d86cb4ecedc1 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +84c6bde5-724f-4beb-b1c0-16f07b948029 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f612ff85-e276-47b3-a33a-63499962253d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0e58f9e2-049c-413c-9053-520742687a6e 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +82a6fb35-6254-4f5b-8aa7-c0472632af47 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +258d783d-9e92-48d2-ace4-861cb00df9b7 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bd5dcc38-1fc4-49c0-80e2-f26fa6a49a9f 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1e5ab1ef-87e3-4ebc-92e9-ec9c0f7aaa9f 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5e35d3e9-49a9-4976-a638-4e6764ccd426 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7bab5fa6-6191-49b8-9c7e-8addeb144e8a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9bd52aa4-7158-4d06-81f2-a10f99e33f08 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b26027f8-6fc2-46c7-aef7-d9cd67fbffe3 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c00f7722-3c3f-498d-9808-cd4a86007958 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c512e792-661f-4223-bc9d-6a9c059a4a09 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5f154afd-4a66-4d1a-be2a-15354ad499fa 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6226f972-df24-4f54-a21d-e90352622724 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6337f622-dad3-40f7-9a25-acd776963042 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f60b096f-1249-4270-80eb-b451330fc934 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6f477457-1329-4c51-b556-9ab27a341116 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ba259465-73c0-4035-af03-083de17865cd 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ad7ba3c6-8d4c-4f5e-9c8b-58b6b7bc2b42 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a3caefa8-c914-44c0-ab20-e5420eef9025 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dadc0a91-472d-4792-9b8e-d573a52b9056 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8b00c8a1-b680-492a-87eb-350ca72bc616 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +24fe112c-a8ae-4ee0-9abf-b5d8a8a61f65 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +33da5233-b9f0-4d03-964e-10a619eaa459 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0158712b-2d90-482a-8ca0-5c4dfdf19d42 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +91dbc846-4c2b-48f0-a5a4-651c884f2b5b 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5a2fb39c-5e8a-42ce-bcbe-a84fa6e4d12d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4994d988-d33f-46ae-bec1-f59018f68103 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3d398236-c1e0-4051-9845-39c6d0d4b547 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e2d0e93c-d371-4a4e-a0c8-f30530c873ab 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ecea8625-a170-4648-b363-e132983ebbcf 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bfb8643d-7f56-4d95-b2a7-cce9f6a75598 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +93947ca9-1278-4b68-bf9a-3be07d766959 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b81aaca3-eebf-4445-8bd9-f803b8b54551 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4f0fe748-796b-413f-a4f5-3cbbe44c27c2 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f406cf4a-75c3-4ccf-8f36-9255b36e0f69 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e2817bf9-36c2-4acf-8de3-4468b149d571 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c3f8cf8e-0683-40bc-aabb-8695dce534a2 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +da395198-c4a7-4d67-9e0f-8ea9bd6a72db 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e5763c8f-13d5-4f01-8ebd-b6db40a89fb0 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1d84611e-9887-40c6-ab00-01210d1f82b7 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c238d775-2523-46fc-8d1a-540fac1f6896 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1d915ba2-c858-4732-a9e9-7b21b9d47b27 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2ddd0eb3-bada-4443-bbfe-5fccde527dca 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +fb6cc1c1-f874-4ad9-9a62-3b406f948218 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a7946bd4-5a6b-4f56-bbd5-59cf59fbacc3 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c2a397d2-8f91-41d8-9158-97dd24955a80 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +959074dc-9a50-4bd8-bb49-d0a9333d0477 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4fafaa54-d47d-4488-8c56-94be290f38b7 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e9556ed2-8e33-4130-a9b9-fc6c799655fc 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9a6c8306-cf36-42a6-9117-724b675fd9a2 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +af36e2ce-968f-4143-926c-34f5827a2319 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +59a3ea50-4f62-4ce2-ad54-8d72abe1ec68 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +45cc6295-8cfc-4e44-b124-0d05c04cdd3e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8b3db5a2-f3c4-4d2b-b60e-55c3f0d42960 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +809b0fa5-91fe-4f0b-bfa4-1b17ca92647f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c75cdbd1-8145-48ae-8097-d6ce0ee3d383 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e238e1f2-7acb-4caf-a7b9-4abc165b2f78 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +579dd648-5a51-4240-9901-d59ea046dbe4 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +363e3fd7-2510-4b88-8b61-19c6a701a154 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6bfe7e94-4211-492f-a9db-a6c81dd6f547 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +614a1279-a381-4be2-acef-301958e89071 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3861f439-875f-453b-8651-03d9359f5788 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0663d4a9-d9d4-4d92-ab92-8ecae04c5440 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +00a04a0e-8a61-497e-a1b7-555d9edebd3c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a90836ba-dcb3-4f3f-bf2c-02bc1d5f7453 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +001879e3-9e6a-49e1-8893-9bfa1ed0662f 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3b864315-4410-47c4-8d1f-41340443be83 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +da92e9da-c205-44a5-8e55-6cabab24e221 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ec7a7ee9-84ef-4e7e-86dc-6c1ea5db4019 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +de23c01f-138f-4b4f-b077-7966e5301849 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2231820c-c6c6-4b43-8030-60d84ec840df 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +962b06e6-2702-4267-b103-b352f6b842a4 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +63bfee6a-6d44-4301-9cee-df0105f24f5e 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c6a5a31e-2c88-47c4-8e9a-c60bece7ef75 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2d096abd-ffb0-4143-96a4-7779218d6d4f 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a10741c9-4ed7-422d-9f52-54c17c4bbd8b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +234c48dd-9af4-4099-80ff-40ad13f89401 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bb5d6545-d507-4b3a-ba24-bb510c914e95 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +28f712ea-c08c-4e7a-8cf9-4b13e36ff212 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +152a5d0e-dc5a-44d9-af10-8ec63701dd3b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +93857261-5bcb-47aa-9144-22b35b135d4b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +111f99da-d06d-4cb3-b864-8f3e1f49aa74 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3924e923-d2f1-4275-8747-bd11ac4f74d3 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a73038fe-4577-4639-a479-767f244244c3 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4a062dd6-f1c2-4b36-ac1d-998925eb0b83 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8c475290-e87c-4711-a6ac-d2dc4028fad6 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8cec9caf-f09c-4e50-ab29-a23009c77cb7 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3a1b190c-0930-4404-bee0-eca6c7621114 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ccb26ed5-9dd0-46b3-8cb5-3584782c9d06 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6bce2b2a-c6a0-4463-9dfc-bd9366f62b3a 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +050c4646-3958-40b1-92f3-2a7979732b5b 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dfc084df-46cb-4a7e-b89c-b84ae3634ed3 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5c96e4e4-bd3c-458a-aecb-70a0e97258d6 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +643ed9d5-7abd-498c-aa27-e54406f62657 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3b43313b-92e3-4a71-89b9-5c94e508ffa4 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d1f25d2e-1765-431d-b8ce-c971848c140b 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a986ba78-0f21-4714-98af-030c39a99d98 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +186d8c4f-7240-47be-baec-da9793982cfe 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +29eb0b4a-38c1-44e3-a342-a738f884bdb8 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d6344072-d70a-419e-b400-f792fd7816a6 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +65dbc1e9-8bf0-4494-b3e7-c6b6445d805f 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +82e159a7-b83d-4eb9-9228-26eea20c0301 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +85cab86c-ef60-4b00-ab3a-83649782cbdc 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6d8a4447-dba8-40c4-8fa3-9ea447aa4431 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +297aa958-dd8d-4838-8658-21c7a2f6a45c 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +516d1b3c-20ec-4abe-9d05-7c10f45cc2b7 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c2cfb252-5288-4b94-b4a8-79a8d86e6c7c 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d32ddeef-adf4-43e5-b533-d6218f89194e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d735e2a6-44ce-421b-8041-dbeac83b0388 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2f34b698-bdc6-4a34-8568-54e2051c301e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1f25c2c5-b997-474a-82c0-2dfe225b38f7 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +409a0334-ad83-4abe-92bf-9f86cee8e629 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +21a86be9-f740-47d6-aef6-ea678179d442 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dc85040e-5868-4e67-99ae-ae2a83870651 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +83f56af1-9785-4627-8682-5d9f40d9e567 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b8670494-46f7-4ac6-a67b-92662a89eabb 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cb4d87c3-1fb7-4b16-8094-eed4a3d00968 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +106044fb-fc87-41f6-9e71-3faffe47e00b 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +a88fd1e2-7344-47b5-a7b8-9bd716f94c5d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +53f91d1f-e644-4040-bb9c-009b94cdb8e8 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dd07fe79-a01b-4e7e-b0d7-2556523cb39e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b2faf9ae-52e2-4dae-a484-7e9978de7057 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +587584bd-581c-4ec6-90a4-4196ebe3e639 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c1e06d08-f053-4e2f-98cb-dfe2b4523fc8 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ce17ffbe-39d4-4bba-badd-3fd6a51a909b 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +df0f28b8-833d-4962-9750-0e2c7dcf1aef 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +42463594-07f9-463b-8d3d-e640679cf9a0 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8dc13325-56ce-4b86-bd36-b090b0f6caab 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c629d453-a5a6-431f-8f90-9b27722a415a 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c265592f-8adf-4f8c-bb4f-1b4a984dc600 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bbfadf44-58fe-4693-9f6b-f1897ad92eb6 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +515bf1e2-6b17-448a-ad26-6276526a88c2 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4f1086b3-8849-4d42-a9fb-5395f1cb573f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d0e54e7a-8475-44f5-af06-0852acc18ada 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +cedaaa13-f4a0-4aa1-86bd-29f20d10cb17 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +af2095eb-cb46-45e8-8e62-23c528e8451c 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +39f8b870-e4a7-4f7c-93ba-7354ffdc3b7a 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +8b196676-5e99-4ffb-9cf7-e59dd42c9b61 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3ed2e405-1166-499d-84ca-abf27c4420d6 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6e94f9f7-f322-4be2-a6e3-25220b00d9f6 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +2ee7b426-001c-4f81-a4b9-f5f6e94dacd9 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c235ddd9-4a8b-4ed4-996d-f32d97c2febf 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3443f990-ed97-482a-b60d-f9a4fae6dce7 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +bf3887ae-ebac-4278-aa88-b211be9a6ef4 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f5db483a-11d5-4fb7-b977-ddb1b55b6923 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7560adfa-0d51-42e6-b727-78821e9404f8 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +efe7075c-0084-4620-976d-57dcbaf3893b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f062ee0d-1d60-4ac5-bf80-fad59a54306f 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +838a3bbf-b6e9-4174-9e2f-4c5903f85b51 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1813a575-32ba-4c94-99a5-19295b0921de 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7aff390f-97f8-4e64-9b95-c85a9002c33c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c6298096-10b7-441c-9688-4695b88a8660 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +dada2f21-3866-4778-a319-a91f82f8ad76 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f5016d6d-f10c-4846-83d5-7bf231c044d3 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7463f25e-841f-4e23-9fb3-4dbe0c2554d2 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +1e87a29f-8009-41bd-8b71-f8800f1dab1e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +30e14345-9d6a-42c1-b33f-59cb014e5b68 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +86c6fa66-322e-487a-8999-ecc03a830fd3 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +35847d15-de55-4a1b-9493-0d691a83a641 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f18b3241-50bd-45b5-8c61-8858473e10fb 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3f90d40a-eef1-4a6b-953c-6919087c9b6b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c81f7cfe-c388-4731-88f9-f3eccc0e1aae 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +54f45fd9-b956-4dd8-a9a2-aa025395fe9b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f0f92b13-e8a2-4208-af35-88c2f57053ed 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +50b2eea6-fcae-41c7-872a-7f725aad8f68 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5d22741a-9f70-4978-a113-4e3370595e14 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +5e9f240d-6e21-4393-b37c-f9f1e8ca70f3 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +84d0828f-fe77-41f1-928e-11706edb8821 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +7c9d3f4c-4e57-450e-b12f-7db6ebcb9aea 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +b1f4f818-0f47-4372-868c-df50e9603ed0 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ea4910d2-9eaa-4e94-8f10-94d0da66aa12 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +84164c99-8064-4616-9b89-4ad2cd3ee6da 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +64f3861f-7ec7-45bf-a781-73de35a51bf3 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +0501b4de-a562-45ac-a4f8-ca0b0a5f2be4 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +edf40205-69ee-4f3b-ba0c-09d70531b17b 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +f18530a1-b79f-404c-97b5-c8cb7d4df0d3 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6b7f220c-1df2-41b3-9ea3-a6bd5ece4a4f 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +06b00f42-c69b-4243-8506-582504283fb7 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +9fa2ce85-2954-470e-9a8f-b80a94d18b5c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +690744c2-57e5-458b-aa9c-eec197957ecc 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +4a74034a-2448-42f4-98d3-dc1fe050f6ce 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c4507468-ff51-4d6f-977f-0969cca30830 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6c865afc-9439-411c-ade4-6fd8ac429c07 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +e04db553-36a3-468d-82b4-938514fc8cdb 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ecaca662-b04b-474b-a038-c185ac99a3e1 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3c19f673-974e-4d27-8aa8-c8b3be9a268a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +6c5851b2-0b70-4fd8-9d95-b5f60e89b8d8 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +ca7691e7-644f-4503-8661-255efc4f2d73 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +c520c41e-eaac-436b-8943-9d96b749a386 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +35071e24-8e47-4af5-adfd-b91431777cfb 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +3206e638-1f43-47b7-8b36-e5a70cf785b2 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +d665c6e1-e3a9-4f58-bb0b-29a67711080f 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 5 http 172.17.0.15 18088 /test 60000 60000 60000 \N \N \N \N \N dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t +\. + + +-- +-- Data for Name: routes; Type: TABLE DATA; Schema: public; Owner: kong +-- + +COPY public.routes (id, created_at, updated_at, name, service_id, protocols, methods, hosts, paths, snis, sources, destinations, regex_priority, strip_path, preserve_host, tags, https_redirect_status_code, headers, path_handling, ws_id, request_buffering, response_buffering) FROM stdin; +ce537a9f-a4b0-4104-aafd-97003b6bd094 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N a7182665-e3bb-4ad0-91bc-bb013404d465 {http,https} \N \N {/s1-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +026dab0d-bb9f-4d78-86c6-573ae01c04d8 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N a7182665-e3bb-4ad0-91bc-bb013404d465 {http,https} \N \N {/s1-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7d278d10-142a-451d-866c-86ae52e3ba14 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N a7182665-e3bb-4ad0-91bc-bb013404d465 {http,https} \N \N {/s1-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +990d5f16-8024-4568-811f-117504c9990b 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N a7182665-e3bb-4ad0-91bc-bb013404d465 {http,https} \N \N {/s1-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3ede165-bfca-4ab9-9db7-f9c2de77039e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 3c089a41-3c85-4e95-94bc-9dcbcc02d5bf {http,https} \N \N {/s2-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +951b5a6f-b4d2-4ed4-87ff-dfeb57555c7e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 3c089a41-3c85-4e95-94bc-9dcbcc02d5bf {http,https} \N \N {/s2-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dda0f202-7c28-429d-8ec8-161e9e31514e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 3c089a41-3c85-4e95-94bc-9dcbcc02d5bf {http,https} \N \N {/s2-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +87655776-806e-47ed-baa3-3fbf5a758c4a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 3c089a41-3c85-4e95-94bc-9dcbcc02d5bf {http,https} \N \N {/s2-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f8b9a2ce-83aa-4af4-8ce7-436cedf59d26 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e4e0c0f8-8f86-4138-b90b-1ab4b42c545a {http,https} \N \N {/s3-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83d60efb-3057-4303-9114-916a98a99889 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e4e0c0f8-8f86-4138-b90b-1ab4b42c545a {http,https} \N \N {/s3-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d32ba84f-ebb5-4ebf-a19f-50d4d0ff3c98 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e4e0c0f8-8f86-4138-b90b-1ab4b42c545a {http,https} \N \N {/s3-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +67f1d309-3609-4eff-ba4d-f05413c56570 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e4e0c0f8-8f86-4138-b90b-1ab4b42c545a {http,https} \N \N {/s3-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2938219c-3438-4647-a665-2a2bfa59a166 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 635667df-d7c8-4c8e-961a-79094fb7edf7 {http,https} \N \N {/s4-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +43acaeda-d0b1-4660-a71a-131268b234b0 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 635667df-d7c8-4c8e-961a-79094fb7edf7 {http,https} \N \N {/s4-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +db8f7f38-cba3-41b1-b824-c939b1dd4386 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 635667df-d7c8-4c8e-961a-79094fb7edf7 {http,https} \N \N {/s4-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b8c7f85d-4ec7-4921-b50b-720c26bac325 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 635667df-d7c8-4c8e-961a-79094fb7edf7 {http,https} \N \N {/s4-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +abca1b75-1d6d-462c-9787-48122922fb65 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5db07df7-6efa-42f1-b526-aeea5f46aa7f {http,https} \N \N {/s5-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1da0d3cf-1d35-4e93-9855-6bd555445561 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5db07df7-6efa-42f1-b526-aeea5f46aa7f {http,https} \N \N {/s5-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e4073ba4-1f39-4ea5-92b9-ee723f1c7726 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5db07df7-6efa-42f1-b526-aeea5f46aa7f {http,https} \N \N {/s5-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +064d691b-e410-414f-9a14-1375cfdfc3c9 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 5db07df7-6efa-42f1-b526-aeea5f46aa7f {http,https} \N \N {/s5-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ab58907f-2df9-4170-b0f0-ad00fb5d387f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0cf9ed94-6fe4-4356-906d-34bf7f5e323d {http,https} \N \N {/s6-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +506a4858-240b-4339-9d13-8018fb2a839c 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0cf9ed94-6fe4-4356-906d-34bf7f5e323d {http,https} \N \N {/s6-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +720ec3bf-2799-43e6-a16a-4e8e21e64c8a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0cf9ed94-6fe4-4356-906d-34bf7f5e323d {http,https} \N \N {/s6-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +89190960-6e45-480a-8a02-13a48244eacc 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0cf9ed94-6fe4-4356-906d-34bf7f5e323d {http,https} \N \N {/s6-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de05c71c-0e19-4909-9dc8-0f02b07f4d3a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b0d849d4-9d3d-48bd-bddd-59aeed02789c {http,https} \N \N {/s7-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0cc280f0-5fc2-4379-b26c-a29564103995 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b0d849d4-9d3d-48bd-bddd-59aeed02789c {http,https} \N \N {/s7-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eded9ada-6e08-41cf-aa4f-217e6c57529e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b0d849d4-9d3d-48bd-bddd-59aeed02789c {http,https} \N \N {/s7-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +81d8b01a-fd3e-45d2-bb08-329d107c13cf 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b0d849d4-9d3d-48bd-bddd-59aeed02789c {http,https} \N \N {/s7-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9ef63d3e-c320-47ee-a73f-ccf836e589a1 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d609eb1a-3c6c-4867-ae94-ad5757bab196 {http,https} \N \N {/s8-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba1fa05f-e8f5-4f8d-a3fd-3c2df6dedee2 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d609eb1a-3c6c-4867-ae94-ad5757bab196 {http,https} \N \N {/s8-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0eea660-89a0-4742-b94b-b5f3d13e1750 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d609eb1a-3c6c-4867-ae94-ad5757bab196 {http,https} \N \N {/s8-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +601c7cb8-8e28-4fac-ab85-c7f24b74f0d3 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d609eb1a-3c6c-4867-ae94-ad5757bab196 {http,https} \N \N {/s8-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e1cbed49-b206-4dbe-a7dc-4a92e4eecc39 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d92656d5-a8d8-4bab-93cf-5c5630eceffb {http,https} \N \N {/s9-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +11a07f35-5489-46bf-ac75-9169be6b137e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d92656d5-a8d8-4bab-93cf-5c5630eceffb {http,https} \N \N {/s9-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d12800df-5095-4753-8269-1a75098bb08f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d92656d5-a8d8-4bab-93cf-5c5630eceffb {http,https} \N \N {/s9-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7e2f69a1-3bd6-4676-be97-f89694953713 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d92656d5-a8d8-4bab-93cf-5c5630eceffb {http,https} \N \N {/s9-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aa2a94b7-2b36-49bc-bd65-e9eeefe04497 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 1e306cf3-2a3b-40b8-91b4-f50caf61d455 {http,https} \N \N {/s10-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +39809835-2739-4f66-b3d4-bfea8be6ede4 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 1e306cf3-2a3b-40b8-91b4-f50caf61d455 {http,https} \N \N {/s10-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +530b83b7-8e49-47a2-86ee-d1fd4f9eaf9f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 1e306cf3-2a3b-40b8-91b4-f50caf61d455 {http,https} \N \N {/s10-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d6817e92-beba-465b-8352-735005f5e981 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 1e306cf3-2a3b-40b8-91b4-f50caf61d455 {http,https} \N \N {/s10-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +df99cf4e-cd34-4be5-98d6-8470c1c1c211 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b13775fd-dac8-4322-b7a4-a089d677c22d {http,https} \N \N {/s11-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ab0e0fb7-5928-48ab-989a-2081b43e7245 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b13775fd-dac8-4322-b7a4-a089d677c22d {http,https} \N \N {/s11-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +687dd969-c8f6-44f3-b371-e631048cb4cc 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b13775fd-dac8-4322-b7a4-a089d677c22d {http,https} \N \N {/s11-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fe454395-7df3-44ed-a95b-9e629e9cd650 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N b13775fd-dac8-4322-b7a4-a089d677c22d {http,https} \N \N {/s11-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb222d61-3fe9-4735-9405-e15ff5e8a121 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0d5ae4f4-5ab1-4320-8057-cd0b21d81496 {http,https} \N \N {/s12-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7ddf114b-6438-4bbf-abd3-413def649544 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0d5ae4f4-5ab1-4320-8057-cd0b21d81496 {http,https} \N \N {/s12-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +268e6d41-da24-4004-81c0-f8921fc1a899 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0d5ae4f4-5ab1-4320-8057-cd0b21d81496 {http,https} \N \N {/s12-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6c748b5f-ddd3-4689-a68f-fc170bc46870 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 0d5ae4f4-5ab1-4320-8057-cd0b21d81496 {http,https} \N \N {/s12-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +87de8f22-9a89-470f-bc3d-d2d6bad9afc0 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e6a15913-9bdf-46ed-8e9e-b71a91b1197a {http,https} \N \N {/s13-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4d34d19f-f9f1-4d8a-9771-33a5b50ed259 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e6a15913-9bdf-46ed-8e9e-b71a91b1197a {http,https} \N \N {/s13-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +85a52175-ec74-448b-8119-167cfc2eb741 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e6a15913-9bdf-46ed-8e9e-b71a91b1197a {http,https} \N \N {/s13-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +518ae3ba-72fa-43eb-9ad4-b74bcbddae72 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N e6a15913-9bdf-46ed-8e9e-b71a91b1197a {http,https} \N \N {/s13-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d74ab53d-6bf3-4927-8905-8f365b6ec8ad 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9124182f-7ccf-465a-9553-4802b87f4308 {http,https} \N \N {/s14-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9d845b80-bdc8-4142-b388-7318003da3b7 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9124182f-7ccf-465a-9553-4802b87f4308 {http,https} \N \N {/s14-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +50cd9f88-ebdf-480f-9ef8-7fb900dc1b2c 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9124182f-7ccf-465a-9553-4802b87f4308 {http,https} \N \N {/s14-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f9362a76-362f-4620-b9e9-8ee86a71fb1f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9124182f-7ccf-465a-9553-4802b87f4308 {http,https} \N \N {/s14-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b105fd40-f6b8-4d6f-b677-b89354ffbe10 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N ad9d034f-2de2-4a1a-90ad-7f1cf7039a2a {http,https} \N \N {/s15-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a9020690-1174-4166-8046-8d7fff7e47dd 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N ad9d034f-2de2-4a1a-90ad-7f1cf7039a2a {http,https} \N \N {/s15-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f30c6ce3-bf1e-4a60-8f7b-bd1381e1ff35 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N ad9d034f-2de2-4a1a-90ad-7f1cf7039a2a {http,https} \N \N {/s15-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18f0c2ff-0553-484d-bcdd-eca0c08ed669 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N ad9d034f-2de2-4a1a-90ad-7f1cf7039a2a {http,https} \N \N {/s15-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bb92af61-c9af-42d1-adab-94110ffa746f 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9d36f4e2-ba97-4da7-9f10-133270adbc2e {http,https} \N \N {/s16-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56a88ba6-ca21-4209-86d3-1962008dd901 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9d36f4e2-ba97-4da7-9f10-133270adbc2e {http,https} \N \N {/s16-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +886aa74b-b7e2-4b61-8032-5a2b535835fe 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9d36f4e2-ba97-4da7-9f10-133270adbc2e {http,https} \N \N {/s16-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a7a6feb5-505d-434c-ac5f-eb950f1c6182 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 9d36f4e2-ba97-4da7-9f10-133270adbc2e {http,https} \N \N {/s16-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6424529b-bb46-426c-aa19-f152165a324b 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 71164672-4b79-4b4c-8f23-d7b3d193996f {http,https} \N \N {/s17-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be9aad50-ec49-4814-9039-4ff577f7569b 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 71164672-4b79-4b4c-8f23-d7b3d193996f {http,https} \N \N {/s17-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0eefde66-b48e-455d-9bc8-92acd58b560a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 71164672-4b79-4b4c-8f23-d7b3d193996f {http,https} \N \N {/s17-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d635dbe5-5d60-454f-a3da-6ac2533c1e74 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 71164672-4b79-4b4c-8f23-d7b3d193996f {http,https} \N \N {/s17-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b3840619-8d47-4100-a917-7691e5497e38 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d2c68623-5766-4b26-a956-aa750b23e6b9 {http,https} \N \N {/s18-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d2566c3f-2118-4606-bf81-e95fa302e846 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d2c68623-5766-4b26-a956-aa750b23e6b9 {http,https} \N \N {/s18-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e90c02a9-bda8-4bfe-8eb1-d940fcbb7fc2 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d2c68623-5766-4b26-a956-aa750b23e6b9 {http,https} \N \N {/s18-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ed8af14-3b87-4905-b340-59ec4dd04e8a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N d2c68623-5766-4b26-a956-aa750b23e6b9 {http,https} \N \N {/s18-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e4e90c18-64d2-4853-b682-73a469787fe0 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N c733f9c1-8fb2-4c99-9229-d9a3fe79420f {http,https} \N \N {/s19-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fb9f0ded-d0b8-4c03-a073-89c598b19c08 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N c733f9c1-8fb2-4c99-9229-d9a3fe79420f {http,https} \N \N {/s19-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +198ff565-1db6-40d2-8457-2660761f281a 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N c733f9c1-8fb2-4c99-9229-d9a3fe79420f {http,https} \N \N {/s19-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fdb2ac7c-69cd-4564-a503-9b7bfa2d76a0 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N c733f9c1-8fb2-4c99-9229-d9a3fe79420f {http,https} \N \N {/s19-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a3b39229-514e-413c-ae7b-ee17bdf507eb 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 879a9948-ed52-4827-b326-232b434d6586 {http,https} \N \N {/s20-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +26841471-0b61-4845-b128-d428f9919ee7 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 879a9948-ed52-4827-b326-232b434d6586 {http,https} \N \N {/s20-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29ff0e49-5e6d-482a-8a50-72b979170e93 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 879a9948-ed52-4827-b326-232b434d6586 {http,https} \N \N {/s20-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d94f7d16-b7e1-4eec-adfc-c144e166f9b0 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 879a9948-ed52-4827-b326-232b434d6586 {http,https} \N \N {/s20-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c5db351e-2352-43d3-b046-6ec73064c5a0 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 6c2f637e-3365-4475-854d-2da53cf54236 {http,https} \N \N {/s21-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cbb4f546-15a9-482d-a808-1d1359ac1d19 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 6c2f637e-3365-4475-854d-2da53cf54236 {http,https} \N \N {/s21-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +549e80fd-38c1-4cb9-bbf1-561eb56bf039 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 6c2f637e-3365-4475-854d-2da53cf54236 {http,https} \N \N {/s21-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dfc428de-00bc-4def-b283-cf4cfef5d33e 2022-05-26 09:04:20+00 2022-05-26 09:04:20+00 \N 6c2f637e-3365-4475-854d-2da53cf54236 {http,https} \N \N {/s21-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b8a634c1-3431-48e9-949c-dc813a26c0e5 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e5322b5b-36ef-4b9d-9238-99de86473537 {http,https} \N \N {/s22-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ffafdf04-2fff-47ca-a8c0-0af508ebff8b 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e5322b5b-36ef-4b9d-9238-99de86473537 {http,https} \N \N {/s22-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc56a218-8f01-43a3-bfbf-8898f9f077c3 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e5322b5b-36ef-4b9d-9238-99de86473537 {http,https} \N \N {/s22-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +90ad98ec-a31f-4519-9c73-e862c7d4d6d9 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e5322b5b-36ef-4b9d-9238-99de86473537 {http,https} \N \N {/s22-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0edca7d2-23cc-47e5-b4a6-7f9e7da0c027 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d71477b1-e512-4b80-b755-d0a074de32c5 {http,https} \N \N {/s23-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddca0b2a-92fe-4a65-9478-6b41ea60c00c 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d71477b1-e512-4b80-b755-d0a074de32c5 {http,https} \N \N {/s23-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +457feef6-a801-40e9-b4ce-d399837dca7d 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d71477b1-e512-4b80-b755-d0a074de32c5 {http,https} \N \N {/s23-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f70623a9-84ca-49ef-aee5-4c52eafa03ab 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d71477b1-e512-4b80-b755-d0a074de32c5 {http,https} \N \N {/s23-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4aa16fb3-d011-4567-8176-657a667209cb 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 548bb3e7-fc07-41c9-9299-84a0708a2a59 {http,https} \N \N {/s24-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba2fc179-cfcd-4a3b-ab21-ce4b8e972aaf 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 548bb3e7-fc07-41c9-9299-84a0708a2a59 {http,https} \N \N {/s24-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6e85ad75-31f0-4d3d-8e6c-1a9f1bdfe081 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 548bb3e7-fc07-41c9-9299-84a0708a2a59 {http,https} \N \N {/s24-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4a07074a-c606-48bd-abb4-2444416c6d12 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 548bb3e7-fc07-41c9-9299-84a0708a2a59 {http,https} \N \N {/s24-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c9fe8c7-ae08-45b1-8d4c-2747e825afd4 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 4ce0aa65-7a39-4c13-8560-50cbbfbfb393 {http,https} \N \N {/s25-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +64a162fc-842f-4c07-beaf-55a86c16f24a 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 4ce0aa65-7a39-4c13-8560-50cbbfbfb393 {http,https} \N \N {/s25-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +683651ca-d817-4ab7-8feb-e54d9eddcc53 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 4ce0aa65-7a39-4c13-8560-50cbbfbfb393 {http,https} \N \N {/s25-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ec12d55-4015-4b04-8093-cccc7e7d2661 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 4ce0aa65-7a39-4c13-8560-50cbbfbfb393 {http,https} \N \N {/s25-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e7e4ceb-f130-480c-8241-7a77c918d0f3 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N f4dae3be-eb46-4361-b84c-da2f83277f00 {http,https} \N \N {/s26-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d601e820-4af1-4cb0-af6a-0f7ad0dae115 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N f4dae3be-eb46-4361-b84c-da2f83277f00 {http,https} \N \N {/s26-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b763763f-0334-45cc-9475-947acf30317a 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N f4dae3be-eb46-4361-b84c-da2f83277f00 {http,https} \N \N {/s26-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +918dfc23-1bf0-455f-8246-e9fdf3482af3 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N f4dae3be-eb46-4361-b84c-da2f83277f00 {http,https} \N \N {/s26-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4069609-ba31-4814-a0c7-b9ee8d929864 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 25076386-d45e-40fb-bf23-6078de3ecab7 {http,https} \N \N {/s27-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e996f687-3c69-42d5-86b9-79bc5a996483 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 25076386-d45e-40fb-bf23-6078de3ecab7 {http,https} \N \N {/s27-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ab23c967-bcac-4ac5-a1d7-91a32dd62f97 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 25076386-d45e-40fb-bf23-6078de3ecab7 {http,https} \N \N {/s27-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a824c45-c692-48be-a227-344f969f79fb 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 25076386-d45e-40fb-bf23-6078de3ecab7 {http,https} \N \N {/s27-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bf57fa62-4d82-421e-8128-b63389a7c31a 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 1525a86d-6ae4-421e-a2dc-d5758ba22312 {http,https} \N \N {/s28-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9dac7bc5-4c4c-418b-9687-bd993813d177 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 1525a86d-6ae4-421e-a2dc-d5758ba22312 {http,https} \N \N {/s28-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9d8db65b-05e9-4eb2-bec1-6ecc475c502e 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 1525a86d-6ae4-421e-a2dc-d5758ba22312 {http,https} \N \N {/s28-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c8a45988-17e9-44a4-b52f-632754ec0e01 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 1525a86d-6ae4-421e-a2dc-d5758ba22312 {http,https} \N \N {/s28-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +669e731d-8cae-4104-a4ef-d66b111b874a 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 2c961425-9119-41ad-8df7-7b288060e995 {http,https} \N \N {/s29-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dbcdd268-877e-4f91-9b60-8b36b84d2c96 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 2c961425-9119-41ad-8df7-7b288060e995 {http,https} \N \N {/s29-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4dfd810-a17e-499d-94b0-7e638aaecba6 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 2c961425-9119-41ad-8df7-7b288060e995 {http,https} \N \N {/s29-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1c7bc1c1-bda1-4ef4-8a62-b7d634f6f203 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 2c961425-9119-41ad-8df7-7b288060e995 {http,https} \N \N {/s29-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5dc8539b-5cca-4efc-8669-2219dc5d448f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N b960c35a-83b5-425b-9fe3-2602de569f5d {http,https} \N \N {/s30-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b58cef55-87f5-4cda-9721-2a4c84b25989 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N b960c35a-83b5-425b-9fe3-2602de569f5d {http,https} \N \N {/s30-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7dd956b6-1ef4-4a41-87e8-368ef00fe657 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N b960c35a-83b5-425b-9fe3-2602de569f5d {http,https} \N \N {/s30-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4947d674-d901-41de-bdbb-3dccd8481324 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N b960c35a-83b5-425b-9fe3-2602de569f5d {http,https} \N \N {/s30-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fefc368e-d9cc-4755-98c3-566e6f09ca09 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N a882f2cc-b1ac-40a4-8e5d-09d9595c5140 {http,https} \N \N {/s31-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +36e460b6-9905-4bb6-861a-86a0ab41a8f8 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N a882f2cc-b1ac-40a4-8e5d-09d9595c5140 {http,https} \N \N {/s31-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7ca48a70-91b4-4a7e-ada0-3557721356e7 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N a882f2cc-b1ac-40a4-8e5d-09d9595c5140 {http,https} \N \N {/s31-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5292334d-0aa6-4bae-815b-251dc6aba82a 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N a882f2cc-b1ac-40a4-8e5d-09d9595c5140 {http,https} \N \N {/s31-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1cd66e88-7b56-4194-a5aa-b085ba8c3fa1 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d730b9c1-e795-4c90-b771-3e3ceb21ab91 {http,https} \N \N {/s32-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9692a20a-63c7-4fa4-b66e-48f4ffc9c357 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d730b9c1-e795-4c90-b771-3e3ceb21ab91 {http,https} \N \N {/s32-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2fc1c1f1-ab58-456d-a2a7-a7a1df329d94 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d730b9c1-e795-4c90-b771-3e3ceb21ab91 {http,https} \N \N {/s32-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +81ef3ae6-5a6c-4d71-9336-33a1c2845adc 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d730b9c1-e795-4c90-b771-3e3ceb21ab91 {http,https} \N \N {/s32-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4d6fc086-96b3-4f41-aa09-02e5a338c0fe 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 406467e3-6d3d-40a2-bc8e-9942b8be51b8 {http,https} \N \N {/s33-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +128ea615-7397-4a1d-b74d-0e4e6ee801ce 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 406467e3-6d3d-40a2-bc8e-9942b8be51b8 {http,https} \N \N {/s33-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e4f52da1-5142-4f5f-ba1f-2b8127a0a2c5 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 406467e3-6d3d-40a2-bc8e-9942b8be51b8 {http,https} \N \N {/s33-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e82380ec-b2d3-4bb6-b8e1-5dcb4f741dc3 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 406467e3-6d3d-40a2-bc8e-9942b8be51b8 {http,https} \N \N {/s33-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +352279df-6cd4-42ef-90dd-3ae028f5b699 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d5ab8d0f-b02b-4bd6-9d46-ab7da78e15ef {http,https} \N \N {/s34-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c7fa960c-c1e6-4623-9ff3-72ce9bd6758d 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d5ab8d0f-b02b-4bd6-9d46-ab7da78e15ef {http,https} \N \N {/s34-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +246ff19e-15b6-4e33-8f2b-6d5b9e687c1c 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d5ab8d0f-b02b-4bd6-9d46-ab7da78e15ef {http,https} \N \N {/s34-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +58e550cd-0677-49a3-8bbc-2d1891873baa 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N d5ab8d0f-b02b-4bd6-9d46-ab7da78e15ef {http,https} \N \N {/s34-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a4532c1-f9dc-49d1-ad39-151239e516fb 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 62131b85-cb9b-43d1-97d8-f4b2966dbb68 {http,https} \N \N {/s35-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2d73aacc-bbaf-445b-bc47-de9e6d80ce16 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 62131b85-cb9b-43d1-97d8-f4b2966dbb68 {http,https} \N \N {/s35-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dd47894e-2118-4d74-8de3-4f91c6bf639f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 62131b85-cb9b-43d1-97d8-f4b2966dbb68 {http,https} \N \N {/s35-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3b5b3fcb-ceab-4701-ae85-6f8e22d6423b 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 62131b85-cb9b-43d1-97d8-f4b2966dbb68 {http,https} \N \N {/s35-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29c14bb1-8764-4af1-9a63-928ba3dd9dea 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 35fefbaf-66df-47b2-abf0-1231af2788b5 {http,https} \N \N {/s36-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d2df53a9-2573-4dfe-be1e-4e7a11c75d77 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 35fefbaf-66df-47b2-abf0-1231af2788b5 {http,https} \N \N {/s36-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +82d7563b-eee3-4340-8ab4-cbdc8472d146 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 35fefbaf-66df-47b2-abf0-1231af2788b5 {http,https} \N \N {/s36-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +20c189d9-f3ed-4bda-953a-9c2b4b519ea3 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 35fefbaf-66df-47b2-abf0-1231af2788b5 {http,https} \N \N {/s36-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fcc15e73-c6ab-4492-8ac7-7fe0a9708dc2 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 63639c14-7690-4f27-8a69-4df1aca28594 {http,https} \N \N {/s37-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a1c1ad43-bf6a-4faf-9156-69b6b9d58050 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 63639c14-7690-4f27-8a69-4df1aca28594 {http,https} \N \N {/s37-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0d78b89e-9791-4da5-835c-4c042bf09a63 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 63639c14-7690-4f27-8a69-4df1aca28594 {http,https} \N \N {/s37-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +454f4856-baee-4b83-9f68-f0802d603a49 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 63639c14-7690-4f27-8a69-4df1aca28594 {http,https} \N \N {/s37-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8897263b-fb1a-4bdd-befb-386b52a8798f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 872066a1-4cfb-4f69-ab14-2de00fe8a82e {http,https} \N \N {/s38-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3a41ff4-4d09-4bae-8352-ac0feed50567 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 872066a1-4cfb-4f69-ab14-2de00fe8a82e {http,https} \N \N {/s38-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f15c7ac8-248d-4dd8-b844-26ec3baebad8 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 872066a1-4cfb-4f69-ab14-2de00fe8a82e {http,https} \N \N {/s38-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0bb3c7fe-b614-4acd-b3bf-1065f8d4cde5 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 872066a1-4cfb-4f69-ab14-2de00fe8a82e {http,https} \N \N {/s38-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3979c902-cefe-431c-8d25-ef04e4d9f5af 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 056302e1-150a-416c-9a4f-a9fb03f3f651 {http,https} \N \N {/s39-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f471bd0a-b25e-424a-9695-1405e5d20c41 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 056302e1-150a-416c-9a4f-a9fb03f3f651 {http,https} \N \N {/s39-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +34a424fa-a31c-485f-bff7-dcee457a0d84 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 056302e1-150a-416c-9a4f-a9fb03f3f651 {http,https} \N \N {/s39-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b95badc7-c614-45dd-a4fb-a4c7d1cbd55f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 056302e1-150a-416c-9a4f-a9fb03f3f651 {http,https} \N \N {/s39-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cddf1649-bd6d-4f46-a919-fc1d75fa1803 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 73734495-785d-42d2-a755-0ad0b1acf933 {http,https} \N \N {/s40-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d223be5-215e-471d-a7dd-e676028641e1 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 73734495-785d-42d2-a755-0ad0b1acf933 {http,https} \N \N {/s40-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e7cd42c1-60a7-4b64-b4c0-299c5e38ddb2 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 73734495-785d-42d2-a755-0ad0b1acf933 {http,https} \N \N {/s40-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +15903791-92c7-477e-9dfe-958d1b8d399c 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 73734495-785d-42d2-a755-0ad0b1acf933 {http,https} \N \N {/s40-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4a3b7d60-35a8-4506-81c3-d8af5f3affe0 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 8e691f37-eb65-4e3b-a6e2-0525412a98ab {http,https} \N \N {/s41-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a190876b-7347-4b29-ab3e-db75a67ea0dd 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 8e691f37-eb65-4e3b-a6e2-0525412a98ab {http,https} \N \N {/s41-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b4e7ca47-5c19-4159-a68a-d6b27824aa5c 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 8e691f37-eb65-4e3b-a6e2-0525412a98ab {http,https} \N \N {/s41-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +511e20f8-840a-4582-ab55-5100cc7d8b24 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 8e691f37-eb65-4e3b-a6e2-0525412a98ab {http,https} \N \N {/s41-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6b541eaa-46c7-4b88-af15-530ef074519f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 569a3987-9516-4053-92b8-aeebdaeeed5d {http,https} \N \N {/s42-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6ea121e-a797-4fb0-a5a6-0b267cde8e7e 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 569a3987-9516-4053-92b8-aeebdaeeed5d {http,https} \N \N {/s42-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +46835c0e-edcf-4bbf-b2df-5c326648842e 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 569a3987-9516-4053-92b8-aeebdaeeed5d {http,https} \N \N {/s42-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c731e6b0-4082-497c-84c7-8addde5129c0 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 569a3987-9516-4053-92b8-aeebdaeeed5d {http,https} \N \N {/s42-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5dd725b7-e282-4acb-9357-630cea81d641 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5839b3b1-f03a-41f9-b645-a35ff680acbe {http,https} \N \N {/s43-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6dff752b-6cac-421f-81d7-9187e689e979 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5839b3b1-f03a-41f9-b645-a35ff680acbe {http,https} \N \N {/s43-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cf09ded9-12ff-4ac6-a857-70cfd18139ac 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5839b3b1-f03a-41f9-b645-a35ff680acbe {http,https} \N \N {/s43-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +23de1a99-33ae-4e01-af78-d8553c211005 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 5839b3b1-f03a-41f9-b645-a35ff680acbe {http,https} \N \N {/s43-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +40a92416-c7e0-4500-a12d-090403c50837 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 649cf33b-3d04-46f8-b849-4bfa449c8a7f {http,https} \N \N {/s44-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6984d1b3-bd9e-4bed-9307-93aa2794dfe7 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 649cf33b-3d04-46f8-b849-4bfa449c8a7f {http,https} \N \N {/s44-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a3935865-cf8a-4758-be41-cb2963bd3dab 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 649cf33b-3d04-46f8-b849-4bfa449c8a7f {http,https} \N \N {/s44-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c4be6b1-c4b5-45c9-bbe9-48ed6875bd7e 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 649cf33b-3d04-46f8-b849-4bfa449c8a7f {http,https} \N \N {/s44-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d9d03644-bf13-4438-a41d-35a63f2e8bf7 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 3282f133-b8eb-4e46-80c6-a217df510860 {http,https} \N \N {/s45-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1c502e0f-3da4-4a8c-9a7d-d2574f678d00 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 3282f133-b8eb-4e46-80c6-a217df510860 {http,https} \N \N {/s45-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc87abf2-0fae-44af-baac-56ff20817de5 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 3282f133-b8eb-4e46-80c6-a217df510860 {http,https} \N \N {/s45-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cf377ce3-5d7f-407f-8c7a-b3d94c22dbfb 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 3282f133-b8eb-4e46-80c6-a217df510860 {http,https} \N \N {/s45-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ad56bb2d-fb37-4039-83fc-95bff293db97 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N da88cad4-bd4b-4a9d-b81d-d1445bf108a8 {http,https} \N \N {/s46-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +65c63fb9-3f19-4b14-959e-dc7421392fa9 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N da88cad4-bd4b-4a9d-b81d-d1445bf108a8 {http,https} \N \N {/s46-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +53b43ee6-cce0-4896-a8fa-ca1b771e6ebc 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N da88cad4-bd4b-4a9d-b81d-d1445bf108a8 {http,https} \N \N {/s46-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a3a2036-5aad-4b52-b99b-13a907f4e3d0 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N da88cad4-bd4b-4a9d-b81d-d1445bf108a8 {http,https} \N \N {/s46-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +442a6ef8-96b9-4a6e-ad0e-cb2bc887b9ce 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 365b2abb-1347-4077-8ffc-5b21984fca7f {http,https} \N \N {/s47-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5b3dfeb3-5e99-444e-9455-c99017106217 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 365b2abb-1347-4077-8ffc-5b21984fca7f {http,https} \N \N {/s47-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24191388-c07b-46a5-97f4-462b05d572f1 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 365b2abb-1347-4077-8ffc-5b21984fca7f {http,https} \N \N {/s47-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +33b863b6-748d-45c7-bc56-eb7ba0280591 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 365b2abb-1347-4077-8ffc-5b21984fca7f {http,https} \N \N {/s47-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3184fc79-27b0-4901-ad2e-77bd91729e5a 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e3cc7fa5-1919-4753-9afe-6f30f67a2c2e {http,https} \N \N {/s48-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb659e64-71e6-4014-a0b1-56d8eda12c1d 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e3cc7fa5-1919-4753-9afe-6f30f67a2c2e {http,https} \N \N {/s48-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +646a364a-116d-4c74-8e29-ff6c5c41f90f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e3cc7fa5-1919-4753-9afe-6f30f67a2c2e {http,https} \N \N {/s48-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d2cd486d-22b6-414c-af0a-4da9a0e89f63 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N e3cc7fa5-1919-4753-9afe-6f30f67a2c2e {http,https} \N \N {/s48-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c5fa868-2707-4129-8ca1-fcea55c4624f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N fb53dd51-d113-4650-b980-e761871f3c54 {http,https} \N \N {/s49-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3a14b1a-113f-4ab0-bf91-a04f5a7054ad 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N fb53dd51-d113-4650-b980-e761871f3c54 {http,https} \N \N {/s49-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eaeae98e-0703-4e17-b196-93c7e54c45bf 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N fb53dd51-d113-4650-b980-e761871f3c54 {http,https} \N \N {/s49-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +51656ed3-fb8d-4b13-a52c-6a747b3b24ef 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N fb53dd51-d113-4650-b980-e761871f3c54 {http,https} \N \N {/s49-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +36dfcf70-1fa3-46b9-ace7-ee6bb5596f7f 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 851cd368-f1ea-4584-8cec-9a430f9b1a3f {http,https} \N \N {/s50-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +db915c87-9f9c-4e3a-b73c-ae571cac51df 2022-05-26 09:04:21+00 2022-05-26 09:04:21+00 \N 851cd368-f1ea-4584-8cec-9a430f9b1a3f {http,https} \N \N {/s50-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +01b2ab0c-a726-4eb2-a8f3-6f4376c1314d 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 851cd368-f1ea-4584-8cec-9a430f9b1a3f {http,https} \N \N {/s50-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +edfb8669-a2f3-432a-ac49-5f915354e433 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 851cd368-f1ea-4584-8cec-9a430f9b1a3f {http,https} \N \N {/s50-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +021e497a-9bf2-4a80-b546-5ccf4b6ff871 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4658664d-4ff6-4ab7-a9bf-8c0492c974de {http,https} \N \N {/s51-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1708116c-89af-4091-a713-3c53b20bb94f 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4658664d-4ff6-4ab7-a9bf-8c0492c974de {http,https} \N \N {/s51-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28e90609-b10b-48e5-b77d-1901c1411da2 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4658664d-4ff6-4ab7-a9bf-8c0492c974de {http,https} \N \N {/s51-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8bcc63d1-46f4-403f-a4d3-4feac7234799 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4658664d-4ff6-4ab7-a9bf-8c0492c974de {http,https} \N \N {/s51-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7b24dde5-5680-4a18-8361-5bc9e1ebbb5e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4d48bf3c-a575-4520-8817-34f0b84dd4b6 {http,https} \N \N {/s52-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c39d03a-3219-4021-a234-bdb1f66558ad 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4d48bf3c-a575-4520-8817-34f0b84dd4b6 {http,https} \N \N {/s52-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b62f7012-e2d6-4893-b73b-a37f17b20923 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4d48bf3c-a575-4520-8817-34f0b84dd4b6 {http,https} \N \N {/s52-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +985a6882-24fc-4c28-a994-ccd0f4853ccf 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4d48bf3c-a575-4520-8817-34f0b84dd4b6 {http,https} \N \N {/s52-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +26f47d54-501c-481e-a057-a655a0f366f4 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 26968e02-8bda-4c4e-818c-8ed35d44fd9c {http,https} \N \N {/s53-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0bc4ebbb-8ab9-4768-bbdd-fe078632137c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 26968e02-8bda-4c4e-818c-8ed35d44fd9c {http,https} \N \N {/s53-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5ddadc08-5c3a-4a33-a6cc-5654dd91ab0d 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 26968e02-8bda-4c4e-818c-8ed35d44fd9c {http,https} \N \N {/s53-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba1023c3-197c-4c5c-8644-abf21c3d4523 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 26968e02-8bda-4c4e-818c-8ed35d44fd9c {http,https} \N \N {/s53-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0961a24a-4db4-4412-94ae-c662a37bf3d3 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 27f10e41-7155-4eed-bdfa-783271fc8bae {http,https} \N \N {/s54-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8043bb3f-229b-4927-a9da-e7c26e3cd2f5 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 27f10e41-7155-4eed-bdfa-783271fc8bae {http,https} \N \N {/s54-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63e6a3c0-903b-409d-9a21-0bf86dc8798f 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 27f10e41-7155-4eed-bdfa-783271fc8bae {http,https} \N \N {/s54-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c5cdae80-c83c-4e4b-bd99-ee15ac759b87 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 27f10e41-7155-4eed-bdfa-783271fc8bae {http,https} \N \N {/s54-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f73330a-ac60-405e-b592-ce04a111a79b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 73bc0430-7355-4c6d-a974-74f5bf707db1 {http,https} \N \N {/s55-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f88f2b6c-f27e-4872-87ba-55c683e4f1b4 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 73bc0430-7355-4c6d-a974-74f5bf707db1 {http,https} \N \N {/s55-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d6ec02df-ecaf-4ef5-b4db-b5462bc57ea3 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 73bc0430-7355-4c6d-a974-74f5bf707db1 {http,https} \N \N {/s55-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c06adfe-4399-4ceb-bc58-b6e7f3412051 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 73bc0430-7355-4c6d-a974-74f5bf707db1 {http,https} \N \N {/s55-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5814489d-419d-4f0b-978b-80fc6e715371 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N ef27392a-1fb8-4611-8757-c42b55900756 {http,https} \N \N {/s56-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bb2c3144-6f34-443b-ae1b-c407bcc86573 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N ef27392a-1fb8-4611-8757-c42b55900756 {http,https} \N \N {/s56-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0f5869b0-2a4f-4b94-ac24-8860a9aba9d8 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N ef27392a-1fb8-4611-8757-c42b55900756 {http,https} \N \N {/s56-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c7e117bd-61eb-49a7-b27b-31bd5efa75f8 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N ef27392a-1fb8-4611-8757-c42b55900756 {http,https} \N \N {/s56-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7941c45b-73eb-4ff1-973c-811cf918b567 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N b45da34e-3338-4878-a3e5-d78df8cd22e7 {http,https} \N \N {/s57-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b81652aa-9c7a-4ead-901a-de9abbf03ca7 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N b45da34e-3338-4878-a3e5-d78df8cd22e7 {http,https} \N \N {/s57-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5e402e76-f7d2-42b2-9396-f222fb4e468b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N b45da34e-3338-4878-a3e5-d78df8cd22e7 {http,https} \N \N {/s57-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c3aba8bd-a9c8-4b8c-b818-cd460c1dbda1 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N b45da34e-3338-4878-a3e5-d78df8cd22e7 {http,https} \N \N {/s57-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3403033f-1ec4-4784-894a-1040e85dddeb 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dc5da515-f616-40e9-9b94-d699fded3db7 {http,https} \N \N {/s58-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +12c929a4-0d97-451e-b9b7-0e86173ecf24 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dc5da515-f616-40e9-9b94-d699fded3db7 {http,https} \N \N {/s58-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d1a9cfb9-68bf-4234-9ef7-878d8b0bc3d0 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dc5da515-f616-40e9-9b94-d699fded3db7 {http,https} \N \N {/s58-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +666c6b7c-ba43-4ae5-a38d-42ebd968f901 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dc5da515-f616-40e9-9b94-d699fded3db7 {http,https} \N \N {/s58-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b8bfeae5-5130-4cc9-9a2f-246a16e53328 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 8168f4cc-39af-49bd-8b6e-a365f038bebd {http,https} \N \N {/s59-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a793732a-905e-4b4e-96b5-6c849c03423d 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 8168f4cc-39af-49bd-8b6e-a365f038bebd {http,https} \N \N {/s59-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b26ed3d4-5587-42ae-a6da-6123669164b4 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 8168f4cc-39af-49bd-8b6e-a365f038bebd {http,https} \N \N {/s59-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ec7d7a95-e5b7-42c8-8a0c-a933b5089804 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 8168f4cc-39af-49bd-8b6e-a365f038bebd {http,https} \N \N {/s59-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1c4b40eb-d910-4109-838b-d5a145b6005a 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 051898cd-71d2-457b-9ee8-c080908da498 {http,https} \N \N {/s60-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +01e02128-b620-49cf-bd2b-6ffca9f28c4c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 051898cd-71d2-457b-9ee8-c080908da498 {http,https} \N \N {/s60-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +62b48699-f419-4d31-9009-709cd966abcb 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 051898cd-71d2-457b-9ee8-c080908da498 {http,https} \N \N {/s60-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddcffccb-96cd-4cc0-81b1-b1f1cdf09b58 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 051898cd-71d2-457b-9ee8-c080908da498 {http,https} \N \N {/s60-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be4c0681-1850-4750-b276-11f6c6ce83de 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cdb3688d-b5fc-421a-8c06-cb14fc6c5ff9 {http,https} \N \N {/s61-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +760b1b0a-a6d7-4138-bbe7-2da72748aaec 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cdb3688d-b5fc-421a-8c06-cb14fc6c5ff9 {http,https} \N \N {/s61-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a19f8cd4-458d-40ff-8919-80b80902fea6 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cdb3688d-b5fc-421a-8c06-cb14fc6c5ff9 {http,https} \N \N {/s61-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e8902d3c-6219-4029-adf8-fafb7e91ac2e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cdb3688d-b5fc-421a-8c06-cb14fc6c5ff9 {http,https} \N \N {/s61-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3f71841f-89f3-4fc7-bf7c-70c5c24e64f1 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cae8aca9-818b-450d-97a6-7ea08373e0cc {http,https} \N \N {/s62-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +26ce1726-fee5-4e7f-ace9-9b506a612843 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cae8aca9-818b-450d-97a6-7ea08373e0cc {http,https} \N \N {/s62-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04d8e2e7-7e64-46d2-9fc8-8eb40f50feed 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cae8aca9-818b-450d-97a6-7ea08373e0cc {http,https} \N \N {/s62-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5fa7a59b-63dd-427d-a314-eb97ba59889c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N cae8aca9-818b-450d-97a6-7ea08373e0cc {http,https} \N \N {/s62-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +30f175e5-eb1e-48f2-a455-58d556b1c49d 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1b7c0f6a-9eab-428e-b979-5995a4ff6527 {http,https} \N \N {/s63-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +67909e1e-e8d3-494b-88a6-42dddb9cc70c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1b7c0f6a-9eab-428e-b979-5995a4ff6527 {http,https} \N \N {/s63-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +567df721-b470-4340-aaa7-45c6d4d8443a 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1b7c0f6a-9eab-428e-b979-5995a4ff6527 {http,https} \N \N {/s63-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e7103e2-9878-405a-99c6-896c1fda9308 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1b7c0f6a-9eab-428e-b979-5995a4ff6527 {http,https} \N \N {/s63-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d0b57e6c-7080-4a2c-be92-b343f35b76c1 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 3e658a76-cb76-4be7-a15a-84d4883b472b {http,https} \N \N {/s64-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b0dedf00-dc34-4996-87d2-4c3dfc5c46d2 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 3e658a76-cb76-4be7-a15a-84d4883b472b {http,https} \N \N {/s64-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e5226a35-9d37-4e3d-a79c-e9f4b3014371 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 3e658a76-cb76-4be7-a15a-84d4883b472b {http,https} \N \N {/s64-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0e9a00d-e797-4a8c-a773-9567ef0487c7 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 3e658a76-cb76-4be7-a15a-84d4883b472b {http,https} \N \N {/s64-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6348b289-ccd1-40e7-83ee-9717654a861f 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 800121b2-3644-4ea0-8539-25d513acb472 {http,https} \N \N {/s65-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b3c8d08-5826-40c8-bf4b-c9cd09627efe 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 800121b2-3644-4ea0-8539-25d513acb472 {http,https} \N \N {/s65-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +92f02e92-a089-490e-b8af-41a788a459a4 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 800121b2-3644-4ea0-8539-25d513acb472 {http,https} \N \N {/s65-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c9f6955-7cbd-4bda-8738-4ee18fce587f 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 800121b2-3644-4ea0-8539-25d513acb472 {http,https} \N \N {/s65-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f4e93c81-d3b5-4007-9775-157c8c8c61ae 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 89b2af01-b55f-4425-844e-bc2dea397b93 {http,https} \N \N {/s66-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +12cfa8af-ef07-4bd0-aec4-6c17e9563fb1 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 89b2af01-b55f-4425-844e-bc2dea397b93 {http,https} \N \N {/s66-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +103a4113-2570-401a-9bff-456c18a6c41c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 89b2af01-b55f-4425-844e-bc2dea397b93 {http,https} \N \N {/s66-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d85f3777-3b23-45ac-9458-6533790f4813 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 89b2af01-b55f-4425-844e-bc2dea397b93 {http,https} \N \N {/s66-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3d6bc425-8bba-4a27-ad92-7f4676b167a5 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 34f521cb-53b9-4824-89b7-15459e96532f {http,https} \N \N {/s67-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +57b695be-5b45-4e9d-b96c-f82dee5c06ab 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 34f521cb-53b9-4824-89b7-15459e96532f {http,https} \N \N {/s67-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bb952eb2-a5e3-465a-837a-06908d777bef 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 34f521cb-53b9-4824-89b7-15459e96532f {http,https} \N \N {/s67-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +08636446-4863-4615-93a2-d88336303d9a 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 34f521cb-53b9-4824-89b7-15459e96532f {http,https} \N \N {/s67-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4ba55de6-96af-4854-8eea-af4f7eae005f 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 33a92a68-5e8d-487b-977e-89dd42a458bd {http,https} \N \N {/s68-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +638b369e-b27e-4be6-b139-8f747422453e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 33a92a68-5e8d-487b-977e-89dd42a458bd {http,https} \N \N {/s68-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6211773e-191e-43a2-b114-8de79c70d841 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 33a92a68-5e8d-487b-977e-89dd42a458bd {http,https} \N \N {/s68-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dee01448-e99a-4990-8f07-f187483c4a3c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 33a92a68-5e8d-487b-977e-89dd42a458bd {http,https} \N \N {/s68-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9e6312a9-762e-4442-82dd-404e5d0b1e24 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dbbe71cb-7ec1-4c43-804d-ef6a92721d90 {http,https} \N \N {/s69-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +793889bb-ad6d-45c5-ab09-d6170885350e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dbbe71cb-7ec1-4c43-804d-ef6a92721d90 {http,https} \N \N {/s69-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +792e6099-3c47-4d19-b97e-b7f1ad14b6b3 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dbbe71cb-7ec1-4c43-804d-ef6a92721d90 {http,https} \N \N {/s69-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +df9f4f76-306c-4243-843a-ce697957d909 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N dbbe71cb-7ec1-4c43-804d-ef6a92721d90 {http,https} \N \N {/s69-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c7379f6d-1aea-4c1e-9347-d0b3c4ac1a09 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 69a88ba4-e530-4723-b7c3-f739b92a5a66 {http,https} \N \N {/s70-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0473cdf4-8dd1-43cf-bb0e-24dd9133496b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 69a88ba4-e530-4723-b7c3-f739b92a5a66 {http,https} \N \N {/s70-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +17e4085d-52ce-4825-98fd-63c6e389ef2a 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 69a88ba4-e530-4723-b7c3-f739b92a5a66 {http,https} \N \N {/s70-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +50ee2ef5-0eb9-449f-873a-3ffe3ca64478 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 69a88ba4-e530-4723-b7c3-f739b92a5a66 {http,https} \N \N {/s70-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +339e65d3-f2e4-4d6c-883f-089eb773b0b9 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 0d1eb445-8a10-49bb-952f-5eb35a8599d3 {http,https} \N \N {/s71-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b49dea8c-55fa-422f-bca3-aa3c93116e0b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 0d1eb445-8a10-49bb-952f-5eb35a8599d3 {http,https} \N \N {/s71-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e369db3-ea50-4d1f-b0a2-ed9209ccfc91 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 0d1eb445-8a10-49bb-952f-5eb35a8599d3 {http,https} \N \N {/s71-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9f5026b1-a5c7-47d8-b275-a777abdd13da 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 0d1eb445-8a10-49bb-952f-5eb35a8599d3 {http,https} \N \N {/s71-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +70cac125-433d-4ef7-8d95-d285cf4e0370 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a03dac5a-20dc-492d-b4db-732a79d4a30c {http,https} \N \N {/s72-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d84502db-755f-4301-9943-d140abfc00be 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a03dac5a-20dc-492d-b4db-732a79d4a30c {http,https} \N \N {/s72-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e08338f6-0985-495a-9f94-c05923658a7a 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a03dac5a-20dc-492d-b4db-732a79d4a30c {http,https} \N \N {/s72-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +abeb4a51-d15c-4f76-ab81-c66e67871626 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a03dac5a-20dc-492d-b4db-732a79d4a30c {http,https} \N \N {/s72-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +647e2caf-3b5c-46ab-85e8-a38cdd67a25b 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 291a0424-2ad1-47a6-a8b2-c63a037bf03c {http,https} \N \N {/s73-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +558e54d5-0c54-4fcf-84ee-da97751c4e48 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 291a0424-2ad1-47a6-a8b2-c63a037bf03c {http,https} \N \N {/s73-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3e2c67c4-03d2-49a3-b888-cb185c1fa600 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 291a0424-2ad1-47a6-a8b2-c63a037bf03c {http,https} \N \N {/s73-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2ea5cb4d-5e42-4d2f-84cd-abe9854e4697 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 291a0424-2ad1-47a6-a8b2-c63a037bf03c {http,https} \N \N {/s73-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4996e322-c97f-4aec-b788-c11ccaf9efd8 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4eb8a749-0bd2-47af-8fdc-4cf128bf0b66 {http,https} \N \N {/s74-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +81de2981-e03e-43ee-aed3-a244f12bee7c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4eb8a749-0bd2-47af-8fdc-4cf128bf0b66 {http,https} \N \N {/s74-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +019cf0ee-2cdb-4d65-8263-1a1f9c3c5f6e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4eb8a749-0bd2-47af-8fdc-4cf128bf0b66 {http,https} \N \N {/s74-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24ac0cea-3fe9-4873-b9a6-e050eff27d82 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 4eb8a749-0bd2-47af-8fdc-4cf128bf0b66 {http,https} \N \N {/s74-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4c80aa43-3d2b-46e7-9f26-0f56e776b06c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c398e6e1-2f3e-4897-912f-483c03ec6959 {http,https} \N \N {/s75-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1a8c8d53-ce1e-4b4b-9eeb-acacb1c5d70e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c398e6e1-2f3e-4897-912f-483c03ec6959 {http,https} \N \N {/s75-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29681c3f-0f05-4c3d-8f3f-2230f797811d 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c398e6e1-2f3e-4897-912f-483c03ec6959 {http,https} \N \N {/s75-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4245e97f-22dc-40d2-b922-780fd073f3ec 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c398e6e1-2f3e-4897-912f-483c03ec6959 {http,https} \N \N {/s75-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +757a1bfc-a735-4d45-9a50-7112f969ea15 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c544969b-0b53-43a7-a6a9-79e400d7b852 {http,https} \N \N {/s76-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f7d2f30-ad6f-4eb0-940a-b6d2f0c8877c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c544969b-0b53-43a7-a6a9-79e400d7b852 {http,https} \N \N {/s76-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e0ca802f-c54b-4a69-895b-9d5ddd1bf25c 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c544969b-0b53-43a7-a6a9-79e400d7b852 {http,https} \N \N {/s76-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ca7ec55c-2cb6-4689-bac0-c3c3f46abe9e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N c544969b-0b53-43a7-a6a9-79e400d7b852 {http,https} \N \N {/s76-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +07d18ff5-7c3a-43cf-8e73-0b61cdd9a867 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1dc10ac4-8720-49d0-9624-e2320ad83910 {http,https} \N \N {/s77-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b365a387-d043-4178-81fc-b30f32f082b6 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1dc10ac4-8720-49d0-9624-e2320ad83910 {http,https} \N \N {/s77-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3d56746a-4238-456d-9064-056d21decf91 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1dc10ac4-8720-49d0-9624-e2320ad83910 {http,https} \N \N {/s77-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +891dc0c9-4193-4952-87d8-ea6056b2ba88 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 1dc10ac4-8720-49d0-9624-e2320ad83910 {http,https} \N \N {/s77-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cbc1d656-4bfa-40bd-b40f-ef2b5af4d4f0 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 961eda07-6db4-41a9-b053-55f3d86feab9 {http,https} \N \N {/s78-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc2f8ad7-55e2-4ccb-9ec2-0dc5d8619482 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 961eda07-6db4-41a9-b053-55f3d86feab9 {http,https} \N \N {/s78-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7b040585-87c8-4559-883e-2c316faf3c65 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 961eda07-6db4-41a9-b053-55f3d86feab9 {http,https} \N \N {/s78-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2c30a266-bcae-43a2-9541-a291224a7049 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N 961eda07-6db4-41a9-b053-55f3d86feab9 {http,https} \N \N {/s78-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3b01e0e4-a2d4-49cf-910b-415c20e7f3cf 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a92dc0e0-3cd3-4c00-bfbd-1b9d849c617b {http,https} \N \N {/s79-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c5054caa-c60c-436a-a041-0be366e8d272 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a92dc0e0-3cd3-4c00-bfbd-1b9d849c617b {http,https} \N \N {/s79-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1419869c-88ee-495a-ba0f-379b5e0e9984 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a92dc0e0-3cd3-4c00-bfbd-1b9d849c617b {http,https} \N \N {/s79-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4909080-0e69-4f7d-8d50-de3bfefae69e 2022-05-26 09:04:22+00 2022-05-26 09:04:22+00 \N a92dc0e0-3cd3-4c00-bfbd-1b9d849c617b {http,https} \N \N {/s79-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5db0a03-9630-45ea-9996-e65fcf6d0b8a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6fc0c8de-dd47-4b2d-be48-acff77604738 {http,https} \N \N {/s80-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4a9d3ff9-c671-48e8-bfaf-28cc9bb82f7b 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6fc0c8de-dd47-4b2d-be48-acff77604738 {http,https} \N \N {/s80-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5b38a474-491d-471f-ba11-1b54ad9f1637 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6fc0c8de-dd47-4b2d-be48-acff77604738 {http,https} \N \N {/s80-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9ff12282-1ec8-49b2-b35f-426406bae7bc 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6fc0c8de-dd47-4b2d-be48-acff77604738 {http,https} \N \N {/s80-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8677f5a4-f5b3-4893-a2c2-5ce9bd4626dd 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c1477ea4-988e-40e5-b7a8-6fa4e688f36d {http,https} \N \N {/s81-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9ae59152-7021-4460-b166-ce819c7a078b 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c1477ea4-988e-40e5-b7a8-6fa4e688f36d {http,https} \N \N {/s81-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eb751574-5953-4b2b-8ff2-b946d3366caf 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c1477ea4-988e-40e5-b7a8-6fa4e688f36d {http,https} \N \N {/s81-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f781fee0-5d8d-485d-a425-49670bf46d9a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c1477ea4-988e-40e5-b7a8-6fa4e688f36d {http,https} \N \N {/s81-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0dce98c9-dffc-4657-bc2a-1ae1033dd2a7 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c0ac16b4-51b2-4388-a75c-99a6e8864567 {http,https} \N \N {/s82-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e6684904-4bee-472b-a960-9719d4fb3d09 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c0ac16b4-51b2-4388-a75c-99a6e8864567 {http,https} \N \N {/s82-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a21e5c1c-7b7a-40c7-a706-cfe47049969a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c0ac16b4-51b2-4388-a75c-99a6e8864567 {http,https} \N \N {/s82-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +36fea073-81cd-4283-956d-128f55a83899 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N c0ac16b4-51b2-4388-a75c-99a6e8864567 {http,https} \N \N {/s82-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +45f33f4c-8fa7-48f0-a831-b368bc51d06a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N b3490c56-2668-4cf8-ac26-9d3c38fb9ce6 {http,https} \N \N {/s83-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4b17145e-d390-400b-b142-7b8fe0682b5f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N b3490c56-2668-4cf8-ac26-9d3c38fb9ce6 {http,https} \N \N {/s83-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +defa59d1-6f2f-436d-a5c8-9cf13c193334 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N b3490c56-2668-4cf8-ac26-9d3c38fb9ce6 {http,https} \N \N {/s83-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e2f71888-ac65-4716-95cb-6c1999dacbae 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N b3490c56-2668-4cf8-ac26-9d3c38fb9ce6 {http,https} \N \N {/s83-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e28cbd79-6bf0-466a-8754-e6fc1ca61124 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6f607e1a-2baf-4f12-b0ed-270073df30c6 {http,https} \N \N {/s84-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +242ba16c-e255-499c-9908-7cf006340140 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6f607e1a-2baf-4f12-b0ed-270073df30c6 {http,https} \N \N {/s84-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29284033-0e0a-43c6-b82a-5446f0447cb7 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6f607e1a-2baf-4f12-b0ed-270073df30c6 {http,https} \N \N {/s84-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +62f01079-9db2-4e4a-ab3d-6235d0900e23 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 6f607e1a-2baf-4f12-b0ed-270073df30c6 {http,https} \N \N {/s84-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e87efb35-04cb-44e6-9bb3-30e76b5ec298 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4284966e-2ef5-45f7-b16c-faba6666c300 {http,https} \N \N {/s85-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +12a70bf9-d5d8-4402-8d22-b97d3fe6c8a4 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4284966e-2ef5-45f7-b16c-faba6666c300 {http,https} \N \N {/s85-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2594018c-1d96-4af3-af45-7eebc8d06515 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4284966e-2ef5-45f7-b16c-faba6666c300 {http,https} \N \N {/s85-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c7c39170-549b-4182-8ae6-13b8e73be911 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4284966e-2ef5-45f7-b16c-faba6666c300 {http,https} \N \N {/s85-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fc596999-1fc0-4a7b-a61b-14506c15e12d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0a3d005f-e8ae-46a0-bc92-0a4a8147fe3f {http,https} \N \N {/s86-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b5a95da1-841f-4653-b0de-9a405b6a5b99 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0a3d005f-e8ae-46a0-bc92-0a4a8147fe3f {http,https} \N \N {/s86-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3af242f4-3b4a-4cc8-8e49-fabcdd6d20d7 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0a3d005f-e8ae-46a0-bc92-0a4a8147fe3f {http,https} \N \N {/s86-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f808cfc-6eb5-4841-82bc-cb9945bab516 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0a3d005f-e8ae-46a0-bc92-0a4a8147fe3f {http,https} \N \N {/s86-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +35a595cc-d05e-4e4d-83b4-660e91cf6907 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f7039445-e8fa-44c0-ba30-4db609972643 {http,https} \N \N {/s87-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb93afbe-d5bc-4fae-995c-8b05e05f4a68 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f7039445-e8fa-44c0-ba30-4db609972643 {http,https} \N \N {/s87-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d8bbc254-7ec6-40fd-a93a-ad34a5c1b99d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f7039445-e8fa-44c0-ba30-4db609972643 {http,https} \N \N {/s87-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a6c4abac-9a5b-49e8-aa13-ca82f95de345 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f7039445-e8fa-44c0-ba30-4db609972643 {http,https} \N \N {/s87-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b3435e36-b1b8-4d10-be89-fc955bb56a12 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 10db8481-4fa8-4531-9e0c-fb20e642dc40 {http,https} \N \N {/s88-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +49e68f0e-8bb0-42e9-8e7a-a2e05821ff07 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 10db8481-4fa8-4531-9e0c-fb20e642dc40 {http,https} \N \N {/s88-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5d706489-1d36-4c5a-b451-1672965ae52d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 10db8481-4fa8-4531-9e0c-fb20e642dc40 {http,https} \N \N {/s88-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +986f5e98-8421-4e69-9045-88bdc41a6d09 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 10db8481-4fa8-4531-9e0c-fb20e642dc40 {http,https} \N \N {/s88-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0297b90-367a-4b03-b9ff-6d215458cbf4 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0069a9d9-459a-4efc-b5a2-c0ae786c92bd {http,https} \N \N {/s89-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2af7a506-b909-4ec1-868a-3f8b117483b1 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0069a9d9-459a-4efc-b5a2-c0ae786c92bd {http,https} \N \N {/s89-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63f3ce37-3f36-4b9b-8b81-e1ddb433539b 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0069a9d9-459a-4efc-b5a2-c0ae786c92bd {http,https} \N \N {/s89-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d22ddd42-4591-46d0-bddf-46fad1561fd7 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0069a9d9-459a-4efc-b5a2-c0ae786c92bd {http,https} \N \N {/s89-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +35d3cc52-4107-458f-ad8e-aee80dd3483e 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fa73881d-a74d-4349-8a9c-b2ae17b414fd {http,https} \N \N {/s90-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +678a2a21-fb5c-4b53-b9a3-5acc590e5e93 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fa73881d-a74d-4349-8a9c-b2ae17b414fd {http,https} \N \N {/s90-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +44162869-6884-47bc-9476-98c8c38ad9bf 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fa73881d-a74d-4349-8a9c-b2ae17b414fd {http,https} \N \N {/s90-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +716749cf-4ca9-4298-a603-7605970c733e 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fa73881d-a74d-4349-8a9c-b2ae17b414fd {http,https} \N \N {/s90-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4d75c19a-37a4-4664-b98d-2b7a81de89c6 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fea825b5-53e7-4d5e-b594-5e6d20822e27 {http,https} \N \N {/s91-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c81cf78d-87d0-4977-8496-4824784c28b8 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fea825b5-53e7-4d5e-b594-5e6d20822e27 {http,https} \N \N {/s91-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6b1b5631-cf02-4220-b8a7-6aeea37cf89f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fea825b5-53e7-4d5e-b594-5e6d20822e27 {http,https} \N \N {/s91-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cd28b502-199d-4fd7-bd0e-e343844f83cd 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N fea825b5-53e7-4d5e-b594-5e6d20822e27 {http,https} \N \N {/s91-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9dad893e-6c1b-49f6-bab2-f0f4d23aeeb9 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0f9df5d5-3dd4-4a0b-beef-5aed37af31c6 {http,https} \N \N {/s92-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +858e8ea3-ab8d-448f-8336-845f97b77242 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0f9df5d5-3dd4-4a0b-beef-5aed37af31c6 {http,https} \N \N {/s92-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83f1d1a3-11ef-4a49-8467-1ae7769cae4f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0f9df5d5-3dd4-4a0b-beef-5aed37af31c6 {http,https} \N \N {/s92-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83b72d29-4fc2-4454-af94-b05add1f612a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 0f9df5d5-3dd4-4a0b-beef-5aed37af31c6 {http,https} \N \N {/s92-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5e01aa1d-e5de-4429-a49c-867ba6d43c34 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7d839f08-fe27-44a8-bbea-abaea85e8ec4 {http,https} \N \N {/s93-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eac2c744-d694-4e53-8321-1bf5d2711ef9 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7d839f08-fe27-44a8-bbea-abaea85e8ec4 {http,https} \N \N {/s93-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff25f866-172d-4eb3-a780-0f7b74779572 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7d839f08-fe27-44a8-bbea-abaea85e8ec4 {http,https} \N \N {/s93-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +96f720ad-4305-4dfa-a03d-650aeee8651d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7d839f08-fe27-44a8-bbea-abaea85e8ec4 {http,https} \N \N {/s93-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c3e8a3ac-10f2-4de2-b9cf-681379e6373e 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4e27c8d3-1b57-4837-a62e-7b7129f23b87 {http,https} \N \N {/s94-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4685cd6e-0dba-4249-ae0e-9deefb9952c5 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4e27c8d3-1b57-4837-a62e-7b7129f23b87 {http,https} \N \N {/s94-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bbbaacf1-310a-4b13-986c-14dbff6320e8 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4e27c8d3-1b57-4837-a62e-7b7129f23b87 {http,https} \N \N {/s94-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8be9c5cd-0b29-4750-8529-109f179754f6 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 4e27c8d3-1b57-4837-a62e-7b7129f23b87 {http,https} \N \N {/s94-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28b4f591-df0d-498e-92b8-9b97fae801a3 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 187a1bbe-8750-47fd-a693-eb832b67106f {http,https} \N \N {/s95-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f375807e-3ab9-4972-beac-86b454d9f9a1 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 187a1bbe-8750-47fd-a693-eb832b67106f {http,https} \N \N {/s95-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +293dd5ba-72cb-4f04-8c0a-3757b6fbab6b 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 187a1bbe-8750-47fd-a693-eb832b67106f {http,https} \N \N {/s95-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +61c03edb-0caa-48b0-a52e-2a462393cee3 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 187a1bbe-8750-47fd-a693-eb832b67106f {http,https} \N \N {/s95-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e70b696-b717-4a41-b399-8ca2ff308a9c 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 97cac022-7f9a-4eb7-a600-3f99cbdf8484 {http,https} \N \N {/s96-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d3082908-2a66-42c6-9631-e1c0951f7866 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 97cac022-7f9a-4eb7-a600-3f99cbdf8484 {http,https} \N \N {/s96-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +61c692c6-67dc-46e9-b910-856cd7bcda12 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 97cac022-7f9a-4eb7-a600-3f99cbdf8484 {http,https} \N \N {/s96-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c6c9e4ec-1a34-4fbd-8879-a19cb1d70325 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 97cac022-7f9a-4eb7-a600-3f99cbdf8484 {http,https} \N \N {/s96-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +00014ccf-4ca8-4755-b0d2-8b92dc71920d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f731ee23-32fc-428e-858c-2451542ef358 {http,https} \N \N {/s97-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eb580aa6-8121-4a18-bb67-7cfdecde4b6f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f731ee23-32fc-428e-858c-2451542ef358 {http,https} \N \N {/s97-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +215e806d-f5bb-431a-8497-6d144090476c 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f731ee23-32fc-428e-858c-2451542ef358 {http,https} \N \N {/s97-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +99afea6a-684b-497d-a342-465f77de19f2 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N f731ee23-32fc-428e-858c-2451542ef358 {http,https} \N \N {/s97-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f9643224-8206-4dea-bf38-c0774296262a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7cdc1f2b-844d-44af-80ee-9ee8ce30ec3a {http,https} \N \N {/s98-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2fdd828a-3fef-4df8-b800-040dbaa54e4e 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7cdc1f2b-844d-44af-80ee-9ee8ce30ec3a {http,https} \N \N {/s98-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +09ba47c5-29d7-4741-9aaa-66edacca5e2a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7cdc1f2b-844d-44af-80ee-9ee8ce30ec3a {http,https} \N \N {/s98-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb992552-77ac-435a-afc0-5bc7e26d0165 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 7cdc1f2b-844d-44af-80ee-9ee8ce30ec3a {http,https} \N \N {/s98-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f93a1cf0-2ad4-4df5-a229-5c98139904da 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 786c4ca2-f7e2-497f-afe9-04a7d389cffb {http,https} \N \N {/s99-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63f416fb-0ffb-47d2-a206-5cee31b34c1b 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 786c4ca2-f7e2-497f-afe9-04a7d389cffb {http,https} \N \N {/s99-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9dfa1071-ab2b-41ba-b753-9cbefef656fb 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 786c4ca2-f7e2-497f-afe9-04a7d389cffb {http,https} \N \N {/s99-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6747376a-7cb0-406e-9f40-7797e1125a97 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 786c4ca2-f7e2-497f-afe9-04a7d389cffb {http,https} \N \N {/s99-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4127491-d785-45fa-b64a-784acbf2a89c 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 327348b0-de35-47ef-a46b-292bf1a2ce91 {http,https} \N \N {/s100-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d67b5cb2-b0b5-4d77-924b-63bd7584d396 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 327348b0-de35-47ef-a46b-292bf1a2ce91 {http,https} \N \N {/s100-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6924c386-e398-46e5-8190-6074c7c7c690 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 327348b0-de35-47ef-a46b-292bf1a2ce91 {http,https} \N \N {/s100-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +527f67de-81f0-481c-96bf-a1c18272204d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 327348b0-de35-47ef-a46b-292bf1a2ce91 {http,https} \N \N {/s100-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +89f8dc6d-5186-4a5e-8a1b-ab664092a901 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 42231a53-eac6-41d4-906f-96a6007efd5c {http,https} \N \N {/s101-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5e1cf5ab-5814-4ba0-953d-e65c50359cc2 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 42231a53-eac6-41d4-906f-96a6007efd5c {http,https} \N \N {/s101-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56c19a33-1a73-4938-a1cb-744cf850d87f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 42231a53-eac6-41d4-906f-96a6007efd5c {http,https} \N \N {/s101-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28cf63f8-14cc-4a5b-9075-d501074d9c0c 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 42231a53-eac6-41d4-906f-96a6007efd5c {http,https} \N \N {/s101-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +66247a44-9020-47eb-82ad-6c7a27a3b875 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2e5dce8d-7e56-4037-a53f-5363e78cfb67 {http,https} \N \N {/s102-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d7590ffa-8e4e-47c9-9cd0-b82b0245af60 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2e5dce8d-7e56-4037-a53f-5363e78cfb67 {http,https} \N \N {/s102-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e9eebed-1078-4198-af13-1e4c61b53d85 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2e5dce8d-7e56-4037-a53f-5363e78cfb67 {http,https} \N \N {/s102-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ca7c895-8735-4846-af81-977f2e88e0c4 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2e5dce8d-7e56-4037-a53f-5363e78cfb67 {http,https} \N \N {/s102-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9ec2593f-35c3-4b02-a3e8-a76c2d11921f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 880c0dfc-3b35-4557-9f4f-20e450605453 {http,https} \N \N {/s103-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1271dbc2-9ae0-4586-b398-b13056fa66c9 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 880c0dfc-3b35-4557-9f4f-20e450605453 {http,https} \N \N {/s103-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e2d31a30-7159-48c9-8f2c-3550d00b4933 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 880c0dfc-3b35-4557-9f4f-20e450605453 {http,https} \N \N {/s103-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f7b5e9f4-70d7-40c2-9560-d0b942f078ab 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 880c0dfc-3b35-4557-9f4f-20e450605453 {http,https} \N \N {/s103-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +99cbb127-80e9-4413-b6d6-a3e2ca030a16 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2d1e40d6-8080-4cee-98b2-c64c3dfbeb70 {http,https} \N \N {/s104-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +57fa6077-4a63-4419-9f3d-8835aeee2b51 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2d1e40d6-8080-4cee-98b2-c64c3dfbeb70 {http,https} \N \N {/s104-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +843b3b55-37f7-4eaa-b3c2-16f82baf4eba 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2d1e40d6-8080-4cee-98b2-c64c3dfbeb70 {http,https} \N \N {/s104-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b56573dd-73d9-4fcf-b913-4cb34d99501f 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 2d1e40d6-8080-4cee-98b2-c64c3dfbeb70 {http,https} \N \N {/s104-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +99fa82d0-384b-49cb-a8a9-081ad2b78d96 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 92e0b48f-e57a-4b37-a150-ca88c81d14a3 {http,https} \N \N {/s105-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +da37c5ed-b9c5-4b50-ada0-f5bb20d979a0 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 92e0b48f-e57a-4b37-a150-ca88c81d14a3 {http,https} \N \N {/s105-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bf1f6c36-b4d2-4ee4-a30d-21b7e10fc921 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 92e0b48f-e57a-4b37-a150-ca88c81d14a3 {http,https} \N \N {/s105-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +71f366dd-fa90-4cca-8bb0-32a8044c1eae 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 92e0b48f-e57a-4b37-a150-ca88c81d14a3 {http,https} \N \N {/s105-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +96ea5adf-c1a8-4217-9831-ebef9e4bb447 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 837f896d-e596-4681-94af-74e1f8832cec {http,https} \N \N {/s106-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d51a47e0-df63-46dc-a58f-2a98da21fe1c 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 837f896d-e596-4681-94af-74e1f8832cec {http,https} \N \N {/s106-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2cf8e1a1-c838-45b3-8eba-73159a0e0718 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 837f896d-e596-4681-94af-74e1f8832cec {http,https} \N \N {/s106-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +092d64bd-9ad3-41c0-8aaf-a2259319ceeb 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 837f896d-e596-4681-94af-74e1f8832cec {http,https} \N \N {/s106-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +78e6a9d8-d4c6-442a-9a84-1f127076bb68 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N dfa8a1f7-4dba-4abe-b98d-11146dddf483 {http,https} \N \N {/s107-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +43beb0fa-c485-4296-b8cb-c8d135c6847a 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N dfa8a1f7-4dba-4abe-b98d-11146dddf483 {http,https} \N \N {/s107-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc74ff68-b16e-4ab5-b6d2-d8584c35d5be 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N dfa8a1f7-4dba-4abe-b98d-11146dddf483 {http,https} \N \N {/s107-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aa1981d7-2398-45a9-9215-26b5622c203d 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N dfa8a1f7-4dba-4abe-b98d-11146dddf483 {http,https} \N \N {/s107-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +645d75d2-fefb-4d51-a076-f4f56a705b14 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 87b83cd7-e97b-46e2-b8aa-cfc3f41df930 {http,https} \N \N {/s108-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +52afa8fe-7cd9-4f19-814f-f0a40ddffb48 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 87b83cd7-e97b-46e2-b8aa-cfc3f41df930 {http,https} \N \N {/s108-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +20613670-0d6c-4b52-bd82-29ab4700eda8 2022-05-26 09:04:23+00 2022-05-26 09:04:23+00 \N 87b83cd7-e97b-46e2-b8aa-cfc3f41df930 {http,https} \N \N {/s108-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fe336d75-96cc-4e8e-8923-a3f0952f7b5f 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 87b83cd7-e97b-46e2-b8aa-cfc3f41df930 {http,https} \N \N {/s108-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4a47002-7ac0-4c25-b678-40db29d5ac21 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 090f6901-a7d3-42e6-94f4-69ff07632983 {http,https} \N \N {/s109-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +da5138ea-c2ed-47fb-9f59-b6f814700b6d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 090f6901-a7d3-42e6-94f4-69ff07632983 {http,https} \N \N {/s109-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cf40b75a-8bcd-4858-acbc-e2751a0e7afa 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 090f6901-a7d3-42e6-94f4-69ff07632983 {http,https} \N \N {/s109-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e86288a-0c75-41da-8aa6-c6a59da62285 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 090f6901-a7d3-42e6-94f4-69ff07632983 {http,https} \N \N {/s109-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7290602b-fe3e-40b5-82bc-6b4059ed46e7 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f0c01e5e-139d-4458-a3f7-47c6f9eb59de {http,https} \N \N {/s110-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c20d930-7ae4-4e53-89d5-3813eddabb29 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f0c01e5e-139d-4458-a3f7-47c6f9eb59de {http,https} \N \N {/s110-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22814e4c-15c5-474d-867e-d8128914d1c2 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f0c01e5e-139d-4458-a3f7-47c6f9eb59de {http,https} \N \N {/s110-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed36a390-d149-4c0a-8847-87d6b227dade 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f0c01e5e-139d-4458-a3f7-47c6f9eb59de {http,https} \N \N {/s110-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d5f28231-3ddd-48d8-809c-c06b7c0c16e1 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c1ad53a6-4115-441a-a162-5a27b3e5c01d {http,https} \N \N {/s111-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4b9a146a-30d3-4c69-b730-284d0f77caeb 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c1ad53a6-4115-441a-a162-5a27b3e5c01d {http,https} \N \N {/s111-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a27ff94-a4ca-4bc2-b6b7-b00a7cd28518 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c1ad53a6-4115-441a-a162-5a27b3e5c01d {http,https} \N \N {/s111-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f4d261e-7897-498f-86cc-cbac60d7e739 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c1ad53a6-4115-441a-a162-5a27b3e5c01d {http,https} \N \N {/s111-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +95c42670-8b63-487e-b3fb-86806f894d0b 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6b12e083-97d5-4964-82c5-22bc95802ef0 {http,https} \N \N {/s112-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b72c9536-b5ac-4844-9e11-91371fac14a8 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6b12e083-97d5-4964-82c5-22bc95802ef0 {http,https} \N \N {/s112-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ec15c7b-a948-4967-9d83-e7fd54b5cb83 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6b12e083-97d5-4964-82c5-22bc95802ef0 {http,https} \N \N {/s112-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f79e102-51fd-4070-bc31-d88b340e810a 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6b12e083-97d5-4964-82c5-22bc95802ef0 {http,https} \N \N {/s112-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bde2c98c-5c0d-486f-a6b2-924f80e044f0 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75d7f4d4-c369-46cd-bf84-fb40784d4fe1 {http,https} \N \N {/s113-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83413b21-589d-408c-990c-c0b17838847f 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75d7f4d4-c369-46cd-bf84-fb40784d4fe1 {http,https} \N \N {/s113-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18a13c73-d50a-4d12-aad9-16cd0d3c8a40 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75d7f4d4-c369-46cd-bf84-fb40784d4fe1 {http,https} \N \N {/s113-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1f0e0456-c7ee-4af6-8b94-5b077ea64048 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75d7f4d4-c369-46cd-bf84-fb40784d4fe1 {http,https} \N \N {/s113-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +10664876-8b48-4c8c-a764-3c40b0be0bfc 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5e861b07-f18f-48b1-aa4d-e44f7ca06eb5 {http,https} \N \N {/s114-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ab17906f-1ee8-4064-817e-5f904bdcf0e1 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5e861b07-f18f-48b1-aa4d-e44f7ca06eb5 {http,https} \N \N {/s114-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +520dc7fc-65be-4c4b-b25d-fa3365e23289 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5e861b07-f18f-48b1-aa4d-e44f7ca06eb5 {http,https} \N \N {/s114-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bf18669d-d0a2-4cc6-a560-6b8c8f04889b 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 5e861b07-f18f-48b1-aa4d-e44f7ca06eb5 {http,https} \N \N {/s114-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +78209c49-5cbb-42c5-b57f-234f15c66764 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N dc67018b-ba17-48f8-962a-e39d4e96eff4 {http,https} \N \N {/s115-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2a24cacd-bf1a-4757-864e-a07112ddbd8b 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N dc67018b-ba17-48f8-962a-e39d4e96eff4 {http,https} \N \N {/s115-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aca61615-c28e-4eff-84d8-674a55d753fc 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N dc67018b-ba17-48f8-962a-e39d4e96eff4 {http,https} \N \N {/s115-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +570e8fe5-d94d-43a7-802a-8b899a5261aa 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N dc67018b-ba17-48f8-962a-e39d4e96eff4 {http,https} \N \N {/s115-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc879ce6-2110-4e92-a92b-beb92d473387 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N d025ea98-eb37-4e43-bddc-302f5d4ecee1 {http,https} \N \N {/s116-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1fa533ff-0362-4c74-a56d-cd413a28365a 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N d025ea98-eb37-4e43-bddc-302f5d4ecee1 {http,https} \N \N {/s116-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e7b0b95e-ab6b-46bb-832b-3c75bae4f5e7 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N d025ea98-eb37-4e43-bddc-302f5d4ecee1 {http,https} \N \N {/s116-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +38b19459-3053-4648-8877-89fbbc1f2c77 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N d025ea98-eb37-4e43-bddc-302f5d4ecee1 {http,https} \N \N {/s116-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7c7b4f75-d8c9-4a52-9338-f498326f5d50 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 34f418de-2a74-47b6-ac68-9099b4281763 {http,https} \N \N {/s117-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +badac910-0e73-4e2c-a1d7-73829c48e95d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 34f418de-2a74-47b6-ac68-9099b4281763 {http,https} \N \N {/s117-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18a1b5ec-aa61-4385-9b30-f71c68b07e06 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 34f418de-2a74-47b6-ac68-9099b4281763 {http,https} \N \N {/s117-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6b598c0-2a3a-4d12-ba70-187419437c50 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 34f418de-2a74-47b6-ac68-9099b4281763 {http,https} \N \N {/s117-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5bedca3e-46a2-4e94-993d-9e7b21e11042 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 81c2ba99-2238-48c5-9d7b-ee96f85ed0c5 {http,https} \N \N {/s118-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2edb719b-ec2b-461d-a93d-2758a5212afb 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 81c2ba99-2238-48c5-9d7b-ee96f85ed0c5 {http,https} \N \N {/s118-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ffa536c0-c83d-42c0-84e6-ada512e9dadf 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 81c2ba99-2238-48c5-9d7b-ee96f85ed0c5 {http,https} \N \N {/s118-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +48e43137-ac5c-4671-9905-2f9da67c9000 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 81c2ba99-2238-48c5-9d7b-ee96f85ed0c5 {http,https} \N \N {/s118-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1940e6e7-466d-4546-899d-5e33ed975d22 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N bebc02c6-4798-4c51-9c65-6ac83e7e2050 {http,https} \N \N {/s119-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c6523340-b914-46e7-a2e3-a69e5bffa403 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N bebc02c6-4798-4c51-9c65-6ac83e7e2050 {http,https} \N \N {/s119-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d93c99d0-e85a-49cf-89fa-6d87358a5b58 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N bebc02c6-4798-4c51-9c65-6ac83e7e2050 {http,https} \N \N {/s119-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +50f21b8f-9054-4c33-b309-20980545c572 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N bebc02c6-4798-4c51-9c65-6ac83e7e2050 {http,https} \N \N {/s119-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f2a3023-b047-4086-abd9-c5d97811124e 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 84579611-336d-4291-ba77-6907426203d0 {http,https} \N \N {/s120-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +92c01ded-c2bd-4eec-bfa8-b0531bdb0a73 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 84579611-336d-4291-ba77-6907426203d0 {http,https} \N \N {/s120-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e6ada7b-3292-4c2d-b14b-45ec885c1fd0 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 84579611-336d-4291-ba77-6907426203d0 {http,https} \N \N {/s120-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ac8b92ca-6a7a-4f7c-9b07-ffc7843880a2 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 84579611-336d-4291-ba77-6907426203d0 {http,https} \N \N {/s120-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5a2283a1-2697-4b8c-8acb-6a6f8173f681 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 03d2fc5d-582c-4f45-bce2-41f8a1e45f45 {http,https} \N \N {/s121-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f38f49b-fdc3-464e-90d8-02b15fe2ad31 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 03d2fc5d-582c-4f45-bce2-41f8a1e45f45 {http,https} \N \N {/s121-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e0fe610-4072-4177-9864-4a0db3492c86 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 03d2fc5d-582c-4f45-bce2-41f8a1e45f45 {http,https} \N \N {/s121-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8576e3ab-8c50-4928-a817-1807774fdf4f 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 03d2fc5d-582c-4f45-bce2-41f8a1e45f45 {http,https} \N \N {/s121-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b72e7a63-e228-46b7-94f1-3c51d14033de 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 8bd5e802-0de6-462c-89d8-8a3dc33743fc {http,https} \N \N {/s122-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5d4bcbaa-a58e-4130-b1a7-4724344b734f 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 8bd5e802-0de6-462c-89d8-8a3dc33743fc {http,https} \N \N {/s122-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7ed9986a-597c-4b54-879b-c03b8467e3ea 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 8bd5e802-0de6-462c-89d8-8a3dc33743fc {http,https} \N \N {/s122-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f4bda711-2f4b-4ef1-b4f6-51a0c9aaf551 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 8bd5e802-0de6-462c-89d8-8a3dc33743fc {http,https} \N \N {/s122-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e175c49d-b8c4-460f-a1c0-c8e5132fd117 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75a284e6-a2d0-4fa0-9210-d1dfbfe393cc {http,https} \N \N {/s123-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +13ee1365-a19c-46f8-bc06-edc10649ab5d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75a284e6-a2d0-4fa0-9210-d1dfbfe393cc {http,https} \N \N {/s123-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c299e8f2-c906-41ef-a314-0d76bbbfa642 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75a284e6-a2d0-4fa0-9210-d1dfbfe393cc {http,https} \N \N {/s123-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc1cda5a-e5bf-4d05-b24f-71c66834cd12 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 75a284e6-a2d0-4fa0-9210-d1dfbfe393cc {http,https} \N \N {/s123-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c9c2674-9b08-4180-b780-af8b124b8713 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 9462d6ae-3811-488a-8f43-93afe7e8d6ed {http,https} \N \N {/s124-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +77e43a18-b2e5-4ad3-8cd2-fb5a0642051c 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 9462d6ae-3811-488a-8f43-93afe7e8d6ed {http,https} \N \N {/s124-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0586adfd-898e-48af-85a6-46d4e32ff94a 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 9462d6ae-3811-488a-8f43-93afe7e8d6ed {http,https} \N \N {/s124-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +48b5b353-d790-4cb1-928e-a0e5fc50ba43 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 9462d6ae-3811-488a-8f43-93afe7e8d6ed {http,https} \N \N {/s124-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +62b72daa-088a-46be-a912-a53dacacc40d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6a8aa9d7-cefe-455e-8671-721e43cd0b96 {http,https} \N \N {/s125-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +66d8c4b8-c15a-4fa6-ab67-f93a052240e6 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6a8aa9d7-cefe-455e-8671-721e43cd0b96 {http,https} \N \N {/s125-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e9a334f5-9712-4d35-aa49-ee8f2a3c1c37 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6a8aa9d7-cefe-455e-8671-721e43cd0b96 {http,https} \N \N {/s125-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e42d8021-6e19-4e0a-88d9-0c3d4b4251ca 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 6a8aa9d7-cefe-455e-8671-721e43cd0b96 {http,https} \N \N {/s125-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e3c1eada-79a8-44e2-bf0d-83e0beb0d0d6 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 1a79fb8d-58e0-42d1-a2b2-a9f730a6d635 {http,https} \N \N {/s126-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31cfa842-fde0-4f62-a531-c4da23b56987 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 1a79fb8d-58e0-42d1-a2b2-a9f730a6d635 {http,https} \N \N {/s126-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +efc36e6b-b127-48f6-93bd-684d6946f011 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 1a79fb8d-58e0-42d1-a2b2-a9f730a6d635 {http,https} \N \N {/s126-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +134a7d77-61d9-4cc2-ac68-c467caffe9ef 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 1a79fb8d-58e0-42d1-a2b2-a9f730a6d635 {http,https} \N \N {/s126-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22c1c65f-6dde-45bd-b897-2bfccaba56db 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 693ae85e-2dcb-4bac-a88f-832ef036ec35 {http,https} \N \N {/s127-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +deda4b00-8afd-4da7-93c6-55f93d1a3940 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 693ae85e-2dcb-4bac-a88f-832ef036ec35 {http,https} \N \N {/s127-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +13ca9075-a2f4-4fa2-88b5-8b2678917cdd 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 693ae85e-2dcb-4bac-a88f-832ef036ec35 {http,https} \N \N {/s127-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +edc97298-b3f2-4609-b3de-abb7c1f2022b 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 693ae85e-2dcb-4bac-a88f-832ef036ec35 {http,https} \N \N {/s127-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +349f9c32-5218-4754-93ac-20861d67a844 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N cf55043c-e758-4007-9d0b-f29ce449b017 {http,https} \N \N {/s128-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +72eae599-7eac-4ae5-8552-6128a5a1dcc8 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N cf55043c-e758-4007-9d0b-f29ce449b017 {http,https} \N \N {/s128-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1e6e5c03-f26e-4952-8038-65542e6c946e 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N cf55043c-e758-4007-9d0b-f29ce449b017 {http,https} \N \N {/s128-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1be86f83-0192-4b54-9cec-f9afba9d64ce 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N cf55043c-e758-4007-9d0b-f29ce449b017 {http,https} \N \N {/s128-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +10a509e5-1987-4c99-97cc-ba61e91cb463 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N b0f369f5-47ca-4790-a7c6-f70ef9670801 {http,https} \N \N {/s129-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +706ae1e3-3733-472a-8fa1-d2c252d53640 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N b0f369f5-47ca-4790-a7c6-f70ef9670801 {http,https} \N \N {/s129-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d170ee14-5ddf-47c6-8b38-df0e8fc15ea6 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N b0f369f5-47ca-4790-a7c6-f70ef9670801 {http,https} \N \N {/s129-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +91e08902-d98f-49e6-9b6b-6662d77c9bd5 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N b0f369f5-47ca-4790-a7c6-f70ef9670801 {http,https} \N \N {/s129-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8eea92e4-0351-485f-a161-7076751c078d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f54e8793-3010-4551-8a86-bc026fcdbd71 {http,https} \N \N {/s130-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cfa091ed-d262-4f27-8bbd-48febb2fd667 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f54e8793-3010-4551-8a86-bc026fcdbd71 {http,https} \N \N {/s130-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +55259e8b-9b33-4a05-bb76-413012af4a4a 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f54e8793-3010-4551-8a86-bc026fcdbd71 {http,https} \N \N {/s130-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6131c283-8f0f-4cde-a92a-0bb689946152 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N f54e8793-3010-4551-8a86-bc026fcdbd71 {http,https} \N \N {/s130-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bdd51639-d904-477c-ae5c-fecbab88bde7 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N eda8a272-adab-466a-b5c9-ba27137d2bc3 {http,https} \N \N {/s131-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +febbe7d3-b013-4150-a925-0953ad7d6dd8 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N eda8a272-adab-466a-b5c9-ba27137d2bc3 {http,https} \N \N {/s131-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +59154981-6e60-4829-b8e9-35028496621c 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N eda8a272-adab-466a-b5c9-ba27137d2bc3 {http,https} \N \N {/s131-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +84095394-8e55-4d27-9cd4-6bbe0c5b82d9 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N eda8a272-adab-466a-b5c9-ba27137d2bc3 {http,https} \N \N {/s131-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9ce4484-1583-4a42-af69-5a8e3b731675 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 78c825c8-abdd-4280-9da9-d3bf00e23f82 {http,https} \N \N {/s132-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e14a515-e926-44e6-9b09-3cdcae5043be 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 78c825c8-abdd-4280-9da9-d3bf00e23f82 {http,https} \N \N {/s132-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e642a930-abc7-4fea-8262-142f23cca225 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 78c825c8-abdd-4280-9da9-d3bf00e23f82 {http,https} \N \N {/s132-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f07ce3c0-4022-4953-b6e8-93077f0ac5ec 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 78c825c8-abdd-4280-9da9-d3bf00e23f82 {http,https} \N \N {/s132-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +221463db-8b0c-4b4f-9074-c95726a8aee4 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c3dc6599-036f-46b8-a95e-8e5b6ef3a3f5 {http,https} \N \N {/s133-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fa564666-4866-4273-8a2e-9c2fe411e69f 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c3dc6599-036f-46b8-a95e-8e5b6ef3a3f5 {http,https} \N \N {/s133-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +42113b48-05fa-40a6-ac11-fd452ceaa4c2 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c3dc6599-036f-46b8-a95e-8e5b6ef3a3f5 {http,https} \N \N {/s133-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f48ba6a-3ec1-4019-8537-41672b494b7b 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c3dc6599-036f-46b8-a95e-8e5b6ef3a3f5 {http,https} \N \N {/s133-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc7dbea1-6fd5-4ae3-aa0d-ff0762ca4861 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 4372ca08-22e6-4a0e-8d13-f598ba86cf37 {http,https} \N \N {/s134-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2e6aa602-9eff-416c-a3c5-bf2e33818b5c 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 4372ca08-22e6-4a0e-8d13-f598ba86cf37 {http,https} \N \N {/s134-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4da38f5e-153c-40d6-bead-d476a3a94fa9 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 4372ca08-22e6-4a0e-8d13-f598ba86cf37 {http,https} \N \N {/s134-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d784d600-b813-4709-8100-46bc0d674810 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 4372ca08-22e6-4a0e-8d13-f598ba86cf37 {http,https} \N \N {/s134-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +332ac737-d32b-4f6c-bced-49a7e73d2aa3 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 0766430c-c266-489c-bc27-58df3fd10388 {http,https} \N \N {/s135-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c29e82e-4079-4cc5-b87a-6555812349cf 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 0766430c-c266-489c-bc27-58df3fd10388 {http,https} \N \N {/s135-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +253636c0-8013-4d51-871f-01a78270352d 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 0766430c-c266-489c-bc27-58df3fd10388 {http,https} \N \N {/s135-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed9b0cc8-adef-4cd1-be95-303b7d47d553 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N 0766430c-c266-489c-bc27-58df3fd10388 {http,https} \N \N {/s135-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c77769a9-0bb9-44aa-90c2-f0840c47f629 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c7167c55-60fb-45f7-b257-4acddb1d9119 {http,https} \N \N {/s136-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b54080f1-39c7-4446-8f78-ef814583a0e4 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c7167c55-60fb-45f7-b257-4acddb1d9119 {http,https} \N \N {/s136-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a68f5932-2632-44d1-a937-0734dba208e3 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c7167c55-60fb-45f7-b257-4acddb1d9119 {http,https} \N \N {/s136-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +40614334-e48d-433d-947c-64c0c5055aef 2022-05-26 09:04:24+00 2022-05-26 09:04:24+00 \N c7167c55-60fb-45f7-b257-4acddb1d9119 {http,https} \N \N {/s136-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c308cce9-e114-4e48-925e-94804505abdf 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 76b8797a-0ad8-4a9f-9fdf-561c79e481d9 {http,https} \N \N {/s137-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ec57a214-5299-4c0e-9de6-dc8df6fff285 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 76b8797a-0ad8-4a9f-9fdf-561c79e481d9 {http,https} \N \N {/s137-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb583546-40d6-418c-8552-fa944d2412bb 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 76b8797a-0ad8-4a9f-9fdf-561c79e481d9 {http,https} \N \N {/s137-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1952393c-d082-4d15-b2bc-29e2d7f82ed3 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 76b8797a-0ad8-4a9f-9fdf-561c79e481d9 {http,https} \N \N {/s137-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5c248012-76cb-453c-909b-d40632e801e1 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bad7c636-19ad-430e-8c49-6e4efddc4376 {http,https} \N \N {/s138-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fb2c93c5-42ee-4015-b968-df7c7e9c8b82 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bad7c636-19ad-430e-8c49-6e4efddc4376 {http,https} \N \N {/s138-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8ab89b41-6cfe-48b6-a3e5-367ecec10896 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bad7c636-19ad-430e-8c49-6e4efddc4376 {http,https} \N \N {/s138-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a2e0400-a685-4c85-abcc-b5ef1fdd7051 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bad7c636-19ad-430e-8c49-6e4efddc4376 {http,https} \N \N {/s138-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f6241fa-ab8a-4cf8-803e-552751cdbbdb 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N fd6fd9ca-1169-45ba-bb87-8b846a8d0d3e {http,https} \N \N {/s139-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2a8523fc-1001-4503-a12f-db41805792f8 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N fd6fd9ca-1169-45ba-bb87-8b846a8d0d3e {http,https} \N \N {/s139-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc54e31d-68da-46cc-b0da-84aea518e92e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N fd6fd9ca-1169-45ba-bb87-8b846a8d0d3e {http,https} \N \N {/s139-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +08814b9e-e844-4393-a4b8-802458c70eaf 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N fd6fd9ca-1169-45ba-bb87-8b846a8d0d3e {http,https} \N \N {/s139-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +952cad34-82e7-4474-b402-3d9b3467fba0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N a2ee552e-0961-4036-8d1c-8ebd420f28ed {http,https} \N \N {/s140-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3f75d9ae-7607-4e84-9382-b80f2d70a99d 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N a2ee552e-0961-4036-8d1c-8ebd420f28ed {http,https} \N \N {/s140-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0517cf2c-98e8-41de-ae3b-56c2daee2859 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N a2ee552e-0961-4036-8d1c-8ebd420f28ed {http,https} \N \N {/s140-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fbde95fa-3633-41d1-beca-8df6f9f1b0ae 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N a2ee552e-0961-4036-8d1c-8ebd420f28ed {http,https} \N \N {/s140-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c04af6ae-707e-4f8e-8e03-d6b59d1ddb57 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 6fca3f1f-fa31-4c70-8059-aee7dd0d5be3 {http,https} \N \N {/s141-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79657c82-6938-4449-9349-48ec8678e142 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 6fca3f1f-fa31-4c70-8059-aee7dd0d5be3 {http,https} \N \N {/s141-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +37381f66-6f01-4b17-824b-27896e93bd95 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 6fca3f1f-fa31-4c70-8059-aee7dd0d5be3 {http,https} \N \N {/s141-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ee50621-2c9a-4945-b938-4a203e6ea199 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 6fca3f1f-fa31-4c70-8059-aee7dd0d5be3 {http,https} \N \N {/s141-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +80291ade-7bd3-42f8-8ea5-98a1355def09 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 70d03905-4002-4dc1-b3f9-336d25ee164e {http,https} \N \N {/s142-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +009ea757-f3ad-4302-8296-abe06be681f0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 70d03905-4002-4dc1-b3f9-336d25ee164e {http,https} \N \N {/s142-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4b00370e-83a7-48e5-8e88-43685cde1dca 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 70d03905-4002-4dc1-b3f9-336d25ee164e {http,https} \N \N {/s142-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6887d29-3015-4e8b-b486-02dc03fb70f5 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 70d03905-4002-4dc1-b3f9-336d25ee164e {http,https} \N \N {/s142-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +54b9278d-ea83-4814-ba00-fa11eb2e0183 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 4693dd6c-1d27-46df-b5be-259eda6ad3df {http,https} \N \N {/s143-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3a7fe796-5dd8-40fe-842d-d8a4750493c7 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 4693dd6c-1d27-46df-b5be-259eda6ad3df {http,https} \N \N {/s143-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a73b9f2-4758-4a32-9d2d-6186cbd37d06 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 4693dd6c-1d27-46df-b5be-259eda6ad3df {http,https} \N \N {/s143-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c40b1edc-e918-47ca-896d-2fe861a2b16d 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 4693dd6c-1d27-46df-b5be-259eda6ad3df {http,https} \N \N {/s143-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a9007af4-7294-4faf-99d1-ea26e4664eea 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 390c61c3-b91b-44d0-9132-d629f3f7f2c2 {http,https} \N \N {/s144-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8390994d-f65b-486b-b331-d6233c27975d 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 390c61c3-b91b-44d0-9132-d629f3f7f2c2 {http,https} \N \N {/s144-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +286457da-3d3d-442a-a47e-eddc90f94fae 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 390c61c3-b91b-44d0-9132-d629f3f7f2c2 {http,https} \N \N {/s144-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2bb38fd-11c0-4302-bc73-9f2b92bfdb7e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 390c61c3-b91b-44d0-9132-d629f3f7f2c2 {http,https} \N \N {/s144-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +799f1236-6939-49dc-9559-ce456182edfe 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N addbf9ae-c319-4a46-831b-a2c71204cfdc {http,https} \N \N {/s145-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +afa4a841-ac7e-479d-8cfb-6ee4f3e7576c 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N addbf9ae-c319-4a46-831b-a2c71204cfdc {http,https} \N \N {/s145-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +48d3420a-0715-417a-bd0e-595428ee8552 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N addbf9ae-c319-4a46-831b-a2c71204cfdc {http,https} \N \N {/s145-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1e3c0494-c573-4202-802e-16c020bd1dcc 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N addbf9ae-c319-4a46-831b-a2c71204cfdc {http,https} \N \N {/s145-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +71d5e006-1d1b-45d3-ab77-767bbc08dacf 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d59261e7-93ca-464a-b84d-cc9c64e2d649 {http,https} \N \N {/s146-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +40d37028-4253-4d09-a7d4-1d9afb2f80f5 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d59261e7-93ca-464a-b84d-cc9c64e2d649 {http,https} \N \N {/s146-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5fa958da-4c0b-4ff0-921e-2d4425c096e2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d59261e7-93ca-464a-b84d-cc9c64e2d649 {http,https} \N \N {/s146-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +87f8e3b3-db11-4fb6-897e-3bcf78d1d2f2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d59261e7-93ca-464a-b84d-cc9c64e2d649 {http,https} \N \N {/s146-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d55f55bb-699e-4e16-ac97-197e8f7f4a24 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 37262d9e-1dd7-4314-9a5a-d289c7479be0 {http,https} \N \N {/s147-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ec1563f8-689b-4621-b57f-89f5fabb6b8a 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 37262d9e-1dd7-4314-9a5a-d289c7479be0 {http,https} \N \N {/s147-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b2ade045-55bf-438b-b0e2-f499953aa888 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 37262d9e-1dd7-4314-9a5a-d289c7479be0 {http,https} \N \N {/s147-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8c8b26e7-b443-4738-82f2-3695cd656943 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 37262d9e-1dd7-4314-9a5a-d289c7479be0 {http,https} \N \N {/s147-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +20a06da8-c6b3-4250-8d30-8bcabb5d97d9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d3ec5e93-e9e3-4fd4-a27b-6af1e300aa4b {http,https} \N \N {/s148-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4ceeb28c-8cac-4f52-8a6d-400716ad0cfb 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d3ec5e93-e9e3-4fd4-a27b-6af1e300aa4b {http,https} \N \N {/s148-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +10b33ab3-84ff-4c07-961c-8baf666ebf7f 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d3ec5e93-e9e3-4fd4-a27b-6af1e300aa4b {http,https} \N \N {/s148-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +76636d5b-a12e-4fe9-a09b-c98ecdad1743 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N d3ec5e93-e9e3-4fd4-a27b-6af1e300aa4b {http,https} \N \N {/s148-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +09b43683-f7ac-480f-b8df-4d99f6a5703b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 0cdb0d81-1c8a-49b4-b5aa-50b627e298c6 {http,https} \N \N {/s149-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ea17964f-4682-47be-8580-4e94210d34ec 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 0cdb0d81-1c8a-49b4-b5aa-50b627e298c6 {http,https} \N \N {/s149-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e82f3a93-209d-4e7c-aec5-3874747b2b8a 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 0cdb0d81-1c8a-49b4-b5aa-50b627e298c6 {http,https} \N \N {/s149-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +69784499-8f2a-4fcc-9fe6-e0ab42202ef6 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 0cdb0d81-1c8a-49b4-b5aa-50b627e298c6 {http,https} \N \N {/s149-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +85dd27b7-3399-4ab0-8ec7-d2e397ea301b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e987b7a-1d92-49e3-ad2f-362501d07bf9 {http,https} \N \N {/s150-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9f001c3-3cdb-4a5f-997d-3a7b00022131 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e987b7a-1d92-49e3-ad2f-362501d07bf9 {http,https} \N \N {/s150-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +39c52891-9c51-4f8d-85bf-9604c3f49c22 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e987b7a-1d92-49e3-ad2f-362501d07bf9 {http,https} \N \N {/s150-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9b34cd4b-03f7-4911-8326-52e6b1156649 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e987b7a-1d92-49e3-ad2f-362501d07bf9 {http,https} \N \N {/s150-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af5092d3-7538-4c67-a03a-e13d86f94516 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 98193422-6ec1-4767-8568-e34555d37244 {http,https} \N \N {/s151-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f990e621-c712-4904-8d2a-7f0f97c4c3d0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 98193422-6ec1-4767-8568-e34555d37244 {http,https} \N \N {/s151-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +735fede1-62ad-4693-a8c9-aa88ed3e3bc0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 98193422-6ec1-4767-8568-e34555d37244 {http,https} \N \N {/s151-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +98a8d34c-8127-469a-a53f-930fe4864220 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 98193422-6ec1-4767-8568-e34555d37244 {http,https} \N \N {/s151-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d240fa9b-a666-4967-9e28-d757193dd92d 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 23c5d21a-6ff6-4f87-950b-3189611df400 {http,https} \N \N {/s152-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cee33038-b02b-401c-b30c-ea12d9e6cb5b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 23c5d21a-6ff6-4f87-950b-3189611df400 {http,https} \N \N {/s152-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e7664be5-15b5-4459-863a-9a57aeabd8db 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 23c5d21a-6ff6-4f87-950b-3189611df400 {http,https} \N \N {/s152-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c7300262-fb86-4140-9dd8-541f90ba1602 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 23c5d21a-6ff6-4f87-950b-3189611df400 {http,https} \N \N {/s152-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7a83033b-385b-4e01-90ea-acc959fae024 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 61b20f0c-ad75-46c5-bdb1-c9ee4db679eb {http,https} \N \N {/s153-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc96baa4-77a2-456d-85da-1e09359806a2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 61b20f0c-ad75-46c5-bdb1-c9ee4db679eb {http,https} \N \N {/s153-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +35faf989-ccc4-4d00-88da-a30a1726bf76 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 61b20f0c-ad75-46c5-bdb1-c9ee4db679eb {http,https} \N \N {/s153-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aadd4d64-4895-45e8-850a-5df9123186d3 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 61b20f0c-ad75-46c5-bdb1-c9ee4db679eb {http,https} \N \N {/s153-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +43b90307-3f64-4595-9c39-7e96c80a03ec 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N f658e233-91f5-4e42-a97f-43303defe86d {http,https} \N \N {/s154-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f6fe2815-3819-40fa-8901-4baf0fc1c4a5 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N f658e233-91f5-4e42-a97f-43303defe86d {http,https} \N \N {/s154-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc0a9449-df5d-44fe-a9d3-7332f4787c05 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N f658e233-91f5-4e42-a97f-43303defe86d {http,https} \N \N {/s154-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dfae0345-b3d0-4ce1-bafd-39bffa1ad3ea 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N f658e233-91f5-4e42-a97f-43303defe86d {http,https} \N \N {/s154-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +49206548-9d47-43f6-aa41-d8fccc9032a3 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bf2c91f2-cfdd-4f0a-bb05-0433141ad9ce {http,https} \N \N {/s155-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b088891-7e35-4485-ad96-e1b450341308 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bf2c91f2-cfdd-4f0a-bb05-0433141ad9ce {http,https} \N \N {/s155-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dfc48b47-1ab1-4253-af03-2be8b4070ab2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bf2c91f2-cfdd-4f0a-bb05-0433141ad9ce {http,https} \N \N {/s155-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5cfbdc5-4203-4ce9-8d60-2441dfa6f6ea 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N bf2c91f2-cfdd-4f0a-bb05-0433141ad9ce {http,https} \N \N {/s155-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d529b339-f52e-4cde-a88c-fe21ca1edbb9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 44e7d282-81cf-4f35-b20d-289a41d57da9 {http,https} \N \N {/s156-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b1858bb9-c701-41ab-8faf-ef7abdc3f2af 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 44e7d282-81cf-4f35-b20d-289a41d57da9 {http,https} \N \N {/s156-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +34d86e9c-51f8-4de3-b44f-6a91904649d2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 44e7d282-81cf-4f35-b20d-289a41d57da9 {http,https} \N \N {/s156-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83dd3ef4-3da3-42d3-98ff-83f6f00e18ae 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 44e7d282-81cf-4f35-b20d-289a41d57da9 {http,https} \N \N {/s156-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +87989a69-9c8a-4037-9fea-680cc4fd282b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e9458db-1f76-4728-bf68-8f100dcb5e04 {http,https} \N \N {/s157-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0f42d0c4-09bf-4799-a550-d7bd5de071cf 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e9458db-1f76-4728-bf68-8f100dcb5e04 {http,https} \N \N {/s157-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +67a0134f-95ac-4aea-a181-e16091b3261b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e9458db-1f76-4728-bf68-8f100dcb5e04 {http,https} \N \N {/s157-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be0fe9db-b3a3-4221-a3a0-e3d4e9183d56 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5e9458db-1f76-4728-bf68-8f100dcb5e04 {http,https} \N \N {/s157-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22d86719-08cd-4b0b-9e00-f9957f27dde2 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5cf7efb5-6ce3-4bfa-9b9c-69615c0424c3 {http,https} \N \N {/s158-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2fe55a66-ab3e-4816-8a2d-4f3f992bc8d7 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5cf7efb5-6ce3-4bfa-9b9c-69615c0424c3 {http,https} \N \N {/s158-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eabeed58-c2e9-4516-b141-2e55494094f4 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5cf7efb5-6ce3-4bfa-9b9c-69615c0424c3 {http,https} \N \N {/s158-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c29be95e-602c-461e-9836-2eaf64373ae0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 5cf7efb5-6ce3-4bfa-9b9c-69615c0424c3 {http,https} \N \N {/s158-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e2e495a6-8e59-41bb-91c0-3c9336f2d28e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N e601de5f-ad58-4d48-83b7-bc0e20cadd7e {http,https} \N \N {/s159-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b2c400a2-57a3-4756-a5a5-20c57fc6da35 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N e601de5f-ad58-4d48-83b7-bc0e20cadd7e {http,https} \N \N {/s159-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c70e2d23-3f67-4bad-8c2b-0ae0bf15b8d9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N e601de5f-ad58-4d48-83b7-bc0e20cadd7e {http,https} \N \N {/s159-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fd0b32f7-c191-46c2-82df-54ed7eea9ada 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N e601de5f-ad58-4d48-83b7-bc0e20cadd7e {http,https} \N \N {/s159-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eb4d3228-d924-463b-91ec-d7c92d472bc9 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 3995380e-ac1c-4133-a6e1-65a2b355a121 {http,https} \N \N {/s160-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +daad247c-b556-4547-b6ff-76c3489e0c7d 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 3995380e-ac1c-4133-a6e1-65a2b355a121 {http,https} \N \N {/s160-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f454e59-d967-46f5-95cd-37a6e8363121 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 3995380e-ac1c-4133-a6e1-65a2b355a121 {http,https} \N \N {/s160-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddd7d394-ee2a-4812-9cce-9397b487698e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 3995380e-ac1c-4133-a6e1-65a2b355a121 {http,https} \N \N {/s160-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4a5efd5a-f47f-4ec8-9c73-59657da79ea1 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 109dabd3-4d13-40ea-b6f4-2a94d74c7f6c {http,https} \N \N {/s161-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b21d645-cd05-4ae9-9072-b5b343826646 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 109dabd3-4d13-40ea-b6f4-2a94d74c7f6c {http,https} \N \N {/s161-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d71ea753-3fe6-4582-85af-02c13ec4f25f 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 109dabd3-4d13-40ea-b6f4-2a94d74c7f6c {http,https} \N \N {/s161-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dcc781be-61d7-488f-8a54-39b32aca478b 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 109dabd3-4d13-40ea-b6f4-2a94d74c7f6c {http,https} \N \N {/s161-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79528e1b-fa40-4dfe-a02d-67c5681b347a 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 502c5b41-66bf-4383-918a-badfea2d25c7 {http,https} \N \N {/s162-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f763ec59-ab8e-465a-acb1-9d9c6cb7a607 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 502c5b41-66bf-4383-918a-badfea2d25c7 {http,https} \N \N {/s162-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f1d5485-afa9-4f7c-97a6-709cc21b906a 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 502c5b41-66bf-4383-918a-badfea2d25c7 {http,https} \N \N {/s162-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ffe74437-4a70-40f0-be0e-5b389c7ae2f0 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 502c5b41-66bf-4383-918a-badfea2d25c7 {http,https} \N \N {/s162-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fd14267c-b276-4cac-bc09-6a95fff7540e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 9557d7a1-d82f-4fab-a4c1-59b705f29b2e {http,https} \N \N {/s163-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04c7a8b9-a0a2-4fc9-b61e-c9722e7d2367 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 9557d7a1-d82f-4fab-a4c1-59b705f29b2e {http,https} \N \N {/s163-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e86a838-8e98-40d7-96ef-62e4248a68b3 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 9557d7a1-d82f-4fab-a4c1-59b705f29b2e {http,https} \N \N {/s163-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5074512e-c1e0-4c3c-b79a-368b0a3ce696 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 9557d7a1-d82f-4fab-a4c1-59b705f29b2e {http,https} \N \N {/s163-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a92a46d7-e383-4199-80a1-65ab84ed38e7 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N cefbb83a-2d32-4aba-83e1-1ad7811849e9 {http,https} \N \N {/s164-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f325ec0c-73df-4b78-a4c3-a34006513067 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N cefbb83a-2d32-4aba-83e1-1ad7811849e9 {http,https} \N \N {/s164-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f4154d0-78ce-4ff2-bf50-03a4fb272e4f 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N cefbb83a-2d32-4aba-83e1-1ad7811849e9 {http,https} \N \N {/s164-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +72544d66-cec7-476c-af59-f1af6974176e 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N cefbb83a-2d32-4aba-83e1-1ad7811849e9 {http,https} \N \N {/s164-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be535d03-73d3-471e-aed6-8833ae34a2ae 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 24fbd204-d7a7-4d11-9109-a73e52f718b1 {http,https} \N \N {/s165-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc95d9db-2f13-464d-a318-99d242a2bb52 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 24fbd204-d7a7-4d11-9109-a73e52f718b1 {http,https} \N \N {/s165-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18b7158f-dedf-48ea-85b3-147c47351fcd 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 24fbd204-d7a7-4d11-9109-a73e52f718b1 {http,https} \N \N {/s165-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b9bd8aa8-6682-47d1-85a6-57723ba8e341 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N 24fbd204-d7a7-4d11-9109-a73e52f718b1 {http,https} \N \N {/s165-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +93e68fcf-c0b5-4f1b-9605-da6389ab6621 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N ef9b8d4d-3e83-4353-a80e-426e5fc7cbb9 {http,https} \N \N {/s166-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +51266dc4-3bdf-415f-b1ae-f3842cbe5dee 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N ef9b8d4d-3e83-4353-a80e-426e5fc7cbb9 {http,https} \N \N {/s166-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f306910-0c7b-4bfb-8cc5-4e4280adcfa6 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N ef9b8d4d-3e83-4353-a80e-426e5fc7cbb9 {http,https} \N \N {/s166-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6eb78f5c-80c0-4492-b352-055da84d6a98 2022-05-26 09:04:25+00 2022-05-26 09:04:25+00 \N ef9b8d4d-3e83-4353-a80e-426e5fc7cbb9 {http,https} \N \N {/s166-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19a74a8f-9328-4e67-be6e-3d296866251e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd6e4a2a-b1f5-4fdf-bb0d-6e9918275bd6 {http,https} \N \N {/s167-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28590603-cb60-45a8-835f-bfc5232380c5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd6e4a2a-b1f5-4fdf-bb0d-6e9918275bd6 {http,https} \N \N {/s167-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3a7417a0-1ba7-47db-913e-ca211871ddba 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd6e4a2a-b1f5-4fdf-bb0d-6e9918275bd6 {http,https} \N \N {/s167-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e51ced59-2ced-4656-966f-584a9a4e488a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd6e4a2a-b1f5-4fdf-bb0d-6e9918275bd6 {http,https} \N \N {/s167-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e50002ab-e446-4061-93f7-68d7c2cfa4d5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a39c21f4-1588-473b-b5f0-ca58437f5670 {http,https} \N \N {/s168-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +471db396-7e15-4da7-8991-73ab2ad29ea4 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a39c21f4-1588-473b-b5f0-ca58437f5670 {http,https} \N \N {/s168-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2277f88f-da72-4c75-851d-9b444121c708 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a39c21f4-1588-473b-b5f0-ca58437f5670 {http,https} \N \N {/s168-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1e6ab643-c8e7-4bfd-8b7f-fc838a15afb4 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a39c21f4-1588-473b-b5f0-ca58437f5670 {http,https} \N \N {/s168-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f6d11d3-2fa2-4101-86f5-e2c7f169f5ff 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N cd7ff4b6-0461-43d7-89d4-00df67b34598 {http,https} \N \N {/s169-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +87d2868f-44db-445d-a98a-7c3ee3502eee 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N cd7ff4b6-0461-43d7-89d4-00df67b34598 {http,https} \N \N {/s169-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2171b9be-1957-4eb2-aafb-b201eecc0199 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N cd7ff4b6-0461-43d7-89d4-00df67b34598 {http,https} \N \N {/s169-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9b8b29f-1044-490c-8227-546e7c524de9 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N cd7ff4b6-0461-43d7-89d4-00df67b34598 {http,https} \N \N {/s169-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +014a55eb-f1f5-42b5-9fd5-c1e7a06e8bad 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d46890a2-26b2-4d3c-860d-f54cc24b7663 {http,https} \N \N {/s170-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04902f25-a16f-47d8-8870-10ceb0fdc8bc 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d46890a2-26b2-4d3c-860d-f54cc24b7663 {http,https} \N \N {/s170-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18a21895-85e8-4b21-b594-750a5352ba3e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d46890a2-26b2-4d3c-860d-f54cc24b7663 {http,https} \N \N {/s170-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +261c98c5-f53c-400d-8562-8a917211812c 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d46890a2-26b2-4d3c-860d-f54cc24b7663 {http,https} \N \N {/s170-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cd4fadc3-d86e-4ed2-b0a0-5eac3256d265 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 4d17db21-c723-4052-9a5f-d704fd01862f {http,https} \N \N {/s171-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d5a00454-610d-4098-a872-15d2a01b85a8 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 4d17db21-c723-4052-9a5f-d704fd01862f {http,https} \N \N {/s171-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af223b5b-d885-4784-924b-8a4c97bb2b2a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 4d17db21-c723-4052-9a5f-d704fd01862f {http,https} \N \N {/s171-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c0388b6e-65f0-412c-96ad-2b507eaf725e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 4d17db21-c723-4052-9a5f-d704fd01862f {http,https} \N \N {/s171-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff1879e3-337a-44ca-8f95-851aebf97a03 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a9c1b4cf-9457-4010-a9b8-4f5236dcc5ce {http,https} \N \N {/s172-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +33dbfde5-d6b8-45c4-a42c-7eb99cfe74e5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a9c1b4cf-9457-4010-a9b8-4f5236dcc5ce {http,https} \N \N {/s172-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +30c0bec9-12fe-4055-9a90-29ad4855670d 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a9c1b4cf-9457-4010-a9b8-4f5236dcc5ce {http,https} \N \N {/s172-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +37cb8256-042c-4890-ac10-3e8a255c9d48 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a9c1b4cf-9457-4010-a9b8-4f5236dcc5ce {http,https} \N \N {/s172-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7c07beaa-fa8f-4840-8b08-d11391de882a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N e79cb133-66ba-406a-895d-559eddf73902 {http,https} \N \N {/s173-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7c78deff-8eb1-4f60-b5e7-2bbabeca3fdc 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N e79cb133-66ba-406a-895d-559eddf73902 {http,https} \N \N {/s173-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +265650a8-af3a-4fcf-8c43-45d2c91e7fa8 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N e79cb133-66ba-406a-895d-559eddf73902 {http,https} \N \N {/s173-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc457997-7b4a-4959-a96d-2a73aa411470 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N e79cb133-66ba-406a-895d-559eddf73902 {http,https} \N \N {/s173-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e7355947-c821-4cca-a485-e44c90ec50ab 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 8b99e7b2-ccdf-4cb9-b185-e3cde9ec9af7 {http,https} \N \N {/s174-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +06f8adbc-0a97-429f-a3b8-ee9a9feddbc7 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 8b99e7b2-ccdf-4cb9-b185-e3cde9ec9af7 {http,https} \N \N {/s174-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b4d627bb-b68e-4a92-be3e-c3fe220cf533 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 8b99e7b2-ccdf-4cb9-b185-e3cde9ec9af7 {http,https} \N \N {/s174-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9cf4e435-0e53-4223-8c95-38ec63479fbd 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 8b99e7b2-ccdf-4cb9-b185-e3cde9ec9af7 {http,https} \N \N {/s174-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +40948daf-3e7d-4adb-9aa1-83f20e11979c 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d807dd5e-21de-4d30-823e-41d98b76bf8e {http,https} \N \N {/s175-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c6cd578b-ad55-4f6e-b2fe-4ea1f40cfb21 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d807dd5e-21de-4d30-823e-41d98b76bf8e {http,https} \N \N {/s175-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc34b095-cf47-4f04-8b42-fff44d04ab50 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d807dd5e-21de-4d30-823e-41d98b76bf8e {http,https} \N \N {/s175-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0642f66b-a15c-4c78-8937-1b035448c2e6 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d807dd5e-21de-4d30-823e-41d98b76bf8e {http,https} \N \N {/s175-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8c5829a6-6859-4831-bb61-b8ed82e74d1c 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 00284c22-d742-4a15-9a67-4bb4dcd90d8f {http,https} \N \N {/s176-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b4ca032f-79e6-4092-aab3-9382b2bf1052 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 00284c22-d742-4a15-9a67-4bb4dcd90d8f {http,https} \N \N {/s176-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b52bf36b-7703-47e3-ba86-03adf2ca98bd 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 00284c22-d742-4a15-9a67-4bb4dcd90d8f {http,https} \N \N {/s176-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ea7b271-e1e4-46f7-955a-36f62ab6e960 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 00284c22-d742-4a15-9a67-4bb4dcd90d8f {http,https} \N \N {/s176-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1f26d35e-560f-49f9-b5e0-9ee0504e49b3 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 751853be-1e25-490e-a6ef-9417a6b540ef {http,https} \N \N {/s177-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +657dc03f-22d6-4e30-9a53-a66246406012 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 751853be-1e25-490e-a6ef-9417a6b540ef {http,https} \N \N {/s177-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +664d362d-e68d-48ac-ab93-79e806f3865c 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 751853be-1e25-490e-a6ef-9417a6b540ef {http,https} \N \N {/s177-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +180ac050-1a3c-405e-880f-0be43d342e65 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 751853be-1e25-490e-a6ef-9417a6b540ef {http,https} \N \N {/s177-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3bc4438-9c03-4bd3-a817-2faba58a55a3 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N f73bf090-0d18-40e8-b186-7fc9e91e62d1 {http,https} \N \N {/s178-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +abc7b6b5-d944-4ba7-aeb5-7fab62c8bdac 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N f73bf090-0d18-40e8-b186-7fc9e91e62d1 {http,https} \N \N {/s178-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ae8e4b9-adab-4512-80c8-4277c7eb37a3 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N f73bf090-0d18-40e8-b186-7fc9e91e62d1 {http,https} \N \N {/s178-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2c55697c-20fc-48e9-b4db-3c462f62fb5f 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N f73bf090-0d18-40e8-b186-7fc9e91e62d1 {http,https} \N \N {/s178-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +91069e9f-1303-4a9d-aa2a-93db4d7f111f 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 12042bab-a587-44e7-881d-2315a7305c39 {http,https} \N \N {/s179-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +281664fa-5496-474b-8fde-5f587ce458a8 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 12042bab-a587-44e7-881d-2315a7305c39 {http,https} \N \N {/s179-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3a29ce38-4b03-48b5-93b4-d2b06a9b5acc 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 12042bab-a587-44e7-881d-2315a7305c39 {http,https} \N \N {/s179-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8481ad3f-469b-4d1d-bf37-5072d3a3c24c 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 12042bab-a587-44e7-881d-2315a7305c39 {http,https} \N \N {/s179-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ea144262-7bb7-4796-a5bb-2f5072ec79ec 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 9b0c19f6-6ab2-4119-8a6f-37e8f15cdd98 {http,https} \N \N {/s180-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d80c53dc-5d1c-43da-b9bb-acc96d018c65 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 9b0c19f6-6ab2-4119-8a6f-37e8f15cdd98 {http,https} \N \N {/s180-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bea9c68b-aa00-4ead-9a62-c39d8b90271f 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 9b0c19f6-6ab2-4119-8a6f-37e8f15cdd98 {http,https} \N \N {/s180-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5a0df2fb-4699-4cd5-969d-0496de8dd583 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 9b0c19f6-6ab2-4119-8a6f-37e8f15cdd98 {http,https} \N \N {/s180-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cbdd7c1b-7934-4a48-a084-1b4e85f4e816 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d76ebd2e-5ee7-4810-864b-3a12440faca9 {http,https} \N \N {/s181-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9a829cb-f1ea-4112-be04-bcdfc24331a9 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d76ebd2e-5ee7-4810-864b-3a12440faca9 {http,https} \N \N {/s181-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a5a86801-54b0-48b3-ba22-a417173689cf 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d76ebd2e-5ee7-4810-864b-3a12440faca9 {http,https} \N \N {/s181-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +71f19cd6-ad7a-426d-bc0e-d77f624526ac 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N d76ebd2e-5ee7-4810-864b-3a12440faca9 {http,https} \N \N {/s181-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +32317f4f-f3a0-4809-8b51-24efb7379e43 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd3ca0d9-03ac-4021-8de2-08321ccb3277 {http,https} \N \N {/s182-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a846c0e2-87a5-446d-8138-c11efa369837 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd3ca0d9-03ac-4021-8de2-08321ccb3277 {http,https} \N \N {/s182-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a271e44d-c12d-49bb-971f-487597b32292 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd3ca0d9-03ac-4021-8de2-08321ccb3277 {http,https} \N \N {/s182-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +07ee9f76-3f50-4a4f-8b6e-871e8918ec9d 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N bd3ca0d9-03ac-4021-8de2-08321ccb3277 {http,https} \N \N {/s182-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff672f37-19fc-49ef-9a17-bce8296072f0 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 528428e4-3f06-482d-8b4b-65b51c3bb653 {http,https} \N \N {/s183-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b30a35ef-48a7-48da-9ce3-9fe6e79c7dbf 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 528428e4-3f06-482d-8b4b-65b51c3bb653 {http,https} \N \N {/s183-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9592dfea-488a-4db5-95f4-bfba492f7eaa 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 528428e4-3f06-482d-8b4b-65b51c3bb653 {http,https} \N \N {/s183-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d6da54cb-b86d-46b4-a37d-7d20671a5c68 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 528428e4-3f06-482d-8b4b-65b51c3bb653 {http,https} \N \N {/s183-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63879c78-1dfc-40f1-bc58-5c1528acec16 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 73e663c8-0f96-4908-a02c-5c7eea81e327 {http,https} \N \N {/s184-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +94eb27f6-061d-45ab-949c-e2c4eee3f996 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 73e663c8-0f96-4908-a02c-5c7eea81e327 {http,https} \N \N {/s184-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7dcffda6-19ce-4db7-be50-9e5ffdd06661 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 73e663c8-0f96-4908-a02c-5c7eea81e327 {http,https} \N \N {/s184-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +071657de-ef68-4006-9974-ce8a5744886f 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 73e663c8-0f96-4908-a02c-5c7eea81e327 {http,https} \N \N {/s184-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +84d47d85-6298-4b1d-ab66-b732ab72c59d 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 2c40d9e2-469a-4c7a-9bcf-61552994e02e {http,https} \N \N {/s185-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +011ae483-0c29-42b3-915c-b8b422ce71b4 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 2c40d9e2-469a-4c7a-9bcf-61552994e02e {http,https} \N \N {/s185-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19c28169-42fa-4251-9828-7ce4d4b90f80 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 2c40d9e2-469a-4c7a-9bcf-61552994e02e {http,https} \N \N {/s185-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +94fafc99-fd1b-4bfc-899f-2333c776da12 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 2c40d9e2-469a-4c7a-9bcf-61552994e02e {http,https} \N \N {/s185-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f4a6e100-d1ff-4c04-b2f7-948703eadc4a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 3e2fe25a-fc33-4a1e-a1f1-a60ac070e341 {http,https} \N \N {/s186-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1ccd126a-5a5d-4597-9c5c-16c5f1699781 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 3e2fe25a-fc33-4a1e-a1f1-a60ac070e341 {http,https} \N \N {/s186-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7737eda7-b57b-40f9-8026-001a216ea04e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 3e2fe25a-fc33-4a1e-a1f1-a60ac070e341 {http,https} \N \N {/s186-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +85ba2b4b-f82b-4ac1-b91c-38b4ebe28d71 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 3e2fe25a-fc33-4a1e-a1f1-a60ac070e341 {http,https} \N \N {/s186-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2c8f7fe9-7eff-40e1-a8a3-3fa14bcf8d53 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a344e177-1f6e-4753-8404-a3fbd716a992 {http,https} \N \N {/s187-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7e4a7d82-b633-40dd-92b3-41d66e40fea1 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a344e177-1f6e-4753-8404-a3fbd716a992 {http,https} \N \N {/s187-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bca31da5-6c38-485a-a87d-37e374a26c9a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a344e177-1f6e-4753-8404-a3fbd716a992 {http,https} \N \N {/s187-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +587a1fad-4cff-4059-8212-56014add501a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N a344e177-1f6e-4753-8404-a3fbd716a992 {http,https} \N \N {/s187-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddcbfca7-d79e-463a-8fe5-2d6c25e0bdc6 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ababbb85-337f-4aba-9922-41daf23c2865 {http,https} \N \N {/s188-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c228af42-ba0d-4f22-a07b-e4a8319754fa 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ababbb85-337f-4aba-9922-41daf23c2865 {http,https} \N \N {/s188-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff9eca3c-c9ea-4876-a3b4-44d810c831b3 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ababbb85-337f-4aba-9922-41daf23c2865 {http,https} \N \N {/s188-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56438a1c-a5a9-444b-ba64-119dac6590b3 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ababbb85-337f-4aba-9922-41daf23c2865 {http,https} \N \N {/s188-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +265035f5-2008-491e-9063-14b21b7fd598 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 1b075615-d2ce-4b5c-997d-729c664dc4f4 {http,https} \N \N {/s189-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b1f60ac9-cd3b-4008-8cd8-0b301fefaf14 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 1b075615-d2ce-4b5c-997d-729c664dc4f4 {http,https} \N \N {/s189-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed245d94-3876-46e7-998d-347a6325b963 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 1b075615-d2ce-4b5c-997d-729c664dc4f4 {http,https} \N \N {/s189-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9e32fcb8-5877-458e-8f61-c375f7195da1 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 1b075615-d2ce-4b5c-997d-729c664dc4f4 {http,https} \N \N {/s189-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a9a189b0-ae27-4917-9492-011195b606d0 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N fe3e3c81-0f6c-4f7b-82d7-06022c1613b6 {http,https} \N \N {/s190-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +06f8930d-390b-4688-b733-eec262c2143b 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N fe3e3c81-0f6c-4f7b-82d7-06022c1613b6 {http,https} \N \N {/s190-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f7559e30-e6a1-4220-97e1-0d3e4d70edb7 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N fe3e3c81-0f6c-4f7b-82d7-06022c1613b6 {http,https} \N \N {/s190-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af56a77a-2cfd-4b6a-80dc-cbe9761fa839 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N fe3e3c81-0f6c-4f7b-82d7-06022c1613b6 {http,https} \N \N {/s190-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bf5f5fc9-2078-4b72-9a43-d8878340d3e5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 54d95a23-896b-40b4-b93a-dfe4b4083a23 {http,https} \N \N {/s191-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29cff1a4-2725-40cb-98d1-cc0802bf63eb 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 54d95a23-896b-40b4-b93a-dfe4b4083a23 {http,https} \N \N {/s191-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a87bba57-0a9f-41cb-955d-e74ef7f882c5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 54d95a23-896b-40b4-b93a-dfe4b4083a23 {http,https} \N \N {/s191-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3283a9a8-c19d-4950-9f72-9cd852a13f46 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 54d95a23-896b-40b4-b93a-dfe4b4083a23 {http,https} \N \N {/s191-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7fbb876e-75ec-4c0d-af98-c70ce26b513e 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 92af388d-d0f3-41a9-ad5f-ed90b03de869 {http,https} \N \N {/s192-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +759463d0-28af-4458-bea0-b04db67add1a 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 92af388d-d0f3-41a9-ad5f-ed90b03de869 {http,https} \N \N {/s192-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bbf3f83e-b4d4-4ad2-822b-88e8f0748df8 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 92af388d-d0f3-41a9-ad5f-ed90b03de869 {http,https} \N \N {/s192-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +71c67e7c-51b8-45d7-85a9-dbf8e9bc0a45 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 92af388d-d0f3-41a9-ad5f-ed90b03de869 {http,https} \N \N {/s192-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +53d373d4-2629-4241-a039-d1fdd751ab28 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5a61733d-2684-4d4a-9d35-bf785b7c07c2 {http,https} \N \N {/s193-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a8831701-cbd8-416f-93bc-287126315593 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5a61733d-2684-4d4a-9d35-bf785b7c07c2 {http,https} \N \N {/s193-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +44bfe0fd-07eb-4585-949c-e226c244e9d5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5a61733d-2684-4d4a-9d35-bf785b7c07c2 {http,https} \N \N {/s193-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +46a2ea6f-6729-4318-8816-8f65e25a3cd2 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N 5a61733d-2684-4d4a-9d35-bf785b7c07c2 {http,https} \N \N {/s193-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8842606e-ccfc-4331-bff9-0d59d34ee387 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ece058ba-4c37-48de-a640-d7b889c4fb6c {http,https} \N \N {/s194-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e3ac1e1e-1407-4df7-8436-18402735747d 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ece058ba-4c37-48de-a640-d7b889c4fb6c {http,https} \N \N {/s194-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +94a377f9-7bd0-4634-b305-63b7e88f9ca5 2022-05-26 09:04:26+00 2022-05-26 09:04:26+00 \N ece058ba-4c37-48de-a640-d7b889c4fb6c {http,https} \N \N {/s194-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bb9b5ed3-d6c3-4cdb-9e5a-f28032574224 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ece058ba-4c37-48de-a640-d7b889c4fb6c {http,https} \N \N {/s194-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +788fc63b-5d13-41ca-8f13-87282675b88b 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c2c49d74-23c3-4ce3-a9e5-f0ede3967097 {http,https} \N \N {/s195-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +784e0624-6b13-4699-a26d-96cddfe8851c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c2c49d74-23c3-4ce3-a9e5-f0ede3967097 {http,https} \N \N {/s195-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +209e20f0-4ea4-48f0-b275-80d6e3d88483 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c2c49d74-23c3-4ce3-a9e5-f0ede3967097 {http,https} \N \N {/s195-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a37f4e35-cac6-49d3-a0a2-c2b58f77278d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c2c49d74-23c3-4ce3-a9e5-f0ede3967097 {http,https} \N \N {/s195-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +27c7886f-0847-4165-bbdd-601871847f68 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N fbdc551b-4550-4528-a74d-a595aa492b51 {http,https} \N \N {/s196-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de454194-9c07-4879-a465-3e194fcf4341 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N fbdc551b-4550-4528-a74d-a595aa492b51 {http,https} \N \N {/s196-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +252a3a99-c46f-4875-904e-dd82aca1777e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N fbdc551b-4550-4528-a74d-a595aa492b51 {http,https} \N \N {/s196-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d96919d-8d0e-405a-b1a2-c3d02b4b56aa 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N fbdc551b-4550-4528-a74d-a595aa492b51 {http,https} \N \N {/s196-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8fb42864-5606-43c9-b041-0273ea529965 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 92c2bcd2-bb73-4339-aaf1-8b552ceb0106 {http,https} \N \N {/s197-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7ff05871-59c1-46a4-8595-84f2bb305465 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 92c2bcd2-bb73-4339-aaf1-8b552ceb0106 {http,https} \N \N {/s197-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1884b6a1-611a-42e3-9fbe-eea1b8ca4fe4 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 92c2bcd2-bb73-4339-aaf1-8b552ceb0106 {http,https} \N \N {/s197-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9f15af83-4089-4944-bc15-a18687e442d5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 92c2bcd2-bb73-4339-aaf1-8b552ceb0106 {http,https} \N \N {/s197-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e0788586-00b1-490b-8b44-736e8db27981 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c60849dc-5675-492f-8bab-5d8cb3626823 {http,https} \N \N {/s198-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a198fe7-4cd4-4546-83f2-2b4e1e2e6ca2 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c60849dc-5675-492f-8bab-5d8cb3626823 {http,https} \N \N {/s198-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29cdcb0e-dd9c-40a5-8b57-e198c5a98f39 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c60849dc-5675-492f-8bab-5d8cb3626823 {http,https} \N \N {/s198-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9247fff8-ca66-434f-a300-e4e7db0f47c1 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N c60849dc-5675-492f-8bab-5d8cb3626823 {http,https} \N \N {/s198-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8941a60b-adeb-418d-87cb-e25d2bde5da1 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1d6aa622-24ef-4888-a080-ba20e5c89316 {http,https} \N \N {/s199-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3e8c7fc4-3828-499e-84c6-585279a856d8 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1d6aa622-24ef-4888-a080-ba20e5c89316 {http,https} \N \N {/s199-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4b9bb24-57dd-4609-b6e7-3bbf84573a6c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1d6aa622-24ef-4888-a080-ba20e5c89316 {http,https} \N \N {/s199-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +81b2991f-886a-49ef-acb6-2e18ff7b836f 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1d6aa622-24ef-4888-a080-ba20e5c89316 {http,https} \N \N {/s199-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c410bd56-3558-45bb-9421-c80bc680bc18 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 204833b7-0070-4b55-9583-1df64dc7ab2a {http,https} \N \N {/s200-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04f736a8-d0cf-4f12-959e-8051346306a6 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 204833b7-0070-4b55-9583-1df64dc7ab2a {http,https} \N \N {/s200-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +355ab472-684c-4dad-a464-14d223d5cf9a 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 204833b7-0070-4b55-9583-1df64dc7ab2a {http,https} \N \N {/s200-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +71b18877-0e77-46e1-831f-4145d44cce18 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 204833b7-0070-4b55-9583-1df64dc7ab2a {http,https} \N \N {/s200-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +508d3ec2-4700-4bc2-8e30-cf5b9989b37d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2cebb659-d522-4e02-9ba6-90e09ced208c {http,https} \N \N {/s201-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b9db9172-8b7e-481c-91c5-2bba6b5592a5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2cebb659-d522-4e02-9ba6-90e09ced208c {http,https} \N \N {/s201-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +34bbdbd6-2558-4ba5-9cf6-1c43f7347358 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2cebb659-d522-4e02-9ba6-90e09ced208c {http,https} \N \N {/s201-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bf0b9b7b-d3dc-421d-aae1-ea3bc0e4f4b2 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2cebb659-d522-4e02-9ba6-90e09ced208c {http,https} \N \N {/s201-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +221c3634-abac-4c45-92e3-9cc676ab4485 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8fd65cbb-d37c-45ad-95ba-f5bb0acf87e0 {http,https} \N \N {/s202-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f18721a4-6297-4f5e-841f-69e90f94bbf1 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8fd65cbb-d37c-45ad-95ba-f5bb0acf87e0 {http,https} \N \N {/s202-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2e66ed55-4275-401e-94b3-f9d0a4e0ed0d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8fd65cbb-d37c-45ad-95ba-f5bb0acf87e0 {http,https} \N \N {/s202-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +df1ac559-4d7d-473e-beac-eb48e6672278 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8fd65cbb-d37c-45ad-95ba-f5bb0acf87e0 {http,https} \N \N {/s202-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b4fec1a-e43b-4ef7-bbfc-ae8c7bf57f67 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 310fe133-a807-45dc-9dd1-6a6b1fe1d07d {http,https} \N \N {/s203-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e434321d-4292-4f93-b34c-0f4a65322831 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 310fe133-a807-45dc-9dd1-6a6b1fe1d07d {http,https} \N \N {/s203-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eee19ea7-e3d3-4785-99a7-e59599e9a72a 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 310fe133-a807-45dc-9dd1-6a6b1fe1d07d {http,https} \N \N {/s203-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b0b4320f-15f5-4837-bf08-fdb852b5335c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 310fe133-a807-45dc-9dd1-6a6b1fe1d07d {http,https} \N \N {/s203-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +198a559c-3922-4174-9f67-0cbcfced40a6 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f7df66fb-1d8f-46dc-b569-de1b63a0344b {http,https} \N \N {/s204-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d0b5c8f1-bb54-466c-bf6e-3862cdb19dfb 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f7df66fb-1d8f-46dc-b569-de1b63a0344b {http,https} \N \N {/s204-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +419939ca-5f75-4831-b957-74321322646a 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f7df66fb-1d8f-46dc-b569-de1b63a0344b {http,https} \N \N {/s204-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7611e12a-366a-42d6-9616-4c067bf76546 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f7df66fb-1d8f-46dc-b569-de1b63a0344b {http,https} \N \N {/s204-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fa1818d1-d11d-467d-88f0-b2824668b25c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b75d1f70-93f2-4de0-9bb4-7a1fae40e29b {http,https} \N \N {/s205-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0532bb48-00cf-41a9-b651-5e10eb087bfc 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b75d1f70-93f2-4de0-9bb4-7a1fae40e29b {http,https} \N \N {/s205-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5120d4f7-8e38-4a65-9ef3-6f9492483e14 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b75d1f70-93f2-4de0-9bb4-7a1fae40e29b {http,https} \N \N {/s205-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d328af8a-b84f-4a6e-b35b-63a2e9b8dee5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b75d1f70-93f2-4de0-9bb4-7a1fae40e29b {http,https} \N \N {/s205-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5248f2f3-878b-482a-9626-670f56b6417e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N cde580a3-81d5-4cef-9858-f99a1f629422 {http,https} \N \N {/s206-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c237d2b2-8d0a-4f76-a6e0-0bc79d1eb7f6 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N cde580a3-81d5-4cef-9858-f99a1f629422 {http,https} \N \N {/s206-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9451c770-3558-4e7c-a73a-42fda3b13dbe 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N cde580a3-81d5-4cef-9858-f99a1f629422 {http,https} \N \N {/s206-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +01b6ecaa-932d-4b76-bd6b-d33ee791221e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N cde580a3-81d5-4cef-9858-f99a1f629422 {http,https} \N \N {/s206-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +227f7690-1b6f-48ed-9ba0-8de2210cf564 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ebc496df-a1c7-4046-bf99-45778c2de1c6 {http,https} \N \N {/s207-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5e941f0c-f542-4aea-b2dc-9d793f6a0080 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ebc496df-a1c7-4046-bf99-45778c2de1c6 {http,https} \N \N {/s207-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af6e9d14-8189-4b98-88a6-03c57eab6be4 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ebc496df-a1c7-4046-bf99-45778c2de1c6 {http,https} \N \N {/s207-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c156047f-6a96-4e2c-ba7f-0fa8b892c5be 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ebc496df-a1c7-4046-bf99-45778c2de1c6 {http,https} \N \N {/s207-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +03b3939d-8f6e-4df2-93d4-5c6944ffab39 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2a2d78fd-a19a-4a2c-80c1-816deb18c823 {http,https} \N \N {/s208-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1cb4051d-77e3-4292-babb-d994125c4f27 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2a2d78fd-a19a-4a2c-80c1-816deb18c823 {http,https} \N \N {/s208-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8c41b214-4ff1-4a2c-8729-9443b477ea14 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2a2d78fd-a19a-4a2c-80c1-816deb18c823 {http,https} \N \N {/s208-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9baf5a7d-d09e-4f9a-b03c-aba6c414f36e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 2a2d78fd-a19a-4a2c-80c1-816deb18c823 {http,https} \N \N {/s208-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +02ef066e-e9c3-4693-9b6c-5b877fee6859 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 88c9d8c2-1bfd-4b33-81c7-7d77866b2d7e {http,https} \N \N {/s209-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +045c6995-14d4-490c-9532-63b01ada6787 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 88c9d8c2-1bfd-4b33-81c7-7d77866b2d7e {http,https} \N \N {/s209-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f204c88-b044-44f6-bf6b-4e486b5ad64d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 88c9d8c2-1bfd-4b33-81c7-7d77866b2d7e {http,https} \N \N {/s209-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +99d40389-5494-417b-95df-71b26c369402 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 88c9d8c2-1bfd-4b33-81c7-7d77866b2d7e {http,https} \N \N {/s209-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56477f27-4d1c-4ea8-87b3-d34a1a408239 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 0eb52ec4-f6fc-4c6d-ac31-e07b84f7e17e {http,https} \N \N {/s210-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +60a83f05-8969-4ddd-959f-ba125750c7d8 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 0eb52ec4-f6fc-4c6d-ac31-e07b84f7e17e {http,https} \N \N {/s210-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c3a00ab-5c5a-4091-b7f8-747d119fdbfa 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 0eb52ec4-f6fc-4c6d-ac31-e07b84f7e17e {http,https} \N \N {/s210-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +138df44c-a087-49fc-ac27-30dec071a3a5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 0eb52ec4-f6fc-4c6d-ac31-e07b84f7e17e {http,https} \N \N {/s210-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a9405b4-8b56-4562-a669-efdaa3131af8 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1c255589-3ec2-42b8-b722-32c1f9ad2510 {http,https} \N \N {/s211-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e3dbee91-2b1e-4732-ba78-a6721f1e80d5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1c255589-3ec2-42b8-b722-32c1f9ad2510 {http,https} \N \N {/s211-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +afe847ed-9bf3-4dc9-8afa-7a65c51a26af 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1c255589-3ec2-42b8-b722-32c1f9ad2510 {http,https} \N \N {/s211-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5c10847d-e99a-4683-b950-92c6adb1dee4 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 1c255589-3ec2-42b8-b722-32c1f9ad2510 {http,https} \N \N {/s211-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f8d705dc-146b-42aa-9e42-e391a7a7c1b9 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b5af350e-6e66-40e4-8333-e0595f756e83 {http,https} \N \N {/s212-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4eacd6c5-8fbc-4a2e-9fe3-bc0bee4517ee 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b5af350e-6e66-40e4-8333-e0595f756e83 {http,https} \N \N {/s212-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c99a2b48-2556-4179-8acd-06f427d86e43 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b5af350e-6e66-40e4-8333-e0595f756e83 {http,https} \N \N {/s212-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f45c9e1c-abad-4f81-910d-69ccfc347d0e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N b5af350e-6e66-40e4-8333-e0595f756e83 {http,https} \N \N {/s212-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04626a0e-3830-4297-a445-7da2ac7bae9c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 607a67a8-1ab1-4c96-869d-71ffc14a90cb {http,https} \N \N {/s213-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a82dbd91-76dd-471b-b6e1-9ba77984d481 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 607a67a8-1ab1-4c96-869d-71ffc14a90cb {http,https} \N \N {/s213-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dd52ccb1-ffee-4d4f-8794-ddd1c9b04c0e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 607a67a8-1ab1-4c96-869d-71ffc14a90cb {http,https} \N \N {/s213-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d59bec56-631e-4870-9053-b9aa1a8c3b16 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 607a67a8-1ab1-4c96-869d-71ffc14a90cb {http,https} \N \N {/s213-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0f5a7ee7-75c6-4055-a7c8-ea70e80ee487 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 97657a2e-8286-4638-b42b-d8f1418f68f3 {http,https} \N \N {/s214-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8ffd06db-9ca7-4071-b267-4c6ca1f217f2 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 97657a2e-8286-4638-b42b-d8f1418f68f3 {http,https} \N \N {/s214-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +33f9f90b-363e-433e-b018-74a09ff8821b 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 97657a2e-8286-4638-b42b-d8f1418f68f3 {http,https} \N \N {/s214-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +948637b6-f3ba-4e1e-a3b4-7c9023a99eb2 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 97657a2e-8286-4638-b42b-d8f1418f68f3 {http,https} \N \N {/s214-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24d84b7d-c0ac-4043-9ba5-fe93f73fb4b3 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8ebbdaa1-2ede-459c-8f20-9eaf6c4c5e34 {http,https} \N \N {/s215-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fa315997-a402-42bb-8bc8-a015c33a4ebc 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8ebbdaa1-2ede-459c-8f20-9eaf6c4c5e34 {http,https} \N \N {/s215-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a71db8e6-7adc-4672-9fa4-8c663e9ae8d5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8ebbdaa1-2ede-459c-8f20-9eaf6c4c5e34 {http,https} \N \N {/s215-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +07fa01fd-7fda-4e48-a74e-857515e2bb0a 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8ebbdaa1-2ede-459c-8f20-9eaf6c4c5e34 {http,https} \N \N {/s215-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +859bbe89-f301-40a6-b751-af71121364c9 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N dc47a6ab-1456-4e60-95d2-50b7251072be {http,https} \N \N {/s216-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +356a976d-9ca3-4dbf-b0b0-e87fb26df24d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N dc47a6ab-1456-4e60-95d2-50b7251072be {http,https} \N \N {/s216-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +64839bb8-fcd2-4105-aa56-d779f4e37544 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N dc47a6ab-1456-4e60-95d2-50b7251072be {http,https} \N \N {/s216-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de160398-b693-49e3-8b9b-85112666f1b9 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N dc47a6ab-1456-4e60-95d2-50b7251072be {http,https} \N \N {/s216-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19ce1881-c412-4267-921a-d2cc78f8e695 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 17157627-0993-4a53-ac67-5dc31565a022 {http,https} \N \N {/s217-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cd8596e2-38e3-4c93-95e2-76d31e2a995e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 17157627-0993-4a53-ac67-5dc31565a022 {http,https} \N \N {/s217-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +886c5da0-c197-4b27-bc70-74f3b0aa087e 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 17157627-0993-4a53-ac67-5dc31565a022 {http,https} \N \N {/s217-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +620f3ede-bbc9-4123-ae29-132e9f45708b 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 17157627-0993-4a53-ac67-5dc31565a022 {http,https} \N \N {/s217-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c97c962e-854c-480b-8f91-9d8d00240165 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8456d2fa-f8ee-44c4-b062-376c225c6ad9 {http,https} \N \N {/s218-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fba47ef2-1fc3-4519-a0e5-1ac9ada2ccae 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8456d2fa-f8ee-44c4-b062-376c225c6ad9 {http,https} \N \N {/s218-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9a8fa17-af14-4a3d-968b-eb1280b461f5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8456d2fa-f8ee-44c4-b062-376c225c6ad9 {http,https} \N \N {/s218-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a49368a3-9a05-4ded-9cc5-7c609d3581e7 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 8456d2fa-f8ee-44c4-b062-376c225c6ad9 {http,https} \N \N {/s218-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +035bc257-8cb8-4883-9e3f-0e675ddd6f15 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 289e1e86-7c79-4686-910d-91d138398782 {http,https} \N \N {/s219-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ee288452-127e-4b81-8235-f459a73ad52d 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 289e1e86-7c79-4686-910d-91d138398782 {http,https} \N \N {/s219-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3d1b9b5c-855f-439b-b1e5-39879b7f1109 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 289e1e86-7c79-4686-910d-91d138398782 {http,https} \N \N {/s219-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f2d98f5-9841-46e9-a1e9-9de85a177404 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 289e1e86-7c79-4686-910d-91d138398782 {http,https} \N \N {/s219-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +45b52dc9-6a5b-419f-9aa4-c9799954814c 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ef250969-68ff-4fc9-a9f9-46f776374937 {http,https} \N \N {/s220-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d33e0b54-65db-4f26-9287-df3b8f6b25cb 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ef250969-68ff-4fc9-a9f9-46f776374937 {http,https} \N \N {/s220-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22192499-69e4-4fec-b815-19d0a1794f55 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ef250969-68ff-4fc9-a9f9-46f776374937 {http,https} \N \N {/s220-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b72fc0df-17ac-4c2d-a6ad-849b01b1aa12 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N ef250969-68ff-4fc9-a9f9-46f776374937 {http,https} \N \N {/s220-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb513101-6911-4457-a34a-a11810450c3b 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f75fa431-1d5b-4a84-adc9-f2ab778755f2 {http,https} \N \N {/s221-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e76689cf-cd5d-4c76-9a6f-ff0e6ecb40d5 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f75fa431-1d5b-4a84-adc9-f2ab778755f2 {http,https} \N \N {/s221-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d2a69105-f34a-4d03-8700-029974e4dd23 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f75fa431-1d5b-4a84-adc9-f2ab778755f2 {http,https} \N \N {/s221-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a44ab04-86a3-434f-acf5-b6742310bff6 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N f75fa431-1d5b-4a84-adc9-f2ab778755f2 {http,https} \N \N {/s221-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +605e87c1-c4b3-46c8-8a26-eaf2466a3cbc 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 395b99d4-38f4-4268-9cd0-fa6e0f2cff94 {http,https} \N \N {/s222-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e638a649-e228-448e-a43d-bb01b9595a31 2022-05-26 09:04:27+00 2022-05-26 09:04:27+00 \N 395b99d4-38f4-4268-9cd0-fa6e0f2cff94 {http,https} \N \N {/s222-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8abbf9d5-609c-42ba-9d3e-e9c465da782b 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 395b99d4-38f4-4268-9cd0-fa6e0f2cff94 {http,https} \N \N {/s222-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +644a2486-77b8-4909-a320-0b0f64f1e602 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 395b99d4-38f4-4268-9cd0-fa6e0f2cff94 {http,https} \N \N {/s222-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3eac023b-f444-4746-b50d-3cd01d728004 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N fd296ad3-4272-4acb-8246-1853ba56f38c {http,https} \N \N {/s223-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0db4c5f7-9e77-4d76-83e2-21dcbcdbcc96 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N fd296ad3-4272-4acb-8246-1853ba56f38c {http,https} \N \N {/s223-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4c419e2-919f-40c1-aba8-0cfa522e276e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N fd296ad3-4272-4acb-8246-1853ba56f38c {http,https} \N \N {/s223-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a93825b8-bd1d-413c-92cb-2abcaa4d0926 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N fd296ad3-4272-4acb-8246-1853ba56f38c {http,https} \N \N {/s223-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +db0adc4a-7dfe-43a4-9e74-8cbc772e8230 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 2128d33e-4e88-442c-a077-753f5bc3cfb1 {http,https} \N \N {/s224-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5fe30601-1403-452c-9b72-56d974767951 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 2128d33e-4e88-442c-a077-753f5bc3cfb1 {http,https} \N \N {/s224-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +90c8e8fc-d744-45ec-81b7-f26c60c7623d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 2128d33e-4e88-442c-a077-753f5bc3cfb1 {http,https} \N \N {/s224-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2528c78-e84e-4da8-a289-955767c7328b 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 2128d33e-4e88-442c-a077-753f5bc3cfb1 {http,https} \N \N {/s224-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c8dcbad3-f9e4-49f2-9fae-9c0cec332879 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 0e047d1b-5481-4e2e-949c-8bb2dcf9e5e9 {http,https} \N \N {/s225-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +957737e1-6569-4650-9fa7-834d2ece5bec 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 0e047d1b-5481-4e2e-949c-8bb2dcf9e5e9 {http,https} \N \N {/s225-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +86b3c74e-1c47-41e8-9b5a-6ea637769538 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 0e047d1b-5481-4e2e-949c-8bb2dcf9e5e9 {http,https} \N \N {/s225-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddca249b-defc-47f3-acad-0f0a7e4f8617 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 0e047d1b-5481-4e2e-949c-8bb2dcf9e5e9 {http,https} \N \N {/s225-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79ae0d64-ab90-4e9a-882e-859056d79538 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b3a256a3-3d0f-4a67-9518-dda233dab2a4 {http,https} \N \N {/s226-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2f9858d-cf8e-4b4a-a5d9-a33908ef5530 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b3a256a3-3d0f-4a67-9518-dda233dab2a4 {http,https} \N \N {/s226-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8b26c801-e3d2-4692-b594-4b69485f4ca8 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b3a256a3-3d0f-4a67-9518-dda233dab2a4 {http,https} \N \N {/s226-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eab207bd-b43b-416a-a95f-78dd707a4579 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b3a256a3-3d0f-4a67-9518-dda233dab2a4 {http,https} \N \N {/s226-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63ab9266-e6de-4b6c-8ec4-9dc035752e64 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75b76bb1-fcd9-4b1d-8a07-9c89e323838d {http,https} \N \N {/s227-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d76b3e9b-33a8-4d3e-800a-f1df30437669 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75b76bb1-fcd9-4b1d-8a07-9c89e323838d {http,https} \N \N {/s227-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +07efcc32-c3f6-4860-8753-a8a8646a0f72 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75b76bb1-fcd9-4b1d-8a07-9c89e323838d {http,https} \N \N {/s227-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e9e6a941-3daf-43bf-b592-1501baed5fb2 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75b76bb1-fcd9-4b1d-8a07-9c89e323838d {http,https} \N \N {/s227-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6880c3fa-0d24-44cd-a886-e9f9c4c58cea 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b9fd2d19-6d98-409c-822c-b53d23fc6bf4 {http,https} \N \N {/s228-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +95efeae4-1f31-4155-ba77-829f06379af1 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b9fd2d19-6d98-409c-822c-b53d23fc6bf4 {http,https} \N \N {/s228-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2544fd60-0054-42cc-8d70-dc6ec403f38c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b9fd2d19-6d98-409c-822c-b53d23fc6bf4 {http,https} \N \N {/s228-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3033fd15-db84-4505-b9c8-5aee47497024 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b9fd2d19-6d98-409c-822c-b53d23fc6bf4 {http,https} \N \N {/s228-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dbcc9362-249a-4b74-911f-73931014f6d7 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 999a382f-59db-47a3-95e5-3c7c387e519c {http,https} \N \N {/s229-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f6c39d90-718a-4aab-817c-f808b0bebb48 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 999a382f-59db-47a3-95e5-3c7c387e519c {http,https} \N \N {/s229-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +03107345-1338-46fc-a73f-62d1d7c3b36a 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 999a382f-59db-47a3-95e5-3c7c387e519c {http,https} \N \N {/s229-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +47c87273-2924-47c6-9090-888d86b7dc81 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 999a382f-59db-47a3-95e5-3c7c387e519c {http,https} \N \N {/s229-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dee03211-607a-47f4-809a-ca7b1121acc3 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 12475fba-736b-41ef-b7c9-91f0ab42706f {http,https} \N \N {/s230-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +961a0c1c-f59b-403c-9f09-dfbe43e72f2b 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 12475fba-736b-41ef-b7c9-91f0ab42706f {http,https} \N \N {/s230-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +452ed169-607d-4df7-b01a-e7d299bf7fae 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 12475fba-736b-41ef-b7c9-91f0ab42706f {http,https} \N \N {/s230-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +88587098-6e3c-4f1f-8b78-b3ca286d6b86 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 12475fba-736b-41ef-b7c9-91f0ab42706f {http,https} \N \N {/s230-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c319290e-5fe8-4104-8ec6-4844c9518e89 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 991a0eb0-d11a-40c7-9c0c-69134e425825 {http,https} \N \N {/s231-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9b08a36d-6d73-47c0-8c08-84d9ef630b71 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 991a0eb0-d11a-40c7-9c0c-69134e425825 {http,https} \N \N {/s231-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c3381de-39d6-4656-83b2-e363a0674564 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 991a0eb0-d11a-40c7-9c0c-69134e425825 {http,https} \N \N {/s231-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9d3c2d9a-377f-49f3-bd84-825c82b54b2a 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 991a0eb0-d11a-40c7-9c0c-69134e425825 {http,https} \N \N {/s231-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fbd49e46-42c2-42fb-8138-5e1f99b76838 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N a8911c95-832e-49cd-bbbf-adf393a69d28 {http,https} \N \N {/s232-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8d978335-6bb7-49b9-8fa7-fc28c5306d4d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N a8911c95-832e-49cd-bbbf-adf393a69d28 {http,https} \N \N {/s232-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +93d89a25-7e8f-49fc-ab7c-ba3d9900cdfe 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N a8911c95-832e-49cd-bbbf-adf393a69d28 {http,https} \N \N {/s232-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7ad486db-d9fc-4e93-b90f-9aad1ffca8c2 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N a8911c95-832e-49cd-bbbf-adf393a69d28 {http,https} \N \N {/s232-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6232efcc-cf9c-4faa-bdc0-1165995f180e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 05d5816d-797f-4329-8693-6864ba16fa00 {http,https} \N \N {/s233-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +db2796a2-5b9f-44e4-b4e6-e1b650eac133 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 05d5816d-797f-4329-8693-6864ba16fa00 {http,https} \N \N {/s233-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9aeccec9-69c0-4095-b109-03c37c0f4102 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 05d5816d-797f-4329-8693-6864ba16fa00 {http,https} \N \N {/s233-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +601e944e-4e5b-49e8-8431-5d5a9ffbd2ef 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 05d5816d-797f-4329-8693-6864ba16fa00 {http,https} \N \N {/s233-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f02a8d6a-4494-49b4-8db7-58aa2c068de2 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b198788c-dabc-4723-aaeb-258b242f5bf7 {http,https} \N \N {/s234-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aebdeb27-1aa7-4b9c-b324-eb1444df50c8 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b198788c-dabc-4723-aaeb-258b242f5bf7 {http,https} \N \N {/s234-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +645f09bf-9e69-487d-a15f-d9b5602a100d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b198788c-dabc-4723-aaeb-258b242f5bf7 {http,https} \N \N {/s234-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e8fdd5e7-3d0f-4205-9984-194647b7815e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N b198788c-dabc-4723-aaeb-258b242f5bf7 {http,https} \N \N {/s234-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c5748793-1bd0-4bc1-8a0b-a2addb5a8bcc 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N f827a7cb-3a5d-49dd-b15b-4a6a05c8f76c {http,https} \N \N {/s235-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +76ef03e5-c78c-45e2-a406-178b5b77a723 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N f827a7cb-3a5d-49dd-b15b-4a6a05c8f76c {http,https} \N \N {/s235-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f95ab1b-95bf-4eac-ba04-d19db0f79ae0 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N f827a7cb-3a5d-49dd-b15b-4a6a05c8f76c {http,https} \N \N {/s235-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83395d2e-05e3-4ff8-9d10-5597651975cb 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N f827a7cb-3a5d-49dd-b15b-4a6a05c8f76c {http,https} \N \N {/s235-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +990b02bb-1105-4c02-948c-5277b3423853 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 37142dfa-010c-4d0b-ae54-3285c60e177c {http,https} \N \N {/s236-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +75a4132e-b33a-4b75-bea9-66d59b6b8df1 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 37142dfa-010c-4d0b-ae54-3285c60e177c {http,https} \N \N {/s236-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +62907511-18be-4e6c-add5-baa3d4830809 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 37142dfa-010c-4d0b-ae54-3285c60e177c {http,https} \N \N {/s236-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c77aa53-ceb7-4e37-828f-39721d97fc9d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 37142dfa-010c-4d0b-ae54-3285c60e177c {http,https} \N \N {/s236-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0bf19a48-2fa5-49b8-96e1-f096f1121522 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 82375487-c356-468a-9a2a-3999121b401e {http,https} \N \N {/s237-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fff7df69-dfb4-49f3-a312-4ffc17f98e40 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 82375487-c356-468a-9a2a-3999121b401e {http,https} \N \N {/s237-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fa5a1367-d124-42a6-acf6-1efce4ac2338 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 82375487-c356-468a-9a2a-3999121b401e {http,https} \N \N {/s237-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f1913020-f42a-4fc2-83b0-d4d837548747 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 82375487-c356-468a-9a2a-3999121b401e {http,https} \N \N {/s237-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2638b337-18c2-4e96-be07-b6e989aed671 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N d15f0c0a-bce7-427d-8da1-07928f5d415b {http,https} \N \N {/s238-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d6fd3ac-73cc-4a10-bf8c-ab03ac940276 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N d15f0c0a-bce7-427d-8da1-07928f5d415b {http,https} \N \N {/s238-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a5150d0e-1090-427c-9b20-3d452576fc06 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N d15f0c0a-bce7-427d-8da1-07928f5d415b {http,https} \N \N {/s238-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56be2967-2351-4c26-8a3e-eee4ef98a8e3 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N d15f0c0a-bce7-427d-8da1-07928f5d415b {http,https} \N \N {/s238-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7dd824b1-39f8-49a2-9509-3e2bbf05ee7e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 24e96d1e-b429-4a11-8fd1-ec0688531b53 {http,https} \N \N {/s239-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e0de3211-d6ad-4a8c-9087-c5ceb3c42505 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 24e96d1e-b429-4a11-8fd1-ec0688531b53 {http,https} \N \N {/s239-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24f8052d-ffbc-4074-b2c6-b08699b78f44 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 24e96d1e-b429-4a11-8fd1-ec0688531b53 {http,https} \N \N {/s239-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a1c79a06-a91a-4334-82a3-f8982eaa59b4 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 24e96d1e-b429-4a11-8fd1-ec0688531b53 {http,https} \N \N {/s239-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +74bd9573-fdd0-44ef-961b-49f4e5720753 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N eea2568d-e01a-4936-a539-01988a96bda8 {http,https} \N \N {/s240-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b05b9ae2-5cc1-480e-9174-2e9459ec9846 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N eea2568d-e01a-4936-a539-01988a96bda8 {http,https} \N \N {/s240-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff61997e-911f-4c69-b5e9-50438b72a263 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N eea2568d-e01a-4936-a539-01988a96bda8 {http,https} \N \N {/s240-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fb9ec4e2-4a04-4823-b8e7-f8ac42962fcd 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N eea2568d-e01a-4936-a539-01988a96bda8 {http,https} \N \N {/s240-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7612fda4-4889-4103-869b-77ccd865e086 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N aea5c9f3-3582-4705-be7d-88c291890572 {http,https} \N \N {/s241-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1789af00-c255-47ef-a66b-9610d239b0da 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N aea5c9f3-3582-4705-be7d-88c291890572 {http,https} \N \N {/s241-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +81100e16-0857-4023-93e8-b81d2a458027 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N aea5c9f3-3582-4705-be7d-88c291890572 {http,https} \N \N {/s241-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +da641f38-12be-45b6-a4ad-fdfcd3557b8d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N aea5c9f3-3582-4705-be7d-88c291890572 {http,https} \N \N {/s241-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8ec1ae96-b063-4a14-8d70-620ad207fe3d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 062ddf91-5330-4185-877a-f8cdc29b5580 {http,https} \N \N {/s242-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4859932-4381-43d5-ba26-356a34bae53e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 062ddf91-5330-4185-877a-f8cdc29b5580 {http,https} \N \N {/s242-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4b70afd1-9913-44d0-9494-378d60c001b1 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 062ddf91-5330-4185-877a-f8cdc29b5580 {http,https} \N \N {/s242-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4ffcdbc7-1716-4302-8f04-8b4cef55f3ee 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 062ddf91-5330-4185-877a-f8cdc29b5580 {http,https} \N \N {/s242-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4fb8c46c-c343-4b80-8bc9-848d3d4cb24f 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 839c749b-aebf-46d3-b72b-ce58fb730dbe {http,https} \N \N {/s243-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +60cf7fdb-7492-4b8f-b2c2-70e2b6773095 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 839c749b-aebf-46d3-b72b-ce58fb730dbe {http,https} \N \N {/s243-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d5ccbc2b-75c9-401d-961b-0b0f0133f634 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 839c749b-aebf-46d3-b72b-ce58fb730dbe {http,https} \N \N {/s243-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5a2b31f4-b9c9-4137-804a-4847c23e0666 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 839c749b-aebf-46d3-b72b-ce58fb730dbe {http,https} \N \N {/s243-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +74c5ebda-098f-4ecd-9798-ed8ad5e5e9e6 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75fa1631-c22b-4234-b8e0-0e6a79d24963 {http,https} \N \N {/s244-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +86b23491-f7ea-43a0-99ee-689d43bcea35 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75fa1631-c22b-4234-b8e0-0e6a79d24963 {http,https} \N \N {/s244-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f70e67ff-9a01-46ad-8c86-4cece7c0c106 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75fa1631-c22b-4234-b8e0-0e6a79d24963 {http,https} \N \N {/s244-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af0bbd28-93b2-4307-932f-085be3944d7e 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 75fa1631-c22b-4234-b8e0-0e6a79d24963 {http,https} \N \N {/s244-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c26123d9-0316-4ed7-949f-adb9184ccc2d 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 56e78f0a-a314-4f02-865a-ccfd68eaa009 {http,https} \N \N {/s245-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4da8744-6ba4-438b-91ef-9509f195b114 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 56e78f0a-a314-4f02-865a-ccfd68eaa009 {http,https} \N \N {/s245-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +141912a4-28bb-4e85-bcd1-6af70ca57811 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 56e78f0a-a314-4f02-865a-ccfd68eaa009 {http,https} \N \N {/s245-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +35839bab-88c3-40c1-94e2-4e661a5c706c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 56e78f0a-a314-4f02-865a-ccfd68eaa009 {http,https} \N \N {/s245-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9196182e-0c1a-495f-b6b6-b3da1974c5d1 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 11b2be65-4a17-48f2-8a23-3c377c31b8bb {http,https} \N \N {/s246-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +00d42217-ca42-43d6-a053-82dfc08fb7f0 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 11b2be65-4a17-48f2-8a23-3c377c31b8bb {http,https} \N \N {/s246-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e77e0202-6a47-41a1-99f0-eac197f7c818 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 11b2be65-4a17-48f2-8a23-3c377c31b8bb {http,https} \N \N {/s246-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0cc09072-39ef-4e3a-a8a7-4862247f40a7 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 11b2be65-4a17-48f2-8a23-3c377c31b8bb {http,https} \N \N {/s246-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2a518dd7-8340-4650-9bb4-1597f43e7a13 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 8497dff1-9e4d-4a60-b7ba-d4c8ff11af87 {http,https} \N \N {/s247-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3234090b-adb9-4881-bab1-428e85a2d33c 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 8497dff1-9e4d-4a60-b7ba-d4c8ff11af87 {http,https} \N \N {/s247-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fbfd5159-8f5a-4289-a63c-0bd42283801f 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 8497dff1-9e4d-4a60-b7ba-d4c8ff11af87 {http,https} \N \N {/s247-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ec7d5b4-4b0b-425e-af57-8ad87f484c63 2022-05-26 09:04:28+00 2022-05-26 09:04:28+00 \N 8497dff1-9e4d-4a60-b7ba-d4c8ff11af87 {http,https} \N \N {/s247-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ea527d94-9918-41c2-a18f-fd8a891a596e 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 712a182e-b50a-4efb-a0f0-ca4fe894e577 {http,https} \N \N {/s248-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +348fd434-de19-4323-ab49-a34c9e97d29c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 712a182e-b50a-4efb-a0f0-ca4fe894e577 {http,https} \N \N {/s248-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +396a55b0-2278-4c11-82f3-3dbe12c1fa6c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 712a182e-b50a-4efb-a0f0-ca4fe894e577 {http,https} \N \N {/s248-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff22c081-47e7-41bb-abb4-06608ba68931 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 712a182e-b50a-4efb-a0f0-ca4fe894e577 {http,https} \N \N {/s248-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5978de24-382d-4d97-8239-b9ce82c800bc 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N ab44cae8-8ac0-41f1-9671-d07d69bb4ad2 {http,https} \N \N {/s249-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +209680d5-f5ef-444b-a5a4-c41e9103c156 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N ab44cae8-8ac0-41f1-9671-d07d69bb4ad2 {http,https} \N \N {/s249-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c5502c81-af38-48d9-b723-abded1a99819 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N ab44cae8-8ac0-41f1-9671-d07d69bb4ad2 {http,https} \N \N {/s249-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eed10aa7-274d-4019-87ce-3faa9f610358 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N ab44cae8-8ac0-41f1-9671-d07d69bb4ad2 {http,https} \N \N {/s249-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ab583423-fbf6-409b-ba71-9913ef7b7559 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 86074cab-06f4-425d-b52a-7ba8958f3778 {http,https} \N \N {/s250-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +907c4250-e472-4128-9aec-54d695b1eaeb 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 86074cab-06f4-425d-b52a-7ba8958f3778 {http,https} \N \N {/s250-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f419d80c-3261-4ab7-a86c-b5ba9f07144c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 86074cab-06f4-425d-b52a-7ba8958f3778 {http,https} \N \N {/s250-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e0dbcfc1-3bf1-49f2-8646-7257b80d5bc0 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 86074cab-06f4-425d-b52a-7ba8958f3778 {http,https} \N \N {/s250-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +98feec91-b2f0-46c6-a3af-f846d3e655e6 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3342939c-cfcb-437b-9ba9-ba20845e2183 {http,https} \N \N {/s251-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9400a5c7-b5c5-47d7-ab57-1b94f5ac7a6a 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3342939c-cfcb-437b-9ba9-ba20845e2183 {http,https} \N \N {/s251-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dd14486c-840d-41e6-992f-41957c1d12fe 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3342939c-cfcb-437b-9ba9-ba20845e2183 {http,https} \N \N {/s251-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6fc2a12a-7513-49f8-b4e0-54214e094ac0 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3342939c-cfcb-437b-9ba9-ba20845e2183 {http,https} \N \N {/s251-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8b3e6e32-3f4e-4f64-a4a1-d6bd36322ccb 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N be8251f2-6fd1-4823-8bf1-bc8c7fcd04be {http,https} \N \N {/s252-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c95c793a-34a4-4f68-9d06-2218e24c482a 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N be8251f2-6fd1-4823-8bf1-bc8c7fcd04be {http,https} \N \N {/s252-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cf8b1a5a-8cf6-4046-b5d5-7f39cdf7b5f8 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N be8251f2-6fd1-4823-8bf1-bc8c7fcd04be {http,https} \N \N {/s252-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e7e735ef-8851-4914-8680-27bd81a04bde 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N be8251f2-6fd1-4823-8bf1-bc8c7fcd04be {http,https} \N \N {/s252-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba861cca-1947-49d9-be61-489badcf3a55 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3d42dc37-596d-4996-8f00-b3c2fb6de270 {http,https} \N \N {/s253-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b42a4d96-7214-434a-a90f-334d33da57e5 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3d42dc37-596d-4996-8f00-b3c2fb6de270 {http,https} \N \N {/s253-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f16e4e16-e084-4578-aaa5-f94fadd501c1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3d42dc37-596d-4996-8f00-b3c2fb6de270 {http,https} \N \N {/s253-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0d4e535-9ad6-488b-8e78-5134a476735c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 3d42dc37-596d-4996-8f00-b3c2fb6de270 {http,https} \N \N {/s253-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +37cca1b2-1d03-442c-a8dd-5384f083cb53 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 704f1d16-e489-41d3-8a88-ee2c5b9b603f {http,https} \N \N {/s254-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4f92532-84d6-43ad-ab14-8dbcc7cde10d 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 704f1d16-e489-41d3-8a88-ee2c5b9b603f {http,https} \N \N {/s254-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3907184e-5ca9-43b1-aa66-9067eaf30c85 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 704f1d16-e489-41d3-8a88-ee2c5b9b603f {http,https} \N \N {/s254-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +15b2956d-8a48-439a-8990-e5e3fc06f403 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 704f1d16-e489-41d3-8a88-ee2c5b9b603f {http,https} \N \N {/s254-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b598a8c8-b596-469a-bff9-3525463f70eb 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N de8247fa-8178-495c-9fdb-111b5ae55037 {http,https} \N \N {/s255-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0197fdce-600f-4d72-b8fe-e780bb59dc0c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N de8247fa-8178-495c-9fdb-111b5ae55037 {http,https} \N \N {/s255-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3b4ca02-ad86-40fa-abaf-726711527b72 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N de8247fa-8178-495c-9fdb-111b5ae55037 {http,https} \N \N {/s255-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4d74bb2f-97ef-439c-a5ee-22d0dcdcebf1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N de8247fa-8178-495c-9fdb-111b5ae55037 {http,https} \N \N {/s255-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +96b79441-2684-402f-be0e-1b36f14ca501 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9a548e20-7aef-4cbc-b959-e1680c595689 {http,https} \N \N {/s256-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +47288119-664e-4a3d-91de-5cf2989e28fa 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9a548e20-7aef-4cbc-b959-e1680c595689 {http,https} \N \N {/s256-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +25c97166-1b72-4f15-aea6-d2727a79dabb 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9a548e20-7aef-4cbc-b959-e1680c595689 {http,https} \N \N {/s256-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6e2e11cf-0c8d-4080-b7a9-1f28c90c2dab 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9a548e20-7aef-4cbc-b959-e1680c595689 {http,https} \N \N {/s256-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fbd3a495-78e9-4175-8237-71793cfbb606 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 6d28de77-2ca4-4bb6-bc60-cd631380e860 {http,https} \N \N {/s257-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e5ae2c28-dfc5-496d-906d-7e2efc8095d0 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 6d28de77-2ca4-4bb6-bc60-cd631380e860 {http,https} \N \N {/s257-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +09c5f01c-c719-4109-954e-edaa0eb2e4fd 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 6d28de77-2ca4-4bb6-bc60-cd631380e860 {http,https} \N \N {/s257-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f431b40-da54-4986-aa34-099cccb0d1e4 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 6d28de77-2ca4-4bb6-bc60-cd631380e860 {http,https} \N \N {/s257-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6811b6b5-b2e5-4a76-b398-bdcff56d7f22 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9630e957-6d21-4127-b724-dc7be3e201c1 {http,https} \N \N {/s258-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c35cc644-49cd-4594-8de6-9a806674660c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9630e957-6d21-4127-b724-dc7be3e201c1 {http,https} \N \N {/s258-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +530b68b4-7e22-41f0-837d-809dced43422 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9630e957-6d21-4127-b724-dc7be3e201c1 {http,https} \N \N {/s258-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b2534c0d-fdb5-42c1-b908-4520e385cdbf 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 9630e957-6d21-4127-b724-dc7be3e201c1 {http,https} \N \N {/s258-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7e3aa4c5-571b-4972-828e-fa399be86501 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 439b1ab5-f5d1-4fce-b52d-b2beca2c2d6b {http,https} \N \N {/s259-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c908e9b4-8935-4f19-afd5-090326fde382 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 439b1ab5-f5d1-4fce-b52d-b2beca2c2d6b {http,https} \N \N {/s259-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +158f7d7d-a0bc-4b85-a502-8b7ad0b56eb7 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 439b1ab5-f5d1-4fce-b52d-b2beca2c2d6b {http,https} \N \N {/s259-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e55e8a17-2f7b-469a-ac79-6bd192f221de 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 439b1ab5-f5d1-4fce-b52d-b2beca2c2d6b {http,https} \N \N {/s259-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed05f0e0-9eed-42e8-ad60-06a678b81458 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N c385836e-5c56-47a7-b3d8-2388d62b077c {http,https} \N \N {/s260-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7b2f74ba-fdc6-4f85-8e8a-983bc873478f 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N c385836e-5c56-47a7-b3d8-2388d62b077c {http,https} \N \N {/s260-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d22c9fdf-ecd5-4d4f-85b0-3ca66aaf33d9 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N c385836e-5c56-47a7-b3d8-2388d62b077c {http,https} \N \N {/s260-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +462c16fa-1946-47a9-b089-c5cc2d79ad8a 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N c385836e-5c56-47a7-b3d8-2388d62b077c {http,https} \N \N {/s260-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +824cfe79-b762-45b9-bcb1-9ba5ef3b48a5 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5e375f63-692a-4416-a031-72323da9262b {http,https} \N \N {/s261-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a850e086-415a-43d4-be5b-e4e38d8c8943 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5e375f63-692a-4416-a031-72323da9262b {http,https} \N \N {/s261-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3799dd5c-abfd-4e56-95fd-9c86b2991c2a 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5e375f63-692a-4416-a031-72323da9262b {http,https} \N \N {/s261-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +847adc5b-670d-49ec-ad2c-d52cfc908eb3 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5e375f63-692a-4416-a031-72323da9262b {http,https} \N \N {/s261-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c0af9b6f-2469-4a72-bd62-d2ba3d4e8dc4 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 15ae2d93-8e77-49a2-a00b-1f8c7bf6b5a4 {http,https} \N \N {/s262-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +02f33d77-8e08-4483-9290-84c8f9819d92 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 15ae2d93-8e77-49a2-a00b-1f8c7bf6b5a4 {http,https} \N \N {/s262-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +49c09e7f-5c33-4261-9641-c13a1b7e188c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 15ae2d93-8e77-49a2-a00b-1f8c7bf6b5a4 {http,https} \N \N {/s262-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6fe90468-23d8-439e-9adb-020fc2bca272 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 15ae2d93-8e77-49a2-a00b-1f8c7bf6b5a4 {http,https} \N \N {/s262-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0a84aada-558e-4917-a4f7-fa4c6af88c9b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b4045684-2ff9-4810-a1ca-9bd3993f7cd4 {http,https} \N \N {/s263-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +744eee8f-0e52-49cb-9561-e32f76762b2b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b4045684-2ff9-4810-a1ca-9bd3993f7cd4 {http,https} \N \N {/s263-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d8422887-12e7-401d-90a4-ba0f7c72d3c1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b4045684-2ff9-4810-a1ca-9bd3993f7cd4 {http,https} \N \N {/s263-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5321323b-2aff-4b1d-a684-6b09daaf580d 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b4045684-2ff9-4810-a1ca-9bd3993f7cd4 {http,https} \N \N {/s263-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a55abe57-70a6-454b-b1d9-122fb86ec968 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 75d178df-1223-4f56-80b4-1bea51adfc97 {http,https} \N \N {/s264-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3b34a202-fa58-4444-bbb3-5940062b1cb6 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 75d178df-1223-4f56-80b4-1bea51adfc97 {http,https} \N \N {/s264-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +39e5eb6c-15f1-4381-88ff-52938c020ec4 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 75d178df-1223-4f56-80b4-1bea51adfc97 {http,https} \N \N {/s264-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1a80d0b3-e96f-48f6-bb94-f455498bdc7d 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 75d178df-1223-4f56-80b4-1bea51adfc97 {http,https} \N \N {/s264-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8b6916bb-cf39-4aba-9b32-5f9142dc4726 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b44e03a1-22f5-4443-ba10-921c56788bfe {http,https} \N \N {/s265-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8bc591fa-c2ed-49e1-898e-91fcf8d94cf7 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b44e03a1-22f5-4443-ba10-921c56788bfe {http,https} \N \N {/s265-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8cd3fb93-8500-4e7e-9da6-3bbcbc933be7 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b44e03a1-22f5-4443-ba10-921c56788bfe {http,https} \N \N {/s265-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3fab8b54-49fe-4951-9497-2fbf94093ac1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N b44e03a1-22f5-4443-ba10-921c56788bfe {http,https} \N \N {/s265-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9309d452-40ea-4d41-bba6-81931aa7543c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 8577c35b-106c-418c-8b93-90decb06af58 {http,https} \N \N {/s266-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +889ac2e8-ebb9-42e0-b6f1-2ef895622fce 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 8577c35b-106c-418c-8b93-90decb06af58 {http,https} \N \N {/s266-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5c1de002-cf5a-4158-a95d-bd945093c7d8 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 8577c35b-106c-418c-8b93-90decb06af58 {http,https} \N \N {/s266-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +02b5a25d-09ad-4749-b513-4c46f628e7ff 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 8577c35b-106c-418c-8b93-90decb06af58 {http,https} \N \N {/s266-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +052bf264-63f0-4397-82a6-11e8094fa966 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 18b21a7d-7f74-48b1-b9db-9ffa2db7d904 {http,https} \N \N {/s267-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3220acdb-f816-43e7-b1dc-ff4fa95662d5 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 18b21a7d-7f74-48b1-b9db-9ffa2db7d904 {http,https} \N \N {/s267-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b3d2e5e1-b160-4da5-bd5f-c6a9a05d05cf 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 18b21a7d-7f74-48b1-b9db-9ffa2db7d904 {http,https} \N \N {/s267-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4533df68-786c-487a-9a0b-f5c2d022c6ba 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 18b21a7d-7f74-48b1-b9db-9ffa2db7d904 {http,https} \N \N {/s267-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +43a993ea-426b-43f7-a5c4-5b97b6717a14 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 62f8d892-76fb-4ef9-9b66-b0b81564bce5 {http,https} \N \N {/s268-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ae6aca5-83ef-4006-9617-f8483bfeedc3 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 62f8d892-76fb-4ef9-9b66-b0b81564bce5 {http,https} \N \N {/s268-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +09583471-7a23-4a2b-b279-51fbfb8abd61 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 62f8d892-76fb-4ef9-9b66-b0b81564bce5 {http,https} \N \N {/s268-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c58d1ab1-a910-402b-aaf3-9b29b1794850 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 62f8d892-76fb-4ef9-9b66-b0b81564bce5 {http,https} \N \N {/s268-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5387a4b2-e8c3-4816-97bc-c7c848cd6dc2 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 08da3a9d-5fdf-47a8-be8f-ce287d2f2914 {http,https} \N \N {/s269-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6491fbf-c90a-40cc-97a7-74ca4f088960 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 08da3a9d-5fdf-47a8-be8f-ce287d2f2914 {http,https} \N \N {/s269-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +76091a4f-6f33-41b6-8087-ca0e7911ad9f 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 08da3a9d-5fdf-47a8-be8f-ce287d2f2914 {http,https} \N \N {/s269-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f21744bf-3172-4cbe-9a5b-90b3dc3de89f 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 08da3a9d-5fdf-47a8-be8f-ce287d2f2914 {http,https} \N \N {/s269-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +43fee4de-6c96-4e33-8aeb-94f9fa66257b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N e6ff5e56-255d-440d-81df-a452a2072297 {http,https} \N \N {/s270-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +90f51228-c787-46bb-aead-6e6414ae2bc1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N e6ff5e56-255d-440d-81df-a452a2072297 {http,https} \N \N {/s270-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +61153c6f-6bed-4d51-9f78-3ceab4b5d196 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N e6ff5e56-255d-440d-81df-a452a2072297 {http,https} \N \N {/s270-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +45a72cc0-9e6d-42d9-8d2d-21fb0c847140 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N e6ff5e56-255d-440d-81df-a452a2072297 {http,https} \N \N {/s270-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24ff427e-0332-49fa-8206-784da4ba5b08 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5d13ade8-944a-46a1-89db-e6707760f27a {http,https} \N \N {/s271-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22ff64e4-97f3-4eec-bba5-53e51f4f883b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5d13ade8-944a-46a1-89db-e6707760f27a {http,https} \N \N {/s271-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7e421a8c-8875-4594-b600-9ac94d893106 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5d13ade8-944a-46a1-89db-e6707760f27a {http,https} \N \N {/s271-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a1d24aee-f6ba-45fb-959e-57bedffa0b46 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 5d13ade8-944a-46a1-89db-e6707760f27a {http,https} \N \N {/s271-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4f824f7d-885e-42ba-9038-b4c65a7be458 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 783e864e-f9f2-410b-ae7e-f083694fd114 {http,https} \N \N {/s272-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a6c54709-dbe3-4b18-bd44-d7e8b5182d2b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 783e864e-f9f2-410b-ae7e-f083694fd114 {http,https} \N \N {/s272-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +803cf53a-4016-4648-9f0a-2f274b40093c 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 783e864e-f9f2-410b-ae7e-f083694fd114 {http,https} \N \N {/s272-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e178bef8-4f8d-47c0-bb07-ef94f4c3348b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 783e864e-f9f2-410b-ae7e-f083694fd114 {http,https} \N \N {/s272-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9148b8d2-133c-4808-8c0c-71545df3008d 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N dd29a63e-9bd9-4a46-99a2-bb4de34b390d {http,https} \N \N {/s273-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f0df146-c486-4a7c-832c-a0c5cdf656bc 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N dd29a63e-9bd9-4a46-99a2-bb4de34b390d {http,https} \N \N {/s273-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5ab69c7c-3c0f-4f0d-9100-726bf887f09f 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N dd29a63e-9bd9-4a46-99a2-bb4de34b390d {http,https} \N \N {/s273-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +01b9bbe7-7748-40ae-b2ea-9e4f641a52bb 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N dd29a63e-9bd9-4a46-99a2-bb4de34b390d {http,https} \N \N {/s273-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2c068758-6596-4aa6-8d5c-2c1461ea6b63 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N d308ba72-8ccb-4b74-bc09-c3ea91561b47 {http,https} \N \N {/s274-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be96003d-565e-4bb8-bad7-a497fe5e2e51 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N d308ba72-8ccb-4b74-bc09-c3ea91561b47 {http,https} \N \N {/s274-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +99c4664d-2e5c-4c46-9dda-4f05ef8b6e5b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N d308ba72-8ccb-4b74-bc09-c3ea91561b47 {http,https} \N \N {/s274-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7a4b03bc-df94-4d3e-8d22-a078a6539271 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N d308ba72-8ccb-4b74-bc09-c3ea91561b47 {http,https} \N \N {/s274-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7dfafca3-ad07-479a-a5ff-0ea8d931a5e8 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N bb545b0f-69e5-4dbe-8b3a-8d692e9f0465 {http,https} \N \N {/s275-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fdb5b185-b8f4-4a36-b8d1-1ee1b7ea4852 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N bb545b0f-69e5-4dbe-8b3a-8d692e9f0465 {http,https} \N \N {/s275-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9150a4ac-5b0d-40ad-aa34-5e282fa8b6f0 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N bb545b0f-69e5-4dbe-8b3a-8d692e9f0465 {http,https} \N \N {/s275-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +78a2798c-1ccc-4af8-aca8-f64dcbcf83f1 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N bb545b0f-69e5-4dbe-8b3a-8d692e9f0465 {http,https} \N \N {/s275-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c5116d1-6f48-4666-890c-6652ade62b3b 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 09688798-b181-4282-9b47-4ea11cbed88f {http,https} \N \N {/s276-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f4f9605-4c50-45f6-b4aa-f0376e44e6e2 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 09688798-b181-4282-9b47-4ea11cbed88f {http,https} \N \N {/s276-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a04d56c4-b5a9-4c33-8da6-d144a43d32e5 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 09688798-b181-4282-9b47-4ea11cbed88f {http,https} \N \N {/s276-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a71d07e-24ce-4435-9354-8da15daf1a6d 2022-05-26 09:04:29+00 2022-05-26 09:04:29+00 \N 09688798-b181-4282-9b47-4ea11cbed88f {http,https} \N \N {/s276-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c8587ba4-265a-477a-bad9-3bc338c6a86e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f2f31531-6e81-4e47-8ee5-21db84a28cae {http,https} \N \N {/s277-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24855e5d-ff47-4287-adc3-6f63a3549733 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f2f31531-6e81-4e47-8ee5-21db84a28cae {http,https} \N \N {/s277-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6e3daae6-384f-4ed9-9a52-9c18db969354 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f2f31531-6e81-4e47-8ee5-21db84a28cae {http,https} \N \N {/s277-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +32435b98-a760-4f16-97e6-7561d91cb280 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f2f31531-6e81-4e47-8ee5-21db84a28cae {http,https} \N \N {/s277-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7002e942-31fc-4778-b412-47e49c6e3d70 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5718da07-3088-41a8-a8e9-56d83309d49f {http,https} \N \N {/s278-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +09e78d3a-45c5-474a-9ff6-b3b95211b3a4 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5718da07-3088-41a8-a8e9-56d83309d49f {http,https} \N \N {/s278-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +70adbf34-eda8-445a-9448-10b5100b9890 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5718da07-3088-41a8-a8e9-56d83309d49f {http,https} \N \N {/s278-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dd3ce252-9cd4-4435-abd7-43de11e0b22a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5718da07-3088-41a8-a8e9-56d83309d49f {http,https} \N \N {/s278-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24427c56-ec45-4ead-b0a0-b4e05cc8d653 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 858587ef-4507-470b-bf83-53d9d428607d {http,https} \N \N {/s279-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19214a79-a957-467d-981d-31cd3685febb 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 858587ef-4507-470b-bf83-53d9d428607d {http,https} \N \N {/s279-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +256168e2-8de7-4530-88d7-8f54e2d548d6 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 858587ef-4507-470b-bf83-53d9d428607d {http,https} \N \N {/s279-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f7c42535-085e-4731-9f29-13c9c033a3c6 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 858587ef-4507-470b-bf83-53d9d428607d {http,https} \N \N {/s279-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc809221-dad1-4357-9525-b99a233008d9 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e838f443-11b9-47d3-952c-b29d32c47d99 {http,https} \N \N {/s280-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +90af6eaa-2435-4719-8f0c-a6072fda1ee8 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e838f443-11b9-47d3-952c-b29d32c47d99 {http,https} \N \N {/s280-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5bd96850-5f1b-47c5-9d47-970da35bb2af 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e838f443-11b9-47d3-952c-b29d32c47d99 {http,https} \N \N {/s280-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19fb4a2a-cf09-44dc-8430-85afaba6be53 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e838f443-11b9-47d3-952c-b29d32c47d99 {http,https} \N \N {/s280-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ad8ebfd-5c52-458d-870a-f7e38ef47b22 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 3c00d6b0-b98a-4e77-a9e8-3255963487ca {http,https} \N \N {/s281-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5c8e93f6-0b19-4a01-a418-5db63980174f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 3c00d6b0-b98a-4e77-a9e8-3255963487ca {http,https} \N \N {/s281-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5801a3ce-c020-4a20-a858-d9fb576ec08e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 3c00d6b0-b98a-4e77-a9e8-3255963487ca {http,https} \N \N {/s281-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d089c304-1bad-4a90-ab0a-f7cd9ce7e317 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 3c00d6b0-b98a-4e77-a9e8-3255963487ca {http,https} \N \N {/s281-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc4ae031-e11a-44fe-b1c2-7ec6107639a4 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 7968fa6f-3fce-4d76-98b7-ac7e1abd5f3b {http,https} \N \N {/s282-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4567a08d-a922-42bb-a9ea-a6c143e09108 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 7968fa6f-3fce-4d76-98b7-ac7e1abd5f3b {http,https} \N \N {/s282-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b08a9de6-f0a7-482d-9ca7-f7942a3d5289 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 7968fa6f-3fce-4d76-98b7-ac7e1abd5f3b {http,https} \N \N {/s282-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e16a4ba7-c2b9-4bcc-a47b-373bd9e00aa9 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 7968fa6f-3fce-4d76-98b7-ac7e1abd5f3b {http,https} \N \N {/s282-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29dc0430-7190-492b-ac0e-f54fd1a2571e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0215b396-4130-4073-8c0b-a994e36641fc {http,https} \N \N {/s283-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +55693b37-b38e-421a-8491-89233a1a6d31 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0215b396-4130-4073-8c0b-a994e36641fc {http,https} \N \N {/s283-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +deb4cd60-2671-4143-a1c9-fef0b689b14f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0215b396-4130-4073-8c0b-a994e36641fc {http,https} \N \N {/s283-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c3069bf3-a702-4577-b07e-3fcefaa8bb22 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0215b396-4130-4073-8c0b-a994e36641fc {http,https} \N \N {/s283-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +80197ab5-5266-421d-8472-f2ccfa566226 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 053a5358-18e8-401d-8eae-709cae78044b {http,https} \N \N {/s284-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0b74243e-23ff-41af-acbe-fbed49ceafdf 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 053a5358-18e8-401d-8eae-709cae78044b {http,https} \N \N {/s284-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8df7a1a5-1896-4c92-9090-37deb9413e0c 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 053a5358-18e8-401d-8eae-709cae78044b {http,https} \N \N {/s284-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4ff1b4c-3f5c-49cc-bfec-000f1c21f00a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 053a5358-18e8-401d-8eae-709cae78044b {http,https} \N \N {/s284-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f4a829e-3f63-471c-b46e-a58623a1291a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 645d937e-50e6-428b-a66b-b940faa02f28 {http,https} \N \N {/s285-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6132914-ca25-4d59-ba21-2730b87f2aae 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 645d937e-50e6-428b-a66b-b940faa02f28 {http,https} \N \N {/s285-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +906b22be-2177-4fc4-a490-b61a79320e75 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 645d937e-50e6-428b-a66b-b940faa02f28 {http,https} \N \N {/s285-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f47b12f0-1a61-4bb2-a50a-d3ac3b34160f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 645d937e-50e6-428b-a66b-b940faa02f28 {http,https} \N \N {/s285-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ffc3c83f-3318-4311-99c5-8901687e1c72 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 19fa1c11-2031-49e3-8242-33a1fc7aeb18 {http,https} \N \N {/s286-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +39a060df-8013-4e5b-9309-36d901a5c48c 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 19fa1c11-2031-49e3-8242-33a1fc7aeb18 {http,https} \N \N {/s286-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +550cc2f4-a1fd-4462-96dd-2dc76b84961a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 19fa1c11-2031-49e3-8242-33a1fc7aeb18 {http,https} \N \N {/s286-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +54b1193f-3c7d-4a44-a181-d6261c68416d 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 19fa1c11-2031-49e3-8242-33a1fc7aeb18 {http,https} \N \N {/s286-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f6165dfc-6c2a-4563-85b4-3b2cff47f855 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 9832ee7f-74e0-4e0b-8897-44cfd8c7892a {http,https} \N \N {/s287-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +80bce374-42f7-4fe6-9a94-719816681ff1 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 9832ee7f-74e0-4e0b-8897-44cfd8c7892a {http,https} \N \N {/s287-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +82d780da-9228-4204-9682-36a12419dc16 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 9832ee7f-74e0-4e0b-8897-44cfd8c7892a {http,https} \N \N {/s287-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f4fac863-5143-4f04-9919-6426d950b22d 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 9832ee7f-74e0-4e0b-8897-44cfd8c7892a {http,https} \N \N {/s287-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c762421f-dc86-472e-ace2-5491e03e5d02 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0a5d0d3b-055c-4338-b19e-1fd4d196234a {http,https} \N \N {/s288-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +33e9ec41-f5ea-46df-9ec6-eb16e3f19eba 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0a5d0d3b-055c-4338-b19e-1fd4d196234a {http,https} \N \N {/s288-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d78a3acd-0653-4f05-a338-e2e38275b01f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0a5d0d3b-055c-4338-b19e-1fd4d196234a {http,https} \N \N {/s288-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e9ad80a-cac1-43a0-b76d-92bd926edb89 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0a5d0d3b-055c-4338-b19e-1fd4d196234a {http,https} \N \N {/s288-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0702cf7d-f724-451a-8c99-a227f4a6f5e6 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 70fae9ae-8e2b-4fe7-8c2d-3c50cf88dbac {http,https} \N \N {/s289-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ee2d5b43-ec16-40e1-a0ec-b6d7e5ce8b78 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 70fae9ae-8e2b-4fe7-8c2d-3c50cf88dbac {http,https} \N \N {/s289-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5fc724a6-8c41-4d84-acbc-ab8ac58761d5 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 70fae9ae-8e2b-4fe7-8c2d-3c50cf88dbac {http,https} \N \N {/s289-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +849c6b50-03cc-4dcb-b809-e5f8873594e9 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 70fae9ae-8e2b-4fe7-8c2d-3c50cf88dbac {http,https} \N \N {/s289-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c3896e85-8096-4b89-ae83-b1eb037fc659 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 554fa44c-d64b-4501-84f6-8543e0ac1c42 {http,https} \N \N {/s290-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +64efc957-dc79-4892-bf93-08ac8dd7bbd3 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 554fa44c-d64b-4501-84f6-8543e0ac1c42 {http,https} \N \N {/s290-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c8b4f33c-c286-4080-bd26-d78dbb6b9604 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 554fa44c-d64b-4501-84f6-8543e0ac1c42 {http,https} \N \N {/s290-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cf84d710-4034-4f8f-9332-c27a23728e25 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 554fa44c-d64b-4501-84f6-8543e0ac1c42 {http,https} \N \N {/s290-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e3ba10b-291c-4adf-a209-1511e4ca9a8f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N ff177547-b49b-4e7e-b3d9-f99ba78df0db {http,https} \N \N {/s291-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +59e68c8c-1693-441d-90fd-c9163e2acd9a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N ff177547-b49b-4e7e-b3d9-f99ba78df0db {http,https} \N \N {/s291-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +800b1149-8225-41cb-82e1-1cc4746dfac8 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N ff177547-b49b-4e7e-b3d9-f99ba78df0db {http,https} \N \N {/s291-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +543cb191-333c-4f0c-a5dc-0491916a81a9 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N ff177547-b49b-4e7e-b3d9-f99ba78df0db {http,https} \N \N {/s291-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +108314e6-e3d1-4bdb-9f32-3163cebbf5f4 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 76217b97-af15-44da-8565-39546305a786 {http,https} \N \N {/s292-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +661143eb-9b31-4c34-88c9-8200c5dfbd1f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 76217b97-af15-44da-8565-39546305a786 {http,https} \N \N {/s292-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1703ab0a-7da4-4665-ae26-cda38a06ddb6 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 76217b97-af15-44da-8565-39546305a786 {http,https} \N \N {/s292-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a22d25cc-1114-4f3a-a285-3caa4f7c1c4b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 76217b97-af15-44da-8565-39546305a786 {http,https} \N \N {/s292-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +52760e3c-9b52-4bfe-9c33-2648bc1890d1 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5f70b4d9-fcd2-4a6b-b5d5-57f603a2d936 {http,https} \N \N {/s293-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4a293abf-5d48-46b2-86f0-4c95be79be65 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5f70b4d9-fcd2-4a6b-b5d5-57f603a2d936 {http,https} \N \N {/s293-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7de8476d-620c-4d0c-835b-20673d10340b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5f70b4d9-fcd2-4a6b-b5d5-57f603a2d936 {http,https} \N \N {/s293-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +340bcd96-9ae3-4e84-b2c0-f145b9d30f7e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 5f70b4d9-fcd2-4a6b-b5d5-57f603a2d936 {http,https} \N \N {/s293-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8133ed27-39bb-4eee-8bbc-910e77fcc5e2 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N cddf8c8a-8e68-45c7-a771-d5d2d8aca8f5 {http,https} \N \N {/s294-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c6baa05c-e9e7-4f9e-9a80-19ff337bc72b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N cddf8c8a-8e68-45c7-a771-d5d2d8aca8f5 {http,https} \N \N {/s294-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fffea5bd-246a-4cae-bbbf-496f68c32872 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N cddf8c8a-8e68-45c7-a771-d5d2d8aca8f5 {http,https} \N \N {/s294-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bb097e25-2ac2-4309-8f1d-3660da95aa2c 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N cddf8c8a-8e68-45c7-a771-d5d2d8aca8f5 {http,https} \N \N {/s294-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b5bdc259-237e-4a60-bbda-fe70889b5d6c 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f1e1ff63-b396-4ed6-9305-d4d045a2e9a7 {http,https} \N \N {/s295-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +298774f4-ddcb-4667-a502-d7f5969eff3e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f1e1ff63-b396-4ed6-9305-d4d045a2e9a7 {http,https} \N \N {/s295-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +92d7bb01-afe4-41cb-acc3-b0e553669f84 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f1e1ff63-b396-4ed6-9305-d4d045a2e9a7 {http,https} \N \N {/s295-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +decd2289-e746-4792-9d58-ab34081fb1fe 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N f1e1ff63-b396-4ed6-9305-d4d045a2e9a7 {http,https} \N \N {/s295-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6c887363-c580-49ec-bbb8-89328640a7f7 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 22fa79c7-1a20-4b96-afbb-cac2c2c22706 {http,https} \N \N {/s296-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +da6360e8-ff98-4d8b-b008-0fc3e7676466 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 22fa79c7-1a20-4b96-afbb-cac2c2c22706 {http,https} \N \N {/s296-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fcbd76a8-cf2c-42a6-9b97-4b1f9f9d461a 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 22fa79c7-1a20-4b96-afbb-cac2c2c22706 {http,https} \N \N {/s296-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8db17f64-a079-4e82-9fbe-2908b771d6dd 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 22fa79c7-1a20-4b96-afbb-cac2c2c22706 {http,https} \N \N {/s296-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb7fc10f-a7f8-408e-8aa5-6fe29c2f7f83 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N dc31ed76-081d-4ae2-b4d3-c249a4348842 {http,https} \N \N {/s297-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +830d11fc-f539-4581-95ff-b5bc36d0771c 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N dc31ed76-081d-4ae2-b4d3-c249a4348842 {http,https} \N \N {/s297-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e351acf-98e3-45e3-9786-c6fb719ca7c2 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N dc31ed76-081d-4ae2-b4d3-c249a4348842 {http,https} \N \N {/s297-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +27b055be-d510-4d88-b119-e576273fb9e5 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N dc31ed76-081d-4ae2-b4d3-c249a4348842 {http,https} \N \N {/s297-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f4af7fd-dc45-4a09-aeb1-af0e3c20ea91 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 6331cb28-6a75-45e7-9d9d-7225d0996e0f {http,https} \N \N {/s298-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eea50a61-12a9-41e2-92b0-a294e830df8b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 6331cb28-6a75-45e7-9d9d-7225d0996e0f {http,https} \N \N {/s298-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cecb910c-ced0-4ed2-b726-e09de4370d33 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 6331cb28-6a75-45e7-9d9d-7225d0996e0f {http,https} \N \N {/s298-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0770314d-25f6-4226-b66b-64e2b9088793 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 6331cb28-6a75-45e7-9d9d-7225d0996e0f {http,https} \N \N {/s298-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +96d99bd3-b8b8-4e6b-9e3c-65bba71819f9 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N d9a841c6-6bf4-4cd6-921c-f38e9f772cb0 {http,https} \N \N {/s299-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c47c5c78-11dd-45c5-825b-afc89d4d19b1 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N d9a841c6-6bf4-4cd6-921c-f38e9f772cb0 {http,https} \N \N {/s299-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e5d4e58-0ee9-4ab1-9768-641774ba20bd 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N d9a841c6-6bf4-4cd6-921c-f38e9f772cb0 {http,https} \N \N {/s299-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6f97875-7d88-4499-9965-a700fb1821ce 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N d9a841c6-6bf4-4cd6-921c-f38e9f772cb0 {http,https} \N \N {/s299-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3031ee2c-3cbf-4eb5-982d-54ef84e30031 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 49b9e591-2b39-4cca-b0ad-94880347cb6e {http,https} \N \N {/s300-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31e86c57-baa0-4709-83ed-a486ce4ecf6f 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 49b9e591-2b39-4cca-b0ad-94880347cb6e {http,https} \N \N {/s300-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56f299a5-8df3-4c31-ab8e-5c9a0512f325 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 49b9e591-2b39-4cca-b0ad-94880347cb6e {http,https} \N \N {/s300-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e72a3c50-d2b3-4d63-a4de-b8d280e3fffa 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 49b9e591-2b39-4cca-b0ad-94880347cb6e {http,https} \N \N {/s300-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +539ab917-81ee-46ca-9f90-3cb110bcebd7 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 50d5126f-ed18-4022-a93a-3fee8b5a2a61 {http,https} \N \N {/s301-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2d08cf1-a499-48b4-af7f-56c1ab22d28b 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 50d5126f-ed18-4022-a93a-3fee8b5a2a61 {http,https} \N \N {/s301-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be46c66d-667c-4832-8b7e-2d2145ffe5e3 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 50d5126f-ed18-4022-a93a-3fee8b5a2a61 {http,https} \N \N {/s301-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +57033331-e8db-4919-bd23-2c289503ed70 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 50d5126f-ed18-4022-a93a-3fee8b5a2a61 {http,https} \N \N {/s301-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cbdd3bf7-2a83-4358-bb6b-31848887868d 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e1e1f82a-936b-49d0-8d28-ebab1f134a1b {http,https} \N \N {/s302-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +25c8e254-9fdc-4d75-b57e-f0120d3b144e 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e1e1f82a-936b-49d0-8d28-ebab1f134a1b {http,https} \N \N {/s302-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +55c08559-fd0b-414f-8b9c-a8ac6047b405 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e1e1f82a-936b-49d0-8d28-ebab1f134a1b {http,https} \N \N {/s302-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +479f54bd-2893-41d2-910d-c8bda2e94242 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N e1e1f82a-936b-49d0-8d28-ebab1f134a1b {http,https} \N \N {/s302-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e45c75a8-657a-47dc-adb3-55926af9c3b2 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N b5815188-d327-4734-ad11-6bd6459b38a4 {http,https} \N \N {/s303-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a0da43c6-ce4d-4513-897e-61fa95f64d8d 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N b5815188-d327-4734-ad11-6bd6459b38a4 {http,https} \N \N {/s303-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +72924912-c284-4596-83c5-c303451001a4 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N b5815188-d327-4734-ad11-6bd6459b38a4 {http,https} \N \N {/s303-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aff8a5c9-cb02-4c1b-a86c-07ebd6e0bdfd 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N b5815188-d327-4734-ad11-6bd6459b38a4 {http,https} \N \N {/s303-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +14813123-4ed3-4b6e-91db-f1b5ac038a73 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0808e339-4431-4419-8c80-0bd658eb351a {http,https} \N \N {/s304-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +741feecc-e331-42aa-a661-8e5ed487ee62 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0808e339-4431-4419-8c80-0bd658eb351a {http,https} \N \N {/s304-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +248aa6cc-0725-44da-9dbb-4b7c5850d634 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0808e339-4431-4419-8c80-0bd658eb351a {http,https} \N \N {/s304-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +12946059-37ad-4979-8272-354cf58d5617 2022-05-26 09:04:30+00 2022-05-26 09:04:30+00 \N 0808e339-4431-4419-8c80-0bd658eb351a {http,https} \N \N {/s304-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c31e50a3-ec4f-4a24-a968-525dbb636fa3 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8e7cf859-20b8-46cf-a515-89cff33cbaf3 {http,https} \N \N {/s305-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f24e9f9b-3d61-4cb2-9d02-d158ec53d880 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8e7cf859-20b8-46cf-a515-89cff33cbaf3 {http,https} \N \N {/s305-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +07a39fd9-7a46-4b38-936a-2fd9762aa789 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8e7cf859-20b8-46cf-a515-89cff33cbaf3 {http,https} \N \N {/s305-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c8b3744-685d-484e-af02-c1ad1eb3556a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8e7cf859-20b8-46cf-a515-89cff33cbaf3 {http,https} \N \N {/s305-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3414b762-ca82-403e-aaa3-8249c2ecf248 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 876e891f-4820-4e1d-96d5-d86cb4ecedc1 {http,https} \N \N {/s306-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79d62324-4aa7-42d7-a4ae-03379f54844c 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 876e891f-4820-4e1d-96d5-d86cb4ecedc1 {http,https} \N \N {/s306-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4c306453-1d74-4983-a358-50f6ab589901 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 876e891f-4820-4e1d-96d5-d86cb4ecedc1 {http,https} \N \N {/s306-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1545b9ce-91da-4760-82c0-21daf92b82fd 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 876e891f-4820-4e1d-96d5-d86cb4ecedc1 {http,https} \N \N {/s306-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e9a04683-e583-4767-b401-be4b21716993 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 84c6bde5-724f-4beb-b1c0-16f07b948029 {http,https} \N \N {/s307-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29486f34-fe2d-42ea-ae8e-997eec09d113 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 84c6bde5-724f-4beb-b1c0-16f07b948029 {http,https} \N \N {/s307-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0dd87c7-c38f-4f5d-bf09-840a303d8c5a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 84c6bde5-724f-4beb-b1c0-16f07b948029 {http,https} \N \N {/s307-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2edb7b00-f7dd-47d4-941e-f2ad940eafda 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 84c6bde5-724f-4beb-b1c0-16f07b948029 {http,https} \N \N {/s307-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +097b64d5-e821-402f-841b-6193a92adbc2 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f612ff85-e276-47b3-a33a-63499962253d {http,https} \N \N {/s308-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +58cc4cf6-04fb-40f0-9e5a-2dbf033e935b 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f612ff85-e276-47b3-a33a-63499962253d {http,https} \N \N {/s308-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +00d5dc17-89b3-4060-b289-517b17d16a12 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f612ff85-e276-47b3-a33a-63499962253d {http,https} \N \N {/s308-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +11a89492-7e21-469d-990d-6f6e5a0da418 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f612ff85-e276-47b3-a33a-63499962253d {http,https} \N \N {/s308-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +868da3e1-521e-4a2d-b4ba-74aa35e5e67a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0e58f9e2-049c-413c-9053-520742687a6e {http,https} \N \N {/s309-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4f233cfb-63f9-41f6-a15d-c26c0000d759 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0e58f9e2-049c-413c-9053-520742687a6e {http,https} \N \N {/s309-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +32f2826c-4afd-40f1-b5a2-858053a33cc7 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0e58f9e2-049c-413c-9053-520742687a6e {http,https} \N \N {/s309-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a85d4c37-8534-4331-a60b-986ea8b76ef2 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0e58f9e2-049c-413c-9053-520742687a6e {http,https} \N \N {/s309-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +99efc0da-21fb-4849-81c5-306cd0387caf 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 82a6fb35-6254-4f5b-8aa7-c0472632af47 {http,https} \N \N {/s310-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dfcc93dd-3dcd-4f2e-81f3-087bde70a6b5 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 82a6fb35-6254-4f5b-8aa7-c0472632af47 {http,https} \N \N {/s310-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b77ed2e4-f97b-45b4-b228-9aacf868f9bb 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 82a6fb35-6254-4f5b-8aa7-c0472632af47 {http,https} \N \N {/s310-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29fdf619-528e-4511-a46c-2109bab3a761 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 82a6fb35-6254-4f5b-8aa7-c0472632af47 {http,https} \N \N {/s310-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5303abb3-dbf4-4a19-a26c-ef9e7182b975 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 258d783d-9e92-48d2-ace4-861cb00df9b7 {http,https} \N \N {/s311-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b021031-bb05-4c39-8405-fabc1b056cfe 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 258d783d-9e92-48d2-ace4-861cb00df9b7 {http,https} \N \N {/s311-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +420b4aac-5fe1-42af-8293-b3e9994ec2d8 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 258d783d-9e92-48d2-ace4-861cb00df9b7 {http,https} \N \N {/s311-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2355e36d-d82c-4a31-824e-186affeef2c8 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 258d783d-9e92-48d2-ace4-861cb00df9b7 {http,https} \N \N {/s311-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +048c4888-dc42-424b-803b-251a79f0827a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N bd5dcc38-1fc4-49c0-80e2-f26fa6a49a9f {http,https} \N \N {/s312-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +676716b3-b615-4e49-9571-fc2ccd13937a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N bd5dcc38-1fc4-49c0-80e2-f26fa6a49a9f {http,https} \N \N {/s312-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ab6f70c-6e28-4e24-934b-4bc0c4f30be1 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N bd5dcc38-1fc4-49c0-80e2-f26fa6a49a9f {http,https} \N \N {/s312-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c01b7bce-2012-4680-a2c6-cb979ac95931 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N bd5dcc38-1fc4-49c0-80e2-f26fa6a49a9f {http,https} \N \N {/s312-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e32e7206-4b81-433f-818f-3d47b31edd31 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 1e5ab1ef-87e3-4ebc-92e9-ec9c0f7aaa9f {http,https} \N \N {/s313-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9f23478-4aec-495c-8d12-c69f7d7987f6 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 1e5ab1ef-87e3-4ebc-92e9-ec9c0f7aaa9f {http,https} \N \N {/s313-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6b0a7fcb-9f01-4179-b691-0b1479481014 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 1e5ab1ef-87e3-4ebc-92e9-ec9c0f7aaa9f {http,https} \N \N {/s313-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e5642783-b3f2-4220-b24b-711595a92acf 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 1e5ab1ef-87e3-4ebc-92e9-ec9c0f7aaa9f {http,https} \N \N {/s313-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18d225b8-c01d-4f2f-8edd-fb3c26e305da 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5e35d3e9-49a9-4976-a638-4e6764ccd426 {http,https} \N \N {/s314-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2cd01762-1180-4c1c-871b-651aeb203c3c 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5e35d3e9-49a9-4976-a638-4e6764ccd426 {http,https} \N \N {/s314-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +73d9575e-ac4d-4c46-8b12-d1f2958f2cdf 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5e35d3e9-49a9-4976-a638-4e6764ccd426 {http,https} \N \N {/s314-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bb5174a5-5337-4a6a-9e57-70a14ce2682f 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5e35d3e9-49a9-4976-a638-4e6764ccd426 {http,https} \N \N {/s314-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +03b928eb-3a70-4949-8811-07129921837a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 7bab5fa6-6191-49b8-9c7e-8addeb144e8a {http,https} \N \N {/s315-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +36140aad-79a9-4198-8007-c5c94f31ecdd 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 7bab5fa6-6191-49b8-9c7e-8addeb144e8a {http,https} \N \N {/s315-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31e9dc47-a7ac-451e-bfdd-fd4e3491fdda 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 7bab5fa6-6191-49b8-9c7e-8addeb144e8a {http,https} \N \N {/s315-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d9c548e4-288c-4ecf-b9cd-73652e6e689b 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 7bab5fa6-6191-49b8-9c7e-8addeb144e8a {http,https} \N \N {/s315-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4424a33d-98da-4246-9ccb-200ff9f62ce3 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 9bd52aa4-7158-4d06-81f2-a10f99e33f08 {http,https} \N \N {/s316-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5661013c-e421-43c6-ab2e-ae64587f46e2 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 9bd52aa4-7158-4d06-81f2-a10f99e33f08 {http,https} \N \N {/s316-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +39e23428-ae1f-4cf7-bb56-ce6f4f08defc 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 9bd52aa4-7158-4d06-81f2-a10f99e33f08 {http,https} \N \N {/s316-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +82da3fbd-0483-41f8-af41-fd3f4c87d071 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 9bd52aa4-7158-4d06-81f2-a10f99e33f08 {http,https} \N \N {/s316-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f1543a8c-08aa-4c3a-bde9-c1cd187e0779 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N b26027f8-6fc2-46c7-aef7-d9cd67fbffe3 {http,https} \N \N {/s317-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +793df1e0-6ab6-4fe9-907c-d18863bbeccf 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N b26027f8-6fc2-46c7-aef7-d9cd67fbffe3 {http,https} \N \N {/s317-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +437f872b-bd08-43f5-b957-169c2148f932 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N b26027f8-6fc2-46c7-aef7-d9cd67fbffe3 {http,https} \N \N {/s317-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a228df4-32da-4fd7-9093-984ddf1a3c70 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N b26027f8-6fc2-46c7-aef7-d9cd67fbffe3 {http,https} \N \N {/s317-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a2121b71-4355-49f9-9102-95339015122d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c00f7722-3c3f-498d-9808-cd4a86007958 {http,https} \N \N {/s318-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8c9b468b-2bdb-4700-b0e1-f798138e79e7 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c00f7722-3c3f-498d-9808-cd4a86007958 {http,https} \N \N {/s318-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3fe8c5d-8307-4885-8654-abcbf4817871 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c00f7722-3c3f-498d-9808-cd4a86007958 {http,https} \N \N {/s318-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba06f51b-4793-408d-8695-3382f4fe7ee1 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c00f7722-3c3f-498d-9808-cd4a86007958 {http,https} \N \N {/s318-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cde5fa67-134f-46b8-93dc-aba56caee17e 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c512e792-661f-4223-bc9d-6a9c059a4a09 {http,https} \N \N {/s319-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1150a88b-b145-42d6-8d45-06d7f0afbcfe 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c512e792-661f-4223-bc9d-6a9c059a4a09 {http,https} \N \N {/s319-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a7ab5648-327f-4203-a4df-5d3c99d5ad19 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c512e792-661f-4223-bc9d-6a9c059a4a09 {http,https} \N \N {/s319-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc17decd-87f7-47ce-b199-6639f4995f01 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N c512e792-661f-4223-bc9d-6a9c059a4a09 {http,https} \N \N {/s319-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b3ee9bb9-f6ec-4e45-a09d-19e3dd69a786 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5f154afd-4a66-4d1a-be2a-15354ad499fa {http,https} \N \N {/s320-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79f14f9b-ffeb-48ef-8827-6e5c1822e974 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5f154afd-4a66-4d1a-be2a-15354ad499fa {http,https} \N \N {/s320-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63c8682f-c030-4621-ae98-85a669e33b8c 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5f154afd-4a66-4d1a-be2a-15354ad499fa {http,https} \N \N {/s320-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ce713b63-fae7-4384-a7c8-305a3bfea60a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5f154afd-4a66-4d1a-be2a-15354ad499fa {http,https} \N \N {/s320-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d8d2ebe1-78c7-40d3-8077-90adbc27feb3 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6226f972-df24-4f54-a21d-e90352622724 {http,https} \N \N {/s321-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0317094-0e83-474b-843f-9870f893c2fb 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6226f972-df24-4f54-a21d-e90352622724 {http,https} \N \N {/s321-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1c79b425-d3be-482b-9bfa-33f6952d3dd1 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6226f972-df24-4f54-a21d-e90352622724 {http,https} \N \N {/s321-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c72a5c27-f8ab-4b26-82b4-2229aa4e9fdd 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6226f972-df24-4f54-a21d-e90352622724 {http,https} \N \N {/s321-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +66f98d94-be19-48bb-9922-c987e915554a 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6337f622-dad3-40f7-9a25-acd776963042 {http,https} \N \N {/s322-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc871827-aa4c-4ad2-89c1-3b6109cf4899 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6337f622-dad3-40f7-9a25-acd776963042 {http,https} \N \N {/s322-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +97d92c9e-7903-4d72-8896-466e0e4072ae 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6337f622-dad3-40f7-9a25-acd776963042 {http,https} \N \N {/s322-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e1b25673-e1a1-45a3-95f5-5b65085e0a54 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6337f622-dad3-40f7-9a25-acd776963042 {http,https} \N \N {/s322-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04de7c11-54f1-4c5d-9383-d9e8f6b44fb1 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f60b096f-1249-4270-80eb-b451330fc934 {http,https} \N \N {/s323-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d318c2c-335b-4327-a803-bd2d3990809c 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f60b096f-1249-4270-80eb-b451330fc934 {http,https} \N \N {/s323-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2d7326f-8b77-4aaa-ade9-c32fa392c14b 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f60b096f-1249-4270-80eb-b451330fc934 {http,https} \N \N {/s323-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3639b575-8aae-4dbe-8b59-d28cfa657bf6 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N f60b096f-1249-4270-80eb-b451330fc934 {http,https} \N \N {/s323-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +198d8756-5382-46bc-bbd0-47e5ad06bc52 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6f477457-1329-4c51-b556-9ab27a341116 {http,https} \N \N {/s324-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1ddd25d8-8b51-47ed-9d18-4aa3464b354e 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6f477457-1329-4c51-b556-9ab27a341116 {http,https} \N \N {/s324-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f513acc-043e-4c75-a0b2-69fe81b8b812 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6f477457-1329-4c51-b556-9ab27a341116 {http,https} \N \N {/s324-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18508143-177a-40da-a5c8-09ecef14a2a5 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 6f477457-1329-4c51-b556-9ab27a341116 {http,https} \N \N {/s324-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a6d3ff8-ae12-4a16-85ce-6100a247d772 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ba259465-73c0-4035-af03-083de17865cd {http,https} \N \N {/s325-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +40227b2c-3f97-4011-b988-221639bf3d48 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ba259465-73c0-4035-af03-083de17865cd {http,https} \N \N {/s325-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3af767f5-9621-4b5f-ac21-0c73acfe9745 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ba259465-73c0-4035-af03-083de17865cd {http,https} \N \N {/s325-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +adda8361-8dca-47de-89e6-e91a4656b4cc 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ba259465-73c0-4035-af03-083de17865cd {http,https} \N \N {/s325-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f67126dc-9d64-4783-9ce4-8362e27ed727 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ad7ba3c6-8d4c-4f5e-9c8b-58b6b7bc2b42 {http,https} \N \N {/s326-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c5a88724-319f-4343-8f85-7309da59a872 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ad7ba3c6-8d4c-4f5e-9c8b-58b6b7bc2b42 {http,https} \N \N {/s326-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1649bdcd-4ac7-4f3f-92b9-f0f66eb2f86f 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ad7ba3c6-8d4c-4f5e-9c8b-58b6b7bc2b42 {http,https} \N \N {/s326-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a92886db-a118-44a4-9f2d-7ba57b0b2738 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N ad7ba3c6-8d4c-4f5e-9c8b-58b6b7bc2b42 {http,https} \N \N {/s326-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +750bdcc4-274b-457d-9168-39a6bc928198 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N a3caefa8-c914-44c0-ab20-e5420eef9025 {http,https} \N \N {/s327-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de3129b4-0c83-4f00-aa2d-7f8287abce50 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N a3caefa8-c914-44c0-ab20-e5420eef9025 {http,https} \N \N {/s327-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +10ef3ef9-6413-44e5-9aef-9291d3e840fe 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N a3caefa8-c914-44c0-ab20-e5420eef9025 {http,https} \N \N {/s327-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +503c8713-668f-4a2d-9f94-9a46e3b5967c 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N a3caefa8-c914-44c0-ab20-e5420eef9025 {http,https} \N \N {/s327-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d6cba0ec-6b78-4d44-9559-01cef7091a1d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N dadc0a91-472d-4792-9b8e-d573a52b9056 {http,https} \N \N {/s328-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fc7c8f9b-b54b-441e-9887-dcb2b9a695d7 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N dadc0a91-472d-4792-9b8e-d573a52b9056 {http,https} \N \N {/s328-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +58c681ca-8422-4499-89ae-24420f7b29ca 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N dadc0a91-472d-4792-9b8e-d573a52b9056 {http,https} \N \N {/s328-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f7bdd6c-b21d-4c17-88d5-9ace430f23aa 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N dadc0a91-472d-4792-9b8e-d573a52b9056 {http,https} \N \N {/s328-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dd4fea37-feb9-48f9-9f2c-93f35cffac45 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8b00c8a1-b680-492a-87eb-350ca72bc616 {http,https} \N \N {/s329-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +754ea9fd-6de2-4197-b05f-71ceb322da23 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8b00c8a1-b680-492a-87eb-350ca72bc616 {http,https} \N \N {/s329-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2ec5d03e-977a-413c-8383-337a5d5f246d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8b00c8a1-b680-492a-87eb-350ca72bc616 {http,https} \N \N {/s329-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f77dddbc-7ae4-46f2-8aa9-c97d2ab68ac6 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 8b00c8a1-b680-492a-87eb-350ca72bc616 {http,https} \N \N {/s329-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +14e35303-2a3a-4356-9396-088d64a291de 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 24fe112c-a8ae-4ee0-9abf-b5d8a8a61f65 {http,https} \N \N {/s330-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +507f239e-efd7-431f-a9cb-6536507e50bb 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 24fe112c-a8ae-4ee0-9abf-b5d8a8a61f65 {http,https} \N \N {/s330-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +febd9dd3-9ed7-4033-b773-f55a43662a35 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 24fe112c-a8ae-4ee0-9abf-b5d8a8a61f65 {http,https} \N \N {/s330-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eac29fc8-3b05-4e07-93ac-d4949d5f3530 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 24fe112c-a8ae-4ee0-9abf-b5d8a8a61f65 {http,https} \N \N {/s330-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5a74f0f-cd5e-4bfe-ba82-f5b9e13ecef3 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 33da5233-b9f0-4d03-964e-10a619eaa459 {http,https} \N \N {/s331-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f9c9cff-5f6f-4cd6-b5f2-1ec0e618500d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 33da5233-b9f0-4d03-964e-10a619eaa459 {http,https} \N \N {/s331-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ccadb9e5-aea4-494a-88f4-e8ecce7d784d 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 33da5233-b9f0-4d03-964e-10a619eaa459 {http,https} \N \N {/s331-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dec88f5c-fcd5-4f43-aae3-4bfa0c7594ce 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 33da5233-b9f0-4d03-964e-10a619eaa459 {http,https} \N \N {/s331-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6324fd00-fa16-49f1-ba13-00debc458046 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0158712b-2d90-482a-8ca0-5c4dfdf19d42 {http,https} \N \N {/s332-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cb240526-52a4-494d-a42d-6a6a69940187 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0158712b-2d90-482a-8ca0-5c4dfdf19d42 {http,https} \N \N {/s332-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3e813626-59d3-4451-8742-932fad93398b 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0158712b-2d90-482a-8ca0-5c4dfdf19d42 {http,https} \N \N {/s332-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e10f9d2b-3688-4733-b20f-9148e630e180 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 0158712b-2d90-482a-8ca0-5c4dfdf19d42 {http,https} \N \N {/s332-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +82e71568-41d7-423e-9ca3-922f02f84408 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 91dbc846-4c2b-48f0-a5a4-651c884f2b5b {http,https} \N \N {/s333-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1d78522a-1f35-4d87-adba-dbc350f2274b 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 91dbc846-4c2b-48f0-a5a4-651c884f2b5b {http,https} \N \N {/s333-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +127c5217-b863-491a-b278-0c2291ccc7f5 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 91dbc846-4c2b-48f0-a5a4-651c884f2b5b {http,https} \N \N {/s333-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +35eafcb0-8512-46d4-aa8f-e173107a1604 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 91dbc846-4c2b-48f0-a5a4-651c884f2b5b {http,https} \N \N {/s333-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a7b427b2-ab87-45d4-bf66-c3c4857dc331 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5a2fb39c-5e8a-42ce-bcbe-a84fa6e4d12d {http,https} \N \N {/s334-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e5759747-a131-4a73-b7f9-a03fa2ae1542 2022-05-26 09:04:31+00 2022-05-26 09:04:31+00 \N 5a2fb39c-5e8a-42ce-bcbe-a84fa6e4d12d {http,https} \N \N {/s334-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +96eaa515-48ba-42cb-b9c9-6448b0dddde2 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5a2fb39c-5e8a-42ce-bcbe-a84fa6e4d12d {http,https} \N \N {/s334-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19096cc7-43da-43c6-9817-8cf391e805c4 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 5a2fb39c-5e8a-42ce-bcbe-a84fa6e4d12d {http,https} \N \N {/s334-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +94a6ef7b-5d4e-4417-902b-e65c02e552fd 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4994d988-d33f-46ae-bec1-f59018f68103 {http,https} \N \N {/s335-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d9382dc-6cca-457a-ab74-3547df4bc9bf 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4994d988-d33f-46ae-bec1-f59018f68103 {http,https} \N \N {/s335-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +64c65c94-5e4f-496b-906c-7612184fb954 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4994d988-d33f-46ae-bec1-f59018f68103 {http,https} \N \N {/s335-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0f5c296c-5db7-493a-beef-c1b94d484c30 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4994d988-d33f-46ae-bec1-f59018f68103 {http,https} \N \N {/s335-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19e0422c-4dc7-4174-b935-fd2774cf6c48 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 3d398236-c1e0-4051-9845-39c6d0d4b547 {http,https} \N \N {/s336-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a725261e-63d1-4f30-a0a9-3dfe9297690f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 3d398236-c1e0-4051-9845-39c6d0d4b547 {http,https} \N \N {/s336-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4434fce-c6da-45d0-9f69-5cb90f2a009b 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 3d398236-c1e0-4051-9845-39c6d0d4b547 {http,https} \N \N {/s336-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6ba3547d-789e-4f0e-92fe-cbe4c76514b9 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 3d398236-c1e0-4051-9845-39c6d0d4b547 {http,https} \N \N {/s336-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d721787a-9a7e-4237-b879-4aa533d4ff28 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2d0e93c-d371-4a4e-a0c8-f30530c873ab {http,https} \N \N {/s337-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a544f08-0d44-41a9-8116-64eb634a3ceb 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2d0e93c-d371-4a4e-a0c8-f30530c873ab {http,https} \N \N {/s337-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9445a380-80c9-494a-86b9-c0e7b34a159e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2d0e93c-d371-4a4e-a0c8-f30530c873ab {http,https} \N \N {/s337-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b0024ab6-3a6f-4385-8112-b563885e71c5 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2d0e93c-d371-4a4e-a0c8-f30530c873ab {http,https} \N \N {/s337-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2ca93712-d2aa-4861-a69c-8cd7e9decc83 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N ecea8625-a170-4648-b363-e132983ebbcf {http,https} \N \N {/s338-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0f5014ca-782c-4f5a-91c6-5c08dbdc4a5c 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N ecea8625-a170-4648-b363-e132983ebbcf {http,https} \N \N {/s338-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dfa56ed7-daee-4551-a413-905d5cd62469 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N ecea8625-a170-4648-b363-e132983ebbcf {http,https} \N \N {/s338-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +483946bc-6626-4d44-a006-87f6ef0741f3 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N ecea8625-a170-4648-b363-e132983ebbcf {http,https} \N \N {/s338-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +606d55cd-f09c-40a9-8308-37046318b700 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N bfb8643d-7f56-4d95-b2a7-cce9f6a75598 {http,https} \N \N {/s339-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +58ee5bf2-860d-4c46-9c99-228b0038ccba 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N bfb8643d-7f56-4d95-b2a7-cce9f6a75598 {http,https} \N \N {/s339-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +517c94e8-f100-448e-ad63-cdfb3ac4b5dd 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N bfb8643d-7f56-4d95-b2a7-cce9f6a75598 {http,https} \N \N {/s339-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cbadd587-dbca-4c78-86e1-6d9da547d827 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N bfb8643d-7f56-4d95-b2a7-cce9f6a75598 {http,https} \N \N {/s339-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e605c81b-cdce-4efa-b181-dc5933eccbda 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 93947ca9-1278-4b68-bf9a-3be07d766959 {http,https} \N \N {/s340-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +52f3205e-aaaf-4c1f-93e2-b9ed8e195cba 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 93947ca9-1278-4b68-bf9a-3be07d766959 {http,https} \N \N {/s340-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9083933c-c9c8-44de-bc93-3ade3cf235b8 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 93947ca9-1278-4b68-bf9a-3be07d766959 {http,https} \N \N {/s340-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +12fcf5fb-fc25-4b3c-a9cd-156c75b713a9 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 93947ca9-1278-4b68-bf9a-3be07d766959 {http,https} \N \N {/s340-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b25cab50-de05-4726-bde6-ac6e23f78ecd 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N b81aaca3-eebf-4445-8bd9-f803b8b54551 {http,https} \N \N {/s341-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8d9ca2e3-c577-4134-86b7-e823e6b73e59 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N b81aaca3-eebf-4445-8bd9-f803b8b54551 {http,https} \N \N {/s341-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2322db41-34c9-412e-a702-002bc316e023 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N b81aaca3-eebf-4445-8bd9-f803b8b54551 {http,https} \N \N {/s341-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5c97e6f9-414c-4377-832d-989bee35377a 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N b81aaca3-eebf-4445-8bd9-f803b8b54551 {http,https} \N \N {/s341-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e518090-3431-424d-94e9-0ce4fed3dc1b 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4f0fe748-796b-413f-a4f5-3cbbe44c27c2 {http,https} \N \N {/s342-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b253cdee-c36a-4b4e-9f82-861acb678fb5 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4f0fe748-796b-413f-a4f5-3cbbe44c27c2 {http,https} \N \N {/s342-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2bfb2f5e-fbff-43ec-9478-9c8d437d8a93 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4f0fe748-796b-413f-a4f5-3cbbe44c27c2 {http,https} \N \N {/s342-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed1b8cde-e815-4aff-8480-434c60b6a024 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4f0fe748-796b-413f-a4f5-3cbbe44c27c2 {http,https} \N \N {/s342-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5ea36b55-e87b-4a9a-8553-ade0b92cc448 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N f406cf4a-75c3-4ccf-8f36-9255b36e0f69 {http,https} \N \N {/s343-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d519436e-ecbd-4214-9c45-571516db2062 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N f406cf4a-75c3-4ccf-8f36-9255b36e0f69 {http,https} \N \N {/s343-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +03abb2da-a99d-41ee-b03e-5cab0c96a0db 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N f406cf4a-75c3-4ccf-8f36-9255b36e0f69 {http,https} \N \N {/s343-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3fb5c8e7-69b6-48ca-8d9e-fe9a5de788a8 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N f406cf4a-75c3-4ccf-8f36-9255b36e0f69 {http,https} \N \N {/s343-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +abaf7bb1-202c-4a1a-939b-57841b2a355d 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2817bf9-36c2-4acf-8de3-4468b149d571 {http,https} \N \N {/s344-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e20351c6-e156-4704-9db5-5cc4b91eb840 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2817bf9-36c2-4acf-8de3-4468b149d571 {http,https} \N \N {/s344-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28ef2b55-4bbb-49fc-a509-95b888799a46 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2817bf9-36c2-4acf-8de3-4468b149d571 {http,https} \N \N {/s344-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7dbe296a-4373-4864-b743-759ea36dccf7 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e2817bf9-36c2-4acf-8de3-4468b149d571 {http,https} \N \N {/s344-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af502028-50bd-4bda-b6d1-3aedd395c5ed 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c3f8cf8e-0683-40bc-aabb-8695dce534a2 {http,https} \N \N {/s345-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2a57c331-b134-41be-86d6-fe41a168f35b 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c3f8cf8e-0683-40bc-aabb-8695dce534a2 {http,https} \N \N {/s345-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7cfca594-2827-4f2f-aef5-1db708a6cdbc 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c3f8cf8e-0683-40bc-aabb-8695dce534a2 {http,https} \N \N {/s345-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a6df4d33-4ddc-4211-8aba-ffc049d0633e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c3f8cf8e-0683-40bc-aabb-8695dce534a2 {http,https} \N \N {/s345-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8b5aa23c-fb9c-4d26-a705-5d50a71d2d4f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N da395198-c4a7-4d67-9e0f-8ea9bd6a72db {http,https} \N \N {/s346-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +41f98379-f615-4b60-a8d3-633a903175d5 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N da395198-c4a7-4d67-9e0f-8ea9bd6a72db {http,https} \N \N {/s346-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a8504c5-a46f-4b1e-9b28-7a9a25fedac7 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N da395198-c4a7-4d67-9e0f-8ea9bd6a72db {http,https} \N \N {/s346-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +86e8e358-7926-4a5a-b9fb-2a7f2ba5d984 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N da395198-c4a7-4d67-9e0f-8ea9bd6a72db {http,https} \N \N {/s346-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +478ff66f-b6ee-4ad2-b7ce-c59a1cea3423 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e5763c8f-13d5-4f01-8ebd-b6db40a89fb0 {http,https} \N \N {/s347-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +70b4c8ac-7ace-4e03-9bbe-d33da69e9b46 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e5763c8f-13d5-4f01-8ebd-b6db40a89fb0 {http,https} \N \N {/s347-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +64329e6f-182a-47dd-ba42-d64150e522a6 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e5763c8f-13d5-4f01-8ebd-b6db40a89fb0 {http,https} \N \N {/s347-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +86de25d5-8059-4b44-96c8-0c283f56e722 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e5763c8f-13d5-4f01-8ebd-b6db40a89fb0 {http,https} \N \N {/s347-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5a45a249-1273-40c6-a277-db604f0ece4e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d84611e-9887-40c6-ab00-01210d1f82b7 {http,https} \N \N {/s348-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +75e39c9b-250a-4877-8535-1334322a8e7f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d84611e-9887-40c6-ab00-01210d1f82b7 {http,https} \N \N {/s348-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a83e5ce3-6f48-4b55-814b-0786efa3f57a 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d84611e-9887-40c6-ab00-01210d1f82b7 {http,https} \N \N {/s348-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9e090bb4-5252-4dac-8440-46393a08b5e3 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d84611e-9887-40c6-ab00-01210d1f82b7 {http,https} \N \N {/s348-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e57a6e5-a00e-4d30-b2f0-4dfe33eb6cce 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c238d775-2523-46fc-8d1a-540fac1f6896 {http,https} \N \N {/s349-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9f7adf82-c336-436b-ad3c-f6ef3717aad0 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c238d775-2523-46fc-8d1a-540fac1f6896 {http,https} \N \N {/s349-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a24d389-8b40-4d59-ac92-75125bf6d4e9 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c238d775-2523-46fc-8d1a-540fac1f6896 {http,https} \N \N {/s349-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +69d769b5-0041-4d8e-8b98-d89d3d5a1a4d 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c238d775-2523-46fc-8d1a-540fac1f6896 {http,https} \N \N {/s349-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e1877bca-7a44-4921-8069-99447c8a6f3f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d915ba2-c858-4732-a9e9-7b21b9d47b27 {http,https} \N \N {/s350-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +89624eec-f60d-4976-8ff8-445e5ac8bc10 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d915ba2-c858-4732-a9e9-7b21b9d47b27 {http,https} \N \N {/s350-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1e18ca64-3817-46bf-aa9d-901f064b43ed 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d915ba2-c858-4732-a9e9-7b21b9d47b27 {http,https} \N \N {/s350-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a0827b4-55b7-4de3-a68c-d1d32352c61b 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 1d915ba2-c858-4732-a9e9-7b21b9d47b27 {http,https} \N \N {/s350-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24428a28-8db0-46c3-a9ba-f613604bfc9b 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 2ddd0eb3-bada-4443-bbfe-5fccde527dca {http,https} \N \N {/s351-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ec8fdc94-187d-42fd-9269-398ee1277e41 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 2ddd0eb3-bada-4443-bbfe-5fccde527dca {http,https} \N \N {/s351-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f7eec7d2-08cb-4080-8257-662e57a049de 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 2ddd0eb3-bada-4443-bbfe-5fccde527dca {http,https} \N \N {/s351-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ebd16e5-1a83-42c9-aaeb-1c6d6a352d6f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 2ddd0eb3-bada-4443-bbfe-5fccde527dca {http,https} \N \N {/s351-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0305af07-edec-4338-9a35-a70610fdc841 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N fb6cc1c1-f874-4ad9-9a62-3b406f948218 {http,https} \N \N {/s352-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ca14ccb8-b0bc-4584-bd0a-8e5bf15e8f71 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N fb6cc1c1-f874-4ad9-9a62-3b406f948218 {http,https} \N \N {/s352-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d35d85fd-46e6-4659-af15-43f4d3223fbe 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N fb6cc1c1-f874-4ad9-9a62-3b406f948218 {http,https} \N \N {/s352-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +25528edd-75fb-48e4-bab0-19c7b9888670 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N fb6cc1c1-f874-4ad9-9a62-3b406f948218 {http,https} \N \N {/s352-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +93cfa9fd-30e8-49ac-a3fa-367e6ab88a20 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N a7946bd4-5a6b-4f56-bbd5-59cf59fbacc3 {http,https} \N \N {/s353-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c6524368-ce3b-42d9-9626-71a1ac6cc0c5 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N a7946bd4-5a6b-4f56-bbd5-59cf59fbacc3 {http,https} \N \N {/s353-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af27ed48-426a-4b69-9f81-8aca7ab95b87 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N a7946bd4-5a6b-4f56-bbd5-59cf59fbacc3 {http,https} \N \N {/s353-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +878cfaaa-1c75-4a7a-9ff7-324df7c8cec1 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N a7946bd4-5a6b-4f56-bbd5-59cf59fbacc3 {http,https} \N \N {/s353-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f8220ab-b3e0-4149-a5a0-9bed6fd0f766 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c2a397d2-8f91-41d8-9158-97dd24955a80 {http,https} \N \N {/s354-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8460ddfe-8f07-4d0d-83ae-c376236ef347 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c2a397d2-8f91-41d8-9158-97dd24955a80 {http,https} \N \N {/s354-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +991e01eb-9fca-4ca8-9ea0-34f3ea2d3d63 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c2a397d2-8f91-41d8-9158-97dd24955a80 {http,https} \N \N {/s354-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +29b09368-8b00-4dd5-8ffe-ee5cfe06c0f3 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N c2a397d2-8f91-41d8-9158-97dd24955a80 {http,https} \N \N {/s354-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +794e1b54-9252-4c31-81b8-e97f7de7954f 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 959074dc-9a50-4bd8-bb49-d0a9333d0477 {http,https} \N \N {/s355-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b399d469-fe06-45d3-83a9-8399da0459c3 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 959074dc-9a50-4bd8-bb49-d0a9333d0477 {http,https} \N \N {/s355-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5edab9de-fd7c-4745-8802-822070cb1b76 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 959074dc-9a50-4bd8-bb49-d0a9333d0477 {http,https} \N \N {/s355-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c3471b7-1ac2-474d-baf8-c0155b3cc954 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 959074dc-9a50-4bd8-bb49-d0a9333d0477 {http,https} \N \N {/s355-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6700d7a1-8329-4a82-a7b0-7c0482f49839 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4fafaa54-d47d-4488-8c56-94be290f38b7 {http,https} \N \N {/s356-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0320b0e9-a314-4daf-be4b-eb1c4554c0ad 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4fafaa54-d47d-4488-8c56-94be290f38b7 {http,https} \N \N {/s356-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fb7c1e9e-e202-4a6d-b295-ab5768d91390 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4fafaa54-d47d-4488-8c56-94be290f38b7 {http,https} \N \N {/s356-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1584e198-4952-4a7c-a7cc-07de52851883 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 4fafaa54-d47d-4488-8c56-94be290f38b7 {http,https} \N \N {/s356-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc766404-5881-4a64-ad32-45dad707ae63 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e9556ed2-8e33-4130-a9b9-fc6c799655fc {http,https} \N \N {/s357-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7460da23-fec2-4276-838d-bc6ccfdcb35e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e9556ed2-8e33-4130-a9b9-fc6c799655fc {http,https} \N \N {/s357-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5fafe87e-a43e-4de6-881c-7f25cc109d10 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e9556ed2-8e33-4130-a9b9-fc6c799655fc {http,https} \N \N {/s357-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +582e3091-8abd-40f7-b3ab-2787b9976b2a 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N e9556ed2-8e33-4130-a9b9-fc6c799655fc {http,https} \N \N {/s357-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1b6fd211-1332-4c07-b7b2-f0c2dfcde27d 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 9a6c8306-cf36-42a6-9117-724b675fd9a2 {http,https} \N \N {/s358-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bfa87303-9222-471e-9d39-7a1d898bd097 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 9a6c8306-cf36-42a6-9117-724b675fd9a2 {http,https} \N \N {/s358-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5ab771a8-5eef-4328-8609-99ae74d8d7c2 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 9a6c8306-cf36-42a6-9117-724b675fd9a2 {http,https} \N \N {/s358-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b7a6f7a6-aa81-4cef-96d2-dec529a94680 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 9a6c8306-cf36-42a6-9117-724b675fd9a2 {http,https} \N \N {/s358-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0080ed1d-ccc1-4f02-b014-dd3a92ac964e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N af36e2ce-968f-4143-926c-34f5827a2319 {http,https} \N \N {/s359-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ad1e84ac-bc9b-4ab1-a954-afebdc7d5907 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N af36e2ce-968f-4143-926c-34f5827a2319 {http,https} \N \N {/s359-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a10dd6fb-af73-467b-bcc4-869186049cc6 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N af36e2ce-968f-4143-926c-34f5827a2319 {http,https} \N \N {/s359-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc92bade-6f80-4cd0-95f4-1eaf4bfc93a6 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N af36e2ce-968f-4143-926c-34f5827a2319 {http,https} \N \N {/s359-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +07335b05-d85c-45be-a16c-5760a077318b 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 59a3ea50-4f62-4ce2-ad54-8d72abe1ec68 {http,https} \N \N {/s360-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4c892d67-7d8c-4879-93fd-c2bcd7a69271 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 59a3ea50-4f62-4ce2-ad54-8d72abe1ec68 {http,https} \N \N {/s360-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f415709-c4bd-42fb-b916-224f1bb4ee56 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 59a3ea50-4f62-4ce2-ad54-8d72abe1ec68 {http,https} \N \N {/s360-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +000ad825-d106-4ba3-93c8-424338479452 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 59a3ea50-4f62-4ce2-ad54-8d72abe1ec68 {http,https} \N \N {/s360-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5479f8b8-d617-47cd-93c5-ea9c7581a07e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 45cc6295-8cfc-4e44-b124-0d05c04cdd3e {http,https} \N \N {/s361-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9498812b-b58b-4250-94f1-694faebd104c 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 45cc6295-8cfc-4e44-b124-0d05c04cdd3e {http,https} \N \N {/s361-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0e8c019f-1d59-43a1-8e02-b9be646649f1 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 45cc6295-8cfc-4e44-b124-0d05c04cdd3e {http,https} \N \N {/s361-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +72d8cdb5-6f7b-48c9-8a82-eedf0fa5479d 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 45cc6295-8cfc-4e44-b124-0d05c04cdd3e {http,https} \N \N {/s361-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c67e2369-5ff1-40a4-92ba-a63a49d57130 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 8b3db5a2-f3c4-4d2b-b60e-55c3f0d42960 {http,https} \N \N {/s362-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b1566411-b1ff-4055-b8d4-9f274ca268eb 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 8b3db5a2-f3c4-4d2b-b60e-55c3f0d42960 {http,https} \N \N {/s362-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +54f335c0-bc32-4fa9-8929-1c6dccb13d36 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 8b3db5a2-f3c4-4d2b-b60e-55c3f0d42960 {http,https} \N \N {/s362-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7fa94e74-d93b-42b8-ace1-95d5526737df 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 8b3db5a2-f3c4-4d2b-b60e-55c3f0d42960 {http,https} \N \N {/s362-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cc2cfc87-6cd6-4a9c-82af-110aecc7001e 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 809b0fa5-91fe-4f0b-bfa4-1b17ca92647f {http,https} \N \N {/s363-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4709f82-2569-4d4c-a4c9-b3ceeccf6689 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 809b0fa5-91fe-4f0b-bfa4-1b17ca92647f {http,https} \N \N {/s363-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +edcd51f1-9374-49a8-ac8e-ab96a9f249cb 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 809b0fa5-91fe-4f0b-bfa4-1b17ca92647f {http,https} \N \N {/s363-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4f5a5ff5-8ea4-4e02-8ba9-5742fd50e171 2022-05-26 09:04:32+00 2022-05-26 09:04:32+00 \N 809b0fa5-91fe-4f0b-bfa4-1b17ca92647f {http,https} \N \N {/s363-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ae992988-c221-4d56-b3ee-928d7cda0762 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c75cdbd1-8145-48ae-8097-d6ce0ee3d383 {http,https} \N \N {/s364-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ea622405-967e-4c78-bdd1-4547c57aa585 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c75cdbd1-8145-48ae-8097-d6ce0ee3d383 {http,https} \N \N {/s364-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c7fc5f78-b09c-4c74-bd4e-ff12f57bebc8 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c75cdbd1-8145-48ae-8097-d6ce0ee3d383 {http,https} \N \N {/s364-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6e1f0b6c-5c92-4d9e-a468-510ea095dc98 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c75cdbd1-8145-48ae-8097-d6ce0ee3d383 {http,https} \N \N {/s364-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a9ef3f1e-7b53-482d-b4ff-2fdd4c06652c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N e238e1f2-7acb-4caf-a7b9-4abc165b2f78 {http,https} \N \N {/s365-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8af2c3ca-8d5b-4ddb-9ae9-627fe6003eb7 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N e238e1f2-7acb-4caf-a7b9-4abc165b2f78 {http,https} \N \N {/s365-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3297507a-c132-4dc6-afc0-522dac9f4800 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N e238e1f2-7acb-4caf-a7b9-4abc165b2f78 {http,https} \N \N {/s365-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1ddc042c-07c8-4789-9845-85c75efa01dd 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N e238e1f2-7acb-4caf-a7b9-4abc165b2f78 {http,https} \N \N {/s365-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3cc542c4-4412-4796-bddb-83f17634ba53 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 579dd648-5a51-4240-9901-d59ea046dbe4 {http,https} \N \N {/s366-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +329b4835-c874-4fc3-ac09-ab231af047dc 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 579dd648-5a51-4240-9901-d59ea046dbe4 {http,https} \N \N {/s366-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9a0fccd8-69ba-433e-ba8d-523307a4cc74 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 579dd648-5a51-4240-9901-d59ea046dbe4 {http,https} \N \N {/s366-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e04ee641-8b42-4049-8251-d5c5232028b7 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 579dd648-5a51-4240-9901-d59ea046dbe4 {http,https} \N \N {/s366-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +97d3baf7-99fe-46ad-a9ad-594b44ccd95c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 363e3fd7-2510-4b88-8b61-19c6a701a154 {http,https} \N \N {/s367-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c2c78b0c-5593-467d-803f-d81a08e52009 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 363e3fd7-2510-4b88-8b61-19c6a701a154 {http,https} \N \N {/s367-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +51d4c327-304b-4082-acda-ec921b2f0452 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 363e3fd7-2510-4b88-8b61-19c6a701a154 {http,https} \N \N {/s367-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +af0cc7e6-6754-45df-9398-858ec4b6374b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 363e3fd7-2510-4b88-8b61-19c6a701a154 {http,https} \N \N {/s367-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +51656063-1fd6-4352-851c-3d3fdce5f89b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 6bfe7e94-4211-492f-a9db-a6c81dd6f547 {http,https} \N \N {/s368-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5467cdd0-7125-4043-be60-f219600c161b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 6bfe7e94-4211-492f-a9db-a6c81dd6f547 {http,https} \N \N {/s368-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f0a47c4-bbde-4c79-9277-eeb8d6572ef9 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 6bfe7e94-4211-492f-a9db-a6c81dd6f547 {http,https} \N \N {/s368-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc6edc7c-3bcb-456e-a059-e6df5a1dd33a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 6bfe7e94-4211-492f-a9db-a6c81dd6f547 {http,https} \N \N {/s368-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c454e2c3-b89f-447b-9ba5-373d57a15b13 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 614a1279-a381-4be2-acef-301958e89071 {http,https} \N \N {/s369-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cda42f89-9974-4193-8a36-05532d921f5c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 614a1279-a381-4be2-acef-301958e89071 {http,https} \N \N {/s369-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +315e9356-356c-4fb1-9c90-24f7036d918a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 614a1279-a381-4be2-acef-301958e89071 {http,https} \N \N {/s369-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d5d61b12-65fb-40f9-8f6d-1a0f2a2d5d3b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 614a1279-a381-4be2-acef-301958e89071 {http,https} \N \N {/s369-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +221875af-ce48-49bd-9221-3041ed8b2c84 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3861f439-875f-453b-8651-03d9359f5788 {http,https} \N \N {/s370-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8d6f924b-ac52-4b3f-9125-a82d6ced70ff 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3861f439-875f-453b-8651-03d9359f5788 {http,https} \N \N {/s370-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +77aec436-9027-467b-9173-542650d94bba 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3861f439-875f-453b-8651-03d9359f5788 {http,https} \N \N {/s370-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +61e5fbf8-5f7e-4d2c-ab9d-e3c04e78d006 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3861f439-875f-453b-8651-03d9359f5788 {http,https} \N \N {/s370-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f76d3d9-7ad2-4b50-b9db-79d2dbf488c7 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 0663d4a9-d9d4-4d92-ab92-8ecae04c5440 {http,https} \N \N {/s371-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +939a8636-faeb-438f-9db7-3602974a6863 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 0663d4a9-d9d4-4d92-ab92-8ecae04c5440 {http,https} \N \N {/s371-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7f12304e-0c34-4598-94d5-efe0798f705a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 0663d4a9-d9d4-4d92-ab92-8ecae04c5440 {http,https} \N \N {/s371-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f8a345b6-9917-411d-ad6d-e3e30387b9dc 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 0663d4a9-d9d4-4d92-ab92-8ecae04c5440 {http,https} \N \N {/s371-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +413e7132-1858-41d9-ad19-d3c6fcf9cc8a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 00a04a0e-8a61-497e-a1b7-555d9edebd3c {http,https} \N \N {/s372-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +236a1762-301b-4970-aad7-42db64186ce2 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 00a04a0e-8a61-497e-a1b7-555d9edebd3c {http,https} \N \N {/s372-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1766c248-137a-4c64-917b-947cc9beed45 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 00a04a0e-8a61-497e-a1b7-555d9edebd3c {http,https} \N \N {/s372-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +da45a0a2-a908-4513-a48b-e802b87306fa 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 00a04a0e-8a61-497e-a1b7-555d9edebd3c {http,https} \N \N {/s372-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +61773a20-69d3-4493-be5a-28c141aa0d1e 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a90836ba-dcb3-4f3f-bf2c-02bc1d5f7453 {http,https} \N \N {/s373-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6862d7e7-6c8a-4a59-bc83-c12c67c58957 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a90836ba-dcb3-4f3f-bf2c-02bc1d5f7453 {http,https} \N \N {/s373-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2c68df09-0ba1-4d91-9503-b013453e457a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a90836ba-dcb3-4f3f-bf2c-02bc1d5f7453 {http,https} \N \N {/s373-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc03b311-d66f-4cf5-b822-d8455ba367e3 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a90836ba-dcb3-4f3f-bf2c-02bc1d5f7453 {http,https} \N \N {/s373-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de5dbba9-6119-483e-987c-fca0597b20cf 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 001879e3-9e6a-49e1-8893-9bfa1ed0662f {http,https} \N \N {/s374-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79ab012b-7a07-481e-af00-3e06f1f1f01c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 001879e3-9e6a-49e1-8893-9bfa1ed0662f {http,https} \N \N {/s374-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6785d5f2-2915-4610-9ea4-d82c01cd5f56 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 001879e3-9e6a-49e1-8893-9bfa1ed0662f {http,https} \N \N {/s374-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +648cd88c-5683-4638-bfb4-0e486bed189b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 001879e3-9e6a-49e1-8893-9bfa1ed0662f {http,https} \N \N {/s374-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +84052b2e-d59b-43b2-aaec-7fbd9f994cca 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3b864315-4410-47c4-8d1f-41340443be83 {http,https} \N \N {/s375-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dfd5a62a-1225-4492-a107-5bcdb41b0156 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3b864315-4410-47c4-8d1f-41340443be83 {http,https} \N \N {/s375-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +11603845-42ab-429c-b7c2-1a9f41626e4b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3b864315-4410-47c4-8d1f-41340443be83 {http,https} \N \N {/s375-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc441c3f-d83d-4b49-bc91-db810eb363df 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3b864315-4410-47c4-8d1f-41340443be83 {http,https} \N \N {/s375-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6ad602ad-561f-4f7d-bfe5-fa790ce6a140 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N da92e9da-c205-44a5-8e55-6cabab24e221 {http,https} \N \N {/s376-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bfcc5bbd-046f-4dfb-8ea1-7fbbd0424ca8 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N da92e9da-c205-44a5-8e55-6cabab24e221 {http,https} \N \N {/s376-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f98604e-a592-4420-b50d-7e3441327f39 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N da92e9da-c205-44a5-8e55-6cabab24e221 {http,https} \N \N {/s376-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +086aedad-4995-404b-bf04-79afc201db86 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N da92e9da-c205-44a5-8e55-6cabab24e221 {http,https} \N \N {/s376-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6b566f60-9397-4951-9408-44f3b041d709 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N ec7a7ee9-84ef-4e7e-86dc-6c1ea5db4019 {http,https} \N \N {/s377-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b9f69b21-4680-4dd6-b8d7-d29fcdd3d066 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N ec7a7ee9-84ef-4e7e-86dc-6c1ea5db4019 {http,https} \N \N {/s377-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4ccd11ff-72de-4ceb-8011-83e4d93575b8 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N ec7a7ee9-84ef-4e7e-86dc-6c1ea5db4019 {http,https} \N \N {/s377-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8990d95f-7246-45c8-ab26-d82f8e0b770c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N ec7a7ee9-84ef-4e7e-86dc-6c1ea5db4019 {http,https} \N \N {/s377-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f54a0c19-68fd-4523-9223-eb355b652ba2 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N de23c01f-138f-4b4f-b077-7966e5301849 {http,https} \N \N {/s378-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22d2cc42-2fd1-44b9-bda6-4f18d81c4c69 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N de23c01f-138f-4b4f-b077-7966e5301849 {http,https} \N \N {/s378-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8987a4e8-880e-45e9-a3f3-eb169357c337 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N de23c01f-138f-4b4f-b077-7966e5301849 {http,https} \N \N {/s378-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +80a62322-1d0c-48bf-b529-858c3dfce1a9 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N de23c01f-138f-4b4f-b077-7966e5301849 {http,https} \N \N {/s378-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4af060f3-0c41-420e-8848-e19c64c4f68f 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2231820c-c6c6-4b43-8030-60d84ec840df {http,https} \N \N {/s379-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7160fc2f-ede7-4559-89d4-6fe1a346cdd7 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2231820c-c6c6-4b43-8030-60d84ec840df {http,https} \N \N {/s379-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7444991e-be0a-49e5-966e-af21ed179cd9 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2231820c-c6c6-4b43-8030-60d84ec840df {http,https} \N \N {/s379-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f37b85d-318b-42a0-a2e2-18f3a9487bf0 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2231820c-c6c6-4b43-8030-60d84ec840df {http,https} \N \N {/s379-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +952b4c5c-a71d-49ad-becd-3033f7703e18 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 962b06e6-2702-4267-b103-b352f6b842a4 {http,https} \N \N {/s380-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2bed3e4-72ae-49a1-9263-a729dfb5b028 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 962b06e6-2702-4267-b103-b352f6b842a4 {http,https} \N \N {/s380-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +85f3b168-600e-405a-b66b-ac2cfb321a81 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 962b06e6-2702-4267-b103-b352f6b842a4 {http,https} \N \N {/s380-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +75cdeb50-abb0-4af0-872c-bafbf0c5a51a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 962b06e6-2702-4267-b103-b352f6b842a4 {http,https} \N \N {/s380-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5213a1c8-19c7-444e-913c-42dfc02a09d0 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 63bfee6a-6d44-4301-9cee-df0105f24f5e {http,https} \N \N {/s381-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +91e485c1-8fda-4a50-b1be-eda59a22fdc9 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 63bfee6a-6d44-4301-9cee-df0105f24f5e {http,https} \N \N {/s381-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c1a188ed-50c2-41ce-92de-d3831e736f71 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 63bfee6a-6d44-4301-9cee-df0105f24f5e {http,https} \N \N {/s381-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1dcfafc0-0ced-4655-aa29-1efd22877b90 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 63bfee6a-6d44-4301-9cee-df0105f24f5e {http,https} \N \N {/s381-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +55d057c2-be1d-477b-a075-cb1bed856b8d 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c6a5a31e-2c88-47c4-8e9a-c60bece7ef75 {http,https} \N \N {/s382-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bd0377bd-ef7d-41eb-a086-2984063615a3 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c6a5a31e-2c88-47c4-8e9a-c60bece7ef75 {http,https} \N \N {/s382-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +58903e6e-39b8-494c-b871-ea65c3aa5fb9 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c6a5a31e-2c88-47c4-8e9a-c60bece7ef75 {http,https} \N \N {/s382-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +59f9b2e4-6dc6-476d-98b4-435519bb3953 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N c6a5a31e-2c88-47c4-8e9a-c60bece7ef75 {http,https} \N \N {/s382-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e388a1c-cc25-4156-ab6d-d94900121cb1 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2d096abd-ffb0-4143-96a4-7779218d6d4f {http,https} \N \N {/s383-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e465856b-aa77-4837-9ef3-4f3789960415 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2d096abd-ffb0-4143-96a4-7779218d6d4f {http,https} \N \N {/s383-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8870b0c2-6b31-4f3d-a09a-e8afb622a1bf 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2d096abd-ffb0-4143-96a4-7779218d6d4f {http,https} \N \N {/s383-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +985749b3-89f2-40bd-ac5a-fdbba81ebfd3 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 2d096abd-ffb0-4143-96a4-7779218d6d4f {http,https} \N \N {/s383-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1c1992eb-be64-4f77-aadb-9f2464687003 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a10741c9-4ed7-422d-9f52-54c17c4bbd8b {http,https} \N \N {/s384-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28bc0bf3-b497-4694-adf4-221e8c32fa50 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a10741c9-4ed7-422d-9f52-54c17c4bbd8b {http,https} \N \N {/s384-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0f6e5eb8-f2f9-4596-8dc6-d5798fbfcf17 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a10741c9-4ed7-422d-9f52-54c17c4bbd8b {http,https} \N \N {/s384-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c97b2ca4-3ed8-4bc5-b9e8-a0c964c62140 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a10741c9-4ed7-422d-9f52-54c17c4bbd8b {http,https} \N \N {/s384-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +47fcf675-d1d9-49cd-91e6-5319a9868edb 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 234c48dd-9af4-4099-80ff-40ad13f89401 {http,https} \N \N {/s385-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +558293de-13ea-42cc-b124-dc89484f8916 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 234c48dd-9af4-4099-80ff-40ad13f89401 {http,https} \N \N {/s385-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +807fc65e-8053-4b45-9a2c-11358a86b215 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 234c48dd-9af4-4099-80ff-40ad13f89401 {http,https} \N \N {/s385-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de177505-cc95-424a-9848-e72f78b7e110 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 234c48dd-9af4-4099-80ff-40ad13f89401 {http,https} \N \N {/s385-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a821d074-d659-40af-8c2d-9366c9c6ff31 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N bb5d6545-d507-4b3a-ba24-bb510c914e95 {http,https} \N \N {/s386-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba20cb2d-25b7-4176-a6cf-da9395baec5b 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N bb5d6545-d507-4b3a-ba24-bb510c914e95 {http,https} \N \N {/s386-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +41460742-9989-43a7-a5f4-4bd454a02955 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N bb5d6545-d507-4b3a-ba24-bb510c914e95 {http,https} \N \N {/s386-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c822b82c-79c3-42f9-ae1b-f83a03fc1049 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N bb5d6545-d507-4b3a-ba24-bb510c914e95 {http,https} \N \N {/s386-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +26d19423-642f-46c6-9160-62801b6619da 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 28f712ea-c08c-4e7a-8cf9-4b13e36ff212 {http,https} \N \N {/s387-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c4430fb6-cb22-4f3a-845d-b5f5f003f289 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 28f712ea-c08c-4e7a-8cf9-4b13e36ff212 {http,https} \N \N {/s387-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +164f2566-d220-4140-84bc-3c66ff8e7cbd 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 28f712ea-c08c-4e7a-8cf9-4b13e36ff212 {http,https} \N \N {/s387-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a524151-86f9-42e5-933d-405065d4afd3 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 28f712ea-c08c-4e7a-8cf9-4b13e36ff212 {http,https} \N \N {/s387-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e1ad3f70-d9cb-4bd7-9270-b7920adc4b7a 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 152a5d0e-dc5a-44d9-af10-8ec63701dd3b {http,https} \N \N {/s388-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +33b555ad-42cb-4c55-8f0f-8da3a1ce5f9f 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 152a5d0e-dc5a-44d9-af10-8ec63701dd3b {http,https} \N \N {/s388-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9ddcbe4-12d3-4a16-8c74-6aa16052471c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 152a5d0e-dc5a-44d9-af10-8ec63701dd3b {http,https} \N \N {/s388-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4abc74ac-517c-47b3-9d56-f674a30936de 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 152a5d0e-dc5a-44d9-af10-8ec63701dd3b {http,https} \N \N {/s388-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b42fa17b-9260-464b-a19b-98299f7a0ea4 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 93857261-5bcb-47aa-9144-22b35b135d4b {http,https} \N \N {/s389-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b71c5ee8-da34-4fd1-ba89-60a80f125c9c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 93857261-5bcb-47aa-9144-22b35b135d4b {http,https} \N \N {/s389-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ff3c9019-b6f6-4085-997b-a2fcefed7e6d 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 93857261-5bcb-47aa-9144-22b35b135d4b {http,https} \N \N {/s389-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c082c36-8d43-4286-82c8-1f4bb9ec059c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 93857261-5bcb-47aa-9144-22b35b135d4b {http,https} \N \N {/s389-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5b00f8b-9254-41d8-82bb-25137f5c6da9 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 111f99da-d06d-4cb3-b864-8f3e1f49aa74 {http,https} \N \N {/s390-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c740728-2ed9-436c-9862-685c2a4e8a25 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 111f99da-d06d-4cb3-b864-8f3e1f49aa74 {http,https} \N \N {/s390-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0cd81876-c603-43bd-85cb-02a03a3ad133 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 111f99da-d06d-4cb3-b864-8f3e1f49aa74 {http,https} \N \N {/s390-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be46714f-b556-4bb2-921d-f1d9987003ca 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 111f99da-d06d-4cb3-b864-8f3e1f49aa74 {http,https} \N \N {/s390-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f58d8f45-788f-4b3a-9f03-a3083fba70fa 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3924e923-d2f1-4275-8747-bd11ac4f74d3 {http,https} \N \N {/s391-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ec9e067-61d3-4020-b7c1-9be001df4d9c 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3924e923-d2f1-4275-8747-bd11ac4f74d3 {http,https} \N \N {/s391-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d0c7488b-2fe5-4084-ac74-de4688c18b44 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3924e923-d2f1-4275-8747-bd11ac4f74d3 {http,https} \N \N {/s391-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +200bf282-ca7a-47a1-9345-ec0e38175963 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N 3924e923-d2f1-4275-8747-bd11ac4f74d3 {http,https} \N \N {/s391-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3adb743f-2d77-46ec-84dc-2d0003b50d5f 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a73038fe-4577-4639-a479-767f244244c3 {http,https} \N \N {/s392-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22a08988-6063-4eee-bf9e-1b3e8aeeeb37 2022-05-26 09:04:33+00 2022-05-26 09:04:33+00 \N a73038fe-4577-4639-a479-767f244244c3 {http,https} \N \N {/s392-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b8598f0b-f3b5-4806-b6fd-7c3e590d8775 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N a73038fe-4577-4639-a479-767f244244c3 {http,https} \N \N {/s392-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2bb6a9b6-6da4-4b97-8cd0-b55ea0a031fc 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N a73038fe-4577-4639-a479-767f244244c3 {http,https} \N \N {/s392-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +436b0418-1a0c-4314-9b1e-b92b5268ac2d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 4a062dd6-f1c2-4b36-ac1d-998925eb0b83 {http,https} \N \N {/s393-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a87ff715-320b-4f9a-a1c3-6e4f73e050d3 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 4a062dd6-f1c2-4b36-ac1d-998925eb0b83 {http,https} \N \N {/s393-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ca7d52dc-bfb7-42f3-95e7-837e002d7a8c 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 4a062dd6-f1c2-4b36-ac1d-998925eb0b83 {http,https} \N \N {/s393-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9416e2cc-af41-4618-b366-844246114c14 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 4a062dd6-f1c2-4b36-ac1d-998925eb0b83 {http,https} \N \N {/s393-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +88efc63a-aaef-4ba5-a7e4-ad7e8d0c3b26 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8c475290-e87c-4711-a6ac-d2dc4028fad6 {http,https} \N \N {/s394-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7a788b39-3ef4-4627-ba39-823ce3b3135e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8c475290-e87c-4711-a6ac-d2dc4028fad6 {http,https} \N \N {/s394-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d9a329b4-59e1-4d94-8c50-331df0da25e2 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8c475290-e87c-4711-a6ac-d2dc4028fad6 {http,https} \N \N {/s394-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2f331ace-1d1b-4068-b543-a67043408803 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8c475290-e87c-4711-a6ac-d2dc4028fad6 {http,https} \N \N {/s394-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eefd9468-e6b6-4f30-be8a-77e2da8d3c9f 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8cec9caf-f09c-4e50-ab29-a23009c77cb7 {http,https} \N \N {/s395-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5adb33b8-3ec9-4c38-b64a-e7db42204bdf 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8cec9caf-f09c-4e50-ab29-a23009c77cb7 {http,https} \N \N {/s395-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b0ee32c5-5e4f-43b5-aee6-77eb539e4961 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8cec9caf-f09c-4e50-ab29-a23009c77cb7 {http,https} \N \N {/s395-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +95c9a80f-5ab6-4364-8ca7-ec3080743b49 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 8cec9caf-f09c-4e50-ab29-a23009c77cb7 {http,https} \N \N {/s395-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +deea16af-e5df-47aa-a869-414656ee2d30 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3a1b190c-0930-4404-bee0-eca6c7621114 {http,https} \N \N {/s396-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ef7b4a9f-4ba5-408c-81b7-47ae27350a82 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3a1b190c-0930-4404-bee0-eca6c7621114 {http,https} \N \N {/s396-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a8f75c71-0778-4453-8514-27df41e14a3b 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3a1b190c-0930-4404-bee0-eca6c7621114 {http,https} \N \N {/s396-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +08b777bf-d125-429b-8d28-48e909bf7f4b 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3a1b190c-0930-4404-bee0-eca6c7621114 {http,https} \N \N {/s396-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28ab6b88-5d8e-4859-b882-9e82a00f460c 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N ccb26ed5-9dd0-46b3-8cb5-3584782c9d06 {http,https} \N \N {/s397-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be3158c6-d0e2-45b9-928f-f0d96aa0867e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N ccb26ed5-9dd0-46b3-8cb5-3584782c9d06 {http,https} \N \N {/s397-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4bec0e71-22e6-4959-accb-e4e2019f392f 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N ccb26ed5-9dd0-46b3-8cb5-3584782c9d06 {http,https} \N \N {/s397-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a539a7c1-ce69-4d1e-b467-33fd3d68b514 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N ccb26ed5-9dd0-46b3-8cb5-3584782c9d06 {http,https} \N \N {/s397-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8bbbf888-17b3-4862-a1fd-9aa2063f6383 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6bce2b2a-c6a0-4463-9dfc-bd9366f62b3a {http,https} \N \N {/s398-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +62a54ead-af8e-4e0d-b316-e2ecf13627b9 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6bce2b2a-c6a0-4463-9dfc-bd9366f62b3a {http,https} \N \N {/s398-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +925c217c-669b-4111-8985-008e61aff1d4 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6bce2b2a-c6a0-4463-9dfc-bd9366f62b3a {http,https} \N \N {/s398-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +27ee97d0-2dc6-4cab-a807-6d96645e467e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6bce2b2a-c6a0-4463-9dfc-bd9366f62b3a {http,https} \N \N {/s398-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d2e96e0-1a59-4290-92c6-cb1c8798aef1 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 050c4646-3958-40b1-92f3-2a7979732b5b {http,https} \N \N {/s399-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a696295f-4a96-4414-b113-a81d63435f8d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 050c4646-3958-40b1-92f3-2a7979732b5b {http,https} \N \N {/s399-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +36121b59-fcfb-4a14-8d31-ac9931afbdd5 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 050c4646-3958-40b1-92f3-2a7979732b5b {http,https} \N \N {/s399-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e8472a7d-4b68-40c7-9b60-41bccc7a189a 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 050c4646-3958-40b1-92f3-2a7979732b5b {http,https} \N \N {/s399-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ad4944e-0971-4fbd-85ac-4ea55a56e14f 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N dfc084df-46cb-4a7e-b89c-b84ae3634ed3 {http,https} \N \N {/s400-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +658db0dc-6b0d-4559-9f6c-57d70b7792b2 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N dfc084df-46cb-4a7e-b89c-b84ae3634ed3 {http,https} \N \N {/s400-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +04a523c4-1983-47be-a1ab-b9ad0cb558e9 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N dfc084df-46cb-4a7e-b89c-b84ae3634ed3 {http,https} \N \N {/s400-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d7a17d3f-b2d2-4d98-836d-8a07bbfdf567 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N dfc084df-46cb-4a7e-b89c-b84ae3634ed3 {http,https} \N \N {/s400-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +01f3f0ed-6b5c-46e2-9ecc-c63b5614179d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5c96e4e4-bd3c-458a-aecb-70a0e97258d6 {http,https} \N \N {/s401-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +383e7800-07aa-4b13-9017-c7ecf8f75732 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5c96e4e4-bd3c-458a-aecb-70a0e97258d6 {http,https} \N \N {/s401-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b50a2a4a-5e12-47a5-a60e-ea0da37a2f3d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5c96e4e4-bd3c-458a-aecb-70a0e97258d6 {http,https} \N \N {/s401-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8378a247-4321-4fa1-8d57-106eb3639f8f 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 5c96e4e4-bd3c-458a-aecb-70a0e97258d6 {http,https} \N \N {/s401-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5cd832f9-aa54-47b8-a52e-73e69a0e1718 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 643ed9d5-7abd-498c-aa27-e54406f62657 {http,https} \N \N {/s402-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2ba96167-2daa-413c-9b07-f9833307fa67 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 643ed9d5-7abd-498c-aa27-e54406f62657 {http,https} \N \N {/s402-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +75c4eb2d-3511-4e86-9892-096bbde16d13 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 643ed9d5-7abd-498c-aa27-e54406f62657 {http,https} \N \N {/s402-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +58874cf9-0216-4378-af62-dc7de48a36b8 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 643ed9d5-7abd-498c-aa27-e54406f62657 {http,https} \N \N {/s402-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cce66afe-de5b-4247-a04f-e464f62ed3d7 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3b43313b-92e3-4a71-89b9-5c94e508ffa4 {http,https} \N \N {/s403-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6859a3a2-9ea5-423c-bf5c-6d9ac7355791 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3b43313b-92e3-4a71-89b9-5c94e508ffa4 {http,https} \N \N {/s403-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +52b0f641-c655-47d1-84e0-5ba8e8751e93 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3b43313b-92e3-4a71-89b9-5c94e508ffa4 {http,https} \N \N {/s403-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ceacde02-edfb-4ae8-b4d5-10bc70de61d0 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 3b43313b-92e3-4a71-89b9-5c94e508ffa4 {http,https} \N \N {/s403-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7156e88a-d9d1-4315-9e1d-5c87a062eccf 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d1f25d2e-1765-431d-b8ce-c971848c140b {http,https} \N \N {/s404-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4dad8fd6-92f0-4661-bb90-98389477dd7d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d1f25d2e-1765-431d-b8ce-c971848c140b {http,https} \N \N {/s404-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +810fc05e-9ca1-4950-ba8d-a09b39187270 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d1f25d2e-1765-431d-b8ce-c971848c140b {http,https} \N \N {/s404-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aad96b96-b873-48f5-a8a3-1e6124df6216 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d1f25d2e-1765-431d-b8ce-c971848c140b {http,https} \N \N {/s404-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aa1f89cc-75a8-4a7b-8591-f3ba7c13529e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N a986ba78-0f21-4714-98af-030c39a99d98 {http,https} \N \N {/s405-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f4b35db-1ab1-4866-8712-086f8e6a2fec 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N a986ba78-0f21-4714-98af-030c39a99d98 {http,https} \N \N {/s405-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ccbcb619-83b4-4951-a41a-9e20ae65e251 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N a986ba78-0f21-4714-98af-030c39a99d98 {http,https} \N \N {/s405-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +08654641-6d0c-44b2-9c3c-5682b4bb1340 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N a986ba78-0f21-4714-98af-030c39a99d98 {http,https} \N \N {/s405-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +79a35cda-0cc2-418b-94ad-95dc57e1b093 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 186d8c4f-7240-47be-baec-da9793982cfe {http,https} \N \N {/s406-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9351be75-b763-44e2-9dde-c912c4e179f0 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 186d8c4f-7240-47be-baec-da9793982cfe {http,https} \N \N {/s406-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b1473c31-579d-4868-b517-22b046e8503d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 186d8c4f-7240-47be-baec-da9793982cfe {http,https} \N \N {/s406-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b75a16d6-56a1-46b0-b96a-b765f4350017 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 186d8c4f-7240-47be-baec-da9793982cfe {http,https} \N \N {/s406-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +97fb40c7-904c-4193-9be7-1abe23532019 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 29eb0b4a-38c1-44e3-a342-a738f884bdb8 {http,https} \N \N {/s407-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31220fad-7d79-49a6-bb67-2e941dfd3cd0 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 29eb0b4a-38c1-44e3-a342-a738f884bdb8 {http,https} \N \N {/s407-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +53eb5882-367d-45ef-a7e5-440116bb92f8 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 29eb0b4a-38c1-44e3-a342-a738f884bdb8 {http,https} \N \N {/s407-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9bb107a2-7a71-488c-a15c-9177eb47cd45 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 29eb0b4a-38c1-44e3-a342-a738f884bdb8 {http,https} \N \N {/s407-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cce5650f-ebcf-4398-a62e-16ed830104a8 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d6344072-d70a-419e-b400-f792fd7816a6 {http,https} \N \N {/s408-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +59d3a177-9f2d-4565-9a77-bfefcf96c164 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d6344072-d70a-419e-b400-f792fd7816a6 {http,https} \N \N {/s408-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a50c6467-7fb9-463a-a78e-5b02dde0a523 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d6344072-d70a-419e-b400-f792fd7816a6 {http,https} \N \N {/s408-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dcb58a4a-dc96-4a4b-9ff5-eb56fb81664e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d6344072-d70a-419e-b400-f792fd7816a6 {http,https} \N \N {/s408-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +67cd080f-6a50-41c7-bb3e-5774a3929944 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 65dbc1e9-8bf0-4494-b3e7-c6b6445d805f {http,https} \N \N {/s409-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a69e23c8-6161-41e4-8cd3-cc06b1ff2607 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 65dbc1e9-8bf0-4494-b3e7-c6b6445d805f {http,https} \N \N {/s409-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3ac795e6-ed24-498e-b72c-574e0ca1df09 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 65dbc1e9-8bf0-4494-b3e7-c6b6445d805f {http,https} \N \N {/s409-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a88aef7-b902-4783-ad97-513428000f05 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 65dbc1e9-8bf0-4494-b3e7-c6b6445d805f {http,https} \N \N {/s409-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ca7ccc60-1ce1-42ea-9743-32e2cac6d156 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 82e159a7-b83d-4eb9-9228-26eea20c0301 {http,https} \N \N {/s410-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +85f63859-375e-409c-a720-da75a13aaa26 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 82e159a7-b83d-4eb9-9228-26eea20c0301 {http,https} \N \N {/s410-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1eb10b28-b23b-4140-8e6b-065df19fc5e6 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 82e159a7-b83d-4eb9-9228-26eea20c0301 {http,https} \N \N {/s410-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2fcc0d8-73f4-441f-ad80-3cf1b67420e4 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 82e159a7-b83d-4eb9-9228-26eea20c0301 {http,https} \N \N {/s410-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +25020e19-af27-4047-9818-3b9ccf3f8d94 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 85cab86c-ef60-4b00-ab3a-83649782cbdc {http,https} \N \N {/s411-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ace35e0e-e5b0-42e8-a2d4-44cd4f6be88b 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 85cab86c-ef60-4b00-ab3a-83649782cbdc {http,https} \N \N {/s411-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2d9665e4-118d-4b7d-b402-92bf81971dbe 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 85cab86c-ef60-4b00-ab3a-83649782cbdc {http,https} \N \N {/s411-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b6d6b10f-87e1-4e17-b945-74f98c071448 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 85cab86c-ef60-4b00-ab3a-83649782cbdc {http,https} \N \N {/s411-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5840fd00-3446-43ab-bad9-e5f306bfd1fd 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6d8a4447-dba8-40c4-8fa3-9ea447aa4431 {http,https} \N \N {/s412-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2d6812b-9cee-4238-a979-97cb70f88e5a 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6d8a4447-dba8-40c4-8fa3-9ea447aa4431 {http,https} \N \N {/s412-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +81327c65-dbe9-499b-9c87-a4bf8d7e1af3 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6d8a4447-dba8-40c4-8fa3-9ea447aa4431 {http,https} \N \N {/s412-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cd75f2c7-e8f4-4ace-9d06-816214d24dd2 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 6d8a4447-dba8-40c4-8fa3-9ea447aa4431 {http,https} \N \N {/s412-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +56da08be-da5f-43b0-a57d-39c1c307bb99 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 297aa958-dd8d-4838-8658-21c7a2f6a45c {http,https} \N \N {/s413-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b204232-7211-441c-9092-095417c7f065 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 297aa958-dd8d-4838-8658-21c7a2f6a45c {http,https} \N \N {/s413-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6eeadf66-273b-4782-a45d-549367043e38 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 297aa958-dd8d-4838-8658-21c7a2f6a45c {http,https} \N \N {/s413-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ac9d5b89-eae8-4f56-a14e-e4aa3cf0131d 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 297aa958-dd8d-4838-8658-21c7a2f6a45c {http,https} \N \N {/s413-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1b844bea-9033-4cb1-a2c6-634820fc8567 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 516d1b3c-20ec-4abe-9d05-7c10f45cc2b7 {http,https} \N \N {/s414-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +461dfe4a-61f0-495b-86a7-8abb9e916648 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 516d1b3c-20ec-4abe-9d05-7c10f45cc2b7 {http,https} \N \N {/s414-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +589265b9-2632-4803-9468-1c493ac14ca1 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 516d1b3c-20ec-4abe-9d05-7c10f45cc2b7 {http,https} \N \N {/s414-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +88caa8a6-bffe-435b-8ee8-b13c57ec33d3 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 516d1b3c-20ec-4abe-9d05-7c10f45cc2b7 {http,https} \N \N {/s414-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bffd14fc-2aff-47ad-8329-0b031c57a7b6 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N c2cfb252-5288-4b94-b4a8-79a8d86e6c7c {http,https} \N \N {/s415-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6cf6f30f-a166-46ca-b420-b4e42ead43ef 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N c2cfb252-5288-4b94-b4a8-79a8d86e6c7c {http,https} \N \N {/s415-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4826ce43-fd72-4290-8f46-cf9079a64a9f 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N c2cfb252-5288-4b94-b4a8-79a8d86e6c7c {http,https} \N \N {/s415-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0b5c2a84-bbf9-45ed-8c3d-1e6c35b5b9b5 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N c2cfb252-5288-4b94-b4a8-79a8d86e6c7c {http,https} \N \N {/s415-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3be50a21-5eac-4560-84bf-35f16456257e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d32ddeef-adf4-43e5-b533-d6218f89194e {http,https} \N \N {/s416-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2d1f7635-e80d-4a5c-ad59-754df502b60e 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d32ddeef-adf4-43e5-b533-d6218f89194e {http,https} \N \N {/s416-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83b4f771-9ac8-432f-be0b-cf7c5a233ad2 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d32ddeef-adf4-43e5-b533-d6218f89194e {http,https} \N \N {/s416-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fe612456-09ef-4714-a074-3c36de689640 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d32ddeef-adf4-43e5-b533-d6218f89194e {http,https} \N \N {/s416-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aad96364-6f16-4578-8419-c52d08be4016 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d735e2a6-44ce-421b-8041-dbeac83b0388 {http,https} \N \N {/s417-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +37affbe9-c9f0-42da-801f-9af9480b5a36 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d735e2a6-44ce-421b-8041-dbeac83b0388 {http,https} \N \N {/s417-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a88dc384-982b-4a2c-9700-5bea758a85c9 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d735e2a6-44ce-421b-8041-dbeac83b0388 {http,https} \N \N {/s417-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a201d66f-a0fe-4f24-8f8e-55fccb90eb25 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N d735e2a6-44ce-421b-8041-dbeac83b0388 {http,https} \N \N {/s417-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a011f41-d99a-4836-8251-a0cec458068a 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 2f34b698-bdc6-4a34-8568-54e2051c301e {http,https} \N \N {/s418-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e4dad1df-04b0-4424-8fbe-53cf792ca530 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 2f34b698-bdc6-4a34-8568-54e2051c301e {http,https} \N \N {/s418-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +27e08bdf-b6f2-4ff0-9dfd-988504c11433 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 2f34b698-bdc6-4a34-8568-54e2051c301e {http,https} \N \N {/s418-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b036ee57-36c2-49f1-a891-8220081f59b2 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 2f34b698-bdc6-4a34-8568-54e2051c301e {http,https} \N \N {/s418-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dba746b6-4d8b-4409-a15f-ae105f8026d7 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 1f25c2c5-b997-474a-82c0-2dfe225b38f7 {http,https} \N \N {/s419-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1bf6a5c3-ee00-4360-b6eb-001a12606257 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 1f25c2c5-b997-474a-82c0-2dfe225b38f7 {http,https} \N \N {/s419-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c0da6fdb-0e2f-47dc-8bb4-783b40b8bf72 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 1f25c2c5-b997-474a-82c0-2dfe225b38f7 {http,https} \N \N {/s419-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c0c748a3-e6bc-4f94-bcbd-26bd0b618c12 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 1f25c2c5-b997-474a-82c0-2dfe225b38f7 {http,https} \N \N {/s419-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +25094cba-976c-462d-8390-050eecf804b2 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 409a0334-ad83-4abe-92bf-9f86cee8e629 {http,https} \N \N {/s420-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7d875813-49ed-48dd-bb45-95d895ca75dc 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 409a0334-ad83-4abe-92bf-9f86cee8e629 {http,https} \N \N {/s420-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a9c3865-8bf4-42d0-8aec-705dfd492387 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 409a0334-ad83-4abe-92bf-9f86cee8e629 {http,https} \N \N {/s420-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d3efc16-1557-486c-a580-f1405863b379 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 409a0334-ad83-4abe-92bf-9f86cee8e629 {http,https} \N \N {/s420-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +685ef39a-44c3-4ff3-a80f-8aede0d29716 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 21a86be9-f740-47d6-aef6-ea678179d442 {http,https} \N \N {/s421-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +42b9812d-1e90-4173-91fe-b5644dc092e1 2022-05-26 09:04:34+00 2022-05-26 09:04:34+00 \N 21a86be9-f740-47d6-aef6-ea678179d442 {http,https} \N \N {/s421-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +862e1cc2-612c-4983-9398-e31d24a74769 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 21a86be9-f740-47d6-aef6-ea678179d442 {http,https} \N \N {/s421-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31eb93b2-8cbf-4b74-9b40-2042c7ff1d4a 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 21a86be9-f740-47d6-aef6-ea678179d442 {http,https} \N \N {/s421-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e246e51f-3229-4a29-9591-35c9aedc356d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dc85040e-5868-4e67-99ae-ae2a83870651 {http,https} \N \N {/s422-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9e975049-6e6c-46b3-8bd9-a8fbdf47b77e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dc85040e-5868-4e67-99ae-ae2a83870651 {http,https} \N \N {/s422-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6003dc95-e8af-43c6-a916-108476ee2294 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dc85040e-5868-4e67-99ae-ae2a83870651 {http,https} \N \N {/s422-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a3af20e5-798e-40ce-a257-e2a3bc9601f0 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dc85040e-5868-4e67-99ae-ae2a83870651 {http,https} \N \N {/s422-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +796f20e9-9fee-4a38-9ed3-3f878dac9b09 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 83f56af1-9785-4627-8682-5d9f40d9e567 {http,https} \N \N {/s423-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ce65c939-d17b-4abf-ac74-c04354726e3c 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 83f56af1-9785-4627-8682-5d9f40d9e567 {http,https} \N \N {/s423-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3df3e212-70a4-4f03-a487-572fd89c5b9d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 83f56af1-9785-4627-8682-5d9f40d9e567 {http,https} \N \N {/s423-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9281a796-531f-4f56-8e2b-e82ad80f6ab4 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 83f56af1-9785-4627-8682-5d9f40d9e567 {http,https} \N \N {/s423-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f4178e3d-327c-4d18-9705-98327d29fb4d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b8670494-46f7-4ac6-a67b-92662a89eabb {http,https} \N \N {/s424-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9b193f7e-3e1f-47ce-81cb-baa11abad8ea 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b8670494-46f7-4ac6-a67b-92662a89eabb {http,https} \N \N {/s424-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5040e3e7-b96c-4ff0-8aaa-2dae06704791 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b8670494-46f7-4ac6-a67b-92662a89eabb {http,https} \N \N {/s424-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +68ba6e34-a781-4a8b-882e-03fac53367f0 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b8670494-46f7-4ac6-a67b-92662a89eabb {http,https} \N \N {/s424-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +332a858f-f03c-4230-83e8-ef08961739f2 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cb4d87c3-1fb7-4b16-8094-eed4a3d00968 {http,https} \N \N {/s425-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63e6bf30-2271-4d34-aac3-ad36fb6a4a24 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cb4d87c3-1fb7-4b16-8094-eed4a3d00968 {http,https} \N \N {/s425-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ce5b9cdc-4973-41bc-9b31-34cabf0a6669 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cb4d87c3-1fb7-4b16-8094-eed4a3d00968 {http,https} \N \N {/s425-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b68588d8-d53c-4392-8611-94ab67eacc14 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cb4d87c3-1fb7-4b16-8094-eed4a3d00968 {http,https} \N \N {/s425-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f2108d5-5006-483f-98c0-ea742be4e801 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 106044fb-fc87-41f6-9e71-3faffe47e00b {http,https} \N \N {/s426-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed520698-3eb3-49b7-807d-d398e8c386f5 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 106044fb-fc87-41f6-9e71-3faffe47e00b {http,https} \N \N {/s426-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bfcb594c-3473-41ae-92aa-949571895fdf 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 106044fb-fc87-41f6-9e71-3faffe47e00b {http,https} \N \N {/s426-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +602701ea-004a-440f-8b32-0de658928841 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 106044fb-fc87-41f6-9e71-3faffe47e00b {http,https} \N \N {/s426-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +44779b09-653d-43fb-977a-ab86d3bedb55 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N a88fd1e2-7344-47b5-a7b8-9bd716f94c5d {http,https} \N \N {/s427-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9cbabfe0-14c9-44bf-8380-9d21ce4e8c78 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N a88fd1e2-7344-47b5-a7b8-9bd716f94c5d {http,https} \N \N {/s427-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a898c036-f030-4347-b629-5d26221d2807 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N a88fd1e2-7344-47b5-a7b8-9bd716f94c5d {http,https} \N \N {/s427-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddb74d4c-be57-4411-83d6-a6f9b593bf5d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N a88fd1e2-7344-47b5-a7b8-9bd716f94c5d {http,https} \N \N {/s427-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3dd511df-0974-4fa4-812b-d617d0aa4e7b 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 53f91d1f-e644-4040-bb9c-009b94cdb8e8 {http,https} \N \N {/s428-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +73058d2b-ceef-486a-8e20-53287ebe6b97 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 53f91d1f-e644-4040-bb9c-009b94cdb8e8 {http,https} \N \N {/s428-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +16a20100-ef5a-4412-b1e6-7bdb520fd215 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 53f91d1f-e644-4040-bb9c-009b94cdb8e8 {http,https} \N \N {/s428-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d22c3097-4d54-4e65-a3ff-e422785ea684 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 53f91d1f-e644-4040-bb9c-009b94cdb8e8 {http,https} \N \N {/s428-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +baec13c8-483c-47eb-9412-5003efcf5560 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dd07fe79-a01b-4e7e-b0d7-2556523cb39e {http,https} \N \N {/s429-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0d48392-1ee3-442d-956b-4e1be1bfb2ea 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dd07fe79-a01b-4e7e-b0d7-2556523cb39e {http,https} \N \N {/s429-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +928a6194-6852-444c-8321-6679bc4d116f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dd07fe79-a01b-4e7e-b0d7-2556523cb39e {http,https} \N \N {/s429-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aa93e1d0-2e0e-4f62-9bb7-979e28c18105 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N dd07fe79-a01b-4e7e-b0d7-2556523cb39e {http,https} \N \N {/s429-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +64bde6f9-51c5-4e41-817f-d1c55f5f65cb 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b2faf9ae-52e2-4dae-a484-7e9978de7057 {http,https} \N \N {/s430-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de4e4f36-bc95-4fd1-954f-4a239a006a0f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b2faf9ae-52e2-4dae-a484-7e9978de7057 {http,https} \N \N {/s430-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +035f23a4-99bc-48b6-934e-273cbeb4c4c3 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b2faf9ae-52e2-4dae-a484-7e9978de7057 {http,https} \N \N {/s430-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d96f636c-6524-48d1-94c3-cb08066fddb7 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N b2faf9ae-52e2-4dae-a484-7e9978de7057 {http,https} \N \N {/s430-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22f8a8a0-fc47-4b1d-9c43-cda860699f25 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 587584bd-581c-4ec6-90a4-4196ebe3e639 {http,https} \N \N {/s431-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f35e1eb-6957-48c2-8b9d-e67189a74e29 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 587584bd-581c-4ec6-90a4-4196ebe3e639 {http,https} \N \N {/s431-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +699001c3-4b00-43c7-a34e-4c1efa3f910b 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 587584bd-581c-4ec6-90a4-4196ebe3e639 {http,https} \N \N {/s431-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c9bd1d4c-bd11-409b-9991-de547fa66154 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 587584bd-581c-4ec6-90a4-4196ebe3e639 {http,https} \N \N {/s431-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +629efa23-6418-428c-9232-056dae0f8a8f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c1e06d08-f053-4e2f-98cb-dfe2b4523fc8 {http,https} \N \N {/s432-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9c8aeeb6-88fd-4512-97a2-b1344be5c973 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c1e06d08-f053-4e2f-98cb-dfe2b4523fc8 {http,https} \N \N {/s432-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d08ec189-3c74-48b0-93ef-a6f37a1bf514 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c1e06d08-f053-4e2f-98cb-dfe2b4523fc8 {http,https} \N \N {/s432-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a5e88bd-38cd-46dc-b77c-995a49f1c0fc 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c1e06d08-f053-4e2f-98cb-dfe2b4523fc8 {http,https} \N \N {/s432-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b4522141-769c-463e-b461-34a464626121 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N ce17ffbe-39d4-4bba-badd-3fd6a51a909b {http,https} \N \N {/s433-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a42961ef-d801-4810-9521-c0e5b00d39fd 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N ce17ffbe-39d4-4bba-badd-3fd6a51a909b {http,https} \N \N {/s433-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a83f503-9745-474b-a1e8-a323ab9111ff 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N ce17ffbe-39d4-4bba-badd-3fd6a51a909b {http,https} \N \N {/s433-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2fa6dc93-4a07-426d-abe9-57ab379ac1be 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N ce17ffbe-39d4-4bba-badd-3fd6a51a909b {http,https} \N \N {/s433-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fe5e88e8-cda5-41ad-af58-514648c3fb53 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N df0f28b8-833d-4962-9750-0e2c7dcf1aef {http,https} \N \N {/s434-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0ccffa33-9e36-46be-a1e1-95703d57c087 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N df0f28b8-833d-4962-9750-0e2c7dcf1aef {http,https} \N \N {/s434-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3897b977-24b3-4d61-aeb7-5da41eea369f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N df0f28b8-833d-4962-9750-0e2c7dcf1aef {http,https} \N \N {/s434-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d3964655-3562-449c-a996-188d928e4416 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N df0f28b8-833d-4962-9750-0e2c7dcf1aef {http,https} \N \N {/s434-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +95226f06-eaa4-4eb5-b0e2-97446f6eaf10 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 42463594-07f9-463b-8d3d-e640679cf9a0 {http,https} \N \N {/s435-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4b35e94a-4a4f-42ff-b535-87a2c952f8f9 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 42463594-07f9-463b-8d3d-e640679cf9a0 {http,https} \N \N {/s435-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +de996ae3-1009-4904-b43f-a8c0719eb142 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 42463594-07f9-463b-8d3d-e640679cf9a0 {http,https} \N \N {/s435-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c29cd9ce-c6df-4966-b9d9-3113cba54214 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 42463594-07f9-463b-8d3d-e640679cf9a0 {http,https} \N \N {/s435-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ac266bff-33ea-4308-98ee-3feffbf0c68d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8dc13325-56ce-4b86-bd36-b090b0f6caab {http,https} \N \N {/s436-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d96be58d-b781-4fe9-aa94-cce5025d99d1 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8dc13325-56ce-4b86-bd36-b090b0f6caab {http,https} \N \N {/s436-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f82a40d3-42fd-45ad-bb65-5d2518933867 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8dc13325-56ce-4b86-bd36-b090b0f6caab {http,https} \N \N {/s436-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c60a482b-ce4e-45f2-a927-f92bf18fbb0e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8dc13325-56ce-4b86-bd36-b090b0f6caab {http,https} \N \N {/s436-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f4b22302-a261-4a49-ba01-82de71cb8f1f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c629d453-a5a6-431f-8f90-9b27722a415a {http,https} \N \N {/s437-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2e9e6753-7e85-41fd-8d1f-9adb3928d74f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c629d453-a5a6-431f-8f90-9b27722a415a {http,https} \N \N {/s437-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1dc1dbe7-a85c-4a9f-90bd-8d65c484021f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c629d453-a5a6-431f-8f90-9b27722a415a {http,https} \N \N {/s437-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fc73c2b0-4025-4f15-83fb-6dc460aa2f7e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c629d453-a5a6-431f-8f90-9b27722a415a {http,https} \N \N {/s437-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9e369f00-4fc8-4576-a55f-ae12f08a9dfa 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c265592f-8adf-4f8c-bb4f-1b4a984dc600 {http,https} \N \N {/s438-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b2dff9b6-1050-4831-aff0-a556b5f3dfc9 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c265592f-8adf-4f8c-bb4f-1b4a984dc600 {http,https} \N \N {/s438-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b874a1d4-7d08-4c7b-bf16-d7388c0000dc 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c265592f-8adf-4f8c-bb4f-1b4a984dc600 {http,https} \N \N {/s438-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +037fdcd7-d5af-4e8e-a79b-0282ff6720fb 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c265592f-8adf-4f8c-bb4f-1b4a984dc600 {http,https} \N \N {/s438-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ef456973-296b-4562-8e2e-5cf6fd081f6d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N bbfadf44-58fe-4693-9f6b-f1897ad92eb6 {http,https} \N \N {/s439-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +441cf7fb-a81c-44de-b667-2cd0b0e4ec83 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N bbfadf44-58fe-4693-9f6b-f1897ad92eb6 {http,https} \N \N {/s439-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1b04ac64-689f-43f1-9466-3157ac0f0a95 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N bbfadf44-58fe-4693-9f6b-f1897ad92eb6 {http,https} \N \N {/s439-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f8d12639-4bc3-4d83-a10d-501c0ea50549 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N bbfadf44-58fe-4693-9f6b-f1897ad92eb6 {http,https} \N \N {/s439-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +30a2db7d-800f-4719-8562-168dc1286507 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 515bf1e2-6b17-448a-ad26-6276526a88c2 {http,https} \N \N {/s440-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +845b106b-35b7-48f5-875c-e384c6f6b67e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 515bf1e2-6b17-448a-ad26-6276526a88c2 {http,https} \N \N {/s440-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +27955626-cbbc-42bd-815b-02e0234af5a8 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 515bf1e2-6b17-448a-ad26-6276526a88c2 {http,https} \N \N {/s440-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bda33765-6241-4fed-b4d7-b633ce66428f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 515bf1e2-6b17-448a-ad26-6276526a88c2 {http,https} \N \N {/s440-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +eb478595-1abe-4bc9-885f-042cf6130695 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 4f1086b3-8849-4d42-a9fb-5395f1cb573f {http,https} \N \N {/s441-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +aabb4603-89c3-4e74-b1ba-35c3db96b301 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 4f1086b3-8849-4d42-a9fb-5395f1cb573f {http,https} \N \N {/s441-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e28134da-413b-450c-a399-87a783ce54ae 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 4f1086b3-8849-4d42-a9fb-5395f1cb573f {http,https} \N \N {/s441-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7302f741-b7c4-428c-85f2-3b1c47203038 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 4f1086b3-8849-4d42-a9fb-5395f1cb573f {http,https} \N \N {/s441-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a02b0fe6-a210-4190-8ec7-e056824aa9d0 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N d0e54e7a-8475-44f5-af06-0852acc18ada {http,https} \N \N {/s442-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e100cd5-ee9e-4f65-b059-5ae366597489 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N d0e54e7a-8475-44f5-af06-0852acc18ada {http,https} \N \N {/s442-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8df16482-225a-4078-81fa-dad84e01abc4 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N d0e54e7a-8475-44f5-af06-0852acc18ada {http,https} \N \N {/s442-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +35cd220d-170f-42ed-a7ff-c69afcc9bf50 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N d0e54e7a-8475-44f5-af06-0852acc18ada {http,https} \N \N {/s442-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2005f03c-633c-47b1-a600-d074ac298f1d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cedaaa13-f4a0-4aa1-86bd-29f20d10cb17 {http,https} \N \N {/s443-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +63e91ee0-15fe-4538-8b7d-f10744a01e85 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cedaaa13-f4a0-4aa1-86bd-29f20d10cb17 {http,https} \N \N {/s443-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a42d4d9-6676-4b9b-9500-6f9eb4a9450e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cedaaa13-f4a0-4aa1-86bd-29f20d10cb17 {http,https} \N \N {/s443-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c772d39-7359-4978-aac2-efa3e9266682 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N cedaaa13-f4a0-4aa1-86bd-29f20d10cb17 {http,https} \N \N {/s443-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0a2a695a-b01b-4105-89a8-46dc8936cc92 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N af2095eb-cb46-45e8-8e62-23c528e8451c {http,https} \N \N {/s444-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5dca14c8-a7b0-4944-b7f7-08ffaaf9ca84 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N af2095eb-cb46-45e8-8e62-23c528e8451c {http,https} \N \N {/s444-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +39518705-d1ee-4023-b9c5-1bf33d9cfd6a 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N af2095eb-cb46-45e8-8e62-23c528e8451c {http,https} \N \N {/s444-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +acf1ec7f-8f26-4733-9d8b-599a71f0748b 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N af2095eb-cb46-45e8-8e62-23c528e8451c {http,https} \N \N {/s444-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cbc05dd0-bea4-4a26-a13e-34c90f60c3db 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 39f8b870-e4a7-4f7c-93ba-7354ffdc3b7a {http,https} \N \N {/s445-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e97f6a04-5013-4d19-85af-d9bb2304e9b7 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 39f8b870-e4a7-4f7c-93ba-7354ffdc3b7a {http,https} \N \N {/s445-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d63846ed-e5c6-4141-acf1-2fb001179132 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 39f8b870-e4a7-4f7c-93ba-7354ffdc3b7a {http,https} \N \N {/s445-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3bf553f4-1aea-44f6-b75a-0ddcd8e4994e 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 39f8b870-e4a7-4f7c-93ba-7354ffdc3b7a {http,https} \N \N {/s445-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +693f2f3a-0157-4896-948c-d964c4fe7d63 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8b196676-5e99-4ffb-9cf7-e59dd42c9b61 {http,https} \N \N {/s446-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a6f8a21-e961-4362-9394-d0ed942b768f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8b196676-5e99-4ffb-9cf7-e59dd42c9b61 {http,https} \N \N {/s446-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +18859324-0c22-40f3-8c10-d3d9c8b6aeb9 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8b196676-5e99-4ffb-9cf7-e59dd42c9b61 {http,https} \N \N {/s446-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4bf7f1a5-5102-48bc-a4de-89fe1fb6d450 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 8b196676-5e99-4ffb-9cf7-e59dd42c9b61 {http,https} \N \N {/s446-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +716db20a-f3e6-4c4e-a3ec-39b98c272af5 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 3ed2e405-1166-499d-84ca-abf27c4420d6 {http,https} \N \N {/s447-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +92ee91d3-befa-4eea-8f02-a6659f9bbe50 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 3ed2e405-1166-499d-84ca-abf27c4420d6 {http,https} \N \N {/s447-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c79bbbe1-a759-45fe-9c43-c05981da2b52 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 3ed2e405-1166-499d-84ca-abf27c4420d6 {http,https} \N \N {/s447-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a23b9326-baac-4524-bafd-cf431f8acf92 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 3ed2e405-1166-499d-84ca-abf27c4420d6 {http,https} \N \N {/s447-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ea7be992-3302-4778-b897-82fab2848357 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 6e94f9f7-f322-4be2-a6e3-25220b00d9f6 {http,https} \N \N {/s448-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7d0f8aee-48aa-416b-b844-1324475985b2 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 6e94f9f7-f322-4be2-a6e3-25220b00d9f6 {http,https} \N \N {/s448-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a3ab15b6-a233-4720-b0ce-18f5d52f616d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 6e94f9f7-f322-4be2-a6e3-25220b00d9f6 {http,https} \N \N {/s448-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +982884e2-8b41-442f-9520-7b5c7bfbc734 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 6e94f9f7-f322-4be2-a6e3-25220b00d9f6 {http,https} \N \N {/s448-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1299cf5e-49fe-4346-815e-f355b5c47a2f 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 2ee7b426-001c-4f81-a4b9-f5f6e94dacd9 {http,https} \N \N {/s449-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3743842-c6ff-464e-9876-5f4f09826103 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 2ee7b426-001c-4f81-a4b9-f5f6e94dacd9 {http,https} \N \N {/s449-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4d3e31d6-54c9-4457-a9fa-42d1d798d474 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 2ee7b426-001c-4f81-a4b9-f5f6e94dacd9 {http,https} \N \N {/s449-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5cc5a134-3225-4ffe-9e54-cb108db54ff9 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 2ee7b426-001c-4f81-a4b9-f5f6e94dacd9 {http,https} \N \N {/s449-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +74a99ab8-12cf-42ef-98ae-bab2200d712d 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c235ddd9-4a8b-4ed4-996d-f32d97c2febf {http,https} \N \N {/s450-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7b6edd61-322c-4014-b0eb-ba31540657d3 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c235ddd9-4a8b-4ed4-996d-f32d97c2febf {http,https} \N \N {/s450-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f5c4836-3803-4015-9df3-d4701d9da5f5 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c235ddd9-4a8b-4ed4-996d-f32d97c2febf {http,https} \N \N {/s450-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e9069f5-1f20-4b38-9a10-61bf35aa17b2 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N c235ddd9-4a8b-4ed4-996d-f32d97c2febf {http,https} \N \N {/s450-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d5391c92-a824-48d8-acb5-afb842d854d4 2022-05-26 09:04:35+00 2022-05-26 09:04:35+00 \N 3443f990-ed97-482a-b60d-f9a4fae6dce7 {http,https} \N \N {/s451-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e674c13d-c97b-40ad-912b-0b3ddbafbc1b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3443f990-ed97-482a-b60d-f9a4fae6dce7 {http,https} \N \N {/s451-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b168028b-8819-4141-8ed7-840efb851df0 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3443f990-ed97-482a-b60d-f9a4fae6dce7 {http,https} \N \N {/s451-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +459abb4f-1140-44e4-8155-03a2031b3f0c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3443f990-ed97-482a-b60d-f9a4fae6dce7 {http,https} \N \N {/s451-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a15175ec-ed00-4bc7-a9f1-feda48fa738e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N bf3887ae-ebac-4278-aa88-b211be9a6ef4 {http,https} \N \N {/s452-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2b703033-8e5c-40f9-aca8-f3482b927a07 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N bf3887ae-ebac-4278-aa88-b211be9a6ef4 {http,https} \N \N {/s452-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +362732aa-8820-46f1-ad5a-11088daf1d95 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N bf3887ae-ebac-4278-aa88-b211be9a6ef4 {http,https} \N \N {/s452-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4067a1b-a7de-4444-bb97-d3f20f9d922e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N bf3887ae-ebac-4278-aa88-b211be9a6ef4 {http,https} \N \N {/s452-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1828cabb-c68f-493f-b289-e03040fb5bca 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5db483a-11d5-4fb7-b977-ddb1b55b6923 {http,https} \N \N {/s453-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e2121668-7f21-4951-81a0-315e7104858c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5db483a-11d5-4fb7-b977-ddb1b55b6923 {http,https} \N \N {/s453-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f900b38-e6e0-419f-87cb-dc18ef0fc407 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5db483a-11d5-4fb7-b977-ddb1b55b6923 {http,https} \N \N {/s453-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e0e09eaa-0951-4d65-b0bb-43076d4d659e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5db483a-11d5-4fb7-b977-ddb1b55b6923 {http,https} \N \N {/s453-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cfc3836f-6a6e-4b12-8b40-872258301b4a 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7560adfa-0d51-42e6-b727-78821e9404f8 {http,https} \N \N {/s454-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c75d182b-0b2e-450e-ae09-213438cd85aa 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7560adfa-0d51-42e6-b727-78821e9404f8 {http,https} \N \N {/s454-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +24d8a298-f52e-4f92-8a0d-b8804c489376 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7560adfa-0d51-42e6-b727-78821e9404f8 {http,https} \N \N {/s454-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83ca008b-c45f-40fc-a7e3-76e161eebb31 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7560adfa-0d51-42e6-b727-78821e9404f8 {http,https} \N \N {/s454-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7b5bb779-02ea-446d-97d7-31d60246df94 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N efe7075c-0084-4620-976d-57dcbaf3893b {http,https} \N \N {/s455-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a3a831ec-aab7-4f9c-910b-2baf43fffceb 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N efe7075c-0084-4620-976d-57dcbaf3893b {http,https} \N \N {/s455-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d80258d8-4588-41ad-8d2e-b092e995f875 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N efe7075c-0084-4620-976d-57dcbaf3893b {http,https} \N \N {/s455-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fb82fc75-0533-4801-8826-d9ef4c07b9fa 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N efe7075c-0084-4620-976d-57dcbaf3893b {http,https} \N \N {/s455-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b5f48d1e-4613-42d3-adc0-3917b542dc8c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f062ee0d-1d60-4ac5-bf80-fad59a54306f {http,https} \N \N {/s456-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +fc84f22c-9877-4151-866e-4611f73aba61 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f062ee0d-1d60-4ac5-bf80-fad59a54306f {http,https} \N \N {/s456-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9eb2fb93-7229-4f2d-b719-0ea3ae35732e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f062ee0d-1d60-4ac5-bf80-fad59a54306f {http,https} \N \N {/s456-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b9205cd6-7d62-498e-a7e4-934491693c89 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f062ee0d-1d60-4ac5-bf80-fad59a54306f {http,https} \N \N {/s456-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5e72d25-7288-4835-bb58-b9b46844e186 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 838a3bbf-b6e9-4174-9e2f-4c5903f85b51 {http,https} \N \N {/s457-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c058491d-f008-4be7-b154-c2080f177cdf 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 838a3bbf-b6e9-4174-9e2f-4c5903f85b51 {http,https} \N \N {/s457-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +75dc36cc-8f3b-4130-a3f9-d7c75704107f 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 838a3bbf-b6e9-4174-9e2f-4c5903f85b51 {http,https} \N \N {/s457-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1e37f25f-37e4-493a-9401-0f11e083923d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 838a3bbf-b6e9-4174-9e2f-4c5903f85b51 {http,https} \N \N {/s457-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9ef8a655-ac65-46e8-ab96-98a5ca2d687b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1813a575-32ba-4c94-99a5-19295b0921de {http,https} \N \N {/s458-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +21a0ed20-8689-42d8-b1bc-3d949638ffc7 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1813a575-32ba-4c94-99a5-19295b0921de {http,https} \N \N {/s458-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +880c58b3-ea22-4f40-9e81-98b5ba83f64d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1813a575-32ba-4c94-99a5-19295b0921de {http,https} \N \N {/s458-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22d3e5b0-d209-4248-ad44-5e8308287366 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1813a575-32ba-4c94-99a5-19295b0921de {http,https} \N \N {/s458-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0bac6e77-a2ed-48f8-a22e-47289c607c67 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7aff390f-97f8-4e64-9b95-c85a9002c33c {http,https} \N \N {/s459-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31e10549-c69a-4a12-8fee-ec0980eff22d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7aff390f-97f8-4e64-9b95-c85a9002c33c {http,https} \N \N {/s459-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1157895c-0bc6-4e8e-aca8-3cacfb38a2e3 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7aff390f-97f8-4e64-9b95-c85a9002c33c {http,https} \N \N {/s459-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ed80a6be-75c3-40a7-9260-e37b02953e21 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7aff390f-97f8-4e64-9b95-c85a9002c33c {http,https} \N \N {/s459-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +11fa8193-b685-4daa-818f-050e1ee78a94 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c6298096-10b7-441c-9688-4695b88a8660 {http,https} \N \N {/s460-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3487f8a1-8c7d-43a1-8841-0bcdba3367cf 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c6298096-10b7-441c-9688-4695b88a8660 {http,https} \N \N {/s460-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8d19797e-fdaf-4506-ac6e-9e0f4ee38b2e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c6298096-10b7-441c-9688-4695b88a8660 {http,https} \N \N {/s460-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31cc408d-655a-459b-a9ab-3199d73bcf8a 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c6298096-10b7-441c-9688-4695b88a8660 {http,https} \N \N {/s460-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a428bb72-a27d-4ec7-8bf1-bed2c543b6f7 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N dada2f21-3866-4778-a319-a91f82f8ad76 {http,https} \N \N {/s461-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c97ce96e-a8c1-4637-9dfd-1c416ae616a5 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N dada2f21-3866-4778-a319-a91f82f8ad76 {http,https} \N \N {/s461-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9384c3e2-f1e1-4854-83df-d11f9b30344e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N dada2f21-3866-4778-a319-a91f82f8ad76 {http,https} \N \N {/s461-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +070b854f-a709-428c-808b-c2f116c28254 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N dada2f21-3866-4778-a319-a91f82f8ad76 {http,https} \N \N {/s461-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8a09c21e-38a6-4b36-9127-314d6e6c3b72 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5016d6d-f10c-4846-83d5-7bf231c044d3 {http,https} \N \N {/s462-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5d98f7d4-5de2-4f9c-84fe-fdb3236bd303 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5016d6d-f10c-4846-83d5-7bf231c044d3 {http,https} \N \N {/s462-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f0176518-e3ae-4658-ac29-dc59f29c2485 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5016d6d-f10c-4846-83d5-7bf231c044d3 {http,https} \N \N {/s462-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +93e08cc0-3fb4-4bd4-9592-adce2a1684e4 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f5016d6d-f10c-4846-83d5-7bf231c044d3 {http,https} \N \N {/s462-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6ad81b72-200f-454c-ae5f-6a817a257a55 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7463f25e-841f-4e23-9fb3-4dbe0c2554d2 {http,https} \N \N {/s463-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc92a638-89e7-4677-afa7-2a8cb7ee9ab4 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7463f25e-841f-4e23-9fb3-4dbe0c2554d2 {http,https} \N \N {/s463-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +22f79c49-0d58-4997-a244-a38f94acce12 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7463f25e-841f-4e23-9fb3-4dbe0c2554d2 {http,https} \N \N {/s463-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +409dbe83-1650-4149-9b40-8d03aaf9b607 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7463f25e-841f-4e23-9fb3-4dbe0c2554d2 {http,https} \N \N {/s463-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4ddaca3a-02d7-4ea8-a73c-762cfa3462b6 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1e87a29f-8009-41bd-8b71-f8800f1dab1e {http,https} \N \N {/s464-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ddb714fc-1535-49cb-8590-96b4553fa6f4 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1e87a29f-8009-41bd-8b71-f8800f1dab1e {http,https} \N \N {/s464-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19fb2a92-672b-49f1-a1e5-7c95e865ee76 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1e87a29f-8009-41bd-8b71-f8800f1dab1e {http,https} \N \N {/s464-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +57e61c94-cd64-4669-a33b-4a6105a034cf 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 1e87a29f-8009-41bd-8b71-f8800f1dab1e {http,https} \N \N {/s464-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3bc338fe-1d42-499e-817f-98c71292d864 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 30e14345-9d6a-42c1-b33f-59cb014e5b68 {http,https} \N \N {/s465-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2ea78bee-9b42-4346-9900-57400da07b37 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 30e14345-9d6a-42c1-b33f-59cb014e5b68 {http,https} \N \N {/s465-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +caeb38de-87f3-47fc-8222-508d38f7c660 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 30e14345-9d6a-42c1-b33f-59cb014e5b68 {http,https} \N \N {/s465-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +13bfbc09-4bc2-4b21-9c51-c75df526211c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 30e14345-9d6a-42c1-b33f-59cb014e5b68 {http,https} \N \N {/s465-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +92cc82f5-3599-4cc9-b5fc-43fca3c9dceb 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 86c6fa66-322e-487a-8999-ecc03a830fd3 {http,https} \N \N {/s466-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +92e36d2d-f87c-45f1-a324-70453d608e51 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 86c6fa66-322e-487a-8999-ecc03a830fd3 {http,https} \N \N {/s466-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1b1c60ca-05d2-4415-b2ff-3cbddde1e5a4 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 86c6fa66-322e-487a-8999-ecc03a830fd3 {http,https} \N \N {/s466-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c3677645-9805-4e82-af47-e9a963d16091 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 86c6fa66-322e-487a-8999-ecc03a830fd3 {http,https} \N \N {/s466-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c7e10fe-1939-4813-ab29-e4795edbc5ff 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 35847d15-de55-4a1b-9493-0d691a83a641 {http,https} \N \N {/s467-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +693b8d67-5d36-40fe-89ec-3a53b4272463 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 35847d15-de55-4a1b-9493-0d691a83a641 {http,https} \N \N {/s467-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e49b36e7-fef7-4ba3-890d-c5471138f2ed 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 35847d15-de55-4a1b-9493-0d691a83a641 {http,https} \N \N {/s467-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4cf67451-f2aa-4974-b700-30a8951866a8 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 35847d15-de55-4a1b-9493-0d691a83a641 {http,https} \N \N {/s467-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ca6253c1-3a62-413e-b97a-43399244e3ff 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f18b3241-50bd-45b5-8c61-8858473e10fb {http,https} \N \N {/s468-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5e8377b3-4bcb-4fb9-b7b1-2013d0645ec7 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f18b3241-50bd-45b5-8c61-8858473e10fb {http,https} \N \N {/s468-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1df52a05-4f48-4af3-8cdf-0da33141a4e9 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f18b3241-50bd-45b5-8c61-8858473e10fb {http,https} \N \N {/s468-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +283da355-d78e-415c-851a-165af8070103 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f18b3241-50bd-45b5-8c61-8858473e10fb {http,https} \N \N {/s468-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d46e10e2-5c30-4fad-af2b-3e31ce034d6d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3f90d40a-eef1-4a6b-953c-6919087c9b6b {http,https} \N \N {/s469-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5ef1787b-24ec-4a50-93d7-e6c2175201a0 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3f90d40a-eef1-4a6b-953c-6919087c9b6b {http,https} \N \N {/s469-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +902f1a1e-26f0-49d6-bdb0-ac94d57085b4 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3f90d40a-eef1-4a6b-953c-6919087c9b6b {http,https} \N \N {/s469-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0d4245e3-e09f-47f6-8e85-095dca32ab4e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 3f90d40a-eef1-4a6b-953c-6919087c9b6b {http,https} \N \N {/s469-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3e4ca35e-f94b-458d-a588-668c78320040 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c81f7cfe-c388-4731-88f9-f3eccc0e1aae {http,https} \N \N {/s470-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +afb9c5ec-ad49-458f-87da-8f9e74ebce0d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c81f7cfe-c388-4731-88f9-f3eccc0e1aae {http,https} \N \N {/s470-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +abd31258-aa72-4fe1-bdff-397abfb64934 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c81f7cfe-c388-4731-88f9-f3eccc0e1aae {http,https} \N \N {/s470-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6c86a7a6-e243-41da-bbd8-c34bba6381f0 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N c81f7cfe-c388-4731-88f9-f3eccc0e1aae {http,https} \N \N {/s470-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +30b83f00-8969-44f5-87c2-f88e886a7bc8 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 54f45fd9-b956-4dd8-a9a2-aa025395fe9b {http,https} \N \N {/s471-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4f579d4b-bfab-42f0-bf5e-92ba2891066b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 54f45fd9-b956-4dd8-a9a2-aa025395fe9b {http,https} \N \N {/s471-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ef8bf65e-0847-410b-97b8-78a140284248 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 54f45fd9-b956-4dd8-a9a2-aa025395fe9b {http,https} \N \N {/s471-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9e71f4aa-f7fc-4a66-9e87-840479699e8d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 54f45fd9-b956-4dd8-a9a2-aa025395fe9b {http,https} \N \N {/s471-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +91131f39-d683-4f10-abdb-c8ee69fe26a2 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f0f92b13-e8a2-4208-af35-88c2f57053ed {http,https} \N \N {/s472-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +534e8382-13c5-4bf2-b7b5-b665cf70a8f8 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f0f92b13-e8a2-4208-af35-88c2f57053ed {http,https} \N \N {/s472-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8802df97-7210-454c-918e-a6b5138bdcaa 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f0f92b13-e8a2-4208-af35-88c2f57053ed {http,https} \N \N {/s472-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +19f9eb11-c202-4b14-ab7c-cd0971a424db 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N f0f92b13-e8a2-4208-af35-88c2f57053ed {http,https} \N \N {/s472-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +97772726-85c5-4469-a489-e862aa6bddb8 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 50b2eea6-fcae-41c7-872a-7f725aad8f68 {http,https} \N \N {/s473-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a5fc7fe6-cb38-4c40-888d-b829e1d2eb0c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 50b2eea6-fcae-41c7-872a-7f725aad8f68 {http,https} \N \N {/s473-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6e96309a-1c5e-416f-94b9-ae94f9451a6d 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 50b2eea6-fcae-41c7-872a-7f725aad8f68 {http,https} \N \N {/s473-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +61ca5840-595c-4661-934a-327e4a15640b 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 50b2eea6-fcae-41c7-872a-7f725aad8f68 {http,https} \N \N {/s473-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +00c6602a-885b-441c-ad13-39eb3c1fda8c 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5d22741a-9f70-4978-a113-4e3370595e14 {http,https} \N \N {/s474-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8538e410-547d-4af1-a5e4-a3e7491b64ce 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5d22741a-9f70-4978-a113-4e3370595e14 {http,https} \N \N {/s474-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +516eeb29-4c13-4502-84bd-cbaff4b5e540 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5d22741a-9f70-4978-a113-4e3370595e14 {http,https} \N \N {/s474-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e77d4b44-4733-493a-975b-9762f987d109 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5d22741a-9f70-4978-a113-4e3370595e14 {http,https} \N \N {/s474-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4e7b3320-325c-4c94-8967-6a3de95dea3e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5e9f240d-6e21-4393-b37c-f9f1e8ca70f3 {http,https} \N \N {/s475-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ea66dc1a-9b79-402e-8585-01afeab94962 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5e9f240d-6e21-4393-b37c-f9f1e8ca70f3 {http,https} \N \N {/s475-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e2d661f8-add0-4cd3-a766-aa3152afbf2e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5e9f240d-6e21-4393-b37c-f9f1e8ca70f3 {http,https} \N \N {/s475-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f9dd2af8-4d40-4368-93a4-e80590f59d0e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 5e9f240d-6e21-4393-b37c-f9f1e8ca70f3 {http,https} \N \N {/s475-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +90010a98-3ee3-46d2-9767-f80944e8c593 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84d0828f-fe77-41f1-928e-11706edb8821 {http,https} \N \N {/s476-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +80be433d-83b1-4635-a8f9-825da2430b41 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84d0828f-fe77-41f1-928e-11706edb8821 {http,https} \N \N {/s476-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5418854d-e234-45fd-8312-d518a6ef7b41 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84d0828f-fe77-41f1-928e-11706edb8821 {http,https} \N \N {/s476-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f6d6a613-de42-499f-b225-77580c97ec89 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84d0828f-fe77-41f1-928e-11706edb8821 {http,https} \N \N {/s476-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9762fb31-d4b9-4430-9b19-3e28edee92cd 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7c9d3f4c-4e57-450e-b12f-7db6ebcb9aea {http,https} \N \N {/s477-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5f7ad1f4-1385-423c-a952-bbb9bd2be874 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7c9d3f4c-4e57-450e-b12f-7db6ebcb9aea {http,https} \N \N {/s477-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d974ac69-db43-4e85-9a87-f9342fe8d912 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7c9d3f4c-4e57-450e-b12f-7db6ebcb9aea {http,https} \N \N {/s477-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d44df5f8-a07c-4ff5-9625-35526371b822 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 7c9d3f4c-4e57-450e-b12f-7db6ebcb9aea {http,https} \N \N {/s477-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1830c64f-60d2-44fd-b9e4-0729764c033e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N b1f4f818-0f47-4372-868c-df50e9603ed0 {http,https} \N \N {/s478-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +83588352-b2c2-4572-acdc-65b246a782cd 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N b1f4f818-0f47-4372-868c-df50e9603ed0 {http,https} \N \N {/s478-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +78aa5f81-0230-4005-8b32-b98a4d9e79e5 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N b1f4f818-0f47-4372-868c-df50e9603ed0 {http,https} \N \N {/s478-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b32d93cc-f2db-4337-98c8-ad29cf07af27 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N b1f4f818-0f47-4372-868c-df50e9603ed0 {http,https} \N \N {/s478-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +227095bd-7f4a-4260-bc8e-3f0e483a60a7 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N ea4910d2-9eaa-4e94-8f10-94d0da66aa12 {http,https} \N \N {/s479-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f2d72654-4dbe-418e-81f1-b7f57f6010a2 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N ea4910d2-9eaa-4e94-8f10-94d0da66aa12 {http,https} \N \N {/s479-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bc7e358a-b8eb-4243-9ffe-d23ac5f84d0e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N ea4910d2-9eaa-4e94-8f10-94d0da66aa12 {http,https} \N \N {/s479-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9d861fc6-747d-4703-9167-c5f0ba831697 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N ea4910d2-9eaa-4e94-8f10-94d0da66aa12 {http,https} \N \N {/s479-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d885bdcd-efe2-4188-aaf3-ba94d761876a 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84164c99-8064-4616-9b89-4ad2cd3ee6da {http,https} \N \N {/s480-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e04162d2-1d25-42e8-9974-be98ae62fa91 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84164c99-8064-4616-9b89-4ad2cd3ee6da {http,https} \N \N {/s480-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +72075bd9-b063-4a57-af12-3a4a88828b3e 2022-05-26 09:04:36+00 2022-05-26 09:04:36+00 \N 84164c99-8064-4616-9b89-4ad2cd3ee6da {http,https} \N \N {/s480-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0af1158f-9fc4-4ece-a444-d11bd29b730c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 84164c99-8064-4616-9b89-4ad2cd3ee6da {http,https} \N \N {/s480-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5d61baba-08f7-41b2-906d-af28e90761d7 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 64f3861f-7ec7-45bf-a781-73de35a51bf3 {http,https} \N \N {/s481-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b58a7295-19fe-4862-8636-af354002176e 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 64f3861f-7ec7-45bf-a781-73de35a51bf3 {http,https} \N \N {/s481-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c27c93de-efe2-4751-8c68-704590169272 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 64f3861f-7ec7-45bf-a781-73de35a51bf3 {http,https} \N \N {/s481-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e49dc496-bbf0-4744-913e-b4c93011ef7c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 64f3861f-7ec7-45bf-a781-73de35a51bf3 {http,https} \N \N {/s481-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +31b5fbc7-e064-424b-8913-0237f253d47d 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 0501b4de-a562-45ac-a4f8-ca0b0a5f2be4 {http,https} \N \N {/s482-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5a41a52-afcc-4559-8d58-a02dd7eb4c19 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 0501b4de-a562-45ac-a4f8-ca0b0a5f2be4 {http,https} \N \N {/s482-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a4cd39a9-79c6-40ae-86c6-d43961fe2f88 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 0501b4de-a562-45ac-a4f8-ca0b0a5f2be4 {http,https} \N \N {/s482-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b7de46b0-d84d-4ec9-a5fe-58e76bd17f38 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 0501b4de-a562-45ac-a4f8-ca0b0a5f2be4 {http,https} \N \N {/s482-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a9aa0edb-7c39-4e31-aedd-67c612e0d649 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N edf40205-69ee-4f3b-ba0c-09d70531b17b {http,https} \N \N {/s483-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +57980eec-3861-4b4a-b1a2-a0e3bbbbffd9 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N edf40205-69ee-4f3b-ba0c-09d70531b17b {http,https} \N \N {/s483-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +405ceb75-7c44-49c3-aaa7-806c7518a0a8 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N edf40205-69ee-4f3b-ba0c-09d70531b17b {http,https} \N \N {/s483-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +89a3c416-e757-4363-9c83-bb2dbe801c02 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N edf40205-69ee-4f3b-ba0c-09d70531b17b {http,https} \N \N {/s483-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a625b1a2-07c7-4f1f-aafa-47dec58a5e65 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N f18530a1-b79f-404c-97b5-c8cb7d4df0d3 {http,https} \N \N {/s484-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d6f362a2-87fa-4e66-a1ed-9fe48088b2ca 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N f18530a1-b79f-404c-97b5-c8cb7d4df0d3 {http,https} \N \N {/s484-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +294c3258-e1fd-4e94-8054-d680c05c0279 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N f18530a1-b79f-404c-97b5-c8cb7d4df0d3 {http,https} \N \N {/s484-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +97e87056-b434-49f0-bab5-7bad670c1c4c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N f18530a1-b79f-404c-97b5-c8cb7d4df0d3 {http,https} \N \N {/s484-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bcedcdfe-d236-4679-84a0-841a71f3e905 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6b7f220c-1df2-41b3-9ea3-a6bd5ece4a4f {http,https} \N \N {/s485-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +20ca2aa9-96af-43c7-a0f9-d404bc537b6c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6b7f220c-1df2-41b3-9ea3-a6bd5ece4a4f {http,https} \N \N {/s485-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bdc1037c-1e47-43ed-b82a-a54cea48ffdb 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6b7f220c-1df2-41b3-9ea3-a6bd5ece4a4f {http,https} \N \N {/s485-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +436a2d1b-66be-49cd-9748-0fcd0d982db4 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6b7f220c-1df2-41b3-9ea3-a6bd5ece4a4f {http,https} \N \N {/s485-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6922cc8a-c642-4165-8479-31327ac0abfc 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 06b00f42-c69b-4243-8506-582504283fb7 {http,https} \N \N {/s486-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f3c32d74-ceee-4cd8-bbc8-d1f908e80eaa 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 06b00f42-c69b-4243-8506-582504283fb7 {http,https} \N \N {/s486-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +e3cf12f4-da14-4f3e-905c-479914468396 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 06b00f42-c69b-4243-8506-582504283fb7 {http,https} \N \N {/s486-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9dff2046-de1f-4009-90b9-7be7bf99b487 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 06b00f42-c69b-4243-8506-582504283fb7 {http,https} \N \N {/s486-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +958190df-2bcd-4965-a530-93c3fd16554c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 9fa2ce85-2954-470e-9a8f-b80a94d18b5c {http,https} \N \N {/s487-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6d2a94aa-d74d-4849-8c26-251b29b8e701 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 9fa2ce85-2954-470e-9a8f-b80a94d18b5c {http,https} \N \N {/s487-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +02886cc1-42d3-4b55-bc1e-ad78a366d1b1 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 9fa2ce85-2954-470e-9a8f-b80a94d18b5c {http,https} \N \N {/s487-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9d74ce27-9141-43bb-a072-0c7df671c5bd 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 9fa2ce85-2954-470e-9a8f-b80a94d18b5c {http,https} \N \N {/s487-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8ba7ede1-e414-4d2b-9840-2655b34c92ea 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 690744c2-57e5-458b-aa9c-eec197957ecc {http,https} \N \N {/s488-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d2918e6e-c2d0-48e9-b36c-336710f3d078 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 690744c2-57e5-458b-aa9c-eec197957ecc {http,https} \N \N {/s488-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +169bf08d-00cf-4209-baff-ff9ecc883977 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 690744c2-57e5-458b-aa9c-eec197957ecc {http,https} \N \N {/s488-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b2e1d473-5314-4dbe-b583-04ec6d4730a7 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 690744c2-57e5-458b-aa9c-eec197957ecc {http,https} \N \N {/s488-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bbf9c50c-f4b3-415a-bf15-9089f84cf322 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 4a74034a-2448-42f4-98d3-dc1fe050f6ce {http,https} \N \N {/s489-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b1ef0d2b-2454-42d4-bd8b-b0fa58a927b0 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 4a74034a-2448-42f4-98d3-dc1fe050f6ce {http,https} \N \N {/s489-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +4358263d-ff4c-4a06-a0bb-d4db3dee6760 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 4a74034a-2448-42f4-98d3-dc1fe050f6ce {http,https} \N \N {/s489-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3c9becf1-889c-42cc-b80b-9e875f07f91a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 4a74034a-2448-42f4-98d3-dc1fe050f6ce {http,https} \N \N {/s489-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6f810c20-bfe2-49e7-9eac-52b581e91df7 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c4507468-ff51-4d6f-977f-0969cca30830 {http,https} \N \N {/s490-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +3e5b3cf6-9cbb-4258-93b0-6b4058aab21b 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c4507468-ff51-4d6f-977f-0969cca30830 {http,https} \N \N {/s490-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9254b00b-e706-456f-a0a2-b0982568526b 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c4507468-ff51-4d6f-977f-0969cca30830 {http,https} \N \N {/s490-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b196ce2a-423d-4a40-b89b-0cada79c24b1 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c4507468-ff51-4d6f-977f-0969cca30830 {http,https} \N \N {/s490-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0469b9be-1eb9-4769-a3a3-4a6b2ac11f3d 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c865afc-9439-411c-ade4-6fd8ac429c07 {http,https} \N \N {/s491-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6a70ee41-c184-43ef-ab43-28ae6362fcfc 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c865afc-9439-411c-ade4-6fd8ac429c07 {http,https} \N \N {/s491-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d9e3ace8-afd2-4d21-936a-18a8a36eee98 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c865afc-9439-411c-ade4-6fd8ac429c07 {http,https} \N \N {/s491-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c3051e9f-9b15-4200-8c55-32e5f5de4db2 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c865afc-9439-411c-ade4-6fd8ac429c07 {http,https} \N \N {/s491-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +57d989e7-a5bb-415c-a662-5d395092e40e 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N e04db553-36a3-468d-82b4-938514fc8cdb {http,https} \N \N {/s492-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +be81249d-b3ff-437a-b97f-2d90ed894210 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N e04db553-36a3-468d-82b4-938514fc8cdb {http,https} \N \N {/s492-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b5760cbe-8c1a-4d3c-ba0b-5f1f525ffc19 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N e04db553-36a3-468d-82b4-938514fc8cdb {http,https} \N \N {/s492-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +28b3c04b-9586-4612-90de-e274a0ddc863 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N e04db553-36a3-468d-82b4-938514fc8cdb {http,https} \N \N {/s492-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2349d849-97c4-4779-8899-e92411c04986 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ecaca662-b04b-474b-a038-c185ac99a3e1 {http,https} \N \N {/s493-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +48795b76-6f8d-45d5-8950-74c60e0d7df1 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ecaca662-b04b-474b-a038-c185ac99a3e1 {http,https} \N \N {/s493-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +36a4c536-7342-430e-8346-c4fc17ff487a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ecaca662-b04b-474b-a038-c185ac99a3e1 {http,https} \N \N {/s493-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +907f153a-b5e2-4c95-bb66-f6ad726270c0 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ecaca662-b04b-474b-a038-c185ac99a3e1 {http,https} \N \N {/s493-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +d4faaf1a-9e86-4a49-b1e7-4565b776d84b 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3c19f673-974e-4d27-8aa8-c8b3be9a268a {http,https} \N \N {/s494-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +05e5e286-865b-4f6c-bb73-235808c32eb9 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3c19f673-974e-4d27-8aa8-c8b3be9a268a {http,https} \N \N {/s494-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ce3ff41e-8aa4-46cd-872e-8e9f55f72c0a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3c19f673-974e-4d27-8aa8-c8b3be9a268a {http,https} \N \N {/s494-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +b3524c08-b846-4546-882f-cc6207e90183 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3c19f673-974e-4d27-8aa8-c8b3be9a268a {http,https} \N \N {/s494-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a06facca-91a6-4a98-b3a9-e51484166998 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c5851b2-0b70-4fd8-9d95-b5f60e89b8d8 {http,https} \N \N {/s495-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8e5dc74b-4585-4417-9444-6e0d185466dc 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c5851b2-0b70-4fd8-9d95-b5f60e89b8d8 {http,https} \N \N {/s495-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9b9e6e65-8544-4f89-a19b-16ddc70b1f52 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c5851b2-0b70-4fd8-9d95-b5f60e89b8d8 {http,https} \N \N {/s495-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9f35ed1f-4138-4640-b127-43dd0a528965 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 6c5851b2-0b70-4fd8-9d95-b5f60e89b8d8 {http,https} \N \N {/s495-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +415b2561-a1e7-4e05-9e86-3c44a0edb91a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ca7691e7-644f-4503-8661-255efc4f2d73 {http,https} \N \N {/s496-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f581e64d-fc6f-4f91-8bbe-600232ec7d3e 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ca7691e7-644f-4503-8661-255efc4f2d73 {http,https} \N \N {/s496-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +6da5537f-8a92-4b9b-848e-d1864069f23c 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ca7691e7-644f-4503-8661-255efc4f2d73 {http,https} \N \N {/s496-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +5031154c-ed28-400a-b134-c9af8a782571 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N ca7691e7-644f-4503-8661-255efc4f2d73 {http,https} \N \N {/s496-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +8f366d8c-728c-4eac-921a-d62ec110631a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c520c41e-eaac-436b-8943-9d96b749a386 {http,https} \N \N {/s497-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +ba697728-5e97-46ff-8bb8-b5b90a96a8f0 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c520c41e-eaac-436b-8943-9d96b749a386 {http,https} \N \N {/s497-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +481ffcdf-5d20-42de-a6c2-df0a613f7d7f 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c520c41e-eaac-436b-8943-9d96b749a386 {http,https} \N \N {/s497-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a0d9909b-5c47-4ed6-bdee-d0b1ff643370 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N c520c41e-eaac-436b-8943-9d96b749a386 {http,https} \N \N {/s497-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +2c2f7c68-48a6-4629-85b7-17f62ed9f218 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 35071e24-8e47-4af5-adfd-b91431777cfb {http,https} \N \N {/s498-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +bef6af9d-3386-434d-b1d7-65d1c330c453 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 35071e24-8e47-4af5-adfd-b91431777cfb {http,https} \N \N {/s498-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +a39ba195-5d74-485b-8997-166fb79f6fb4 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 35071e24-8e47-4af5-adfd-b91431777cfb {http,https} \N \N {/s498-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +cd0d5bf9-4493-43ef-9a0e-b3035651ddb9 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 35071e24-8e47-4af5-adfd-b91431777cfb {http,https} \N \N {/s498-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +1b476ff0-69c7-4274-92b1-cc56e2ec5b95 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3206e638-1f43-47b7-8b36-e5a70cf785b2 {http,https} \N \N {/s499-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +84196bb5-7d3d-42ee-b404-af4409e35c66 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3206e638-1f43-47b7-8b36-e5a70cf785b2 {http,https} \N \N {/s499-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +c51be90b-9f47-47f5-a8bf-09865ab9bf97 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3206e638-1f43-47b7-8b36-e5a70cf785b2 {http,https} \N \N {/s499-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +7d91e732-5d39-4cf0-840d-1bb9d54fe465 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N 3206e638-1f43-47b7-8b36-e5a70cf785b2 {http,https} \N \N {/s499-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +9564ba87-46a0-47f9-8f9d-037c8619963a 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N d665c6e1-e3a9-4f58-bb0b-29a67711080f {http,https} \N \N {/s500-r1} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +dc7b472b-29a5-48dc-9a97-dd6996a2d219 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N d665c6e1-e3a9-4f58-bb0b-29a67711080f {http,https} \N \N {/s500-r2} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +0c28aff6-defb-4390-9af5-a587cf80cc89 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N d665c6e1-e3a9-4f58-bb0b-29a67711080f {http,https} \N \N {/s500-r3} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +f5230700-c5b2-411f-8bfb-5307e70ef52f 2022-05-26 09:04:37+00 2022-05-26 09:04:37+00 \N d665c6e1-e3a9-4f58-bb0b-29a67711080f {http,https} \N \N {/s500-r4} \N \N \N 0 t f \N 426 \N v0 dde1a96f-1d2f-41dc-bcc3-2c393ec42c65 t t +\. + + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data1.json b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data1.json new file mode 100644 index 00000000..c8239d9f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data1.json @@ -0,0 +1,547 @@ +{ + "options": { + "suite_sequential": true, + "xaxis_title": "Upstreams count" + }, + "data": [{ + "latencies_p90": [1030, 1040], + "latencies_p99": [1040, 1200, 1600], + "latency_avg": 6.66, + "rpss": [498.4, 500], + "rps": 498.4, + "latency_max": 1040, + "version": "2.8.1.1", + "suite": "7501" + }, { + "latency_avg": 1.84, + "latency_max": 133.76, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [133.89], + "latencies_p90": [129.85], + "version": "2.8.1.2~internal-preview", + "suite": "7501" + }, { + "latencies_p90": [1240], + "latencies_p99": [1250], + "latency_avg": 9.22, + "rpss": [500.07], + "rps": 500.07, + "latency_max": 1250, + "version": "2.8.1.1", + "suite": "9501" + }, { + "latency_avg": 2.07, + "latency_max": 178.05, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [178.18], + "latencies_p90": [172.41], + "version": "2.8.1.2~internal-preview", + "suite": "9501" + }, { + "latencies_p90": [1570], + "latencies_p99": [1570], + "latency_avg": 15.31, + "rpss": [498.4], + "rps": 498.4, + "latency_max": 1570, + "version": "2.8.1.1", + "suite": "10001" + }, { + "latency_avg": 2, + "latency_max": 169.86, + "rpss": [498.41], + "rps": 498.41, + "latencies_p99": [169.98], + "latencies_p90": [159.62], + "version": "2.8.1.2~internal-preview", + "suite": "10001" + }, { + "latencies_p90": [5000], + "latencies_p99": [5010], + "latency_avg": 165.13, + "rpss": [500.07], + "rps": 500.07, + "latency_max": 5010, + "version": "2.8.1.1", + "suite": "7001" + }, { + "latency_avg": 3.32, + "latency_max": 216.83, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [216.96], + "latencies_p90": [178.18], + "version": "2.8.1.2~internal-preview", + "suite": "7001" + }, { + "latencies_p90": [964.09], + "latencies_p99": [969.22], + "latency_avg": 7.28, + "rpss": [500.07], + "rps": 500.07, + "latency_max": 968.7, + "version": "2.8.1.1", + "suite": "8001" + }, { + "latency_avg": 1.91, + "latency_max": 102.34, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [102.4], + "latencies_p90": [101.5], + "version": "2.8.1.2~internal-preview", + "suite": "8001" + }, { + "latencies_p90": [1210], + "latencies_p99": [1230], + "latency_avg": 11.7, + "rpss": [500.07], + "rps": 500.07, + "latency_max": 1230, + "version": "2.8.1.1", + "suite": "8501" + }, { + "latency_avg": 2.14, + "latency_max": 269.82, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [270.08], + "latencies_p90": [266.75], + "version": "2.8.1.2~internal-preview", + "suite": "8501" + }, { + "latencies_p90": [2110], + "latencies_p99": [2110], + "latency_avg": 49.73, + "rpss": [498.4], + "rps": 498.4, + "latency_max": 2110, + "version": "2.8.1.1", + "suite": "9001" + }, { + "latency_avg": 1.93, + "latency_max": 138.75, + "rpss": [498.41], + "rps": 498.41, + "latencies_p99": [138.88], + "latencies_p90": [138.49], + "version": "2.8.1.2~internal-preview", + "suite": "9001" + }, { + "latency_avg": 5.73, + "latency_max": 953.86, + "rpss": [498.41], + "rps": 498.41, + "latencies_p99": [954.37], + "latencies_p90": [945.66], + "version": "2.8.1.1", + "suite": "6501" + }, { + "latency_avg": 1.75, + "latency_max": 104.13, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [104.19], + "latencies_p90": [85.12], + "version": "2.8.1.2~internal-preview", + "suite": "6501" + }, { + "latency_avg": 74.1, + "latency_max": 2620, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [2620], + "latencies_p90": [2610], + "version": "2.8.1.1", + "suite": "12001" + }, { + "latency_avg": 2.94, + "latency_max": 447.23, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [447.49], + "latencies_p90": [444.42], + "version": "2.8.1.2~internal-preview", + "suite": "12001" + }, { + "latency_avg": 1.98, + "latency_max": 349.95, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [350.21], + "latencies_p90": [340.99], + "version": "2.8.1.1", + "suite": "2501" + }, { + "latency_avg": 1.42, + "latency_max": 86.08, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [86.14], + "latencies_p90": [66.94], + "version": "2.8.1.2~internal-preview", + "suite": "2501" + }, { + "latency_avg": 14.97, + "latency_max": 1580, + "rpss": [498.41], + "rps": 498.41, + "latencies_p99": [1580], + "latencies_p90": [1570], + "version": "2.8.1.1", + "suite": "11001" + }, { + "latency_avg": 2.36, + "latency_max": 219.14, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [219.26], + "latencies_p90": [215.42], + "version": "2.8.1.2~internal-preview", + "suite": "11001" + }, { + "latency_avg": 6.16, + "latency_max": 1280, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [1280], + "latencies_p90": [1180], + "version": "2.8.1.1", + "suite": "6001" + }, { + "latency_avg": 1.84, + "latency_max": 199.81, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [199.93], + "latencies_p90": [198.53], + "version": "2.8.1.2~internal-preview", + "suite": "6001" + }, { + "latency_avg": 14.46, + "latency_max": 1930, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [1930], + "latencies_p90": [1930], + "version": "2.8.1.1", + "suite": "13001" + }, { + "latency_avg": 2.36, + "latency_max": 391.17, + "rpss": [498.42], + "rps": 498.42, + "latencies_p99": [391.42], + "latencies_p90": [358.4], + "version": "2.8.1.2~internal-preview", + "suite": "13001" + }, { + "latency_avg": 3.78, + "latency_max": 848.38, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [848.9], + "latencies_p90": [843.26], + "version": "2.8.1.1", + "suite": "5001" + }, { + "latency_avg": 1.53, + "latency_max": 84.54, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [84.61], + "latencies_p90": [83.14], + "version": "2.8.1.2~internal-preview", + "suite": "5001" + }, { + "latency_avg": 3.86, + "latency_max": 774.66, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [775.17], + "latencies_p90": [771.07], + "version": "2.8.1.1", + "suite": "3501" + }, { + "latency_avg": 1.53, + "latency_max": 69.25, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [69.31], + "latencies_p90": [67.84], + "version": "2.8.1.2~internal-preview", + "suite": "3501" + }, { + "latency_avg": 3.23, + "latency_max": 563.2, + "rpss": [500.03], + "rps": 500.03, + "latencies_p99": [563.71], + "latencies_p90": [561.66], + "version": "2.8.1.1", + "suite": "4001" + }, { + "latency_avg": 1.61, + "latency_max": 215.3, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [215.42], + "latencies_p90": [203.9], + "version": "2.8.1.2~internal-preview", + "suite": "4001" + }, { + "latency_avg": 70.08, + "latency_max": 2390, + "rpss": [500.06], + "rps": 500.06, + "latencies_p99": [2390], + "latencies_p90": [2390], + "version": "2.8.1.1", + "suite": "14001" + }, { + "latency_avg": 84.42, + "latency_max": 2270, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [2280], + "latencies_p90": [2270], + "version": "2.8.1.2~internal-preview", + "suite": "14001" + }, { + "latency_avg": 2.34, + "latency_max": 512.77, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [513.02], + "latencies_p90": [511.23], + "version": "2.8.1.1", + "suite": "2001" + }, { + "latency_avg": 1.41, + "latency_max": 34.56, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [34.59], + "latencies_p90": [33.82], + "version": "2.8.1.2~internal-preview", + "suite": "2001" + }, { + "latency_avg": 1.35, + "latency_max": 63.1, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [63.13], + "latencies_p90": [60.16], + "version": "2.8.1.1", + "suite": "1001" + }, { + "latency_avg": 1.34, + "latency_max": 39.14, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [39.17], + "latencies_p90": [35.68], + "version": "2.8.1.2~internal-preview", + "suite": "1001" + }, { + "latency_avg": 2.08, + "latency_max": 434.18, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [434.43], + "latencies_p90": [429.57], + "version": "2.8.1.1", + "suite": "3001" + }, { + "latency_avg": 1.43, + "latency_max": 49.6, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [49.63], + "latencies_p90": [40.26], + "version": "2.8.1.2~internal-preview", + "suite": "3001" + }, { + "latency_avg": 1.67, + "latency_max": 298.24, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [298.49], + "latencies_p90": [296.96], + "version": "2.8.1.1", + "suite": "1501" + }, { + "latency_avg": 1.32, + "latency_max": 28.4, + "rpss": [498.41], + "rps": 498.41, + "latencies_p99": [28.42], + "latencies_p90": [27.66], + "version": "2.8.1.2~internal-preview", + "suite": "1501" + }, { + "latency_avg": 1.34, + "latency_max": 67.07, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [67.14], + "latencies_p90": [60.1], + "version": "2.8.1.1", + "suite": "501" + }, { + "latency_avg": 1.36, + "latency_max": 26.19, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [26.21], + "latencies_p90": [21.95], + "version": "2.8.1.2~internal-preview", + "suite": "501" + }, { + "latency_avg": 16.9, + "latency_max": 2140, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [2150], + "latencies_p90": [2140], + "version": "2.8.1.1", + "suite": "12501" + }, { + "latency_avg": 2.28, + "latency_max": 323.33, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [323.58], + "latencies_p90": [320.26], + "version": "2.8.1.2~internal-preview", + "suite": "12501" + }, { + "latency_avg": 13.71, + "latency_max": 1760, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [1770], + "latencies_p90": [1760], + "version": "2.8.1.1", + "suite": "10501" + }, { + "latency_avg": 2.3, + "latency_max": 198.4, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [198.53], + "latencies_p90": [198.14], + "version": "2.8.1.2~internal-preview", + "suite": "10501" + }, { + "latency_avg": 9.52, + "latency_max": 769.02, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [769.53], + "latencies_p90": [763.39], + "version": "2.8.1.1", + "suite": "4501" + }, { + "latency_avg": 4.56, + "latency_max": 238.59, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [238.72], + "latencies_p90": [236.93], + "version": "2.8.1.2~internal-preview", + "suite": "4501" + }, { + "latency_avg": 24.86, + "latency_max": 2410, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [2420], + "latencies_p90": [2420], + "version": "2.8.1.1", + "suite": "13501" + }, { + "latency_avg": 5.96, + "latency_max": 342.78, + "rpss": [498.46], + "rps": 498.46, + "latencies_p99": [343.04], + "latencies_p90": [342.78], + "version": "2.8.1.2~internal-preview", + "suite": "13501" + }, { + "latency_avg": 4.1, + "latency_max": 1110, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [1110], + "latencies_p90": [1100], + "version": "2.8.1.1", + "suite": "5501" + }, { + "latency_avg": 1.62, + "latency_max": 126.85, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [126.91], + "latencies_p90": [126.46], + "version": "2.8.1.2~internal-preview", + "suite": "5501" + }, { + "latency_avg": 13.74, + "latency_max": 1670, + "rpss": [498.42], + "rps": 498.42, + "latencies_p99": [1670], + "latencies_p90": [1600], + "version": "2.8.1.1", + "suite": "11501" + }, { + "latency_avg": 2.8, + "latency_max": 350.98, + "rpss": [498.42], + "rps": 498.42, + "latencies_p99": [351.23], + "latencies_p90": [344.06], + "version": "2.8.1.2~internal-preview", + "suite": "11501" + }, { + "latency_avg": 1.33, + "latency_max": 3.84, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [3.84], + "latencies_p90": [3.65], + "version": "2.8.1.1", + "suite": "1" + }, { + "latency_avg": 1.31, + "latency_max": 4.77, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [4.77], + "latencies_p90": [4.02], + "version": "2.8.1.2~internal-preview", + "suite": "1" + }, { + "latency_avg": 28.93, + "latency_max": 2530, + "rpss": [498.4], + "rps": 498.4, + "latencies_p99": [2530], + "latencies_p90": [2520], + "version": "2.8.1.1", + "suite": "14501" + }, { + "latency_avg": 2.63, + "latency_max": 352, + "rpss": [500.07], + "rps": 500.07, + "latencies_p99": [352.26], + "latencies_p90": [334.33], + "version": "2.8.1.2~internal-preview", + "suite": "14501" + }] +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data2.json b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data2.json new file mode 100644 index 00000000..b47d1b9d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/charts/test_data2.json @@ -0,0 +1,60 @@ +{ + "options": { + "suite_sequential": false + }, + "data": [{ + "rpss": [146063.92, 146845.9, 145638.07], + "rps": 146182.63, + "latencies_p90": [3.14, 3.27, 3.2], + "latencies_p99": [9, 9.18, 9.16], + "latency_max": 35.16, + "latency_avg": 1.1800240836152, + "suite": " #simple #no_plugins #single_route", + "version": "git:6098495" + }, { + "rpss": [144977.6, 143785.14, 145332.58], + "rps": 144698.44, + "latencies_p90": [3.12, 3.15, 3.28], + "latencies_p99": [9.01, 9.04, 9.57], + "latency_max": 42.51, + "latency_avg": 1.1900081272116, + "suite": " #simple #no_plugins #single_route", + "version": "git:master" + }, { + "rpss": [110197.34, 109968.96, 110591.39], + "rps": 110252.56333333, + "latencies_p90": [2.4, 2.28, 2.22], + "latencies_p99": [8.48, 8.14, 7.88], + "latency_max": 40.12, + "latency_avg": 1.2133197804852, + "suite": " #simple #key-auth 10 services each has 10 routes with key-auth, 100 consumers", + "version": "git:6098495" + }, { + "rpss": [109102.58, 109136.34, 108647.47], + "rps": 108962.13, + "latencies_p90": [2.48, 2.27, 2.14], + "latencies_p99": [7.87, 8.15, 7.91], + "latency_max": 35.43, + "latency_avg": 1.2066902201559, + "suite": " #simple #key-auth 10 services each has 10 routes with key-auth, 100 consumers", + "version": "git:master" + }, { + "rpss": [133682.24, 133910.3, 134863], + "rps": 134151.84666667, + "latencies_p90": [2.72, 2.78, 2.72], + "latencies_p99": [8.65, 8.87, 8.49], + "latency_max": 35.7, + "latency_avg": 1.1699763325704, + "suite": " #simple #no_plugins 10 services each has 10 routes", + "version": "git:6098495" + }, { + "rpss": [133410.76, 134137.81, 134780.55], + "rps": 134109.70666667, + "latencies_p90": [2.83, 2.73, 2.88], + "latencies_p99": [9.09, 8.87, 8.98], + "latency_max": 43.7, + "latency_avg": 1.1932978944078, + "suite": " #simple #no_plugins 10 services each has 10 routes", + "version": "git:master" + }] +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/.gitignore b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/.gitignore new file mode 100644 index 00000000..cbd4daf5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/.gitignore @@ -0,0 +1,8 @@ +.terraform* +!.terraform-version +terraform.tfstate* +*.deb +output +id_rsa +license.json +cm-* diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ec2.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ec2.tf new file mode 100644 index 00000000..8d7a96f1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ec2.tf @@ -0,0 +1,111 @@ +resource "aws_key_pair" "perf" { + key_name = "key-perf-test-${random_string.ident.result}" + public_key = tls_private_key.key.public_key_openssh +} + +data "aws_ami" "perf" { + most_recent = true + + filter { + name = "name" + values = [var.ec2_os] + } + + filter { + name = "virtualization-type" + values = ["hvm"] + } + + owners = ["099720109477"] # Canonical +} + +resource "aws_security_group" "openall" { + ingress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + ipv6_cidr_blocks = ["::/0"] + } + + egress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + ipv6_cidr_blocks = ["::/0"] + } +} + +resource "aws_instance" "kong" { + ami = data.aws_ami.perf.id + instance_type = var.ec2_instance_type + key_name = aws_key_pair.perf.key_name + monitoring = true + security_groups = [aws_security_group.openall.name] + associate_public_ip_address = true + + root_block_device { + tags = { + PerfTest = "perf-${random_string.ident.result}" + Name = "kong-${random_string.ident.result}" + } + volume_size = 100 + } + + tags = { + PerfTest = "perf-${random_string.ident.result}" + Name = "kong-${random_string.ident.result}" + } +} + +resource "aws_instance" "db" { + count = var.seperate_db_node ? 1: 0 + ami = data.aws_ami.perf.id + instance_type = var.ec2_instance_db_type + key_name = aws_key_pair.perf.key_name + monitoring = true + security_groups = [aws_security_group.openall.name] + associate_public_ip_address = true + + root_block_device { + tags = { + PerfTest = "perf-${random_string.ident.result}" + Name = "kong-${random_string.ident.result}" + } + volume_size = 100 + } + + tags = { + PerfTest = "perf-${random_string.ident.result}" + Name = "db-${random_string.ident.result}" + } +} + +resource "aws_instance" "worker" { + ami = data.aws_ami.perf.id + instance_type = var.ec2_instance_worker_type + key_name = aws_key_pair.perf.key_name + monitoring = true + security_groups = [aws_security_group.openall.name] + associate_public_ip_address = true + + root_block_device { + tags = { + PerfTest = "perf-${random_string.ident.result}" + Name = "kong-${random_string.ident.result}" + } + volume_size = 100 + } + + tags = { + PerfTest = "perf-${random_string.ident.result}" + Name = "worker-${random_string.ident.result}" + } +} + + +resource "random_string" "ident" { + length = 4 + special = false +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/main.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/main.tf new file mode 100644 index 00000000..a6fd2d5e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/main.tf @@ -0,0 +1,26 @@ +terraform { + required_version = "~> 1.2" + + required_providers { + local = { + version = "~> 2.2" + } + null = { + version = "~> 3.1" + } + aws = { + source = "hashicorp/aws" + version = "~> 3.0" + } + tls = { + version = "~> 3.4" + } + random = { + version = "~> 3.3" + } + } +} + +provider "aws" { + region = var.aws_region +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/output.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/output.tf new file mode 100644 index 00000000..79156979 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/output.tf @@ -0,0 +1,23 @@ +output "kong-ip" { + value = aws_instance.kong.public_ip +} + +output "kong-internal-ip" { + value = aws_instance.kong.private_ip +} + +output "db-ip" { + value = var.seperate_db_node ? aws_instance.db.0.public_ip: "" +} + +output "db-internal-ip" { + value = var.seperate_db_node ? aws_instance.db.0.private_ip: "" +} + +output "worker-ip" { + value = aws_instance.worker.public_ip +} + +output "worker-internal-ip" { + value = aws_instance.worker.private_ip +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ssh.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ssh.tf new file mode 100644 index 00000000..30629007 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/ssh.tf @@ -0,0 +1,10 @@ +resource "tls_private_key" "key" { + algorithm = "RSA" +} + + +resource "local_sensitive_file" "key_priv" { + content = tls_private_key.key.private_key_pem + filename = "./id_rsa" + file_permission = "0600" +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/variables.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/variables.tf new file mode 100644 index 00000000..f357e884 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/aws-ec2/variables.tf @@ -0,0 +1,36 @@ +variable "aws_region" { + type = string + description = "The EC2 region in which to create the EC2 instances" + default = "us-east-2" +} + +variable "ec2_instance_type" { + type = string + description = "The EC2 size on which to run the kong" + default = "c5a.2xlarge" +} + +variable "ec2_instance_worker_type" { + type = string + description = "The EC2 size on which to run the worker" + default = "c5a.large" +} + +variable "ec2_instance_db_type" { + type = string + description = "The EC2 size on which to run the db" + default = "c5a.large" +} + +variable "ec2_os" { + type = string + description = "The OS to install on the EC2" + default = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*" +} + +variable "seperate_db_node" { + type = bool + description = "Whether to create a separate db instance" + default = false +} + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/main.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/main.tf new file mode 100644 index 00000000..2d446342 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/main.tf @@ -0,0 +1,10 @@ +terraform { + required_version = "~> 1.2" + + required_providers { + local = { + version = "~> 2.2" + } + } +} + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/output.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/output.tf new file mode 100644 index 00000000..a01f3ea9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/output.tf @@ -0,0 +1,23 @@ +output "kong-ip" { + value = var.kong_ip +} + +output "kong-internal-ip" { + value = local.kong_internal_ip_fallback +} + +output "db-ip" { + value = var.db_ip +} + +output "db-internal-ip" { + value = var.db_internal_ip +} + +output "worker-ip" { + value = var.worker_ip +} + +output "worker-internal-ip" { + value = local.worker_internal_ip_fallback +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/ssh.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/ssh.tf new file mode 100644 index 00000000..1659b857 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/ssh.tf @@ -0,0 +1,6 @@ +# copy the file to current directory to be loaded by framework +resource "local_sensitive_file" "key_priv" { + source = var.ssh_key_path + filename = "./id_rsa" + file_permission = "0600" +} \ No newline at end of file diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/variables.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/variables.tf new file mode 100644 index 00000000..f34c1fab --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/bring-your-own/variables.tf @@ -0,0 +1,43 @@ +variable "kong_ip" { + type = string +} + +variable "kong_internal_ip" { + type = string + default = "" +} + +variable "worker_ip" { + type = string +} + +variable "worker_internal_ip" { + type = string + default = "" +} + +locals { + kong_internal_ip_fallback = var.kong_internal_ip != "" ? var.kong_internal_ip : var.kong_ip + worker_internal_ip_fallback = var.worker_internal_ip != "" ? var.worker_internal_ip : var.worker_ip +} + +# db IP fallback is done in the lua part +variable "db_ip" { + type = string + default = "" +} + +variable "db_internal_ip" { + type = string + default = "" +} + +variable "ssh_key_path" { + type = string +} + +variable "seperate_db_node" { + type = bool + description = "Whether to create a separate db instance" + default = false +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/.gitignore b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/.gitignore new file mode 100644 index 00000000..cbd4daf5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/.gitignore @@ -0,0 +1,8 @@ +.terraform* +!.terraform-version +terraform.tfstate* +*.deb +output +id_rsa +license.json +cm-* diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/droplets.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/droplets.tf new file mode 100644 index 00000000..bfdd2e01 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/droplets.tf @@ -0,0 +1,34 @@ +resource "digitalocean_ssh_key" "key" { + name = "key1" + public_key = tls_private_key.key.public_key_openssh +} + +resource "digitalocean_droplet" "kong" { + name = "kong-${random_string.ident.result}" + size = var.do_size + region = var.do_region + image = var.do_os + ssh_keys = [digitalocean_ssh_key.key.fingerprint] +} + +resource "digitalocean_droplet" "db" { + count = var.seperate_db_node ? 1: 0 + name = "db-${random_string.ident.result}" + size = var.do_db_size + region = var.do_region + image = var.do_os + ssh_keys = [digitalocean_ssh_key.key.fingerprint] +} + +resource "digitalocean_droplet" "worker" { + name = "worker-${random_string.ident.result}" + size = var.do_worker_size + region = var.do_region + image = var.do_os + ssh_keys = [digitalocean_ssh_key.key.fingerprint] +} + +resource "random_string" "ident" { + length = 4 + special = false +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/main.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/main.tf new file mode 100644 index 00000000..e6f29bbd --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/main.tf @@ -0,0 +1,26 @@ +terraform { + required_version = "~> 1.2" + + required_providers { + local = { + version = "~> 2.2" + } + null = { + version = "~> 3.1" + } + digitalocean = { + source = "digitalocean/digitalocean" + version = "~> 2.0" + } + tls = { + version = "~> 3.4" + } + random = { + version = "~> 3.3" + } + } +} + +provider "digitalocean" { + token = var.do_token +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/output.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/output.tf new file mode 100644 index 00000000..f5c06c89 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/output.tf @@ -0,0 +1,23 @@ +output "kong-ip" { + value = digitalocean_droplet.kong.ipv4_address +} + +output "kong-internal-ip" { + value = digitalocean_droplet.kong.ipv4_address_private +} + +output "db-ip" { + value = var.seperate_db_node ? digitalocean_droplet.db.0.ipv4_address: "" +} + +output "db-internal-ip" { + value = var.seperate_db_node ? digitalocean_droplet.db.0.ipv4_address_private: "" +} + +output "worker-ip" { + value = digitalocean_droplet.worker.ipv4_address +} + +output "worker-internal-ip" { + value = digitalocean_droplet.worker.ipv4_address_private +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/project.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/project.tf new file mode 100644 index 00000000..eadd28e1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/project.tf @@ -0,0 +1,12 @@ +data "digitalocean_project" "benchmark" { + name = var.do_project_name +} + +resource "digitalocean_project_resources" "benchmark" { + project = data.digitalocean_project.benchmark.id + resources = [ + digitalocean_droplet.kong.urn, + digitalocean_droplet.db.urn, + digitalocean_droplet.worker.urn + ] +} \ No newline at end of file diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/ssh.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/ssh.tf new file mode 100644 index 00000000..30629007 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/ssh.tf @@ -0,0 +1,10 @@ +resource "tls_private_key" "key" { + algorithm = "RSA" +} + + +resource "local_sensitive_file" "key_priv" { + content = tls_private_key.key.private_key_pem + filename = "./id_rsa" + file_permission = "0600" +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/variables.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/variables.tf new file mode 100644 index 00000000..9bdaee70 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/digitalocean/variables.tf @@ -0,0 +1,49 @@ +variable "do_token" { + type = string + description = "The digitalocean auth token" +} + +variable "do_project_name" { + type = string + description = "The digitalocean project ID under which to create the droplets" + default = "Benchmark" +} + +variable "do_size" { + type = string + description = "The droplet size on which to create the kong droplet" + default = "c2-8vpcu-16gb" +} + +variable "do_worker_size" { + type = string + description = "The droplet size on which to create the worker droplet" + default = "s-1vcpu-1gb" +} + +variable "do_db_size" { + type = string + description = "The droplet size on which to create the db droplet" + default = "s-1vcpu-1gb" +} + + +variable "do_region" { + type = string + description = "The digitalocean region in which to create the droplets" + default = "sfo3" +} + +variable "do_os" { + type = string + description = "The OS to install on the Metal droplets" + default = "ubuntu-20-04-x64" +} + +variable "seperate_db_node" { + type = bool + description = "Whether to create a separate db instance" + default = false +} + + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/.gitignore b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/.gitignore new file mode 100644 index 00000000..cbd4daf5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/.gitignore @@ -0,0 +1,8 @@ +.terraform* +!.terraform-version +terraform.tfstate* +*.deb +output +id_rsa +license.json +cm-* diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/README.md b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/README.md new file mode 100644 index 00000000..33266d29 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/README.md @@ -0,0 +1,5 @@ +Perf test terraform driver expects: +- `id_rsa` as the private key present +- `kong-ip`, `kong-internal-ip`, `worker-ip` and `worker-internal-ip` +to present in terraform output. If instance has no private IP, +use `-ip` as `-internal-ip` is also accepted. diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/main.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/main.tf new file mode 100644 index 00000000..57e7eeb7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/main.tf @@ -0,0 +1,26 @@ +terraform { + required_version = "~> 1.2" + + required_providers { + local = { + version = "~> 2.2" + } + null = { + version = "~> 3.1" + } + equinix = { + source = "equinix/equinix" + version = "~> 1.6" + } + tls = { + version = "~> 3.4" + } + random = { + version = "~> 3.3" + } + } +} + +provider "equinix" { + auth_token = var.metal_auth_token +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/metal.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/metal.tf new file mode 100644 index 00000000..af8a39f9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/metal.tf @@ -0,0 +1,49 @@ +resource "equinix_metal_ssh_key" "key" { + name = "key1" + public_key = tls_private_key.key.public_key_openssh +} + +resource "equinix_metal_device" "kong" { + hostname = "kong-${random_string.ident.result}" + plan = var.metal_plan + facilities = var.metal_region + operating_system = var.metal_os + billing_cycle = "hourly" + project_id = var.metal_project_id + tags = [] + depends_on = [ + equinix_metal_ssh_key.key, + ] +} + +resource "equinix_metal_device" "db" { + count = var.seperate_db_node ? 1: 0 + hostname = "db-${random_string.ident.result}" + plan = var.metal_db_plan + facilities = var.metal_region + operating_system = var.metal_os + billing_cycle = "hourly" + project_id = var.metal_project_id + tags = [] + depends_on = [ + equinix_metal_ssh_key.key, + ] +} + +resource "equinix_metal_device" "worker" { + hostname = "worker-${random_string.ident.result}" + plan = var.metal_worker_plan + facilities = var.metal_region + operating_system = var.metal_os + billing_cycle = "hourly" + project_id = var.metal_project_id + tags = [] + depends_on = [ + equinix_metal_ssh_key.key, + ] +} + +resource "random_string" "ident" { + length = 4 + special = false +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/output.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/output.tf new file mode 100644 index 00000000..18a40e86 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/output.tf @@ -0,0 +1,23 @@ +output "kong-ip" { + value = equinix_metal_device.kong.access_public_ipv4 +} + +output "kong-internal-ip" { + value = equinix_metal_device.kong.access_private_ipv4 +} + +output "db-ip" { + value = var.seperate_db_node ? equinix_metal_device.db.0.access_public_ipv4: "" +} + +output "db-internal-ip" { + value = var.seperate_db_node ? equinix_metal_device.db.0.access_private_ipv4: "" +} + +output "worker-ip" { + value = equinix_metal_device.worker.access_public_ipv4 +} + +output "worker-internal-ip" { + value = equinix_metal_device.worker.access_private_ipv4 +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/scripts/wrk.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/scripts/wrk.lua new file mode 100644 index 00000000..d8cd38b6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/scripts/wrk.lua @@ -0,0 +1,54 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- luacheck: ignore +--This script is executed in conjuction with the wrk benchmarking tool via demo.sh +math.randomseed(os.time()) -- Generate PRNG seed +local rand = math.random -- Cache random method + +-- Get env vars for consumer and api count or assign defaults +local consumer_count = os.getenv("KONG_DEMO_CONSUMER_COUNT") or 5 +local service_count = os.getenv("KONG_DEMO_SERVICE_COUNT") or 5 +local workspace_count = os.getenv("KONG_DEMO_WORKSPACE_COUNT") or 1 +local route_per_service = os.getenv("KONG_DEMO_ROUTE_PER_SERVICE") or 5 + +function request() + -- generate random URLs, some of which may yield non-200 response codes + local random_consumer = rand(consumer_count) + local random_service = rand(service_count) + local random_route = rand(route_per_service) + -- Concat the url parts + if workspace_count == 1 then + url_path = string.format("/s%s-r%s?apikey=consumer-%s", random_service, random_route, random_consumer) + else + random_workspace = rand(workspace_count) + url_path = string.format("/w%s-s%s-r%s?apikey=consumer-%s", random_workspace, random_service, random_route, random_consumer) + end + -- Return the request object with the current URL path + return wrk.format(nil, url_path, headers) +end + +--[[function done(summary, latency, requests) + local file = io.open("output.csv", "a") + file:write(string.format( + "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", + os.time(), + latency.min, + latency.max, + latency.mean, + latency:percentile(50), + latency:percentile(90), + latency:percentile(99), + summary.duration, + summary.requests, + summary.errors.connect, + summary.errors.read, + summary.errors.write, + summary.errors.status, + summary.errors.timeout + )) +end]] diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/ssh.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/ssh.tf new file mode 100644 index 00000000..9ca74532 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/ssh.tf @@ -0,0 +1,5 @@ +resource "local_sensitive_file" "key_priv" { + content = tls_private_key.key.private_key_pem + filename = "./id_rsa" + file_permission = "0600" +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/tls.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/tls.tf new file mode 100644 index 00000000..1ee3f01a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/tls.tf @@ -0,0 +1,4 @@ +resource "tls_private_key" "key" { + algorithm = "RSA" +} + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/variables.tf b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/variables.tf new file mode 100644 index 00000000..69792e03 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/perf/terraform/equinix-metal/variables.tf @@ -0,0 +1,48 @@ +variable "metal_auth_token" { + type = string + description = "The pre-existing Metal auth token" +} + +variable "metal_project_id" { + type = string + description = "The pre-existing Metal project ID under which to create the devices" +} + +variable "metal_plan" { + type = string + description = "The Metal device plan on which to create the kong devices" + default = "c3.small.x86" +} + +variable "metal_worker_plan" { + type = string + description = "The Metal device plan on which to create the worker devices" + default = "c3.small.x86" +} + +variable "metal_db_plan" { + type = string + description = "The Metal device plan on which to create the db devices" + default = "c3.small.x86" +} + +variable "metal_region" { + type = list(string) + description = "The Metal region in which to create the devices" + # All AMER facilities + default = ["dc13", "da11", "sv15", "sv16", "sp4", "ch3", "ny5", "ny7", "la4", "tr2", "se4"] +} + +variable "metal_os" { + type = string + description = "The OS to install on the Metal devices" + default = "ubuntu_20_04" +} + +variable "seperate_db_node" { + type = bool + description = "Whether to create a separate db instance" + default = false +} + + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/prometheus/metrics.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/prometheus/metrics.conf new file mode 100644 index 00000000..8436a97a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/prometheus/metrics.conf @@ -0,0 +1,13 @@ +server { + server_name kong_prometheus_exporter; + listen 0.0.0.0:9542; + + location / { + default_type text/plain; + content_by_lua_block { + local serve = require "kong.plugins.prometheus.serve" + serve.prometheus_server() + } + } + +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.crt new file mode 100644 index 00000000..54b617b7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.crt @@ -0,0 +1,121 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 04:1e:bb:94:6a:44:ac:b3:2d:3b:fb:25:68:c5:0f:c7:8e:15:54:a7 + Signature Algorithm: sha512WithRSAEncryption + Issuer: C = US, ST = California, O = Kong, CN = Kong Testing Root CA + Validity + Not Before: Jan 4 06:45:00 2023 GMT + Not After : Dec 30 06:45:00 2042 GMT + Subject: C = US, ST = California, O = Kong, CN = Kong Testing Root CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (4096 bit) + Modulus: + 00:d5:57:b6:92:01:54:fa:d9:7c:7f:05:10:93:cd: + 22:a5:a1:ca:f0:ef:58:12:da:08:33:f1:39:55:41: + 39:03:4a:98:54:1b:a7:d5:30:53:05:69:2d:69:f9: + d7:b7:b7:8a:5d:b0:cf:3c:bd:9e:51:e7:35:bc:b4: + 5c:db:f4:f0:44:77:9c:2e:51:e0:9f:93:49:42:6b: + 5d:f7:de:35:72:68:ee:c2:d7:08:47:ff:09:fa:75: + f1:2e:fc:34:e1:d1:b6:75:11:c6:72:18:7a:80:ff: + b4:df:82:e5:25:9d:06:70:fc:64:5f:0b:a0:ec:3b: + 82:65:6e:13:23:18:db:22:d2:66:79:cd:d9:9e:24: + af:76:b2:30:3a:cf:c2:50:6e:8e:61:f1:f1:c4:ad: + 3e:28:53:c8:6e:ee:98:f6:d2:ed:ad:7f:fe:46:98: + 8e:1d:4b:c4:21:ab:e3:43:76:7f:71:2c:d7:0f:d2: + 30:a3:42:b9:23:fc:99:ed:18:d8:a0:64:d2:9c:93: + 02:98:33:e5:9e:c0:48:35:8a:de:a1:46:a3:e8:02: + 06:cb:17:ff:2f:2b:b2:2a:28:80:48:7c:a6:01:d9: + 26:b1:1a:71:7a:f2:46:fc:b8:f7:d4:90:89:5f:73: + 10:56:4e:db:b4:de:39:c5:ee:61:4e:58:1d:10:f6: + cb:18:35:8a:d9:b6:c8:67:c4:fd:59:3b:d2:30:f2: + 33:f6:9b:c7:71:27:a8:c4:54:d7:26:86:78:2d:ef: + 51:e6:46:d2:56:8e:e3:4d:26:70:15:ef:a2:ac:c1: + 90:d9:24:60:cb:f8:54:47:91:78:e9:4a:b3:47:82: + e8:75:c3:2d:40:df:95:cf:8a:ca:6b:47:cb:f1:3f: + 01:3c:91:99:cb:6d:64:6f:35:69:6d:51:68:eb:bb: + f8:27:5d:4f:5e:df:fe:a5:3e:29:ee:ed:d2:65:c4: + 75:15:06:f2:10:51:0e:80:8e:23:d6:1c:00:be:a7: + f4:53:ca:c4:5e:b1:ff:8f:d2:d9:b8:6a:26:ee:ba: + bb:77:02:54:5c:f9:a8:f1:fb:84:aa:61:6f:03:d0: + 0e:67:7e:9f:a8:3d:57:f2:f0:35:ff:3d:c1:63:56: + 12:75:66:e0:1d:3a:b9:d0:b6:a3:12:9f:a9:30:01: + 0b:1f:87:74:d2:30:88:ea:e3:f5:ea:f5:d1:6c:34: + 33:7f:aa:a3:d5:59:ee:08:8c:a0:37:5f:57:c9:43: + e4:b6:ad:ae:be:43:dc:46:b7:ba:dd:e0:21:51:bb: + 83:b0:16:95:ab:b0:13:a6:d3:22:f4:c6:c8:e0:2a: + 5b:82:f0:dd:e5:55:d8:d1:1b:73:ab:47:3a:c6:77: + ed:dc:bb + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Subject Key Identifier: + 13:6D:39:C0:7E:81:64:DE:4D:9F:5A:64:60:95:F7:44:37:5F:13:8E + Signature Algorithm: sha512WithRSAEncryption + Signature Value: + b2:7d:b7:01:d2:28:4d:eb:ff:b5:db:ca:02:5e:72:11:c8:34: + 49:ca:ea:86:00:28:f4:4f:7d:9e:3d:ed:d7:ef:ac:f8:59:20: + 78:3b:51:96:a4:e8:f8:99:77:f4:69:d7:c0:bf:26:30:43:de: + f6:71:b0:c1:59:23:85:29:ea:80:b8:52:2c:1a:8a:d0:c0:03: + 82:9c:83:eb:04:5d:08:e9:fd:dc:ce:a7:22:e4:d7:0d:cf:62: + 7b:dd:52:29:70:cb:04:1d:ad:cc:be:b4:04:fc:2b:8e:46:83: + 1f:87:5f:90:5b:d7:6b:b3:e1:30:55:b7:1b:9c:7d:a4:85:7b: + 12:d0:4d:a4:2b:2c:79:de:3e:1c:cb:be:04:6c:08:48:cd:b1: + d5:72:96:cb:17:18:88:35:20:ca:c5:cf:4f:73:7e:73:2f:04: + cf:3d:90:7c:0f:c5:1a:2c:6e:89:87:19:ed:28:99:50:b9:b5: + 3b:c1:68:fa:51:de:35:ad:ae:a6:17:c5:74:47:fb:fa:31:b0: + 59:21:6d:2a:50:a5:28:2e:12:5a:c8:a3:4f:7c:78:d8:62:fc: + e6:c7:d8:53:6b:9d:56:db:5b:71:4d:2c:32:01:e7:2e:ca:a4: + 93:92:7e:29:8c:13:ed:6e:f2:b0:59:53:03:69:20:93:69:5c: + 21:3e:0b:a7:9c:db:39:fc:18:6e:96:9a:7c:86:0f:fb:99:92: + 3b:c2:09:5d:ce:b0:cc:0d:ab:28:58:10:6c:5c:11:09:26:d2: + d6:1d:ac:cf:8e:0e:08:14:ed:5e:78:9b:4e:e9:c4:39:95:dc: + b6:c4:a1:1f:ae:5f:6c:47:47:a6:3a:8c:0c:df:82:7a:7f:a2: + d0:ed:e4:f9:d9:e4:1f:7e:a5:71:65:8d:f0:44:78:1a:ee:7d: + b1:af:ea:a1:8f:4a:50:cd:2c:76:1f:06:1b:48:1f:42:2f:72: + e5:35:0b:71:68:ef:a9:8e:42:00:67:9b:e4:30:36:29:37:12: + eb:3c:a2:74:7b:94:fc:3b:84:b9:7d:f5:b9:fc:d5:08:74:b6: + ea:9c:89:78:94:2e:51:6a:37:60:9b:24:95:da:63:bd:d7:ca: + 40:2c:57:8c:dd:5c:fd:78:d8:51:0c:bc:23:06:9e:fb:b0:8a: + 50:ea:aa:c1:f0:a3:a1:85:d8:81:a1:84:19:c2:71:0d:ce:dd: + b7:e8:c7:b9:4f:2f:7d:5b:83:34:d9:2c:1c:3d:68:92:2f:4c: + 63:67:d3:cb:9a:c5:e8:d6:98:76:d4:32:03:92:19:02:73:09: + 1a:29:74:58:e9:a1:29:f8:30:54:f4:fb:9e:c8:13:7f:96:59: + 2c:54:19:40:99:3e:0e:ee +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIUBB67lGpErLMtO/slaMUPx44VVKcwDQYJKoZIhvcNAQEN +BQAwUDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExDTALBgNVBAoT +BEtvbmcxHTAbBgNVBAMTFEtvbmcgVGVzdGluZyBSb290IENBMB4XDTIzMDEwNDA2 +NDUwMFoXDTQyMTIzMDA2NDUwMFowUDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh +bGlmb3JuaWExDTALBgNVBAoTBEtvbmcxHTAbBgNVBAMTFEtvbmcgVGVzdGluZyBS +b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1Ve2kgFU+tl8 +fwUQk80ipaHK8O9YEtoIM/E5VUE5A0qYVBun1TBTBWktafnXt7eKXbDPPL2eUec1 +vLRc2/TwRHecLlHgn5NJQmtd9941cmjuwtcIR/8J+nXxLvw04dG2dRHGchh6gP+0 +34LlJZ0GcPxkXwug7DuCZW4TIxjbItJmec3ZniSvdrIwOs/CUG6OYfHxxK0+KFPI +bu6Y9tLtrX/+RpiOHUvEIavjQ3Z/cSzXD9Iwo0K5I/yZ7RjYoGTSnJMCmDPlnsBI +NYreoUaj6AIGyxf/LyuyKiiASHymAdkmsRpxevJG/Lj31JCJX3MQVk7btN45xe5h +TlgdEPbLGDWK2bbIZ8T9WTvSMPIz9pvHcSeoxFTXJoZ4Le9R5kbSVo7jTSZwFe+i +rMGQ2SRgy/hUR5F46UqzR4LodcMtQN+Vz4rKa0fL8T8BPJGZy21kbzVpbVFo67v4 +J11PXt/+pT4p7u3SZcR1FQbyEFEOgI4j1hwAvqf0U8rEXrH/j9LZuGom7rq7dwJU +XPmo8fuEqmFvA9AOZ36fqD1X8vA1/z3BY1YSdWbgHTq50LajEp+pMAELH4d00jCI +6uP16vXRbDQzf6qj1VnuCIygN19XyUPktq2uvkPcRre63eAhUbuDsBaVq7ATptMi +9MbI4CpbgvDd5VXY0Rtzq0c6xnft3LsCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBNtOcB+gWTeTZ9aZGCV90Q3XxOO +MA0GCSqGSIb3DQEBDQUAA4ICAQCyfbcB0ihN6/+128oCXnIRyDRJyuqGACj0T32e +Pe3X76z4WSB4O1GWpOj4mXf0adfAvyYwQ972cbDBWSOFKeqAuFIsGorQwAOCnIPr +BF0I6f3czqci5NcNz2J73VIpcMsEHa3MvrQE/CuORoMfh1+QW9drs+EwVbcbnH2k +hXsS0E2kKyx53j4cy74EbAhIzbHVcpbLFxiINSDKxc9Pc35zLwTPPZB8D8UaLG6J +hxntKJlQubU7wWj6Ud41ra6mF8V0R/v6MbBZIW0qUKUoLhJayKNPfHjYYvzmx9hT +a51W21txTSwyAecuyqSTkn4pjBPtbvKwWVMDaSCTaVwhPgunnNs5/Bhulpp8hg/7 +mZI7wgldzrDMDasoWBBsXBEJJtLWHazPjg4IFO1eeJtO6cQ5ldy2xKEfrl9sR0em +OowM34J6f6LQ7eT52eQffqVxZY3wRHga7n2xr+qhj0pQzSx2HwYbSB9CL3LlNQtx +aO+pjkIAZ5vkMDYpNxLrPKJ0e5T8O4S5ffW5/NUIdLbqnIl4lC5RajdgmySV2mO9 +18pALFeM3Vz9eNhRDLwjBp77sIpQ6qrB8KOhhdiBoYQZwnENzt236Me5Ty99W4M0 +2SwcPWiSL0xjZ9PLmsXo1ph21DIDkhkCcwkaKXRY6aEp+DBU9PueyBN/llksVBlA +mT4O7g== +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.key b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.key new file mode 100644 index 00000000..871f6b34 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/ca.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIJJwIBAAKCAgEA1Ve2kgFU+tl8fwUQk80ipaHK8O9YEtoIM/E5VUE5A0qYVBun +1TBTBWktafnXt7eKXbDPPL2eUec1vLRc2/TwRHecLlHgn5NJQmtd9941cmjuwtcI +R/8J+nXxLvw04dG2dRHGchh6gP+034LlJZ0GcPxkXwug7DuCZW4TIxjbItJmec3Z +niSvdrIwOs/CUG6OYfHxxK0+KFPIbu6Y9tLtrX/+RpiOHUvEIavjQ3Z/cSzXD9Iw +o0K5I/yZ7RjYoGTSnJMCmDPlnsBINYreoUaj6AIGyxf/LyuyKiiASHymAdkmsRpx +evJG/Lj31JCJX3MQVk7btN45xe5hTlgdEPbLGDWK2bbIZ8T9WTvSMPIz9pvHcSeo +xFTXJoZ4Le9R5kbSVo7jTSZwFe+irMGQ2SRgy/hUR5F46UqzR4LodcMtQN+Vz4rK +a0fL8T8BPJGZy21kbzVpbVFo67v4J11PXt/+pT4p7u3SZcR1FQbyEFEOgI4j1hwA +vqf0U8rEXrH/j9LZuGom7rq7dwJUXPmo8fuEqmFvA9AOZ36fqD1X8vA1/z3BY1YS +dWbgHTq50LajEp+pMAELH4d00jCI6uP16vXRbDQzf6qj1VnuCIygN19XyUPktq2u +vkPcRre63eAhUbuDsBaVq7ATptMi9MbI4CpbgvDd5VXY0Rtzq0c6xnft3LsCAwEA +AQKCAgBwQKWkbyT6lEKoRs7xJcdsJRQ174mE6cnVIsCK9jV8YNyDrMWDK9kTCMNH +dpklZmJcZ7KzAAZ0i9Y/gxs09M0TCWhZCuXIsOOkGgAocnfmygWO6TvHPg9PBI2x +rixZAVIiiQbEc9LJW0IdNK9DOjrwaiyZwfGbOriii+dv2R08Vj5rKn+tcRoNtzYf +S7+vOGycZoRSeuEwsNzOWaaMgHFkj+sH1C86hOoe2WVL0ua9ct15ypui23G02K1Z +DnC0/DfBAK0lznCsNfoIihgX/aYyZhaS9/5iIHivK/5LpaJnaI2uM/6vtRja0qw7 +4Q0W9uEKuJVrtl3pokL6yOwKSACVtt7UH8cdzxTCG+6PZSDi4Taumv4AI3/YlXEK +G6RyeYTsHrFJIt3nwTxnG06G/YiRCXCPd6UEgFQBS+E1/iMPJYe0lFliQJ6ugnGd +wn5alJ/nIPWtAGEOa6TOltVQN/1y2G+BkJpvIVVUU+a6vTp+M3QCX3Q25Sl3/bOv +3uDtE08cWSQAzA+njfX6ySckMq4O3cbq633CPluIzWTT/YjG+s39mUsIXLfZEqqk +e+U0rfOmRa1lcqQdWLNzHHp5HT150mEDSUVOgykEA8JYAzRdy8G2A2mcLwob8/iA +yagwACE3UYB5s2jN1b24OfEZCgKLnbvMEsppJOYqiId5x2efGQKCAQEA2lxVbS/7 +W6P/0on9B+QvMS1xIATiGhgHjbk4UBuW4Y0cIbJoAeSJnOOteFYRMxvxkWCkTb6q +V9IxNm+PZWHjpkbxSAVvX00X08Dqvp6OtWmxHU5dvCEUTa9HudBSZPBtWG7iXRJK +SuERLFOeD7KnAhkdqROVtCz8YBdzEljnZ4j/YzjWpAMQBPurwRmOVQVz36Ukuveh +qGLXm8s6YPP9CiCMxt4DHjef51AkqNqewpN6TK5KPSZjruTWbzhT8934WWqXSYuU +BYJ6LgEpVWF0dA8MXbWdbzRsocAhwm6ABa5BRZyUmZyl9lH9DUxlJ5omzZ+2t4/i +D4QbzBUM+dBtRwKCAQEA+h3yUDVW0FRu5gG/QfbPcOKukbxnbwTJZMgyvPxIoAzg +LxJiSYBPo4osW+dPtg8P+Sta7JEYB6PovSJjuX6e5i7oRJTIhQPc+0R5vAaUlrOl +Li+cU2/sxuFf5b+R5OqEjtSrS8oUZOn28ShZS9rCTZUn+bf6yZA7fI4CoFIXj7ar +xBq/5jGs45LvXaaUPc9XzBTkhWacpd9Hinx5d9v6O0C9UsMGoYk+Y6LfW1QV2l19 +gp/oWOXOWde454hirae0n0peeEwv9Ep7LEbf+CCJU/RyWYm6O/zIK9jU2fZsmACw +W2TggftuEJY2/I1CPxfDOXti9c9FRgLSiVHSDzK+7QKCAQByYuoRP5Bh6iBKDyTw +rFUYYuCe0FANMUdLs5pPRJSeZQg2krmvPCPmftJRdmyeJGZALKsFWvrq9F35USmC +B2x0nzcn7kjwWHdB4w5VesPxPoOcgX/S3FVBeK+PJBT1cYkmSTflX35xiUMwwEDN +ol2gWL3T40GJ2AMA52fNVasq7nYyaQTvd/c9VQUdK6EG4stXfbAnDS+vANBHeYeE +YGvOkUyNpKFng+YNC0uY9KUz8oOfhbG4JNMVPCUksBIybrX5SUAlM6v/0uDkFpGr +e1jAr11f/ZKSPZkmhnpo2u/PigABUkv5yDicN0jjXYCj5Tmsf5z8va/DRwY0u1ZH +yypjAoIBAHFoqrqbtOV5o18/Y41xb9XrsuP53ZyFOxwrenYenn+T1wMA/vf86h9p +Q3vYglg2tDNy6SNjFtZACAPaWAV/2GTe2ApgvBs0CTsVbW1IPo+mnTs381YR5fa3 +slfmaSy2+awZ2iHfWyf2vjXS6cpvQrMS8rFULq6+a3qqmZ5AGtbbKT8eMe0akR4P +PeHk6kqsfU7YGlYylMzRVQsCLcGfSPMdA7tHGvab2GItM8GhetcslQBpqVzFtq8e +FYVGXhgHdurTOcqqIQRP0VHeQSes+RfMOx1GSd9xWwImqzy5c7vodA68yt+lNd7n +fb89/c/F4otp2xFCDlMUbIo/Q1QI2nECggEAedXZSGOw3BLY8yDRoRczibN9AlwF +AgQeBS1g0DS6Mz+9C9j1FP9I8oFqwrFVtuYITqaI9LL4Zdebbebd1r4AmoxVrv4u +WtHH80hHpr5tkONhHxN4IG4BLoYQQiIAD0Hg94TEUUDAosHM5zKgdLkqEX75rj9p +Sz2jWQyDoh809CJpUSyDqnEeb8/MZ0vwWUrYINIImFNjd3w1jasAxTdul7hmLQ2P +e9dPRzQ/gIgmiUvbBJZ1ujSFVnhIqfoAGkqkoUQ9EIFhpuzAnNHPPwZzGDxDedE4 +KVgGvJrXP6eJfgqOMjaXHPEF2eZu3gBcFKE30Vg+QW8YvhYOCVxiBFua/g== +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/redis/docker-entrypoint.sh b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/docker-entrypoint.sh new file mode 100755 index 00000000..a448be06 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/docker-entrypoint.sh @@ -0,0 +1,19 @@ +#!/bin/sh +set -e + +echo "Kong CI redis container..." + +if [ -d /workspace ] ; then + echo "Starting test server..." + + redis-server \ + --port 6379 \ + --tls-port 6380 \ + --tls-cert-file /workspace/spec/fixtures/redis/server.crt \ + --tls-key-file /workspace/spec/fixtures/redis/server.key \ + --tls-cluster no \ + --tls-replication no \ + --tls-auth-clients no +fi + +tail -f /dev/null diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.crt b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.crt new file mode 100644 index 00000000..ce7dd4f6 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.crt @@ -0,0 +1,128 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 09:a1:b0:61:a9:f6:73:c8:f5:b4:1b:e3:e9:bc:ad:57:88:f5:cf:44 + Signature Algorithm: sha512WithRSAEncryption + Issuer: C = US, ST = California, O = Kong, CN = Kong Testing Root CA + Validity + Not Before: Jan 4 06:45:00 2023 GMT + Not After : Dec 30 05:45:00 2042 GMT + Subject: C = US, ST = California, O = Kong, CN = test-redis.example.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (4096 bit) + Modulus: + 00:cc:c1:d2:98:49:98:4b:6a:8c:4a:40:1b:93:35: + 29:29:55:78:b9:b9:e2:3a:ac:25:07:4f:7c:0c:da: + bf:f0:18:5d:57:9f:03:90:9f:30:d6:ff:7d:31:e9: + 3a:0e:c5:f2:e6:d8:1f:af:d4:7f:8a:bd:72:1e:4d: + ba:75:9f:2b:f3:77:72:03:30:7b:ca:67:fc:76:7a: + 42:57:81:02:aa:bc:b6:2f:63:e8:72:ec:e6:85:73: + f5:1d:a9:4d:47:7f:d2:3c:e2:e9:40:cd:0d:5c:f8: + e1:e8:88:89:1a:0d:8f:68:8a:63:9f:62:6c:03:30: + 19:ad:db:34:5a:f5:65:85:c5:7c:32:13:24:e8:5f: + 30:93:27:ce:01:72:1e:b7:72:48:fc:a6:72:b4:8e: + 08:ec:b8:c3:f7:95:60:92:e2:b0:d1:9d:9c:76:41: + f4:96:1e:96:a6:ab:73:16:78:7e:6a:8b:27:43:0d: + 69:19:6d:b7:6d:c0:21:56:2e:32:6b:ef:dc:31:7b: + f0:bc:16:d2:50:3b:bf:fb:7f:65:96:e3:a5:2c:d2: + 35:a8:f4:06:82:85:5c:89:02:a0:2f:96:5f:75:f3: + 63:22:7c:f3:06:12:66:85:d4:9a:a9:54:d6:12:96: + 96:54:0e:da:f5:6f:ae:8c:5a:72:9a:85:d5:9c:63: + d1:14:5a:7a:62:44:a5:6f:8d:ed:67:86:e4:34:6f: + 26:03:e2:17:57:b8:ee:e9:e7:c0:7d:f1:4e:33:f6: + 7f:0a:5c:25:92:04:fb:b1:90:14:e4:dd:cf:16:20: + 15:12:87:29:b7:b0:e9:d2:96:4d:1a:16:36:f3:de: + dd:0f:e6:55:da:09:df:a1:1a:e7:d0:d8:d2:b6:90: + 01:25:24:eb:1a:73:c5:54:d7:75:1e:86:a2:1c:56: + 58:66:05:99:5b:bd:e2:8e:12:a6:16:cb:56:f2:16: + b2:23:80:1b:d3:5f:ca:17:ec:ad:aa:45:de:76:4b: + be:d1:57:94:45:a9:3e:2d:33:1d:ae:e1:ce:27:6b: + e5:cf:13:4b:8e:d9:bc:cd:52:a5:7c:bf:0b:eb:8b: + 0c:b3:fb:12:b2:44:21:43:d3:56:1f:16:35:09:5f: + f7:45:ac:c9:1a:4d:2d:eb:8a:12:9b:35:48:b0:d6: + e6:c9:2e:0d:cd:b1:c6:f3:7b:96:6c:cd:f8:82:c9: + 29:b3:28:d4:82:82:80:9a:de:b1:3e:67:00:99:1e: + 02:b1:15:13:0f:6b:7c:2f:e6:31:ef:13:34:20:89: + bf:56:fe:05:41:2d:53:63:a7:ab:d7:d4:fa:ec:81: + 23:c6:1f:42:e5:a6:de:0c:08:d0:b0:8c:1b:41:ec: + 56:b6:25 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Key Usage: critical + Digital Signature, Key Encipherment + X509v3 Extended Key Usage: + TLS Web Server Authentication + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Subject Key Identifier: + D9:74:21:02:5A:95:A3:CF:F3:BD:1F:99:66:75:D7:69:B5:E1:3E:02 + X509v3 Authority Key Identifier: + 13:6D:39:C0:7E:81:64:DE:4D:9F:5A:64:60:95:F7:44:37:5F:13:8E + X509v3 Subject Alternative Name: + DNS:test-redis.example.com + Signature Algorithm: sha512WithRSAEncryption + Signature Value: + 5e:3f:cd:02:be:1d:3e:e9:0a:25:98:a8:ae:a7:d0:23:2c:f8: + 46:e1:0c:25:d2:a3:73:19:01:08:f7:fb:18:da:65:f6:b3:4d: + 28:bb:37:b3:cc:cc:01:ef:c4:ed:18:92:06:78:9d:81:a4:5a: + bf:04:f4:c0:3d:0e:97:65:28:d1:8d:cb:1b:92:46:a1:3c:55: + 09:e8:b5:eb:4c:36:9f:5b:79:70:4d:bf:c0:6a:27:83:d2:b5: + c9:a2:af:f6:92:1c:f5:e9:1d:28:72:b3:7c:84:81:44:bf:e9: + cf:3c:73:3d:07:f4:c2:e5:fa:62:d7:5a:a7:87:e9:16:d4:f2: + 92:b0:22:b0:8a:1c:75:b0:f5:e9:91:28:55:1b:57:99:e0:d1: + 34:18:c2:11:d9:9a:9e:8b:32:c8:d0:5c:5b:20:eb:ac:7a:7b: + ee:05:8c:0c:5a:56:25:a2:c9:71:15:e5:07:c4:e7:99:a0:f7: + 38:dd:45:97:43:66:44:f9:d4:08:22:33:b6:ec:5b:09:25:d0: + 35:2f:00:3b:ef:05:93:36:d1:39:bf:66:77:ce:12:86:9f:22: + 12:53:a9:d2:8a:e3:6b:c2:d9:3a:ee:c6:9f:13:e1:34:15:d0: + a4:11:09:93:17:38:f7:e9:f7:d7:64:6a:9f:64:6a:28:50:b1: + 61:c6:ac:63:51:01:8c:e4:9c:c8:98:73:38:2c:ea:31:4b:b9: + 35:dc:26:08:58:f6:f8:fd:db:70:fb:b4:6c:be:ee:0c:da:87: + 90:01:66:c6:5c:08:f3:68:f4:8b:ea:55:54:9e:26:a0:4e:4d: + 37:7a:ff:85:22:9d:d8:ec:4e:e7:a9:5f:54:b8:16:73:af:7c: + fd:17:af:1f:87:92:b7:8b:c9:12:be:13:bd:0e:d0:6b:c9:df: + 6a:a4:e1:8d:87:de:b4:30:94:0a:26:98:23:88:8f:b0:eb:01: + 00:60:f0:63:bb:3b:c1:e6:92:0a:77:7b:c5:fa:3e:11:cc:04: + 21:48:bd:86:63:7f:ce:b7:be:b3:68:bb:b5:a0:50:ea:df:e9: + e8:9e:70:10:f8:10:ec:6c:8a:5e:7e:69:3e:eb:f3:9e:5b:a9: + d6:8b:39:40:37:79:47:74:15:aa:04:88:bd:76:a7:07:9b:2e: + b4:ee:cc:f0:db:55:94:33:93:fb:52:3c:75:8b:78:ec:eb:fe: + 83:f3:76:b5:87:c7:2c:45:65:11:67:9a:4b:ac:0d:46:89:13: + 96:56:44:0e:bb:dd:f9:b6:fc:99:d8:37:8d:33:aa:5b:c2:61: + c7:20:e1:e7:67:67:b9:79:da:95:8f:60:10:05:84:bb:f0:ab: + b4:0e:a7:d9:2e:ac:3a:38 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.key b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.key new file mode 100644 index 00000000..e0fb26f7 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/redis/server.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/redis_cluster/redis-cluster-compose.yaml b/kong-versions/3.2.2.4/kong/spec/fixtures/redis_cluster/redis-cluster-compose.yaml new file mode 100644 index 00000000..f16334e1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/redis_cluster/redis-cluster-compose.yaml @@ -0,0 +1,64 @@ +version: '3.5' +name: redis-cluster +services: + rc-node-1: + image: redis:7.0.2 + volumes: + - rc-node-1-data:/data + ports: + - "6381:6381" + command: redis-server --port 6381 --cluster-enabled yes --cluster-port 16381 --cluster-config-file rc-node-1.conf --cluster-node-timeout 5000 --appendonly yes --cluster-announce-port 6381 --cluster-announce-bus-port 16381 --daemonize no --loglevel debug + rc-node-2: + image: redis:7.0.2 + volumes: + - rc-node-2-data:/data + ports: + - "6382:6382" + command: redis-server --port 6382 --cluster-enabled yes --cluster-port 16382 --cluster-config-file rc-node-2.conf --cluster-node-timeout 5000 --appendonly yes --cluster-announce-port 6382 --cluster-announce-bus-port 16382 --daemonize no --loglevel debug + rc-node-3: + image: redis:7.0.2 + volumes: + - rc-node-3-data:/data + ports: + - "6383:6383" + command: redis-server --port 6383 --cluster-enabled yes --cluster-port 16383 --cluster-config-file rc-node-3.conf --cluster-node-timeout 5000 --appendonly yes --cluster-announce-port 6383 --cluster-announce-bus-port 16383 --daemonize no --loglevel debug + rc-node-4: + image: redis:7.0.2 + volumes: + - rc-node-4-data:/data + ports: + - "6384:6384" + command: redis-server --port 6384 --cluster-enabled yes --cluster-port 16384 --cluster-config-file rc-node-4.conf --cluster-node-timeout 5000 --appendonly yes --cluster-announce-port 6384 --cluster-announce-bus-port 16384 --daemonize no --loglevel debug + rc-node-5: + image: redis:7.0.2 + volumes: + - rc-node-5-data:/data + ports: + - "6385:6385" + command: redis-server --port 6385 --cluster-enabled yes --cluster-port 16385 --cluster-config-file rc-node-5.conf --cluster-node-timeout 5000 --appendonly yes --cluster-announce-port 6385 --cluster-announce-bus-port 16385 --daemonize no --loglevel debug + rc-node-6: + image: redis:7.0.2 + volumes: + - rc-node-6-data:/data + ports: + - "6386:6386" + command: redis-server --port 6386 --cluster-enabled yes --cluster-port 16386 --cluster-config-file rc-node-6.conf --cluster-node-timeout 5000 --appendonly yes --cluster-announce-port 6386 --cluster-announce-bus-port 16386 --daemonize no --loglevel debug + create-cluster: + image: redis:7.0.2 + command: redis-cli --cluster create rc-node-1:6381 rc-node-2:6382 rc-node-3:6383 rc-node-4:6384 rc-node-5:6385 rc-node-6:6386 --cluster-replicas 1 --cluster-yes + depends_on: + - rc-node-1 + - rc-node-2 + - rc-node-3 + - rc-node-4 + - rc-node-5 + - rc-node-6 + +volumes: + rc-node-1-data: + rc-node-2-data: + rc-node-3-data: + rc-node-4-data: + rc-node-5-data: + rc-node-6-data: + diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/reload.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/reload.conf new file mode 100644 index 00000000..4f48721e --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/reload.conf @@ -0,0 +1,3 @@ +prefix = servroot +nginx_main_worker_processes = 1 +proxy_listen = 0.0.0.0:9000 diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/router_path_handling_tests.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/router_path_handling_tests.lua new file mode 100644 index 00000000..f2548db5 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/router_path_handling_tests.lua @@ -0,0 +1,212 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local utils = require "kong.tools.utils" + +-- The following tests are used by unit and integration tests +-- to test the router path handling. Putting them here avoids +-- copy-pasting them in several places. +-- +-- The tests can obtain this table by requiring +-- "spec.fixtures.router_path_handling_tests" +-- +-- The rows are sorted by service_path, route_path, strip_path, path_handling and request_path. +-- +-- Notes: +-- * The tests are parsed into a hash form at the end +-- of this file before they are returned. +-- * Before a test can be executed, it needs to be "expanded". +-- For example, a test with {"v0", "v1"} must be converted +-- into two tests, one with "v0" and one with "v1". Each line +-- can be expanded using the `line:expand()` method. + +local tests = { + -- service_path route_path strip_path path_handling request_path expected_path + { "/", "/", {false, true}, {"v0", "v1"}, "/", "/", }, + { "/", "/", {false, true}, {"v0", "v1"}, "/route", "/route", }, + { "/", "/", {false, true}, {"v0", "v1"}, "/route/", "/route/", }, + { "/", "/", {false, true}, {"v0", "v1"}, "/routereq", "/routereq", }, + { "/", "/", {false, true}, {"v0", "v1"}, "/route/req", "/route/req", }, -- 5 + -- service_path route_path strip_path path_handling request_path expected_path + { "/", "/route", false, {"v0", "v1"}, "/route", "/route", }, + { "/", "/route", false, {"v0", "v1"}, "/route/", "/route/", }, + { "/", "/route", false, {"v0", "v1"}, "/routereq", "/routereq", }, + { "/", "/route", true, {"v0", "v1"}, "/route", "/", }, + { "/", "/route", true, {"v0", "v1"}, "/route/", "/", }, + { "/", "/route", true, {"v0", "v1"}, "/routereq", "/req", }, -- 11 + -- service_path route_path strip_path path_handling request_path expected_path + { "/", "/route/", false, {"v0", "v1"}, "/route/", "/route/", }, + { "/", "/route/", false, {"v0", "v1"}, "/route/req", "/route/req", }, + { "/", "/route/", true, {"v0", "v1"}, "/route/", "/", }, + { "/", "/route/", true, {"v0", "v1"}, "/route/req", "/req", }, -- 15 + -- service_path route_path strip_path path_handling request_path expected_path + { "/srv", "/rou", false, "v0", "/roureq", "/srv/roureq", }, + { "/srv", "/rou", false, "v1", "/roureq", "/srvroureq", }, + { "/srv", "/rou", true, "v0", "/roureq", "/srv/req", }, + { "/srv", "/rou", true, "v1", "/roureq", "/srvreq", }, -- 19 + -- service_path route_path strip_path path_handling request_path expected_path + { "/srv/", "/rou", false, {"v0", "v1"}, "/rou", "/srv/rou", }, + { "/srv/", "/rou", true, "v0", "/rou", "/srv", }, + { "/srv/", "/rou", true, "v1", "/rou", "/srv/", }, -- 22 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/", {false, true}, {"v0", "v1"}, "/", "/service", }, + { "/service", "/", {false, true}, "v0", "/route", "/service/route", }, + { "/service", "/", {false, true}, "v1", "/route", "/serviceroute", }, + { "/service", "/", {false, true}, "v0", "/route/", "/service/route/", }, + { "/service", "/", {false, true}, "v1", "/route/", "/serviceroute/", }, -- 27 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/", {false, true}, "v0", "/routereq", "/service/routereq", }, + { "/service", "/", {false, true}, "v1", "/routereq", "/serviceroutereq", }, + { "/service", "/", {false, true}, "v0", "/route/req", "/service/route/req", }, + { "/service", "/", {false, true}, "v1", "/route/req", "/serviceroute/req", }, -- 31 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", false, "v0", "/route", "/service/route", }, + { "/service", "/route", false, "v1", "/route", "/serviceroute", }, + { "/service", "/route", false, "v0", "/route/", "/service/route/", }, + { "/service", "/route", false, "v1", "/route/", "/serviceroute/", }, + { "/service", "/route", false, "v0", "/routereq", "/service/routereq", }, + { "/service", "/route", false, "v1", "/routereq", "/serviceroutereq", }, + { "/service", "/route", true, {"v0", "v1"}, "/route", "/service", }, + { "/service", "/route", true, {"v0", "v1"}, "/route/", "/service/", }, + { "/service", "/route", true, "v0", "/routereq", "/service/req", }, + { "/service", "/route", true, "v1", "/routereq", "/servicereq", }, -- 41 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route/", false, "v0", "/route/", "/service/route/", }, + { "/service", "/route/", false, "v1", "/route/", "/serviceroute/", }, + { "/service", "/route/", false, "v0", "/route/req", "/service/route/req", }, + { "/service", "/route/", false, "v1", "/route/req", "/serviceroute/req", }, + { "/service", "/route/", true, "v0", "/route/", "/service/", }, + { "/service", "/route/", true, "v1", "/route/", "/service", }, + { "/service", "/route/", true, "v0", "/route/req", "/service/req", }, + { "/service", "/route/", true, "v1", "/route/req", "/servicereq", }, -- 49 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service/", "/", {false, true}, "v0", "/route/", "/service/route/", }, + { "/service/", "/", {false, true}, "v1", "/route/", "/service/route/", }, + { "/service/", "/", {false, true}, {"v0", "v1"}, "/", "/service/", }, + { "/service/", "/", {false, true}, {"v0", "v1"}, "/route", "/service/route", }, + { "/service/", "/", {false, true}, {"v0", "v1"}, "/routereq", "/service/routereq", }, + { "/service/", "/", {false, true}, {"v0", "v1"}, "/route/req", "/service/route/req", }, -- 55 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service/", "/route", false, {"v0", "v1"}, "/route", "/service/route", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route/", "/service/route/", }, + { "/service/", "/route", false, {"v0", "v1"}, "/routereq", "/service/routereq", }, + { "/service/", "/route", true, "v0", "/route", "/service", }, + { "/service/", "/route", true, "v1", "/route", "/service/", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route/", "/service/", }, + { "/service/", "/route", true, {"v0", "v1"}, "/routereq", "/service/req", }, -- 62 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service/", "/route/", false, {"v0", "v1"}, "/route/", "/service/route/", }, + { "/service/", "/route/", false, {"v0", "v1"}, "/route/req", "/service/route/req", }, + { "/service/", "/route/", true, {"v0", "v1"}, "/route/", "/service/", }, + { "/service/", "/route/", true, {"v0", "v1"}, "/route/req", "/service/req", }, -- 66 + -- service_path route_path strip_path path_handling request_path expected_path + -- The following cases match on host (not paths) + { "/", nil, {false, true}, {"v0", "v1"}, "/", "/", }, + { "/", nil, {false, true}, {"v0", "v1"}, "/route", "/route", }, + { "/", nil, {false, true}, {"v0", "v1"}, "/route/", "/route/", }, -- 69 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", nil, {false, true}, {"v0", "v1"}, "/", "/service", }, + { "/service", nil, {false, true}, "v0", "/route", "/service/route", }, + { "/service", nil, {false, true}, "v1", "/route", "/serviceroute", }, + { "/service", nil, {false, true}, "v0", "/route/", "/service/route/", }, + { "/service", nil, {false, true}, "v1", "/route/", "/serviceroute/", }, -- 74 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service/", nil, {false, true}, {"v0", "v1"}, "/", "/service/", }, + { "/service/", nil, {false, true}, {"v0", "v1"}, "/route", "/service/route", }, + { "/service/", nil, {false, true}, {"v0", "v1"}, "/route/", "/service/route/", }, -- 77 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", true, "v0", "/route./req", "/service/req", }, + { "/service", "/route", true, "v1", "/route./req", "/servicereq", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route./req", "/service/req", }, -- 80 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", true, "v0", "/route%2E/req", "/service/req", }, + { "/service", "/route", true, "v1", "/route%2E/req", "/servicereq", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route%2E/req", "/service/req", }, + { "/service", "/route", true, "v0", "/route%2e/req", "/service/req", }, + { "/service", "/route", true, "v1", "/route%2e/req", "/servicereq", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route%2e/req", "/service/req", }, -- 86 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", true, "v0", "/route../req", "/service/req", }, + { "/service", "/route", true, "v1", "/route../req", "/servicereq", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route../req", "/service/req", }, -- 89 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", true, "v0", "/route%2E%2E/req", "/service/req", }, + { "/service", "/route", true, "v1", "/route%2E%2E/req", "/servicereq", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route%2E%2E/req", "/service/req", }, + { "/service", "/route", true, "v0", "/route%2e%2E/req", "/service/req", }, + { "/service", "/route", true, "v1", "/route%2e%2E/req", "/servicereq", }, + { "/service/", "/route", true, {"v0", "v1"}, "/route%2e%2E/req", "/service/req", }, -- 95 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", false, "v0", "/route./req", "/service/route./req", }, + { "/service", "/route", false, "v1", "/route./req", "/serviceroute./req", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route./req", "/service/route./req", }, -- 98 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", false, "v0", "/route%2E/req", "/service/route./req", }, + { "/service", "/route", false, "v1", "/route%2E/req", "/serviceroute./req", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route%2E/req", "/service/route./req", }, + { "/service", "/route", false, "v0", "/route%2e/req", "/service/route./req", }, + { "/service", "/route", false, "v1", "/route%2e/req", "/serviceroute./req", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route%2e/req", "/service/route./req", }, -- 104 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", false, "v0", "/route../req", "/service/route../req", }, + { "/service", "/route", false, "v1", "/route../req", "/serviceroute../req", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route../req", "/service/route../req", }, -- 107 + -- service_path route_path strip_path path_handling request_path expected_path + { "/service", "/route", false, "v0", "/route%2E%2E/req", "/service/route../req", }, + { "/service", "/route", false, "v1", "/route%2E%2E/req", "/serviceroute../req", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route%2E%2E/req", "/service/route../req", }, + { "/service", "/route", false, "v0", "/route%2e%2E/req", "/service/route../req", }, + { "/service", "/route", false, "v1", "/route%2e%2E/req", "/serviceroute../req", }, + { "/service/", "/route", false, {"v0", "v1"}, "/route%2e%2E/req", "/service/route../req", }, -- 113 +} + + +local function expand(root_test) + local expanded_tests = { root_test } + + for _, field_name in ipairs({ "strip_path", "path_handling" }) do + local new_tests = {} + for _, test in ipairs(expanded_tests) do + if type(test[field_name]) == "table" then + for _, field_value in ipairs(test[field_name]) do + local et = utils.deep_copy(test) + et[field_name] = field_value + new_tests[#new_tests + 1] = et + end + + else + new_tests[#new_tests + 1] = test + end + end + expanded_tests = new_tests + end + + return expanded_tests +end + + +local tests_mt = { + __index = { + expand = expand + } +} + + +local parsed_tests = {} +for i = 1, #tests do + local test = tests[i] + parsed_tests[i] = setmetatable({ + service_path = test[1], + route_path = test[2], + strip_path = test[3], + path_handling = test[4], + request_path = test[5], + expected_path = test[6], + }, tests_mt) +end + +return parsed_tests diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/shm-stub.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/shm-stub.lua new file mode 100644 index 00000000..7bc077a9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/shm-stub.lua @@ -0,0 +1,108 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + + +-- DICT Proxy +-- https://github.com/bsm/fakengx/blob/master/fakengx.lua + +local SharedDict = {} + +local function set(data, key, value) + data[key] = { + value = value, + info = {expired = false} + } +end + +function SharedDict:new() + return setmetatable({data = {}}, {__index = self}) +end + +function SharedDict:get(key) + return self.data[key] and self.data[key].value, nil +end + +function SharedDict:set(key, value) + set(self.data, key, value) + return true, nil, false +end + +SharedDict.safe_set = SharedDict.set + +function SharedDict:add(key, value) + if self.data[key] ~= nil then + return false, "exists", false + end + + set(self.data, key, value) + return true, nil, false +end + +function SharedDict:replace(key, value) + if self.data[key] == nil then + return false, "not found", false + end + + set(self.data, key, value) + return true, nil, false +end + +function SharedDict:delete(key) + if self.data[key] ~= nil then + self.data[key] = nil + end +end + +function SharedDict:incr(key, value, init) + if not self.data[key] then + if not init then + return nil, "not found" + else + self.data[key].value = init + end + elseif type(self.data[key]) ~= "number" then + return nil, "not a number" + end + + self.data[key].value = self.data[key].value + value + return self.data[key].value, nil +end + +function SharedDict:flush_all() + for _, item in pairs(self.data) do + item.info.expired = true + end +end + +function SharedDict:flush_expired(n) + local data = self.data + local flushed = 0 + + for key, item in pairs(self.data) do + if item.info.expired then + data[key] = nil + flushed = flushed + 1 + if n and flushed == n then + break + end + end + end + + self.data = data + + return flushed +end + +local shared_mt = { + __index = function(self, key) + if rawget(self, key) == nil then + self[key] = SharedDict:new() + end + return self[key] + end +} +return setmetatable({}, shared_mt) diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/ssl.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/ssl.lua new file mode 100644 index 00000000..beaaec61 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/ssl.lua @@ -0,0 +1,747 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +return { + --[[ + Version: 1 (0x0) + Issuer: C = US, ST = California, L = San Francisco, O = Kong, OU = Core, CN = ssl-example.com + Validity + Not Before: Apr 24 14:36:29 2020 GMT + Not After : Feb 7 14:36:29 2294 GMT + + Note: Version 1 was accomplished by using a openssl.cnf file + with the x509_extensions line commented out. + See https://stackoverflow.com/questions/26788244/how-to-create-a-legacy-v1-or-v2-x-509-cert-for-testing + and this line's commit message for more info + --]] + cert = [[-----BEGIN CERTIFICATE----- +MIIFbTCCA1UCFGjFyapVZYpvpKuYDJbLA1YJip++MA0GCSqGSIb3DQEBCwUAMHIx +CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4g +RnJhbmNpc2NvMQ0wCwYDVQQKEwRLb25nMQ0wCwYDVQQLEwRDb3JlMRgwFgYDVQQD +Ew9zc2wtZXhhbXBsZS5jb20wIBcNMjAwNDI0MTQzNjI5WhgPMjI5NDAyMDcxNDM2 +MjlaMHIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH +Ew1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKEwRLb25nMQ0wCwYDVQQLEwRDb3JlMRgw +FgYDVQQDEw9zc2wtZXhhbXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDDd3IZRGgdL34RY1MiAE2ItnJNbZGPQD9XE32D/I1cDCAXjI/MQrvn +iSJhnnc/8F2y7/tzJ2GZIk0C8Fz7MRWDXHCBt9byOHU0Jhppj/cRyWqlI7GrvyZy +QAiyOh/97ZN52xwXqiFDRXCd43PIgPhie6rcJkdYbppg8ETwMbjZcslcX6EUJzLU +q/I0BscqbqfiAa8viJ0a1bSWINABKWYr5KqpiRfLWsTJmMthWgh5kaLtMZS3m/AM +IrrKJJY2klvyO6TeXkHuZwm1day4NxhInxZl5H8NNbLgHz+W/8g6vgo2Oafy0crA +hS7iK0oJZMgK25p7VDbi8BXf9kqZeq17Vcj9uB8JxC4oTjy6XT9HGTAJ3yJ0TtLP +p8dayJt6fbNgcuHKkiZJAJfg6ecl2jXxYW7aO9oqcIA3btsl1TJbnzpMK8zeQK1H +Aw7ryQ8qdhKboZUe09iwcyjxyzxieymS387/O6Stnu3UXoPnig9exx8zOgkcZfFa +yhrtEbS74lwcyWwnSmjq/tUw1+QbzoTEJDeMyFnZjOJT5GbauFadF7o/GSbCurWb +yh2G/s5S6v+xa7zw7xdO8ECEUKXws4IiGSui3raZWt+B57uBFQqUefDV6H6MevPk +8aMTC3f9fhp28lbbjfZBI3JiwtaVSV11kJfwmzOcj198nmZlRHotMQIDAQABMA0G +CSqGSIb3DQEBCwUAA4ICAQC51hH6cZrn+n8LiHlDaT/JFys3kKOQ4OpdpCUyUYzI +VYFnG/espH8LKzAiui4/LQjwygTkmNdp12GzIUsZItvpia2J4hsi7xNm/uKOhHwG +B1FViDF8FKOEihyMsZVAHIBj54RjuQ+WLbuQCjajX4PrK2La6lhWMn4cyvFWXCYB +A28Vrz/jXgXCXEct4+b2gZApOJ2H8qAyJv8JtFOptbB5mUZz3u3PW8/bTwG901/L +P9rWLq4AXT+UyPwBNs/lG4XXGc5uBfQjHkvamNKQP3usZuxAygdOEz6vJh9i0nyX +2b/+F/GLi8ZZwllapmp8c3WdsJkycBJ22VLS/LFNNvkz4sbT1dw5w1A7XJhiVDDZ +Dt9HMqK5qb4GAbaWwS+HPC63vrP6Ltw4QiAhC5x3bRujJ9CscRTVHXxMNw9b1TkQ +8AGgEFZKtbhirmv2/MQv+T57LQgnFPWNJWwv3YjJOIzDLEOeOxHMFV3Po5R5B2eP +qhLqmwYS6tQ/ih5BnlbZPBrArdVvsVCWLjQRy9qgetBlh+c65cL4HUAe/BxpXQSK +OoNpTQYMpSXlERwqm2/LN8rJl3XFlGtSH2xHucX8V3eN1bPURegkfplgPI+HDZDp +LAhXzHSQgW+cvcEL9Jafm5e5kRqDei4VSJteBfo+X/eTp0WnGJOYv0uJqwUJheNe +IQ== +-----END CERTIFICATE-----]], + key = [[-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY-----]], + + key_encrypted = { + -- openssl pkcs8 -v1 PBE-SHA1-3DES -topk8 -in 1.crt -passout pass:foobar + standard = [[-----BEGIN ENCRYPTED PRIVATE KEY----- +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 +sSy16GdFKZJctce6KPU= +-----END ENCRYPTED PRIVATE KEY-----]], + --openssl rsa -aes256 -in 1.crt -passout pass:foobar + legacy = [[-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,1D2DCF88CB6CDBE43D63D794511BABA6 + +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 +-----END RSA PRIVATE KEY-----]], + }, + key_passphrase = "foobar", + + -- Issuer: C = US, ST = California, O = Kong Testing, CN = Kong Testing Intermidiate CA + -- Validity + -- Not Before: May 2 20:03:11 2019 GMT + -- Not After : Apr 28 20:03:11 2029 GMT + -- Subject: C = US, ST = California, O = Kong Testing, CN = foo@example.com + -- X509v3 Key Usage: critical + -- Digital Signature, Non Repudiation, Key Encipherment + -- X509v3 Extended Key Usage: + -- TLS Web Client Authentication, E-mail Protection + -- X509v3 Subject Alternative Name: + -- email:foo@example.com, email:bar@example.com + -- Issuer: C = US, ST = California, O = Kong Testing, CN = Kong Testing Intermidiate CA + -- Validity + -- Not Before: May 2 20:03:11 2019 GMT + -- Not After : Apr 28 20:03:11 2029 GMT + -- Subject: C = US, ST = California, O = Kong Testing, CN = foo@example.com + -- X509v3 Key Usage: critical + -- Digital Signature, Non Repudiation, Key Encipherment + -- X509v3 Extended Key Usage: + -- TLS Web Client Authentication, E-mail Protection + -- X509v3 Subject Alternative Name: + -- email:foo@example.com, email:bar@example.com + --[[ + Signature Algorithm: ecdsa-with-SHA256 + Issuer: C = US, ST = California, L = San Francisco, O = Kong, OU = Core, CN = ssl-example.com + Validity + Not Before: Nov 18 16:17:30 2020 GMT + Not After : Sep 3 16:17:30 2294 GMT + --]] + cert_ecdsa = [[-----BEGIN CERTIFICATE----- +MIICPDCCAeGgAwIBAgIUOIK1sCtPyUL5h7vHdxpN5PhpukMwCgYIKoZIzj0EAwIw +cjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNh +biBGcmFuY2lzY28xDTALBgNVBAoMBEtvbmcxDTALBgNVBAsMBENvcmUxGDAWBgNV +BAMMD3NzbC1leGFtcGxlLmNvbTAgFw0yMDExMTgxNjE3MzBaGA8yMjk0MDkwMzE2 +MTczMFowcjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV +BAcMDVNhbiBGcmFuY2lzY28xDTALBgNVBAoMBEtvbmcxDTALBgNVBAsMBENvcmUx +GDAWBgNVBAMMD3NzbC1leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABDFm7D+CfVzbkRyRTR/2DI4o1sOxDCdc1UEdbQkA5e6j5b4smyuW4xlZjVwV +CXeADYvtpBaykzZ+NC5Zlf3EAkWjUzBRMB0GA1UdDgQWBBQcXSBVifOMnYaC632X +NzdazHkuEjAfBgNVHSMEGDAWgBQcXSBVifOMnYaC632XNzdazHkuEjAPBgNVHRMB +Af8EBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQDbSwXZ15UJ0hX/7KTKxd/mER7b +s5oBurNijw1iPMyi+wIhALixa/LN3i+AykB4Jxj89scpXilIH+6q5fJI9exuaLtv +-----END CERTIFICATE-----]], + key_ecdsa = [[-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIDCpckzH9Z6YpE48cmSIqcNXDZ29peoeMkFP2NqZb/MUoAoGCCqGSM49 +AwEHoUQDQgAEMWbsP4J9XNuRHJFNH/YMjijWw7EMJ1zVQR1tCQDl7qPlviybK5bj +GVmNXBUJd4ANi+2kFrKTNn40LlmV/cQCRQ== +-----END EC PRIVATE KEY-----]], + + --[[ + Issuer: C = US, ST = California, O = Kong Testing, CN = Kong Testing Intermidiate CA + Validity + Not Before: May 2 20:03:11 2019 GMT + Not After : Apr 28 20:03:11 2029 GMT + Subject: C = US, ST = California, O = Kong Testing, CN = foo@example.com + X509v3 Key Usage: critical + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Extended Key Usage: + TLS Web Client Authentication, E-mail Protection + X509v3 Subject Alternative Name: + email:foo@example.com, email:bar@example.com + --]] + cert_client = [[-----BEGIN CERTIFICATE----- +MIIFIjCCAwqgAwIBAgICIAEwDQYJKoZIhvcNAQELBQAwYDELMAkGA1UEBhMCVVMx +EzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoMDEtvbmcgVGVzdGluZzElMCMG +A1UEAwwcS29uZyBUZXN0aW5nIEludGVybWlkaWF0ZSBDQTAeFw0xOTA1MDIyMDAz +MTFaFw0yOTA0MjgyMDAzMTFaMFMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp +Zm9ybmlhMRUwEwYDVQQKDAxLb25nIFRlc3RpbmcxGDAWBgNVBAMMD2Zvb0BleGFt +cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJldMxsZHDxA +RpbSXdIFZiTf8D0dYgsPnsmx5tVjA/zrVBSVBPO9KunaXNm4Z6JWmUwenzFGbzWP +NLfbLn4khuoczzqSru5XfbyH1HrD0cd5lkf44Dw1/otfIFDBleiR/OWEiAxwS4zi +xIajNyvLr3gC5dv+F+JuWpW1yVQxybIDQWoI25xpd3+ZkXO+OLkToo+YpuwIDlUj +6Rkm5kbqoxDpaDihA2bsAqjNG7G+SHthaNyACsQsU/t6BHSWzHumScN0CxJ+TeVH +fTZklelItZ6YP0B0RQjzvSGA423UgALzqJglGPe8UDjm3BMlg2xhTfnfy1J6Vmbt +5jx6FOXUARsCAwEAAaOB8jCB7zAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIF +oDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5lcmF0ZWQgQ2xpZW50IENlcnRp +ZmljYXRlMB0GA1UdDgQWBBRTzNOmhGRXaZamxVfnlKXarIOEmDAfBgNVHSMEGDAW +gBQLDgQOl/htYk8k8DvGb9IKO40RETAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYw +FAYIKwYBBQUHAwIGCCsGAQUFBwMEMCsGA1UdEQQkMCKBD2Zvb0BleGFtcGxlLmNv +bYEPYmFyQGV4YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4ICAQBziDuVjU0I1CwO +b1Cx2TJpzi3l5FD/ozrMZT6F3EpkJFGZWgXrsXHz/0qKTrsbB2m3/fcyd0lwQ5Lh +fz8X1HPrwXa3BqZskNu1vOUNiqAYWvQ5gtbpweJ96LzMSYVGLK78NigYTtK+Rgq3 +As5CVfLXDBburrQNGyRTsilCQDNBvIpib0eqg/HJCNDFMPrBzTMPpUutyatfpFH2 +UwTiVBfA14YYDxZaetYWeksy28XH6Uj0ylyz67VHND+gBMmQNLXQHJTIDh8JuIf2 +ec6o4HrtyyuRE3urNQmcPMAokacm4NKw2+og6Rg1VS/pckaSPOlSEmNnKFiXStv+ +AVd77NGriUWDFCmnrFNOPOIS019W0oOk6YMwTUDSa86Ii6skCtBLHmp/cingkTWg +7KEbdT1uVVPgseC2AFpQ1BWJOjjtyW3GWuxERIhuab9/ckTz6BuIiuK7mfsvPBrn +BqjZyt9WAx8uaWMS/ZrmIj3fUXefaPtl27jMSsiU5oi2vzFu0xiXJb6Jr7RQxD3O +XRnycL/chWnp7eVV1TQS+XzZ3ZZQIjckDWX4E+zGo4o9pD1YC0eytbIlSuqYVr/t +dZmD2gqju3Io9EXPDlRDP2VIX9q1euF9caz1vpLCfV+F8wVPtZe5p6JbNugdgjix +nDZ2sD2xGXy6/fNG75oHveYo6MREFw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFmjCCA4KgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCVVMx +EzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoMDEtvbmcgVGVzdGluZzEdMBsG +A1UEAwwUS29uZyBUZXN0aW5nIFJvb3QgQ0EwHhcNMTkwNTAyMTk0MDQ4WhcNMjkw +NDI5MTk0MDQ4WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEV +MBMGA1UECgwMS29uZyBUZXN0aW5nMSUwIwYDVQQDDBxLb25nIFRlc3RpbmcgSW50 +ZXJtaWRpYXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0dnj +oHlJmNM94vQnK2FIIQJm9OAVvyMtAAkBKL7Cxt8G062GHDhq6gjQ9enuNQE0l3Vv +mSAh7N9gNlma6YbRB9VeG54BCuRQwCxveOBiwQvC2qrTzYI34kF/AeflrDOdzuLb +zj5cLADKXGCbGDtrSPKUwdlkuLs3pRr/YAyIQr7zJtlLz+E0GBYp0GWnLs0FiLSP +qSBWllC9u8gt2MiKyNlXw+kZ8lofOehCJzfFr6qagVklPw+8IpU6OGmRLFQVwVhp +zdAJmAGmSo/AGNKGqDdjzC4N2l4uYGH6n2KmY2yxsLBGZgwtLDst3fK4a3Wa5Tj7 +cUwCcGLGtfVTaIXZYbqQ0nGsaYUd/mhx3B3Jk1p3ILZ72nVYowhpj22ipPGal5hp +ABh1MX3s/B+2ybWyDTtSaspcyhsRQsS6axB3DwLOLRy5Xp/kqEdConCtGCsjgm+U +FzdupubXK+KIAmTKXDx8OM7Af/K7kLDfFTre40sEB6fwrWwH8yFojeqkA/Uqhn5S +CzB0o4F3ON0xajsw2dRCziiq7pSe6ALLXetKpBr+xnVbUswH6BANUoDvh9thVPPx +1trkv+OuoJalkruZaT+38+iV9xwdqxnR7PUawqSyvrEAxjqUo7dDPsEuOpx1DJjO +XwRJCUjd7Ux913Iks24BqpPhEQz/rZzJLBApRVsCAwEAAaNmMGQwHQYDVR0OBBYE +FAsOBA6X+G1iTyTwO8Zv0go7jRERMB8GA1UdIwQYMBaAFAdP8giF4QLaR0HEj9N8 +apTFYnD3MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQAWzIvIVM32iurqM451Amz0HNDG9j84cORnnaRR5opFTr3P +EqI3QkgCyP6YOs9t0QSbA4ur9WUzd3c9Ktj3qRRgTE+98JBOPO0rv+Kjj48aANDV +5tcbI9TZ9ap6g0jYr4XNT+KOO7E8QYlpY/wtokudCUDJE9vrsp1on4Bal2gjvCdh +SU0C1lnj6q6kBdQSYHrcjiEIGJH21ayVoNaBVP/fxyCHz472w1xN220dxUI/GqB6 +pjcuy9cHjJHJKJbrkdt2eDRAFP5cILXc3mzUoGUDHY2JA1gtOHV0p4ix9R9AfI9x +snBEFiD8oIpcQay8MJH/z3NLEPLoBW+JaAAs89P+jcppea5N9vbiAkrPi687BFTP +PWPdstyttw6KrvtPQR1+FsVFcGeTjo32/UrckJixdiOEZgHk+deXpp7JoRdcsgzD ++okrsG79/LgS4icLmzNEp0IV36QckEq0+ALKDu6BXvWTkb5DB/FUrovZKJgkYeWj +GKogyrPIXrYi725Ff306124kLbxiA+6iBbKUtCutQnvut78puC6iP+a2SrfsbUJ4 +qpvBFOY29Mlww88oWNGTA8QeW84Y1EJbRkHavzSsMFB73sxidQW0cHNC5t9RCKAQ +uibeZgK1Yk7YQKXdvbZvXwrgTcAjCdbppw2L6e0Uy+OGgNjnIps8K460SdaIiA== +-----END CERTIFICATE-----]], + key_client = [[-----BEGIN RSA PRIVATE KEY----- +MIIEpgIBAAKCAQEAmV0zGxkcPEBGltJd0gVmJN/wPR1iCw+eybHm1WMD/OtUFJUE +870q6dpc2bhnolaZTB6fMUZvNY80t9sufiSG6hzPOpKu7ld9vIfUesPRx3mWR/jg +PDX+i18gUMGV6JH85YSIDHBLjOLEhqM3K8uveALl2/4X4m5albXJVDHJsgNBagjb +nGl3f5mRc744uROij5im7AgOVSPpGSbmRuqjEOloOKEDZuwCqM0bsb5Ie2Fo3IAK +xCxT+3oEdJbMe6ZJw3QLEn5N5Ud9NmSV6Ui1npg/QHRFCPO9IYDjbdSAAvOomCUY +97xQOObcEyWDbGFN+d/LUnpWZu3mPHoU5dQBGwIDAQABAoIBAQCLqQzeM3q7/4iI +1l+r31DKacgbz4M2MW5XnJNqZTX/f8pcx+vvjqfiuADwH/b4JcaKRCSSOeMSMiw+ +9fGb2+WkksHARE3bLH+LTWKYvXRvI/FP73s8Oato/iKuh+vdE/zqgktmkGisjuGK +/l1Cm8VaE8GBGh5kDDyfsyD5dDGJ0fYzJkfQqygd5B5TSaWflQsB//AXvHzkNy+G +RHbrMl7t9rDCTtwnefSEJIEwAZerGKV0p+VlRy23mQLwxTxJ5jEjVvcFIMalnD4R +nKaZYb3LgkCCTQ5Lw/xrkdAEJwfafhdu1CmvKelv1qpcz1vJdrFSfX5NOYS/93jI +aKJT8Nm5AoGBAMmOOUTvbUd9nlbZXYGLTsoy+qA+OhLkB59krddH4mFoRvbggD6U +Y/h7O/fA4spqtts+aVoEh/jyuwGTxMn0NPLjD0G8YZr1A4GUx1hgEQ1NIWvRlXrX +s1bgIlaOc14hOpKf0to3mIovyhRm8PaDbQfHWfyl4yKtFgKiO4OCMK0/AoGBAMLK +e9C5sedDKt8ESycaXnui1hA4WQkeMdXFflnabuhE29dkC7kDFEVurlmsQb3zFa0V +dF40niT7xYqzdEJIbaZ3JZIrSFhnPSSBna+B1FjMhTVb/5sjPJS87BvjVYiZd5GY +5Az4RgSlU3PlsaiuR95NH1vDxHXb5GcMs/EfnEklAoGBAIVFe2yve+yXjUkT9RYh +TPm596pZOwEeskOcyK3epDuQPcwj6eh3Khs1MRPDALKjGUGi5PpWoKnlpe2HDcoT +pacsp/vpWgiiFa1q+NzguKW46G5oaJSPZ8/75/ifvHzzL82fzEXqGPzWWKJg5te5 +UzCfikraTXOySyl2qC9uuEz1AoGBAILH8eNMmb48YW9EcbS6Ro9Z38EaI+U0SZ9O +LqvjNS1q9fMiL6CzCYwoaJS6S5VdvMLtsaiCSV9pTtL182uBN2VZf3co6jS4c9ur +zpQEZe6Mui7+KpodSVJPmXKL6mSBLT8q2IpAsrnxyhr5L5OiF4yQWSqCQMgkr6/k +XnfYklSlAoGBAKBePjIdBGLy3ckdlTfbuTeO3kp2eZFBDtGzxP515+LcoRfOjd8T +ZDX/porUMcgbtIF/B4SNso+8D/aHTCg3QAo6nDjFFjUBHhftgy+GP3BFfMvjqou6 +utJFRkc3FvrrkkeWHnyDQrPmAHjar94/xq1k1Vo+KQHQVQOrvtQt6KXK +-----END RSA PRIVATE KEY-----]], + + --[[ + Issuer: C = US, ST = California, O = Kong Testing, CN = Kong Testing Root CA + Validity + Not Before: Apr 13 23:48:41 2020 GMT + Not After : Apr 11 23:48:41 2030 GMT + Subject: C = US, ST = CA, O = Kong Testing, CN = example2.com + --]] + cert_client2 = [[-----BEGIN CERTIFICATE----- +MIIEJzCCAg8CFAQ6oTnLBUHbumx1bxyY9kV0W21BMA0GCSqGSIb3DQEBCwUAMFgx +CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRUwEwYDVQQKDAxLb25n +IFRlc3RpbmcxHTAbBgNVBAMMFEtvbmcgVGVzdGluZyBSb290IENBMB4XDTIwMDQx +MzIzNDg0MVoXDTMwMDQxMTIzNDg0MVowSDELMAkGA1UEBhMCVVMxCzAJBgNVBAgM +AkNBMRUwEwYDVQQKDAxLb25nIFRlc3RpbmcxFTATBgNVBAMMDGV4YW1wbGUyLmNv +bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+kZhxdN8PA3SW9cXiv +xgtANq57PIWNnSDsg9Yxn0/+JKR45pSU+SKYtZUJJJuOdkv4IIJLm6uG6LbOPUDO +g9EaV0Zw7RQtbY6EDFDFzeyq0/Mwl9wLJtXf0fPsXGyFIdeelBjzoSVsGGJKPWbP +rlUtSHCrpFX53NTPnNVUJz9V6CdzZJgbyoiWP7ggKJeRPq6jCW5pt+cd+sR4+EPh +daBmEVWeifLEKCbBvsQaOGfU1aVG1AlX0RpLBkTxOOFIIk/3dgWOsrek2ofjku4F +g0MeWmD8oXOHUX2JxO77/BbLDQt0lzD27y/EkDoqy6mMAH85/LTYrU+P0WsEyexg +CHcCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAwWAxQjQOoGxU5LQu4ZmsCkps9y0B +kNj8MUpLcFmK+02VIUh3hM4vuB6Gct2Ph+6zqCge3oqTXltU0Bs2MTwAKs/scsxq +Mtanz4W00UlmG3QdgHaEs196tYQ8cKIaGZsNBv15VgBBduUG478pKqYE8bJKBbw7 +1Ym390hSPo0dNe7jLFXx6AaJvlEYh09P4FgfkXuY5VVTGXfN7XgJI073pLRY6iGH +Qd+Egymh86AQtnoNpmqSCMNcjRVAyR8Ti3qnyro8ruZCnNYHieGeh/ZsZvhGDeWX +v4YXjW2NDQ5+Ok6Gtvhf/l6RSrnXLbZtv8NStqwQJ+ydu05BJglZ/7Sb0uQYVNq2 +H8V+MtApFT6fG6ANM6hadNFG+p8Hwz6k4BLrc9ZxeWYKWIIusqExR9JIlGzEjvFJ +6NmNjm3eZE9Ue4YgURj1KTr53wAso4LbJpz/zuZS+m9PMz7n8fRL25/Z5b/92L3a +w0vsxUJyTDeMvYf8oT6OkxNVJ0zBRZNtEg5AJKdP6nU53V998jHP9vUisrU2ALhu +Jw3QiWiDKnRtx8PiiRx7dWo+Xwn9+xVypytqNz3w/XJlOjMwOg73q399w+vMiFTl +qdr7eYvaQBGOZVc3OdiP8afyVxlhHBowUoi8G+iPbgOsARHv/j4UeMVyIThzxv73 +a2EQ5BzyOzQ81H4= +-----END CERTIFICATE-----]], + key_client2 = [[-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAr6RmHF03w8DdJb1xeK/GC0A2rns8hY2dIOyD1jGfT/4kpHjm +lJT5Ipi1lQkkm452S/gggkubq4bots49QM6D0RpXRnDtFC1tjoQMUMXN7KrT8zCX +3Asm1d/R8+xcbIUh156UGPOhJWwYYko9Zs+uVS1IcKukVfnc1M+c1VQnP1XoJ3Nk +mBvKiJY/uCAol5E+rqMJbmm35x36xHj4Q+F1oGYRVZ6J8sQoJsG+xBo4Z9TVpUbU +CVfRGksGRPE44UgiT/d2BY6yt6Tah+OS7gWDQx5aYPyhc4dRfYnE7vv8FssNC3SX +MPbvL8SQOirLqYwAfzn8tNitT4/RawTJ7GAIdwIDAQABAoIBAHMJzgdN1rRToYSS +a7uMBL5htG7bMGyYsA1cW4zyu1F9NyqyNPOkDvjl5ChU8LEhwcFIJqKwOqlBlzIE +KoJDwHo4MmlklSLeDh+FxTsyEwmraV6iuRPaCfmSusR0TqSVHfFHX+Bn0WfdQKs/ +zK+F3rzTB9sj0GKvYD/SKvpeP8Zuu9EBqo4N7PU3VHwDq5t32Ut/+M5XWtulsQcs +qXr2R3agj/DnODANT6Dn/mJboTrYOSV18S/Yw/+OnWBcLzlT5sj0aLgrtXvIputv +9caux4HklAQr29+lKB8nBTfjhXnBntMaEgqCVJ3ri83MuEfVDhmjwo6PnX22/J0h +2XbCyUECgYEA2v8m+CTBTjdAqOuje34+UiWRzT2P9OFONV8nYgzEcQW5JkUoFCun +KgQQIvjCsX4jY6/8w/IPF1ieTconZYJUWSyMZFtBBDCVif1GZRiiM2C4Zcero1KV +U0V3wZcnYkzafzIHkqFUYZwamvdKWVI4c6F5MhSEKCgcbgKKI52TEokCgYEAzVHr +KjQt+dqNkbipYoGH2ywLdcogDwKoyUFbgcvz/q625gu4am025wF25yRKExm7Dyjx +eCQC+KOsBfJSc78fG5R6KPIDK1JrpUEGSCeqFICiqGv9kUzPf5zeGZVf9cU4tyPT +5wYUEM7NX8VRoasZ4OUvYyYBw1Cx8vMdvQn/gv8CgYAIhxcFYqkEWrJx4XskO+5B +VKUw0MziREO/YE0wTD76B7cF/ntpDaocwLvAIN+z+a13HEtDdhGQXysK7GxMT57p +OgrdfZAykZHBJdOv7B2k0odbr0LHwVd/Pp1DNJecBFId0dzpoM6gXmvKzQZgJAt+ +tTL6+EGNLsKspfyrFl+7wQKBgQDAt2VuJbAJ1xQOdS+4IDCujfbrxp60uCBJVylW ++WK56LAP2WxtqLlhtsQuTKeiqgIkRp/vzo1jZ+0tX7f4oKnIL2NCT3aeESys3g3R +aDmCKQOD5mkJGvmgpFLr3INHoqiLbfuV2uS2qgWnIQRwJLOTnksOWzxIYdPFYGDH +cTz9bQKBgQDGv929DUinrKXe/uKJHLAcq+MjmF/+kZU9yn+svq6SSdplqp7xbXX4 +3T5HCWqD4Sy+PVzGaDg5YfXC8yaFPPfY0/35T2FoQEiCAPQO+07Smg6RqJ3yVpIm +LTsbLleJTc8CX0bI4SukQ7MVQsiHimzyEzx3eyLt1S8aBdJuRFZ2mg== +-----END RSA PRIVATE KEY-----]], + + --[[ + Issuer: C=US, ST=California, L=San Francisco, O=Mashape, OU=Kong, CN=ssl-alt.com + Validity + Not Before: May 24 23:46:58 2017 GMT + Not After : Jun 23 23:46:58 2017 GMT + Subject: C=US, ST=California, L=San Francisco, O=Mashape, OU=Kong, CN=ssl-alt.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (4096 bit) + --]] + cert_alt = [[-----BEGIN CERTIFICATE----- +MIIFXjCCA0YCCQCsb6B5OWdHXDANBgkqhkiG9w0BAQsFADBxMQswCQYDVQQGEwJV +UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEQ +MA4GA1UECgwHTWFzaGFwZTENMAsGA1UECwwES29uZzEUMBIGA1UEAwwLc3NsLWFs +dC5jb20wHhcNMTcwNTI0MjM0NjU4WhcNMTcwNjIzMjM0NjU4WjBxMQswCQYDVQQG +EwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNj +bzEQMA4GA1UECgwHTWFzaGFwZTENMAsGA1UECwwES29uZzEUMBIGA1UEAwwLc3Ns +LWFsdC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC4SEsrn5zj +f2w/mT9zxw9RZJxIo325HPHUV27U1gX5YFnCGdA6znvzd+GzUwohJMFhH7X7k3+g +NhXZlUaxJ01N98QBmNH6GfzAoZexny+QGRU7/jkziQMH1A94yXBxQa5cfg3WA4ti +JaIDZHRTVLDTvONm4a1GUuU6p6aUarZznCzzvkCqPzSBamHMu2jMWmozdVwPQufH +mzJLbNLa7TVjVnalKgAdnXz8Rdnivb8pRVj8ASJU+iGQBCaXRAtRm4Hd0PAdJPXH +6ObregxF0uhwDlHr2FbmdYjWKf6WB5xz18LVreWF07VN5AHsa+H/wMYOpuInmiYt +9Xzl3h8dt8KiFwaMf4jYyNRRyLZhJEM8F7pSAuTLXTcluK79hWhliwO7DFKGbrJY +YDQoLQFX6E0xyfYXXnaNTVuiu9503wwX2+IoomUEFXQ0TJ1+9gBg855Jx6Xw5/Zb +njQS9ayYl5HlGzWKR+Dul13JgDDMYSqvI69tTmL1JOdufopmFUr50C0TPdp2cQlP +gHXhqMbAua+EcpPiBSk9mQ0jY2CpRczos5Ais4TV8r71VEqJgaTVd39tG63/q/ig +XFvoPRzi53/tBWy3cVroEvsajNzObuQcwW7b70AULnp0VFDhrRuAsQ9ULXOi6gMP +K0hyONTdXijtHk6ndEFH9qpYMXQOmpCYtQIDAQABMA0GCSqGSIb3DQEBCwUAA4IC +AQCvuEsqWpgRqLgvfJXgoLRpoeADG3OlY0ikuOaW+dPapbC9WC02Sa0f7Iy6gED7 +8UFGUorZVYKKTuR8SJk27Q/vVKV7Ljtj9mkIRcBPWpePr08qzVBd3xrSONPVwRgU +cORI2xNFaz0NwtKOHZ7MIQ8SJbvlqCHYUrl165eIJIiUF2hyzMv4Ymg8Vb0gwGtG +DEibtQweiMZ17STlZ/q1qW5q9nlEvIUNHb8uno77r+l7LdBNWfSwwme+TQHXfR8q +UzMzLvgKJQzkayaNQI9BD+Ztm0BcYzC72MrHfpTyM3PndbL5Kkws40XZ5bmwgbYn +JsIUW1cGxBUc3+lVVQUO4zpihO5oQXwV5LcMkIfYEc1VA1LfqmveXB8/5bGTsHVX +HVWGNNB6Eb5t+jlGRWE61KU79kw3jBuhG/MXSsjeR3rPX6mqoVMNtPzMuG7V9f+a +bbsKp5oLfDPw1D7x7HgBDH7wlbovXavbF/7gqApdssYqtPqVC9MekYAOhC63tuuP +oBthw0f9wa7vQc50VLSIOAUZbgg3Qpic+abkUpLLqPH2nIp0ffBAZ054+u7GkMwQ +daRqH/ssQmfPQxd1l4x8mynx876bgWrg2y6EJoM1N5zCoA2C1hloDL4EApJHCmP2 +OoLwADN8ov3ctgXUAv9wgYkJHkQ7TO1dRpvuIzXc/oJA1w== +-----END CERTIFICATE-----]], + + key_alt = [[-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY-----]], + + --[[ + Signature Algorithm: ecdsa-with-SHA256 + Issuer: C = US, ST = California, L = San Francisco, O = Kong, OU = Core, CN = ssl-example.com + Validity + Not Before: Nov 18 16:49:53 2020 GMT + Not After : Sep 3 16:49:53 2294 GMT + --]] + cert_alt_ecdsa = [[-----BEGIN CERTIFICATE----- +MIICOjCCAeGgAwIBAgIUbsAIMsTeD3F1oNLKOyRabSN6O9EwCgYIKoZIzj0EAwIw +cjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNh +biBGcmFuY2lzY28xDTALBgNVBAoMBEtvbmcxDTALBgNVBAsMBENvcmUxGDAWBgNV +BAMMD3NzbC1leGFtcGxlLmNvbTAgFw0yMDExMTgxNjQ5NTNaGA8yMjk0MDkwMzE2 +NDk1M1owcjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV +BAcMDVNhbiBGcmFuY2lzY28xDTALBgNVBAoMBEtvbmcxDTALBgNVBAsMBENvcmUx +GDAWBgNVBAMMD3NzbC1leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABCwjAZ7WZIwBJQOER5LB6g554ecpBVUnHKjYq8xiWU2+giX5pg4ros6rf3tv +MMkc3aPYz87B7bwQlZ0Z2NC7iUujUzBRMB0GA1UdDgQWBBQzR6or+QaEVZxXrX5/ +BhgA7y5mjTAfBgNVHSMEGDAWgBQzR6or+QaEVZxXrX5/BhgA7y5mjTAPBgNVHRMB +Af8EBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIEDzO105JmNu3RLib3DyIZ4TqDTF +/iEr+t+W6+rZqiHuAiBvhIxGlLfkypQa9p4iNKRLmFcEk/S/shQ4d0hzd9SDbg== +-----END CERTIFICATE-----]], + key_alt_ecdsa = [[-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIECo5oNJH83ZUFUm3SfjRHyPyRU5pJ5D1V0zk4KtrlNZoAoGCCqGSM49 +AwEHoUQDQgAELCMBntZkjAElA4RHksHqDnnh5ykFVSccqNirzGJZTb6CJfmmDiui +zqt/e28wyRzdo9jPzsHtvBCVnRnY0LuJSw== +-----END EC PRIVATE KEY-----]], + + --[[ + Issuer: C = US, ST = California, L = San Francico, O = Kong Inc., CN = ssl-alt-alt.com + Validity + Not Before: Nov 18 07:28:56 2018 GMT + Not After : Dec 18 07:28:56 2018 GMT + Subject: C = US, ST = California, L = San Francico, O = Kong Inc., CN = ssl-alt-alt.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + --]] + cert_alt_alt = [[-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIJAIAQMZH+2V26MA0GCSqGSIb3DQEBCwUAMGcxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRUwEwYDVQQHDAxTYW4gRnJhbmNp +Y28xEjAQBgNVBAoMCUtvbmcgSW5jLjEYMBYGA1UEAwwPc3NsLWFsdC1hbHQuY29t +MB4XDTE4MTExODA3Mjg1NloXDTE4MTIxODA3Mjg1NlowZzELMAkGA1UEBhMCVVMx +EzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAcMDFNhbiBGcmFuY2ljbzESMBAG +A1UECgwJS29uZyBJbmMuMRgwFgYDVQQDDA9zc2wtYWx0LWFsdC5jb20wggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCngZ5grKAV5bR/FRSkIiR9Y54OWMt +endztlp3scp4vTVci4mMOhsSMkTJSpxOieOWACCKpHksux8kUJjOgJ12p9FrWII4 +SYj3+5R+I8ujD3zmx3IDol8UIFsCuibVhN9FKDcVHySPtNGwIM0NnjuVm2fl79hU +ILNmtOq/GoUbScecaMnKzFZy+VUPXRIdQtHOUUteVdppFrx2EPP+Az9l2CN75CRi +VjwxTA8REkYm9C2okVdj38JodiBnkO1z0aEIlQD8qKgG86C+YF7qTlSzUtoOHvkt +Km+PoKoMlDvcZ/ItXz7b2I+x3jhsnVETGTXV8jHIRncl+o7jKV5H/gxDAgMBAAGj +UzBRMB0GA1UdDgQWBBR2h+rYF8B91WE7tUpeCST8TOQrUjAfBgNVHSMEGDAWgBR2 +h+rYF8B91WE7tUpeCST8TOQrUjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQARP3bVbTHYlB/V6Ws0jvjJtRGs6RkIB8Hvwcn9hltoKpgdRcrkpkCI +50jmipO2ssP5uEhhBuS3D53K3GEYWJJh35MW7iAzJw1+Yn+/00/1nwhoaYvjbxv+ +k5rtGHIR8oj8Uf0ijh+ah508cavls/jotQXqkGkkg3QNDJ/2H+QmxMtAM5VJ/dU9 +66IeVk1e/y4wBMFyCzMQQ/HluLmOXlrhttEgwpcCfm4/dksRPav5nPi75OqabI0V +bpTBKoI0Llp45GWNeQyF9kPV3wTDF0UmzZnkD95hoe4CHZV7dsUGS8YfM9Wv6Cvh +wcqsNL5LjIUJiNuykV2pruOsf5IoCKlG +-----END CERTIFICATE-----]], + + key_alt_alt = [[-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDCngZ5grKAV5bR +/FRSkIiR9Y54OWMtendztlp3scp4vTVci4mMOhsSMkTJSpxOieOWACCKpHksux8k +UJjOgJ12p9FrWII4SYj3+5R+I8ujD3zmx3IDol8UIFsCuibVhN9FKDcVHySPtNGw +IM0NnjuVm2fl79hUILNmtOq/GoUbScecaMnKzFZy+VUPXRIdQtHOUUteVdppFrx2 +EPP+Az9l2CN75CRiVjwxTA8REkYm9C2okVdj38JodiBnkO1z0aEIlQD8qKgG86C+ +YF7qTlSzUtoOHvktKm+PoKoMlDvcZ/ItXz7b2I+x3jhsnVETGTXV8jHIRncl+o7j +KV5H/gxDAgMBAAECggEBAJhVXTgLZ3EyHimrWs1tuJiXHrdYJBta+tkl6VY7YgJ0 +B6qyxi1u5fWuR01QC10mbW/iFZav+vFaXpvsQk+ROK/B2BgwJW2tkXqZ/7dkiWbP +HrL9dm8Fz2pPkS1nTDJhWOom+kacI+AgZul4I0j/jCAkjoTa4fenyQUho4WGWp3q +GIVcawNfprrXObMUgs+31eps3A/iza7w3eBuH4aR2npW6DtBr3KPwH9H1yBLpOqq +E7vY/oyfndKyMMdJGk9Ql8AN5SA4B/r2t5nw+liRUUxIj+yWf5q5pj2FftBo2Ldn +0JGWKXDUTdniLzK+akynRv5o1GFR0SeK7TLRzASfavECgYEA+nojt54CTglUOPCY +rpoM898SypItYJOhlvE/HlfmsLmRMpkCAIYo7yCtCTdRC9gd9FPxEJIAC/P3MzTa +KlVfwXqlFIC+oflfIkF8I5Zw4JsqqF+aqEY4b2xTLfxnfK5gMID2rRstUVQO1BiE +Jb6KzB/67e1yokGgKLIeGsOkqdcCgYEAxuiTVt1RZzqOKTvKYLd8tANzm+lwD6Dd +kpVl3xZcHEVd/nWfdtR8VZ+V+mbe71Hn7ZX/UBBktLeB6djd0cdd8jIOCkvhW/aw +vLm2VAM7J6H5Up92q9Jtpid+993fbd07d7peO+boMYzPW0f7wqU0PL+ZK9R9FdS2 +cHaTcFvrW3UCgYEA6DRa8FqXoGidn7vMj/FYmKzw6sLhNmsmnpw/+41Z2/PsW4/l +fz7gq+8K+0RA6k4MVvmKveXcDTi6rsoMhrpm7yMX7w37rIVWYJd80jEhq9etkDIx +Wlbe8szlv/gCqF+v5Mdp58kOFhtrM80WlTczzVDIe9JpN2rHY3Lc3csJ2DkCgYEA +hCAHhyLaKNT3i6JAyz/24OiOCdnlaywzImSE18xVgR3+0sE1HM0GjiXEjSF6IsRo +aCREBN3u1zAyZrB8oBVrbS8crnA7EUhrm+FMoL/IsongQKbWQEo2NbF0oJdMDAFx +uBUe9XFreUaMkpjdPi1Y5qVqzHeIY1D5ovjQ9UjJrOUCgYA/GJPhcZbEz4MgokqE +CCWCLF6Ia5fehznO6VrbKZUUklURFIaw6Uc+DIbGpJZZwVt9l7R3x2pJlF1NlaCJ +IqGzqSWne1tW86drBcfSip714wsZOoF8PT6iUCa0LC1sum1P4vS2cnRw8jXwIL6g +gEuhDrQHJ5V1U/Qc1HrqWYH4cA== +-----END PRIVATE KEY-----]], + + --[[ + Signature Algorithm: ecdsa-with-SHA256 + Issuer: C = US, ST = California, L = San Francisco, O = Kong, OU = Core, CN = ssl-alt-alt.com + Validity + Not Before: Nov 25 14:47:53 2020 GMT + Not After : Sep 10 14:47:53 2294 GMT + Subject: C = US, ST = California, L = San Francisco, O = Kong, OU = Core, CN = ssl-alt-alt.com + --]] + cert_alt_alt_ecdsa = [[-----BEGIN CERTIFICATE----- +MIICPDCCAeGgAwIBAgIUUN+dYLgQkk8az6KLufNic5LFKrYwCgYIKoZIzj0EAwIw +cjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNh +biBGcmFuY2lzY28xDTALBgNVBAoMBEtvbmcxDTALBgNVBAsMBENvcmUxGDAWBgNV +BAMMD3NzbC1hbHQtYWx0LmNvbTAgFw0yMDExMjUxNDQ3NTNaGA8yMjk0MDkxMDE0 +NDc1M1owcjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV +BAcMDVNhbiBGcmFuY2lzY28xDTALBgNVBAoMBEtvbmcxDTALBgNVBAsMBENvcmUx +GDAWBgNVBAMMD3NzbC1hbHQtYWx0LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABKnmBOy/odm9rUNVTz2vMzGtXVnodngWFY7wf2W99aLcDLz32WNg10oYdGKW +MuPCtO6vwWGgOi+/mYSToEU7U0qjUzBRMB0GA1UdDgQWBBQtbY0EZpt9Nlf2spRC +IfphGjYmijAfBgNVHSMEGDAWgBQtbY0EZpt9Nlf2spRCIfphGjYmijAPBgNVHRMB +Af8EBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQC7MFmBMdan3DIsgzLDDwTOLkOI ++Vj2qMdBL4XRWt9c6gIhAMAbZ8M3kMTxPuI+bjZ31Zuu+bGg0Quo4EgU8yMmhJLt +-----END CERTIFICATE-----]], + + key_alt_alt_ecdsa = [[-----BEGIN EC PRIVATE KEY----- +MHcCAQEEILefTUI90Vsu3JV1WZVrYgl82HbAICC/9/sMIL6j1RThoAoGCCqGSM49 +AwEHoUQDQgAEqeYE7L+h2b2tQ1VPPa8zMa1dWeh2eBYVjvB/Zb31otwMvPfZY2DX +Shh0YpYy48K07q/BYaA6L7+ZhJOgRTtTSg== +-----END EC PRIVATE KEY-----]], + + --[[ + Issuer: C = US, ST = California, O = Kong Testing, CN = Kong Testing Root CA + Validity + Not Before: May 2 19:34:42 2019 GMT + Not After : Apr 27 19:34:42 2039 GMT + Subject: C = US, ST = California, O = Kong Testing, CN = Kong Testing Root CA + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Digital Signature, Certificate Sign, CRL Sign + --]] + cert_ca = [[-----BEGIN CERTIFICATE----- +MIIFoTCCA4mgAwIBAgIUQDBLwIychoRbVRO44IzBBk9R4oYwDQYJKoZIhvcNAQEL +BQAwWDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFTATBgNVBAoM +DEtvbmcgVGVzdGluZzEdMBsGA1UEAwwUS29uZyBUZXN0aW5nIFJvb3QgQ0EwHhcN +MTkwNTAyMTkzNDQyWhcNMzkwNDI3MTkzNDQyWjBYMQswCQYDVQQGEwJVUzETMBEG +A1UECAwKQ2FsaWZvcm5pYTEVMBMGA1UECgwMS29uZyBUZXN0aW5nMR0wGwYDVQQD +DBRLb25nIFRlc3RpbmcgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC +AgoCggIBAMp6IggUp3aSNRbLAac8oOkrbUnFuxtlKGYgg8vfA2UU71qTktigdwO6 +Kod0/M+daO3RDqJJXQL2rD14NDO3MaextICanoQSEe+nYyMFUIk+QplXLD3fbshU +nHoJcMS2w0x4cm1os4ebxR2Evndo6luz39ivcjau+BL+9iBAYL1g6+eGOjcSy7ft +1nAMvbxcQ7dmbAH2KP6OmF8cok+eQWVqXEjqtVx5GDMDlj1BjX6Kulmh/vhNi3Hr +NEi+kPrw/YtRgnqnN0sv3NnAyKnantxy7w0TDicFjiBsSIhjB5aUfWYErBR+Nj/m +uumwc/kRJcHWklqDzxrZKCIyOyWcE5Dyjjr46cnF8HxhYwgZcwkmgTtaXOLpBMlo +XUTgOQrWpm9HYg2vOJMMA/ZPUJ2tJ34/4RgiA00EJ5xG8r24suZmT775l+XFLFzp +Ihxvs3BMbrWsXlcZkI5neNk7Q/1jLoBhWeTYjMpUS7bJ/49YVGQZFs3xu2IcLqeD +5WsB1i+EqBAI0jm4vWEynsyX+kS2BqAiDtCsS6WYT2q00DTeP5eIHh/vHsm75jJ+ +yUEb1xFxGnNevLKNTcHUeXxPUnowdC6wqFnaJm7l09qVGDom7tLX9i6MCojgpAP0 +hMpBxzh8jLxHh+zZQdiORSFdYxNnlnWwbic2GUJruiQVLuhpseenAgMBAAGjYzBh +MB0GA1UdDgQWBBQHT/IIheEC2kdBxI/TfGqUxWJw9zAfBgNVHSMEGDAWgBQHT/II +heEC2kdBxI/TfGqUxWJw9zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQsFAAOCAgEAqXZjy4EltJCRtBmN0ohAHPWqH4ZJQCI2HrM3 +wHB6c4oPWcJ+M2PfmYPUJo9VMjvn4S3sZuAysyoHduvRdGDnElW4wglL1xxpoUOx +FqoZUoYWV8hDFmUTWM5b4CtJxOPdTAd8VgypulM3iUEzBQrjR6tnMOdkiFMOmVag +0/Nnr+Tcfk/crMCx3xsVnisYjJoQBFBH4UY+gWE/V/MS1Sya4/qTbuuCUq+Qym5P +r8TkWAJlg7iVVLbZ2j94VUdpiQPWJEGMtJck/NEmOTruhhQlT7c1u/lqXCGj7uci +LmhLsBVmdtWT9AWS8Rl7Qo5GXbjxKIaP3IM9axhDLm8WHwPRLx7DuIFEc+OBxJhz +wkr0g0yLS0AMZpaC6UGbWX01ed10U01mQ/qPU5uZiB0GvruwsYWZsyL1QXUeqLz3 +/KKrx3XsXjtBu3ZG4LAnwuxfeZCNw9ofg8CqF9c20ko+7tZAv6DCu9UL+2oZnEyQ +CboRDwpnAlQ7qJVSp2xMgunO3xxVMlhD5LZpEJz1lRT0nQV3uuLpMYNM4FS9OW/X +MZSzwHhDdCTDWtc/iRszimOnYYV8Y0ubJcb59uhwcsHmdfnwL9DVO6X5xyzb8wsf +wWaPbub8SN2jKnT0g6ZWuca4VwEo1fRaBkzSZDqXwhkBDWP8UBqLXMXWHdZaT8NK +0NEO74c= +-----END CERTIFICATE-----]], + + key_ca = [[-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY-----]], + + dhparam = [[-----BEGIN DH PARAMETERS----- +MIIBDAKCAQEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz ++8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a +87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7 +YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi +7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD +ssbzSibBsu/6iGtCOGEoXJf//////////wIBAgICAOE= +-----END DH PARAMETERS-----]], +} diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/stress_generator.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/stress_generator.lua new file mode 100644 index 00000000..dab93e6d --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/stress_generator.lua @@ -0,0 +1,151 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local stress_generator = {} +stress_generator.__index = stress_generator + + +local cjson = require "cjson" +local pl_file = require "pl.file" +local pl_path = require "pl.path" +local uuid = require "resty.jit-uuid" + + +local fmt = string.format +local tmp_root = os.getenv("TMPDIR") or "/tmp" + + +-- we need this to get random UUIDs +math.randomseed(os.time()) + + +local attack_cmds = { + ["http"] = "GET http://%s:%d%s", +} + + +function stress_generator.is_running(self) + if self.finish_time == nil or self.finish_time <= os.time() then + return false + end + + return true +end + + +function stress_generator.get_results(self) + if self.results ~= nil then + return self.results + end + + if self.results_filename == nil then + return nil, "stress_generator was not run yet" + end + + if stress_generator:is_running() then + return nil, "stress_generator results not available yet" + end + + local report_cmd = fmt("vegeta report -type=json %s 2>&1", self.results_filename) + local report_pipe = io.popen(report_cmd) + local output = report_pipe:read('*all') + report_pipe:close() + + if pl_path.exists(self.results_filename) then + pl_file.delete(self.results_filename) + end + + + local vegeta_results = cjson.decode(output) + local results = { + ["successes"] = 0, + ["remote_failures"] = 0, + ["proxy_failures"] = 0, + ["failures"] = 0, + } + + vegeta_results.status_codes = vegeta_results.status_codes or {} + + for status, count in pairs(vegeta_results.status_codes) do + if status == "200" then + results.successes = count + elseif status == "502" or status == "504" then + results.remote_failures = results.remote_failures + count + results.failures = results.failures + count + elseif status == "500" or status == "503" then + results.proxy_failures = results.proxy_failures + count + results.failures = results.failures + count + else + results.failures = results.failures + count + end + end + + self.results = results + + if self.debug then + -- show pretty results + local report_cmd = fmt("vegeta report %s 2>&1", self.results_filename) + local report_pipe = io.popen(report_cmd) + local output = report_pipe:read('*all') + report_pipe:close() + print(output) + end + + return self.results +end + + +function stress_generator.run(self, uri, headers, duration, rate) + if stress_generator:is_running() then + return nil, "already running" + end + + self.results_filename = fmt("%s/vegeta_%s", tmp_root, uuid()) + + duration = duration or 1 + rate = rate or 100 + local attack_cmd = fmt(attack_cmds[self.protocol], self.host, self.port, uri) + local req_headers = "" + + for name, value in pairs(headers) do + req_headers = fmt("-header=%s:%s %s", name, value, req_headers) + end + + local vegeta_cmd = fmt( + "echo %s | vegeta attack %s -rate=%d -duration=%ds -workers=%d -timeout=5s -output=%s", + attack_cmd, req_headers, rate, duration, self.workers, self.results_filename) + + self.pipe = io.popen(vegeta_cmd) + -- we will rely on vegeta's duration + self.finish_time = os.time() + duration +end + + +function stress_generator.new(protocol, host, port, workers, debug) + if io.popen == nil then + error("stress_generator is not supported in this platform", 2) + end + + local self = setmetatable({}, stress_generator) + + protocol = protocol or "http" + + if protocol ~= "http" then + error("stress_generator supports only http") + end + + self.debug = debug == true + self.host = host or "127.0.0.1" + self.port = port or "80" + self.protocol = protocol + self.workers = workers or 10 + + return self +end + + +return stress_generator diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/to-strip.conf b/kong-versions/3.2.2.4/kong/spec/fixtures/to-strip.conf new file mode 100644 index 00000000..635afdcb --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/to-strip.conf @@ -0,0 +1,11 @@ +database = cassandra # strip me +log_level = debug # strip this + # comment too +pg_ssl = off # Toggles client-server TLS connections + # between Kong and PostgreSQL. + +pg_password = test\#123 # do not strip an escaped octothorpe + +cassandra_data_centers = dc1:2, dc2:3 , dc3:4 + +plugins = foobar,hello-world diff --git a/kong-versions/3.2.2.4/kong/spec/fixtures/valid-module.lua b/kong-versions/3.2.2.4/kong/spec/fixtures/valid-module.lua new file mode 100644 index 00000000..51c53187 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/fixtures/valid-module.lua @@ -0,0 +1,15 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- Valid module (exposing data and having a global variable) for utils.load_module_if_exists unit tests. +-- Assert that load_module_if_exists returns a module if it was valid + +local _M = { + exposed = "All your base are belong to us." +} + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/helpers.lua b/kong-versions/3.2.2.4/kong/spec/helpers.lua new file mode 100644 index 00000000..c953e725 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers.lua @@ -0,0 +1,4057 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +------------------------------------------------------------------ +-- Collection of utilities to help testing Kong features and plugins. +-- +-- @copyright Copyright 2016-2022 Kong Inc. All rights reserved. +-- @license [Apache 2.0](https://opensource.org/licenses/Apache-2.0) +-- @module spec.helpers + +local BIN_PATH = "bin/kong" +local TEST_CONF_PATH = os.getenv("KONG_SPEC_TEST_CONF_PATH") or "spec/kong_tests.conf" +local CUSTOM_PLUGIN_PATH = "./spec/fixtures/custom_plugins/?.lua" +-- XXX EE custom plugins for enterprise tests +local CUSTOM_EE_PLUGIN_PATH = "./spec-ee/fixtures/custom_plugins/?.lua;./spec-ee/fixtures/custom_plugins/?/init.lua;./?/init.lua" +local CUSTOM_VAULT_PATH = "./spec/fixtures/custom_vaults/?.lua;./spec/fixtures/custom_vaults/?/init.lua" +local DNS_MOCK_LUA_PATH = "./spec/fixtures/mocks/lua-resty-dns/?.lua" +local GO_PLUGIN_PATH = "./spec/fixtures/go" +local GRPC_TARGET_SRC_PATH = "./spec/fixtures/grpc/target/" +local MOCK_UPSTREAM_PROTOCOL = "http" +local MOCK_UPSTREAM_SSL_PROTOCOL = "https" +local MOCK_UPSTREAM_HOST = "127.0.0.1" +local MOCK_UPSTREAM_HOSTNAME = "localhost" +local MOCK_UPSTREAM_PORT = 15555 +local MOCK_UPSTREAM_SSL_PORT = 15556 +local MOCK_UPSTREAM_STREAM_PORT = 15557 +local MOCK_UPSTREAM_STREAM_SSL_PORT = 15558 +local GRPCBIN_HOST = os.getenv("KONG_SPEC_TEST_GRPCBIN_HOST") or "localhost" +local GRPCBIN_PORT = tonumber(os.getenv("KONG_SPEC_TEST_GRPCBIN_PORT")) or 9000 +local GRPCBIN_SSL_PORT = tonumber(os.getenv("KONG_SPEC_TEST_GRPCBIN_SSL_PORT")) or 9001 +local MOCK_GRPC_UPSTREAM_PROTO_PATH = "./spec/fixtures/grpc/hello.proto" +local ZIPKIN_HOST = os.getenv("KONG_SPEC_TEST_ZIPKIN_HOST") or "localhost" +local ZIPKIN_PORT = tonumber(os.getenv("KONG_SPEC_TEST_ZIPKIN_PORT")) or 9411 +local OTELCOL_HOST = os.getenv("KONG_SPEC_TEST_OTELCOL_HOST") or "localhost" +local OTELCOL_HTTP_PORT = tonumber(os.getenv("KONG_SPEC_TEST_OTELCOL_HTTP_PORT")) or 4318 +local OTELCOL_ZPAGES_PORT = tonumber(os.getenv("KONG_SPEC_TEST_OTELCOL_ZPAGES_PORT")) or 55679 +local OTELCOL_FILE_EXPORTER_PATH = os.getenv("KONG_SPEC_TEST_OTELCOL_FILE_EXPORTER_PATH") or "./tmp/otel/file_exporter.json" +local REDIS_HOST = os.getenv("KONG_SPEC_TEST_REDIS_HOST") or "localhost" +local REDIS_PORT = tonumber(os.getenv("KONG_SPEC_TEST_REDIS_PORT") or 6379) +local REDIS_SSL_PORT = tonumber(os.getenv("KONG_SPEC_TEST_REDIS_SSL_PORT") or 6380) +local REDIS_SSL_SNI = os.getenv("KONG_SPEC_TEST_REDIS_SSL_SNI") or "test-redis.example.com" +local BLACKHOLE_HOST = "10.255.255.255" +local KONG_VERSION = require("kong.meta")._VERSION +local PLUGINS_LIST + +local consumers_schema_def = require "kong.db.schema.entities.consumers" +local services_schema_def = require "kong.db.schema.entities.services" +local plugins_schema_def = require "kong.db.schema.entities.plugins" +local routes_schema_def = require "kong.db.schema.entities.routes" +local prefix_handler = require "kong.cmd.utils.prefix_handler" +local dc_blueprints = require "spec.fixtures.dc_blueprints" +local conf_loader = require "kong.conf_loader" +local kong_global = require "kong.global" +local Blueprints = require "spec.fixtures.blueprints" +local pl_stringx = require "pl.stringx" +local constants = require "kong.constants" +local pl_tablex = require "pl.tablex" +local pl_utils = require "pl.utils" +local pl_path = require "pl.path" +local pl_file = require "pl.file" +local version = require "version" +local pl_dir = require "pl.dir" +local pl_Set = require "pl.Set" +local Schema = require "kong.db.schema" +local Entity = require "kong.db.schema.entity" +local cjson = require "cjson.safe" +local utils = require "kong.tools.utils" +local http = require "resty.http" +local pkey = require "resty.openssl.pkey" +local nginx_signals = require "kong.cmd.utils.nginx_signals" +local log = require "kong.cmd.utils.log" +local DB = require "kong.db" + +local ffi = require "ffi" +local invoke_plugin = require "kong.enterprise_edition.invoke_plugin" +local portal_router = require "kong.portal.router" +local rbac = require "kong.rbac" +local ssl = require "ngx.ssl" +local ws_client = require "resty.websocket.client" +local table_clone = require "table.clone" +local https_server = require "spec.fixtures.https_server" +local stress_generator = require "spec.fixtures.stress_generator" +local resty_signal = require "resty.signal" +local lfs = require "lfs" + +-- XXX EE +local dist_constants = require "kong.enterprise_edition.distributions_constants" +local kong_vitals = require "kong.vitals" +-- EE + +ffi.cdef [[ + int setenv(const char *name, const char *value, int overwrite); + int unsetenv(const char *name); +]] + + +local kong_exec -- forward declaration + + +log.set_lvl(log.levels.quiet) -- disable stdout logs in tests + +-- Add to package path so dao helpers can insert custom plugins +-- (while running from the busted environment) +do + local paths = {} + table.insert(paths, os.getenv("KONG_LUA_PACKAGE_PATH")) + table.insert(paths, CUSTOM_PLUGIN_PATH) + -- XXX EE custom plugins for enterprise tests + table.insert(paths, CUSTOM_EE_PLUGIN_PATH) + table.insert(paths, CUSTOM_VAULT_PATH) + table.insert(paths, package.path) + package.path = table.concat(paths, ";") +end + +--- Returns the OpenResty version. +-- Extract the current OpenResty version in use and returns +-- a numerical representation of it. +-- Ex: `1.11.2.2` -> `11122` +-- @function openresty_ver_num +local function openresty_ver_num() + local nginx_bin = assert(nginx_signals.find_nginx_bin()) + local _, _, _, stderr = pl_utils.executeex(string.format("%s -V", nginx_bin)) + + local a, b, c, d = string.match(stderr or "", "openresty/(%d+)%.(%d+)%.(%d+)%.(%d+)") + if not a then + error("could not execute 'nginx -V': " .. stderr) + end + + return tonumber(a .. b .. c .. d) +end + +--- Unindent a multi-line string for proper indenting in +-- square brackets. +-- @function unindent +-- @usage +-- local u = helpers.unindent +-- +-- u[[ +-- hello world +-- foo bar +-- ]] +-- +-- -- will return: "hello world\nfoo bar" +local function unindent(str, concat_newlines, spaced_newlines) + str = string.match(str, "(.-%S*)%s*$") + if not str then + return "" + end + + local level = math.huge + local prefix = "" + local len + + str = str:match("^%s") and "\n" .. str or str + for pref in str:gmatch("\n(%s+)") do + len = #prefix + + if len < level then + level = len + prefix = pref + end + end + + local repl = concat_newlines and "" or "\n" + repl = spaced_newlines and " " or repl + + return (str:gsub("^\n%s*", ""):gsub("\n" .. prefix, repl):gsub("\n$", ""):gsub("\\r", "\r")) +end + + +--- Set an environment variable +-- @function setenv +-- @param env (string) name of the environment variable +-- @param value the value to set +-- @return true on success, false otherwise +local function setenv(env, value) + return ffi.C.setenv(env, value, 1) == 0 +end + + +--- Unset an environment variable +-- @function unsetenv +-- @param env (string) name of the environment variable +-- @return true on success, false otherwise +local function unsetenv(env) + return ffi.C.unsetenv(env) == 0 +end + + +--- Write a yaml file. +-- @function make_yaml_file +-- @param content (string) the yaml string to write to the file, if omitted the +-- current database contents will be written using `kong config db_export`. +-- @param filename (optional) if not provided, a temp name will be created +-- @return filename of the file written +local function make_yaml_file(content, filename) + local filename = filename or pl_path.tmpname() .. ".yml" + if content then + local fd = assert(io.open(filename, "w")) + assert(fd:write(unindent(content))) + assert(fd:write("\n")) -- ensure last line ends in newline + assert(fd:close()) + else + assert(kong_exec("config db_export --conf "..TEST_CONF_PATH.." "..filename)) + end + return filename +end + + +local get_available_port +do + local USED_PORTS = {} + + function get_available_port() + for _i = 1, 10 do + local port = math.random(10000, 30000) + + if not USED_PORTS[port] then + USED_PORTS[port] = true + + local ok = os.execute("netstat -lnt | grep \":" .. port .. "\" > /dev/null") + + if not ok then + -- return code of 1 means `grep` did not found the listening port + return port + + else + print("Port " .. port .. " is occupied, trying another one") + end + end + end + + error("Could not find an available port after 10 tries") + end +end + + +--------------- +-- Conf and DAO +--------------- +local conf = assert(conf_loader(TEST_CONF_PATH)) + +_G.kong = kong_global.new() +kong_global.init_pdk(_G.kong, conf) +ngx.ctx.KONG_PHASE = kong_global.phases.access +_G.kong.core_cache = { + get = function(self, key, opts, func, ...) + if key == constants.CLUSTER_ID_PARAM_KEY then + return "123e4567-e89b-12d3-a456-426655440000" + end + + return func(...) + end +} + +local db = assert(DB.new(conf)) +assert(db:init_connector()) +db.vaults:load_vault_schemas(conf.loaded_vaults) +db.plugins:load_plugin_schemas(conf.loaded_plugins) +local blueprints = assert(Blueprints.new(db)) +local dcbp +local config_yml + + +kong.db = db + + +local cache + +--- Gets the ml_cache instance. +-- @function get_cache +-- @param db the database object +-- @return ml_cache instance +local function get_cache(db) + if not cache then + -- disable the unix domain socket based events library + -- because unix domain socket is not available in the current environment + rawset(kong.configuration, "legacy_worker_events", true) + local worker_events = assert(kong_global.init_worker_events()) + local cluster_events = assert(kong_global.init_cluster_events(conf, db)) + cache = assert(kong_global.init_cache(conf, + cluster_events, + worker_events + )) + end + + return cache +end + + +kong.cache = get_cache(db) + +cache._busted_hooked = false + +local function clear_cache_on_file_end(file) + if _G.kong and + _G.kong.cache and + _G.kong.cache.mlcache and + _G.kong.cache.mlcache.lru and + _G.kong.cache.mlcache.lru.free_queue and + _G.kong.cache.mlcache.lru.cache_queue + then + _G.kong.cache.mlcache.lru.free_queue = nil + _G.kong.cache.mlcache.lru.cache_queue = nil + end +end + +local function register_busted_hook(opts) + local busted = require("busted") + if not cache or cache._busted_hooked then + return + end + + cache._busted_hooked = true + + busted.subscribe({'file', 'end' }, clear_cache_on_file_end) +end + +register_busted_hook() + +local vitals +local function get_vitals(db) + if not vitals then + vitals = kong_vitals.new({ + db = db, + ttl_seconds = 3600, + ttl_minutes = 24 * 60, + ttl_days = 30, + }) + end + + return vitals +end + +kong.vitals = get_vitals(db) + +local analytics +local function get_analytics() + if not analytics then + local kong_analytics = require "kong.analytics" + analytics = kong_analytics.new({}) + end + + return analytics +end + +kong.analytics = get_analytics() + +--- Iterator over DB strategies. +-- @function each_strategy +-- @param strategies (optional string array) explicit list of strategies to use, +-- defaults to `{ "postgres", "cassandra" }`. +-- @see all_strategies +-- @usage +-- -- repeat all tests for each strategy +-- for _, strategy_name in helpers.each_strategy() do +-- describe("my test set [#" .. strategy .. "]", function() +-- +-- -- add your tests here +-- +-- end) +-- end +local function each_strategy() -- luacheck: ignore -- required to trick ldoc into processing for docs +end + +--- Iterator over all strategies, the DB ones and the DB-less one. +-- To test with DB-less, check the example. +-- @function all_strategies +-- @param strategies (optional string array) explicit list of strategies to use, +-- defaults to `{ "postgres", "cassandra", "off" }`. +-- @see each_strategy +-- @see make_yaml_file +-- @usage +-- -- example of using DB-less testing +-- +-- -- use "all_strategies" to iterate over; "postgres", "cassandra", "off" +-- for _, strategy in helpers.all_strategies() do +-- describe(PLUGIN_NAME .. ": (access) [#" .. strategy .. "]", function() +-- +-- lazy_setup(function() +-- +-- -- when calling "get_db_utils" with "strategy=off", we still use +-- -- "postgres" so we can write the test setup to the database. +-- local bp = helpers.get_db_utils( +-- strategy == "off" and "postgres" or strategy, +-- nil, { PLUGIN_NAME }) +-- +-- -- Inject a test route, when "strategy=off" it will still be written +-- -- to Postgres. +-- local route1 = bp.routes:insert({ +-- hosts = { "test1.com" }, +-- }) +-- +-- -- start kong +-- assert(helpers.start_kong({ +-- -- set the strategy +-- database = strategy, +-- nginx_conf = "spec/fixtures/custom_nginx.template", +-- plugins = "bundled," .. PLUGIN_NAME, +-- +-- -- The call to "make_yaml_file" will write the contents of +-- -- the database to a temporary file, which filename is returned. +-- -- But only when "strategy=off". +-- declarative_config = strategy == "off" and helpers.make_yaml_file() or nil, +-- +-- -- the below lines can be omitted, but are just to prove that the test +-- -- really runs DB-less despite that Postgres was used as intermediary +-- -- storage. +-- pg_host = strategy == "off" and "unknownhost.konghq.com" or nil, +-- cassandra_contact_points = strategy == "off" and "unknownhost.konghq.com" or nil, +-- })) +-- end) +-- +-- ... rest of your test file +local function all_strategies() -- luacheck: ignore -- required to trick ldoc into processing for docs +end + +do + local def_db_strategies = {"postgres", "cassandra"} + local def_all_strategies = {"postgres", "cassandra", "off"} + local env_var = os.getenv("KONG_DATABASE") + if env_var then + def_db_strategies = { env_var } + def_all_strategies = { env_var } + end + local db_available_strategies = pl_Set(def_db_strategies) + local all_available_strategies = pl_Set(def_all_strategies) + + local function iter(strategies, i) + i = i + 1 + local strategy = strategies[i] + if strategy then + return i, strategy + end + end + + each_strategy = function(strategies) + if not strategies then + return iter, def_db_strategies, 0 + end + + for i = #strategies, 1, -1 do + if not db_available_strategies[strategies[i]] then + table.remove(strategies, i) + end + end + return iter, strategies, 0 + end + + all_strategies = function(strategies) + if not strategies then + return iter, def_all_strategies, 0 + end + + for i = #strategies, 1, -1 do + if not all_available_strategies[strategies[i]] then + table.remove(strategies, i) + end + end + return iter, strategies, 0 + end +end + +local function truncate_tables(db, tables) + if not tables then + return + end + + for _, t in ipairs(tables) do + if db[t] and db[t].schema then + db[t]:truncate() + end + end +end + +local function bootstrap_database(db) + local schema_state = assert(db:schema_state()) + if schema_state.needs_bootstrap then + assert(db:schema_bootstrap()) + end + + if schema_state.new_migrations then + assert(db:run_migrations(schema_state.new_migrations, { + run_up = true, + run_teardown = true, + })) + end +end + +--- Gets the database utility helpers and prepares the database for a testrun. +-- This will a.o. bootstrap the datastore and truncate the existing data that +-- migth be in it. The BluePrint and DB objects returned can be used to create +-- test entities in the database. +-- +-- So the difference between the `db` and `bp` is small. The `db` one allows access +-- to the datastore for creating entities and inserting data. The `bp` one is a +-- wrapper around the `db` one. It will auto-insert some stuff and check for errors; +-- +-- - if you create a route using `bp`, it will automatically attach it to the +-- default service that it already created, without you having to specify that +-- service. +-- - any errors returned by `db`, which will be `nil + error` in Lua, will be +-- wrapped in an assertion by `bp` so if something is wrong it will throw a hard +-- error which is convenient when testing. When using `db` you have to manually +-- check for errors. +-- +-- Since `bp` is a wrapper around `db` it will only know about the Kong standard +-- entities in the database. Hence the `db` one should be used when working with +-- custom DAO's for which no `bp` entry is available. +-- @function get_db_utils +-- @param strategy (optional) the database strategy to use, will default to the +-- strategy in the test configuration. +-- @param tables (optional) tables to truncate, this can be used to accelarate +-- tests if only a few tables are used. By default all tables will be truncated. +-- @param plugins (optional) array of plugins to mark as loaded. Since kong will +-- load all the bundled plugins by default, this is useful mostly for marking +-- custom plugins as loaded. +-- @param vaults (optional) vault configuration to use. +-- @param skip_migrations (optional) if true, migrations will not be run. +-- @return BluePrint, DB +-- @usage +-- local PLUGIN_NAME = "my_fancy_plugin" +-- local bp = helpers.get_db_utils("postgres", nil, { PLUGIN_NAME }) +-- +-- -- Inject a test route. No need to create a service, there is a default +-- -- service which will echo the request. +-- local route1 = bp.routes:insert({ +-- hosts = { "test1.com" }, +-- }) +-- -- add the plugin to test to the route we created +-- bp.plugins:insert { +-- name = PLUGIN_NAME, +-- route = { id = route1.id }, +-- config = {}, +-- } +local function get_db_utils(strategy, tables, plugins, vaults, skip_migrations) + strategy = strategy or conf.database + if tables ~= nil and type(tables) ~= "table" then + error("arg #2 must be a list of tables to truncate", 2) + end + if plugins ~= nil and type(plugins) ~= "table" then + error("arg #3 must be a list of plugins to enable", 2) + end + + if plugins then + for _, plugin in ipairs(plugins) do + conf.loaded_plugins[plugin] = true + end + end + + if vaults ~= nil and type(vaults) ~= "table" then + error("arg #4 must be a list of vaults to enable", 2) + end + + if vaults then + for _, vault in ipairs(vaults) do + conf.loaded_vaults[vault] = true + end + end + + -- Clean workspaces from the context - otherwise, migrations will fail, + -- as some of them have dao calls + -- If `no_truncate` is falsey, `dao:truncate` and `db:truncate` are called, + -- and these set the workspace back again to the new `default` workspace + ngx.ctx.workspace = nil + + -- DAO (DB module) + local db = assert(DB.new(conf, strategy)) + assert(db:init_connector()) + + if not skip_migrations then + bootstrap_database(db) + end + + do + local database = conf.database + conf.database = strategy + conf.database = database + end + + db:truncate("plugins") + assert(db.vaults:load_vault_schemas(conf.loaded_vaults)) + assert(db.plugins:load_plugin_schemas(conf.loaded_plugins)) + + -- XXX EE + kong.invoke_plugin = invoke_plugin.new { + loaded_plugins = db.plugins:get_handlers(), + kong_global = kong_global, + } + + -- cleanup the tags table, since it will be hacky and + -- not necessary to implement "truncate trigger" in Cassandra + db:truncate("tags") + + -- initialize portal router + kong.portal_router = portal_router.new(db) + + _G.kong.db = db + + -- cleanup tables + if not tables then + assert(db:truncate()) + + else + tables[#tables + 1] = "workspaces" + truncate_tables(db, tables) + end + + -- blueprints + local bp + if strategy ~= "off" then + bp = assert(Blueprints.new(db)) + dcbp = nil + else + bp = assert(dc_blueprints.new(db)) + dcbp = bp + end + + if plugins then + for _, plugin in ipairs(plugins) do + conf.loaded_plugins[plugin] = false + end + end + + rbac.register_dao_hooks(db) + if vaults then + for _, vault in ipairs(vaults) do + conf.loaded_vaults[vault] = false + end + end + + if strategy ~= "off" then + local workspaces = require "kong.workspaces" + workspaces.upsert_default(db) + end + + -- calculation can only happen here because this function + -- initializes the kong.db instance + PLUGINS_LIST = assert(kong.db.plugins:get_handlers()) + table.sort(PLUGINS_LIST, function(a, b) + return a.name:lower() < b.name:lower() + end) + + PLUGINS_LIST = pl_tablex.map(function(p) + return { name = p.name, version = p.handler.VERSION, } + end, PLUGINS_LIST) + + return bp, db +end + +----------------- +-- Custom helpers +----------------- +local resty_http_proxy_mt = setmetatable({}, { __index = http }) +resty_http_proxy_mt.__index = resty_http_proxy_mt + +local pack = function(...) return { n = select("#", ...), ... } end +local unpack = function(t) return unpack(t, 1, t.n) end + +--- Prints all returned parameters. +-- Simple debugging aid, it will pass all received parameters, hence will not +-- influence the flow of the code. See also `fail`. +-- @function intercept +-- @see fail +-- @usage -- modify +-- local a,b = some_func(c,d) +-- -- into +-- local a,b = intercept(some_func(c,d)) +local function intercept(...) + local args = pack(...) + print(require("pl.pretty").write(args)) + return unpack(args) +end + + +-- Prepopulate Schema's cache +Schema.new(consumers_schema_def) +Schema.new(services_schema_def) +Schema.new(routes_schema_def) + +local plugins_schema = assert(Entity.new(plugins_schema_def)) + + +--- Validate a plugin configuration against a plugin schema. +-- @function validate_plugin_config_schema +-- @param config The configuration to validate. This is not the full schema, +-- only the `config` sub-object needs to be passed. +-- @param schema_def The schema definition +-- @return the validated schema, or nil+error +local function validate_plugin_config_schema(config, schema_def) + assert(plugins_schema:new_subschema(schema_def.name, schema_def)) + local entity = { + id = utils.uuid(), + name = schema_def.name, + config = config + } + local entity_to_insert, err = plugins_schema:process_auto_fields(entity, "insert") + if err then + return nil, err + end + local _, err = plugins_schema:validate_insert(entity_to_insert) + if err then return + nil, err + end + return entity_to_insert +end + + +-- Case insensitive lookup function, returns the value and the original key. Or +-- if not found nil and the search key +-- @usage -- sample usage +-- local test = { SoMeKeY = 10 } +-- print(lookup(test, "somekey")) --> 10, "SoMeKeY" +-- print(lookup(test, "NotFound")) --> nil, "NotFound" +local function lookup(t, k) + local ok = k + if type(k) ~= "string" then + return t[k], k + else + k = k:lower() + end + for key, value in pairs(t) do + if tostring(key):lower() == k then + return value, key + end + end + return nil, ok +end + + +--- Check if a request can be retried in the case of a closed connection +-- +-- For now this is limited to "safe" methods as defined by: +-- https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.1 +-- +-- XXX Since this strictly applies to closed connections, it might be okay to +-- open this up to include idempotent methods like PUT and DELETE if we do +-- some more testing first +local function can_reopen(method) + method = string.upper(method or "GET") + return method == "GET" + or method == "HEAD" + or method == "OPTIONS" + or method == "TRACE" +end + + +--- http_client. +-- An http-client class to perform requests. +-- +-- * Based on [lua-resty-http](https://github.com/pintsized/lua-resty-http) but +-- with some modifications +-- +-- * Additional convenience methods will be injected for the following methods; +-- "get", "post", "put", "patch", "delete". Each of these methods comes with a +-- built-in assert. The signature of the functions is `client:get(path, opts)`. +-- +-- * Body will be formatted according to the "Content-Type" header, see `http_client:send`. +-- +-- * Query parameters will be added, see `http_client:send`. +-- +-- @section http_client +-- @usage +-- -- example usage of the client +-- local client = helpers.proxy_client() +-- -- no need to check for `nil+err` since it is already wrapped in an assert +-- +-- local opts = { +-- headers = { +-- ["My-Header"] = "my header value" +-- } +-- } +-- local result = client:get("/services/foo", opts) +-- -- the 'get' is wrapped in an assert, so again no need to check for `nil+err` + + +--- Send a http request. +-- Based on [lua-resty-http](https://github.com/pintsized/lua-resty-http). +-- +-- * If `opts.body` is a table and "Content-Type" header contains +-- `application/json`, `www-form-urlencoded`, or `multipart/form-data`, then it +-- will automatically encode the body according to the content type. +-- +-- * If `opts.query` is a table, a query string will be constructed from it and +-- appended to the request path (assuming none is already present). +-- +-- * instead of this generic function there are also shortcut functions available +-- for every method, eg. `client:get`, `client:post`, etc. See `http_client`. +-- +-- @function http_client:send +-- @param opts table with options. See [lua-resty-http](https://github.com/pintsized/lua-resty-http) +function resty_http_proxy_mt:send(opts, is_reopen) + local cjson = require "cjson" + local utils = require "kong.tools.utils" + + opts = opts or {} + + -- build body + local headers = opts.headers or {} + local content_type, content_type_name = lookup(headers, "Content-Type") + content_type = content_type or "" + local t_body_table = type(opts.body) == "table" + + if string.find(content_type, "application/json") and t_body_table then + opts.body = cjson.encode(opts.body) + + elseif string.find(content_type, "www-form-urlencoded", nil, true) and t_body_table then + opts.body = utils.encode_args(opts.body, true, opts.no_array_indexes) + + elseif string.find(content_type, "multipart/form-data", nil, true) and t_body_table then + local form = opts.body + local boundary = "8fd84e9444e3946c" + local body = "" + + for k, v in pairs(form) do + body = body .. "--" .. boundary .. "\r\nContent-Disposition: form-data; name=\"" .. k .. "\"\r\n\r\n" .. tostring(v) .. "\r\n" + end + + if body ~= "" then + body = body .. "--" .. boundary .. "--\r\n" + end + + local clength = lookup(headers, "content-length") + if not clength and not opts.dont_add_content_length then + headers["content-length"] = #body + end + + if not content_type:find("boundary=") then + headers[content_type_name] = content_type .. "; boundary=" .. boundary + end + + opts.body = body + end + + -- build querystring (assumes none is currently in 'opts.path') + if type(opts.query) == "table" then + local qs = utils.encode_args(opts.query) + opts.path = opts.path .. "?" .. qs + opts.query = nil + end + + local res, err = self:request(opts) + if res then + -- wrap the read_body() so it caches the result and can be called multiple + -- times + local reader = res.read_body + res.read_body = function(self) + if not self._cached_body and not self._cached_error then + self._cached_body, self._cached_error = reader(self) + end + return self._cached_body, self._cached_error + end + + elseif (err == "closed" or err == "connection reset by peer") + and not is_reopen + and self.reopen + and can_reopen(opts.method) + then + ngx.log(ngx.INFO, "Re-opening connection to ", self.options.scheme, "://", + self.options.host, ":", self.options.port) + + self:_connect() + return self:send(opts, true) + end + + return res, err +end + + +--- Open or re-open the client TCP connection +function resty_http_proxy_mt:_connect() + local opts = self.options + + local _, err = self:connect(opts) + if err then + error("Could not connect to " .. + (opts.host or "unknown") .. ":" .. (opts.port or "unknown") .. + ": " .. err) + end + + if opts.connect_timeout and + opts.send_timeout and + opts.read_timeout + then + self:set_timeouts(opts.connect_timeout, opts.send_timeout, opts.read_timeout) + else + self:set_timeout(opts.timeout or 10000) + end +end + + +-- Implements http_client:get("path", [options]), as well as post, put, etc. +-- These methods are equivalent to calling http_client:send, but are shorter +-- They also come with a built-in assert +for _, method_name in ipairs({"get", "post", "put", "patch", "delete", "head", "options"}) do + resty_http_proxy_mt[method_name] = function(self, path, options) + local full_options = kong.table.merge({ method = method_name:upper(), path = path}, options) + return assert(self:send(full_options)) + end +end + + +--- Creates a http client from options. +-- Instead of using this client, you'll probably want to use the pre-configured +-- clients available as `proxy_client`, `admin_client`, etc. because these come +-- pre-configured and connected to the underlying Kong test instance. +-- +-- @function http_client_opts +-- @param options connection and other options +-- @return http client +-- @see http_client:send +-- @see proxy_client +-- @see proxy_ssl_client +-- @see admin_client +-- @see admin_ssl_client +local function http_client_opts(options) + if not options.scheme then + options = utils.deep_copy(options) + options.scheme = "http" + if options.port == 443 then + options.scheme = "https" + else + options.scheme = "http" + end + end + + local self = setmetatable(assert(http.new()), resty_http_proxy_mt) + + self.options = options + + if options.reopen ~= nil then + self.reopen = options.reopen + end + + self:_connect() + + return self +end + + +--- Creates a http client. +-- Instead of using this client, you'll probably want to use the pre-configured +-- clients available as `proxy_client`, `admin_client`, etc. because these come +-- pre-configured and connected to the underlying Kong test instance. +-- +-- @function http_client +-- @param host hostname to connect to +-- @param port port to connect to +-- @param timeout in seconds +-- @return http client +-- @see http_client:send +-- @see proxy_client +-- @see proxy_ssl_client +-- @see admin_client +-- @see admin_ssl_client +local function http_client(host, port, timeout) + if type(host) == "table" then + return http_client_opts(host) + end + + return http_client_opts({ + host = host, + port = port, + timeout = timeout, + }) +end + + +--- Returns the proxy port. +-- @function get_proxy_port +-- @param ssl (boolean) if `true` returns the ssl port +-- @param http2 (boolean) if `true` returns the http2 port +local function get_proxy_port(ssl, http2) + if ssl == nil then ssl = false end + for _, entry in ipairs(conf.proxy_listeners) do + if entry.ssl == ssl and (http2 == nil or entry.http2 == http2) then + return entry.port + end + end + error("No proxy port found for ssl=" .. tostring(ssl), 2) +end + + +--- Returns the proxy ip. +-- @function get_proxy_ip +-- @param ssl (boolean) if `true` returns the ssl ip address +-- @param http2 (boolean) if `true` returns the http2 ip address +local function get_proxy_ip(ssl, http2) + if ssl == nil then ssl = false end + for _, entry in ipairs(conf.proxy_listeners) do + if entry.ssl == ssl and (http2 == nil or entry.http2 == http2) then + return entry.ip + end + end + error("No proxy ip found for ssl=" .. tostring(ssl), 2) +end + + +--- returns a pre-configured `http_client` for the Kong proxy port. +-- @function proxy_client +-- @param timeout (optional, number) the timeout to use +-- @param forced_port (optional, number) if provided will override the port in +-- the Kong configuration with this port +local function proxy_client(timeout, forced_port, forced_ip) + local proxy_ip = get_proxy_ip(false) + local proxy_port = get_proxy_port(false) + assert(proxy_ip, "No http-proxy found in the configuration") + return http_client_opts({ + scheme = "http", + host = forced_ip or proxy_ip, + port = forced_port or proxy_port, + timeout = timeout or 60000, + }) +end + + +--- returns a pre-configured `http_client` for the Kong SSL proxy port. +-- @function proxy_ssl_client +-- @param timeout (optional, number) the timeout to use +-- @param sni (optional, string) the sni to use +local function proxy_ssl_client(timeout, sni) + local proxy_ip = get_proxy_ip(true, true) + local proxy_port = get_proxy_port(true, true) + assert(proxy_ip, "No https-proxy found in the configuration") + local client = http_client_opts({ + scheme = "https", + host = proxy_ip, + port = proxy_port, + timeout = timeout or 60000, + ssl_verify = false, + ssl_server_name = sni, + }) + return client +end + + +--- returns a pre-configured `http_client` for the Kong admin port. +-- @function admin_client +-- @param timeout (optional, number) the timeout to use +-- @param forced_port (optional, number) if provided will override the port in +-- the Kong configuration with this port +local function admin_client(timeout, forced_port) + local admin_ip, admin_port + for _, entry in ipairs(conf.admin_listeners) do + if entry.ssl == false then + admin_ip = entry.ip + admin_port = entry.port + end + end + assert(admin_ip, "No http-admin found in the configuration") + return http_client_opts({ + scheme = "http", + host = admin_ip, + port = forced_port or admin_port, + timeout = timeout or 60000, + reopen = true, + }) +end + +--- returns a pre-configured `http_client` for the Kong admin SSL port. +-- @function admin_ssl_client +-- @param timeout (optional, number) the timeout to use +local function admin_ssl_client(timeout) + local admin_ip, admin_port + for _, entry in ipairs(conf.proxy_listeners) do + if entry.ssl == true then + admin_ip = entry.ip + admin_port = entry.port + end + end + assert(admin_ip, "No https-admin found in the configuration") + local client = http_client_opts({ + scheme = "https", + host = admin_ip, + port = admin_port, + timeout = timeout or 60000, + reopen = true, + }) + return client +end + + +---------------- +-- HTTP2 and GRPC clients +-- @section Shell-helpers + + +-- Generate grpcurl flags from a table of `flag-value`. If `value` is not a +-- string, value is ignored and `flag` is passed as is. +local function gen_grpcurl_opts(opts_t) + local opts_l = {} + + for opt, val in pairs(opts_t) do + if val ~= false then + opts_l[#opts_l + 1] = opt .. " " .. (type(val) == "string" and val or "") + end + end + + return table.concat(opts_l, " ") +end + + +--- Creates an HTTP/2 client, based on the lua-http library. +-- @function http2_client +-- @param host hostname to connect to +-- @param port port to connect to +-- @param tls boolean indicating whether to establish a tls session +-- @return http2 client +local function http2_client(host, port, tls) + local host = assert(host) + local port = assert(port) + tls = tls or false + + -- if Kong/lua-pack is loaded, unload it first + -- so lua-http can use implementation from compat53.string + package.loaded.string.unpack = nil + package.loaded.string.pack = nil + + local request = require "http.request" + local req = request.new_from_uri({ + scheme = tls and "https" or "http", + host = host, + port = port, + }) + req.version = 2 + req.tls = tls + + if tls then + local http_tls = require "http.tls" + local openssl_ctx = require "openssl.ssl.context" + local n_ctx = http_tls.new_client_context() + n_ctx:setVerify(openssl_ctx.VERIFY_NONE) + req.ctx = n_ctx + end + + local meta = getmetatable(req) or {} + + meta.__call = function(req, opts) + local headers = opts and opts.headers + local timeout = opts and opts.timeout + + for k, v in pairs(headers or {}) do + req.headers:upsert(k, v) + end + + local headers, stream = req:go(timeout) + local body = stream:get_body_as_string() + return body, headers + end + + return setmetatable(req, meta) +end + + +--- returns a pre-configured cleartext `http2_client` for the Kong proxy port. +-- @function proxy_client_h2c +-- @return http2 client +local function proxy_client_h2c() + local proxy_ip = get_proxy_ip(false, true) + local proxy_port = get_proxy_port(false, true) + assert(proxy_ip, "No http-proxy found in the configuration") + return http2_client(proxy_ip, proxy_port) +end + + +--- returns a pre-configured TLS `http2_client` for the Kong SSL proxy port. +-- @function proxy_client_h2 +-- @return http2 client +local function proxy_client_h2() + local proxy_ip = get_proxy_ip(true, true) + local proxy_port = get_proxy_port(true, true) + assert(proxy_ip, "No https-proxy found in the configuration") + return http2_client(proxy_ip, proxy_port, true) +end + +local exec -- forward declaration + +--- Creates a gRPC client, based on the grpcurl CLI. +-- @function grpc_client +-- @param host hostname to connect to +-- @param port port to connect to +-- @param opts table with options supported by grpcurl +-- @return grpc client +local function grpc_client(host, port, opts) + local host = assert(host) + local port = assert(tostring(port)) + + opts = opts or {} + if not opts["-proto"] then + opts["-proto"] = MOCK_GRPC_UPSTREAM_PROTO_PATH + end + + return setmetatable({ + opts = opts, + cmd_template = string.format("bin/grpcurl %%s %s:%s %%s", host, port) + + }, { + __call = function(t, args) + local service = assert(args.service) + local body = args.body + + local t_body = type(body) + if t_body ~= "nil" then + if t_body == "table" then + body = cjson.encode(body) + end + + args.opts["-d"] = string.format("'%s'", body) + end + + local opts = gen_grpcurl_opts(pl_tablex.merge(t.opts, args.opts, true)) + local ok, _, out, err = exec(string.format(t.cmd_template, opts, service), true) + + if ok then + return ok, ("%s%s"):format(out or "", err or "") + else + return nil, ("%s%s"):format(out or "", err or "") + end + end + }) +end + + +--- returns a pre-configured `grpc_client` for the Kong proxy port. +-- @function proxy_client_grpc +-- @param host hostname to connect to +-- @param port port to connect to +-- @return grpc client +local function proxy_client_grpc(host, port) + local proxy_ip = host or get_proxy_ip(false, true) + local proxy_port = port or get_proxy_port(false, true) + assert(proxy_ip, "No http-proxy found in the configuration") + return grpc_client(proxy_ip, proxy_port, {["-plaintext"] = true}) +end + +--- returns a pre-configured `grpc_client` for the Kong SSL proxy port. +-- @function proxy_client_grpcs +-- @param host hostname to connect to +-- @param port port to connect to +-- @return grpc client +local function proxy_client_grpcs(host, port) + local proxy_ip = host or get_proxy_ip(true, true) + local proxy_port = port or get_proxy_port(true, true) + assert(proxy_ip, "No https-proxy found in the configuration") + return grpc_client(proxy_ip, proxy_port, {["-insecure"] = true}) +end + + +--- +-- TCP/UDP server helpers +-- +-- @section servers + + +--- Starts a local TCP server. +-- Accepts a single connection (or multiple, if given `opts.requests`) +-- and then closes, echoing what was received (last read, in case +-- of multiple requests). +-- @function tcp_server +-- @tparam number port The port where the server will be listening on +-- @tparam[opt] table opts options defining the server's behavior with the following fields: +-- @tparam[opt=60] number opts.timeout time (in seconds) after which the server exits +-- @tparam[opt=1] number opts.requests the number of requests to accept before exiting +-- @tparam[opt=false] bool opts.tls make it a TLS server if truthy +-- @tparam[opt] string opts.prefix a prefix to add to the echoed data received +-- @return A thread object (from the `llthreads2` Lua package) +-- @see kill_tcp_server +local function tcp_server(port, opts) + local threads = require "llthreads2.ex" + opts = opts or {} + local thread = threads.new({ + function(port, opts) + local socket = require "socket" + local server = assert(socket.tcp()) + server:settimeout(opts.timeout or 60) + assert(server:setoption("reuseaddr", true)) + assert(server:bind("*", port)) + assert(server:listen()) + local line + local oks, fails = 0, 0 + local handshake_done = false + local n = opts.requests or 1 + for _ = 1, n + 1 do + local client, err + if opts.timeout then + client, err = server:accept() + if err == "timeout" then + line = "timeout" + break + + else + assert(client, err) + end + + else + client = assert(server:accept()) + end + + if opts.tls and handshake_done then + local ssl = require "spec.helpers.ssl" + + local params = { + mode = "server", + protocol = "any", + key = "spec/fixtures/kong_spec.key", + certificate = "spec/fixtures/kong_spec.crt", + } + + client = ssl.wrap(client, params) + client:dohandshake() + end + + line, err = client:receive() + if err == "closed" then + fails = fails + 1 + + else + if not handshake_done then + assert(line == "\\START") + client:send("\\OK\n") + handshake_done = true + + else + if line == "@DIE@" then + client:send(string.format("%d:%d\n", oks, fails)) + client:close() + break + end + + oks = oks + 1 + + client:send((opts.prefix or "") .. line .. "\n") + end + + client:close() + end + end + server:close() + return line + end + }, port, opts) + + local thr = thread:start() + + -- not necessary for correctness because we do the handshake, + -- but avoids harmless "connection error" messages in the wait loop + -- in case the client is ready before the server below. + ngx.sleep(0.001) + + local sock = ngx.socket.tcp() + sock:settimeout(0.01) + while true do + if sock:connect("localhost", port) then + sock:send("\\START\n") + local ok = sock:receive() + sock:close() + if ok == "\\OK" then + break + end + end + end + sock:close() + + return thr +end + + +--- Stops a local TCP server. +-- A server previously created with `tcp_server` can be stopped prematurely by +-- calling this function. +-- @function kill_tcp_server +-- @param port the port the TCP server is listening on. +-- @return oks, fails; the number of successes and failures processed by the server +-- @see tcp_server +local function kill_tcp_server(port) + local sock = ngx.socket.tcp() + assert(sock:connect("localhost", port)) + assert(sock:send("@DIE@\n")) + local str = assert(sock:receive()) + assert(sock:close()) + local oks, fails = str:match("(%d+):(%d+)") + return tonumber(oks), tonumber(fails) +end + + +--- Starts a local HTTP server. +-- Accepts a single connection and then closes. Sends a 200 ok, 'Connection: +-- close' response. +-- If the request received has path `/delay` then the response will be delayed +-- by 2 seconds. +-- @function http_server +-- @tparam number port The port the server will be listening on +-- @tparam[opt] table opts options defining the server's behavior with the following fields: +-- @tparam[opt=60] number opts.timeout time (in seconds) after which the server exits +-- @return A thread object (from the `llthreads2` Lua package) +-- @see kill_http_server +local function http_server(port, opts) + local threads = require "llthreads2.ex" + opts = opts or {} + local thread = threads.new({ + function(port, opts) + local socket = require "socket" + local server = assert(socket.tcp()) + server:settimeout(opts.timeout or 60) + assert(server:setoption('reuseaddr', true)) + assert(server:bind("*", port)) + assert(server:listen()) + local client = assert(server:accept()) + + local lines = {} + local headers = {} + local line, err + + local content_length + repeat + line, err = client:receive("*l") + if err then + break + else + local k, v = line:match("^([^:]+):%s*(.+)$") + if k then + headers[k] = v + if k:lower() == "content-length" then + content_length = tonumber(v) + end + end + table.insert(lines, line) + end + until line == "" + + if #lines > 0 and lines[1] == "GET /delay HTTP/1.0" then + ngx.sleep(2) + end + + if err then + server:close() + error(err) + end + + local method = lines[1]:match("^(%S+)%s+(%S+)%s+(%S+)$") + local method_lower = method:lower() + + local body + if content_length then + body = client:receive(content_length) + + elseif method_lower == "put" or method_lower == "post" then + body = client:receive("*a") + end + + + client:send(opts.response or "HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n") + client:close() + server:close() + + return lines, body, headers + end + }, port, opts) + + return thread:start() +end + + +local code_status = { + [200] = "OK", + [201] = "Created", + [202] = "Accepted", + [203] = "Non-Authoritative Information", + [204] = "No Content", + [205] = "Reset Content", + [206] = "Partial Content", + [207] = "Multi-Status", + [300] = "Multiple Choices", + [301] = "Moved Permanently", + [302] = "Found", + [303] = "See Other", + [304] = "Not Modified", + [305] = "Use Proxy", + [307] = "Temporary Redirect", + [308] = "Permanent Redirect", + [400] = "Bad Request", + [401] = "Unauthorized", + [402] = "Payment Required", + [403] = "Forbidden", + [404] = "Not Found", + [405] = "Method Not Allowed", + [406] = "Not Acceptable", + [407] = "Proxy Authentication Required", + [408] = "Request Timeout", + [409] = "Conflict", + [410] = "Gone", + [411] = "Length Required", + [412] = "Precondition Failed", + [413] = "Payload Too Large", + [414] = "URI Too Long", + [415] = "Unsupported Media Type", + [416] = "Range Not Satisfiable", + [417] = "Expectation Failed", + [418] = "I'm a teapot", + [422] = "Unprocessable Entity", + [423] = "Locked", + [424] = "Failed Dependency", + [426] = "Upgrade Required", + [428] = "Precondition Required", + [429] = "Too Many Requests", + [431] = "Request Header Fields Too Large", + [451] = "Unavailable For Legal Reasons", + [500] = "Internal Server Error", + [501] = "Not Implemented", + [502] = "Bad Gateway", + [503] = "Service Unavailable", + [504] = "Gateway Timeout", + [505] = "HTTP Version Not Supported", + [506] = "Variant Also Negotiates", + [507] = "Insufficient Storage", + [508] = "Loop Detected", + [510] = "Not Extended", + [511] = "Network Authentication Required", +} + + +local EMPTY = {} + + +local function handle_response(code, body, headers) + if not code then + code = 500 + body = "" + headers = EMPTY + end + + local head_str = "" + + for k, v in pairs(headers or EMPTY) do + head_str = head_str .. k .. ": " .. v .. "\r\n" + end + + return code .. " " .. code_status[code] .. " HTTP/1.1" .. "\r\n" .. + "Content-Length: " .. #body .. "\r\n" .. + "Connection: close\r\n" .. + head_str .. + "\r\n" .. + body +end + +local function handle_request(client, response) + local lines = {} + local headers = {} + local line, err + + local content_length + repeat + line, err = client:receive("*l") + if err then + return nil, err + else + local k, v = line:match("^([^:]+):%s*(.+)$") + if k then + headers[k] = v + if k:lower() == "content-length" then + content_length = tonumber(v) + end + end + table.insert(lines, line) + end + until line == "" + + local method = lines[1]:match("^(%S+)%s+(%S+)%s+(%S+)$") + local method_lower = method:lower() + + local body + if content_length then + body = client:receive(content_length) + + elseif method_lower == "put" or method_lower == "post" then + body = client:receive("*a") + end + + local response_str + local meta = getmetatable(response) + if type(response) == "function" or (meta and meta.__call) then + response_str = response(lines, body, headers) + + elseif type(response) == "table" and response.code then + response_str = handle_response(response.code, response.body, response.headers) + + elseif type(response) == "table" and response[1] then + response_str = handle_response(response[1], response[2], response[3]) + + elseif type(response) == "string" then + response_str = response + + elseif response == nil then + response_str = "HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n" + end + + + client:send(response_str) + return lines, body, headers +end + + +--- Start a local HTTP server with coroutine. +-- local mock = helpers.http_mock(1234, { timeout = 0.1 }) +-- wait for a request, and respond with the custom response +-- the request is returned as the function's return values +-- return nil, err if error +-- local lines, body, headers = mock(custom_response) +-- local lines, body, headers = mock() +-- mock("closing", true) -- close the server +local function http_mock(port, opts) + local socket = require "socket" + local server = assert(socket.tcp()) + server:settimeout(opts.timeout or 60) + assert(server:setoption('reuseaddr', true)) + assert(server:bind("*", port)) + assert(server:listen()) + return coroutine.wrap(function(response, exit) + local lines, body, headers + -- start listening + while not exit do + local client, err = server:accept() + if err then + lines, body = false, err + + else + lines, body, headers = handle_request(client, response) + client:close() + end + + response, exit = coroutine.yield(lines, body, headers) + end + + server:close() + return true + end) +end + + +--- Stops a local HTTP server. +-- A server previously created with `http_server` can be stopped prematurely by +-- calling this function. +-- @function kill_http_server +-- @param port the port the HTTP server is listening on. +-- @see http_server +local function kill_http_server(port) + os.execute("fuser -n tcp -k " .. port) +end + + +--- Starts a local UDP server. +-- Reads the specified number of packets and then closes. +-- The server-thread return values depend on `n`: +-- +-- * `n = 1`; returns the received packet (string), or `nil + err` +-- +-- * `n > 1`; returns `data + err`, where `data` will always be a table with the +-- received packets. So `err` must explicitly be checked for errors. +-- @function udp_server +-- @tparam[opt=MOCK_UPSTREAM_PORT] number port The port the server will be listening on +-- @tparam[opt=1] number n The number of packets that will be read +-- @tparam[opt=360] number timeout Timeout per read (default 360) +-- @return A thread object (from the `llthreads2` Lua package) +local function udp_server(port, n, timeout) + local threads = require "llthreads2.ex" + + local thread = threads.new({ + function(port, n, timeout) + local socket = require "socket" + local server = assert(socket.udp()) + server:settimeout(timeout or 360) + server:setoption("reuseaddr", true) + server:setsockname("127.0.0.1", port) + local err + local data = {} + local handshake_done = false + local i = 0 + while i < n do + local pkt, rport + pkt, err, rport = server:receivefrom() + if not pkt then + break + end + if pkt == "KONG_UDP_HELLO" then + if not handshake_done then + handshake_done = true + server:sendto("KONG_UDP_READY", "127.0.0.1", rport) + end + else + i = i + 1 + data[i] = pkt + err = nil -- upon succes it would contain the remote ip address + end + end + server:close() + return (n > 1 and data or data[1]), err + end + }, port or MOCK_UPSTREAM_PORT, n or 1, timeout) + thread:start() + + local socket = require "socket" + local handshake = socket.udp() + handshake:settimeout(0.01) + handshake:setsockname("127.0.0.1", 0) + while true do + handshake:sendto("KONG_UDP_HELLO", "127.0.0.1", port) + local data = handshake:receive() + if data == "KONG_UDP_READY" then + break + end + end + handshake:close() + + return thread +end + +-------------------- +-- Custom assertions +-- +-- @section assertions + +local say = require "say" +local luassert = require "luassert.assert" +require("spec.helpers.wait") + +--- Waits until a specific condition is met. +-- The check function will repeatedly be called (with a fixed interval), until +-- the condition is met. Throws an error on timeout. +-- +-- NOTE: this is a regular Lua function, not a Luassert assertion. +-- @function wait_until +-- @param f check function that should return `truthy` when the condition has +-- been met +-- @param timeout (optional) maximum time to wait after which an error is +-- thrown, defaults to 5. +-- @param step (optional) interval between checks, defaults to 0.05. +-- @return nothing. It returns when the condition is met, or throws an error +-- when it times out. +-- @usage +-- -- wait 10 seconds for a file "myfilename" to appear +-- helpers.wait_until(function() return file_exist("myfilename") end, 10) +local function wait_until(f, timeout, step) + luassert.wait_until({ + condition = "truthy", + fn = f, + timeout = timeout, + step = step, + }) +end + + +--- Waits until no Lua error occurred +-- The check function will repeatedly be called (with a fixed interval), until +-- there is no Lua error occurred +-- +-- NOTE: this is a regular Lua function, not a Luassert assertion. +-- @function pwait_until +-- @param f check function +-- @param timeout (optional) maximum time to wait after which an error is +-- thrown, defaults to 5. +-- @param step (optional) interval between checks, defaults to 0.05. +-- @return nothing. It returns when the condition is met, or throws an error +-- when it times out. +local function pwait_until(f, timeout, step) + luassert.wait_until({ + condition = "no_error", + fn = f, + timeout = timeout, + step = step, + }) +end + + +--- Wait for some timers, throws an error on timeout. +-- +-- NOTE: this is a regular Lua function, not a Luassert assertion. +-- @function wait_timer +-- @tparam string timer_name_pattern the call will apply to all timers matching this string +-- @tparam boolean plain if truthy, the `timer_name_pattern` will be matched plain, so without pattern matching +-- @tparam string mode one of: "all-finish", "all-running", "any-finish", "any-running", or "worker-wide-all-finish" +-- +-- any-finish: At least one of the timers that were matched finished +-- +-- all-finish: All timers that were matched finished +-- +-- any-running: At least one of the timers that were matched is running +-- +-- all-running: All timers that were matched are running +-- +-- worker-wide-all-finish: All the timers in the worker that were matched finished +-- @tparam[opt=2] number timeout maximum time to wait +-- @tparam[opt] number admin_client_timeout, to override the default timeout setting +-- @tparam[opt] number forced_admin_port to override the default port of admin API +-- @usage helpers.wait_timer("rate-limiting", true, "all-finish", 10) +local function wait_timer(timer_name_pattern, plain, + mode, timeout, + admin_client_timeout, forced_admin_port) + if not timeout then + timeout = 2 + end + + local _admin_client + + local all_running_each_worker = nil + local all_finish_each_worker = nil + local any_running_each_worker = nil + local any_finish_each_worker = nil + + wait_until(function () + if _admin_client then + _admin_client:close() + end + + _admin_client = admin_client(admin_client_timeout, forced_admin_port) + local res = assert(_admin_client:get("/timers")) + local body = luassert.res_status(200, res) + local json = assert(cjson.decode(body)) + local worker_id = json.worker.id + local worker_count = json.worker.count + + if not all_running_each_worker then + all_running_each_worker = {} + all_finish_each_worker = {} + any_running_each_worker = {} + any_finish_each_worker = {} + + for i = 0, worker_count - 1 do + all_running_each_worker[i] = false + all_finish_each_worker[i] = false + any_running_each_worker[i] = false + any_finish_each_worker[i] = false + end + end + + local is_matched = false + + for timer_name, timer in pairs(json.stats.timers) do + if string.find(timer_name, timer_name_pattern, 1, plain) then + is_matched = true + + all_finish_each_worker[worker_id] = false + + if timer.is_running then + all_running_each_worker[worker_id] = true + any_running_each_worker[worker_id] = true + goto continue + end + + all_running_each_worker[worker_id] = false + + goto continue + end + + ::continue:: + end + + if not is_matched then + any_finish_each_worker[worker_id] = true + all_finish_each_worker[worker_id] = true + end + + local all_running = false + + local all_finish = false + local all_finish_worker_wide = true + + local any_running = false + local any_finish = false + + for _, v in pairs(all_running_each_worker) do + all_running = all_running or v + end + + for _, v in pairs(all_finish_each_worker) do + all_finish = all_finish or v + all_finish_worker_wide = all_finish_worker_wide and v + end + + for _, v in pairs(any_running_each_worker) do + any_running = any_running or v + end + + for _, v in pairs(any_finish_each_worker) do + any_finish = any_finish or v + end + + if mode == "all-running" then + return all_running + end + + if mode == "all-finish" then + return all_finish + end + + if mode == "worker-wide-all-finish" then + return all_finish_worker_wide + end + + if mode == "any-finish" then + return any_finish + end + + if mode == "any-running" then + return any_running + end + + error("unexpected error") + end, timeout) +end + + +--- Waits for invalidation of a cached key by polling the mgt-api +-- and waiting for a 404 response. Throws an error on timeout. +-- +-- NOTE: this is a regular Lua function, not a Luassert assertion. +-- @function wait_for_invalidation +-- @param key (string) the cache-key to check +-- @param timeout (optional) in seconds (for default see `wait_until`). +-- @return nothing. It returns when the key is invalidated, or throws an error +-- when it times out. +-- @usage +-- local cache_key = "abc123" +-- helpers.wait_for_invalidation(cache_key, 10) +local function wait_for_invalidation(key, timeout) + -- TODO: this code is duplicated all over the codebase, + -- search codebase for "/cache/" endpoint + local api_client = admin_client() + wait_until(function() + local res = api_client:get("/cache/" .. key) + res:read_body() + return res.status == 404 + end, timeout) +end + + +--- Wait for all targets, upstreams, services, and routes update +-- +-- NOTE: this function is not available for DBless-mode +-- @function wait_for_all_config_update +-- @tparam[opt] table opts a table contains params +-- @tparam[opt=30] number timeout maximum seconds to wait, defatuls is 30 +-- @tparam[opt] number admin_client_timeout to override the default timeout setting +-- @tparam[opt] number forced_admin_port to override the default Admin API port +-- @tparam[opt] boolean stream_enabled to enable stream module +-- @tparam[opt] number proxy_client_timeout to override the default timeout setting +-- @tparam[opt] number forced_proxy_port to override the default proxy port +-- @tparam[opt] number stream_port to set the stream port +-- @tparam[opt] string stream_ip to set the stream ip +-- @tparam[opt=false] boolean override_global_rate_limiting_plugin to override the global rate-limiting plugin in waiting +-- @tparam[opt=false] boolean override_global_key_auth_plugin to override the global key-auth plugin in waiting +-- @usage helpers.wait_for_all_config_update() +local function wait_for_all_config_update(opts) + opts = opts or {} + local timeout = opts.timeout or 30 + local admin_client_timeout = opts.admin_client_timeout + local forced_admin_port = opts.forced_admin_port + local proxy_client_timeout = opts.proxy_client_timeout + local forced_proxy_port = opts.forced_proxy_port + local stream_port = opts.stream_port + local stream_ip = opts.stream_ip + local stream_enabled = opts.stream_enabled or false + local override_rl = opts.override_global_rate_limiting_plugin or false + local override_auth = opts.override_global_key_auth_plugin or false + + local function call_admin_api(method, path, body, expected_status) + local client = admin_client(admin_client_timeout, forced_admin_port) + + local res + + if string.upper(method) == "POST" then + res = client:post(path, { + headers = {["Content-Type"] = "application/json"}, + body = body, + }) + + elseif string.upper(method) == "DELETE" then + res = client:delete(path) + end + + local ok, json_or_nil_or_err = pcall(function () + assert(res.status == expected_status, "unexpected response code: " .. res.status) + + if string.upper(method) == "DELETE" then + return + end + + local json = cjson.decode((res:read_body())) + assert(json ~= nil, "unexpected response body") + return json + end) + + client:close() + + assert(ok, json_or_nil_or_err) + + return json_or_nil_or_err + end + + local upstream_id, target_id, service_id, route_id + local stream_upstream_id, stream_target_id, stream_service_id, stream_route_id + local consumer_id, rl_plugin_id, key_auth_plugin_id, credential_id + local upstream_name = "really.really.really.really.really.really.really.mocking.upstream.com" + local service_name = "really-really-really-really-really-really-really-mocking-service" + local stream_upstream_name = "stream-really.really.really.really.really.really.really.mocking.upstream.com" + local stream_service_name = "stream-really-really-really-really-really-really-really-mocking-service" + local route_path = "/really-really-really-really-really-really-really-mocking-route" + local key_header_name = "really-really-really-really-really-really-really-mocking-key" + local consumer_name = "really-really-really-really-really-really-really-mocking-consumer" + local test_credentials = "really-really-really-really-really-really-really-mocking-credentials" + + local host = "localhost" + local port = get_available_port() + + local server = https_server.new(port, host, "http", nil, 1) + + server:start() + + -- create mocking upstream + local res = assert(call_admin_api("POST", + "/upstreams", + { name = upstream_name }, + 201)) + upstream_id = res.id + + -- create mocking target to mocking upstream + res = assert(call_admin_api("POST", + string.format("/upstreams/%s/targets", upstream_id), + { target = host .. ":" .. port }, + 201)) + target_id = res.id + + -- create mocking service to mocking upstream + res = assert(call_admin_api("POST", + "/services", + { name = service_name, url = "http://" .. upstream_name .. "/always_200" }, + 201)) + service_id = res.id + + -- create mocking route to mocking service + res = assert(call_admin_api("POST", + string.format("/services/%s/routes", service_id), + { paths = { route_path }, strip_path = true, path_handling = "v0",}, + 201)) + route_id = res.id + + if override_rl then + -- create rate-limiting plugin to mocking mocking service + res = assert(call_admin_api("POST", + string.format("/services/%s/plugins", service_id), + { name = "rate-limiting", config = { minute = 999999, policy = "local" } }, + 201)) + rl_plugin_id = res.id + end + + if override_auth then + -- create key-auth plugin to mocking mocking service + res = assert(call_admin_api("POST", + string.format("/services/%s/plugins", service_id), + { name = "key-auth", config = { key_names = { key_header_name } } }, + 201)) + key_auth_plugin_id = res.id + + -- create consumer + res = assert(call_admin_api("POST", + "/consumers", + { username = consumer_name }, + 201)) + consumer_id = res.id + + -- create credential to key-auth plugin + res = assert(call_admin_api("POST", + string.format("/consumers/%s/key-auth", consumer_id), + { key = test_credentials }, + 201)) + credential_id = res.id + end + + if stream_enabled then + -- create mocking upstream + local res = assert(call_admin_api("POST", + "/upstreams", + { name = stream_upstream_name }, + 201)) + stream_upstream_id = res.id + + -- create mocking target to mocking upstream + res = assert(call_admin_api("POST", + string.format("/upstreams/%s/targets", stream_upstream_id), + { target = host .. ":" .. port }, + 201)) + stream_target_id = res.id + + -- create mocking service to mocking upstream + res = assert(call_admin_api("POST", + "/services", + { name = stream_service_name, url = "tcp://" .. stream_upstream_name }, + 201)) + stream_service_id = res.id + + -- create mocking route to mocking service + res = assert(call_admin_api("POST", + string.format("/services/%s/routes", stream_service_id), + { destinations = { { port = stream_port }, }, protocols = { "tcp" },}, + 201)) + stream_route_id = res.id + end + + local ok, err = pcall(function () + -- wait for mocking route ready + pwait_until(function () + local proxy = proxy_client(proxy_client_timeout, forced_proxy_port) + + if override_auth then + res = proxy:get(route_path, { headers = { [key_header_name] = test_credentials } }) + + else + res = proxy:get(route_path) + end + + local ok, err = pcall(assert, res.status == 200) + proxy:close() + assert(ok, err) + end, timeout / 2) + + if stream_enabled then + pwait_until(function () + local proxy = proxy_client(proxy_client_timeout, stream_port, stream_ip) + res = proxy:get("/always_200") + local ok, err = pcall(assert, res.status == 200) + proxy:close() + assert(ok, err) + end, timeout) + end + end) + if not ok then + server:shutdown() + error(err) + end + + -- delete mocking configurations + if override_auth then + call_admin_api("DELETE", string.format("/consumers/%s/key-auth/%s", consumer_id, credential_id), nil, 204) + call_admin_api("DELETE", string.format("/consumers/%s", consumer_id), nil, 204) + call_admin_api("DELETE", "/plugins/" .. key_auth_plugin_id, nil, 204) + end + + if override_rl then + call_admin_api("DELETE", "/plugins/" .. rl_plugin_id, nil, 204) + end + + call_admin_api("DELETE", "/routes/" .. route_id, nil, 204) + call_admin_api("DELETE", "/services/" .. service_id, nil, 204) + call_admin_api("DELETE", string.format("/upstreams/%s/targets/%s", upstream_id, target_id), nil, 204) + call_admin_api("DELETE", "/upstreams/" .. upstream_id, nil, 204) + + if stream_enabled then + call_admin_api("DELETE", "/routes/" .. stream_route_id, nil, 204) + call_admin_api("DELETE", "/services/" .. stream_service_id, nil, 204) + call_admin_api("DELETE", string.format("/upstreams/%s/targets/%s", stream_upstream_id, stream_target_id), nil, 204) + call_admin_api("DELETE", "/upstreams/" .. stream_upstream_id, nil, 204) + end + + ok, err = pcall(function () + -- wait for mocking configurations to be deleted + pwait_until(function () + local proxy = proxy_client(proxy_client_timeout, forced_proxy_port) + res = proxy:get(route_path) + local ok, err = pcall(assert, res.status == 404) + proxy:close() + assert(ok, err) + end, timeout / 2) + end) + + server:shutdown() + + if not ok then + error(err) + end + +end + + +--- Waits for a file to meet a certain condition +-- The check function will repeatedly be called (with a fixed interval), until +-- there is no Lua error occurred +-- +-- NOTE: this is a regular Lua function, not a Luassert assertion. +-- @function wait_for_file +-- @tparam string mode one of: +-- +-- "file", "directory", "link", "socket", "named pipe", "char device", "block device", "other" +-- +-- @tparam string path the file path +-- @tparam[opt=10] number timeout maximum seconds to wait +local function wait_for_file(mode, path, timeout) + pwait_until(function() + local result, err = lfs.attributes(path, "mode") + local msg = string.format("failed to wait for the mode (%s) of '%s': %s", + mode, path, tostring(err)) + assert(result == mode, msg) + end, timeout or 10) +end + + +local wait_for_file_contents +do + --- Wait until a file exists and is non-empty. + -- + -- If, after the timeout is reached, the file does not exist, is not + -- readable, or is empty, an assertion error will be raised. + -- + -- @function wait_for_file_contents + -- @param fname the filename to wait for + -- @param timeout (optional) maximum time to wait after which an error is + -- thrown, defaults to 10. + -- @return contents the file contents, as a string + function wait_for_file_contents(fname, timeout) + assert(type(fname) == "string", + "filename must be a string") + + timeout = timeout or 10 + assert(type(timeout) == "number" and timeout >= 0, + "timeout must be nil or a number >= 0") + + local data = pl_file.read(fname) + if data and #data > 0 then + return data + end + + pcall(wait_until, function() + data = pl_file.read(fname) + return data and #data > 0 + end, timeout) + + assert(data, "file (" .. fname .. ") does not exist or is not readable" + .. " after " .. tostring(timeout) .. " seconds") + + assert(#data > 0, "file (" .. fname .. ") exists but is empty after " .. + tostring(timeout) .. " seconds") + + return data + end +end + + + +--- Generic modifier "response". +-- Will set a "response" value in the assertion state, so following +-- assertions will operate on the value set. +-- @function response +-- @param response_obj results from `http_client:send` function (or any of the +-- shortcuts `client:get`, `client:post`, etc). +-- @usage +-- local res = client:get("/request", { .. request options here ..}) +-- local response_length = assert.response(res).has.header("Content-Length") +local function modifier_response(state, arguments, level) + assert(arguments.n > 0, + "response modifier requires a response object as argument") + + local res = arguments[1] + + assert(type(res) == "table" and type(res.read_body) == "function", + "response modifier requires a response object as argument, got: " .. tostring(res)) + + rawset(state, "kong_response", res) + rawset(state, "kong_request", nil) + + return state +end +luassert:register("modifier", "response", modifier_response) + + +--- Generic modifier "request". +-- Will set a "request" value in the assertion state, so following +-- assertions will operate on the value set. +-- +-- The request must be inside a 'response' from the `mock_upstream`. If a request +-- is send to the `mock_upstream` endpoint `"/request"`, it will echo the request +-- received in the body of the response. +-- @function request +-- @param response_obj results from `http_client:send` function (or any of the +-- shortcuts `client:get`, `client:post`, etc). +-- @usage +-- local res = client:post("/request", { +-- headers = { ["Content-Type"] = "application/json" }, +-- body = { hello = "world" }, +-- }) +-- local request_length = assert.request(res).has.header("Content-Length") +local function modifier_request(state, arguments, level) + local generic = "The assertion 'request' modifier takes a http response" + .. " object as input to decode the json-body returned by" + .. " mock_upstream, to retrieve the proxied request." + + local res = arguments[1] + + assert(type(res) == "table" and type(res.read_body) == "function", + "Expected a http response object, got '" .. tostring(res) .. "'. " .. generic) + + local body, request, err + body = assert(res:read_body()) + request, err = cjson.decode(body) + + assert(request, "Expected the http response object to have a json encoded body," + .. " but decoding gave error '" .. tostring(err) .. "'. Obtained body: " + .. body .. "\n." .. generic) + + + if lookup((res.headers or {}),"X-Powered-By") ~= "mock_upstream" then + error("Could not determine the response to be from mock_upstream") + end + + rawset(state, "kong_request", request) + rawset(state, "kong_response", nil) + + return state +end +luassert:register("modifier", "request", modifier_request) + + +--- Generic fail assertion. A convenience function for debugging tests, always +-- fails. It will output the values it was called with as a table, with an `n` +-- field to indicate the number of arguments received. See also `intercept`. +-- @function fail +-- @param ... any set of parameters to be displayed with the failure +-- @see intercept +-- @usage +-- assert.fail(some, value) +local function fail(state, args) + local out = {} + for k,v in pairs(args) do out[k] = v end + args[1] = out + args.n = 1 + return false +end +say:set("assertion.fail.negative", [[ +Fail assertion was called with the following parameters (formatted as a table); +%s +]]) +luassert:register("assertion", "fail", fail, + "assertion.fail.negative", + "assertion.fail.negative") + + +--- Assertion to check whether a value lives in an array. +-- @function contains +-- @param expected The value to search for +-- @param array The array to search for the value +-- @param pattern (optional) If truthy, then `expected` is matched as a Lua string +-- pattern +-- @return the array index at which the value was found +-- @usage +-- local arr = { "one", "three" } +-- local i = assert.contains("one", arr) --> passes; i == 1 +-- local i = assert.contains("two", arr) --> fails +-- local i = assert.contains("ee$", arr, true) --> passes; i == 2 +local function contains(state, args) + local expected, arr, pattern = unpack(args) + local found + for i = 1, #arr do + if (pattern and string.match(arr[i], expected)) or arr[i] == expected then + found = i + break + end + end + return found ~= nil, {found} +end +say:set("assertion.contains.negative", [[ +Expected array to contain element. +Expected to contain: +%s +]]) +say:set("assertion.contains.positive", [[ +Expected array to not contain element. +Expected to not contain: +%s +]]) +luassert:register("assertion", "contains", contains, + "assertion.contains.negative", + "assertion.contains.positive") + +local deep_sort do + local function deep_compare(a, b) + if a == nil then + a = "" + end + + if b == nil then + b = "" + end + + deep_sort(a) + deep_sort(b) + + if type(a) ~= type(b) then + return type(a) < type(b) + end + + if type(a) == "table" then + return deep_compare(a[1], b[1]) + end + + return a < b + end + + function deep_sort(t) + if type(t) == "table" then + for _, v in pairs(t) do + deep_sort(v) + end + table.sort(t, deep_compare) + end + + return t + end +end + + +--- Assertion to check the status-code of a http response. +-- @function status +-- @param expected the expected status code +-- @param response (optional) results from `http_client:send` function, +-- alternatively use `response`. +-- @return the response body as a string, for a json body see `jsonbody`. +-- @usage +-- local res = assert(client:send { .. your request params here .. }) +-- local body = assert.has.status(200, res) -- or alternativly +-- local body = assert.response(res).has.status(200) -- does the same +local function res_status(state, args) + assert(not rawget(state, "kong_request"), + "Cannot check statuscode against a request object," + .. " only against a response object") + + local expected = args[1] + local res = args[2] or rawget(state, "kong_response") + + assert(type(expected) == "number", + "Expected response code must be a number value. Got: " .. tostring(expected)) + assert(type(res) == "table" and type(res.read_body) == "function", + "Expected a http_client response. Got: " .. tostring(res)) + + if expected ~= res.status then + local body, err = res:read_body() + if not body then body = "Error reading body: " .. err end + table.insert(args, 1, pl_stringx.strip(body)) + table.insert(args, 1, res.status) + table.insert(args, 1, expected) + args.n = 3 + + if res.status == 500 then + -- on HTTP 500, we can try to read the server's error logs + -- for debugging purposes (very useful for travis) + local str = pl_file.read(conf.nginx_err_logs) + if not str then + return false -- no err logs to read in this prefix + end + + local str_t = pl_stringx.splitlines(str) + local first_line = #str_t - math.min(60, #str_t) + 1 + local msg_t = {"\nError logs (" .. conf.nginx_err_logs .. "):"} + for i = first_line, #str_t do + msg_t[#msg_t+1] = str_t[i] + end + + table.insert(args, 4, table.concat(msg_t, "\n")) + args.n = 4 + end + + return false + else + local body, err = res:read_body() + local output = body + if not output then output = "Error reading body: " .. err end + output = pl_stringx.strip(output) + table.insert(args, 1, output) + table.insert(args, 1, res.status) + table.insert(args, 1, expected) + args.n = 3 + return true, {pl_stringx.strip(body)} + end +end +say:set("assertion.res_status.negative", [[ +Invalid response status code. +Status expected: +%s +Status received: +%s +Body: +%s +%s]]) +say:set("assertion.res_status.positive", [[ +Invalid response status code. +Status not expected: +%s +Status received: +%s +Body: +%s +%s]]) +luassert:register("assertion", "status", res_status, + "assertion.res_status.negative", "assertion.res_status.positive") +luassert:register("assertion", "res_status", res_status, + "assertion.res_status.negative", "assertion.res_status.positive") + + +--- Checks and returns a json body of an http response/request. Only checks +-- validity of the json, does not check appropriate headers. Setting the target +-- to check can be done through the `request` and `response` modifiers. +-- +-- For a non-json body, see the `status` assertion. +-- @function jsonbody +-- @return the decoded json as a table +-- @usage +-- local res = assert(client:send { .. your request params here .. }) +-- local json_table = assert.response(res).has.jsonbody() +local function jsonbody(state, args) + assert(args[1] == nil and rawget(state, "kong_request") or rawget(state, "kong_response"), + "the `jsonbody` assertion does not take parameters. " .. + "Use the `response`/`require` modifiers to set the target to operate on") + + if rawget(state, "kong_response") then + local body = rawget(state, "kong_response"):read_body() + local json, err = cjson.decode(body) + if not json then + table.insert(args, 1, "Error decoding: " .. tostring(err) .. "\nResponse body:" .. body) + args.n = 1 + return false + end + return true, {json} + + else + local r = rawget(state, "kong_request") + if r.post_data + and (r.post_data.kind == "json" or r.post_data.kind == "json (error)") + and r.post_data.params + then + local pd = r.post_data + return true, { { params = pd.params, data = pd.text, error = pd.error, kind = pd.kind } } + + else + error("No json data found in the request") + end + end +end +say:set("assertion.jsonbody.negative", [[ +Expected response body to contain valid json. Got: +%s +]]) +say:set("assertion.jsonbody.positive", [[ +Expected response body to not contain valid json. Got: +%s +]]) +luassert:register("assertion", "jsonbody", jsonbody, + "assertion.jsonbody.negative", + "assertion.jsonbody.positive") + + +--- Asserts that a named header in a `headers` subtable exists. +-- Header name comparison is done case-insensitive. +-- @function header +-- @param name header name to look for (case insensitive). +-- @see response +-- @see request +-- @return value of the header +-- @usage +-- local res = client:get("/request", { .. request options here ..}) +-- local resp_header_value = assert.response(res).has.header("Content-Length") +-- local req_header_value = assert.request(res).has.header("Content-Length") +local function res_header(state, args) + local header = args[1] + local res = args[2] or rawget(state, "kong_request") or rawget(state, "kong_response") + assert(type(res) == "table" and type(res.headers) == "table", + "'header' assertion input does not contain a 'headers' subtable") + local value = lookup(res.headers, header) + table.insert(args, 1, res.headers) + table.insert(args, 1, header) + args.n = 2 + if not value then + return false + end + return true, {value} +end +say:set("assertion.res_header.negative", [[ +Expected header: +%s +But it was not found in: +%s +]]) +say:set("assertion.res_header.positive", [[ +Did not expected header: +%s +But it was found in: +%s +]]) +luassert:register("assertion", "header", res_header, + "assertion.res_header.negative", + "assertion.res_header.positive") + + +--- +-- An assertion to look for a query parameter in a query string. +-- Parameter name comparison is done case-insensitive. +-- @function queryparam +-- @param name name of the query parameter to look up (case insensitive) +-- @return value of the parameter +-- @usage +-- local res = client:get("/request", { +-- query = { hello = "world" }, +-- }) +-- local param_value = assert.request(res).has.queryparam("hello") +local function req_query_param(state, args) + local param = args[1] + local req = rawget(state, "kong_request") + assert(req, "'queryparam' assertion only works with a request object") + local params + if type(req.uri_args) == "table" then + params = req.uri_args + + else + error("No query parameters found in request object") + end + local value = lookup(params, param) + table.insert(args, 1, params) + table.insert(args, 1, param) + args.n = 2 + if not value then + return false + end + return true, {value} +end +say:set("assertion.req_query_param.negative", [[ +Expected query parameter: +%s +But it was not found in: +%s +]]) +say:set("assertion.req_query_param.positive", [[ +Did not expected query parameter: +%s +But it was found in: +%s +]]) +luassert:register("assertion", "queryparam", req_query_param, + "assertion.req_query_param.negative", + "assertion.req_query_param.positive") + + +--- +-- Adds an assertion to look for a urlencoded form parameter in a request. +-- Parameter name comparison is done case-insensitive. Use the `request` modifier to set +-- the request to operate on. +-- @function formparam +-- @param name name of the form parameter to look up (case insensitive) +-- @return value of the parameter +-- @usage +-- local r = assert(proxy_client:post("/request", { +-- body = { +-- hello = "world", +-- }, +-- headers = { +-- host = "mock_upstream", +-- ["Content-Type"] = "application/x-www-form-urlencoded", +-- }, +-- }) +-- local value = assert.request(r).has.formparam("hello") +-- assert.are.equal("world", value) +local function req_form_param(state, args) + local param = args[1] + local req = rawget(state, "kong_request") + assert(req, "'formparam' assertion can only be used with a mock_upstream request object") + + local value + if req.post_data + and (req.post_data.kind == "form" or req.post_data.kind == "multipart-form") + then + value = lookup(req.post_data.params or {}, param) + else + error("Could not determine the request to be from either mock_upstream") + end + + table.insert(args, 1, req) + table.insert(args, 1, param) + args.n = 2 + if not value then + return false + end + return true, {value} +end +say:set("assertion.req_form_param.negative", [[ +Expected url encoded form parameter: +%s +But it was not found in request: +%s +]]) +say:set("assertion.req_form_param.positive", [[ +Did not expected url encoded form parameter: +%s +But it was found in request: +%s +]]) +luassert:register("assertion", "formparam", req_form_param, + "assertion.req_form_param.negative", + "assertion.req_form_param.positive") + + +--- +-- Assertion to ensure a value is greater than a base value. +-- @function is_gt +-- @param base the base value to compare against +-- @param value the value that must be greater than the base value +local function is_gt(state, arguments) + local expected = arguments[1] + local value = arguments[2] + + arguments[1] = value + arguments[2] = expected + + return value > expected +end +say:set("assertion.gt.negative", [[ +Given value (%s) should be greater than expected value (%s) +]]) +say:set("assertion.gt.positive", [[ +Given value (%s) should not be greater than expected value (%s) +]]) +luassert:register("assertion", "gt", is_gt, + "assertion.gt.negative", + "assertion.gt.positive") + +--- Generic modifier "certificate". +-- Will set a "certificate" value in the assertion state, so following +-- assertions will operate on the value set. +-- @function certificate +-- @param cert The cert text +-- @see cn +-- @usage +-- assert.certificate(cert).has.cn("ssl-example.com") +local function modifier_certificate(state, arguments, level) + local generic = "The assertion 'certficate' modifier takes a cert text" + .. " as input to validate certificate parameters" + .. " against." + local cert = arguments[1] + assert(type(cert) == "string", + "Expected a certificate text, got '" .. tostring(cert) .. "'. " .. generic) + rawset(state, "kong_certificate", cert) + return state +end +luassert:register("modifier", "certificate", modifier_certificate) + +--- Assertion to check whether a CN is matched in an SSL cert. +-- @function cn +-- @param expected The CN value +-- @param cert The cert text +-- @return the CN found in the cert +-- @see certificate +-- @usage +-- assert.cn("ssl-example.com", cert) +-- +-- -- alternative: +-- assert.certificate(cert).has.cn("ssl-example.com") +local function assert_cn(state, args) + local expected = args[1] + if args[2] and rawget(state, "kong_certificate") then + error("assertion 'cn' takes either a 'certificate' modifier, or 2 parameters, not both") + end + local cert = args[2] or rawget(state, "kong_certificate") + local cn = string.match(cert, "CN%s*=%s*([^%s,]+)") + args[2] = cn or "(CN not found in certificate)" + args.n = 2 + return cn == expected +end +say:set("assertion.cn.negative", [[ +Expected certificate to have the given CN value. +Expected CN: +%s +Got instead: +%s +]]) +say:set("assertion.cn.positive", [[ +Expected certificate to not have the given CN value. +Expected CN to not be: +%s +Got instead: +%s +]]) +luassert:register("assertion", "cn", assert_cn, + "assertion.cn.negative", + "assertion.cn.positive") + +do + --- Generic modifier "logfile" + -- Will set an "errlog_path" value in the assertion state. + -- @function logfile + -- @param path A path to the log file (defaults to the test prefix's + -- errlog). + -- @see line + -- @see clean_logfile + -- @usage + -- assert.logfile("./my/logfile.log").has.no.line("[error]", true) + local function modifier_errlog(state, args) + local errlog_path = args[1] or conf.nginx_err_logs + + assert(type(errlog_path) == "string", "logfile modifier expects nil, or " .. + "a string as argument, got: " .. + type(errlog_path)) + + rawset(state, "errlog_path", errlog_path) + + return state + end + + luassert:register("modifier", "errlog", modifier_errlog) -- backward compat + luassert:register("modifier", "logfile", modifier_errlog) + + + --- Assertion checking if any line from a file matches the given regex or + -- substring. + -- @function line + -- @param regex The regex to evaluate against each line. + -- @param plain If true, the regex argument will be considered as a plain + -- string. + -- @param timeout An optional timeout after which the assertion will fail if + -- reached. + -- @param fpath An optional path to the file (defaults to the filelog + -- modifier) + -- @see logfile + -- @see clean_logfile + -- @usage + -- helpers.clean_logfile() + -- + -- -- run some tests here + -- + -- assert.logfile().has.no.line("[error]", true) + local function match_line(state, args) + local regex = args[1] + local plain = args[2] + local timeout = args[3] or 2 + local fpath = args[4] or rawget(state, "errlog_path") + + assert(type(regex) == "string", + "Expected the regex argument to be a string") + assert(type(fpath) == "string", + "Expected the file path argument to be a string") + assert(type(timeout) == "number" and timeout > 0, + "Expected the timeout argument to be a positive number") + + local pok = pcall(wait_until, function() + local logs = pl_file.read(fpath) + local from, _, err + + for line in logs:gmatch("[^\r\n]+") do + if plain then + from = string.find(line, regex, nil, true) + + else + from, _, err = ngx.re.find(line, regex) + if err then + error(err) + end + end + + -- EE [[ + -- FIXME: major hack here + -- + -- CI and dev environments use an auto-generated license with a very + -- short life span, which triggers log entries like: + -- + -- ``` + -- 2022/11/10 15:50:17 [warn] 1440109#0: *54 stream [lua] license_helpers.lua:231: log_license_state(): The Kong Enterprise license will expire on 2022-12-20. Please contact to renew your license., context: ngx.timer + -- ``` + -- + -- These log entries are a time bomb for our integration tests, because + -- we have many test cases that do something like this: + -- + -- ``` + -- -- ensure there are no warnings in the error.log after doing $thing + -- assert.logfile().has.no.line("[warn]") + -- ``` + -- + -- This code attempts to filter out license warnings. + local license_warning = "Please contact to renew your license." + if from and line:find(license_warning, nil, true) then + from = nil + end + -- ]] EE + + + if from then + table.insert(args, 1, line) + table.insert(args, 1, regex) + args.n = 2 + return true + end + end + end, timeout) + + table.insert(args, 1, fpath) + args.n = args.n + 1 + + return pok + end + + say:set("assertion.match_line.negative", unindent [[ + Expected file at: + %s + To match: + %s + ]]) + say:set("assertion.match_line.positive", unindent [[ + Expected file at: + %s + To not match: + %s + But matched line: + %s + ]]) + luassert:register("assertion", "line", match_line, + "assertion.match_line.negative", + "assertion.match_line.positive") +end + + +---------------- +-- DNS-record mocking. +-- These function allow to create mock dns records that the test Kong instance +-- will use to resolve names. The created mocks are injected by the `start_kong` +-- function. +-- @usage +-- -- Create a new DNS mock and add some DNS records +-- local fixtures = { +-- dns_mock = helpers.dns_mock.new { mocks_only = true } +-- } +-- +-- fixtures.dns_mock:SRV { +-- name = "my.srv.test.com", +-- target = "a.my.srv.test.com", +-- port = 80, +-- } +-- fixtures.dns_mock:SRV { +-- name = "my.srv.test.com", -- adding same name again: record gets 2 entries! +-- target = "b.my.srv.test.com", -- a.my.srv.test.com and b.my.srv.test.com +-- port = 8080, +-- } +-- fixtures.dns_mock:A { +-- name = "a.my.srv.test.com", +-- address = "127.0.0.1", +-- } +-- fixtures.dns_mock:A { +-- name = "b.my.srv.test.com", +-- address = "127.0.0.1", +-- } +-- @section DNS-mocks + + +local dns_mock = {} +do + dns_mock.__index = dns_mock + dns_mock.__tostring = function(self) + -- fill array to prevent json encoding errors + local out = { + mocks_only = self.mocks_only, + records = {} + } + for i = 1, 33 do + out.records[i] = self[i] or {} + end + local json = assert(cjson.encode(out)) + return json + end + + + local TYPE_A, TYPE_AAAA, TYPE_CNAME, TYPE_SRV = 1, 28, 5, 33 + + + --- Creates a new DNS mock. + -- The options table supports the following fields: + -- + -- - `mocks_only`: boolean, if set to `true` then only mock records will be + -- returned. If `falsy` it will fall through to an actual DNS lookup. + -- @function dns_mock.new + -- @param options table with mock options + -- @return dns_mock object + -- @usage + -- local mock = helpers.dns_mock.new { mocks_only = true } + function dns_mock.new(options) + return setmetatable(options or {}, dns_mock) + end + + + --- Adds an SRV record to the DNS mock. + -- Fields `name`, `target`, and `port` are required. Other fields get defaults: + -- + -- * `weight`; 20 + -- * `ttl`; 600 + -- * `priority`; 20 + -- @param rec the mock DNS record to insert + -- @return true + function dns_mock:SRV(rec) + if self == dns_mock then + error("can't operate on the class, you must create an instance", 2) + end + if getmetatable(self or {}) ~= dns_mock then + error("SRV method must be called using the colon notation", 2) + end + assert(rec, "Missing record parameter") + local name = assert(rec.name, "No name field in SRV record") + + self[TYPE_SRV] = self[TYPE_SRV] or {} + local query_answer = self[TYPE_SRV][name] + if not query_answer then + query_answer = {} + self[TYPE_SRV][name] = query_answer + end + + table.insert(query_answer, { + type = TYPE_SRV, + name = name, + target = assert(rec.target, "No target field in SRV record"), + port = assert(rec.port, "No port field in SRV record"), + weight = rec.weight or 10, + ttl = rec.ttl or 600, + priority = rec.priority or 20, + class = rec.class or 1 + }) + return true + end + + + --- Adds an A record to the DNS mock. + -- Fields `name` and `address` are required. Other fields get defaults: + -- + -- * `ttl`; 600 + -- @param rec the mock DNS record to insert + -- @return true + function dns_mock:A(rec) + if self == dns_mock then + error("can't operate on the class, you must create an instance", 2) + end + if getmetatable(self or {}) ~= dns_mock then + error("A method must be called using the colon notation", 2) + end + assert(rec, "Missing record parameter") + local name = assert(rec.name, "No name field in A record") + + self[TYPE_A] = self[TYPE_A] or {} + local query_answer = self[TYPE_A][name] + if not query_answer then + query_answer = {} + self[TYPE_A][name] = query_answer + end + + table.insert(query_answer, { + type = TYPE_A, + name = name, + address = assert(rec.address, "No address field in A record"), + ttl = rec.ttl or 600, + class = rec.class or 1 + }) + return true + end + + + --- Adds an AAAA record to the DNS mock. + -- Fields `name` and `address` are required. Other fields get defaults: + -- + -- * `ttl`; 600 + -- @param rec the mock DNS record to insert + -- @return true + function dns_mock:AAAA(rec) + if self == dns_mock then + error("can't operate on the class, you must create an instance", 2) + end + if getmetatable(self or {}) ~= dns_mock then + error("AAAA method must be called using the colon notation", 2) + end + assert(rec, "Missing record parameter") + local name = assert(rec.name, "No name field in AAAA record") + + self[TYPE_AAAA] = self[TYPE_AAAA] or {} + local query_answer = self[TYPE_AAAA][name] + if not query_answer then + query_answer = {} + self[TYPE_AAAA][name] = query_answer + end + + table.insert(query_answer, { + type = TYPE_AAAA, + name = name, + address = assert(rec.address, "No address field in AAAA record"), + ttl = rec.ttl or 600, + class = rec.class or 1 + }) + return true + end + + + --- Adds a CNAME record to the DNS mock. + -- Fields `name` and `cname` are required. Other fields get defaults: + -- + -- * `ttl`; 600 + -- @param rec the mock DNS record to insert + -- @return true + function dns_mock:CNAME(rec) + if self == dns_mock then + error("can't operate on the class, you must create an instance", 2) + end + if getmetatable(self or {}) ~= dns_mock then + error("CNAME method must be called using the colon notation", 2) + end + assert(rec, "Missing record parameter") + local name = assert(rec.name, "No name field in CNAME record") + + self[TYPE_CNAME] = self[TYPE_CNAME] or {} + local query_answer = self[TYPE_CNAME][name] + if not query_answer then + query_answer = {} + self[TYPE_CNAME][name] = query_answer + end + + table.insert(query_answer, { + type = TYPE_CNAME, + name = name, + cname = assert(rec.cname, "No cname field in CNAME record"), + ttl = rec.ttl or 600, + class = rec.class or 1 + }) + return true + end +end + + +---------------- +-- Shell helpers +-- @section Shell-helpers + +--- Execute a command. +-- Modified version of `pl.utils.executeex()` so the output can directly be +-- used on an assertion. +-- @function execute +-- @param cmd command string to execute +-- @param pl_returns (optional) boolean: if true, this function will +-- return the same values as Penlight's executeex. +-- @return if `pl_returns` is true, returns four return values +-- (ok, code, stdout, stderr); if `pl_returns` is false, +-- returns either (false, stderr) or (true, stderr, stdout). +function exec(cmd, pl_returns) + local ok, code, stdout, stderr = pl_utils.executeex(cmd) + if pl_returns then + return ok, code, stdout, stderr + end + if not ok then + stdout = nil -- don't return 3rd value if fail because of busted's `assert` + end + return ok, stderr, stdout +end + + +--- Execute a Kong command. +-- @function kong_exec +-- @param cmd Kong command to execute, eg. `start`, `stop`, etc. +-- @param env (optional) table with kong parameters to set as environment +-- variables, overriding the test config (each key will automatically be +-- prefixed with `KONG_` and be converted to uppercase) +-- @param pl_returns (optional) boolean: if true, this function will +-- return the same values as Penlight's `executeex`. +-- @param env_vars (optional) a string prepended to the command, so +-- that arbitrary environment variables may be passed +-- @return if `pl_returns` is true, returns four return values +-- (ok, code, stdout, stderr); if `pl_returns` is false, +-- returns either (false, stderr) or (true, stderr, stdout). +function kong_exec(cmd, env, pl_returns, env_vars) + cmd = cmd or "" + env = env or {} + + -- Insert the Lua path to the custom-plugin fixtures + do + local function cleanup(t) + if t then + t = pl_stringx.strip(t) + if t:sub(-1,-1) == ";" then + t = t:sub(1, -2) + end + end + return t ~= "" and t or nil + end + local paths = {} + table.insert(paths, cleanup(CUSTOM_PLUGIN_PATH)) + table.insert(paths, cleanup(CUSTOM_VAULT_PATH)) + table.insert(paths, cleanup(env.lua_package_path)) + table.insert(paths, cleanup(conf.lua_package_path)) + env.lua_package_path = table.concat(paths, ";") + -- note; the nginx config template will add a final ";;", so no need to + -- include that here + end + + if not env.plugins then + env.plugins = "bundled,dummy,cache,rewriter,error-handler-log," .. + "error-generator,error-generator-last," .. + "short-circuit" + end + + -- build Kong environment variables + env_vars = env_vars or "" + for k, v in pairs(env) do + env_vars = string.format("%s KONG_%s='%s'", env_vars, k:upper(), v) + end + + return exec(env_vars .. " " .. BIN_PATH .. " " .. cmd, pl_returns) +end + + +--- Prepares the Kong environment. +-- Creates the working directory if it does not exist. +-- @param prefix (optional) path to the working directory, if omitted the test +-- configuration will be used +-- @function prepare_prefix +local function prepare_prefix(prefix) + return pl_dir.makepath(prefix or conf.prefix) +end + + +--- Cleans the Kong environment. +-- Deletes the working directory if it exists. +-- @param prefix (optional) path to the working directory, if omitted the test +-- configuration will be used +-- @function clean_prefix +local function clean_prefix(prefix) + prefix = prefix or conf.prefix + if pl_path.exists(prefix) then + local _, err = pl_dir.rmtree(prefix) + -- Note: gojira mount default kong prefix as a volume so itself can't + -- be removed; only throw error if the prefix is indeed not empty + if err then + local fcnt = #assert(pl_dir.getfiles(prefix)) + local dcnt = #assert(pl_dir.getdirectories(prefix)) + if fcnt + dcnt > 0 then + error(err) + end + end + end +end + + +-- Reads the pid from a pid file and returns it, or nil + err +local function get_pid_from_file(pid_path) + local pid + local fd, err = io.open(pid_path) + if not fd then + return nil, err + end + + pid = fd:read("*l") + fd:close() + + return pid +end + + +local function pid_dead(pid, timeout) + local max_time = ngx.now() + (timeout or 10) + + repeat + if not pl_utils.execute("ps -p " .. pid .. " >/dev/null 2>&1") then + return true + end + -- still running, wait some more + ngx.sleep(0.05) + until ngx.now() >= max_time + + return false +end + +-- Waits for the termination of a pid. +-- @param pid_path Filename of the pid file. +-- @param timeout (optional) in seconds, defaults to 10. +local function wait_pid(pid_path, timeout, is_retry) + local pid = get_pid_from_file(pid_path) + + if pid then + if pid_dead(pid, timeout) then + return + end + + if is_retry then + return + end + + -- Timeout reached: kill with SIGKILL + pl_utils.execute("kill -9 " .. pid .. " >/dev/null 2>&1") + + -- Sanity check: check pid again, but don't loop. + wait_pid(pid_path, timeout, true) + end +end + + +--- Return the actual configuration running at the given prefix. +-- It may differ from the default, as it may have been modified +-- by the `env` table given to start_kong. +-- @function get_running_conf +-- @param prefix (optional) The prefix path where the kong instance is running, +-- defaults to the prefix in the default config. +-- @return The conf table of the running instance, or nil + error. +local function get_running_conf(prefix) + local default_conf = conf_loader(nil, {prefix = prefix or conf.prefix}) + return conf_loader.load_config_file(default_conf.kong_env) +end + + +--- Clears the logfile. Will overwrite the logfile with an empty file. +-- @function clean_logfile +-- @param logfile (optional) filename to clear, defaults to the current +-- error-log file +-- @return nothing +-- @see line +local function clean_logfile(logfile) + logfile = logfile or (get_running_conf() or conf).nginx_err_logs + + assert(type(logfile) == "string", "'logfile' must be a string") + + local fh, err, errno = io.open(logfile, "w+") + + if fh then + fh:close() + return + + elseif errno == 2 then -- ENOENT + return + end + + error("failed to truncate logfile: " .. tostring(err)) +end + + +--- Return the actual Kong version the tests are running against. +-- See [version.lua](https://github.com/kong/version.lua) for the format. This +-- is mostly useful for testing plugins that should work with multiple Kong versions. +-- @function get_version +-- @return a `version` object +-- @usage +-- local version = require 'version' +-- if helpers.get_version() < version("0.15.0") then +-- -- do something +-- end +local function get_version() + return version(select(3, assert(kong_exec("version")))) +end + + +local function render_fixtures(conf, env, prefix, fixtures) + + if fixtures and (fixtures.http_mock or fixtures.stream_mock) then + -- prepare the prefix so we get the full config in the + -- hidden `.kong_env` file, including test specified env vars etc + assert(kong_exec("prepare --conf " .. conf, env)) + local render_config = assert(conf_loader(prefix .. "/.kong_env", nil, + { from_kong_env = true })) + + for _, mocktype in ipairs { "http_mock", "stream_mock" } do + + for filename, contents in pairs(fixtures[mocktype] or {}) do + -- render the file using the full configuration + contents = assert(prefix_handler.compile_conf(render_config, contents)) + + -- write file to prefix + filename = prefix .. "/" .. filename .. "." .. mocktype + assert(pl_utils.writefile(filename, contents)) + end + end + end + + if fixtures and fixtures.dns_mock then + -- write the mock records to the prefix + assert(getmetatable(fixtures.dns_mock) == dns_mock, + "expected dns_mock to be of a helpers.dns_mock class") + assert(pl_utils.writefile(prefix .. "/dns_mock_records.json", + tostring(fixtures.dns_mock))) + + -- add the mock resolver to the path to ensure the records are loaded + if env.lua_package_path then + env.lua_package_path = DNS_MOCK_LUA_PATH .. ";" .. env.lua_package_path + else + env.lua_package_path = DNS_MOCK_LUA_PATH + end + else + -- remove any old mocks if they exist + os.remove(prefix .. "/dns_mock_records.json") + end + + return true +end + + +local function build_go_plugins(path) + if pl_path.exists(pl_path.join(path, "go.mod")) then + local ok, _, _, stderr = pl_utils.executeex(string.format( + "cd %s; go mod tidy; go mod download", path)) + assert(ok, stderr) + end + for _, go_source in ipairs(pl_dir.getfiles(path, "*.go")) do + local ok, _, _, stderr = pl_utils.executeex(string.format( + "cd %s; go build %s", + path, pl_path.basename(go_source) + )) + assert(ok, stderr) + end +end + +local function isnewer(path_a, path_b) + if not pl_path.exists(path_a) then + return true + end + if not pl_path.exists(path_b) then + return false + end + return assert(pl_path.getmtime(path_b)) > assert(pl_path.getmtime(path_a)) +end + +local function make(workdir, specs) + workdir = pl_path.normpath(workdir or pl_path.currentdir()) + + for _, spec in ipairs(specs) do + local targetpath = pl_path.join(workdir, spec.target) + for _, src in ipairs(spec.src) do + local srcpath = pl_path.join(workdir, src) + if isnewer(targetpath, srcpath) then + local ok, _, _, stderr = pl_utils.executeex(string.format("cd %s; %s", workdir, spec.cmd)) + assert(ok, stderr) + if isnewer(targetpath, srcpath) then + error(string.format("couldn't make %q newer than %q", targetpath, srcpath)) + end + break + end + end + end + + return true +end + +local grpc_target_proc +local function start_grpc_target() + local ngx_pipe = require "ngx.pipe" + assert(make(GRPC_TARGET_SRC_PATH, { + { + target = "targetservice/targetservice.pb.go", + src = { "../targetservice.proto" }, + cmd = "protoc --go_out=. --go-grpc_out=. -I ../ ../targetservice.proto", + }, + { + target = "targetservice/targetservice_grpc.pb.go", + src = { "../targetservice.proto" }, + cmd = "protoc --go_out=. --go-grpc_out=. -I ../ ../targetservice.proto", + }, + { + target = "target", + src = { "grpc-target.go", "targetservice/targetservice.pb.go", "targetservice/targetservice_grpc.pb.go" }, + cmd = "go mod tidy && go mod download all && go build", + }, + })) + grpc_target_proc = assert(ngx_pipe.spawn({ GRPC_TARGET_SRC_PATH .. "/target" }, { + merge_stderr = true, + })) + + return true +end + +local function stop_grpc_target() + if grpc_target_proc then + grpc_target_proc:kill(resty_signal.signum("QUIT")) + grpc_target_proc = nil + end +end + +local function get_grpc_target_port() + return 15010 +end + + +--- Start the Kong instance to test against. +-- The fixtures passed to this function can be 3 types: +-- +-- * DNS mocks +-- +-- * Nginx server blocks to be inserted in the http module +-- +-- * Nginx server blocks to be inserted in the stream module +-- @function start_kong +-- @param env table with Kong configuration parameters (and values) +-- @param tables list of database tables to truncate before starting +-- @param preserve_prefix (boolean) if truthy, the prefix will not be cleaned +-- before starting +-- @param fixtures tables with fixtures, dns, http and stream mocks. +-- @return return values from `execute` +-- @usage +-- -- example mocks +-- -- Create a new DNS mock and add some DNS records +-- local fixtures = { +-- http_mock = {}, +-- stream_mock = {}, +-- dns_mock = helpers.dns_mock.new() +-- } +-- +-- fixtures.dns_mock:A { +-- name = "a.my.srv.test.com", +-- address = "127.0.0.1", +-- } +-- +-- -- The blocks below will be rendered by the Kong template renderer, like other +-- -- custom Kong templates. Hence the `${{xxxx}}` values. +-- -- Multiple mocks can be added each under their own filename ("my_server_block" below) +-- fixtures.http_mock.my_server_block = [[ +-- server { +-- server_name my_server; +-- listen 10001 ssl; +-- +-- ssl_certificate ${{SSL_CERT}}; +-- ssl_certificate_key ${{SSL_CERT_KEY}}; +-- ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; +-- +-- location ~ "/echobody" { +-- content_by_lua_block { +-- ngx.req.read_body() +-- local echo = ngx.req.get_body_data() +-- ngx.status = status +-- ngx.header["Content-Length"] = #echo + 1 +-- ngx.say(echo) +-- } +-- } +-- } +-- ]] +-- +-- fixtures.stream_mock.my_server_block = [[ +-- server { +-- -- insert stream server config here +-- } +-- ]] +-- +-- assert(helpers.start_kong( {database = "postgres"}, nil, nil, fixtures)) +local function start_kong(env, tables, preserve_prefix, fixtures) + if tables ~= nil and type(tables) ~= "table" then + error("arg #2 must be a list of tables to truncate") + end + env = env or {} + local prefix = env.prefix or conf.prefix + + -- go plugins are enabled + -- compile fixture go plugins if any setting mentions it + for _,v in pairs(env) do + if type(v) == "string" and v:find(GO_PLUGIN_PATH) then + build_go_plugins(GO_PLUGIN_PATH) + break + end + end + + -- note: set env var "KONG_TEST_DONT_CLEAN" !! the "_TEST" will be dropped + if not (preserve_prefix or os.getenv("KONG_DONT_CLEAN")) then + clean_prefix(prefix) + end + + local ok, err = prepare_prefix(prefix) + if not ok then return nil, err end + + truncate_tables(db, tables) + + local nginx_conf = "" + if env.nginx_conf then + nginx_conf = " --nginx-conf " .. env.nginx_conf + end + + if dcbp and not env.declarative_config and not env.declarative_config_string then + if not config_yml then + config_yml = prefix .. "/config.yml" + local cfg = dcbp.done() + local declarative = require "kong.db.declarative" + local ok, err = declarative.to_yaml_file(cfg, config_yml) + if not ok then + return nil, err + end + end + env = utils.deep_copy(env) + env.declarative_config = config_yml + end + + assert(render_fixtures(TEST_CONF_PATH .. nginx_conf, env, prefix, fixtures)) + + return kong_exec("start --conf " .. TEST_CONF_PATH .. nginx_conf, env) +end + + +-- Stop the Kong test instance. +-- @function stop_kong +-- @param prefix (optional) the prefix where the test instance runs, defaults to the test configuration. +-- @param preserve_prefix (boolean) if truthy, the prefix will not be deleted after stopping +-- @param preserve_dc +-- @return true or nil+err +local function stop_kong(prefix, preserve_prefix, preserve_dc) + prefix = prefix or conf.prefix + + local running_conf, err = get_running_conf(prefix) + if not running_conf then + return nil, err + end + + local pid, err = get_pid_from_file(running_conf.nginx_pid) + if not pid then + return nil, err + end + + local ok, _, _, err = pl_utils.executeex("kill -TERM " .. pid) + if not ok then + return nil, err + end + + wait_pid(running_conf.nginx_pid) + + -- note: set env var "KONG_TEST_DONT_CLEAN" !! the "_TEST" will be dropped + if not (preserve_prefix or os.getenv("KONG_DONT_CLEAN")) then + clean_prefix(prefix) + end + + if not preserve_dc then + config_yml = nil + end + ngx.ctx.workspace = nil + + return true +end + + +--- Restart Kong. Reusing declarative config when using `database=off`. +-- @function restart_kong +-- @param env see `start_kong` +-- @param tables see `start_kong` +-- @param fixtures see `start_kong` +-- @return true or nil+err +local function restart_kong(env, tables, fixtures) + stop_kong(env.prefix, true, true) + return start_kong(env, tables, true, fixtures) +end + +--- Wait until no common workers. +-- This will wait until all the worker PID's listed have gone (others may have appeared). If an `expected_total` is specified, it will also wait until the new workers have reached this number. +-- @function wait_until_no_common_workers +-- @tparam table workers an array of worker PID's (the return value of `get_kong_workers`) +-- @tparam[opt] number expected_total the expected total workers count +-- @tparam[opt] table wait_opts options to use, the available fields are: +-- @tparam[opt] number wait_opts.timeout timeout passed to `wait_until` +-- @tparam[opt] number wait_opts.step step passed to `wait_until` +local function wait_until_no_common_workers(workers, expected_total, wait_opts) + local strategy = conf.database + if strategy == "cassandra" then + ngx.sleep(0.5) + end + wait_opts = wait_opts or {} + wait_until(function() + local pok, admin_client = pcall(admin_client) + if not pok then + return false + end + local res = assert(admin_client:send { + method = "GET", + path = "/", + }) + luassert.res_status(200, res) + local json = cjson.decode(luassert.res_status(200, res)) + admin_client:close() + + local new_workers = json.pids.workers + local total = 0 + local common = 0 + if new_workers then + for _, v in ipairs(new_workers) do + total = total + 1 + for _, v_old in ipairs(workers) do + if v == v_old then + common = common + 1 + break + end + end + end + end + return common == 0 and total == (expected_total or total) + end, wait_opts.timeout, wait_opts.step) +end + + +--- Gets the Kong workers PID's. +-- Will wait for a successful call to the admin-api for a maximum of 10 seconds, +-- before returning a timeout. +-- @function get_kong_workers +-- @return array of worker PID's +local function get_kong_workers() + local workers + wait_until(function() + local pok, admin_client = pcall(admin_client) + if not pok then + return false + end + local res = admin_client:send { + method = "GET", + path = "/", + } + if not res or res.status ~= 200 then + return false + end + local body = luassert.res_status(200, res) + local json = cjson.decode(body) + + admin_client:close() + workers = json.pids.workers + return true + end, 10) + return workers +end + + +--- Reload Kong and wait all workers are restarted. +local function reload_kong(...) + local workers = get_kong_workers() + local ok, err = kong_exec(...) + if ok then + local opts = { ... } + wait_until_no_common_workers(workers, 1, opts[2]) + end + return ok, err +end + +--- Simulate a Hybrid mode DP and connect to the CP specified in `opts`. +-- @function clustering_client +-- @param opts Options to use, the `host`, `port`, `cert` and `cert_key` fields +-- are required. +-- Other fields that can be overwritten are: +-- `node_hostname`, `node_id`, `node_version`, `node_plugins_list`. If absent, +-- they are automatically filled. +-- @return msg if handshake succeeded and initial message received from CP or nil, err +local function clustering_client(opts) + assert(opts.host) + assert(opts.port) + assert(opts.cert) + assert(opts.cert_key) + + local c = assert(ws_client:new()) + local uri = "wss://" .. opts.host .. ":" .. opts.port .. + "/v1/outlet?node_id=" .. (opts.node_id or utils.uuid()) .. + "&node_hostname=" .. (opts.node_hostname or kong.node.get_hostname()) .. + "&node_version=" .. (opts.node_version or KONG_VERSION) + + local conn_opts = { + ssl_verify = false, -- needed for busted tests as CP certs are not trusted by the CLI + client_cert = assert(ssl.parse_pem_cert(assert(pl_file.read(opts.cert)))), + client_priv_key = assert(ssl.parse_pem_priv_key(assert(pl_file.read(opts.cert_key)))), + server_name = opts.server_name or "kong_clustering", + } + + local res, err = c:connect(uri, conn_opts) + if not res then + return nil, err + end + local payload = assert(cjson.encode({ type = "basic_info", + plugins = opts.node_plugins_list or + PLUGINS_LIST, + })) + assert(c:send_binary(payload)) + + assert(c:send_ping(string.rep("0", 32))) + + local data, typ, err + data, typ, err = c:recv_frame() + c:close() + + if typ == "binary" then + local odata = assert(utils.inflate_gzip(data)) + local msg = assert(cjson.decode(odata)) + return msg + + elseif typ == "pong" then + return "PONG" + end + + return nil, "unknown frame from CP: " .. (typ or err) +end + + +--- Generate asymmetric keys +-- @function generate_keys +-- @param fmt format to receive the public and private pair +-- @return `pub, priv` key tuple or `nil + err` on failure +local function generate_keys(fmt) + fmt = string.upper(fmt) or "JWK" + local key, err = pkey.new({ + -- only support RSA for now + type = 'RSA', + bits = 2048, + exp = 65537 + }) + assert(key) + assert(err == nil, err) + local pub = key:tostring("public", fmt) + local priv = key:tostring("private", fmt) + return pub, priv +end + + + +---------------- +-- Variables/constants +-- @section exported-fields + + +--- Below is a list of fields/constants exported on the `helpers` module table: +-- @table helpers +-- @field dir The [`pl.dir` module of Penlight](http://tieske.github.io/Penlight/libraries/pl.dir.html) +-- @field path The [`pl.path` module of Penlight](http://tieske.github.io/Penlight/libraries/pl.path.html) +-- @field file The [`pl.file` module of Penlight](http://tieske.github.io/Penlight/libraries/pl.file.html) +-- @field utils The [`pl.utils` module of Penlight](http://tieske.github.io/Penlight/libraries/pl.utils.html) +-- @field test_conf The Kong test configuration. See also `get_running_conf` which might be slightly different. +-- @field test_conf_path The configuration file in use. +-- @field mock_upstream_hostname +-- @field mock_upstream_protocol +-- @field mock_upstream_host +-- @field mock_upstream_port +-- @field mock_upstream_url Base url constructed from the components +-- @field mock_upstream_ssl_protocol +-- @field mock_upstream_ssl_host +-- @field mock_upstream_ssl_port +-- @field mock_upstream_ssl_url Base url constructed from the components +-- @field mock_upstream_stream_port +-- @field mock_upstream_stream_ssl_port +-- @field mock_grpc_upstream_proto_path +-- @field grpcbin_host The host for grpcbin service, it can be set by env KONG_SPEC_TEST_GRPCBIN_HOST. +-- @field grpcbin_port The port (SSL disabled) for grpcbin service, it can be set by env KONG_SPEC_TEST_GRPCBIN_PORT. +-- @field grpcbin_ssl_port The port (SSL enabled) for grpcbin service it can be set by env KONG_SPEC_TEST_GRPCBIN_SSL_PORT. +-- @field grpcbin_url The URL (SSL disabled) for grpcbin service +-- @field grpcbin_ssl_url The URL (SSL enabled) for grpcbin service +-- @field redis_host The host for Redis, it can be set by env KONG_SPEC_TEST_REDIS_HOST. +-- @field redis_port The port (SSL disabled) for Redis, it can be set by env KONG_SPEC_TEST_REDIS_PORT. +-- @field redis_ssl_port The port (SSL enabled) for Redis, it can be set by env KONG_SPEC_TEST_REDIS_SSL_PORT. +-- @field redis_ssl_sni The server name for Redis, it can be set by env KONG_SPEC_TEST_REDIS_SSL_SNI. +-- @field zipkin_host The host for Zipkin service, it can be set by env KONG_SPEC_TEST_ZIPKIN_HOST. +-- @field zipkin_port the port for Zipkin service, it can be set by env KONG_SPEC_TEST_ZIPKIN_PORT. +-- @field otelcol_host The host for OpenTelemetry Collector service, it can be set by env KONG_SPEC_TEST_OTELCOL_HOST. +-- @field otelcol_http_port the port for OpenTelemetry Collector service, it can be set by env KONG_SPEC_TEST_OTELCOL_HTTP_PORT. +-- @field otelcol_zpages_port the port for OpenTelemetry Collector Zpages service, it can be set by env KONG_SPEC_TEST_OTELCOL_ZPAGES_PORT. +-- @field otelcol_file_exporter_path the path of for OpenTelemetry Collector's file exporter, it can be set by env KONG_SPEC_TEST_OTELCOL_FILE_EXPORTER_PATH. + +---------- +-- Exposed +---------- +-- @export + return { + -- Penlight + dir = pl_dir, + path = pl_path, + file = pl_file, + utils = pl_utils, + + -- Kong testing properties + db = db, + blueprints = blueprints, + get_db_utils = get_db_utils, + get_cache = get_cache, + bootstrap_database = bootstrap_database, + bin_path = BIN_PATH, + test_conf = conf, + test_conf_path = TEST_CONF_PATH, + go_plugin_path = GO_PLUGIN_PATH, + mock_upstream_hostname = MOCK_UPSTREAM_HOSTNAME, + mock_upstream_protocol = MOCK_UPSTREAM_PROTOCOL, + mock_upstream_host = MOCK_UPSTREAM_HOST, + mock_upstream_port = MOCK_UPSTREAM_PORT, + mock_upstream_url = MOCK_UPSTREAM_PROTOCOL .. "://" .. + MOCK_UPSTREAM_HOST .. ':' .. + MOCK_UPSTREAM_PORT, + + mock_upstream_ssl_protocol = MOCK_UPSTREAM_SSL_PROTOCOL, + mock_upstream_ssl_host = MOCK_UPSTREAM_HOST, + mock_upstream_ssl_port = MOCK_UPSTREAM_SSL_PORT, + mock_upstream_ssl_url = MOCK_UPSTREAM_SSL_PROTOCOL .. "://" .. + MOCK_UPSTREAM_HOST .. ':' .. + MOCK_UPSTREAM_SSL_PORT, + + mock_upstream_stream_port = MOCK_UPSTREAM_STREAM_PORT, + mock_upstream_stream_ssl_port = MOCK_UPSTREAM_STREAM_SSL_PORT, + mock_grpc_upstream_proto_path = MOCK_GRPC_UPSTREAM_PROTO_PATH, + + zipkin_host = ZIPKIN_HOST, + zipkin_port = ZIPKIN_PORT, + + otelcol_host = OTELCOL_HOST, + otelcol_http_port = OTELCOL_HTTP_PORT, + otelcol_zpages_port = OTELCOL_ZPAGES_PORT, + otelcol_file_exporter_path = OTELCOL_FILE_EXPORTER_PATH, + + grpcbin_host = GRPCBIN_HOST, + grpcbin_port = GRPCBIN_PORT, + grpcbin_ssl_port = GRPCBIN_SSL_PORT, + grpcbin_url = string.format("grpc://%s:%d", GRPCBIN_HOST, GRPCBIN_PORT), + grpcbin_ssl_url = string.format("grpcs://%s:%d", GRPCBIN_HOST, GRPCBIN_SSL_PORT), + + redis_host = REDIS_HOST, + redis_port = REDIS_PORT, + redis_ssl_port = REDIS_SSL_PORT, + redis_ssl_sni = REDIS_SSL_SNI, + + blackhole_host = BLACKHOLE_HOST, + + -- Kong testing helpers + execute = exec, + dns_mock = dns_mock, + kong_exec = kong_exec, + get_version = get_version, + get_running_conf = get_running_conf, + http_client = http_client, + grpc_client = grpc_client, + http2_client = http2_client, + wait_until = wait_until, + pwait_until = pwait_until, + wait_pid = wait_pid, + wait_timer = wait_timer, + wait_for_all_config_update = wait_for_all_config_update, + wait_for_file = wait_for_file, + wait_for_file_contents = wait_for_file_contents, + tcp_server = tcp_server, + udp_server = udp_server, + kill_tcp_server = kill_tcp_server, + http_server = http_server, + http_mock = http_mock, + kill_http_server = kill_http_server, + get_proxy_ip = get_proxy_ip, + get_proxy_port = get_proxy_port, + proxy_client = proxy_client, + proxy_client_grpc = proxy_client_grpc, + proxy_client_grpcs = proxy_client_grpcs, + proxy_client_h2c = proxy_client_h2c, + proxy_client_h2 = proxy_client_h2, + admin_client = admin_client, + proxy_ssl_client = proxy_ssl_client, + admin_ssl_client = admin_ssl_client, + prepare_prefix = prepare_prefix, + clean_prefix = clean_prefix, + clean_logfile = clean_logfile, + wait_for_invalidation = wait_for_invalidation, + each_strategy = each_strategy, + all_strategies = all_strategies, + validate_plugin_config_schema = validate_plugin_config_schema, + clustering_client = clustering_client, + https_server = https_server, + stress_generator = stress_generator, + + -- miscellaneous + intercept = intercept, + openresty_ver_num = openresty_ver_num(), + unindent = unindent, + make_yaml_file = make_yaml_file, + setenv = setenv, + unsetenv = unsetenv, + deep_sort = deep_sort, + + -- launching Kong subprocesses + start_kong = start_kong, + stop_kong = stop_kong, + restart_kong = restart_kong, + reload_kong = reload_kong, + get_kong_workers = get_kong_workers, + wait_until_no_common_workers = wait_until_no_common_workers, + + start_grpc_target = start_grpc_target, + stop_grpc_target = stop_grpc_target, + get_grpc_target_port = get_grpc_target_port, + generate_keys = generate_keys, + + -- Only use in CLI tests from spec/02-integration/01-cmd + kill_all = function(prefix, timeout) + local kill = require "kong.cmd.utils.kill" + + local running_conf = get_running_conf(prefix) + if not running_conf then return end + + -- kill kong_tests.conf service + local pid_path = running_conf.nginx_pid + if pl_path.exists(pid_path) then + kill.kill(pid_path, "-TERM") + wait_pid(pid_path, timeout) + end + end, + + with_current_ws = function(ws,fn, db) + local old_ws = ngx.ctx.workspace + ngx.ctx.workspace = nil + ws = ws or {db.workspaces:select_by_name("default")} + ngx.ctx.workspace = ws[1] and ws[1].id + local res = fn() + ngx.ctx.workspace = old_ws + return res + end, + + signal = function(prefix, signal, pid_path) + local kill = require "kong.cmd.utils.kill" + + if not pid_path then + local running_conf = get_running_conf(prefix) + if not running_conf then + error("no config file found at prefix: " .. prefix) + end + + pid_path = running_conf.nginx_pid + end + + return kill.kill(pid_path, signal) + end, + + -- send signal to all Nginx workers, not including the master + signal_workers = function(prefix, signal, pid_path) + if not pid_path then + local running_conf = get_running_conf(prefix) + if not running_conf then + error("no config file found at prefix: " .. prefix) + end + + pid_path = running_conf.nginx_pid + end + + local cmd = string.format("pkill %s -P `cat %s`", signal, pid_path) + local _, code = pl_utils.execute(cmd) + + if not pid_dead(pid_path) then + return false + end + + return code + end, + -- returns the plugins and version list that is used by Hybrid mode tests + get_plugins_list = function() + assert(PLUGINS_LIST, "plugin list has not been initialized yet, " .. + "you must call get_db_utils first") + return table_clone(PLUGINS_LIST) + end, + get_available_port = get_available_port, + + -- XXX EE + is_enterprise_plugin = function(plugin_name) + for _, ee_plugin_name in pairs(dist_constants.plugins) do + if ee_plugin_name == plugin_name then + return true + end + end + return false + end, + + is_fips_build = function() + return (require("resty.openssl.version").version_text):match("BoringSSL") + end, + -- EE +} diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/dns.lua b/kong-versions/3.2.2.4/kong/spec/helpers/dns.lua new file mode 100644 index 00000000..96c965f3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/dns.lua @@ -0,0 +1,145 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +-- test helper methods + +local _M = {} + + +if ngx then + _M.gettime = ngx.now + _M.sleep = ngx.sleep +else + local socket = require("socket") + _M.gettime = socket.gettime + _M.sleep = socket.sleep +end +local gettime = _M.gettime + + +-- iterator over different balancer types +-- @return algorithm_name, balancer_module +function _M.balancer_types() + local b_types = { + -- algorithm name + { "consistent-hashing", "consistent_hashing" }, + { "round-robin", "round_robin" }, + { "least-connections", "least_connections" }, + } + local i = 0 + return function() + i = i + 1 + if b_types[i] then + return b_types[i][1], require("resty.dns.balancer." .. b_types[i][2]) + end + end +end + + +-- expires a record now +function _M.dnsExpire(record) + record.expire = gettime() - 1 +end + + +-- creates an SRV record in the cache +function _M.dnsSRV(client, records, staleTtl) + local dnscache = client.getcache() + -- if single table, then insert into a new list + if not records[1] then records = { records } end + + for _, record in ipairs(records) do + record.type = client.TYPE_SRV + + -- check required input + assert(record.target, "target field is required for SRV record") + assert(record.name, "name field is required for SRV record") + assert(record.port, "port field is required for SRV record") + record.name = record.name:lower() + + -- optionals, insert defaults + record.weight = record.weight or 10 + record.ttl = record.ttl or 600 + record.priority = record.priority or 20 + record.class = record.class or 1 + end + -- set timeouts + records.touch = gettime() + records.expire = gettime() + records[1].ttl + + -- create key, and insert it + local key = records[1].type..":"..records[1].name + dnscache:set(key, records, records[1].ttl + (staleTtl or 4)) + -- insert last-succesful lookup type + dnscache:set(records[1].name, records[1].type) + return records +end + + +-- creates an A record in the cache +function _M.dnsA(client, records, staleTtl) + local dnscache = client.getcache() + -- if single table, then insert into a new list + if not records[1] then records = { records } end + + for _, record in ipairs(records) do + record.type = client.TYPE_A + + -- check required input + assert(record.address, "address field is required for A record") + assert(record.name, "name field is required for A record") + record.name = record.name:lower() + + -- optionals, insert defaults + record.ttl = record.ttl or 600 + record.class = record.class or 1 + end + -- set timeouts + records.touch = gettime() + records.expire = gettime() + records[1].ttl + + -- create key, and insert it + local key = records[1].type..":"..records[1].name + dnscache:set(key, records, records[1].ttl + (staleTtl or 4)) + -- insert last-succesful lookup type + dnscache:set(records[1].name, records[1].type) + return records +end + + +-- creates an AAAA record in the cache +function _M.dnsAAAA(client, records, staleTtl) + local dnscache = client.getcache() + -- if single table, then insert into a new list + if not records[1] then records = { records } end + + for _, record in ipairs(records) do + record.type = client.TYPE_AAAA + + -- check required input + assert(record.address, "address field is required for AAAA record") + assert(record.name, "name field is required for AAAA record") + record.name = record.name:lower() + + -- optionals, insert defaults + record.ttl = record.ttl or 600 + record.class = record.class or 1 + end + -- set timeouts + records.touch = gettime() + records.expire = gettime() + records[1].ttl + + -- create key, and insert it + local key = records[1].type..":"..records[1].name + dnscache:set(key, records, records[1].ttl + (staleTtl or 4)) + -- insert last-succesful lookup type + dnscache:set(records[1].name, records[1].type) + return records +end + + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf.lua new file mode 100644 index 00000000..94d3b1b1 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf.lua @@ -0,0 +1,590 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local pl_tablex = require("pl.tablex") + +local logger = require("spec.helpers.perf.logger") +local utils = require("spec.helpers.perf.utils") +local git = require("spec.helpers.perf.git") +local charts = require("spec.helpers.perf.charts") +local read_all_env = require("kong.cmd.utils.env").read_all + +local my_logger = logger.new_logger("[controller]") + +utils.register_busted_hook() +utils.add_lua_package_paths() + +charts.register_busted_hook() + +-- how many times for each "driver" operation +local RETRY_COUNT = 3 +local DRIVER +local DRIVER_NAME +local LAST_KONG_VERSION + +-- Real user facing functions +local driver_functions = { + "start_worker", "start_kong", "stop_kong", "setup", "setup_kong", "teardown", + "get_start_load_cmd", "get_start_stapxx_cmd", "get_wait_stapxx_cmd", + "generate_flamegraph", "save_error_log", "get_admin_uri", + "save_pgdump", "load_pgdump", "get_based_version", "remote_execute", +} + +local function check_driver_sanity(mod) + if type(mod) ~= "table" then + error("Driver must return a table") + end + + for _, func in ipairs(driver_functions) do + if not mod[func] then + error("Driver " .. debug.getinfo(mod.new, "S").source .. + " must implement function " .. func, 2) + end + end +end + +local known_drivers = { "docker", "terraform" } +--- Unset an environment variable +-- @function use_driver +-- @param name string name of the driver to use +-- @param opts[optional] table config parameters passed to the driver +-- @return nothing. Throws an error if any. +local function use_driver(name, opts) + name = name or "docker" + + if not pl_tablex.find(known_drivers, name) then + local err = ("Unknown perf test driver \"%s\", expect one of \"%s\""):format( + name, table.concat(known_drivers, "\", \"") + ) + error(err, 2) + end + + local pok, mod = pcall(require, "spec.helpers.perf.drivers." .. name) + + if not pok then + error(("Unable to load perf test driver %s: %s"):format(name, mod)) + end + + check_driver_sanity(mod) + + DRIVER = mod.new(opts) + DRIVER_NAME = name +end + +--- Set driver operation retry count +-- @function set_retry_count +-- @param try number the retry time for each driver operation +-- @return nothing. +local function set_retry_count(try) + if type(try) ~= "number" then + error("expect a number, got " .. type(try)) + end + RETRY_COUNT = try +end + +--- Setup a default perf test instance that's ready to use on +--- most common cases including Github Actions +-- @function use_defaults +-- @param try number the retry time for each driver operation +-- @return nothing. +local function use_defaults() + logger.set_log_level(ngx.DEBUG) + set_retry_count(3) + + local driver = os.getenv("PERF_TEST_DRIVER") or "docker" + local use_daily_image = os.getenv("PERF_TEST_USE_DAILY_IMAGE") + local ssh_user + + if driver == "terraform" then + local seperate_db_node = not not os.getenv("PERF_TEST_SEPERATE_DB_NODE") + + local tf_provider = os.getenv("PERF_TEST_TERRAFORM_PROVIDER") or "equinix-metal" + local tfvars = {} + if tf_provider == "equinix-metal" then + tfvars = { + -- Kong Benchmarking + metal_project_id = os.getenv("PERF_TEST_METAL_PROJECT_ID"), + -- TODO: use an org token + metal_auth_token = os.getenv("PERF_TEST_METAL_AUTH_TOKEN"), + metal_plan = os.getenv("PERF_TEST_METAL_PLAN"), -- "c3.small.x86" + -- metal_region = ["sv15", "sv16", "la4"], -- not support setting from lua for now + metal_os = os.getenv("PERF_TEST_METAL_OS"), -- "ubuntu_20_04", + } + elseif tf_provider == "digitalocean" then + tfvars = { + do_project_name = os.getenv("PERF_TEST_DIGITALOCEAN_PROJECT_NAME"), -- "Benchmark", + do_token = os.getenv("PERF_TEST_DIGITALOCEAN_TOKEN"), + do_size = os.getenv("PERF_TEST_DIGITALOCEAN_SIZE"), -- "c2-8vpcu-16gb", + do_region = os.getenv("PERF_TEST_DIGITALOCEAN_REGION"), --"sfo3", + do_os = os.getenv("PERF_TEST_DIGITALOCEAN_OS"), -- "ubuntu-20-04-x64", + } + elseif tf_provider == "aws-ec2" then + tfvars = { + aws_region = os.getenv("PERF_TEST_AWS_REGION"), -- "us-east-2", + ec2_instance_type = os.getenv("PERF_TEST_EC2_INSTANCE_TYPE"), -- "c5a.2xlarge", + ec2_os = os.getenv("PERF_TEST_EC2_OS"), -- "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*", + } + ssh_user = "ubuntu" + elseif tf_provider == "bring-your-own" then + tfvars = { + kong_ip = os.getenv("PERF_TEST_BYO_KONG_IP"), + kong_internal_ip = os.getenv("PERF_TEST_BYO_KONG_INTERNAL_IP"), -- fallback to kong_ip + db_ip = os.getenv("PERF_TEST_BYO_DB_IP"), + db_internal_ip = os.getenv("PERF_TEST_BYO_DB_INTERNAL_IP"), -- fallback to db_ip + worker_ip = os.getenv("PERF_TEST_BYO_WORKER_IP"), + worker_internal_ip = os.getenv("PERF_TEST_BYO_WORKER_INTERNAL_IP"), -- fallback to worker_ip + ssh_key_path = os.getenv("PERF_TEST_BYO_SSH_KEY_PATH") or "root", + } + ssh_user = os.getenv("PERF_TEST_BYO_SSH_USER") + end + + tfvars.seperate_db_node = seperate_db_node + + use_driver("terraform", { + provider = tf_provider, + tfvars = tfvars, + use_daily_image = use_daily_image, + seperate_db_node = seperate_db_node, + ssh_user = ssh_user, + }) + else + use_driver(driver, { + use_daily_image = use_daily_image, + }) + end +end + +local function invoke_driver(method, ...) + if not DRIVER then + error("No driver selected, call use_driver first", 2) + end + + if not DRIVER[method] then + my_logger.warn(method, " not implemented by driver ", DRIVER_NAME) + return + end + + local happy + local r, err + for i = 1, RETRY_COUNT + 1 do + r, err = DRIVER[method](DRIVER, ...) + if not err then + happy = true + break + end + + my_logger.warn("failed in ", method, ": ", err or "nil", ", tries: ", i) + end + + if not happy then + error(method .. " finally failed" .. (RETRY_COUNT > 0 and " after " .. RETRY_COUNT .. " retries" or ""), 2) + end + + return r +end + +local _M = { + use_driver = use_driver, + set_retry_count = set_retry_count, + use_defaults = use_defaults, + + new_logger = logger.new_logger, + set_log_level = logger.set_log_level, + + setenv = utils.setenv, + unsetenv = utils.unsetenv, + execute = utils.execute, + wait_output = utils.wait_output, + parse_docker_image_labels = utils.parse_docker_image_labels, + clear_loaded_package = utils.clear_loaded_package, + + git_checkout = git.git_checkout, + git_restore = git.git_restore, + get_kong_version = git.get_kong_version, +} + +--- Start the worker (nginx) with given conf with multiple ports +-- @function start_worker +-- @param conf string the Nginx nginx snippet under server{} context +-- @param port_count[optional] number number of ports the upstream listens to; default to 1 +-- @return upstream_uri string or table if port_count is more than 1 +function _M.start_worker(conf, port_count) + port_count = port_count or 1 + local ret = invoke_driver("start_worker", conf, port_count) + return port_count == 1 and ret[1] or ret +end + +--- Start Kong with given version and conf +-- @function start_kong +-- @param kong_confs table Kong configuration as a lua table +-- @param driver_confs table driver configuration as a lua table +-- @return nothing. Throws an error if any. +function _M.start_kong(kong_confs, driver_confs) + kong_confs = kong_confs or {} + for k, v in pairs(read_all_env()) do + k = k:match("^KONG_([^=]+)") + k = k and k:lower() + if k then + kong_confs[k] = os.getenv("KONG_" .. k:upper()) + end + end + return invoke_driver("start_kong", kong_confs, driver_confs or {}) +end + +--- Stop Kong +-- @function stop_kong +-- @return nothing. Throws an error if any. +function _M.stop_kong(...) + return invoke_driver("stop_kong", ...) +end + +--- Setup environment; it's not necessary if `setup_kong` is called +-- @function setup +-- @return nothing. Throws an error if any. +function _M.setup() + return invoke_driver("setup") +end + +--- Installs Kong, setup env vars and return the configured helpers utility +-- @function setup +-- @param version string Kong version +-- @return table the `helpers` utility as if it's require("spec.helpers") +function _M.setup_kong(version, kong_confs) + LAST_KONG_VERSION = version + return invoke_driver("setup_kong", version) +end + +--- Cleanup all the stuff +-- @function teardown +-- @param full[optional] boolean teardown all stuff, including those will +-- make next test spin up faster +-- @return nothing. Throws an error if any. +function _M.teardown(full) + LAST_KONG_VERSION = nil + return invoke_driver("teardown", full) +end + +local load_thread +local load_should_stop + +--- Start to send load to Kong +-- @function start_load +-- @param opts.path[optional] string request path, default to / +-- @param opts.uri[optional] string base URI except path, default to http://kong-ip:kong-port/ +-- @param opts.connections[optional] number connection count, default to 1000 +-- @param opts.threads[optional] number request thread count, default to 5 +-- @param opts.duration[optional] number perf test duration in seconds, default to 10 +-- @param opts.script[optional] string content of wrk script, default to nil +-- @param opts.kong_name[optional] string specify the kong name to send load to; will automatically pick one if not specified +-- @return nothing. Throws an error if any. +function _M.start_load(opts) + if load_thread then + error("load is already started, stop it using wait_result() first", 2) + end + + local path = opts.path or "" + -- strip leading / + if path:sub(1, 1) == "/" then + path = path:sub(2) + end + + local prog = opts.wrk2 and "wrk2" or "wrk" + if opts.wrk2 then + if DRIVER_NAME ~= "terraform" then + error("wrk2 not supported in docker driver", 2) + elseif not opts.rate then + error("wrk2 requires rate", 2) + end + end + + local load_cmd_stub = prog .. " -c " .. (opts.connections or 1000) .. + " -t " .. (opts.threads or 5) .. + " -d " .. (opts.duration or 10) .. "s" .. + (opts.wrk2 and " -R " .. opts.rate or "") .. + " %s " .. -- script place holder + " %s/" .. path .. + " --latency" + + local load_cmd = invoke_driver("get_start_load_cmd", load_cmd_stub, opts.script, opts.uri, opts.kong_name) + load_should_stop = false + + load_thread = ngx.thread.spawn(function() + return utils.execute(load_cmd, + { + stop_signal = function() if load_should_stop then return 9 end end, + }) + end) +end + +local stapxx_thread +local stapxx_should_stop + +--- Start to send load to Kong +-- @function start_stapxx +-- @param sample_name string stapxx sample name +-- @param arg string extra arguments passed to stapxx script +-- @param driver_confs table driver configuration as a lua table +-- @return nothing. Throws an error if any. +function _M.start_stapxx(sample_name, arg, driver_confs) + if stapxx_thread then + error("stapxx is already started, stop it using wait_result() first", 2) + end + + local start_cmd = invoke_driver("get_start_stapxx_cmd", sample_name, arg, driver_confs or {}) + stapxx_should_stop = false + + stapxx_thread = ngx.thread.spawn(function() + return utils.execute(start_cmd, + { + stop_signal = function() if stapxx_should_stop then return 3 end end, + }) + end) + + local wait_cmd = invoke_driver("get_wait_stapxx_cmd") + if not utils.wait_output(wait_cmd, "stap_", 30) then + return false, "timeout waiting systemtap probe to load" + end + + return true +end + +--- Wait the load test to finish and get result +-- @function wait_result +-- @return string the test report text +function _M.wait_result(opts) + if not load_thread then + error("load haven't been started or already collected, " .. + "start it using start_load() first", 2) + end + + -- local timeout = opts and opts.timeout or 3 + -- local ok, res, err + + -- ngx.update_time() + -- local s = ngx.now() + -- while not found and ngx.now() - s <= timeout do + -- ngx.update_time() + -- ngx.sleep(0.1) + -- if coroutine.status(self.load_thread) ~= "running" then + -- break + -- end + -- end + -- print(coroutine.status(self.load_thread), coroutine.running(self.load_thread)) + + -- if coroutine.status(self.load_thread) == "running" then + -- self.load_should_stop = true + -- return false, "timeout waiting for load to stop (" .. timeout .. "s)" + -- end + + if stapxx_thread then + local ok, res, err = ngx.thread.wait(stapxx_thread) + stapxx_should_stop = true + stapxx_thread = nil + if not ok or err then + my_logger.warn("failed to wait stapxx to finish: ", + (res or "nil"), + " err: " .. (err or "nil")) + end + my_logger.debug("stap++ output: ", res) + end + + local ok, res, err = ngx.thread.wait(load_thread) + load_should_stop = true + load_thread = nil + + if not ok or err then + error("failed to wait result: " .. (res or "nil") .. + " err: " .. (err or "nil")) + end + + return res +end + +local function sum(t) + local s = 0 + for _, i in ipairs(t) do + if type(i) == "number" then + s = s + i + end + end + + return s +end + +-- Note: could also use custom lua code in wrk +local nan = 0/0 +local function parse_wrk_result(r) + local rps = string.match(r, "Requests/sec:%s+([%d%.]+)") + rps = tonumber(rps) + local count = string.match(r, "([%d]+)%s+requests in") + count = tonumber(count) + + local lat_avg, avg_m, lat_max, max_m = string.match(r, "Latency%s+([%d%.]+)([mu]?)s%s+[%d%.]+[mu]?s%s+([%d%.]+)([mu]?)s") + lat_avg = tonumber(lat_avg or nan) * (avg_m == "u" and 0.001 or (avg_m == "m" and 1 or 1000)) + lat_max = tonumber(lat_max or nan) * (max_m == "u" and 0.001 or (max_m == "m" and 1 or 1000)) + + local p90, p90_m = string.match(r, "90%%%s+([%d%.]+)([mu]?)s") + local p99, p99_m = string.match(r, "99%%%s+([%d%.]+)([mu]?)s") + p90 = tonumber(p90 or nan) * (p90_m == "u" and 0.001 or (p90_m == "m" and 1 or 1000)) + p99 = tonumber(p99 or nan) * (p99_m == "u" and 0.001 or (p99_m == "m" and 1 or 1000)) + + return rps, count, lat_avg, lat_max, p90, p99 +end + +--- Compute average of RPS and latency from multiple wrk output +-- @results table the table holds raw wrk outputs +-- @suite string xaxis sutie name +-- @return string. The human readable result of average RPS and latency +function _M.combine_results(results, suite) + local count = #results + if count == 0 then + return "(no results)" + end + + local rpss = table.new(count, 0) + local latencies_avg = table.new(count, 0) + local latencies_max = table.new(count, 0) + local latencies_p90 = table.new(count, 0) + local latencies_p99 = table.new(count, 0) + local count = 0 + + for i, result in ipairs(results) do + local r, c, la, lm, p90, p99 = parse_wrk_result(result) + rpss[i] = r + count = count + c + latencies_avg[i] = la * c + latencies_max[i] = lm + latencies_p90[i] = p90 + latencies_p99[i] = p99 + end + + local rps = sum(rpss) / #results + local latency_avg = sum(latencies_avg) / count + local latency_max = math.max(unpack(latencies_max)) + + if LAST_KONG_VERSION then + charts.ingest_combined_results(LAST_KONG_VERSION, { + rpss = rpss, + rps = rps, + latencies_p90 = latencies_p90, + latencies_p99 = latencies_p99, + latency_max = latency_max, + latency_avg = latency_avg, + }, suite) + end + + return ([[ +RPS Avg: %3.2f +Latency Avg: %3.2fms Max: %3.2fms + P90 (ms): %s + P99 (ms): %s + ]]):format(rps, latency_avg, latency_max, table.concat(latencies_p90, ", "), table.concat(latencies_p99, ", ")) +end + +--- Wait until the systemtap probe is loaded +-- @function wait_stap_probe +function _M.wait_stap_probe(timeout) + return invoke_driver("wait_stap_probe", timeout or 20) +end + +--- Generate the flamegraph and return SVG +-- @function generate_flamegraph +-- @param title the title for flamegraph +-- @param opts the command line options string(not table) for flamegraph.pl +-- @return Nothing. Throws an error if any. +function _M.generate_flamegraph(filename, title, opts) + if not filename then + error("filename must be specified for generate_flamegraph") + end + if string.sub(filename, #filename-3, #filename):lower() ~= ".svg" then + filename = filename .. ".svg" + end + + if not title then + title = "Flame graph" + end + + -- If current test is git-based, also attach the Kong binary package + -- version it based on + if git.is_git_repo() and git.is_git_based() then + -- use driver to get the version; driver could implement version override + -- based on setups (like using the daily image) + local v = invoke_driver("get_based_version") + title = title .. " (based on " .. v .. ")" + end + + local out = invoke_driver("generate_flamegraph", title, opts) + + local f, err = io.open(filename, "w") + if not f then + error("failed to open " .. filename .. " for writing flamegraph: " .. err) + end + + f:write(out) + f:close() + + my_logger.debug("flamegraph written to ", filename) +end + +--- Enable or disable charts generation +-- @function enable_charts +-- @param enabled enable or not +-- @return Nothing. Throws an error if any. +function _M.enable_charts(enabled) + return enabled and charts.on() or charts.off() +end + + +--- Save Kong error log locally +-- @function save_error_log +-- @return Nothing. Throws an error if any. +function _M.save_error_log(filename) + if not filename then + error("filename must be specified for save_error_log") + end + + invoke_driver("save_error_log", filename) + + my_logger.debug("Kong error log written to ", filename) +end + +--- Get the Admin URI accessible from worker +-- @function save_error_log +-- @param kong_name[optional] string specify the kong name; will automatically pick one if not specified +-- @return Nothing. Throws an error if any. +function _M.get_admin_uri(kong_name) + return invoke_driver("get_admin_uri", kong_name) +end + +--- Save a .sql file of the database +-- @function save_pgdump +-- @param path string the .sql file path +-- @return Nothing. Throws an error if any. +function _M.save_pgdump(path) + return invoke_driver("save_pgdump", path) +end + +--- Load a .sql file into the database +-- @function load_pgdump +-- @param path string the .sql file path +-- @param dont_patch_service bool set to true to skip update all services +-- to upstream started by this framework +-- @return Nothing. Throws an error if any. +function _M.load_pgdump(path, dont_patch_service) + return invoke_driver("load_pgdump", path, dont_patch_service) +end + +-- Execute command on remote instance +-- @function remote_execute +-- @param node_type string the node to exeute the command on, can be "kong", "db" or "worker" +-- @param cmds table the cmds in an array +-- @param continue_on_error bool if true, will continue on error +function _M.remote_execute(node_type, cmds, continue_on_error) + return invoke_driver("remote_execute", node_type, cmds, continue_on_error) +end + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts.lua new file mode 100644 index 00000000..fa335d3f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts.lua @@ -0,0 +1,120 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local math = require "math" +local utils = require("spec.helpers.perf.utils") +local logger = require("spec.helpers.perf.logger") +local cjson = require "cjson" +local tablex = require "pl.tablex" + +local fmt = string.format +local my_logger = logger.new_logger("[charts]") + +math.randomseed(ngx.now()) + +local options +local current_test_element +local enabled = true +local unsaved_results_lookup = {} +local unsaved_results = {} + +local function gen_plots(results, fname, opts) + opts = opts or options + + if not results or not next(results) then + my_logger.warn("no result found, skipping plot generation") + return + end + + os.execute("mkdir -p output") + + local output_data = { + options = opts, + data = results, + } + + local f = io.open(fmt("output/%s.data.json", fname), "w") + f:write(cjson.encode(output_data)) + f:close() + my_logger.info(fmt("parsed result saved to output/%s.json", fname)) + + return true +end + +local function on_test_start(element, parent, status, debug) + if not enabled then + return true + end + + current_test_element = element +end + +local function on_test_end(element, parent, status, debug) + if not enabled then + return true + end + +end + +local function on_file_end(file) + if not enabled then + return true + end + + local results = unsaved_results + unsaved_results = {} + + local fname = file.name:gsub("[:/]", "#"):gsub("[ ,]", "_"):gsub("__", "_") + return gen_plots(results, fname, options) +end + +local function ingest_combined_results(ver, results, suite_name) + if not suite_name then + local desc = utils.get_test_descriptor(false, current_test_element) + -- escape lua patterns + local pattern = ver:gsub([=[[%[%(%)%.%%%+%-%*%?%[%^%$%]]]=], "%%%1") + -- remove version and surround string from title + suite_name = desc:gsub("%s?"..pattern, ""):gsub(pattern.."%s?", "") + end + + if not unsaved_results_lookup[suite_name] then + unsaved_results_lookup[suite_name] = {} + + elseif unsaved_results_lookup[suite_name][ver] then + my_logger.warn(fmt("version %s for \"%s\" already has results, current result will be discarded", + ver, suite_name)) + return false + end + + local row = tablex.deepcopy(results) + row.version = ver + row.suite = suite_name + + -- save as ordered-array + table.insert(unsaved_results, row) + + return true +end + +local function register_busted_hook(opts) + local busted = require("busted") + + busted.subscribe({'file', 'end' }, on_file_end) + busted.subscribe({'test', 'start'}, on_test_start) + busted.subscribe({'test', 'end'}, on_test_end) +end + +return { + gen_plots = gen_plots, + register_busted_hook = register_busted_hook, + ingest_combined_results = ingest_combined_results, + on = function() enabled = true end, + off = function() enabled = false end, + options = function(opts) + options = opts + end, +} diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/.gitignore b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/.gitignore new file mode 100644 index 00000000..6e4266f3 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/.gitignore @@ -0,0 +1,3 @@ +__pycache__/ +*.py[cod] +*$py.class diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/charts.py b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/charts.py new file mode 100644 index 00000000..3d1c2454 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/charts.py @@ -0,0 +1,127 @@ +import argparse +import pprint +from pathlib import Path +import plotly.express as px +from plotly.subplots import make_subplots +import pandas as pd +import textwrap +import json + +pprint = pprint.PrettyPrinter(indent=4).pprint + +def adjust_fig_tick_y(fig, min_y, max_y, row): + if max_y - min_y <= 5: + fig.update_yaxes(range=[min_y*0.9, max_y*1.1], row=row) + +def main(args: dict): + fname = Path(args.file).stem + output_dir = args.output_dir + + with open(args.file) as f: + input_json = json.load(f) + + df = pd.DataFrame(input_json["data"]) + + pprint(df) + + df["rps_error"] = df["rpss"].apply(max) - df["rpss"].apply(min) + df["latency_p99_error"] = df["latencies_p99"].apply( + max) - df["latencies_p99"].apply(min) + df["latency_p90_error"] = df["latencies_p90"].apply( + max) - df["latencies_p90"].apply(min) + + suite_sequential = "options" in input_json and \ + "suite_sequential" in input_json["options"] and \ + input_json["options"]["suite_sequential"] + + if suite_sequential: + # Suite must be int if suite_sequential is True, plotly uses suites as x-axis + df["suite"] = df["suite"].apply(int) + else: + # Wrap long labels as suites are string types + df["suite"] = df["suite"].apply( + lambda x: "
".join(textwrap.wrap(x, width=40))) + + df.sort_values(by=["version", "suite"], inplace=True) + + xaxis_title = "options" in input_json and \ + "xaxis_title" in input_json["options"] and \ + input_json["options"]["xaxis_title"] or "Test Suites" + + # RPS plot + fig_rps = px.bar(df, x="suite", y="rps", error_y="rps_error", + color="version", barmode="group", title="RPS", + labels={"suite": xaxis_title}) + + # flatten multiple values of each role into separate rows + df_p99 = df.explode("latencies_p99") + df_p90 = df.explode("latencies_p90") + + # P99/90 plot + fig_p99 = px.box(df_p99, x="suite", y="latencies_p99", color="version", + points="all", title="P99 Latency", boxmode="group", + labels={"suite": xaxis_title, "latencies_p99": "P99 Latency (ms)"}) + adjust_fig_tick_y(fig_p99, min(df_p99['latencies_p99']), max(df_p99['latencies_p99']), 1) + + fig_p90 = px.box(df_p90, x="suite", y="latencies_p90", color="version", + points="all", title="P90 Latency", boxmode="group", + labels={"suite": xaxis_title, "latencies_p90": "P90 Latency (ms)"}) + adjust_fig_tick_y(fig_p90, min(df_p90['latencies_p90']), max(df_p90['latencies_p90']), 1) + + # Max latency + fig_max_latency = px.bar(df, x="suite", y="latency_max", color="version", + barmode="group", title="Max Latency", + labels={"suite": xaxis_title, "latency_max": "Max Latency (ms)"}) + + if suite_sequential: + # Ordinary Least Square Regression + fig_p99 = px.scatter( + df_p99, x="suite", y="latencies_p99", color="version", trendline="ols", + labels={"suite": xaxis_title, "latencies_p99": "P99 Latency (ms)"}, + title="P99 Latency") + fig_p90 = px.scatter( + df_p90, x="suite", y="latencies_p90", color="version", trendline="ols", + labels={"suite": xaxis_title, "latencies_p90": "P90 Latency (ms)"}, + title="P90 Latency") + fig_max_latency = px.scatter( + df, x="suite", y="latency_max", color="version", trendline="ols", + labels={"suite": xaxis_title, "latency_max": "Max Latency (ms)"}, + title="Max Latency") + + # RPS and P99 plot + combined = make_subplots(rows=2, cols=1, subplot_titles=[ + fig_rps.layout.title.text, fig_p99.layout.title.text], vertical_spacing=0.12) + combined.add_traces(fig_rps.data) + combined.add_traces(fig_p99.data, rows=[ + 2]*len(fig_p99.data), cols=[1]*len(fig_p99.data)) + combined.update_xaxes(title_text=xaxis_title) + + # Adjust y-axis ticks only if tickes are too close + if not suite_sequential: + adjust_fig_tick_y(combined, min(df_p99['latencies_p99']), max(df_p99['latencies_p99']), 2) + + combined.update_yaxes(title_text="RPS") + combined.update_yaxes(title_text="P99 Latency (ms)", row=2) + combined.update_layout(title_text=fname, boxmode="group") + combined.write_image( + Path(output_dir, fname + ".combined.png"), width=1080, height=1080, scale=2) + combined.write_image( + Path(output_dir, fname + ".combined.svg"), width=1080, height=1080, scale=2) + + # HTML is seperated and interactive graphs + with open(Path(output_dir, fname + ".plots.html"), "w") as f: + f.write("

" + fname + " Report:

") + f.write(fig_rps.to_html(include_plotlyjs="cdn", full_html=False)) + f.write(fig_p99.to_html(include_plotlyjs=False, full_html=False)) + f.write(fig_p90.to_html(include_plotlyjs=False, full_html=False)) + f.write(fig_max_latency.to_html( + include_plotlyjs=False, full_html=False)) + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("file", help="path of json result file") + parser.add_argument("-o", "--output-dir", default="", + help="whether the suite is sequential") + args = parser.parse_args() + + main(args) diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/requirements.txt b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/requirements.txt new file mode 100644 index 00000000..1e554d3a --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/charts/requirements.txt @@ -0,0 +1,4 @@ +pandas==1.4.3 +plotly==5.9.0 +statsmodels==0.13.2 +kaleido==0.2.1 diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/docker.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/docker.lua new file mode 100644 index 00000000..ee73d7e4 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/docker.lua @@ -0,0 +1,629 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local nkeys = require "table.nkeys" +local perf = require("spec.helpers.perf") +local tools = require("kong.tools.utils") +local helpers + +local _M = {} +local mt = {__index = _M} + +local UPSTREAM_PORT = 18088 +local KONG_DEFAULT_HYBRID_CERT = "/etc/kong-hybrid-cert.pem" +local KONG_DEFAULT_HYBRID_CERT_KEY = "/etc/kong-hybrid-key.pem" + +function _M.new(opts) + return setmetatable({ + opts = opts, + log = perf.new_logger("[docker]"), + psql_ct_id = nil, + kong_ct_ids = {}, + worker_ct_id = nil, + daily_image_desc = nil, + }, mt) +end + +local function start_container(cid) + if not cid then + return false, "container does not exist" + end + + local _, err = perf.execute("docker start " .. cid) + if err then + return false, "docker start:" .. err + end + + local out, err = perf.execute("docker inspect --format='{{.State.Running}}' " .. cid) + if err then + return false, "docker inspect:" .. err + end + + if out:gsub("\n", "") ~= "true" then + local out, err = perf.execute("docker logs -n5 " .. cid) + if err then + return false, "docker logs:" .. err + end + return false, out + end + + return true +end + +local function create_container(self, args, img, cmd) + local out, err = perf.execute("docker images --format '{{.Repository}}:{{.Tag}}' " .. img) + -- plain pattern find + if err or not out:find(img, nil, true) then + local _, err = perf.execute("docker pull " .. img, { logger = self.log.log_exec }) + if err then + return false, err + end + end + + args = args or "" + cmd = cmd or "" + out, err = perf.execute("docker create " .. args .. " " .. img .. " " .. cmd) + if err then + return false, err + end + local cid = out:match("^[a-f0-9]+$") + if not cid then + return false, "invalid container ID: " .. out + end + return cid +end + +local function get_container_port(cid, ct_port) + local out, err = perf.execute( + "docker inspect " .. + "--format='{{range $p, $conf := .NetworkSettings.Ports}}" .. + "{{if eq $p \"" .. ct_port .. "\" }}{{(index $conf 0).HostPort}}{{end}}" .. + "{{end}}' " .. cid) + if err then + return false, "docker inspect:" .. err .. ": " .. (out or "nil") + end + + return tonumber(out) +end + +local function get_container_vip(cid) + local out, err = perf.execute("docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' " .. cid) + if err then + return false, "docker inspect:" .. err .. ": " .. (out or "nil") + end + + return out +end + +function _M:teardown() + self.setup_kong_called = false + + local ct_ids = {"worker_ct_id", "psql_ct_id" } + for _, cid in ipairs(ct_ids) do + if self[cid] then + perf.execute("docker rm -f " .. self[cid], { logger = self.log.log_exec }) + self[cid] = nil + end + end + + for conf_id, kong_ct_id in pairs(self.kong_ct_ids) do + perf.execute("docker rm -f " .. kong_ct_id, { logger = self.log.log_exec }) + self.kong_ct_ids[conf_id] = nil + end + + perf.git_restore() + + return true +end + +local function prepare_spec_helpers(self, use_git, version) + local psql_port, err = get_container_port(self.psql_ct_id, "5432/tcp") + if not psql_port then + return false, "failed to get psql port: " .. (err or "nil") + end + + -- wait + if not perf.wait_output("docker logs -f " .. self.psql_ct_id, "is ready to accept connections") then + return false, "timeout waiting psql to start (5s)" + end + + self.log.info("psql is started to listen at port ", psql_port) + perf.setenv("KONG_PG_PORT", ""..psql_port) + + ngx.sleep(3) -- TODO: less flaky + + if not use_git then + local current_spec_helpers_version = perf.get_kong_version(true) + if current_spec_helpers_version ~= version then + self.log.info("Current spec helpers version " .. current_spec_helpers_version .. + " doesn't match with version to be tested " .. version .. ", checking out remote version") + + version = version:match("%d+%.%d+%.%d+%.%d+") or version:match("%d+%.%d+%.%d+") + + perf.git_checkout(version) -- throws + end + end + + -- reload the spec.helpers module, since it may have been loaded with + -- a different set of env vars + perf.clear_loaded_package() + + -- just to let spec.helpers happy, we are not going to start kong locally + require("kong.meta")._DEPENDENCIES.nginx = {"0.0.0.0", "9.9.9.9"} + + helpers = require("spec.helpers") + + package.loaded['kong.meta'] = nil + require("kong.meta") + + perf.unsetenv("KONG_PG_PORT") + + helpers.admin_client = function(timeout) + if nkeys(self.kong_ct_ids) < 1 then + error("helpers.admin_client can only be called after perf.start_kong") + end + + -- find all kong containers with first one that exposes admin port + for _, kong_id in pairs(kong.ct_ids) do + local admin_port, err = get_container_port(kong_id, "8001/tcp") + if err then + error("failed to get kong admin port: " .. (err or "nil")) + end + if admin_port then + return helpers.http_client("127.0.0.1", admin_port, timeout or 60000) + end + -- not admin_port, it's fine, maybe it's a dataplane + end + + error("failed to get kong admin port from all Kong containers") + end + return helpers +end + +function _M:setup() + if not self.psql_ct_id then + local cid, err = create_container(self, "-p5432 " .. + "-e POSTGRES_HOST_AUTH_METHOD=trust -e POSTGRES_DB=kong_tests " .. + "-e POSTGRES_USER=kong " .. + "--name kong_perf_psql_$(date +%s)", + "postgres:13", + "-c max_connections=5000") + if err then + return false, "error running docker create when creating kong container: " .. err + end + self.psql_ct_id = cid + end + + self.log.info("psql container ID is ", self.psql_ct_id) + local ok, err = start_container(self.psql_ct_id) + if not ok then + return false, "psql is not running: " .. err + end + + return true +end + +function _M:start_worker(conf, port_count) + conf = conf or [[ + location = /test { + return 200; + } + ]] + + local listeners = {} + for i=1,port_count do + listeners[i] = ("listen %d reuseport;"):format(UPSTREAM_PORT+i-1) + end + listeners = table.concat(listeners, "\n") + + if not self.worker_ct_id then + local _, err = perf.execute( + "docker build --progress plain -t perf-test-worker -", + { + logger = self.log.log_exec, + stdin = ([[ + FROM nginx:alpine + RUN apk update && apk add wrk + RUN echo -e '\ + server {\ + %s\ + access_log off;\ + location =/health { \ + return 200; \ + } \ + %s \ + }' > /etc/nginx/conf.d/perf-test.conf + + # copy paste + ENTRYPOINT ["/docker-entrypoint.sh"] + + STOPSIGNAL SIGQUIT + + CMD ["nginx", "-g", "daemon off;"] + ]]):format(listeners:gsub("\n", "\\n"), conf:gsub("\n", "\\n")) + } + ) + if err then + return false, err + end + + local cid, err = create_container(self, "--name kong_perf_worker_$(date +%s) -p " .. UPSTREAM_PORT, "perf-test-worker") + if err then + return false, "error running docker create when creating worker: " .. err + end + self.worker_ct_id = cid + end + + self.log.info("worker container ID is ", self.worker_ct_id) + + local ok, err = start_container(self.worker_ct_id) + if not ok then + return false, "worker is not running: " .. err + end + ngx.sleep(3) -- TODO: less flaky + + local worker_vip, err = get_container_vip(self.worker_ct_id) + if err then + return false, "unable to read worker container's private IP: " .. err + end + + if not perf.wait_output("docker logs -f " .. self.worker_ct_id, " start worker process") then + self.log.info("worker container logs:") + perf.execute("docker logs " .. self.worker_ct_id, { logger = self.log.log_exec }) + return false, "timeout waiting worker(nginx) to start (5s)" + end + + self.log.info("worker is started") + + local uris = {} + for i=1,port_count do + uris[i] = "http://" .. worker_vip .. ":" .. UPSTREAM_PORT+i-1 + end + return uris +end + + +function _M:setup_kong(version) + local ok, err = _M.setup(self) + if not ok then + return ok, err + end + + local git_repo_path + + self.daily_image_desc = nil + if version:startswith("git:") then + git_repo_path = perf.git_checkout(version:sub(#("git:")+1)) + version = perf.get_kong_version() + + if self.opts.use_daily_image then + self.kong_image = "kong/kong-gateway-internal:master-ubuntu" + perf.execute("docker pull " .. self.kong_image, { logger = self.log.log_exec }) + local manifest, err = perf.execute("docker inspect " .. self.kong_image) + if err then + return nil, "failed to inspect daily image: " .. err + end + local labels, err = perf.parse_docker_image_labels(manifest) + if err then + return nil, "failed to use parse daily image manifest: " .. err + end + self.log.debug("daily image " .. labels.version .." was pushed at ", labels.created) + self.daily_image_desc = labels.version .. ", " .. labels.created + + else + self.kong_image = "kong:" .. version + end + self.log.debug("current git hash resolves to docker version ", version) + + elseif version:match("rc") or version:match("beta") then + self.kong_image = "kong/kong:" .. version + elseif version:match("%d+%.%d+%.%d+%.%d+") then -- EE + if version:match("internal%-preview") then + self.kong_image = "kong/kong-gateway-internal:" .. version + else + self.kong_image = "kong/kong-gateway:" .. version + end + else + self.kong_image = "kong:" .. version + end + + self.git_repo_path = git_repo_path + + local docker_args = "--link " .. self.psql_ct_id .. ":postgres " .. + "-e KONG_PG_HOST=postgres " .. + "-e KONG_PG_DATABASE=kong_tests " + + local _, err = perf.execute("docker run --rm " .. docker_args .. " " .. self.kong_image .. " kong migrations bootstrap", + { logger = self.log.log_exec }) + if err then + return nil, "error running initial migration: " .. err + end + + self.setup_kong_called = true + + return prepare_spec_helpers(self, git_repo_path, version) +end + +function _M:start_kong(kong_conf, driver_conf) + if not self.setup_kong_called then + return false, "setup_kong() must be called before start_kong()" + end + + local kong_name = driver_conf.name + or 'default' + + if not driver_conf.ports then + driver_conf.ports = { 8000 } + end + + if self.kong_ct_ids[kong_name] == nil then + if not kong_conf['cluster_cert'] then + kong_conf['cluster_cert'] = KONG_DEFAULT_HYBRID_CERT + kong_conf['cluster_cert_key'] = KONG_DEFAULT_HYBRID_CERT_KEY + end + + local docker_args = "--name kong_perf_kong_$(date +%s)_" .. kong_name .. " " + for k, v in pairs(kong_conf) do + docker_args = docker_args .. string.format("-e KONG_%s=%s ", k:upper(), v) + end + docker_args = docker_args .. "-e KONG_PROXY_ACCESS_LOG=/dev/null " + + -- adds database configuration + if kong_conf['database'] == nil then + docker_args = docker_args .. "--link " .. self.psql_ct_id .. ":postgres " .. + "-e KONG_PG_HOST=postgres " .. + "-e KONG_PG_DATABASE=kong_tests " + end + + -- link to other kong instances + for name, ctid in pairs(self.kong_ct_ids) do + docker_args = docker_args .. string.format("--link %s:%s ", ctid, name) + end + + for _, port in ipairs(driver_conf.ports) do + docker_args = docker_args .. string.format("-p %d ", port) + end + + local cid, err = create_container(self, docker_args, self.kong_image, + "/bin/bash -c 'kong migrations bootstrap; kong migrations up -y; kong migrations finish -y; /docker-entrypoint.sh kong docker-start'") + + if err then + return false, "error running docker create when creating kong container: " .. err + end + + self.kong_ct_ids[kong_name] = cid + perf.execute("docker cp ./spec/fixtures/kong_clustering.crt " .. cid .. ":" .. KONG_DEFAULT_HYBRID_CERT) + perf.execute("docker cp ./spec/fixtures/kong_clustering.key " .. cid .. ":" .. KONG_DEFAULT_HYBRID_CERT_KEY) + + if self.git_repo_path then + perf.execute("docker exec --user=root " .. cid .. + " find /usr/local/share/lua/5.1/kong -name '*.ljbc' -delete; true") + perf.execute("docker cp " .. self.git_repo_path .. "/kong " .. cid .. ":/usr/local/share/lua/5.1/") + -- TODO: folllowing doesn't work + perf.execute("(cd " .. self.git_repo_path .. " && tar zc plugins-ee/*/kong/plugins/* --transform='s,plugins-ee/[^/]*/kong,kong,') | " + .. "docker exec --user=root " .. cid .. " tar zx -C /usr/local/share/lua/5.1/") + end + end + + self.log.info("starting kong container \"" .. kong_name .. "\" with ID ", self.kong_ct_ids[kong_name]) + local ok, err = start_container(self.kong_ct_ids[kong_name]) + if not ok then + return false, "kong is not running: " .. err + end + + -- wait + if not perf.wait_output("docker logs -f " .. self.kong_ct_ids[kong_name], " start worker process", 30) then + self.log.info("kong container logs:") + perf.execute("docker logs " .. self.kong_ct_ids[kong_name], { logger = self.log.log_exec }) + return false, "timeout waiting kong to start (5s)" + end + + local ports = driver_conf.ports + local port_maps = {} + for _, port in ipairs(ports) do + local mport, err = get_container_port(self.kong_ct_ids[kong_name], port .. "/tcp") + if not mport then + return false, "can't find exposed port " .. port .. " for kong " .. + self.kong_ct_ids[kong_name] .. " :" .. err + end + table.insert(port_maps, string.format("%s->%s/tcp", mport, port)) + end + + self.log.info("kong container \"" .. kong_name .. "\" is started to listen at port ", table.concat(port_maps, ", ")) + return self.kong_ct_ids[kong_name] +end + +function _M:stop_kong() + for conf_id, kong_ct_id in pairs(self.kong_ct_ids) do + local _, err = perf.execute("docker stop " .. kong_ct_id) + if err then + return false + end + end + + return true +end + +function _M:get_start_load_cmd(stub, script, uri, kong_name) + if not self.worker_ct_id then + return false, "worker container is not started, 'start_worker' must be called first" + end + + local kong_id + if not uri then + if not kong_name then + -- find all kong containers with first one that exposes proxy port + for name, ct_id in pairs(self.kong_ct_ids) do + local admin_port, err = get_container_port(ct_id, "8000/tcp") + if err then + -- this is fine, it means this kong doesn't have a proxy port + self.log.debug("failed to get kong proxy port for " .. ct_id .. ": " .. (err or "nil")) + elseif admin_port then + kong_id = ct_id + self.log.info("automatically picked kong container \"", name, "\" with ID " .. ct_id .. " for proxy port") + break + end + end + if not kong_id then + return false, "failed to find kong proxy port" + end + else + kong_id = self.kong_ct_ids[kong_name] + if not kong_id then + return false, "kong container \"" .. kong_name .. "\" is not found" + end + end + + local kong_vip, err = get_container_vip(kong_id) + if err then + return false, "unable to read kong container's private IP: " .. err + end + uri = string.format("http://%s:8000", kong_vip) + end + + local script_path + if script then + script_path = string.format("/tmp/wrk-%s.lua", tools.random_string()) + local out, err = perf.execute(string.format( + "docker exec -i %s tee %s", self.worker_ct_id, script_path), + { + stdin = script, + }) + if err then + return false, "failed to write script in " .. self.worker_ct_id .. " container: " .. (out or err) + end + end + + script_path = script_path and ("-s " .. script_path) or "" + + return "docker exec " .. self.worker_ct_id .. " " .. + stub:format(script_path, uri) +end + +function _M:get_admin_uri(kong_name) + local kong_id + if not kong_name then + -- find all kong containers with first one that exposes admin port + for name, ct_id in pairs(self.kong_ct_ids) do + local admin_port, err = get_container_port(ct_id, "8001/tcp") + if err then + -- this is fine, it means this kong doesn't have an admin port + self.log.warn("failed to get kong admin port for " .. ct_id .. ": " .. (err or "nil")) + elseif admin_port then + kong_id = ct_id + self.log.info("automatically picked kong container \"", name, "\" with ID " .. ct_id .. " for admin port") + break + end + end + if not kong_id then + return nil, "failed to find kong admin port" + end + else + kong_id = self.kong_ct_ids[kong_name] + if not kong_id then + return false, "kong container \"" .. kong_name .. "\" is not found" + end + end + + local kong_vip, err = get_container_vip(kong_id) + if err then + return false, "unable to read kong container's private IP: " .. err + end + + return string.format("http://%s:8001", kong_vip) +end + +function _M:get_start_stapxx_cmd() + error("SystemTap support not yet implemented in docker driver") +end + +function _M:get_wait_stapxx_cmd() + error("SystemTap support not yet implemented in docker driver") +end + +function _M:generate_flamegraph() + error("SystemTap support not yet implemented in docker driver") +end + +function _M:save_error_log(path) + for _, kong_ct_id in pairs(self.kong_ct_ids) do + local _, err = perf.execute("docker logs " .. kong_ct_id .. " 2>'" .. path .. "-" .. kong_ct_id .. "'", + { logger = self.log.log_exec }) + if err then + return false, "failed to save error log for kong " .. kong_ct_id .. ": " .. err + end + end + + return true +end + +function _M:save_pgdump(path) + if not self.psql_ct_id then + return false, "postgres container not started" + end + + return perf.execute("docker exec -i " .. self.psql_ct_id .. " pg_dump -Ukong kong_tests --data-only >'" .. path .. "'", + { logger = self.log.log_exec }) +end + +function _M:load_pgdump(path, dont_patch_service) + if not self.psql_ct_id then + return false, "postgres container not started" + end + + local _, err = perf.execute("cat " .. path .. " |docker exec -i " .. self.psql_ct_id .. " psql -Ukong kong_tests", + { logger = self.log.log_exec }) + if err then + return false, err + end + + if dont_patch_service then + return true + end + + if not self.worker_ct_id then + return false, "worker not started, can't patch_service; call start_worker first" + end + + local worker_vip, err = get_container_vip(self.worker_ct_id) + if err then + return false, "unable to read worker container's private IP: " .. err + end + + return perf.execute("echo \"UPDATE services set host='" .. worker_vip .. + "', port=" .. UPSTREAM_PORT .. + ", protocol='http';\" | docker exec -i " .. self.psql_ct_id .. " psql -Ukong kong_tests", + { logger = self.log.log_exec }) +end + +function _M:get_based_version() + return self.daily_image_desc or perf.get_kong_version() +end + +function _M:remote_execute(node_type, cmds, continue_on_error) + local ct_id + if node_type == "kong" then + ct_id = self.kong_ct_ids[next(self.kong_ct_ids)] + elseif node_type == "worker" then + ct_id = self.worker_ct_id + elseif node_type == "db" then + ct_id = self.psql_ct_id + else + return false, "unknown node type: " .. node_type + end + for _, cmd in ipairs(cmds) do + local c = string.gsub(cmd, "'", "'\\''") + local out, err = perf.execute("docker exec -i " .. ct_id .. " '" .. c .. "'", + { logger = self.log.log_exec }) + if err and not continue_on_error then + return false, "failed to execute command: " .. cmd .. ": " .. (out or err) + end + end + return true +end + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/terraform.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/terraform.lua new file mode 100644 index 00000000..67964ceb --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/drivers/terraform.lua @@ -0,0 +1,781 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local perf = require("spec.helpers.perf") +local pl_path = require("pl.path") +local cjson = require("cjson") +local tools = require("kong.tools.utils") +math.randomseed(os.time()) + +local _M = {} +local mt = {__index = _M} + +local UPSTREAM_PORT = 8088 +local KONG_ADMIN_PORT +local PG_PASSWORD = tools.random_string() +local KONG_ERROR_LOG_PATH = "/tmp/error.log" +local KONG_DEFAULT_HYBRID_CERT = "/tmp/kong-hybrid-cert.pem" +local KONG_DEFAULT_HYBRID_CERT_KEY = "/tmp/kong-hybrid-key.pem" +-- threshold for load_avg / nproc, not based on specific research, +-- just a arbitrary number to ensure test env is normalized +local LOAD_NORMALIZED_THRESHOLD = 0.2 + +function _M.new(opts) + local provider = opts and opts.provider or "equinix-metal" + local work_dir = "./spec/fixtures/perf/terraform/" .. provider + if not pl_path.exists(work_dir) then + error("Hosting provider " .. provider .. " unsupported: expect " .. work_dir .. " to exists", 2) + end + + local tfvars = "" + if opts and opts.tfvars then + for k, v in pairs(opts.tfvars) do + tfvars = string.format("%s -var '%s=%s' ", tfvars, k, v) + end + end + + local ssh_user = opts.ssh_user or "root" + + return setmetatable({ + opts = opts, + log = perf.new_logger("[terraform]"), + ssh_log = perf.new_logger("[terraform][ssh]"), + provider = provider, + work_dir = work_dir, + tfvars = tfvars, + kong_ip = nil, + kong_internal_ip = nil, + worker_ip = nil, + worker_internal_ip = nil, + systemtap_sanity_checked = false, + systemtap_dest_path = nil, + daily_image_desc = nil, + ssh_user = ssh_user, + }, mt) +end + +local function ssh_execute_wrap(self, ip, cmd) + -- to quote a ', one need to finish the current ', quote the ' then start a new ' + cmd = string.gsub(cmd, "'", "'\\''") + return "ssh " .. + "-o IdentityFile=" .. self.work_dir .. "/id_rsa " .. -- TODO: no hardcode + -- timeout is detected 3xServerAliveInterval + "-o TCPKeepAlive=yes -o ServerAliveInterval=10 " .. + -- turn on connection multiplexing + "-o ControlPath=" .. self.work_dir .. "/cm-%r@%h:%p " .. + "-o ControlMaster=auto -o ControlPersist=5m " .. + -- no interactive prompt for saving hostkey + "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no " .. + -- silence warnings like "Permanently added xxx" + "-o LogLevel=ERROR " .. + self.ssh_user .. "@" .. ip .. " '" .. cmd .. "'" +end + +-- if remote_ip is set, run remotely; else run on host machine +local function execute_batch(self, remote_ip, cmds, continue_on_error) + for _, cmd in ipairs(cmds) do + if remote_ip then + cmd = ssh_execute_wrap(self, remote_ip, cmd) + end + local _, err = perf.execute(cmd, { + logger = (remote_ip and self.ssh_log or self.log).log_exec + }) + if err then + if not continue_on_error then + return false, "failed in \"" .. cmd .. "\": ".. (err or "nil") + end + self.log.warn("execute ", cmd, " has error: ", (err or "nil")) + end + end + return true +end + +function _M:remote_execute(node_type, cmds, continue_on_error) + local ip + if node_type == "kong" then + ip = self.kong_ip + elseif node_type == "worker" then + ip = self.worker_ip + elseif node_type == "db" then + ip = self.db_ip + else + return false, "unknown node type: " .. node_type + end + return execute_batch(self, ip, cmds, continue_on_error) +end + +function _M:setup(opts) + local bin, err = perf.execute("which terraform") + if err or #bin == 0 then + return nil, "terraform binary not found" + end + + local ok, _ + -- terraform apply + self.log.info("Running terraform to provision instances...") + + _, err = execute_batch(self, nil, { + "terraform version", + "cd " .. self.work_dir .. " && terraform init", + "cd " .. self.work_dir .. " && terraform apply -auto-approve " .. self.tfvars, + }) + if err then + return false, err + end + + -- grab outputs + local res + res, err = perf.execute("cd " .. self.work_dir .. " && terraform output -json") + if err then + return false, "terraform show: " .. err + end + res = cjson.decode(res) + + self.kong_ip = res["kong-ip"].value + self.kong_internal_ip = res["kong-internal-ip"].value + if self.opts.seperate_db_node then + self.db_ip = res["db-ip"].value + self.db_internal_ip = res["db-internal-ip"].value + else + self.db_ip = self.kong_ip + self.db_internal_ip = self.kong_internal_ip + end + self.worker_ip = res["worker-ip"].value + self.worker_internal_ip = res["worker-internal-ip"].value + + -- install psql docker on db instance + ok, err = execute_batch(self, self.db_ip, { + "sudo apt-get purge unattended-upgrades -y", + "sudo apt-get update -qq", "sudo DEBIAN_FRONTEND=\"noninteractive\" apt-get install -y --force-yes docker.io", + "sudo docker rm -f kong-database || true", -- if exist remove it + "sudo docker volume rm $(sudo docker volume ls -qf dangling=true) || true", -- cleanup postgres volumes if any + "sudo docker run -d -p5432:5432 ".. + "-e POSTGRES_PASSWORD=" .. PG_PASSWORD .. " " .. + "-e POSTGRES_DB=kong_tests " .. + "-e POSTGRES_USER=kong --name=kong-database postgres:13 -c max_connections=5000", + }) + if not ok then + return ok, err + end + + -- wait + local cmd = ssh_execute_wrap(self, self.db_ip, + "sudo docker logs -f kong-database") + if not perf.wait_output(cmd, "is ready to accept connections", 5) then + return false, "timeout waiting psql to start (5s)" + end + + return true +end + +function _M:teardown(full) + self.setup_kong_called = false + + -- only run remote execute when terraform provisioned + if self.kong_ip then + local _, err = execute_batch(self, self.kong_ip, { + "sudo rm -rf /usr/local/kong_* /usr/local/kong || true", + "sudo pkill -kill nginx || true", + "sudo dpkg -r kong || true", + "sudo dpkg -r kong-enterprise-edition || true", + }) + if err then + return false, err + end + end + + if full then + -- terraform destroy + self.log.info("Running terraform to destroy instances...") + + local ok, err = execute_batch(self, nil, { + "terraform version", + "cd " .. self.work_dir .. " && terraform init", + "cd " .. self.work_dir .. " && terraform destroy -auto-approve " .. self.tfvars, + }) + if not ok then + return false, err + end + end + + perf.git_restore() + + -- otherwise do nothing + return true +end + +function _M:start_worker(conf, port_count) + conf = conf or "" + local listeners = {} + for i=1,port_count do + listeners[i] = ("listen %d reuseport;"):format(UPSTREAM_PORT+i-1) + end + listeners = table.concat(listeners, "\n") + + conf = ngx.encode_base64(([[ + worker_processes auto; + worker_cpu_affinity auto; + error_log /var/log/nginx/error.log; + pid /run/nginx.pid; + worker_rlimit_nofile 20480; + + events { + accept_mutex off; + worker_connections 10620; + } + + http { + access_log off; + server_tokens off; + keepalive_requests 10000; + tcp_nodelay on; + + server { + %s + location =/health { + return 200; + } + location / { + return 200 " performancetestperformancetestperformancetestperformancetestperformancetest"; + } + %s + } + }]]):format(listeners, conf)):gsub("\n", "") + + local ok, err = execute_batch(self, self.worker_ip, { + "sudo id", + "echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor || true", + "sudo apt-get purge unattended-upgrades -y", + "sudo apt-get update -qq", "sudo DEBIAN_FRONTEND=\"noninteractive\" apt-get install -y --force-yes nginx gcc make unzip libssl-dev zlib1g-dev", + "which wrk || (rm -rf wrk && git clone https://github.com/wg/wrk -b 4.2.0 && cd wrk && make -j$(nproc) WITH_OPENSSL=/usr && sudo cp wrk /usr/local/bin/wrk)", + "which wrk2 || (rm -rf wrk2 && git clone https://github.com/giltene/wrk2 && cd wrk2 && make -j$(nproc) && sudo cp wrk /usr/local/bin/wrk2)", + "echo " .. conf .. " | base64 -d | sudo tee /etc/nginx/nginx.conf", + "sudo nginx -t", + "sudo systemctl restart nginx", + }) + if not ok then + return nil, err + end + + local uris = {} + for i=1,port_count do + uris[i] = "http://" .. self.worker_internal_ip .. ":" .. UPSTREAM_PORT+i-1 + end + return uris +end + +local function get_admin_port(self, kong_name) + kong_name = kong_name or "default" + local port, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, + "sudo cat /etc/kong/" .. kong_name .. ".conf | grep admin_listen | cut -d ':' -f 2 | grep -oP '\\d+' || true")) + if port and tonumber(port) then + return tonumber(port) + else + self.log.warn("unable to read admin port for " .. kong_name .. ", fallback to default port " .. KONG_ADMIN_PORT .. ": " .. tostring(err)) + return KONG_ADMIN_PORT + end +end + +local function prepare_spec_helpers(self, use_git, version) + perf.setenv("KONG_PG_HOST", self.db_ip) + perf.setenv("KONG_PG_PASSWORD", PG_PASSWORD) + -- self.log.debug("(In a low voice) pg_password is " .. PG_PASSWORD) + + if not use_git then + local current_spec_helpers_version = perf.get_kong_version(true) + if current_spec_helpers_version ~= version then + self.log.info("Current spec helpers version " .. current_spec_helpers_version .. + " doesn't match with version to be tested " .. version .. ", checking out remote version") + + version = version:match("%d+%.%d+%.%d+%.%d+") or version:match("%d+%.%d+%.%d+") + + perf.git_checkout(version) -- throws + end + end + + self.log.info("Infra is up! However, preparing database remotely may take a while...") + for i=1, 3 do + perf.clear_loaded_package() + + -- just to let spec.helpers happy, we are not going to start kong locally + require("kong.meta")._DEPENDENCIES.nginx = {"0.0.0.0", "9.9.9.9"} + + local pok, pret = pcall(require, "spec.helpers") + package.loaded['kong.meta'] = nil + require("kong.meta") + + if pok then + pret.admin_client = function(timeout) + return pret.http_client(self.kong_ip, get_admin_port(self), timeout or 60000) + end + perf.unsetenv("KONG_PG_HOST") + perf.unsetenv("KONG_PG_PASSWORD") + + return pret + end + self.log.warn("unable to load spec.helpers: " .. (pret or "nil") .. ", try " .. i) + ngx.sleep(1) + end + error("Unable to load spec.helpers") +end + +function _M:setup_kong(version) + local ok, err = _M.setup(self) + if not ok then + return ok, err + end + + local git_repo_path, _ + + if version:startswith("git:") then + git_repo_path = perf.git_checkout(version:sub(#("git:")+1)) + + version = perf.get_kong_version() + self.log.debug("current git hash resolves to Kong version ", version) + end + + local download_path + local download_user, download_pass = "x", "x" + local major_version = version:sub(1, 1) + if major_version == "2" or major_version == "3" then + local package_name = "kong-enterprise-edition_" .. version .. "_amd64.deb" + if major_version == "2" then + package_name = "kong-enterprise-edition_" .. version .. "_all.deb" + end + if version:match("%d+%.%d+%.%d+%.%d+") then -- EE + if version:match("internal%-preview") then + download_path = "https://download.konghq.com/internal/gateway-" .. major_version .. ".x-ubuntu-focal/pool/all/k/kong-enterprise-edition/"..package_name + download_user = os.getenv("PULP_USERNAME") + download_pass = os.getenv("PULP_PASSWORD") + if not download_user or not download_pass then + return nil, "PULP_USERNAME and PULP_PASSWORD are required to download internal builds" + end + else + download_path = "https://download.konghq.com/gateway-" .. major_version .. ".x-ubuntu-focal/pool/all/k/kong-enterprise-edition/"..package_name + end + else + download_path = "https://download.konghq.com/gateway-" .. major_version .. ".x-ubuntu-focal/pool/all/k/kong/kong_" .. + version .. "_amd64.deb" + end + else + error("Unknown download location for Kong version " .. version) + end + + local docker_extract_cmds + self.daily_image_desc = nil + -- daily image are only used when testing with git + -- testing upon release artifact won't apply daily image files + local daily_image = "kong/kong-gateway-internal:master-ubuntu" + if self.opts.use_daily_image and git_repo_path then + -- install docker on kong instance + local _, err = execute_batch(self, self.kong_ip, { + "sudo apt-get update -qq", + "sudo DEBIAN_FRONTEND=\"noninteractive\" apt-get install -y --force-yes docker.io", + "sudo docker version", + }) + if err then + return false, err + end + + docker_extract_cmds = { + "sudo docker login -u " .. (os.getenv("DOCKER_USERNAME") or "x") .. + " -p " .. (os.getenv("DOCKER_PASSWORD") or "x"), + "sudo docker rm -f daily || true", + "sudo docker rmi -f " .. daily_image, + "sudo docker pull " .. daily_image, + "sudo docker create --name daily " .. daily_image, + "sudo rm -rf /tmp/lua && sudo docker cp daily:/usr/local/share/lua/5.1/. /tmp/lua", + -- don't overwrite kong source code, use them from current git repo instead + "sudo rm -rf /tmp/lua/kong && sudo cp -r /tmp/lua/. /usr/local/share/lua/5.1/", + } + + for _, dir in ipairs({"/usr/local/openresty", + "/usr/local/kong/include", "/usr/local/kong/lib"}) do + -- notice the /. it makes sure the content not the directory itself is copied + table.insert(docker_extract_cmds, "sudo docker cp daily:" .. dir .."/. " .. dir) + end + + table.insert(docker_extract_cmds, "sudo rm -rf /tmp/lua && sudo docker cp daily:/usr/local/share/lua/5.1/. /tmp/lua") + table.insert(docker_extract_cmds, "sudo rm -rf /tmp/lua/kong && sudo cp -r /tmp/lua/. /usr/local/share/lua/5.1/") + end + + local ok, err = execute_batch(self, self.kong_ip, { + "sudo apt-get purge unattended-upgrades -y", + "sudo apt-get update -qq", + "echo | sudo tee " .. KONG_ERROR_LOG_PATH, -- clear it + "sudo id", + -- set cpu scheduler to performance, it should lock cpufreq to static freq + "echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor || true", + -- increase outgoing port range to avoid 99: Cannot assign requested address + "sudo sysctl net.ipv4.ip_local_port_range='10240 65535'", + -- stop and remove kong if installed + "dpkg -l kong && (sudo pkill -kill nginx; sudo dpkg -r kong) || true", + -- stop and remove kong-ee if installed + "dpkg -l kong-enterprise-edition && (sudo pkill -kill nginx; sudo dpkg -r kong-enterprise-edition) || true", + -- have to do the pkill sometimes, because kong stop allow the process to linger for a while + "sudo pkill -F /usr/local/kong/pids/nginx.pid || true", + -- remove all lua files, not only those installed by package + "sudo rm -rf /usr/local/share/lua/5.1/kong", + "dpkg -I kong-" .. version .. ".deb || " .. -- check if already downloaded and valid because pulp flaky + "wget -nv " .. download_path .. + " --user " .. download_user .. " --password " .. download_pass .. " -O kong-" .. version .. ".deb", + "sudo dpkg -i kong-" .. version .. ".deb || sudo apt-get -f -y install", + -- generate hybrid cert + "kong hybrid gen_cert " .. KONG_DEFAULT_HYBRID_CERT .. " " .. KONG_DEFAULT_HYBRID_CERT_KEY .. " || true", + }) + if not ok then + return false, err + end + + if docker_extract_cmds then + _, err = execute_batch(self, self.kong_ip, docker_extract_cmds) + if err then + return false, "error extracting docker daily image:" .. err + end + local manifest + manifest, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, "sudo docker inspect " .. daily_image)) + if err then + return nil, "failed to inspect daily image: " .. err + end + local labels + labels, err = perf.parse_docker_image_labels(manifest) + if err then + return nil, "failed to use parse daily image manifest: " .. err + end + + self.log.debug("daily image " .. labels.version .." was pushed at ", labels.created) + self.daily_image_desc = labels.version .. ", " .. labels.created + end + + local kong_conf = {} + kong_conf["pg_host"] = self.db_internal_ip + kong_conf["pg_password"] = PG_PASSWORD + kong_conf["pg_database"] = "kong_tests" + + local kong_conf_blob = "" + for k, v in pairs(kong_conf) do + kong_conf_blob = string.format("%s\n%s=%s\n", kong_conf_blob, k, v) + end + kong_conf_blob = ngx.encode_base64(kong_conf_blob):gsub("\n", "") + + _, err = execute_batch(self, nil, { + -- upload + git_repo_path and ("(cd " .. git_repo_path .. " && tar zc kong) | " .. ssh_execute_wrap(self, self.kong_ip, + "sudo tar zx -C /usr/local/share/lua/5.1; sudo find /usr/local/share/lua/5.1/kong -name '*.ljbc' -delete; true")) + or "echo use stock files", + git_repo_path and (ssh_execute_wrap(self, self.kong_ip, + "sudo cp -r /usr/local/share/lua/5.1/kong/include/. /usr/local/kong/include/ && sudo chmod 777 -R /usr/local/kong/include/ || true")) + or "echo use stock files", + git_repo_path and ("(cd " .. git_repo_path .. " && tar zc plugins-ee/*/kong/plugins/* --transform='s,plugins-ee/[^/]*/kong,kong,') | " .. + ssh_execute_wrap(self, self.kong_ip, "sudo tar zx -C /usr/local/share/lua/5.1")) + or "echo use stock files", + -- run migrations with default configurations + ssh_execute_wrap(self, self.kong_ip, + "sudo mkdir -p /etc/kong"), + ssh_execute_wrap(self, self.kong_ip, + "echo " .. kong_conf_blob .. " | base64 -d | sudo tee /etc/kong/kong.conf"), + ssh_execute_wrap(self, self.kong_ip, + "sudo kong migrations bootstrap"), + ssh_execute_wrap(self, self.kong_ip, + "sudo kong migrations up -y || true"), + ssh_execute_wrap(self, self.kong_ip, + "sudo kong migrations finish -y || true"), + }) + if err then + return false, err + end + + self.setup_kong_called = true + + return prepare_spec_helpers(self, git_repo_path, version) +end + +function _M:start_kong(kong_conf, driver_conf) + if not self.setup_kong_called then + return false, "setup_kong() must be called before start_kong()" + end + + local kong_name = driver_conf and driver_conf.name or "default" + local prefix = "/usr/local/kong_" .. kong_name + local conf_path = "/etc/kong/" .. kong_name .. ".conf" + + kong_conf = kong_conf or {} + kong_conf["prefix"] = kong_conf["prefix"] or prefix + kong_conf["pg_host"] = kong_conf["pg_host"] or self.db_internal_ip + kong_conf["pg_password"] = kong_conf["pg_password"] or PG_PASSWORD + kong_conf["pg_database"] = kong_conf["pg_database"] or "kong_tests" + + kong_conf['proxy_access_log'] = kong_conf['proxy_access_log'] or "/dev/null" + kong_conf['proxy_error_log'] = kong_conf['proxy_error_log'] or KONG_ERROR_LOG_PATH + kong_conf['admin_error_log'] = kong_conf['admin_error_log'] or KONG_ERROR_LOG_PATH + + KONG_ADMIN_PORT = 39001 + kong_conf['admin_listen'] = kong_conf['admin_listen'] or ("0.0.0.0:" .. KONG_ADMIN_PORT) + kong_conf['vitals'] = kong_conf['vitals'] or "off" + kong_conf['anonymous_reports'] = kong_conf['anonymous_reports'] or "off" + if not kong_conf['cluster_cert'] then + kong_conf['cluster_cert'] = KONG_DEFAULT_HYBRID_CERT + kong_conf['cluster_cert_key'] = KONG_DEFAULT_HYBRID_CERT_KEY + end + + local kong_license_blob = "" + if kong_conf['license_data'] then + kong_license_blob = kong_conf['license_data'] + kong_conf['license_data'] = nil + end + + local kong_conf_blob = "" + for k, v in pairs(kong_conf) do + kong_conf_blob = string.format("%s\n%s=%s\n", kong_conf_blob, k, v) + end + kong_conf_blob = ngx.encode_base64(kong_conf_blob):gsub("\n", "") + kong_license_blob = ngx.encode_base64(kong_license_blob) + + local _, err = execute_batch(self, self.kong_ip, { + "mkdir -p /etc/kong || true", + "echo " .. kong_conf_blob .. " | base64 -d | sudo tee " .. conf_path, + "echo " .. kong_license_blob .. " | base64 -d | sudo tee /etc/kong/license.json", + "sudo rm -rf " .. prefix .. " && sudo mkdir -p " .. prefix .. " && sudo chown kong:kong -R " .. prefix, + "sudo kong check " .. conf_path, + string.format("sudo kong migrations up -y -c %s || true", conf_path), + string.format("sudo kong migrations finish -y -c %s || true", conf_path), + string.format("ulimit -n 655360; sudo kong start -c %s || sudo kong restart -c %s", conf_path, conf_path), + -- set mapping of kong name to IP for use like Hybrid mode + "grep -q 'START PERF HOSTS' /etc/hosts || (echo '## START PERF HOSTS' | sudo tee -a /etc/hosts)", + "echo " .. self.kong_internal_ip .. " " .. kong_name .. " | sudo tee -a /etc/hosts", + }) + if err then + return false, err + end + + return true +end + +function _M:stop_kong() + local load, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, + "cat /proc/loadavg")) + if err then + self.log.err("failed to get loadavg: " .. err) + end + + self.log.debug("Kong node end 1m loadavg is ", load:match("[%d%.]+")) + + return execute_batch(self, self.kong_ip, { + "sudo pkill -kill nginx", + "sudo sed '/START PERF HOSTS/Q' -i /etc/hosts", + }) +end + +function _M:get_start_load_cmd(stub, script, uri) + if not uri then + uri = string.format("http://%s:8000", self.kong_internal_ip) + end + + local script_path + if script then + script_path = string.format("/tmp/wrk-%s.lua", tools.random_string()) + local out, err = perf.execute( + ssh_execute_wrap(self, self.worker_ip, "tee " .. script_path), + { + stdin = script, + }) + if err then + return false, "failed to write script in remote machine: " .. (out or err) + end + end + + script_path = script_path and ("-s " .. script_path) or "" + + local nproc, err + -- find the physical cores count, instead of counting hyperthreading + nproc, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, [[grep '^cpu\scores' /proc/cpuinfo | uniq | awk '{print $4}']])) + if not nproc or err then + return false, "failed to get core count: " .. (err or "") + end + + if not tonumber(nproc) then + return false, "failed to get core count: " .. (nproc or "") + end + nproc = tonumber(nproc) + + local loadavg + + while true do + loadavg, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, + "cat /proc/loadavg")) + if not loadavg or err then + self.log.err("failed to get loadavg: ", (err or "")) + goto continue + end + + loadavg = loadavg:match("[%d%.]+") + if not loadavg or not tonumber(loadavg) then + self.log.err("failed to get loadavg: ", loadavg or "nil") + goto continue + end + loadavg = tonumber(loadavg) + + local load_normalized = loadavg / nproc + if load_normalized < LOAD_NORMALIZED_THRESHOLD then + break + end + + self.log.info("waiting for Kong node 1m loadavg to drop under ", + nproc * LOAD_NORMALIZED_THRESHOLD, ", now: ", loadavg) + ngx.sleep(15) + + ::continue:: + end + self.log.debug("Kong node start 1m loadavg is ", loadavg) + + return ssh_execute_wrap(self, self.worker_ip, + stub:format(script_path, uri)) +end + +function _M:get_admin_uri(kong_name) + return string.format("http://%s:%s", self.kong_internal_ip, get_admin_port(self, kong_name)) +end + +local function check_systemtap_sanity(self) + local _, err + _, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, "which stap")) + if err then + _, err = execute_batch(self, self.kong_ip, { + "sudo DEBIAN_FRONTEND=\"noninteractive\" apt-get install g++ libelf-dev libdw-dev libssl-dev libsqlite3-dev libnss3-dev pkg-config python3 make -y --force-yes", + "wget https://sourceware.org/systemtap/ftp/releases/systemtap-4.6.tar.gz -O systemtap.tar.gz", + "tar xf systemtap.tar.gz", + "cd systemtap-*/ && " .. + "./configure --enable-sqlite --enable-bpf --enable-nls --enable-nss --enable-avahi && " .. + "make PREFIX=/usr -j$(nproc) && ".. + "sudo make install" + }) + if err then + return false, "failed to build systemtap: " .. err + end + end + + _, err = execute_batch(self, self.kong_ip, { + "sudo DEBIAN_FRONTEND=\"noninteractive\" apt-get install gcc linux-headers-$(uname -r) -y --force-yes", + "which stap", + "stat /tmp/stapxx || git clone https://github.com/Kong/stapxx /tmp/stapxx", + "stat /tmp/perf-ost || git clone https://github.com/openresty/openresty-systemtap-toolkit /tmp/perf-ost", + "stat /tmp/perf-fg || git clone https://github.com/brendangregg/FlameGraph /tmp/perf-fg" + }) + if err then + return false, err + end + + -- try compile the kernel module + local out + out, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, + "sudo stap -ve 'probe begin { print(\"hello\\n\"); exit();}'")) + if err then + return nil, "systemtap failed to compile kernel module: " .. (out or "nil") .. + " err: " .. (err or "nil") .. "\n Did you install gcc and kernel headers?" + end + + return true +end + +function _M:get_start_stapxx_cmd(sample, args, driver_conf) + if not self.systemtap_sanity_checked then + local ok, err = check_systemtap_sanity(self) + if not ok then + return nil, err + end + self.systemtap_sanity_checked = true + end + + -- find one of kong's child process hopefully it's a worker + -- (does kong have cache loader/manager?) + local kong_name = driver_conf and driver_conf.name or "default" + local prefix = "/usr/local/kong_" .. kong_name + local pid, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, + "pid=$(cat " .. prefix .. "/pids/nginx.pid); " .. + "cat /proc/$pid/task/$pid/children | awk '{print $1}'")) + if err or not tonumber(pid) then + return nil, "failed to get Kong worker PID: " .. (err or "nil") + end + + self.systemtap_dest_path = "/tmp/" .. tools.random_string() + return ssh_execute_wrap(self, self.kong_ip, + "sudo /tmp/stapxx/stap++ /tmp/stapxx/samples/" .. sample .. + " --skip-badvars -D MAXSKIPPED=1000000 -x " .. pid .. + " " .. args .. + " > " .. self.systemtap_dest_path .. ".bt" + ) +end + +function _M:get_wait_stapxx_cmd(timeout) + return ssh_execute_wrap(self, self.kong_ip, "lsmod | grep stap_") +end + +function _M:generate_flamegraph(title, opts) + local path = self.systemtap_dest_path + self.systemtap_dest_path = nil + + local out, err = perf.execute(ssh_execute_wrap(self, self.kong_ip, "cat " .. path .. ".bt")) + if err or #out == 0 then + return nil, "systemtap output is empty, possibly no sample are captured" + end + + local ok, err = execute_batch(self, self.kong_ip, { + -- if there's any error like ee with compiled bytecode, skip fix-lua-bt + "/tmp/perf-ost/fix-lua-bt " .. path .. ".bt > " .. path .. ".fbt || true", + "stat " .. path .. ".fbt || cp " .. path .. ".bt " .. path .. ".fbt", + "/tmp/perf-fg/stackcollapse-stap.pl " .. path .. ".fbt > " .. path .. ".cbt", + "/tmp/perf-fg/flamegraph.pl --title='" .. title .. "' " .. (opts or "") .. " " .. path .. ".cbt > " .. path .. ".svg", + }) + if not ok then + return false, err + end + + local out, _ = perf.execute(ssh_execute_wrap(self, self.kong_ip, "cat " .. path .. ".svg")) + + perf.execute(ssh_execute_wrap(self, self.kong_ip, "sudo rm -v " .. path .. ".*"), + { logger = self.ssh_log.log_exec }) + + return out +end + +function _M:save_error_log(path) + return perf.execute(ssh_execute_wrap(self, self.kong_ip, + "cat " .. KONG_ERROR_LOG_PATH) .. " >'" .. path .. "'", + { logger = self.ssh_log.log_exec }) +end + +function _M:save_pgdump(path) + return perf.execute(ssh_execute_wrap(self, self.kong_ip, + "sudo docker exec -i kong-database psql -Ukong kong_tests --data-only") .. " >'" .. path .. "'", + { logger = self.ssh_log.log_exec }) +end + +function _M:load_pgdump(path, dont_patch_service) + local _, err = perf.execute("cat " .. path .. "| " .. ssh_execute_wrap(self, self.kong_ip, + "sudo docker exec -i kong-database psql -Ukong kong_tests"), + { logger = self.ssh_log.log_exec }) + if err then + return false, err + end + + if dont_patch_service then + return true + end + + return perf.execute("echo \"UPDATE services set host='" .. self.worker_ip .. + "', port=" .. UPSTREAM_PORT .. + ", protocol='http';\" | " .. + ssh_execute_wrap(self, self.kong_ip, + "sudo docker exec -i kong-database psql -Ukong kong_tests"), + { logger = self.ssh_log.log_exec }) +end + +function _M:get_based_version() + return self.daily_image_desc or perf.get_kong_version() +end + +return _M diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/git.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf/git.lua new file mode 100644 index 00000000..03553e48 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/git.lua @@ -0,0 +1,106 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local perf +local logger = require("spec.helpers.perf.logger") +local utils = require("spec.helpers.perf.utils") + +local my_logger = logger.new_logger("[git]") + +local git_temp_repo = "/tmp/perf-temp-repo" + +local function is_git_repo() + -- reload the perf module, for circular dependency issue + perf = require("spec.helpers.perf") + + local _, err = perf.execute("git rev-parse HEAD") + return err == nil +end + +-- is this test based on git versions: e.g. have we git checkout versions? +local function is_git_based() + return package.path:find(git_temp_repo) +end + +local function git_checkout(version) + -- reload the perf module, for circular dependency issue + perf = require("spec.helpers.perf") + + local _, err = perf.execute("which git") + if err then + error("git binary not found") + end + + if not is_git_repo() then + error("not in a git repo") + end + + for _, cmd in ipairs({ + "rm -rf " .. git_temp_repo, + "git clone . " .. git_temp_repo, + "cp -r .git/refs/ " .. git_temp_repo .. "/.git/.", -- copy refs + -- version is sometimes a hash so we can't always use -b + "cd " .. git_temp_repo .. " && git checkout " ..version + }) do + local _, err = perf.execute(cmd, { logger = my_logger.log_exec }) + if err then + error("error preparing temporary repo: " .. err) + end + end + + utils.add_lua_package_paths(git_temp_repo) + + return git_temp_repo +end + +local function git_restore() + return utils.restore_lua_package_paths() +end + +local ee_version_suffix_old = "-dev-enterprise-edition" -- pre 3.0 suffix +local ee_version_suffix = "-enterprise-edition" + +local version_map_table = { + -- temporary hack, fallback to previous version of artifact + -- if current version is not released yet + ["3.1.0.0"] = "3.0.0.0", +} + +local alpha_pattern = "(.+)-alpha" -- new version format starting 3.0.0 + +local function get_kong_version(raw) + -- unload the module if it's previously loaded + package.loaded["kong.meta"] = nil + package.loaded["kong.enterprise_edition.meta"] = nil + + local ok, meta, _ = pcall(require, "kong.meta") + + if ok then + local v = meta._VERSION + v = string.match(v, alpha_pattern) or v + + if v:endswith(ee_version_suffix_old) then + v = v:sub(1, #v-#ee_version_suffix_old) + elseif v:endswith(ee_version_suffix) then + v = v:sub(1, #v-#ee_version_suffix) + end + if not raw and version_map_table[v] then + return version_map_table[v] + end + return v + end + error("can't read Kong version from kong.meta: " .. (meta or "nil")) +end + + +return { + is_git_repo = is_git_repo, + is_git_based = is_git_based, + git_checkout = git_checkout, + git_restore = git_restore, + get_kong_version = get_kong_version, +} diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/logger.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf/logger.lua new file mode 100644 index 00000000..46b9ac37 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/logger.lua @@ -0,0 +1,69 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local tty = require("kong.cmd.utils.tty") + +local colors + +if not tty.isatty then + colors = setmetatable({}, {__index = function() return "" end}) +else + colors = { green = '\27[32m', yellow = '\27[33m', red = '\27[31m', reset = '\27[0m' } +end + +local LOG_LEVEL = ngx.NOTICE + +-- Some logging helpers +local level_cfg = { + [ngx.DEBUG] = { "debug", colors.green }, + [ngx.INFO] = { "info", "" }, + [ngx.NOTICE] = { "notice", "" }, + [ngx.WARN] = { "warn", colors.yellow }, + [ngx.ERR] = { "error", colors.red }, + [ngx.CRIT] = { "crit", colors.red }, +} + +local function set_log_level(lvl) + if not level_cfg[lvl] then + error("Unknown log level ", lvl, 2) + end + LOG_LEVEL = lvl +end + +local function log(lvl, namespace, ...) + lvl = lvl or ngx.INFO + local lvl_literal, lvl_color = unpack(level_cfg[lvl] or {"info", ""}) + if lvl <= LOG_LEVEL then + ngx.update_time() + local msec = ngx.now() + print(lvl_color, + ("%s%s %8s %s "):format( + ngx.localtime():sub(12), + ("%.3f"):format(msec - math.floor(msec)):sub(2), + ("[%s]"):format(lvl_literal), namespace + ), + table.concat({...}, ""), + colors.reset) + end +end +local function new_logger(namespace) + return setmetatable({ + debug = function(...) log(ngx.DEBUG, namespace, ...) end, + info = function(...) log(ngx.INFO, namespace, ...) end, + warn = function(...) log(ngx.WARN, namespace, ...) end, + err = function(...) log(ngx.ERR, namespace, ...) end, + crit = function(...) log(ngx.CRIT, namespace, ...) end, + log_exec = function(...) log(ngx.DEBUG, namespace, "=> ", ...) end, + }, { + __call = function(self, lvl, ...) log(lvl, namespace, ...) end, + }) +end + +return { + new_logger = new_logger, + set_log_level = set_log_level, +} \ No newline at end of file diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/perf/utils.lua b/kong-versions/3.2.2.4/kong/spec/helpers/perf/utils.lua new file mode 100644 index 00000000..e1f6822b --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/perf/utils.lua @@ -0,0 +1,257 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ngx_pipe = require("ngx.pipe") +local ffi = require("ffi") +local cjson_safe = require("cjson.safe") +local logger = require("spec.helpers.perf.logger") + +local log = logger.new_logger("[controller]") +local DISABLE_EXEC_OUTPUT = os.getenv("PERF_TEST_DISABLE_EXEC_OUTPUT") or false + +string.startswith = function(s, start) -- luacheck: ignore + return s and start and start ~= "" and s:sub(1, #start) == start +end + +string.endswith = function(s, e) -- luacheck: ignore + return s and e and e ~= "" and s:sub(#s-#e+1, #s) == e +end + +--- Spawns a child process and get its exit code and outputs +-- @param opts.stdin string the stdin buffer +-- @param opts.logger function(lvl, _, line) stdout+stderr writer; if not defined, whole +-- stdout and stderr is returned +-- @param opts.stop_signal function return true to abort execution +-- @return stdout+stderr string, err|nil +local function execute(cmd, opts) + local log_output = opts and opts.logger + + -- skip if PERF_TEST_DISABLE_EXEC_OUTPUT is set + if not DISABLE_EXEC_OUTPUT then + -- fallback to default logger if not defined + log_output = log_output or log.debug + log_output("[exec]: ", cmd) + end + + local proc, err = ngx_pipe.spawn(cmd, { + merge_stderr = true, + }) + if not proc then + return "", "failed to start process: " .. err + end + + -- set stdout/stderr read timeout to 1s for faster noticing process exit + -- proc:set_timeouts(write_timeout?, stdout_read_timeout?, stderr_read_timeout?, wait_timeout?) + proc:set_timeouts(nil, 1000, 1000, nil) + if opts and opts.stdin then + proc:write(opts.stdin) + end + proc:shutdown("stdin") + + local ret = {} + + while true do + -- is it alive? + local ok = proc:kill(0) + if not ok then + break + end + + local l, err = proc:stdout_read_line() + if l then + if log_output then + log_output(l) + end + + -- always store output + table.insert(ret, l) + end + if err == "closed" then + break + end + local sig = opts and opts.stop_signal and opts.stop_signal() + if sig then + proc:kill(sig) + break + end + end + local ok, msg, code = proc:wait() + ok = ok and code == 0 + ret = table.concat(ret, "\n") + if ok then + return ret + end + + return ret, ("process exited with code %s: %s"):format(code, msg) +end + +--- Execute a command and return until pattern is found in its output +-- @function wait_output +-- @param cmd string the command the execute +-- @param pattern string the pattern to find in stdout and stderr +-- @param timeout number time in seconds to wait for the pattern +-- @return bool whether the pattern is found +local function wait_output(cmd, pattern, timeout) + timeout = timeout or 5 + local found + local co = coroutine.create(function() + while not found do + local line = coroutine.yield("yield") + if line:match(pattern) then + found = true + end + end + end) + + -- start + coroutine.resume(co) + + -- don't kill it, it me finish by itself + ngx.thread.spawn(function() + execute(cmd, { + logger = function(line) + return coroutine.running(co) and coroutine.resume(co, line) + end, + stop_signal = function() if found then return 9 end end, + }) + end) + + ngx.update_time() + local s = ngx.now() + while not found and ngx.now() - s <= timeout do + ngx.update_time() + ngx.sleep(0.1) + end + + return found +end + +ffi.cdef [[ + int setenv(const char *name, const char *value, int overwrite); + int unsetenv(const char *name); +]] + +--- Set an environment variable +-- @function setenv +-- @param env (string) name of the environment variable +-- @param value the value to set +-- @return true on success, false otherwise +local function setenv(env, value) + return ffi.C.setenv(env, value, 1) == 0 +end + + +--- Unset an environment variable +-- @function setenv +-- @param env (string) name of the environment variable +-- @return true on success, false otherwise +local function unsetenv(env) + return ffi.C.unsetenv(env) == 0 +end + +local handler = require("busted.outputHandlers.base")() +local current_test_element + +local function register_busted_hook() + local busted = require("busted") + + handler.testStart = function(element, parent) + current_test_element = element + end + + busted.subscribe({'test', 'start'}, handler.testStart) +end + +local function get_test_descriptor(sanitized, element_override) + local elem = current_test_element or element_override + if elem then + local msg = handler.getFullName(elem) + local common_prefix = "perf test for Kong " + if msg:startswith(common_prefix) then + msg = msg:sub(#common_prefix+1) + end + if sanitized then + msg = msg:gsub("[:/]", "#"):gsub("[ ,]", "_"):gsub("__", "_") + end + return msg + end +end + +local function get_test_output_filename() + return get_test_descriptor(true) +end + +local function parse_docker_image_labels(docker_inspect_output) + local m, err = cjson_safe.decode(docker_inspect_output) + if err then + return nil, err + end + + local labels = m[1].Config.Labels or {} + labels.version = labels["org.opencontainers.image.version"] or "unknown_version" + labels.revision = labels["org.opencontainers.image.revision"] or "unknown_revision" + labels.created = labels["org.opencontainers.image.created"] or "unknown_created" + return labels +end + +local original_lua_package_paths = package.path +local function add_lua_package_paths(d) + d = d or "." + local pp = d .. "/?.lua;" .. + d .. "/?/init.lua;" + local pl_dir = require("pl.dir") + local pl_path = require("pl.path") + if pl_path.isdir(d .. "/plugins-ee") then + for _, p in ipairs(pl_dir.getdirectories(d .. "/plugins-ee")) do + pp = pp.. p .. "/?.lua;".. + p .. "/?/init.lua;" + end + end + package.path = pp .. ";" .. original_lua_package_paths +end + +local function restore_lua_package_paths() + package.path = original_lua_package_paths +end + +-- clear certain packages to allow spec.helpers to be re-imported +-- those modules are only needed to run migrations in the "controller" +-- and won't affect kong instances performing tests +local function clear_loaded_package() + for _, p in ipairs({ + "spec.helpers", "resty.worker.events", "kong.cluster_events", + "kong.global", "kong.constants", + "kong.meta", "kong.enterprise_edition.meta", + "kong.cache", "kong.db", "kong.plugins", "kong.pdk", "kong.enterprise_edition.pdk", + }) do + package.loaded[p] = nil + end +end + +local function print_and_save(s, path) + os.execute("mkdir -p output") + print(s) + local f = io.open(path or "output/result.txt", "a") + f:write(s) + f:write("\n") + f:close() +end + +return { + execute = execute, + wait_output = wait_output, + setenv = setenv, + unsetenv = unsetenv, + register_busted_hook = register_busted_hook, + get_test_descriptor = get_test_descriptor, + get_test_output_filename = get_test_output_filename, + parse_docker_image_labels = parse_docker_image_labels, + add_lua_package_paths = add_lua_package_paths, + restore_lua_package_paths = restore_lua_package_paths, + clear_loaded_package = clear_loaded_package, + print_and_save = print_and_save, +} diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/ssl.lua b/kong-versions/3.2.2.4/kong/spec/helpers/ssl.lua new file mode 100644 index 00000000..52caed61 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/ssl.lua @@ -0,0 +1,282 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local ffi = require "ffi" +local C = ffi.C +local bit = require "bit" +local format_error = require("resty.openssl.err").format_error +local BORINGSSL = require("resty.openssl.version").BORINGSSL +require "resty.openssl.include.ssl" + +ffi.cdef [[ + typedef struct ssl_method_st SSL_METHOD; + const SSL_METHOD *TLS_method(void); + const SSL_METHOD *TLS_server_method(void); + + SSL_CTX *SSL_CTX_new(const SSL_METHOD *method); + void SSL_CTX_free(SSL_CTX *ctx); + + int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); + int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); + + SSL *SSL_new(SSL_CTX *ctx); + void SSL_free(SSL *s); + + long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); + long SSL_set_mode(SSL *ssl, long mode); + + int SSL_set_fd(SSL *ssl, int fd); + + void SSL_set_accept_state(SSL *ssl); + + int SSL_do_handshake(SSL *ssl); + int SSL_get_error(const SSL *ssl, int ret); + + int SSL_read(SSL *ssl, void *buf, int num); + int SSL_write(SSL *ssl, const void *buf, int num); + int SSL_shutdown(SSL *ssl); + + + typedef struct pollfd { + int fd; /* file descriptor */ + short events; /* requested events */ + short revents; /* returned events */ + } pollfd; + + int poll(struct pollfd *fds, unsigned long nfds, int timeout); +]] + + +local SSL = {} +local ssl_mt = { __index = SSL } + +local modes = { + SSL_MODE_ENABLE_PARTIAL_WRITE = 0x001, + SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER = 0x002, + SSL_MODE_AUTO_RETRY = 0x004, + SSL_MODE_NO_AUTO_CHAIN = 0x008, + SSL_MODE_RELEASE_BUFFERS = 0x010, + SSL_MODE_SEND_CLIENTHELLO_TIME = 0x020, + SSL_MODE_SEND_SERVERHELLO_TIME = 0x040, + SSL_MODE_SEND_FALLBACK_SCSV = 0x080, + SSL_MODE_ASYNC = 0x100, + SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG = 0x400, +} + +local errors = { + SSL_ERROR_NONE = 0, + SSL_ERROR_SSL = 1, + SSL_ERROR_WANT_READ = 2, + SSL_ERROR_WANT_WRITE = 3, + SSL_ERROR_WANT_X509_LOOKUP = 4, + SSL_ERROR_SYSCALL = 5, + SSL_ERROR_ZERO_RETURN = 6, + SSL_ERROR_WANT_CONNECT = 7, + SSL_ERROR_WANT_ACCEPT = 8, + SSL_ERROR_WANT_ASYNC = 9, + SSL_ERROR_WANT_ASYNC_JOB = 10, + SSL_ERROR_WANT_CLIENT_HELLO_CB = 11, + SSL_ERROR_WANT_RETRY_VERIFY = 12, +} + +local errors_literal = {} +for k, v in pairs(errors) do + errors_literal[v] = k +end + +local SOCKET_INVALID = -1 + + +local ssl_set_mode +if BORINGSSL then + ssl_set_mode = function(...) return C.SSL_set_mode(...) end +else + local SSL_CTRL_MODE = 33 + ssl_set_mode = function(ctx, mode) return C.SSL_ctrl(ctx, SSL_CTRL_MODE, mode, nil) end +end + +local SSL_FILETYPE_PEM = 1 + +local function ssl_ctx_new(cfg) + if cfg.protocol and cfg.protocol ~= "any" then + return nil, "protocol other than 'any' is currently not supported" + elseif cfg.mode and cfg.mode ~= "server" then + return nil, "mode other than 'server' is currently not supported" + end + cfg.protocol = nil + cfg.mode = nil + + local ctx = C.SSL_CTX_new(C.TLS_server_method()) + if ctx == nil then + return nil, format_error("SSL_CTX_new") + end + ffi.gc(ctx, C.SSL_CTX_free) + + for k, v in pairs(cfg) do + if k == "certificate" then + if C.SSL_CTX_use_certificate_chain_file(ctx, v) ~= 1 then + return nil, format_error("SSL_CTX_use_certificate_chain_file") + end + elseif k == "key" then -- password protected key is NYI + if C.SSL_CTX_use_PrivateKey_file(ctx, v, SSL_FILETYPE_PEM) ~= 1 then + return nil, format_error("SSL_CTX_use_PrivateKey_file") + end + else + return nil, "unknown option \"" .. k .. "\"" + end + end + + return ctx +end + +local function ssl_new(ssl_ctx) + if not ssl_ctx or not ffi.istype("SSL_CTX*", ssl_ctx) then + return nil, "ssl_new: expect SSL_CTX* as first argument" + end + + local ctx = C.SSL_new(ssl_ctx) + if ctx == nil then + return nil, format_error("SSL_new") + end + ffi.gc(ctx, C.SSL_free) + + C.SSL_set_fd(ctx, SOCKET_INVALID) + ssl_set_mode(ctx, bit.bor(modes.SSL_MODE_ENABLE_PARTIAL_WRITE, + modes.SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER)) + ssl_set_mode(ctx, modes.SSL_MODE_RELEASE_BUFFERS) + + C.SSL_set_accept_state(ctx) -- me is server + + return ctx +end + +function SSL.wrap(sock, cfg) + local ctx, err + if type(cfg) == "table" then + ctx, err = ssl_ctx_new(cfg) + if not ctx then return nil, err end + else + ctx = cfg + end + local s, err = ssl_new(ctx) + if s then + local fd = sock:getfd() + C.SSL_set_fd(s, fd) + sock:setfd(SOCKET_INVALID) + + local self = setmetatable({ + ssl_ctx = ctx, + ctx = s, + fd = fd, + }, ssl_mt) + + return self, nil + end + return nil, err +end + +local function socket_waitfd(fd, events, timeout) + local pfd = ffi.new("pollfd") + pfd.fd = fd + pfd.events = events + pfd.revents = 0 + local ppfd = ffi.new("pollfd[1]", pfd) + + local wait = timeout and 1 or -1 + + while true do + local ret = C.poll(ppfd, 1, wait) + timeout = timeout and timeout - 1 + if ret ~= -1 then + break + end + end +end + +local POLLIN = 1 +local POLLOUT = 2 + +local function handle_ssl_io(self, cb, ...) + local err, code + while true do + err = cb(self.ctx, ...) + code = C.SSL_get_error(self.ctx, err) + if code == errors.SSL_ERROR_NONE then + break + elseif code == errors.SSL_ERROR_WANT_READ then + err = socket_waitfd(self.fd, POLLIN, 10) + if err then return nil, "want read: " .. err end + elseif code == errors.SSL_ERROR_WANT_WRITE then + err = socket_waitfd(self.fd, POLLOUT, 10) + if err then return nil, "want write: " .. err end + elseif code == errors.SSL_ERROR_SYSCALL then + if err == 0 then + return nil, "closed" + end + if C.ERR_peek_error() then + return nil, format_error("SSL_ERROR_SYSCALL") + end + else + return nil, errors_literal[code] or "unknown error" + end + end +end + +function SSL:dohandshake() + return handle_ssl_io(self, C.SSL_do_handshake) +end + + +function SSL:receive(pattern) + if pattern and pattern ~= "*l" then + return nil, "receive pattern other than '*l' is currently not supported" + end + + local buf = ffi.new("char[1024]") + local ret = "" + + while true do + local ok, err = handle_ssl_io(self, C.SSL_read, ffi.cast("void *", buf), 1024) + if err then + if err == "SSL_ERROR_ZERO_RETURN" then + err = "closed" + end + return ok, err + end + + local current = ffi.string(buf) + -- do we need to find \r? + local pos = current:find("\n") + if pos then -- found a newline + ret = ret .. current:sub(1, pos-1) + break + else + ret = ret .. current + end + end + + return ret +end + +function SSL:send(s) + local buf = ffi.new("char[?]", #s+1, s) + local ok, err = handle_ssl_io(self, C.SSL_write, ffi.cast("void *", buf), #s) + if err then + return ok, err + end + + return true +end + +function SSL:close() + if C.SSL_shutdown(self.ctx) ~= 1 then + return nil, format_error("SSL_shutdown") + end + return true +end + +return SSL diff --git a/kong-versions/3.2.2.4/kong/spec/helpers/wait.lua b/kong-versions/3.2.2.4/kong/spec/helpers/wait.lua new file mode 100644 index 00000000..3f641d51 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/helpers/wait.lua @@ -0,0 +1,473 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local say = require "say" +local luassert = require "luassert.assert" +local pretty = require "pl.pretty" + +local fmt = string.format +local insert = table.insert + +local E_ARG_COUNT = "assertion.internal.argtolittle" +local E_ARG_TYPE = "assertion.internal.badargtype" + + +---@alias spec.helpers.wait.ctx.result +---| "timeout" +---| "error" +---| "success" +---| "max tries" + +local TIMEOUT = "timeout" +local ERROR = "error" +local SUCCESS = "success" +local MAX_TRIES = "max tries" + + +---@alias spec.helpers.wait.ctx.condition +---| "truthy" +---| "falsy" +---| "error" +---| "no_error" + + +--- helper functions that check the result of pcall() and report if the +--- wait ctx condition has been met +--- +---@type table +local COND = { + truthy = function(pok, ok_or_err) + return (pok and ok_or_err and true) or false + end, + + falsy = function(pok, ok_or_err) + return (pok and not ok_or_err) or false + end, + + error = function(pok) + return not pok + end, + + no_error = function(pok) + return (pok and true) or false + end, +} + + +---@param ... any +---@return any +local function first_non_nil(...) + local n = select("#", ...) + for i = 1, n do + local v = select(i, ...) + if v ~= nil then + return v + end + end +end + + +---@param exp_type string +---@param field string|integer +---@param value any +---@param caller? string +---@param level? integer +---@return any +local function check_type(exp_type, field, value, caller, level) + caller = caller or "wait_until" + level = (level or 1) + 1 + + local got_type = type(value) + + -- accept callable tables + if exp_type == "function" + and got_type == "table" + and type(debug.getmetatable(value)) == "table" + and type(debug.getmetatable(value).__call) == "function" + then + got_type = "function" + end + + if got_type ~= exp_type then + error(say(E_ARG_TYPE, { field, caller, exp_type, type(value) }), + level) + end + + return value +end + + +local DEFAULTS = { + timeout = 5, + step = 0.05, + message = "UNSPECIFIED", + max_tries = 0, + ignore_exceptions = false, + condition = "truthy", +} + + +---@class spec.helpers.wait.ctx +--- +---@field condition "truthy"|"falsy"|"error"|"no_error" +---@field condition_met boolean +---@field debug? boolean +---@field elapsed number +---@field last_raised_error any +---@field error_raised boolean +---@field fn function +---@field ignore_exceptions boolean +---@field last_returned_error any +---@field last_returned_value any +---@field last_error any +---@field message? string +---@field result spec.helpers.wait.ctx.result +---@field step number +---@field timeout number +---@field tries number +local wait_ctx = { + condition = nil, + condition_met = false, + debug = nil, + elapsed = 0, + error = nil, + error_raised = false, + ignore_exceptions = nil, + last_returned_error = nil, + last_returned_value = nil, + max_tries = nil, + message = nil, + result = "timeout", + step = nil, + timeout = nil, + tries = 0, +} + + +local wait_ctx_mt = { __index = wait_ctx } + +function wait_ctx:dd(msg) + if self.debug then + print(fmt("\n\n%s\n\n", pretty.write(msg))) + end +end + + +function wait_ctx:wait() + ngx.update_time() + + local tstart = ngx.now() + local texp = tstart + self.timeout + local ok, res, err + + local is_met = COND[self.condition] + + if self.condition == "no_error" then + self.ignore_exceptions = true + end + + local tries_remain = self.max_tries + + local f = self.fn + + while true do + ok, res, err = pcall(f) + + self.tries = self.tries + 1 + tries_remain = tries_remain - 1 + + self.condition_met = is_met(ok, res) + + self:dd(self) + + -- yay! + if self.condition_met then + self.last_returned_value = res + self.result = SUCCESS + break + + -- non-truthy return value + elseif ok and not res then + self.last_returned_error = first_non_nil(err, self.last_returned_error) + self.last_error = self.last_returned_error + + -- error() + else + self.error_raised = true + self.last_raised_error = first_non_nil(res, "UNKNOWN") + self.last_error = self.last_raised_error + + if not self.ignore_exceptions then + self.result = ERROR + break + end + end + + if tries_remain == 0 then + self.result = MAX_TRIES + break + end + + ngx.update_time() + + if ngx.now() >= texp then + self.result = TIMEOUT + break + end + + ngx.sleep(self.step) + end + + ngx.update_time() + self.elapsed = ngx.now() - tstart + + self:dd(self) + + -- re-raise + if self.error_raised and not self.ignore_exceptions then + error(self.last_raised_error, 2) + end +end + + +local CTX_TYPES = { + condition = "string", + fn = "function", + max_tries = "number", + timeout = "number", + message = "string", + step = "number", + ignore_exceptions = "boolean", +} + + +function wait_ctx:validate(key, value, caller, level) + local typ = CTX_TYPES[key] + + if not typ then + -- we don't care about validating this key + return value + end + + if key == "condition" and type(value) == "string" then + assert(COND[value] ~= nil, + say(E_ARG_TYPE, { "condition", caller or "wait_until", + "one of: 'truthy', 'falsy', 'error', 'no_error'", + value }), level + 1) + end + + + return check_type(typ, key, value, caller, level) +end + + +---@param state table +---@return spec.helpers.wait.ctx +local function get_or_create_ctx(state) + local ctx = rawget(state, "wait_ctx") + + if not ctx then + ctx = setmetatable({}, wait_ctx_mt) + rawset(state, "wait_ctx", ctx) + end + + return ctx +end + + +---@param ctx spec.helpers.wait.ctx +---@param key string +---@param ... any +local function param(ctx, key, ...) + local value = first_non_nil(first_non_nil(...), DEFAULTS[key]) + ctx[key] = ctx:validate(key, value, "wait_until", 3) +end + + +---@param state table +---@param arguments table +---@param level integer +---@return boolean ok +---@return table return_values +local function wait_until(state, arguments, level) + assert(arguments.n > 0, + say(E_ARG_COUNT, { "wait_until", 1, arguments.n }), + level + 1) + + local input = check_type("table", 1, arguments[1]) + local ctx = get_or_create_ctx(state) + + param(ctx, "fn", input.fn) + param(ctx, "timeout", input.timeout) + param(ctx, "step", input.step) + param(ctx, "message", input.message, arguments[2]) + param(ctx, "max_tries", input.max_tries) + param(ctx, "debug", input.debug, ctx.debug, false) + param(ctx, "condition", input.condition) + param(ctx, "ignore_exceptions", input.ignore_exceptions) + + -- reset the state + rawset(state, "wait_ctx", nil) + + ctx:wait() + + if ctx.condition_met then + return true, { ctx.last_returned_value, n = 1 } + end + + local errors = {} + local result + if ctx.result == ERROR then + result = "error() raised" + + elseif ctx.result == MAX_TRIES then + result = ("max tries (%s) reached"):format(ctx.max_tries) + + elseif ctx.result == TIMEOUT then + result = ("timed out after %ss"):format(ctx.elapsed) + end + + if ctx.last_raised_error then + insert(errors, "Last raised error:") + insert(errors, "") + insert(errors, pretty.write(ctx.last_raised_error)) + insert(errors, "") + end + + if ctx.last_returned_error then + insert(errors, "Last returned error:") + insert(errors, "") + insert(errors, pretty.write(ctx.last_returned_error)) + insert(errors, "") + end + + arguments[1] = ctx.message + arguments[2] = result + arguments[3] = table.concat(errors, "\n") + arguments[4] = ctx.timeout + arguments[5] = ctx.step + arguments[6] = ctx.elapsed + arguments[7] = ctx.tries + arguments[8] = ctx.error_raised + arguments.n = 8 + + arguments.nofmt = {} + for i = 1, arguments.n do + arguments.nofmt[i] = true + end + + return false, { ctx.last_error, n = 1 } +end + + +say:set("assertion.wait_until.failed", [[ +Failed to assert eventual condition: + +%q + +Result: %s + +%s +--- + +Timeout = %s +Step = %s +Elapsed = %s +Tries = %s +Raised = %s +]]) + +luassert:register("assertion", "wait_until", wait_until, + "assertion.wait_until.failed") + + +local function wait_until_modifier(key) + return function(state, arguments) + local ctx = get_or_create_ctx(state) + ctx[key] = ctx:validate(key, arguments[1], key, 1) + + return state + end +end + +luassert:register("modifier", "with_timeout", + wait_until_modifier("timeout")) + +luassert:register("modifier", "with_step", + wait_until_modifier("step")) + +luassert:register("modifier", "with_max_tries", + wait_until_modifier("max_tries")) + +-- luassert blows up on us if we try to use 'error' or 'errors' +luassert:register("modifier", "ignore_exceptions", + wait_until_modifier("ignore_exceptions")) + + +---@param ctx spec.helpers.wait.ctx +local function ctx_builder(ctx) + local self = setmetatable({}, { + __index = function(_, key) + error("unknown modifier/assertion: " .. tostring(key), 2) + end + }) + + local function with(field) + return function(value) + ctx[field] = ctx:validate(field, value, "with_" .. field, 2) + return self + end + end + + self.with_timeout = with("timeout") + self.with_step = with("step") + self.with_max_tries = with("max_tries") + + self.ignore_exceptions = function(ignore) + ctx.ignore_exceptions = ctx:validate("ignore_exceptions", ignore, + "ignore_exceptions", 2) + return self + end + + self.is_truthy = function(msg) + ctx.condition = "truthy" + return luassert.wait_until(ctx, msg) + end + + self.is_falsy = function(msg) + ctx.condition = "falsy" + return luassert.wait_until(ctx, msg) + end + + self.has_error = function(msg) + ctx.condition = "error" + return luassert.wait_until(ctx, msg) + end + + self.has_no_error = function(msg) + ctx.condition = "no_error" + return luassert.wait_until(ctx, msg) + end + + return self +end + + +local function eventually(state, arguments) + local ctx = get_or_create_ctx(state) + + ctx.fn = first_non_nil(arguments[1], ctx.fn) + + check_type("function", 1, ctx.fn, "eventually") + + arguments[1] = ctx_builder(ctx) + arguments.n = 1 + + return true, arguments +end + +luassert:register("assertion", "eventually", eventually) diff --git a/kong-versions/3.2.2.4/kong/spec/kong_tests.conf b/kong-versions/3.2.2.4/kong/spec/kong_tests.conf new file mode 100644 index 00000000..e7a44445 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/kong_tests.conf @@ -0,0 +1,69 @@ +# 1st digit is 9 for our test instances +admin_api_uri = 127.0.0.1:9001 +admin_listen = 127.0.0.1:9001 +admin_gui_listen = off +enforce_rbac = off +proxy_listen = 0.0.0.0:9000, 0.0.0.0:9443 http2 ssl, 0.0.0.0:9002 http2, 0.0.0.0:9445 http2 ssl +stream_listen = off + +ssl_cert = spec/fixtures/kong_spec.crt +ssl_cert_key = spec/fixtures/kong_spec.key + +admin_ssl_cert = spec/fixtures/kong_spec.crt +admin_ssl_cert_key = spec/fixtures/kong_spec.key + +admin_gui_ssl_cert = spec/fixtures/kong_spec.crt +admin_gui_ssl_cert_key = spec/fixtures/kong_spec.key + +portal = off +portal_gui_listen = 0.0.0.0:9003, 0.0.0.0:9446 ssl +portal_gui_protocol = http +portal_gui_host = 127.0.0.1:9003 +portal_gui_ssl_cert = spec/fixtures/kong_spec.crt +portal_gui_ssl_cert_key = spec/fixtures/kong_spec.key +portal_api_listen = 0.0.0.0:9004, 0.0.0.0:9447 ssl +portal_api_access_log = logs/portal_api_access.log +portal_api_error_log = logs/portal_api_error.log +portal_gui_access_log = logs/portal_gui_access.log +portal_gui_error_log = logs/portal_gui_error.log +proxy_url = http://127.0.0.1:9004 +portal_api_url = http://127.0.0.1:9004 +portal_api_ssl_cert = spec/fixtures/kong_spec.crt +portal_api_ssl_cert_key = spec/fixtures/kong_spec.key + +smtp_mock = on + +database = postgres +pg_host = 127.0.0.1 +pg_port = 5432 +pg_timeout = 15000 +pg_database = kong_tests +# note: this does not trigger readonly mode to be enabled on its own +# for that pg_ro_host is also needed +pg_ro_user = kong_ro +cassandra_keyspace = kong_tests +cassandra_timeout = 10000 +anonymous_reports = on + +worker_consistency = strict + +dns_hostsfile = spec/fixtures/hosts + +nginx_main_worker_processes = 1 +nginx_main_worker_rlimit_nofile = NONE +nginx_events_worker_connections = NONE +nginx_events_multi_accept = off + +plugins = bundled,dummy,cache,rewriter,error-handler-log,error-generator,error-generator-last,short-circuit + +prefix = servroot +log_level = debug +lua_package_path = ./spec/fixtures/custom_plugins/?.lua;./spec/fixtures/custom_vaults/?.lua;./spec/fixtures/custom_vaults/?/init.lua + + +untrusted_lua = sandbox + +# temporarily disable hcv and aws due to loading dns issues +vaults = env + +pg_password = foo\#bar# this is a comment that should be stripped diff --git a/kong-versions/3.2.2.4/kong/spec/ldoc.css b/kong-versions/3.2.2.4/kong/spec/ldoc.css new file mode 100644 index 00000000..f6e3d99f --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/ldoc.css @@ -0,0 +1,291 @@ +body { + color: #47555c; + font-size: 16px; + font-family: "Open Sans", sans-serif; + margin: 0; + background: #eff4ff; +} + +a:link { color: #008fee; } +a:visited { color: #008fee; } +a:hover { color: #22a7ff; } + +h1 { font-size:26px; font-weight: normal; } +h2 { font-size:22px; font-weight: normal; } +h3 { font-size:18px; font-weight: normal; } +h4 { font-size:16px; font-weight: bold; } + +hr { + height: 1px; + background: #c1cce4; + border: 0px; + margin: 15px 0; +} + +code, tt { + font-family: monospace; +} +span.parameter { + font-family: monospace; + font-weight: bold; + color: rgb(99, 115, 131); +} +span.parameter:after { + content:":"; +} +span.types:before { + content:"("; +} +span.types:after { + content:")"; +} +.type { + font-weight: bold; font-style:italic +} + +p.name { + font-family: "Andale Mono", monospace; +} + +#navigation { + float: left; + background-color: white; + border-right: 1px solid #d3dbec; + border-bottom: 1px solid #d3dbec; + + width: 14em; + vertical-align: top; + overflow: visible; +} + +#navigation br { + display: none; +} + +#navigation h1 { + background-color: white; + border-bottom: 1px solid #d3dbec; + padding: 15px; + margin-top: 0px; + margin-bottom: 0px; +} + +#navigation h2 { + font-size: 18px; + background-color: white; + border-bottom: 1px solid #d3dbec; + padding-left: 15px; + padding-right: 15px; + padding-top: 10px; + padding-bottom: 10px; + margin-top: 30px; + margin-bottom: 0px; +} + +#content h1 { + background-color: #2c3e67; + color: white; + padding: 15px; + margin: 0px; +} + +#content h2 { + background-color: #6c7ea7; + color: white; + padding: 15px; + padding-top: 15px; + padding-bottom: 15px; + margin-top: 0px; +} + +#content h2 a { + background-color: #6c7ea7; + color: white; + text-decoration: none; +} + +#content h2 a:hover { + text-decoration: underline; +} + +#content h3 { + font-style: italic; + padding-top: 15px; + padding-bottom: 4px; + margin-right: 15px; + margin-left: 15px; + margin-bottom: 5px; + border-bottom: solid 1px #bcd; +} + +#content h4 { + margin-right: 15px; + margin-left: 15px; + border-bottom: solid 1px #bcd; +} + +#content pre { + margin: 15px; +} + +pre { + background-color: rgb(50, 55, 68); + color: white; + border-radius: 3px; + /* border: 1px solid #C0C0C0; /* silver */ + padding: 15px; + overflow: auto; + font-family: "Andale Mono", monospace; +} + +#content ul pre.example { + margin-left: 0px; +} + +table.index { +/* border: 1px #00007f; */ +} +table.index td { text-align: left; vertical-align: top; } + +#navigation ul +{ + font-size:1em; + list-style-type: none; + margin: 1px 1px 10px 1px; + padding-left: 20px; +} + +#navigation li { + text-indent: -1em; + display: block; + margin: 3px 0px 0px 22px; +} + +#navigation li li a { + margin: 0px 3px 0px -1em; +} + +#content { + margin-left: 14em; +} + +#content p { + padding-left: 15px; + padding-right: 15px; +} + +#content table { + padding-left: 15px; + padding-right: 15px; + background-color: white; +} + +#content p, #content table, #content ol, #content ul, #content dl { + max-width: 900px; +} + +#about { + padding: 15px; + padding-left: 16em; + background-color: white; + border-top: 1px solid #d3dbec; + border-bottom: 1px solid #d3dbec; +} + +table.module_list, table.function_list { + border-width: 1px; + border-style: solid; + border-color: #cccccc; + border-collapse: collapse; + margin: 15px; +} +table.module_list td, table.function_list td { + border-width: 1px; + padding-left: 10px; + padding-right: 10px; + padding-top: 5px; + padding-bottom: 5px; + border: solid 1px rgb(193, 204, 228); +} +table.module_list td.name, table.function_list td.name { + background-color: white; min-width: 200px; border-right-width: 0px; +} +table.module_list td.summary, table.function_list td.summary { + background-color: white; width: 100%; border-left-width: 0px; +} + +dl.function { + margin-right: 15px; + margin-left: 15px; + border-bottom: solid 1px rgb(193, 204, 228); + border-left: solid 1px rgb(193, 204, 228); + border-right: solid 1px rgb(193, 204, 228); + background-color: white; +} + +dl.function dt { + color: rgb(99, 123, 188); + font-family: monospace; + border-top: solid 1px rgb(193, 204, 228); + padding: 15px; +} + +dl.function dd { + margin-left: 15px; + margin-right: 15px; + margin-top: 5px; + margin-bottom: 15px; +} + +#content dl.function dd h3 { + margin-top: 0px; + margin-left: 0px; + padding-left: 0px; + font-size: 16px; + color: rgb(128, 128, 128); + border-bottom: solid 1px #def; +} + +#content dl.function dd ul, #content dl.function dd ol { + padding: 0px; + padding-left: 15px; + list-style-type: none; +} + +ul.nowrap { + overflow:auto; + white-space:nowrap; +} + +.section-description { + padding-left: 15px; + padding-right: 15px; +} + +/* stop sublists from having initial vertical space */ +ul ul { margin-top: 0px; } +ol ul { margin-top: 0px; } +ol ol { margin-top: 0px; } +ul ol { margin-top: 0px; } + +/* make the target distinct; helps when we're navigating to a function */ +a:target + * { + background-color: #FF9; +} + + +/* styles for prettification of source */ +pre .comment { color: #bbccaa; } +pre .constant { color: #a8660d; } +pre .escape { color: #844631; } +pre .keyword { color: #ffc090; font-weight: bold; } +pre .library { color: #0e7c6b; } +pre .marker { color: #512b1e; background: #fedc56; font-weight: bold; } +pre .string { color: #8080ff; } +pre .number { color: #f8660d; } +pre .operator { color: #2239a8; font-weight: bold; } +pre .preprocessor, pre .prepro { color: #a33243; } +pre .global { color: #c040c0; } +pre .user-keyword { color: #800080; } +pre .prompt { color: #558817; } +pre .url { color: #272fc2; text-decoration: underline; } diff --git a/kong-versions/3.2.2.4/kong/spec/on_demand_specs b/kong-versions/3.2.2.4/kong/spec/on_demand_specs new file mode 100644 index 00000000..dc02f005 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/on_demand_specs @@ -0,0 +1,4 @@ +# Whitelist regexes representing file paths that will not be tested during running busted CI +spec/02-integration/05-proxy/10-balancer/05-stress.lua +spec/03-plugins/16-jwt/fixtures.lua +spec/04-perf/.* diff --git a/kong-versions/3.2.2.4/kong/spec/upgrade_helpers.lua b/kong-versions/3.2.2.4/kong/spec/upgrade_helpers.lua new file mode 100644 index 00000000..b5fbdaf9 --- /dev/null +++ b/kong-versions/3.2.2.4/kong/spec/upgrade_helpers.lua @@ -0,0 +1,162 @@ +-- This software is copyright Kong Inc. and its licensors. +-- Use of the software is subject to the agreement between your organization +-- and Kong Inc. If there is no such agreement, use is governed by and +-- subject to the terms of the Kong Master Software License Agreement found +-- at https://konghq.com/enterprisesoftwarelicense/. +-- [ END OF LICENSE 0867164ffc95e54f04670b5169c09574bdbd9bba ] + +local say = require "say" +local assert = require "luassert" + +local busted = require "busted" + +local conf_loader = require "kong.conf_loader" +local DB = require "kong.db" +local helpers = require "spec.helpers" + +local conf = conf_loader() + +local function database_type() + return conf['database'] +end + +local function get_database() + local db = assert(DB.new(conf)) + assert(db:init_connector()) + return db +end + +local function table_has_column(state, arguments) + local table = arguments[1] + local column_name = arguments[2] + local postgres_type = arguments[3] + local cassandra_type = arguments[4] or postgres_type + local db = get_database() + local res, err + if database_type() == 'cassandra' then + res, err = db.connector:query(string.format( + "select *" + .. " from system_schema.columns" + .. " where table_name = '%s'" + .. " and column_name = '%s'" + .. " and type = '%s'" + .. " allow filtering", + table, column_name, cassandra_type)) + elseif database_type() == 'postgres' then + res, err = db.connector:query(string.format( + "select true" + .. " from information_schema.columns" + .. " where table_schema = 'public'" + .. " and table_name = '%s'" + .. " and column_name = '%s'" + .. " and data_type = '%s'", + table, column_name, postgres_type)) + else + return false + end + if err then + return false + end + return not(not(res[1])) +end + +say:set("assertion.table_has_column.positive", "Expected table %s to have column %s with type %s") +say:set("assertion.table_has_column.negative", "Expected table %s not to have column %s with type %s") +assert:register("assertion", "table_has_column", table_has_column, "assertion.table_has_column.positive", "assertion.table_has_column.negative") + +local upstream_server_url = "http://" .. helpers.mock_upstream_host .. ":" .. helpers.mock_upstream_port .. "/" + +local function create_example_service() + local admin_client = assert(helpers.admin_client()) + local res = assert(admin_client:send { + method = "POST", + path = "/services/", + body = { + name = "example-service", + url = upstream_server_url + }, + headers = { + ["Content-Type"] = "application/json" + } + }) + assert.res_status(201, res) + res = assert(admin_client:send { + method = "POST", + path = "/services/example-service/routes", + body = { + hosts = { "example.com" }, + }, + headers = { + ["Content-Type"] = "application/json" + } + }) + assert.res_status(201, res) + admin_client:close() +end + +local function send_proxy_get_request() + local proxy_client = assert(helpers.proxy_client()) + local res = assert(proxy_client:send { + method = "GET", + headers = { + ["Host"] = "example.com", + }, + path = "/", + }) + local body = assert.res_status(200, res) + proxy_client:close() + + return res, body +end + +local function start_kong() + return helpers.start_kong { + database = database_type(), + dns_resolver = "", + proxy_listen = "0.0.0.0:9000", + admin_listen = "0.0.0.0:9001", + admin_ssl = false, + admin_gui_ssl = false, + nginx_conf = "spec/fixtures/custom_nginx.template", + } +end + +local function it_when(phase, phrase, f) + return busted.it(phrase .. " #" .. phase, f) +end + +local function setup(f) + return busted.it("setting up kong #setup", f) +end + +local function old_after_up(phrase, f) + return it_when("old_after_up", phrase, f) +end + +local function new_after_up(phrase, f) + return it_when("new_after_up", phrase, f) +end + +local function new_after_finish(phrase, f) + return it_when("new_after_finish", phrase, f) +end + +local function all_phases(phrase, f) + return it_when("all_phases", phrase, f) +end + +return { + database_type = database_type, + get_database = get_database, + create_example_service = create_example_service, + send_proxy_get_request = send_proxy_get_request, + start_kong = start_kong, + stop_kong = helpers.stop_kong, + admin_client = helpers.admin_client, + proxy_client = helpers.proxy_client, + setup = setup, + old_after_up = old_after_up, + new_after_up = new_after_up, + new_after_finish = new_after_finish, + all_phases = all_phases +}

uE1<56J=L=Efn~_U} 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%0DyVj}E2N5u>AB(44_cWo80X}LG6ci+O}9#~x8 zg7N_vImx%r`p)*`3J81VHg|qA_G1$JP5BITKE0N_^tId%KwMMjdT3Y)>{Y-no2V2T z%4Z;Z%{{yG^vToqyz0!)-7$9V?{s7_3t7xTCOoonM-p5l8^8C!Z06&Vezw2FbzI|*b>85QO(5>8h_jbn_^*}%?}0PH!mf-<{&}4PyDhi<%{uly z@)hZwrorUH8t9LOX-{pnkMqY`^8K-QueaN69%lEGn8WAu=s)9+srDi7E>E$u_hyC` zA5X~5Q)2hY`AV~Af3hszN1N-m^%s0Vijm#_SSk0?My_%53h}bj3 z7jlz@c@_y2$1b34&I82x!S=iLqR8lJ`O?UN+*O1RGbQv}e3x!~7;DH-=os;4$d)?> zd|u{cs0!3_73)Kf=%Y6T58I?smR( z6E~KDUDrQ7G(Yd`>i_7k95PnD+r|ps)m)l57fJ6X<}>JET))e>?qoiAkNH4)`P<(} zu9w~X5pC#EJj9kQ0iR0Nkitp# ze`CYU7|Hp>TI=f2CZ5$&t~k-whk`p^wbIPJ1fzN0wtF0RwPVBZJVVdHP4tkQndiZ) zyPrSW*Lq3xnMd8b*e}&x&zsmQs(tXTQ?)6R>T5Ij>(5^|@XGIl5My~iDHIzOu1fwuhV9#UWZ^3PzO zYQ4+;TPA0tTCo3!F)VE1y;1aW0GK30UF4hELi~0Yv1Q8X zp*&G-#Kx48w?uT^u>H|BvRj7TJz{*MMDtgAXN8#q((7Mi+^c>VekpIgn=kX;6ekZj zI%aoZ*6(bcz{3AT_IahHe-}^hU`cC zT%dB^X^xTaNVa2Y{U0y-c(o7P)y>ZphBxidu>(G7-KcerYe(91txc;k_5`{Z&-cND zC_L5}NLEiaoZ3FfeOS}*xlZ+E9Xz-of4sLJ?iq|B&3&o$+kl&#PcJ6xQ@DNj?cV7t+7|Re+hpM`-;P zvCxb3Cq1VaK;?TRzN7wj=pp`2_@Z@uc)m5`b>(liQbLa-SK1eyK#Z_|IOB}AT5n^F z+zy}MS=EBs#Gt2ihOt5Qey)>8;FgQ41KPA2io(%T$ zGxGY8FH4hfO!EUo3c7xFa!sQF(9S8uUay2Yvt!~aJBA;pSAbog*g|P*E{*7fq7-#n2Z0nV7@uqdMN{V?qTmm?PsN;Q#1MFZrCm8$@1?m zI8~lHt-d^yzXAN^@mIv(QvKfj&U@&|YF}2vf{QYYo)p~EuCzkg$IV@dief)7%1{Vuvob8b8OQumU(ccnxb*E5Kp-;2#M0Uyc~?iz(=h0>qPiG_!D zg^ZEIW!&)wzmI5tUpbbm_{|>Die~iQGIVn*blYsDHRui-?r@&b#b-Nv({E%~RcG|A zYPgBL)BV|14Xx$fec9Qh}Wyn+MKVlXSW{|(HmAQuek=-!(fk9_Jih-dR7&h`xmGRgT7+GHn|CC#>*1Vreos@dL-|6I>wX{Ax56#^od*iO!R z&1+Li7q*u7KF^3(vLAox_&<(U+Wyqc5z>hlcKcJ?zk?pTA3gR>#tQaS$3x6PvluUT zGH&LhFUy#N%F%H%@!embxizysNItK~H;v8l{A~Cuyks}(Gfa8={lS=<`!bW*rP6YUeCCNwzlMOICS8t;H$>WO~xA-y|wp@Jb<@bqU+2-V#+`>7HTYSO7ZN4!pwjpo#rL!ke zf}PI%`vG&spO}xO@7pK%3OksWThS}h`Cs>k=8QQ}dZl16dI;F( zqFY)f6crM~vSKc|$)%Hn*hbQa(RApXMLXaU&Vlao4Od!)i;ffjG+6acy&Oenq~N1$ zVJ#_wx9R^>u1c1D=p3m zJ~lXRUR;?sakxFlAVX%~gd98en6u$T4~33eRwsVr8S~K>k9Bojdp_8So9Wzu&-ktd zrQ?sLkb@SRcO7~_fUU>uh8)dV}KiD;x5_fqS?bTHu?>Cl3$dDY~<= zK{7N?ISFZ(b4SP(G4$A|rcItHSE8QTwy+;NL3M_ieJ}Z@Cs_7d#|NC)9*cjrzslBk%h5L<=k%NhZbFZ>pwlv$UoTG$#tJg|L!Z=P zk4*dS-Ji-HDZePw*dv;=?{#dE@(-t1m-GE-c6H}cY>)-ygU<4qINU+1w74f%JzjwdWi7mt&*)YZFTee{b`pIk8 zT!#K>Mo%moVsRhSlBbuQoK#(ASubtm_t4(-0Q(MFW7%?Yb-djX_bkCCah_>z)*i0< ztF?lwEQ{D$&C%JFo%bQdGcF@{Vnew(W1N0Ijr>XWaz3T(&0{_1 z1J2>tYTkPji^(BhoKjq0oWWmz{&M*X@>ikXyWf!yju`KTBIn*jjpgC2`-`Dt-pS(X zJig~*XNouOda=Ox=X>@qIxg~<0Q9c!LR$LhV&dZv3U?f1++7If}zpZF-%Gw(si z7UWOqbWyr1U-Q~ofUyePpBHJpQa5k`TPpoUk@(iae!!FBH8S4&H58sXI zEj>jUwgb8;v>dx(H*)5+LF*PQ7=MttjWa?A>lTa|Z!x#9t_rPXj=Y7vhc4EseffL? zJJ-E8I*nMiPosk+|FrFl@B>S&bbhnjSqP=zUUi#{xN&Q@{`b);&Hm*!vf)#4;7#}*b?=^d=EmyS zvgi1YO8OZ6h@J}>y~a9GzLT5a&0W|aC-F&pV>%TtXyDyw#T3tdnmA+K$Dy;tt^Dq~ z#%JI0fKS}+FHqkywg_0TH_F(r*nmHs-@pG6F^a$>e}Lh;14p9%60e#U#E(Joig<;% zcnY)MG+pDd=f36PLl|r5)u4Rh*4WVS3;3-$g?p2I$eeuPoF6G9HmESletQ5Jj;1f! z5$MkyJJ2p=kX1Md-$v>X&UoZhtV$hf6{Zo#mzHZ4rjD?P7pPd3KE^8CjBh>t3ahZ4 z^;yQ%7W>W>M>4Oq3Ny!Bg~M*N3g2ZM_6b^roqx_^7hLFkM#ybxvr-XBc zUvWx%h>6twUBq|oe1tu5%?HdACVr_2I!5{Z7%?RVFV082H^|W`4qn5N7ZIKNcz(*AlHxJ?d#6S$>-*D!Eu1BY~QdK@@2z$*?1-kksr zoB`co{6NWYKv%@!!0&%@aj>om{aiSp<6Pcs06rIo4GB1m;J0vSNq=aEcryy#q=7>^ zyh#U#cGejg;7~`*UnV%b3w(XRqZ1smz~wz~%m$Y%@Yn`D`og1O@JGD)AnV~B{ccXc zPq>5MY!8oKgGcT?W0mkIihg8`Xn3UW;?rdw{3?YX`rE~CI5|XI{5FD*WUm?7OF{NV z@;ep$TEQ<3{6>RcI{0OPUk3PffFJAJ!g}!Q1Ad+0mj!E@4SB0htKj|D-2Jxx7`2C;aUv?7y z`4Vtzf~NoWNw_h`b>qf&;r5&dw?V=UTcjH|V!aY^Q$K!qmoHwzyC}R1z`J~S7l3yG zco%?oQFs@CcN^hd0NzF6T>##hyS?C@+24S70dT8@FR2diQs7++HdU&P-yy5Q(I4#L zmL}kb{y5~-A5rFP7eAvv`28L5V+{ASgTA|!c69ISUfwT5|FE{-`7E++w|ALYziOXI zZP;}#3(d3XbjY%Xg$@pcPS|EHoxJ*0a}npj3M0@7A4#DP8u>NGp^={$X+JdbL7xcp z@Ijwp&?ZlLcA!lJx%NSur5bUeaHCi;`MdfE^_?f5#7hPGV@%# z*bgkC&7^phCc%rcu&0kn^s(OQqlvxd;%6=ji5H9&Vt+VKCVp5~8-66pT?)^ta<4Y` zj*4~$4}J@e1D-yv@bm#5hw@k}h=y_eVc)Y?Ji_D7<6AcJ|aFY!u+E?_6U!kUT|(7)_MBKP0|Nti#&Zq)JKke&n0~v%e%V& zxqVdFeYmoghaOmutoh(a-nwz2Txi?P4}OauW%Oa}xV`p1ob0x5-*tBN56^n`1IaDp zJ?}X}cO?hMne%!}v0W#S1LtnmfcqIk`_VtdnD5+7zim0zv9{dNq0OAxP`?|9&mb?u zu`@Y&_QGs}5rDDMpAot4fzcY+VP#{14T_nkYPcXF+rv#*vv(RX|ceyouz zt&rmHi=jtE>vq;^F8$sX}SlhQuz}Dm4yA&&gFO!@}_yKkPA*23v z^t$0U{j^N5{o3S)AXeJ;N9@IiG4ERTFmrwM?dudD!_(L|6d&;)=zEm;(uHFYFv$N? z%ern{iA0+tMyU=K6G!c3B}RO zVhlDwixgzF8Ce~P9NyLM$s?ntuRB4!LwN*PtNhmWBPgFo`N(_Momgw7mWO%Aombu% zzY zFVB&8^ZbEco+I1lc||YJk>fPv$kbUGUuQjdA4Nuj&{y`g;wP1p#Ka`S>jGrW91 z$FDN;LvOrGwq8Fq_uTb*nPbKiiB;=!Upe7}zmauojx2q9(+TFjoskVS zM|}PG4&V0t;h9x?BL8s$`PjMVhd){6JN2s0BJ9lD@W>Hg*0vMakvk(NLr3z~{`7uQe7KDN>Hk+<=OM|_L6nm&dtN~@C()AIat z{h1x`%saj;%|X_yiI_HRIu!mHRo)*t+KvY<_6mZi0^QJM)bhujq|r?Y&3b zUbpSI+gG^d6WU!#yPXOAn9W!ZqoajO7`^MoDU6(Xf4lg-Y3>W`IS&;@FM8wEG%pXh zA3xaj#L=Vgn$U&hL#oDxkNJ!a=H5GWuyk=del_`w=UTpoS;U!4+FrFr`@tF)(g`ED zpZImgg3fZ77-48@_9@Z5x?^s>=4<+K&w8jWDiESGDGC^`reW^{aY})#F>?lVVwn4-TKkYt7$V zrF$n76aS(1Fjzmgu;x&k!cBYGuY+F|_1f?qM8I=D&xDU?ratzw&!D#VZm(RE0!>5% z{M{xNMDveg?ngN^Fz?Vuz>Ia>UFgZ_=)|1ad;9+S!-_XDbJzEFyv29%EZLY2BpK5W zd*+kld+qbWQ`nRIIA=ij{(E={cvmxLJ_da&?L1;neBlq7*Yh3Q*nGc%@7THK`vksYznbqQe8(;|-zW1Od((WM#&_nV3i4N0U{9K| z+pL}8^pd)!oQcR>A7n18&d7peYhl~3RIY{yIz5l`P7^kxgV94i#*iPn{OMk2ESYhC zS^YKQ9b^6nF29`f^>>>!QP25$jS-C%jT_ymb^7Um@vonRuHLb7E&Uije3|r$Vh;m_ zVd@k>Gkr!FLrs!@34RPW#jCe$2Yzmbh7s3G(UYj$HqzVxlN3hgI;}5Y2P<-x9+D(a^D2`0pjra z3-l5`DeyKGo~FUebaq#+mPx!vKDv$cbl+8kacA_)iLmysBJMXbxDmI@f_3y*G53t|=M7+~6 zY;KHY{>eaAJ^8-sXHqW(8$#=`H0+Xe>=EJ^fz1Lo3)rlkwtS?R{gf*oy!VxD znY+L80eJrUyH~vOg!ZnA$nnaa)sr7S+&C*EyEBuq`ZLOBS^YYvF#r9GI3aysjtU%eA+%ek;Y`=tu zFQ<`%_o07zMH1U6meM=<%$O&8a{>h~SL=XlqQ z3om+n;NUACANW813l9#SXMZ-3yYoU{=8BobE~&iScVYGK$OrU0e_H7GX~EbZ{KUWe z2X~ecTOSTwz+5-DJ_T6{6Q`lGXg>43pZWf=;>iN`_tWOPUFQ_vdz<$rNygKe53-Q) z9L5uN+RcufyC$D&583CHd+Z_ELa*b?sLJlE+(m_RIYXwL#>Ct*N2D3Q$D{Z?s)((Z zz7MnJ3up0}!`y^@Xlw??o9-`Gyn6F!D@L5*Gk)Y@G-KJ8H{0KmY`(ZK3GCXxHu!*t z#;kmw)|TM(FOE4neFlGD;_s_tg40JlaCG`e{zmaPnm_;0b+_gZU4QG%LpR)7m67|6 zTK@L)*T&!Ss_nNvJ7&z+=L9pq9{7jMud7a7)$_ORqwMw4^tkdjt9IPlN_k6ZN?dtI z)eE;iM){+qsd44Yt6ns1Z!S%XE3d11sh9Tuy_fc1?xp=#dTD=WFYWK@rTw4x(*7@Q z_0mOn)K&d5uI$aK|A_nDQT1xvZ|O6uYQwF0RU2y)gyd?e*6w9z!x%i!CZSF1zCgM@sH^=|ssLzvb`4 z6J?7g)s!*smz^nkx-2D7t@u2hnU*bP%c{M$8MB~Z{QhjtN%vRGTcGnGK0lqMm@>ec z@i?(>Z?YHts+HM!H?d927u-F*;J+Vi98;80|7M0=K7}}Bm6PYQKJ#n;*qF)pSyp;y z0qc>11*6Az@P403(;Ib{_AJ`TB<}KZ`s6%9sLz!*b(eRbb4@w0WLywjl|jsb>Su7j z>K(wm(MoH`Pq$taY;R)w2)4{$KG3*?GbR!IAo~rRX`RclhpKp1^@oMO9m2WlW_V+F3yW)fW^|j_Z`GnE+8$93Fn(vvW&W}9b zf9U!Cujaem&ePrHsr4&8-=8$!?e|&okkj zH@-*fTgCL4^A+fJ@nkJLTMtbqV!KuivO@D16O$MdlNb||7!$RNCf3wu`>ShtR(q!S zY2qRqvf)14Yc-t}O0RFa23mc^7*b zkFY-^_#b0kW}j_MuMZHUBme_)@@Th?3yu1bf?@)@4!0y zzKz||6SOf%wh?`6zf|#-?9s+5kjpqfg2Sslrr&Sxc#cnV#*O!1e{e7oU9aDFUBT=wG}NeH7aw+fzK6A|8QTyYdx4_l&;ScF^07 zmHYM%i`aiXN59A3fbJPZ1))q|aOd67y~&|_N3KhE?mi$kNpz1mbngOB^`jUa(a-pW zMh9avWOwoDrMn&T=kd)rG_}k9_4hzWwG{z=#j7RLb<%G?nsu&z8|)dg-S(;R&Gh6; zO9$oy8P-caXgWb-lzD6de9$^yaZ;jZ2K3Yzh@&TR+6qkKx8OT@7Mg-@JM}wgE2C)X z&S9yxUL3)hgx>XH<~e$CBx|5Vy|^E{Vn4i3)Qf8wM~^cfwm7`3f3mL?V~3w1rhQ4nGuG6yxorLW?Hzv>-=V>A zK3%?u7ljTlHYTAz=S0w#J@l9UQ(ua0WPBdKoN?jjKHcIM`-h5&eVjGMTDY4WceAdw z7DgBwjjAgjaz#Pte)2acCS`p(d(uJQPWQcG#L3GqsJU2sL3x@lS)Z$(TPKCRDCoSh z_HiF}7I$A$U;av4?oxU0!5ssWyeGe<`=0inSPu`ni8D%-3r3CCxyvQsP|evY);#R% z7K9#!)|;TUU+0gkAtp9KGhx zQgmRxcj@5MeZ;&ceJ6b;8iX~DSm(IU67dfv!M`!#9pSE+S>ZgA`*_7u;K{KVy>S;`u~#MPPcDVsdC{(-jBt9Rr3jv^0p(YeYuw~5cAjAbAC zuoOM`EPorA-)8eSjPfGZ1ao-LQr;}R_r>6M&3k;VWnZ@l+~#fx7H;B?cFOl4Po=v# zr_Y~%Dff|qr{qmz)$m}iy_R$R4x-yfU+cm5Koa_8f{Pbl%Q-`QBXZ`6N!gzFN{+qf zDBr3bU$wn>_mw7oC%L>_nIJD$8hQB-;x)Xm3dY00*jql)-rySqe6yWBQ4=$BDF0me z@c9=p)|0}w?z(vR_$_(<*Cg=O^#b4VK#GY!f0HxcCj)8m@#hE72Mw0dPi|a*cqRR$ zb5nhx`$)^*fG_^=1g*34(TlgUj!#Lgu4Ua)TWTFnTQKibDr@&z=DU^>>}u?RzQ|1L z)0!8wUu^F&5vO{nEcYt*t`vj0>21IJ^)Vb&V<88};~4G8V`fy4FK zm=JT%(?1Tnv4m;(lN1l2d9hu_)s;2NknsW&ZDc5`XnF z=AlhPCpJDtd|6v*0sBFBjh~egFflf13x{0r|vH%+Du?FE=Tb2V11WhOkmQ?yK}58uRl)4=0Sn^r9| zp*Qfi3H}=JhlZ`h7qvmBqfb~1rz7V_E3Ab+!Vcb?CDd@pBnuoK*lhy0-g=I z0W&8IAXZE3#umn3D|Bu{x3-TXHxj(>fX-ps5&yFmSh0IDv#O`EzM8t;I;^{t4$}5i z)~nN4uVxYV+$u-81}o&QY$vaS(|5l)rx%|nad3Op<@>NOf&=n5`0Fu^2)uuz%}o0 z#b?a<@wq4gpD7MLvd^=LX)ye`8hpn0j?Wb?KI4<%LyU|Wf5hMmpU?iS_z>H4KK`_D zj@!$h3mkloQl1@j@VOCuCiafcsjf4&KAD&VpBo)~!ZtoAOW9A4n8@QyEcZ_c{9J#V_&?-83fDoPySFhUdoPv z?unNQH)2N~wPLNE7P%{|7h4W6=Qr3njJoZHN_(H87Q11png268>#;euUR_kTZG4b9 zHyxWHqi!qm-#JZl7kZqzyo;PLv+?6`_hLOZ?4YgK8qHB`R{CuJv)yOYAF*kEkNxo{ z8xH2_l@>OHyYI8_W9Dh>ndnjM0LPYTVLsUyv_dV+9qX}UwD;2zWj@6ozmoVO<%f-8 z(`Y?&7jxR^3}3ZBJH5IId#L?S*htJN9e)nSrZ9iGbB}C@YUY*BPHc?_N1xKX9_4$7 zVhXUa6+ij8GpAP%XC5nN9+SU&4rBFM<}UgE5n}ze9=bsT<9~*r?I7Urop-*v=jV=n`BLRj!5xUD{iccHSAr)P3{Ai zec(|G9A1BK>4Fib6kl)WnM-5cBwO36e+gJ@e{m{n8)uE`@OK-$eHGhI_WSq0d*7+I zALRBUU%$>E{6*8k~o>;GsQ?ZBHB zcv&~pI#l2r8XAS2H5&VBOlC0lVLo>cgJ4x#2q02iezHxB_UTHBpb^^YtaES1?w!W^Q2*O8GLhkI{#HtCr`GgEm# z)-?~lh`7g#>*N!Spl6Mb#QM9?&{TBl%j_YbGu(5te%4PdmwbhL;l5m#o@>>m4)N8s zpr2CFXVOb%ZCsKTa`kgQ{vi2)+%{UavZpJZwpltY)tvE(z8Z{a??23^VE5{^%CqP- zv%W{KdD?jvADvgfwXv=w=c)GXVq?&;3#4PwZ7-uUT;0Z=xzTM8&vtcNM*VXTXqI_{-#zpAxrWV1!>=6zOm1Bv7bwMGqRQ^J_ADpSet?)?tH;ACtR0W39-0E4sf8dFkQ|mi+ac ze~c-gZ3Nrm0P}ViXBwC4J8MzZfhRNeV_P3(&o)Tx=7B-n**3&F-a-7*(TUdab$q%q zUX}vf%t@|%Dz}6!<1>))JCJV+IY-7BTX8auZ_<_VdoEQQ9vO!QM#iB-w~Rv@Bjch` zf{Y(Lm&mep9$r0)?9w0tJ1;$5_pJwJc4hu_!rrsDCh5~w^H>k zzF6|dd49$xcF-Z$4$_|6Je~P`Vq}Q@PjmiMe&sUC$|!pV9Nab(OFaj_Y4Ix;V^1&M zkxHBLwWrV~Hq9Y74rCK;rs3b-zx%Tx?9%Qw@z1X;qijjCHveF^d5rw0&G;FUwRsmX z?Vmn6u1y0cW%nd&v&yEyA3v$h*GHY(CS`XdYjd65=6RO}{ZZj-Hj2 zl~EQ<*5)7VHlH_e+Vo6p)9`3z5*|@DHd&h|?KXep!98i4&&0!N=tm8X+-dVz8D+j?ZJx6E{?D{I5n1-qvkE;hg1K%fw96|En0+n93q*8( z9(y3U$d=|i$*Z9+b=rw>XySP>&y`!Encw!@V#i2meEsF0;_nkX&Ysl-fB#PHv7HRW z-$$uD?#H;tB1}H>4+AOOD;vN6eHZhX<_hb^mXT$>r|)q0RUQKJCr^Cput&pMCfIjL=&DfX)ay^Cb52AiouJ_X)l0#pT=&;mt4F zHO-3YPQLI=^unFk9JA2%W$66;Kw($Decov!%V9jJ|WPa>#%Fq6WIp{&hEDm#g?re) zt}tucQK4V>(W|4O6|y#rHij|Y<>PL;0bXJgX%B1lsne_T(8qbKH5JQPL|x{xL$cTM zkzs6w>w>(eeU^#2_F7Z>NSYgNl)NHS19|55xt2b?{Y6WFZ33|so^~}yvLAGv^f@#g zHW%4->1WpJ(D3q%GpiLRZS$ZYR7QK1v=4d(#5GmgzKrOnsPnni@G0Rv*XPoG@5)ByxMBR?(c^z< z$_bit6U`gB_nh(O&bN1Czj))zz4sNBAj@X_R@!j}YV$SP{A=zjsxxQddg4>NZm{Vv zjQuF1Q@KYA-W5({Oe!X|1sTSFe`r7BrG_!N&y2~G@-}BoCf2d<0ZTDsa-TCMRrdg6 zQn9b@xSUSTcg0h7bp;6NCN|0%$(^n4oHit+*em=%A?*)qu5X4{DM9XbPqD7oeHJP3 zxvMLM`^Ho2x~^yci*ZoPI9SWN!UqlK^1O_CiicF(su|xKeT9-)#mJhmpKJ{0`$8`v zD@HaLYbAkTtdzJ@TW{KOq46ktCs7Vv8NC#Fbl;!I`xOcA*Z!+>A6~$2Px2yO-tWkV zdmc{b4bCSIuR_B_dHDOkQXcSc#l@ej!6tTfh{pN`#-^Fq7+XQc4z}7L_qTjSmlMxp z>yP}--(+s~#^>ZCQ-1zNAYZBc>HL9D`<%$Gbc$_Pr_^8Z&gs=bC$6ZJwTWWo zmht%rYm?dh4MR?gz^~u`BL0Z6X5!c?f`v`gE9R3k;RnIvh;WlnQ##)Zud8DuH<1}V zdgYw^y;w7O;TN3$0PZ^HR1(yEa;yo_vD5$Sv?(jDaLY7L1b6&>0-e15?)CKB?5rEK zcF;fR6EjDa=8?xJ7>i<8l#+9SwE_6=en)Ymc1`<#SO3}c?pbeW4xGTcPB8`(f~*0d znUxac{HdS6V*ac;?#DE1410{)_LjZw)*V6in%w&g-LVtBz#p>3nc1Z`mhLd~M=&q+ z2(a4g_}~ujJ1*YtUVW7Zcj@v&3HZDCWSV%kp8ShV=s?*UEy!kVZk}Rq%{s9ZIWuLz z;Fj%1u9}Ix@Y2zi0UJkiC+a1(J>}k))P+scG7fr6e?mK>J1c#KVdN@;jbPJ*^CQG3 zoAcb_KlZA(UGMieya&?WU|UyBOu#>iy{hvguQ_z^%3Kq07#zTj`QD6~2z(rV=1Yym zWvU5r!NyONu3*@AvM?uQQhjSQr9GGERxWypnFmP<^Nm1(^+`b=qKd)L|{%4y3wY{mx8 z*G)$6-psoN*nb5}uM7=iuVE>2(@t3%&sg&hQhc56n$SG&em{T@xV@5n2YAs{l76b| zh4fS6z5H6yM(&E|dkc9wXL62Iv@trd!5lbbdn(zNV4SHP z=DI_9bNhz2ra5y;Ns94%b={tJs%vjrPhYEh`nu8E*ED}9JE1RcyOR>yJw44n|9-mK z{_Nt;wu9d!ptTSe0 z6cE$3IQ^1>#kV!)a#sWP*YV+h&v{3D$tzf+Pn}&5ntFHX_*XfnIGlOn-P_Q2#urW; zkK=D6wq#`$@u(mC<;-f`anv@GbM&usg<(y5GzSUm=^Mdl;Ujc33LoU{aY`N&WIQx=q$izB_ z=C560pFe%y!Epnyynh}X%M;+~KrRH6`hO4kcpsdFr&l)K0>1keTs3}efwgcW@^FiR zVS3}wfZ;7<;Voq0t;~Ma+fw^Abi+0JuY+sS-vHNi;Bn=#0C{xB%N*jH#Uq#hb3TFp zBNAb7_%GTd%D}IT3|!GI1H;cF1N{=(b?KehrsN=A25$aTGSI~NOX2xxW#HZaNs#mZ zLo(2G;a>;W>wg1Wy~)5M^8>ei|7lK%aFm_PH%!;YRG@jK!Ik zWH9zEXY9|xZV+zm9{tvSp0R(g2Zna=>R`MJj>PdU{k8!8Hi7Y8!g#;g^gF#Vi+;-) z@0th7i8;+k&1!IAc?}!zuYqOCUkQr~Lq=vs^_Y~5o_-m3iWzA&H1KuK!Jce&XppGi zub|IX@OE_@ewD*_ajssvTXnr_0NIQui5=4C3Fq^e^Z9}E`JVInuJhUMe6~8D&CX}j z|3loHfLB?b`Ty@(vXLNIaA{GK7`6yhTNg;RlamCrF0Gx))V4ZJARu6BmGRe+SZx9c zE~ILXI>QWJ^CN($=UAta5i7Mb1P~OX6{Op&oFxkoTj+~I0C$SiOoA?);PyR_sae#ww5QvA9+^kvnIZ3 z<#k@gd{^gL%bS2{zAvY9r+LWiL+Bk{reAr3{o2WT+!6JWwl_cr_Yf~HdF~&^b4|>= z(RrSI|M=S8>WZ>Mwf1}q$Hi}BRUv%O*o4=G`u7q$e--;7Z$|Ex`T{MSOHr1`7zK+; z*1xsRTLipH1J*^-yQFJX(q_++k#(&{Xt!rcMVZ^SSI_dcO0Gy+{63|e19rIF>YwrD(1AYoKQv^8jLs?go%Q8w z4m^n7^h@-&*Ex?&a28&?Rp*X*xQ_Ep#@q#*&6sb6ui!t|82ZT1sy@6`m#R~E;o#~P z#E%d4Vb)hpx(^rsDf&=hEr&N4J~rd*xd$Eq4$lCGr>{j4n|+HuSKoKQou6U4JjJ@1wN)Kkuc%pY{a*(b_CAbQ+BIVxRWb6o-3_ zeVWtP$bNhAQ^gEc%D>?7M){ImJ^9~g&(&Q-M^owllkAII!XBWF*sPahmtH}A)3HBt zv005h3(rs-!yd}mL>_K?1_EU7Tu9Uo1wyffZY@D`z z47MFBT6h(nQ!QQqPQ-4fFLywLKNJn-M~*ZF!bhr!tJ=hGt=0ePS(OK_5)CH(;hUG; z{J~YwU}tbR4PNEY;8oDzRnT9x&su&2AC2Ik`O+Dg=N-?P-R6m79b8j6gE38FOvr}~ z*N!Y7?xd{zIz~P;+4-sWrsbzj(06=q?efPxVdg%&uMu4-244`&6Tlu{O?xeV3au+t z6IWG(kHa!+gW6A47~P3pT*4ff@2E%LC728IEo(0LIokJ7Uh}TJJT>SmT3d^cv9_8s zgpSu7IE=qTK8<4DEhYDS?&7f~&qD4OLNBo1yp3~IUXZL@YU;@CYXpy6zexqxCg-Lz zx59xgd>8Tu$d^!b93LtD*#u6Sv#Y5ihyM4nW}>q<G)g@%mc$lyF&pu0JI&E#Iv2@ZigCZw3dO4W0!1Lgcv6+Jt!y4!X}f z;BT=)t6zL-F7rN*@3Wc5J>Z07op53`&zc>au-E!*oN%wZCV&sqEK=eHTawV@Le>=I zI~{_VKl+!zOXp2g7g@(j@Z}{7S)0Qj$$a!HR$>8b$mM5omO1^w&*tR1zWd>BeAdeE zokc8PHNK2Z#BFy?u;bvG$@xlt$Ie>f)M~A}9u8Q67Wuc!S&wNGkD6igO09KoR*dls z=8Hb)+~bAh*h=r?MVeFIE7yl|MQOc8YXhuJZqs}z&MFD+4~am+2aMJeOac`*8ukne<-qvs=>UUHWdbXYRf8e?Rmz%-0THuP|#O zp0lK!b*^+A`$k$@N1S$C{3pB;WV$)?c>p4E=XtLH}$VJ*!9@=L3FSxl0d{Yd9VBgHTj1!lW(oTSO zM9XSt%m{6WX9#CP;M6VPO#<1cz8B@Pc9fsR|GWrsh>>shv$q)h6@BPDLdn6}5INVO z?Plt?`)}{_-o&0o#b4Mo?~5vTO&mN~O&v*iP!0WFfREj#_0q7#_;_|Pv1?}CbdiCJ z9e?p3inYlAo0y5QEDB%t;YVvXIA<&2|86gS?jn1CJ$$`G`A*z?@c|pAMOqWf$>#rZ zvnE#bNA&4uBlRf<_~Zkhali+97mmL4Rr;U9`17Hwalix|z1@SOF8&-g`E?2h_o|BS zdVn{&R(mfz%GI@E@P(z9g&uh-_k-Doc$ZsI9M1JgR_6BU%$&o4dh(LqzwTzfskX-S z)iJMzLM{ymhLa#>Y9=oyC)PuH&2K>EERHqxi@6 z+E5BDS6TI1o0CqY9NU_s8`9^fs*!I(e1m+32NM`IOrAvWad`Pj%_&-2ni~GQe((`` zcVodfg4e_Wv{yp2A@JT=UpM!nkICSYTlRiWS`wgq!j-!*kW9JxfbvP1-=C|#&J)y^n^xb;BiHw3)%WrV>MKaAZ`a86m8!m7C#Y|HT7BC` zuJ1I}xBUe5O&qEZ{d0czizCfO1}ygbfa>}D<|FP*Z&JC8O#yE@o#xplgO zH(t5592|1-XYUN*&(QjP96hp$d9FsU978{`@AlPpObssvceQU&=NCw(Xitu8y(>%6 znT>6f)p!4NYyPyQi&pf~SJ#H>!lucwtonIH)>dMxsW;2ii~h53Gxf>_dy;y!7f2efH-#_c=pfZ=%j6rmtC^I)JUte@kp z`pa{M`l(zOMxS)xDVtXNE;LVqs|(Xo;+9>QF2lz;4VY@K1XJm(ITIN_u>*?L=s~s? znX~VvhkyNtkJc_=9o%QfxwRL6{d8M5L$>3w<1=?il3)Apt81bxxi z)vnv--_R!XG7X+l5MV_&Eg@Lw-!&IbJA@N5SuU>%+tqtgT_hBjpn&R z@r?7oc+zbqPShrF?e^f-pP4r87)sM-mwm3HY|~FWpSw@crpYS=4{cBkm+|@eqj#BW z&>X)v2621<32eY5cB5OjY*hD}94Y+)c!S!z37+6X zXCB(SCEZ6lh%fq0=FZ-`l^xB3S4dA)OzF4KTb0MSjeHOlS@0xu`~!keQPvM0^UlenKv+b*1rwuI_k{$uYSls}mqr~J!5C;zhY*}Mu5 zyJ|y8xKBJRP~hm)Hm}l|!ar%X*z=L~!2o*TPc8`6AAQoQ|H(z<*YlnFS4VT!uRD63 zuT1wpF1z}`(Vx2SPPgB&K4yP=hJDXklYM`tea||8eg9eep7kO7ev*BEyL*3@eSe32 zPcEH@kD|XEEt&VhTj-%j!Hu`T4fe{_$0t>kB_2U{nZa3a=U0?b1W`&lm7K>#|V24@SM}LpAR=j(do_EGQFfbwFqwk8n4q#6N z$(<78+dbLVqdTyz(&6<~8ob;+Gqx>Z?@LYKx7J?Ug}~tl?~)H7t?hh=2P7W3F0!z7 zLZk-Td!Knp|IX)r_t13_&CkMdRwTu@Q)Rc8-p7VveYA79d;2(%eyL3_OuC(N{vVIt zUhE-wRa3A`eDqtw#fRWiO>@i0g*vG3mKuIJlz%r)tZ)$A3bGf;4~zr%Ro3I1XwjaF z2K*w@fsNhYF&(>~Jx4sZ`)kv@9~cR*{NRG}hbd2XDlF{pg5bpz@Rt1=25)WO^i*^H zhy2Yh-kNn2@OC$Cy~J}DZ?`*myWPRtpo6!1F1!soc)Q)f+n|HD+a0_OI(RGonnhom z!CUPesi3UzHk7ZZRvA`0^V9UGnpG$qptB}k5r#27m{DAm$%2<8k z4L4!G?!hJ!{>g9F#u{MqX{%p&>*8_vJ#-Jwzm@K>QaJhwQCi?&9Q@3rdnBHgKS(r# z4`2Al{h8q1duek#+kxQ^$J=u(z01W*gI`THU!4biRWXOP^t%eYOs{8(Q_rQR*!8?m zJL&V)>U`6CAXwk?+hBbP&vM%7VcgxGabKr#dwukCopV7?V%-1s_2J|02Nsg`FXoOu zZleP}IW!OFr}yX3tWkA9<>5$~2kxKG(4SvB{kb$adVkX4{<2fL%V_Gd*to9b`$L$}oqA3#pE zR)(gAMO*SSx_kiIA}(rbxQXYhcz!B)=*p}Bd_Z!}rB$Z$WyJYhQW!VFPqF20!~k=xZLi;-3iK`EU=pL{_86n6rWm{c#2md9lnG zEY9?H#vtF9>;tooseaMMK`U@<1ALElCi3yxbSfPVKG?daak`P6JL#KSR(#*QgBM7y zdf&~su zRpxPQuP$U@(xxNU7N&<+vJc%uN3F#%$L2+DIsC)yX?Fc7l6xt5%Y80*>+pwm$t^Fu zrIVaUA5oti+BSWfMPNGjq;!;NHQxaXkvHMMXq4f5CQed|?WcR1S z0GXWv1MXiQr9I(c6EHG#<@nGKTyD!^cmMIRU1RM1JLC*{Z&yLe{+;)d1t~h{KI#&W z3QAYZu`UU&sH|U)Znc3mw^*S+qdwGt%zJ-RF1$BY$NvKKuDageM4kiQdv)FOoOdDV z_-TFksnZ8D*SiYLo|{BrWq%d)Hy6FN3B9$7xvxgXd*#FX)bk!~dD|K9w3EX3-8#W> z@sSjL*LkPB)Z$T%g5|xT{(tn?cj8Z1n)T1K2iHH@Z@n!5%t~^tO9H@*^R1TeU@cQ? zQ~_v4x?UFjA1Gx13wsnd5UU`$ELt?Y09thU*?4HHns-THzMWs4pHpdNb?U6^jmKB5 zS!DTJ$nQfeN3gF({9)?IFIHiSlo_XG#tRm_**{R;4&3%qq+ zF=tq@#!Czgx?KbBI)Jy}k`$p5LyubNTm2-1l8;E4k-9Qo)`v zq`{Z;q))$4kax?eGLe^B>#4Bh{`?*Dq| zzLWco-0o}14RrzWM%RVttKu2#n7MBF ze^PmT7;7_Q{R(63mK`>OvG7iIVt|-AGw%~Phna70hu_2hIc>s^nXM4pSoPg-S1p0>*R zerlB+y}_y%Z!8nu2WU%7!Q#s$b%vao4|l zC3{A_>vP#Pw%xahn8~N0{n*nM`AU$D@KNI@!Y&X$mCe;)Bl={~NURbLW}i6OC!I&-*T2F1mHK2q({p z{(LU&w-A%znM;>nA8T^>2kVfZjQh->jEo0-{fQhO=al>U&HMs?$F6VPLwheXzq0Gc zFwTR(R{l*hFCN=I;DKunx@l~H{iVdh_8bV*XT%R;m(S-M`pL@acRqcuf|rnkvWFa$ zJ=YUEY5d-W(Tk|J8@|&8En)u}-EIH7=&$*Mc`w?FpK^3J=qIE83N5DSZrp#1c^alG zHaT=hY^vh24K2FQZh%i*%DxBI0PNV(=lF+k!Q9ai~ zgO@@NH`shYJ`Xm;%CH5Y2WTuJtRjk8d{Pa4L!R1|_ zJxtuQQ-3$@s*PUS)j1}Ie+n;IqCEH=-+Hc?#T6UA`uju2*Qy^XtNkb9eb0i6Q>X3~yzh1J$JlnE z>4W~qLgra^U@rXT3M;^wi#eT3Idd`BXSEEFf3OmMkSK>w&xWT~13P$fjCSLUMdx#9 z&BX1)e)?c?HzEJwdHrhl5Wb99wbuGOzLVp#>bsMHde^5&T*KC`fsuI>e)QJf#`D65 zpaboDPv=pGd0z^Tn(njn-KO&>^Bx}MzE9^-<~=;heJ_5ZSOoDO^-;K?Gpnn8*@i!9 zfAJIWC-yVSK4$Zubyd{=5V-ybc)vEpbFT3txbkEfv7z30tt{liJoY$sk;f)jgCARK4Zzul z43X^Kq}XEQbJkLPO_r~db-T`~$M0FQ(#j@JroC48pZ_ypa!oZ-ZYA@xiaMm%$^Nx% z6sj&x>;lJnuE1urD(k)U=!YJA|7noETcw*6gTMN=_n*)az}M-}an91|D_#y} zDEqV2vY&Cw{w%$0#kOK>8^P4HSuMN6=tHK>pj(c8Q@z9jPakjEd|}V{%KB-B7Y*$t z=z$;E`w0wBGUeavrO)slcQ1i_n1|?hHvP8OGi_W}IRoo}-`J1JHAa zc>7QcKzs3`FW7eZ>_Oh%u9!&IH_-!cB?qOE!TuWfF8A@P;qCAs>43t6m&W0L!bhQ) zH|d1l_EU7M3CNi<;4PEvdGD>X=Y3F*ngCBf1D-O8H3knZxbju@XQ`2`L-tUNu_-T% z+1CR95|3~A~x`KFta`F{2e>;iuAx_)) zeoDF4H!nN>XxC442zcfA{PmoBxpfh3xPI=JsK1%|S3?8$LId)fXeU42+a><_td zj6YhjKYNMMkt`7(QXlfN{Ppurv9>mWOZr~xQ*NIZQ>PvG6f||pURJxyi2HGU+=q$# zX*B(@`V<4y$eGaceILfBzIW-O7fSQIZTYs%W1Z6Nzu@ETf3u(zZ<`pbbrSOWpMAsx4}IppH_u(j5G&q+$+h9d$J8u;*7Yj z1owz}X&sC+n&#kJldA_R4#W0g8a#BKs~^4e$EAb6GkvjRe&`E0Kl7yfQh0*Cq__D) z+T38-aaN|yHYeuiB*yPQQJahrAIIQ0zpHV2>HRr}-cO>tk=PC5Bo%yW3oZt8QNCzy}bXAIG{ z{B2&^)*773D&A9VXx+?xKZSKX#d2ybZVlzsPkpbxX^)%x{XF6x7aKk``ghbdSlvcoCW$$VD+Fjnub+*G>#8I7>A>`nv zZS!MdAyViwQ=8~`Zkykx&5V4g@YA;$JIOXL(>OEnp_6EH*9qE`ULjq;9cN*Bn=T(h zzsLw%WJ!v=;r@vew5hee1&Zkd->RM8zvMR)pAnCVhKBQ)q5S;LeqN*FoHpb?sI~gD zk5`rTVl!j=Uql?o{yoH+96TO4mVn=6bN1rF7w`k4`)6DDkGQUY7Y*Qx_whRqdTM}{ z7eXs`+>p+HR(zh>=W6uJ8@ut>$(}?P5io8TX>7&Yf%~oSRQj1% z0#B{8$V(AGpHW<$-{>leF&hj2Fg5~u=o8TD+zi;}h6r*IkMome07$IiKZb z&W0}kIB?9*`l!x7jXdr)bZ|3Y9p`y$I{9w2Uq5xO?0GFc;ddI- z24st3OJyt7GOif?$z@Dk7t%kj9sh~J%jdh8n+rLU99!p}<6n7XPw>ty*__M08Q47@ zR1D5=ocuKS-bTHD48F7Xa{o-`U1vfa_(qxoY>cA~6=gaX(u;csnHO@55NBTyoy~QO+$`k2 z+)@s&GUroreVMr?{*LQ1t_u}^kU{TpZL#L^;e5%p#s1atFC1&K`O{$&qu@DD>w56J zDo~b${^K`*^VRSJ_<(G&9&p>79ZElB2idWv*-^qCIH#!~T8;hkI`+g~?30;G7tMJ9 zntd?q&WArwuI+=qz_FG1s}>hnmsDG0`({DgrRW6YFyTB->sY6+W!`o{L{g15X4 zPdVRL&~h7eGCted|88J>=QAI-u9;r22pkHT}_f_~+rj0eUsmpYfGAnML# zK67~(Ts;cUcni7|?|X;2lh5KE_`o4>Az-u4Bo@?GWP8xKJjM`=qqRC8MMy2Hl;9#7f1Bq}5mAlyh|`+wbPYW~Y67rt|IlJWp?b^)p89cogzS06;c?fy^NT~l88Sqp7y1Yk(n?v!~=sEkW#^P|C{37x% ze*+yoR-$?t_qFnSlH>X@E9`#vCjQDz_)G$<4>qx1yB6Q%BGv{UXKj%9tk&jVd`UL5 zy0XMX0fm#a>4 zm5d0_GtV6kPo7Po&JyzeWa{U6C+cTghJNyFyy`?|WvcVE6V-W5hB|rn5pfB%;9#aY ztrOMxy9{;mtcN-`jZkMFe!fw0{;~^)!;@$GsWZv?a;AR%=0tVYWT=y8zfhfLWS;jO z)H&+B&&e?FJbO}gqPJ%1=TB6pLz`Z{#CrS174j!vFv0kfWAL0E>{Tj8rz(O^k@t#N z2E(V?Yx(9u+SsYQ6TDCI?Hcai>Vqd1+WHS`TsBW6?# zZJXd#1pC0tqc30pL6`eE2y(-H2&3AK71~D_FdIUZlFwc z)}E-&6&dQ}*_EcB%w>jtevLY7oql@Z?#P3E&A&S}T^{VK<=I85Q*)W2&NAxEgdbDf zxjgeMdoF>MnaiRKbICW8Xv54U?`f<54DRpLTuvgd+!f9|wm9=>6@@3!Zk#wM{1^Qh z=5b%`-%az*qq)~S`V4#+3w4@#q%P&e=WN<=wi(M^hR0=q&%4dBS?TcM%%NG~qr|ls z+{jSpF=TWVvBTn<>2v1@PSa0tBSW1pQ)jKy&vdzt54v^pqZg#$u<0kyo}tc7lIt1j+@gLmN9t!Sdu(0( zW0205PP5mIfIo8&Elvwpq|-UyJW3nxd&Ro7a^FD?MT@z6zgKu*?{&pDvak3udyQs; z_S2IW$>3CIs;PG&eelvd_F8*w&D3y>L+@sfl=unH?(nqnAGEOnc_Uog2!E=yE)8RY z_iv<)O4=~>G*0DglhkpFu2>gnZ*H3!Zgko({o!71eb>{*F51|EoKzbtwZHsKdw+S# zI66idM=ZlQcs9?|MwB*II^zIV?ZpK%4E$5tu~mbH zY8*p!zOVRq=MQhAag=eiWf%v~uJ*LiP8-ETZL}A!$S{tMQRX9-VLo{FMNb=RX=8)a z2C=8_R$eo8I1O5(&|py-4RS9U{H&*qA9>nXDf)O}N(NYsGLE(kM?8vtH z)ehm+FMPw>utu5lq6~A+GsWk)yyO~j_)F4oj3Z1*U7X0WBQ5Sl%dXg>MU_|>Wp>1aQ^T*c~(uG zMsLbc=OXH?N~^P$xhk=B>egb*-cuU`R_N5N+Am(j+^)~oHm%t)=J(d`L>dK z+lObb>&qYY7iAx>UG&j#|ETdlrRD!C!RM`5`pNj8v-qzjCSw8XgT~&%59RLnzU^N= zTHB^`T+!oehsq-CAoo@W({j8UG<5d(Vm&G`;Igk8FE4yW& z$a;1I<5&tkTJ$h3FLK7_l;Sj9F|X$r*}K+&)=i0 z)}bALdwVVCsSo+fo%m2E2CJHUk@u6&uD8evPs3MV9kh-`*lVL0zC+kZCjOZICGig{ zr>5eku0URrcezY!qU$OD40F{$zSSnyg;;YmXJl$Exs5s9&Ai-%-&ygL3G7@uhB7oUY!+h-Tm-1E2rg3p0S?z z+?0t{nf9IK;%g5AKV3I>tX?;UcB_3keHQ&XjLohXGkY(>7}f)V(VxSoM{2v5^%=E) z7#!321Fx`t&wkm?tN2%6h|THTbi8TJ5{rHmTl+6(O>F9!R@r)Dys<~-2bjZy;P1kY zd)E0F`vB{yG3G=4P#+$nZFh`nquiI>mozZ|it8R8BWG*?Yu1SKXXjbUi+&jzwDYP5 zqhI9OrkT9xZ1Y^P1)LXYp5JY91%JUj*I93Y=v4DO#Bc>lS~5_|9H9?|zyXcvQ~(=HsK+b%Hg)Dq?Sg#4SzXSMk>&a7;P4i6?p# zd9hV{m6X@j*gfQqR{T>V^ZYn5)7`A6Z34%-!JQ2bo;8ABk7GwQhuHhex5`hknfuMi z(Dm?%3f6_mJ99vCVG2A>F(aAIaU6=5)*5l@z7^9KXloVqH_;dOTifSv^Fr0T5u36S z|N8g-btwO5JfHE5laKwJ=$JHEZgJq~!cVz-J{dO@Z><<>(dqrHkxmJkz39jGLc>#Y zxhA)C9@pXno5!zTCqB@@@6-ZfP`KX1^^>gA_rPcNnAqrSv-YZdu8V;E5Uu^_;bL(7 z3Z89;#%F=sqOVuTGq3mv#e4U{3(VdG@df5aFv&W%_ zb*w%7K2E*e&{FO3)oZ%p1KN}RGS8GVRx&)sT-vb!f_s+95%11VQnJ*WKWkt((E2;qm!yPColP@y)r!LW(X$%Vmm-gmy(Me`cQBG=8BSFKKAG$b2K7 zYemmC*P?NM^mAN~MAu7Z52x$zrs1Q#-#9gYrRrO3_K6jmvqhiyp5i34IyYO{$fm45 z(RwxWb(neTVJ%>)BWv<>KdxcRROCrR4Y}L-PVo;~C!GrH3*oDc;*a2%@?<8NcN+$G zZ4vLgLi`F`i8D8vC&j5t7Jw7So}paBZPW>^8#u!^2IUfby0*sJUtA-(^rJ13M=ERc zO%ERq*mMjZM)%3Uhn@Fv#w1>PfO(g#r|W%O$5=yCfB)HB+kExsT#p3*oDA^amHu@?*t@bv*F8tNp5=*z9vs56jt9QCF&f@(o zmkg)3d(!6n%Cp4(ht_MgPA^)@W8VTih=)0yqdpGpu?=~km>lr>MJ+29TS3LCzgM--y2cG~3v%$g5^xx)_Q&RaP z?HE2;Wz(Nq??copnSCztHr42yH-qcqzuVEX0?5g7VaSMtC*H!705{eiqYT-dCajN)IWAZ*4-SzTEP4N>=s+vO71k4@=)mPcKw%c<^iY z(#0=iF_zt*ax5<1-{>6+aPp2ty069(;P-@ML3U?pEXbDhu_WQIQ_x#A7Rg967U;`6 zmX{4&2FF7FN~?cxEYL!V{7Rb_cPypueAigVcEN`<-y0k{?hqZLD~OK&U3?I|K<@|V z{se8DP)0g9BEEaOV&>>$J-@e^Yw_R0=nuFS?$$Z)m-D;S^Zpj+eJ#H_J7a-)XY=c? zaXk{he(d7m^!piyens!D&cfQ?#Kw>nR=&D&`0!Zb-4y=<4ASp^&1czm;S*Ng8u!~>R-h$D zzn-Fv+~O&;!Px}x1GV9Pqx$w;W+Pg-a9s7d+7$1%gb2qRph;J>T*xH zmnavd+*KPUQ*Mm0=~drmjmcvFfuk?D1SKdncNESMC4e1Lb?g~t$hRrPQ}yhbEDCjQ{slu;RZOnXTe$6Gthu|(NgN|LPtJ8ySG(0`M}k76?^40wznO){E{=gDy@8AlHd6bFsb|ap*1z^mEL2W z68#&-_cXXx2aXmJo4zsw?7vRj-Hua-U_TwXb~3QHe0hHq?7vUnenQ`V3>_5u3i=kn z(+@!dPeB8>fb-9Q^Zy9!bAh3I|5NVYWv&(X`c7b6=PCYiYYzH+eQyCTcRsW?`yJ*( zFq=u)LSih3-p@38fct*3=7;&X68nuj?q%{9ZGs2ALq8NtduYdf>w2k6GA#!0c^mmC zn?tdl-xn_g_k^$t2D3A!m+r z%^aV?9G_z5_?OIahneHtsEemA&YcNdy}0i_7ytD>Pw$`mT`u3rMzsBSuDvdvuW_F; z?D_ET6mvf=?K|aH_1F))+5vV>-^~J=H1;}b~*2)leU{{ zTLwMD^-KJVUeonR@BZCCTsT}FxiRA%#Ee^>Ki9vo?A+n}FkWTzLt-;bK59$r;`lJm zkA1W@CL63AT!8nO{R&qj&l$7!tNFn*@l0gZv4v;DGr@0HCtVNDb)w52V(fXvyVsRl zc}Loa$6pU#?&VwAeTfpSPot>umAWYzW7@(OsEV(X24 z55Kp0Z7}*g=g_S>jrdyd?TMpz9q5Hm#+FX~pl5tm3pm8NKc(i(yJgt!I~+TIC%TIE zY(I1v{yA`cFS;CiNVej0ZI{pWJm^uf78%v<%BWIe)1_leMxEy?SmS=H_?>d(-3)Z( zUBuA$K{s{2F`YB5F`aM0Td(@~fi+mV$03^(zgWsR z;vC*weGo4Ch}LwoJAqc<{^HpYOy&$)nwVa8;5jC=no_g6z(b&TOiU`*#S{K$6S z^9J!|u;S|B8%Nm_afJOA)Dd-I^?Ay>evJ1%99X-PoT7isycPcm=M8wwCk|!)Ta4*x z&%Axr%-h%&<8J`}!R>Z~+u(B#^qOF7+CPzGoH20j&)_fUV()J5$mHK~^DnskL3A#E zl{^2L-w)+&u*?0a>X*)|x?Mk2Dz6(8-3)w1Yn%ApXs*XZ+sv=@>tJ*>*CX*J*}40_ zn3*pf^zbB?AMHiw_+;EUgR%2kBQ&}MJisC^i0NCCo!>%y^rlR0)8=z&Z60DiJnV1K zKRsG|=z+u9yDC$AoQIQ5EoFSHIetD|zSWNJ@2`e?H{txe)1x22Eo@Cfs_m+|?Szao4vDPv>~-@h~i{?J}kT6>w! z!y2u<1+?YMFo*w|sXb>7r>3>3IqYT*-TBMd9`JO=x2=d=A}Qlz4*xk*dyFqXt*uWz zKBv6}w8i*_&EbYj?KyM!_7~D}R!fR7rxfO?f5^>O9u@c0im<3H5e zP!DSaJFppCUoE!td0pd+E@^c4E;#(_hTpL7QgvQ{?*zY-{0qU*`2zy+!^D%gPP+{wMw^{88n=Nb9OezFow+4E|Pg z?&tl;%0;ZjkjtdMi#`X>Vx6IgwHIVbGqD=0-8BVdPnL4TBOm=8@}(mec(&wAifv%O zKmO7z{FmL=hw8QVpfw5E(bEq&p?pq|al zsqt}Pk7%uZrN{>&cAw$m@ zXpeY*hYn&E7-AhB%IgEzT{|9MkwzF;keu|FNz8@U)($iw$K6EBp%8JQPC7zTO zeUvy2>B-g5ylml&yaJlP9GYKnfgQh~^U$T28$Jd-J`U}-nN>D{4{jy<<%(E26|6@oNEo03vosO2_3lh!`qopOG`XG2Mo-dl}0yl%u6h2pzXAe1Ja7{F2k;L_0lmKOHmOHHE%a(9+$U28;ISW7=Y4J|b4 z?5#H9sz;^;VoOGs56s!V<`c*e(Zbh+_l}&n(4m1Zhz5`o<@$vdzN}wpL-OHET#rTz ze|>&t`4IBZf@_Z)+hy-pE=8aFWL#=~6Jj0qZ^t*2hd!^IB5s~F`FZ54l`n51yoPz- zw>dN`Lkxp!!`d+n@)_L6et(ni0vlQDmc51#<*~=4tpa_I+zF_@p)I1iV;lR`PfK5;$rv{3c@EYAt(T z{Z4eckjW`MHvE0!ECb+uh0mHTUp?!o;la9;r^8d%9N>2+`p?_|{-0`O1^v`IBsNFC z=U@;dMP_`Wr7F~%sq?L*8@KF{w2o~~RP?*FiH$KV*WG(1iw z6~}B`Jn?t;BUcN_6H>$cn=*|jF5~7imhO=1C$amO?w6Il{K)5r)8e@f9ZDX#`8({G z(A4}LZr%>HCBLftf=T#wtbn))>x}Sg|Ax-V-0#RIR@XW$d~QJ~k{FjA*~xun=(KPp zIG6xW6W8;5EB5;h;MMKq;0MpT?jUdYq{}1N7!eb{ge}oQJ_oDulJN7Y7ur+o^^i|U zI215GUgeWKwU)EDIme?LoZCn{{xQ~bc6sGg_ecBRBqs##nt0d1x{z{)#-L^Sb%*Lz zownatbsk?xot$B1Vtx2_6MBDbQ9iappsxnsfpik#<;HyJ+@;|k{|xyCe!1TXFXfxt zXjzveO6;@26c2ax{|wBJ$xgH`4mU71H>RAp74|CSnRxa%<(ycs))VD2$c6@NAHOf! zq+A9?=h(Rn=$~!(+xQ^ZY|tFQ_q68w3Vy{H{Y}B0CI@#Y>(*(%w^Hhg!vp2#cE|D6 zk;VZnW*i5!mJ*}J{jZ2UaoZei92*srWcp`CTeu!3d%*L5ot28`SAyfNzO|P%KX1IV zVvD`JQ?cJJ?<^$Ogm~wU3B-Bh@0ZR}Q$&pSWO9>C5B1OZfV0(^t3{M)CXP`$)hcUz zSnCE}{QEZeCmg88wyBja2kdM*w`0Jbr2HP@b7h-}uEcjl-;yC6@Lk#X=sEpy>X0p; zP5u*f?bba7r%AskQ|zT;g?n-p2hG`E*!u20u`R~dKaB3yQ@}bXzK9a8(TVo$L1w)| zy&Zg$dn)zAV-*Kn5+4_S962Cggyk#$jkm9DPG42OY>7jBA2>EHe3(8?9;-5TpUrr` zPP`4a%&_vr5Sa2Ir~D45Jbh4`8nY>1V;!p^o@d1JUw6ts>y$rjsJ!BD)mOnxYX^t0 z?-kGaGV2Bj=BO9HLeBAf*GOJizMK}>H%aEUYcjHxxfS0ygZYhCL9uL4W$_x=fS(U0k$7yvc9* zT}iC+ulZG*($(JNTKZgvewmwpaejZnuXMOq`E_YXGGdHFI~O@}LAsg#T>2^HylXH0 zNFQ?jah>RGvfrCnKNDTK`jT?Td*Nqr2puV-Kd#EwljPe=z_a8#+eN*~+c!+ll0Q!N zJN#n@xa<1PkQcI1_PM@0<))O4(o20w^hn8i->J3@t#z(8;hWk5UrT5=c868(E#Ii} zYAfWl1>U-CnR4K1iTrz2sqGGy`?^yOe09qa=dlexUAxuD*-gK*Wrt`xg3Xtte_lUb z1o|Gdi>`2d40kwoQ5E;t+1N$fg4p3*;IZtoEPQUFfvk%xb55^+j zjJ!-h0~PoNh-)^otc12}5q=@;wH(@>8`D}RveL94jDEwkZ$;DFd>r^ohHbjQfhBY& zST-_u8gnyq6bE<8y?zY7ALhpZwvHcTpXX~_$3W*_1bROoyL!0`3C(M z)9L4^wwptnw(T~3xb5b=H{%@1cJqESlI`YvBirpDeToNuxaHUUismIxcIsL@S?}Nx zzvNdu;x%*sqb;xMm-n*eUgp~61@V0FW*js;0h~I6UwA`crm1)6T$2g#%QHg#{j8e} z@&}V^%ClaE{?D4(w%B!{vO=BxL_7z+9pZcEgf~E=#mJx{%j&NIKP+JG13%*6hm9}i zgg5d{W!o&X=XH|wE$5znXsxxObHaNr`grYWJh$tdebRNBc}=VHS?X+KzrX1NGM4_8 zEn@En`~J{n3(X!vx4&8=Yooty#3d;|73&{n?VEnKR&p;K`3LH=`MSMMC|I`7_;~F< zd3dY~zx&hnr}!_xosA z@$sK;f76C7Cy8n5Py`uel%Px~V8j7C_nLJ@d;iu@E z`o2>8Md|yh{Khx^^rg+{-k%S*@t)`8T?v>utEBJVya{gKYp_LRSK@mz{TH2-GKPgA zn{Q3!+HJE%Z9*$H^OJ?)M0w0Eo8 zgFl;d&>3SQ|E?|GF)nf2v+Vuw!^Q~D)BL22k!Kp?yTtCeV|9m(V zwq)T@dxN;bvsIq98q}7Fl^Po^Hhb6#qo1(v%fw6}8xqi=`~K_XH_$$pD(Jw?VS-I_ zaThcT{TdpUO)I)s=Bd}@(L;WOPNMv`)5{~PE;xzuSEiSTrxl$<`LeX~8{zfiPojKj zTKNRN3F{=ve>S~5d7|EBZ~Lc(e_ncd*6d;@QNEvbes|tAe+$`%z3(K-A5JT;v)VdF zDi6J-;1BoznpS=z?JJ){#_?w;zc;OX0^fAoNaf*YDeZH=ExkNBP+CVS4-Kc3=RT5N zo*3iClPLf9Y2_=S&D%yQ4{uCqpZojM$}gmR%}C|p2`S~duTLw#it=AiD_@IDYI0?g zm;RAQ%P4Qwm%$w)!*|&-Typx((vR1E)}s$b@Sl74t0N21lZwI}zaGkUQekpZl3F)?`y9N*?M0(uQmRfnpxo*`jv&8l>K17=UF9vbK7{5HViLEW)v&GP0=O8+rZaa zK|LAUXq!2_4W5;H+IWyQ#9JjRXye`Di^dFZ1KoYZHewmt;MsUj8$ZxEoIE|}GLFhv zp~*wC%E`@S;1QZ>ashey_v6eT_C4(>JgyJ^G5 z!y*0pchf&!Tb)6_UWWbQjpu8{hPlnz(;dRkQ>}dh_;)8~h|`k4;`_|Y`!8kKJ1slu zIy>%e8*NKhO*yydx=_9Ha-ZrCab7$7IQ*yfEjT_fUuOeP^rKUI`fBm#+5;!-uM;~* ze}~0gslTF!y(9H^h8;)uK&JlA2yOdQ_4k4d@GZ&^JE{JjPJjPlg#L=ZEX>f?cp6+c zc;K3F;5r&SQ~Kw?lm2Cdr{dLqFiQWv^uO%i{TcAH)q!7)gP)4+Yb2JiXapP;JzO(F zA6*!;OKv)!Lq^wOW}iXQ-3ZzPuO24Hn5S{z@iaw^zZ3!(MbJuaI|Y$2ATp# z{}lcGdItEycQVF?3P*3DzwhnJ%maj@+cNZ3^zEhnl^(bXe@BC7O8*>qiZ2#ri0xGW z=Fz{`M(JPpf6>2EgP%kD?ZrRe#Ye7v-}B&k-ZfMCpA>txoLKr4TR#UI%i~`X%&y7M zr=$zB5})ChaSzP8JhDtLm*h!bH@60T9bC)-Eh3xJYRskn0I{AeUA+cY}GgN8TDA!Z28=$ zUIE_7=R-T_j;4*dz~v>@7!RPYp@;4B<|9%3RU^8tbTD17l3xruUqqab{6-a&Ei!(^ zOTvl?NmPaU_hTC?Ka-C$=@qxDJz1++6Ifk@Pm}9L;&@k0X1?%kRx)2Y=OxMbiD!Jb zx$(>4FL!co0Jg@)$yWd6^ha@3Zj3K}SJ^icH^%IKRMHQ{Cax^9`X>`x;x7oc%%hBZ zChKb1G>q53V)6$nr!%@PHhm97<@-8SvG! zAh3NA*fv|%MT!gF3QX08;A`WGZ6CGCH`#brc%|ZV@oBL}yie!8-_89nI8&bf88{oi z3-|eEZ1x!d+84H)G42K?(~t#A7*~e_i=7TE1{CjsKUHx!*Knq)<~Y;*+;Ygay|IDz zxjs63~71OF7Sr<@sszAwhMi@y2gm*rgt z*NXWFvNk4Jxr4G=AMz1P7{8id*2+xT8ouZGb1K`$HSeC~`m(=2Zs@{0e=e=N>ms80 zf0;6z?`C=AxxGIlRbIA3TNU}lgp7mc;4yQtsYA$4&TV?s%jZ@9J=FhJnj9=JPjc7*x9D^(1M-})HP`*6)bT_p9L-99rq&Q~FNx{!{2c-z|h6CGg8Gf(_NR`N}x!ojA5&^rbEE zcFnuu=nC!r$=6zlJnBTx(fC~0RRTM3{}R7LTLCNaLapUDv^Dq)nCV%-p{-g&TY>1q zoFgzA4!di61sU*IYkN1R;a4efy54wY;v1avVj+^GR?V{C#1_Nd(MZ;Dtpd@ z!{%IkQhNl{&J)c4oy@=4|BXCQY~MgbAOfFkZ4P}gZ03r2>ms+J&N%G?&${SWkh!+^ zvFgl}VAPdQGw^vyE^P={mozg^bJ1hPS5k0;b`3~dzRV!M`F$Eb>`l|h0>E=J|K|d8J1!*H=hHeO^P;>I z_Ws(e=#QWIXl=+pJb$KgXDWv#G-LF#=lRZpZ)h)Yabu_~0o*J3Ew=ox!q?xFUZ%J) zopEF1x$OgTVWctrg$F*$AL6wa^61;Je1ODZtbzBK`k>d2K=p4D;Gt|Bt$l5^^8ga3 z<%5^`O`M^1y*D8HU!ACuQv-#=zQR8b7>YQ83UVnlrIhODE5{ zhxO$hL91*hacDQ?20DAMBPOjNyR!p)*a1H5gjXh17CxtZe2q&>=G3AOETGIn$|RZN zTI5GJbxSW4pOg&mhBt3#{I79tVvWg}R~EitAHGDM`_Kgv*P_oM$6UPxSz~yFS|4xoNo08iOX@@6E6GF-{4=Y^|D8e`-k~nb~AA! z`>c-7g};B}CywoB$7Z54qC=AVP5W@z6R>f~@eyM-l*2&y|2HM6{6Th&c)RwtFHFNf z#m1)dcf*6hqmcH#SyRJPgh${Dc*VUh{Q4XAx+(jX+H2cB7hW_m1RhmHYKtl(#3V(s z&+c82S2!iT{~6*&Cg=KE%-%tC_Dw4meee=EL!5knkU7p_evvC? zU*g~%LgqG$`s~;x&P)Mzid_;u?}CRYMlYNBy@xqMcepsfe5?KJM#T#F{dy&zFjcp}8Wi>G@n~N?m`FKL`3O!T2 zfp}dF9kCgJx^?%2D^ry_5v2$G;!;wAd{O0tuxxdFV-|l{k`-vg(?zc!R0cOO+ z>?tZ%d@1vj-PZ=6Pr(1;@D=fp%ZYE=pPP#RI|KvzEWR$@t3Ov>UTNZkhvG@3JD}s5 zc$frxwWfljPZngi9GV=89GO``--D4O=VwKF!L?p=lpMa#H89KR^Ai(zWv;(v%-B56 zqR#0%SFyj0P5O8OSY(gQZn**+(7q1scgQ98^;c$vBG+785qV{%6?yFTOJ{WRm1^lyh--w+($Y5LH!zw?3O0VWmB%1a`qk`@{yYF$=M1&2r@_N<3jL# zO3>GG)6&IrmLRhZk=y04^40S0T;k&A2K_BJ6Z2GuZ2DeSsO*-!P}$9#rFj%N^_FBC zvTkXXRkke8Dho`8$4pnf*?kFo7fYyfDRt&iZVcr_J3Gv zG59@6?Zhv31+?-?K~Bq_6-z$I;ax88^1!Vz2DkG1D#_O~1KhfLY<}nWcz27B zTsC}HO&&Nu`6r>Z&MU`~_l0+#=Upl9#xd{X&AgBATSfk_FEH;H`p30YTjTrKvpWCl z%=JX>Ph%cWH}iOU-zs8&XZug%o74MtLi49{{de%gGfRrYX9lp*0_4qt=NAUX^fiLh z`t4xfx}ID7ez0u$oM&%dKBwG&X5C8WzJJ+mbAEpFZF8yvpRHR-IX%Z8F<&??JHXa6 zZQgZ^Z@2R8cK@k$Ma20X8xtz~0sp#JUBBh}@A)6_yLFv5VqN?B?r-=n_n%gWojHGb zcBt$T{u`*P3OV%@`1%g*4fxKidxg47_+LNXI;OEnPd|_Ttq)np;*^yQj0~l}P7Hg% z<-w`_Kl%6R^`+mRsQ$ue5%$ag{cfY*1N7IYy)E=p{g?ksIzoECkb_$f&0t^OH2b{X z*ro8F*;fDC==t{ftU8OiAbOP#*;NA1hA+zAOkN6aMJ_2`SaxV7?|YC{h0u8??Z1xg zp59ja9IH>-w`kVW(1Qx6+xEsAOKavlG%#?{2gs*4rZdMMlS3BU>y4TAb%m~pd$!Au zi@ssx*iiXfo$~l1&$!ho@B72R{9B#!8`yhPL;2@;Z}XPZqdz~-6on#r(<>sqC1WCoXXHn6q!-kJXV=lj_0(|#dFO6lS+D)3 zy^F9l9lycwUuSvODY}T zL%`UnUij#H=>pQbrJvgC0#4reD*O8sK0m>-^$YY2*$wxm&6n41cvQIO`E&KBh_N4r z^e5>#P0Uj*^R$S0l8h~e&rCl4tpm+xg$}Gg?pxl)nuK7{%y-S`oaAeqDEx8nSDSKK zeKF{((IQtLF&f>Jk?pTNd%N)qCD6U%%$;cUZ05HOf0^Rmz4FxbgZkAE+wKVV;e(iO z+M$1g?a)8zpR~7CI_Q++H3xbI*1x$O8dtjk+SPNly%`^b(K*z2>QFiNUH1So-NnBN zS&`TP=QL+om#pO5V!p+HF=+q98Jo%#1DE20yB;oY3@ne+mh>>e!jz%!DkFQThCUi! z$ng~is>!9VZ;>gN#IL9*DtcifHgpHx+pm6NMlu-7-m%!qx|89MSA$bYJOKSRAkJlNKy z_7s_Xx8#!cciQK7gdVo6oR(tNh**!}dDh_bW}esbYyt5WIrv`9o>AoGeOw==e@EzF zwJ)!(=40{tySK<@6HhiUbNofUXH^`?J-gz7MLlt@{aiC|brk~x^!=UcATio8b4HsjysY12@6%b-jcBErZ`j zwP(fy=Onq)y3wJ#h@0I++0l5wJ%y<}+sgx*C~G-??);a6UtWKsg`Yp~S;vRr_!-rn z_{*(M-SRgU;&Y3E!>&yxc(~VULiG>YtHr7IYOEUkgvZKmP1eD`ZwFtH105!(`|07$ zo%o9Cu*t!%#F9||h0IquaTJmly2oEs-~9a_zu8~~jea&4{d|3gZ+VROk3VQX_n|vh z@w`FL!G)Jp2RO~%CZ~?ZvW9)W(AxOeO5V(zq#=ladMn6nf=9ryCn?edmEP6zSFxn&Z_ zct5@%`G5S#^Cb5_)AtV_Upvr%PEiF8rH$F>83TC{^*xUKjqhUr*LBF4Dpju=U^Xr`MmhvskC_%o@e60O6=GspJ$Cl>%E5G1#Epd&%}&O9Mp#gZh(&N zfY-t2;_y4+V*-9RQ0^-m0QLh7d6Ct~iEePtjwewb1p7>u@9sRlHhu^530_Ed&4sVI z{DT;oIje)d{hQ$t_cW3>cagRHrPk(kLHX&aPqOzY{Tx6)uC~ZA2p^NoN?ZYMKpUEa ztA6?ketG%>y|e)r<(3*~7!xtPp@Z{hpr82l{5L^Aj6=L6PQUftwcu;vOn53d9fz;2 zboP*{z75JNQ8O-V=#X~AKVs0+@3+I-p$+Ywl@7EJ`l&3sG%P=3j6O(rieKt0OI!_( zT?@_O4-h{y{z&+ti??S9Z{?c<-^Hg~{5u!?TLu30LL2z@4gV0nCAoi6@jmoLvPJwQ z1+T&B9^m}^zT<0q(Zl25^jDy1<@?R`*||+(@ImpTgoD$MP+#)Win8QOtRFIuwaVwf zS@225(#u$6Z)(jW!8mN3vUPaznU$PDc5bk7TQ%p4NT;n{K~7?HjUsqBzRr4!cu~=% za6@?V;SInc;H*uKQ1AbytP9sYdmXqsao_L*&I7g2{T&T%g6k4smjHI7@q>yKe&CB% z0z=J@;AivF3E>#<6Fz?0aho}%j{l}EKm0{F^nbp~n#Txm%EVtp=d;hw%vJ!XJO7&ErV^hF ztTpTT1Hp)FsrWQt2c6k#4ZiT-MxC<;n;aiy4&UVS%{chc1nNEm{R@3v|fzZYq%lfJx6dvDOj0pT+| zua4h=vBYHL^FJnX>bI;%nfrFjniFP?opFY?#Pr?31bhb*`9F=dD9)m~)VEE0;1X5* zcCuar&ykHh2AZ6UF4g@q>oxdoWt(ny^r`KRKBe!B{mOIcP4F(JiZ7z}rz?58cNv9pdvFU!gu^O(q_%^DBVw5Rd2n^Tfq;0W0a7 z(nVHEmj#CKG4q{Y{D=F=d>8*=MVapv&W^oU<~$E?P(7<!QENp0N6_KFc@ZXO5+Vy~JMY zX6rNI*TMA!aEL*tsv~|Yv6-v`G{1ZIf#x=AzmIhh)^>^Ev2)Ivb*aa`7U|t|ZDb1T zQqzi9m%0}}3^sslZPumsS=5`@6bN4)*BQEZZE?#>E^mdmq{2YCQ0;RNqQF4ot>w%o z^y6&<4X460J`)*ujQ+K#f1H8)5WkOny0QIj%GhWp!`LRXr#5A5ll~n4;5UZG_E^f; z;9HEXDi|JT#`dEvZh4LEM~qE8&gE$z{%lB&3#Z=xrj1jY58>5lIOWQ@GH_SC;>8=G zZ^{V=HJ5IA;iz!Z);Vl^OqY4$_dlF8oZqi;bZFNgL}%cn&g9h?I;6kC3y>$o zf?R0q@yqCwTN8~vey%6KL6dk`iOmB=Pd<1-l6%D){GNCL+2HQ? zT`e~6bM5FZ=+KS34T|@1FWb9|a)V_a;Tum}P2wSJZ)jJ#uD_8o-2aa6Yaf*DEty@w zzs)P-4UXTT3A|>U0|Ufa4rE8vU&+uocB%NeblF%f_IOf!EY$}8>eI*9cE|>&E@OjJ zSCL@GTuPt81}8Via2tHmiEM^=&$}c?n<2SL(>(JHaTlgCbe}TWz zsZ0EN0evaT6=3N{*P@GU~moI$Bw~1|Id=+!hMGrET zBz%PUiB$|VPM#_Bv9b-skourAKk+2hXW;_?je1KA=zIOVkm-dugn zKmLBbm1WlC=TUdhtOv9{Wa^$r-P>Dz%iH)~0cx7;_$kLiQouul#e+0-~(??e(f3KTUK3_7Jp=Tn!{ z=F=mzS%_|dZn@8DJUwje|Cr7pzH3YQBZjAeg0ykaIXQYDOIGVQNt4PhlQBek?Wcjo`2 z?Ofoatj_%ZP9|3Z0)m1@O+t{1fY_qq6l*34cU%U=OmAh|@E@lnDZl_+NAu?oaemt_hiI zMy3v+56N*ezP09#8hq{s%UiXI+}V8mY|SaZ`w>10?TJSlG|y1Ch;s6+B2%GtJN-HG zN#65@;wUy1>qy7uTaWv*t%;tw& z_)zO-;Zpod_-ryZ<{D&eJN%41m_3qR`4rmslUBcG_s7)>z1GACbxNsIN{+1JL&nzO zvjW{*KnyFgfIg64&4G6AfqlNN&g=eb#_sA47k8U`!JTx!;AK9Ht36U-TF;iR0wg-*3g1lDB%V z@>XjHU{?;TTME5ft2xJftv}XQMVw`{jo&^V?i(Ao{z&%Q&z@fP*z2bck2`sKfhXJK z*z_6bFWd3#x+6TB`OoFWWyC8N4oBxXyeZwTb^2{1feD(A^kC~;X4^Wnzwa=5qzXM^ z+Ce60*SFv`&kD^eh5g7wgQk=#t9liiioQbp-bXo=lv&01*4i&IhQB0NW)SxB;JVgo z#{_)vP(C=b+t#F`q3jcC$x~F2_j~`uk#P6QOIc)w{29&)OwesF^isC_`0IKpm$}Uf%;ao#awppF zB@a3KbN;%1zM{JJ7cQ%Nd;jHi*#p^=bij(WL%WlE|GMs-17EH?IdN#+JB3%&ojkyA zM=kE{o9ep{ov3?X7eLpOhqwp!FnaZB`_B1C;j3>x_t=qd-uKMu1D;C^e?FGwFMD2d zxTn9dwH~{I{0MkRHug#M=G*AVXWz~UU~3M3?)68HT>t8GrtU#}gGZ@*Jv35VMLe&g z?v|f;R^&my+bDk^pE;U5&2`AjYi~b#0-~rAP00?8vzB z{66;8)8k%y+x#9PNAV=NBc|`K76f$fp(|hQZ*Y(5QS6c{Y+Lc0jA{0B>yE5{4xVKU zA>dvHTz3F#IdCoFxgB1~0iJg1y+i#i$SU>|zvtFp#_z4mk%f`W8{8!t;;vlXZ&3Je z#6pj=r)ms#(*4Xg$NavgCCpQA`F+ZJYh5lG@>5Uu?6St1iyfmrXmiJ@jEUXpKBgDC zcj^{oAHI@IC&~Un;B;kQW6`>>;=j@X`F8nE9k5Mh9UV}__Yh_8Wd3Qxk8U+Cr5v!W(U3%v&i&+C*%^K)k#45J123oVBa#Iu@S$%F;U^VZ1 zS|e3nh3ag<<6Yc|Gf+eBf7I!M|qdqFbH@{+EEI7Wj_?f76CFo6`CH5WlzZ`^)?u=lAr$ z_cp1V)_di;w&yc+|zzQP>?PEKj0&>~0JiVeE+d^LFs z8(8%vMz?a;q{Yy$1Y1UZ(ubY5puGN+`Wy9*wyhh-Q}(;NZqRcfa3Fi*_`ZR*a``uL zo)SCvT6p>RvX80{f;%_9+GgSzUHSKBpE5dp5#!DGUmd`1immtve+c+w|HaGG>$IMa zTyH3DxF!&0&eUEH?YU)LETB6ZTzcG@R&gYZ4|tjM#vu3=UvVpTe;A&TZQ3Z_&7mGT zBM96dR(b-8;f0A8`QgzJJ>14 z&8^VEjy>DscH38boqhCDb`v>f5A!d+626XrFRc%__r^kbKUBTou-kv=2}`^8~pb^8anRS!OLK@w=N> z(U18gjrgwmqUN?ZFp=jeg{}6ToQn zVD#o*^^?}Gnw_X`{UrQwT#63&RM z(Yh{kzsjD~7@>a%y5j@ASDZRA&`3_)Cd%kc1OqdDJOa$btKVDw>#?61=40xUz6nYv z;rELP_^s!ii{Dd~wmy2r=%cRtRKg3e&+!LL4$3s-WfpcidZF1m_wR?!{q51r_tqa7 z^@pFG{;{Xwbc>Z)B^tD#Td<$^9RIfUE#a-pCrh*A$CZvwKyIVRY!f<2_i=r4o2m6n z;2X7B0iQ|s-59ynJhX>i`-1l@hkt~32H@5r}aOm>q!$v;4@)s2QR}MoHI8(m8_7^?P7?i{0`k3Y(BBxv;o|IGkhZXj@ z?YgHyx&K-VR*s3zYcT6Qj5!~lR{3RGGpJFlkueA1GucUsMRm>vl+o`7C%hvcwpuv< zIezLdXrmDw&w8B`SM7bR$c?w}_ynB%hr?ImE&aLpsWbAMoNwPWhp{l8C^S?KnC{wW zfwx-Wtt@zJG`v*@Z)JM23~wp-x_KVHA^a7G7xLkSWW3q9wdKeh zz6UoQ=eL@j-`mv5ThL&wq1}bBT#H?`oi&#lc;P8GG>)0Nacpgd)CapJpe$p3V$4gAVl(ZF{Tn}lXl`RzFQC#(3* zy;^~CE4@8JelmL;4@ZE3Gh7b8#GNNo$v>B@C=RoZKJ2|f-ul9SXI|$wtpk#K#$N6( zB;O^3T_D|D4ovHi%W?&RZgac1`R@}}Q63b}}(||Wl z{*1<;x{HWi5KH$d$Hv3=XqI%n_9J=ghh8LX>f?LlUaP%Tv}B8oZ5EFk=t+j zN_Wc1MtT}wZA8E4O}#vx^VBCkhh&ZVG53A*?XRC6@yy#Q*B<1Z=Em|-zy@9u%cWoc z>gl`hv&(H$8w31hPp`9SV9T$KH`i7Xy^Sn5G<5O$;+`a$Z|IHYiZ5wzMjSumI$(Ku z>5^Nt7ozYW{t^8bHd!msA9EkhOs&d1X#FblYX8y9w5+N&?2}yl{cLQNDBpEYpKPOA zbhgWb`b~1u%G@elDA`%ce51aC&`^8G&ri1=hp+c&j#2)Y^tU|*JFnH%|H)(2y0G@p z3l}zDC%@O(Sl;@9uvEKTR$yv+IyU+)T)(}5KHxv)*Vcx3o`_4Og4wmyL{d}q< z#pJWiSju`?NorC)TT_h{YkL75y@l~sqoa3Vw>^*k*^HmQ7u~v%_m$|^a{i58P1LEx zD9K$Yx!&5-vc(^Z!@Jv{N$Y0aZRg+j2=R*R);)W=(9>s`cq9Bga~HU~3m;&+)wc&d z>71QH&WYq(r=X>F2mG$Ty{9F$|tDjZuqgUNfA-GruZr}<0w0%zj z%Wz=PdWmFek^@IRaLA8y-$#LCIB-zT$kgXt7?9`0a;ddz}~s z_8#j@CY}^QMzvogq(0{OW6xC^pZQ2-DzQ!4%2$qxQ_tjx%_jHG;H`h4@&9ozkhk-! z?49{@Z?X3U%m$aruXDzc51i=ko0@1(_>li3d_;Jj2`*e&W{%=czCp=zl*7a1#=L1+ z-oVrJN$%aw{DvD$Ul;U&Es_QuO&@vm!Sm-#ANCz3NqWU;+qEz3vpMW@I*eX%-gnxE z&|BxH1_`8_g{q{myuQaf!7%RAR-p z_hpS`Il2P7_HM@WQpNay=7@awJ_5c=@Ku*!`z(ca_rUwFkk1)ppH~R`D~z6ga4ctN zlmNpdXiRyv?Y3id>2f=^r`Vg$dXr9W<6nF9me5}dXPq3dGTJpqs(vN?Ev3JE=%()9J!STpA6fMaKcPRjy`K6NzFUD=eUGQ_rSzQ{x}Lr>+YdT@H`3QV^nEXVFQe~S zrtfU}&SI>6>WeO-Z@1mvVbJ(9>a{Pch4I>O*|w)(lON#Xuc!BIOVI7)Z?E*no-MKh?;szCiJOalf>-^u&L=jz1X&}Ndjfi$ zByOPfHqo`v%5Hy_9O`ytPyBLnBK?;l&nqnxds2Rd@*0$rS>X6O3-NV=51?CTQHM6P z7AQH^@7g;d`QJ7|u}S3q0e@`gzjRdRjle#e#v0{tYqyJwTzGOD>)FBbB3}h_c<6rm zVax@LS>F%Bmm}$$e2myAXh(blzR5IvdUOmtN*T8;6Ca};*#=q{y_5FT)&QOr#~R_Z z)55qTJV$wMqFtSnac;czIKJT#!C}LYUf-8Ob-TbZ? zODS`W-pQv7^6B1bI~kp}ntM(!|M&CNZo86ubGNP2XDv2&D`(H%y>!&MB?B_5+&(o& zVdMiE^3p`hYtpjd!xKM?bTGyrzw!>EPFcER1sS zG8&vb+^GjL>sNNeuiIvCc-G#tBs{}&-SPZHH#~Q>`RVwc{t5V&ozN4$f3~L!-)>*s z@&04*p7r*FN0%%eeQxQ1%&O7QdNj1Y4!pDWeiL)MIbS9--^IK3^xAmeb%l%fKJ_lW zt^rP0U*w{P7U9=)$Nv}y|3%<`w1fZa!2d4|{-qbQ>T`O*zuR_ibQs*74#<6XI^5a| z9lF~7bb3UwVSD5MfxXb<%RSJ;?Xx>w*u3zo>!8chrPrOiXFyifb5}D~`{Sv($(dc|=U?fvauukjbNKCk^xX-WQKXa}@^9=yC@#hUiB zZd1+wX8sSbuc>?h`P2RDR$XuHR+;7l%=NW)x#(WIj_M!yredE7XSCHapJAiQ&wGk9 z`h!*Q(t7&YNS!J_I_BKJFD7P~M$GV9Vuss^8Lqa{Ow3R?3C*UTS(L|ah~m$e6FXE~ zCrF#}k90nU)}+;ka@d0WCY~)Iw;&0QS(Kj*9Ps0n_j2#Hau1v~WP3z-7v)`U0Nu=( zmBZY`xW&hAIrSA`Jc~#1k3XaRQBC_jzRTCaL)bZ?dBC}hfAALBU*s#b%6CP0AEBK* zb9UynfzA7!oOypv0GmVkzR7#ong1nM%Bf`CFD5_CBcFlaWxEw1BgRkReIDQ4`m#Ud z-zax^84qudS!v zgAI~jk!RM*O4wUgYK;!$5;O5b1Ia2r)Se*rO$hsFtmpt=`^{Ky2rOi*p*idoV~)z# zeC3SQg%SVXj8!>m(iJD!N0zR!(y!t%tvtJRh)tUF6>}f-)X6SR_p6-ZE$Q|DOSzPV z_VY2m3zih%E(Y!b`qUkslXcEJus2DbfY-C}qiW@V+;^=%MtpKlKVZ~YS;@#@A5_yKv>y6i%8CPYCX zPvfVap(pL+(~gHRhiJp`MK`#9y>w@k_O#y|Ipd;WRjcx-5&&@a}b{Vu(~TpK<^u{ zSuN#m>)mGL$jchCZ1a`KRV6Y~&Y0J_>!fM+8rpLBeHvpbap_(d2>-0Z?BT-??iwHG z0GnCN`y4*r4K~jUw_$#3FuXJ<&~#L7!beVzF|+tb%?!K40t(EFy7(6H~V4(@`K<@t8Xj=q{R-BQl& zT|iz)h#1d3&=|I7TiL=$e)RRqMc}H$0u$2Rha#v z+=rz(Cpa=N@~`ami@%(Wj)3N>Bl>r**M0tp4ncq9FfZf+FEPx4mwfWP`Zw4`?)p-j znLE4k35xn-e`M3|7B}PDqEB zKEYWTKae`0yC!$I7ha`Eimb7B2L}A|)Qq z%JQ%u_;Rz)xArn?cgr069s7OF`{*xUlJ4?VHgd3Jelz0<1r0&wE@Z-SpUGPlNu z)-exorpaxA@FB)=7@8NP2SoQ^sW&kDFYNsZtH=en>wn(V|DEbH&!B7G;~4fp8Zu|v zY4DkOB|NRjoL3y4#izZmq;sCBl&&c$vd_GQSJ5ef2+x`ys>p$Hb#8D6bM73nOE9<3qsbq@q};uqftx1pcbEVxi68 zYaX~NNeQGnxXLFM*W^XQ0i$zw05|h(nsl!4!1GMtP~5Gl zma(9Z-Poz(o5H2h&kHHbb0KAaS;2W1j4PjWB*{HFm9p^hBg1Ze@^oIqLz_zP2F@*_ z^N>3F-;iH%b0Bm8cpHH|k`@R};Cq25@SEFhIu|jojsTVwcOZZ0H`z_0{qR4!%~^T_NAR%~uUn?2QO-ojbQ%;g=84qd!i zhCcBzl7%afg)8e?-onm?t}Sn1Yg4ZEDB~+l?@=}%{L%Sp3x7oI-JR>N>!7`*BRLy< zOAfiiSJgF-DT+0}i%w}_?JC>a-CR1&Hx;|>g7Uf7ke{1tmxph%!C&_>;-$NDZC+YB z(z46KPt6(AeRnhOHP=q}HK$t>)yGTcGHzDfy99kx*~i-LhcBjNeN=7ndywBHzoVh6 z*2`Uf{O5-qeym}<#92l=^jzigB5NX7xxCnLqv1tY&Pw1#Ba;p<%Dyo&$+KkVX>vc@ zvWa}jTAhjMM`{#Tw|O{Ce95!c#(zk?0(kQWg0lm-<9?&Fg3vnzy?=|mB=VPdC6Pyh z$Egz$4^bXI(U}H^ojNXmbg$Fsyzh&(8gV>;=`miaG=B zOo4r`V)y$|?lJv!?e|MOZ)4hB7v6_3g7*KI{l{$=Js$tAp2pMXj~LG>$G^=oIe(XR zetI^c~zz1K*AM4sCRQ$+VI3t2wJC z7r)xr(29*IufvY5PnG>Mp7xpl*gsq)HjO@Kp|5767Ya&z%{t>-z8dFz zn><6#*=nYJ?WJa2B+xuj<#?V%J?I;utYj!yiM;?V=l>h~c(u1=yz&CA-5&XnV{ALa z=7VnjHo1x7iGA4#d|2xDCFc8m68$%CcF#7kj2>58Pt(@L(%)V0eR%AJ>%9@?Lap_N zHiE15jJH}c%YI1CS&$v7a|@M^p}Dzr0=}-tI+Z@~p-rvxICp4Z<)+sA(IZ7xpcP!C zu@(?q@9$hwilX@**+5X z&J!Kg3oj+lX`|z(Ge`J&kKUUY^mg*UImXz!T9qz$tzOFPAZYhR??L$hXp-QsH0_m%Po3D*gS^)} zmC-wuF+AqRt|s7b5zCd&7^aU@=S&Cr3Bh@s^8|h(@N;y&vHP$k3j%BRcKMhuY9AIp zCU&6NmtDes#mVefOqI=&a6ZIc*ngbwXU;KC^LO39)R&wj`O_ur=_1!7mPY(w4Rees zj}4ek|7lyh%Co{`$~S=<-AkdeYiL_%Iiz6|$`48lG9U5m-tqK4xee+=G2k@pMYm35 zKD>wBXzIuwdb1Rt_S>{8KFSBqV6_vwTml_R$-VAn-~AUKxA)z9oc;EG z-F?CSd#yhNmq3eB`qy4;e7ME%@tyE=E^G8f=-TU@x+%ObCI`&V`y$?Z6Y82c6}k<3 z+|VUIfi4H3OQ-J-T??SgFz6y%G6i^ahM{62ixcRQ3SBh!*D`juOabGS59EO^MU-Ep z@(x`*&_#T@IiY+Ax_F?A%C4fUVlf_vE*^(2s`FT49dxG$x^&i=&2wUmf#-)PFTGME zpAmY59zb?hTCtzc`egn#d<`$Vyr^8sATdsIy7#zvJ8E*U?3hVUc*_TGik;YW9IY7k zzB?Vfi5@B7?Q6j2#!MD#Pj6n|KqWLY-?771^Bw!joV8+V*-3<6I8@cO`9vXy<4zc}V>GwPOB+M24k^MpFk|F5I9PTE-PO+RnJD%m_L9u6U!=3Gw3C>_LAPMS=BCW&(k&+U}`WAQEC)4Hs9PxQ3)vdw?F*mHWXcP1~X+xwp4n9|vy%${|2 zbvJ!&&R0aQB<5!upC_BVlOe=0`{P@p?|+Z}o9bn}9_*epS^DKomZA#ubi8|AV)8qJvE0`+k5x4Z!e2B-MxHze%R>D^!oUN z?2G0*xp=Il_;<-Kewlqk%EisSmi%1jT?@a*cUvn$Jexguz;1yjx1R2$i1V9tvirV* zKFg`&=X1+>>(r~%eF~pUar2|XhXa3apNp>YA1$Q*Lh7l$&Tj82o0fFex29Y>-kW8| zd$~8}Ol5Xbyf@g`- zQew&>V#ne6#FQg_e9;He%9>WDl{J^Am9)~tB zAzBY#IoKK+TDJ1seDgW!To9Ol3l0{Nzt{$RuXKZNH1KI{l)e5dcsF+$urC9?dx8BP z-pQU*-^!yCJUcj>qTPWQIOWy0p~;|BLlceD&UsL5BBj26W4yWndsx4Z z{W)i9G5;2_2cm#{x6zs8wtO^wBjfgEan@4_&*T&xp7~Mv#+jb-AM~;Mu;;?g50mdC z8%H^oL3lDm&SIGOiqSQd+4kBU@7%t%Psy&MyiDbUrI@v;#PW9hM88X?xaBR%%kEQK z&b=Q!wC}dpRj&{AlHvLDx1Zf@yyd&bLu1i3SdwbuI7>2+?UKp9kI?IPcwi*{!J(DP zr>!5-jedBAe7G}}nMwK~v?Q}Ed~|>>vOKda8X4egY8l{bZXe)ld3S)X_5A_9whspQ zPL!+6mwYdhyBuCJz07;7|ETh!53=SJo-?&9GJkqmxy9Kc1%r+(|4jUwM=v8`{~fLU@~yK%5RA8^;#na0bL=p7l9O6)PUESQms zua`=0Pfim4{~MT1ZjU!Lwlc?=7o1Ps-)8Tz@FItjFXkiWeh+bI<`Znfn*ttmi2U)p zIa@F|J|%V)^y=P6V?rPEhuVEiaz2BzCxZj6H|zd(ud~)HdG;DTs2FQIwA6kS$(o^i z#iHdoX))Y%6f$>+d;JIWTFwTU}U=ro?jngHA1FjWR?# z@&&!r4^sZ!{mf%)q2Zt`UwAz_qCuaHDwxpKjTxt!C zG6yt`EQ%c)sPB``?dP+J&psW*+Gy|af5xlN&gmCW>^(7$;H(47`~mhn5*m{dJ6nW=4scj}xxTFlubsj-esYv@VfImYMPeCC+vN#{B;^vv7|AB1YA`@-|!hZm;%qI-dH zKQJBu#ztT~1dK~2m$`FuA|G_;w~v>AJdgZIjtAEIz;;8%d{WLDWV;VdD(;R_Ow@Ci_V^u z!uUL$eX9S7ZoiZ0mpaiQ;FW$aQ@>Xr^WIC7__xNzK_n#>rfe?$!_r~Mz3QVcB>O?? zocbC3ycfB@AGyaaic})^YmxgZ&0r743}4%V8NL%QIC2jRiT%Ik zv^oE(1i42}TR1m058L1@yw)ApKXvMyj3D>$T+WrY+;?1I%l#xiPXbqtc}DKbk$dk9 zUwADtGH8Y`Is_PVfH4;s3xIJXFjjYy`;s9>|99v0(N5oS`t7*P=JjLFr~0{%IQzPT zeFBeQZ&zV&yLO~vfObxkhxx~Y4eBxWp=@rWXL{+cUqXK?nFowd<$QMbx9ZQ=-zoBw zTv_h8#2KIS`G3*hZxZ@jiS9S!b3WDIA3bmPg2(*{{Y+wBP(PX<^!exPXInx)9nO5< z&JUlZAI%H5(YEx+t$cpk-0(nZ?{mXyZ2H@n3nugbHU4ks|F8Jh+_0Fr;nxXsgXRc( zekd^W!;CvLKU|wMKQxz)_eERM@WsuUERAzEJh3yCqm$(Qt1f2GpoOk7~^;4)kPkQbbgBmSaOcmM6y&{pR6&E^yO5u-jzuIVBC!I4`p013ndd;QavRhmL{)PA--GY07gCc}qr$T|PS{ z_A+f`?im+o?ayz6_-7t!rCu;Mtt>*EAUumXx{-E?M>G?cXd*rlJ>+2xKev9IY}IZ! z7}^a7Ia6&MEHr0S^&!^DdME2>p>}MbcRjHir!X(RFs1B7J9GWAS-$Z8DP@tBvwYF= zS-z&qS-$pn$p>0H%hysh%h$SomapyblrmeVTx)dLiAYgwI_uXbmK4QiX#F~ON?E88 zn_(7nA$e%gL(FaDvo+5vVhlyGLQh8f%r97T+lZgEMm(&&Vxu4S#5~ex3p}yDrNoDc zk)$kAPP?*LT&o41g4c_&F?z!1R;Qg#e72{Rg^p$W z!tbY*McT7{(RZ_bP48#>nm@?)wRB|rTI1QiHZS-bW%qlGPvIlSJmY_ibZ{EE@&cT$ zad9G?#=WtXBkVTj^QksAo99XA^t+*p@Jc(0dhy$C8*$nIuN}i3IQUc>E3qR*m-&3E zjrKP@u@j}p5qxIk3tp3a1xt%KS5q;z0f7?y(_+pnD6SY0AP+A#*{u6>MxOSq`{_z_ppr z2%llWM~optd#`0ZJt1*+k_cOOm3S_f~Z&}ebfkDWM zXcx(0A4(5-8mimq)D2R`B3GjiG|h&lS}#-G6X?Qr${ibI<0oEo;oN<10xmXVgNjz6 znj+TQiLpB|gA>eI?eBVGYd<3%;14jfn z?)r>y{Pkz7AFuMnR%Y4bFudmP+d02?AJ?S`;|f=ylZjind?s5mkDIdYh|=VpB8E%?qg_|CQX&O7j(pU?80IF?#g{6%8QeXSLF#HeL2 zhp_+tb1ypoDDkImak4QE?mJk2Fl$8QUTZDL&skZ>Byu$(NhTLE^dRAXI=( zeZ)SGL%CO>0_Jbx1#aD9Y*JgF_UX)%vTZawZ`~~yJvO;)bqeeEn`ij2&nHG}XZTY2 zT#UTBxmW62@oLaH_%-^(wz1o8$nLT2Fm2wMV%=zPL9BWKYgfcq=Nfn#`t?}HhPCH+ z_L_$4x7zUA<@@&7mRUH>@8F_lXrUjO-nViv!N+CkIvfzmqQ_eGOlnZG?v?pEwV1a?6@BtS`P` z^N@|3Zu6+t9?)@`OTP{ciFHhrE_2H^u)Y;3C7u$QTBbYjIInD3h3Yu)?f~Ar597P- z^4)lrsl5HJ8x7sIGQ{IHeS%gOeYS&pdwt+KgYVI^z<1-=WPDFc z$Ja>5?n;lHiHuFc*>A`JGxKX1@S{F*k&ny2lj zGdVX;Yxd^(qXpmBbDxiLzP~>n-!q+aoFx-l+l$OjkF{=0+2{5f0)}9%H`ZKwMOo9l z^q9^tX~PCOGbnkjXpaNW0oHS#Mb2g-`!hWw12ge~hSBy3)?n&)KC1>oIlp9@JLe9lh@G%wNYbrRIiY+=7xV~D}y0Lg)8*}kl zVCvq!*WoS2rq2!<%==`xJDmPmi`sK$(9k3tSGYK?#1G-!8R{qU?Mdf-bM_^~zWuvS z^uMG`You-*T)Cj#>9)je6S_?XN2~pPI`0Qb(hrSe4KL~pv-|S=vAET@{Sol0ePLSD zFX*A|FD10?wk7;Uz@_13r_Fb&i}$^bKl?5?6E5Eax2GK3z7H-#-hss2>@%r_-xlot zR_`FzeEO45a7n#wM-2*?^R>ML>bG#O{EHvP=iZC1T?T(V>dCCS=SJ(s=dxb8^0hr# zIq!J;U3Z+bz3-gB`Qg+w}K;;U5StGtm`HVI!%F_gCZ!N~)j*fD&uHu^eSIWo{4 z{;#_*y*nA1N~65(ueDKM{+eLS;nUPFxtevFkxApf-L1cIO00EOYHagZyYH2Js*U;P zdD6K_=9x7ueChU$-q;D^DMkIXKA2r^{F555i9e9j#oEAxz$M&+9$HXj_DYlY+O?-v z`ENBPvTcohtC(4Y=S}1fMUge-eP2sX+ZxI>A%EJ-rhJVQa%3YsZ=jrF{lU%X3;gbM z^5{lT{(F>$hv-c{6 zHAJmD`0=&2qSM@WqYhd=%pP+FpUR$~jWOhBF3TSr(7E(Q$jhi-SUz`*t&E`!IB&;S zSa+~r;4idCdsW{+kh+u5$Dz$rh{w+&9zUflI*S<5>{-O)i4V;qJ~W^B(1KaSCkwhn*1EwWD`@w}M~RTaxg78+Z|{nc$oAaQ2Za zb(7#`&rA}&Z={^g-Z=rT`+)1teaqlBo18{N8wb~;DXV?U!D?^k__=o=b_Y0kJ=8Do zBH!P^w?EGL|JzuPH)rlwmBcE)PhKH*lEHa(Nlf_E8C~6RDj3@7*Tt>c(!RMMbuOl? zON-}$<4N=ZcLuZ{{5@y8>+FBvSOgrziYE5dp4+F}#>>QMMWYb9>o9a8?zB6!9y%cx zpG2qWen?~@sp^@guEsRO{Szi*n0{oC$ zF)_I1LVUYzb;r|p!BZ4Di$J5r+yQ$Q8{-UkOPu4zuuoBTMs(I>e3P7rk?g>Je%?Ts27O|eh`~8AL=$G^O8`!sDagW$-S?u*0;*ZVeoY|5F&PY={ z6`DWw_WA0{zacivyM@U9B4juf{p{YudKY@&PG^6{U0aDqoApt9-~Z>}8|t8Mv>)8R z>n`FJ zysu`QI)nR3C#U>L=%&42zffKgW7e4|N49=k{UoUc@;PL;iJ#3p2|Vtc(mbBM(z@#%w*p_METW5HUwzA+gw_dT=-j|VB&wc0T zoyEMH_^!9_zr8K_t_S14W`pzoHa~6s$mXXIauV*({`?;N&riEwo_%*0+%JDG?OyDD zN3}l#-I*w#x}!_Dzwfc+y_BvTe9M9Ry%fO33tM)pWi(X zFU|)?)10!%8ab7LF!}~P`kqxW&g9WnZ#!SzG(qiXe^7dR75E4tKSku(*<(|4b7$6yQunl z@77n}%9m|rd|CZC+kYVYlhAc1z`t^(MZeLkS#md1pxl$$elPp1$EI-~iw9fJ)3-`~ z-|?9D)JgW6hYHbI=tJr4c64(ay4$9K&K2wj41Md@gD36B+%DV{YEQOvzT|BCe8~{{ zHi*7AI^3K=+Og?+Q&MzqLq@rmARLx-C2Pm&xfpE%9Tr!MY9KjIuiM89S5vf@Hl z(#IOcRLFRqL?4J3wU^t4U3&j^!JmM8jl-qsQ;Z{hKx!2{!#xH5eQTlVYT)-S9ez$U z(0p;b1GCyn;`0pnEIc?BnPeJ3eH~_bX<;O}=kC^-|6rh1VkspyMoL9r{ad zllEnUn@sqj4cd){_9wuF&RmUxLpyhxvsul!?0jyWYub!lG$9u)@Rjy+yhbcg`_;6M zE))Mg3qQXPF{8g>oD10V{V4cb0I!W=f7mSg$i??6C3c+Y>2o-fawol+hnIb{?vXK` z>?+M`C+I`Gs(6#mdu>JL>~nwn)R*R3k5_OOTH^iM!BX(Ggz=%zG}ksQ=My<-x}Q(z zzfHV}oajEEQs}F*k0e+66iru?6StcC>3_TRe04#lr>gY5?;I`NYW>P{ zNaqmgj3RRe(HM`h$y%{vJjN9I`n_Bd06rI*pN4A*R4?sJiNy-nj9zR=>c0s&3 zi#bJpiosW<9b0$DZtRai$jA`*B?o(-`C0gQFaaO3M-unZHs|_dKLtnFmz{q$z9!iD zp8qU--INrsZJCq7*-RPOpc#xKgK=aq?hMAC0S+^OKO=Ug=B6b7Y6&zmaa{Ig1>xN| zcTjBQQ#mkh9MPQP3$AoVa0hw42lI(>&zTm}eHD4+l{d|rMnBWYn@KU}UMMctPQ0m2 zYb&|RC9&&PoM!*aAl9DeO^a=1{t|z%wnj|o@&J3IIj_sU<2W6kS?|o6DtEsv#qN|| z2(BkT33+0E+@SpO+wnQ$)t-G?&k2vghsyr$uE=$y7BK@ z^76w+M*g_&wC?@LXAXUuJ0p(|_N=I2tlFQ{JSRPHg=DsrTqwS4Z6VC>lHaJATRnl+ zE$6GZv+stuQZpQ zPe=gAdcB=5Rbzj~$@QX*oh?>=pyiFUSj)s|u@=_KTPID6wZ6q? zA)n-eMJShtJXv`+1;VtUd8@-a-fpYJ`K+`*O?wrb|4BZXX^-48(_XvN-n+E-KKT70 zE!KgrU(Q)r%(Xi+Jp;ilzt`|j+hN{?=kR?V=3#F~y` z7ZICm$t4zAK>QAzxqSN^a2BzLD!-!dh3CRn(Js76JQ6;d5I8{|kkHJro?^8MGl}2o%yWBlYo}c8-&NJm4Oq~TmJcGSD z#s{-Z6zH|x8W})d zvG;Ti2C~Dt%^L1EI#ZCmm%-=MjpknIYvx@!w$(z#q|iHIXd5zm$G)pXdVU;wE(ouL z;FU16J_{_}+x(%^rtBBlF=x@0-CHn5RsQ$PK`tD_wPze2E%cvVSx&=J+K1F4?>|zD(Xv zu+ga-&AlAHytI=q!~NmOZ05ppckJ4;lvckMo(Y!2m)Y=TfAM7>crLlk(@vYoe3=Y$ zn_H#_zWk>1?oZ*%$Xo2)=bVe~y#Cc5+KeukV((S2w0Sxa?>+JS+wj6e|M-o6ybC@K z;_HQ2FZvK&zg0P-@WD5bhhQbR$+2ZNN$;;k?+-%n4=F-M@W1H0{g~uo3Vw3G_Oa~6 zyA|Gjmv-L9Cr~@?d+kj=0q)^-`!(#dBos?%-tMatd3lSVrP-s43}{XzF0r$8;q}Zr{$0D-rxyl?(n0iPa#hl(Yvc;NTHodV9Nr^S zroT4&I6)tRNA0)K{t3oluibKf|M;msGakm$%$R-zJ)~3c{fD@FdBxMMJj=&cd@A@Z zc({K`EFwMLfnW9kbMgaevFQ7J2dA>Le)b%`${SYf?3@u7;CQ5i#2o9IrjqQLVDFIl|b!#cy6?pL0cBoulN| zCx6I37ld|nma_7eQkg5{JDYu%{Qg(u-56gcvCl2!Ce%zdYoK@2#@*=UH2g@}o#_=; zpvBZzOgXK-*wp82cBlTe==tsFdBs6KX*|u0eFS;m!TZ@W@GgGMpgCp7Q?XwMaKGMQ z?x@2DKmK>tiX!}X_?TGT&4KldJ6MelgqBzB!k()F?*&A1jMIf8RsU`c_$%QxT4Tmw$cKIG-tl6MGo3%8T+<>&=d$LOLzLNDBE>Knaa>Z2ESN-wNNj$C**{~6)U`;71o z=mp-dB*44;&j|0CIP)d?6TSH-;WujPUx?qa3GkNu8R32TGs64RUf`8~)5QF3=6iHe z1YIP*TsFa0)~thTnZv7)pY_aZ8;OHe<1=h#zSu&Hw+8>Fmfwko{qzsS2iKy@s*t7i zw6hU;s`gWs_O`GtTEkjHtv_~KhaDF)@i6X)EKC{DJ_DcWOi6lDJj|crC#NetNylx6 zMBd*rIPPW~zeE2C zKCSnSCNBMP|E~L(!|z*VisNdnxTHVhEa3dPL5y{z6`L}I@e&`@8MMtqI9rx6wB%40 z9<%(Ti1+$;JxyE_`P*r+XJ9}1N-3;C7h6}^_5FUGUh z8m5SrPFbzRb6%G@Bav9sO`!swu|Yy3`DA{R&EZ){U4B>Ho2i?E4H4n}goJj2W2iHU zI?fr5rmcxQv-Zpx80M@-*%Y3w)a7@zRiL(lJo7$}?_14zVyS^OjLXBg^8HuZXNUo- z;xg{Ko;eE=+sW9%dDI`{j}4$c^I#d{Ec@4coV8%q;v2jR{;M+2Gr%LSeIkLEu`bOOJ54j8YuV<`aM&SocFuNZFeN?z5yN%BM(P`?JeMHFUFoOW}TpZ`80A8G2r>jNB{fzqnOithkM;0*31f2f>0qLy$+n7NN) zP+-wE?7V8;Lr>|q6#o-Pp7d`&J`(S@ zp|3{;={XsRY(2OYK*-D~sK=s+rZdoen=hM2QraI!CcPu|7bUh8q)FQJ?) zq^(XUpynHaKk(j!5T_D7~ZSJe^a_58a23|to%wu9Xp8B#Ml2b%Z zdrCqMk>Fo=D|u!9F8GH#R5M%w~i0BPBpMDcl;{OS|pBI1B_AbnqPhWv!``0bN+SwmdW0n*B(8h z=WU~T9_sg%zv@|0#P<@`r6QceR(igCW2yDv5429LTq4~MrufruJl5djx{rFKHTOyS zY#g`lNX@g)oGyLt)zc-fzoUDS+dX>6UC=eRKX!y?jh4(Q5tbMRGlg`0mR6NZMFS z8xN85(Xe#bxfSS7$;%tG@lC#m!Ji*ki@@FM;FP}hxOFv_yC~C%<4Om|vuVE@j$6t; z0mqf#cy{kNe(&i798)$-*={)Ax!u9>KFWR~jwgZN`!B%p2I2UjWE}7OBpk0z#PR*$ zcv6oz-YHwNJC27sIQ|FPxJ)<(kKojlRXlD0ziF*`?a4=v)Q)?`tTlVMFQpb)8-=XJ zt;}Vs$a9b!Jj-3_;&0`Hrx3TD0*&1~ICM0zS3B3o#H`@a0?ur7Gq@F|X%vKDs5}=oU|v+wQgW&)UsRm80yr?;*b@kVD_fm)b{PrO&N9QgHio z^yOW~IE@Zl+}GA&t0addR%{r3pc|A!$J(x)L-$fO^B^#kGtOu!b0K5BQ}ZOWb7Mj3 zS97Qx@3wQk&Xb>^+`8}NU>w#0h`!&Zi|1nPi zhdu9m^qXW78u{%xf2ReXF^BD2ME@nwNd5mW{c7&VCNS@dm_zev>m+wHbh7~ro%5ag zf?xciu_-S|v^(sMf#)#u`lro7C#(r_c13yW9eSq?U~4<+qUChZo!@f7cQP%9NPI_=(}0?$H>Ae_?>&LeWpFuBbPE> z^0or^ARG6R53SrT=sLG$0=%_PwW>^;}%iDMQ+)lq#O~TLIx*cQc&03S2I*Vv)@jYna%F<=9H# zTsfkJ%<1=nC*?S}`8eB{&+^x01j6L;{_6wC|1{QaC>Pnxc;NG#VTYeXf? z!6Sy^&w0}iw;+ElspUUtveK&T9E9BZzRc@|dDf{}*x#D#)?SYud-j>rEziDwdhH!8 z(r4|>$jo) zvL%l_X4(}`+hg_b8l>^hwN7Ctc8=dZyELu-plJ9XpAS6Ax#^=Ae*_wqgCirqJ<#z< z7EwCk{ZfkW?|`?+8E5S`f#;d+g3*ji<2=M&k9w|PJcX>UoAJZ9rtGWIrRZtkGWk&J zJm#$GLhLe+J^r$_PJPoyCOK0L9+Pv_3B%kJ-)!Lwo{(I*yrIv7He9i_cL3KnpF6$w zxnG_;!-mtquDq=Vat{;eHePk%3)4TJ zrVTzrPXC9PqiUx-ce-}nYo}Yr+5LNXw>^(Mf(_lq^Ys*84()Z05B)xb=T03DpIlB% zQ@I+t7h(ZYta7@42w7qO8Ugm@K)}@=ue!pVb!J<@X(CEZRi2McMA^m-Kh`l zJyr8RkN#fL&5y!{4dEv!Hc)Vi_ZjHWZ06pCyRI$%-1zJ##T%x5?!x^Z@4R>M@dmS> zg!RwF_%FWMdlq?(SE671Uf?2jGAt8YVGM8=FuytQzsOnK@^jMB3-WXP>F4$;HhV4e zuhye~i4Bu?& z4!uRw=fJ<_QkQC&JQw`hxz5+% z^D@upxOYW3cy{>6%|F)o7C7URJh(Z>FEQ3cdHAI9zW*nVH^6wekvrQt-VL|eas5AH zyhHzl@fKXfcy0N=s*}DE=qnx>es#r>>eUXPczefbpC0;1z|^kzG@@VoHqTkzCIVrR$k0pgb;K7;BSb?#K&kib8o zhf2^xsrV*Ad@b!4(f*Nz=%wI#>Ji%@KXqp*Jf3TLP43??{L$jAV*@$F2O{hJF;@nN zC$%s1S`!sN3_U>Zm{V^X`lpy&qhjugxumPk2FZ=;G>|)!P-lbs+BVplOFwTGH;fE; zdZ?49T=KV&mr?l8W3kcEHOIiGH4ypR$o^9Nhv0GaCgUKcb#pGUGjonSc$ZF+j!^w; zsBy|yp$eI(yo{5J<$_#Q7G!aYwz>*9y;1DHNCSFxXJKkJvY z(R#p&wKRh7L*SeDvU{;+=^9|-8T`$fCK(C)Ij_+DbrTKB6M9thV$*GlAh2mL*d9*d-MS2&-*W%d~t zqy?hzwC?47_j((a5IQZ-F3O_{&F!S*f9c}>{Jks5dYx7T35%zM3)zZdG^ zz4$-41^m`nu~|-AZaLMn=OnwW?mVfzL5pl&-cY=?e_;MUcJhBGFE7*{M~DAI*s1XS zhT?|)fiF>Zq3&=*UL+gL1;lP{3d{um=;N-r;Jv{%9Vq9_1%@8(T%fvIpY5Crc>dJ~ z+E06Forit#`FYm_LX0oS_y#55N_f&Z6UWz`AB{}Fcb|KxLw6b9toP<#LTHlb>I3x1 zFmm3Ct#Rgz!D4(=>4hTjGK4WU;G)$#0v!D4;>ga2A7``X`LG+9~%4Q zTN}_NRmK)E{8!K2>pk(GZChjqdgQ^XZam2I4ZZN-w-VrT@tg>ki{quAf@8CPeq|Tj z4+3`)evxBSyqW)%^zJrAvfQlf1~bpzUSOW`DKLkYBVW1vBP&`zxQl$yUgf2{cX^qG zZU2e#Qr^3~-0IZrRbHr@$m;_>1;3_ju0JN-X!dBMKfF#Imu}tV!}V2M8#6kDc_N27 z0^G>nY-FFm>wmenOLPcwkmIL}KlTQ`wB`KC-ab`npYL!Far2M+U*2hxnS7Y>KBF!HdQ{@4Lu0{RT(+W1737z_tchuhm_{ z&?q>FGnLG~n{fffyEM+@#D7h;TnC;F8?sP_gB=UZZ_fMX$eup*(rjTzFv2%J@ zZ|%G*UHLxU={3Xnqh0=leCQB7E5D)%o|y&?J~a8)iVx1x)8I!kXU!%Kh zodmW|lCA$vfK4zqco+Pa3u{l$F21sizuT3s=JM~TORUE$n4h%&Uw*Zr-$Zy|l0UYG zcU#$8@D#r9mpSVri8hQq3J$)+@3Oni8X$gvSx165o8e8@?%2D<%^PuWApOdJVtcO6 z5q)+f;NZ<}<2Cxkn`ZKZ9-fJReZ)`1mtt$h?@XejzU!RI`N~bNb*#Azu zHs55}xf-_7Q1^0ZuKMx+DzuS)8w!Pl47&}*W2hz`>JYt!{{jrzu)3oMd z-=~qnKF17bt96|8`pdv!Vw;I=O~!XK_zdQlz1#8^x3S)*xL>FgI9^~LCm*MVe4GOE zac0i=sM;=nCHUulPSL{339RBf>pUB@=C>Lj1YW%?izwC*#l>rF=e@ zhwn_aV|@L-1y0dR+pKeY!zDJqK9~<1fkAw87d-TR&D~8Z3!Ikm{ zv2Wm6oy*jZvsQ}E$9IS3@U8|PV9s;*V8Jt;cZ7GxUB~oK#~t&>zU|;HAKc}Gr(r$d z?pbgr{4lq?w|!v_bEp+tMZJUglj0-uyWjp@K7pBQ;c=A}T;GG$F4wC!lq> zf1z#jOnK!k{lI;uykZfLsqY0&8x>9;@T=WN0xXOn1P`0G8gc?f&N$rX2=7*^EqL7g z7PQOc5=W4IjXxG!1l{xa{AisUC$f2^X`1Fz_MO$hqjTW<*~r}%?4Aia$0eox8}G*F zhNmHyv*F1t%-yWB2In#MmFR<|3(rL=;oAWzRnZ;XDGyDXuw^0{%pciS>?PvD&BTQ( zkVDO%xvADq&_Cp%;4cvWEoA<#8^*d;CH^w^)*a`J8vGt-otB*2ggsx1_1ye~*4Vk@ z3_Poj+EGqR6EH;P0XHyJE-gLRyhCTyz+WX^v%b6#T`e8-F7-O&DLjX1FIdi4nCo0V zZv^HDFwX(z2r%Qr*f3A(g1L?L&!+N=gE=b!X3amU*HlHH*oY10T%fc-7~Ds|z4&R> zvmMn@XtD+0DKeh2(Bm#^&88;sAFg5!+QNOd*7r6kCp`mtW@77QG1h!@o`|QtSo)@x z@u0K9=q$yWCUbA9@=wC+!Cx)(CN}aCdvZQ0|D@%8a7KTELGY+w`@An~0AP|YGYT5E z4alrIQRt6dmuAI&Nt-h{r)Cy=cXz7MMb)`-$__wcY(Uubp43^T5tvd;RFc!n!RfRzP{+lAriy{y8sB zxwY}~e)wvA>eQaW-K&FT<7nU6&9=Yh-^JXGj9nR+|Db6|dxP~FRH zKEJ@cM<>s%JfHLZ&73W*vdT|Y-)pc*nD5`TXiw)w$K%;`7I9CjVMIW-lKU=LO8E$R zsK6S8PC?-P27ATLd*&REqxTE=Oc8C-c{R)fVf14NJ)mdVJ&9w~m_OW1EZS?Y_Zhu9 zpYqGFUzQ_FOPsiz*Ukl%UqIeu`!~=#!% zJ9K0y1KG<)hoHy7k1w>m+uT#orNTi7v*~DH_ygJHzBR?adnN#NPke^7o+5k>uz6l;~;(gOHK9^H( z9(~TY`CGIufz}K0={}9tBao|3S!AC6G+FGNYfC+W3_~k>Ekk=)Ox&5V45ZCmdOWWQ)ebNE@$-nN{MYqR)@mpCZBQwWu`&L_#;2?ez5g)$;Zb}Pn^ox z)3mb&-|u_Ok86$ZhmT`?cJ0B=aLzB&IUgDSpSm}Jud=%H|DU^LVG|YVZj-QsTHCrn ziqqUAC~mEtk*V{mZIci-i!(}{`Pmk15)we9R<8IfQ|wFv2$WC5eC*mg=3&Hw#5=Q;O2_YxGH{{FA|`FdfV=ecM7?%(hEo^v|ZRO81?hqh)* z4p8ng?73n1LbTCH%)SX-^E7%wF%DuSCf{;7YasIdR<>`aAQxpXZ@nPa{^*3t_Ku6I z+8?{T8aXh${qW=w?Jr(Bvi+s$quQG|pD~3DPS;Q$e(pscIN1HM1AB3@)!%Br2_HE{ z83&&p_B1!WUNl|upw9nI`z*R=(l_n(*tQHTui1j!psfftf*bQZaNmL*)IHPo@hrS% zY&PCM9e`t(;c0ZxDZua_r$RG%aCN+$iO+84E)V$pQ-`yBo{7tDCI>UX^QXe^({;~f z9=}hb?NjA<#W#l;UOy)j>unkX&BMP|AD;^y+cRm++AYuj#TjIhZHAAq8Q`PxUc<}2 zz0i4Xe5IHE-d-=VM*9tAn;Jc$@7M_Xz7qR@GZ~-Ye2MbC-mxo9U)!^N{Y8><0nk15 zwdcj_tnM+mOx?g4z2M&M;~8okh3sE5>&EnV*z5gXaj4LYBj-Eg(D%dsIEur^u1vn} zm3O0W6|2e4y|`lm_su0==ROtWisGhj-of@l$e6^RV&$F1&c?~k#lkJN^N9&lFx%!ngx-wVw4c|G6jBX3E#%lQt>^nITXvxT8!S1PWUhUb#l zSHO%tR+@KF$GL*pATWcU#K%qK7rcIR$ebN9h@4k!qL!S?)9FKUDidRj*qFT4qfr}o z^uKLEPWIBq(~C-HkhA-|?2iie!8D_@H-Gi3FEoF3*Q?E6{WbpvUY)mW&%-Ups}HUy zj;@&)E!bc3G4E)Exbd0vr{^cBGoJRkX|I{~ni&i6p8eozf8==ceNE7)#x?q3<>~8e zP_N@R@MaU`&O<)v?>YPx{W%^NUoY&-@-;U6kotQy`Lp@?OksE~1>Gr@l!aq1-<^}C zp95P0d?#Nfi@R=c7d5!c`EGC*&ESrFl=6L+@3wmZzN>+T;MMIdvGa)6`SP}LSUhzZ zavJ(y^C@AKP4!RnBeQCS)(==iW;bqH7?n=0WmWB-6J(XZ?)`D%JLdZOCJ z^?ly*-|H1C6F=dHj3Smb3m--MK6aDqEB@NuZS!f#KUvd4K5Yy6v@OwsHR#$Mt>ix{ zpElv=(^h-rQqrH!((9G}EP}2_U>}V}R=^|w+?(YQ>Any7eB$)oRQArjIXbJ460^O5 zUvutfJ$o>cW3WT9FVeG#VG(;5E|;I)v>}DuCZ7f!QHuNtcT8PFAIPONwo3OH>;cL< zJ*G2wG(P+8&YHGzr#|Mz%Ya3z7wW$RUu^*~sD;q`!qdE+#pF^IZ=4iY{xD~T%vphL zxDUH@H~G|BlhX4Ma8N_+9-DH`_1#}MShQ%`v7&RrYo5b)-H+|sj}5vXdR$CA>2~5t zw_}66NZd+edWpVYHumR8&c@Q()bNg(zmqRGis#cho+Bn!6N%MkA%MP;Fm*7 zckJf;-5;OvCEgo&ZwS2K!}}Kl@5^|g{|Hz3|f6#=nC%uK*__v8zKJUH7r4=WK8SeKuovH)97I{tVdTjo9dlNiA>8?xPv_ zt=$WxwW@uIt8598dzJbIziL-13Kb`$7MV{?dpnS&d*@jsD^e=Xjk zOo}-SHRc5Qt%CdCF=oXmlkD4B%(K&3;>GXxSY9lnEysUH%=+nt8GA5k&SI6n!#+6f zPfJ7hC-9G-$7}s3Kevy1)4$`d6X)gm{*&Kt+UI?b|6Kp8iMhNv`o#6y6m*83Tf4XO zvUnHpehQdA4NpABKH^$zm;|ywXJzbVulHWg4hxpi`n%TQQ^5I0l()DYVx1S5{BM73 z^1&sabOvK^eC;MTB6oZh#&L^4U|&PSx-HQ!KIq{Gl<}>CwP0-fIZ1G=e5{y>eQ;JW zxVUyTa7Wggevntfk;$3kZ;tNuZIBg<>Siq9ANP>oSFosThV-!F<2Mism;5!jb@mH$ z`51WJLK)4ygSju@9t+WQE#;MmQV+hm!O`}79AQJaTn@>=FXZ7%>tilQYMqZehd-PR zlh4q8wQzW5md5WUt|=M@Pfd))(TUbhg|jkXB$_`X?2Tz3tw}E>r|nq7!4z>82Xn!w|6cUuQpSI`g*SR_?BMv~ zV}t98k5$7n$`5Xx;w{-koAsUW`iOA3AFN>UC&u{g`ku_aW&NNVc z+KEhUd|{sHd$8!xL@UuFMmFR)T`ny z2sbaavz+rD?fleE!;TASXVvLL&rkI?VcWU-E9hsadG4lMm@|FceAQ1C=V+ZcZ~A23 zQG8C#Q{|pyzm=IcZC8&Zz5vbb27hke%UPcg9jJ_(xAp;Q-YXgRZ1C8#tl<1Dz0}=()%|b51tTQUCXF;M*YiRr>7>|L^Pm-vQ-a!58}Nzsxha zJUlC3PJfREzWvt!rhGO1_9A}^7ELnpwE??X{+?v-B;?7q3uYaBlsuQ>x~cJ^+ZN8i zCVjBrHsop)dz*4a)Y}Vv>pe~G3->Xhds(-wz|Ni>j(2@Ux>mU^Sz9E;UX`-MrSaqc zCl@ZpzM$S-Gge^0a~IEL(2>qomF$~FpRz^1O+V5#AA#2=deQw0yzqY6$)5q{T4(<~ za$4~qtzo|scz&7Z`IOaJ)c9I+oD7xkl0xUczAtRgGcAhP*wkXr=&5e7V*>e{ z!gim;p1|3hr?L&WZuJV+?2CHk4a{5j_HZv<$9v7Zy`wJ!2f@9S7<-s!#fc35rPrBv z8koDj{@L$KV-5Ca^geyk$Me_H=c9`z&j{1Lo;3!+QFl!AGER*l3?DC&EUSd~;n_60 zrg%~P=ZXtDKk+DcZA(APPku6I&e?G+(>TDX+Ee?%v1sll&!TAAj`l@UW;_a>4&UPK zI>J5-*$7AYzS-cByi9Ol*W3y^E`q*-yv3b1&$quh_+9RlnRd}1zj*NaiTgJ+ghEHJ z|3K@8Y1nfb+IcT#MV6)=GUj8aM00r2ryRm(eKOCG> zfX%AsCZ5CCKsu+WpECJ2{8g!3JN21BE`hUmv_9~xIX^Mi-@z6&woZb%XkKli0epVt z*&4e9dl0*1t@ZuG9Z#=>78Hw-9|k_p0>_ULpR;(izU9T>HrJ1}{#mCvhl4#eJ{=5I z=H1A%<>cAs%d-iL%gD2{6*nm9cmSDY_K#vS#N@L^lA&DEafYS&OX2L;>xC$uMe z5Udj=CXa8r;H^IEpxG2O`&3?^qBGMMeZE~^iXW+;$4}CaWV%N`TBB88?RkA^EJn@* z;ue`0W}g4>nLM}${RhdgeE6>>&u%FHPq3^5R`MMLE6vxwmvlU(cYc?Tfc)6m%5xKC z?KkcY<#*x0mDjs|`zQW(Be&&W?t$J5@BuiZth@+&v>4lLa4^#TEI6CmG$lT*fcPS^ zz8_gr_3bqqriD1qKaFh@8riRQ)t+qUo>s5CcfD8M_kdS^c$HV~d`)}){_u_uBJa}p zm<^OqATv!~9P+*!T|llCbz{_xQ8!lZ`c|JkV?yPnz_ zww6UefU-F)G%mjclspujub1loehR#EM#}Qwpscm`Qf=-T9^l@4la@7;}<% zD><78$&R+Z{fHi!yML*erk8>u+SdoZnmCyAB+z0SC=q`M)9) z%vzgZ{4g+H2aMMM<7VvdgOp{xr;l}(!>k{u9l_1fi)>NZ0UA>Y^Gz_{?=m*&&I*5y zMqe>U<@h^YvvDA+YbtpbKiPHkl8(7AaV8!%$u}tPbe4Sd`RFX+i}TM+9BRI=x8xts zcY2F*b7@QEwD&`Q`~AO1^4gOQbnQXRnX#$8j2@&t=|PqIfZxvh{J$6TH%Bk#@%CM; z@dRaRkhf2kpEK3OzjEd4MtD|xh9onMew025=*Kr&z#no@YdE6SVc>%}!SLp z;GM3Myq4`g|7~sesIeKdx-M#LcdhRx;h_|IOSu2}I^VYP`!V)8zx}6jlCTSvAO9Pk zhtfS$^WgMD;F^hv6Qdmj_HE!{5MJJc-=;ZUW%`%>s(jv}j;-*8{_0(JC^~g)1LeiP zg~a)bh>sVuhH{9uq^BDAo8Yg;uJ)v>oZq3l8ntKO5cQk6DIxB5+Ec5^ZJYA`0n|8;+Ike8kXU#p@2Kk)ro$%{84OUjTD&q`kK zya&JPS;jb=vF5fpjB~Aq)8-dbDAfjylQ;#*!O?fsv8TmLARAC^H;d3^O;; zDb~-r9Kc=0vIec7g<9#Rlu9)WDQu$T| z{XYTj3-Jrg*+$StDY4Bj(dHrY_Z0^=`4=^;kG=-3v90mNb|&h@Nkr zOr4gAb}t!vL^LBlWRJtzdhc}XD{I@AJ?P68f9`vU+w{?9@1pTDSfhAeIi)q=w;5i2 zgj|jmayeSa>nPF5u9fdMv(^qTab@;WvtH_Lx+?s4Vby)_C60OP~kxP0Cx@Ljx@Ad6uSp!#Z-3S%-+OasJ?Sv`sD{xU#+mHt-W# z$JOupCL5;*Ty7ceUD?2$cefMY(0&y07>Y zpJjDV@Ou)TIa!_VgT&!~=9Tx5ztXcG+l)My-hJ3-0- zqnT^he+|w#M1IG;{9Qntehc{>TcDRM(ZV&oz;idUUHKjDh8~8V@5$z>oRZ!?@ssLt z9wyI@j^s~?md^8ON$ahm$$Wac&FqKGwWr1-GlWmcj`87R-;F9q{~>!PZUeZyAG)dV zBK;9)W-fErI#NA6HUW76ELh8m?yrL8!d}?iNvznHXhk%dk_|W-84AynFYu7D`S7O= zJTtaYxMMqW5u8=-pN5!M_kU#di*%6VkLxC!=>H`zBOVFfvbYX+d=6Y2KdRU}x`ugl zBd1n~J`Z#6D05+7nt4t#*ZIT|!RP+Htk3QB8XjyRme@eOT3>J5IBkF~eE&vrEd;O2 z-*nHC4|-OA`YnMj5L~4D<#TDzn)YESKS*|yY>CgDiQfv`dayf`%VpLB`CVm)mwFFv zI-Oi^&fF*gCpWTQp%{qpGn}zkk?*5CFUd*W=UxlG^_%dk?*+%NUDu24*@rIbAx`=< z_)M?{Q;ZINnz(Dd7urv(bpNE|EAP9Pd8bEuJ6o_3T7lCZVzlgaJKD%!_HI1iDn4gj zrjUJQ#RcTs9)V^ULxLDf+puHbnFkyXLmS0!G^}GU?t_KohzgFZZD6kybaWaXV6PbE zf2e2v#zM!w)5G|*4(X{aL+jQaH8kU3O_{By6FUc9H!{awU}evHigbLN+`fcjYP7K$ zSVrEDjG(;oQ#P}&c= z%Q{apYZK9{>~AU7bEFshn1^Uxww+>2lY#Te#(c8x!t1&3qMp_t)u(jZ$=dFN#_XQ_ zaK}7yzIHRO>wzn06n=LzI5cOvodm`k{j)cz&W;*oSG{^{H?!^opRXndPI7vc za^VCMo?Fbbm6J{8*~*r$1j;PcGix}KrJoCY{|7yfXfWSD%X1s&vZ%}*`c53|Z%tX- z-e-8um%+RKUFDz$WU$Vflni$AsvX%AypKis9Fhm(Pw8;UR^>q{hoS-gO(1g`;5~AR z<^Y?V{PaH&^EEi}eTNfp;=UIlLwx=4U|?*@!PVIGpBvv){KK~!pZsLS3M5|=j88ID z<6D?FKF&kQjX}Hd1n4bo=rb?ZBrx6uf${z_Z@iiFRoI^wJYPlU1SD?ZpWjZ3b?_AX zycW(SUjsSN6lGuft;#J7^;aV=OMyG~QU7Lg_oX|O>zKHOc&o-wIpx63$F{=0GkT$K zCcYo?v5zvn$jDmk6XixIH?#-&-djz5WV&p={7R*BM!R%=uHgim%W*DR zOWRodH|slCda?PLtoLyLZ9)Gu@cG=L+h+9R4>xe;>t^V$fiqth@wb>Y-|P2y&tK2_ z?zIK%183!-DJNBa)yh}yIoQiu;-NoR(9Csr+~CovIkw-2WW#Yb_<`hdIaxC?pSO6=zHT2|DgA ziS5`s;i(P1kx3o;uHO~kFzc=OAIhyWex>j>n`i6*#hztLxN}x^{}+1h24E*R0ypT0 z{Lr!SBi!}X3oHtuBdr&TMz*qV%I)P|h40dLgV~2=)=^}Kqyf^Mj22nmxZ%dR}|n&Al6}ku*Vv7FT|JMf3$ex`CDEsTg_zu`k8IR?5Ez z<`LaTz*>}iQ+uAf-3vGS%gz^d>qohHQ)Z08+#}yMk=&6jKHZ<6a{e;%61PW?qO&*%otLPp_=&9 zCdQ!s=(C{7dHxu*?j)Q(%^2M8vh$+QugbMhE_F7r4bm>}yWV2VPKO5P;q-`b`sBZ5 zX*ReXW$-9E1efx=zX8wJV5e;4uiCUWnx$pE*BYPJe;;lC2G>Exu@17F*ufvc?Kt9c zHHyn2bH@>v({mC#s1&#;rtk5e!~Za2Uu5}1u{6UUj4J|-Ioh}JK*eg|+hKkVucKeS zSst?IE*Mz2-=IBbOEd&vk?_Z%vFJaIC!?RSm4o^@jee9YOVvov(%!A!K*8nkozb}Vg!ZD}`;di)$z3|am_LKex_;ti@qTQ9m)K*FtchXU z!5g>62F~HUs3zT^fvon-J=mAW8&-0TaDca(pjWLsiN7Rkja=q^l%ZGaPa9k`Tm3CM z3cjb9OAI(x0>>LUV>Jn{m$iL}^v;A3)< z3?I)HUR1vH{X>@T#C}%!B!2~Ctpk|y$VSQB{Pq*jrOJosSLKIMUVjxM$0jxFhkBNe za9ps)zHn=$m4UU=N@PR@azSgQm0J7YS!<8gv!YdI)_#5|N-!g9Hpe1T5%hk5>&JJ_#%n^K(+c-OC z;ps(d9z~WEvlnU@d!be%OO9ZR9YK$Zruxw1_DmYZnwT%Y{fS(Q4DU^cN04PY3t~HT zrsqD5lkYX`$psT!B4Zd{fUU{+ip#JodADOM?l|C&&CN-06P)zB@nz^sFeGP-xH@rq#$$EH zFmODaGR1z*i7zYjgl|MCtidOv_3>EeV`Y*P67k%-FIhSyk=y3VMm*24)~?+;5TsAeK)vVN}UGq z2o4T|lOw?EMU`L3UbNSXt|a~mE$6n`d#mW!#v;{b5B0RJk)n+nufWnP?I=c*ghvwa zNP>68u!8jPF`s6&cAS8glHhMEG_enwtz9(v*n-mw*KC6x+&M~%pocv^t?q?Z#YZ|j z!kocP8#fwykUbJL>6hFE-3LXYFMZ|A9BhL#wKYJ8fb=v?~}XV53~NUrDT z_@B5-xH6JC6MB2uuP(9iAnGd~1dSeWewl1XwU-kQ;{A){l33c)+8ygM+#k|Hex!{D z<@&P@C!0ptc-g~@S@E*63yyuaG$RANetb5w=FmXQtdbbH;%HstnLBF(~CUSQR8AC5_faOcBt&;GV&+JBR@-!9nf%$H3#$?_vkg>SEh2nE&=Rn8Ak%xecr*Y z_}F)pcdc~-;NM@(U0vfmd(MDI-8B7p9_!N7Pf@?kuYa3gzc$RhJir|rEv|OdMugbm zB(HFP7h~4CN1@_+wDY7_v?ehg{J=NP-U#|Z4o6=GM`b}A%{%KIM-Nqi9B(NEe-Km%~e*YXdo*VxRw0iIzjK}r+KKf0PXJBMDITvN! zCGQyiPrQqMPyaLYyZ&AD`zm)C>bI$uqZbqhTL*G7*T>m<<>s#b_`|*f{#3QB!QQM}?;tVw@B@o(?wzSCPbJjy@yrM!#3LO-aT zd%4R_b)=&gQKw{2Xo>Wu%1x%sqhGea*P-7`o7{C5;#t3!@Ovx1ZPWYw@f`>)`7!<{ z?e0>$#b4g~s@it#X`jFO{!{yX4|-4S$Ocp$^_5>o>)YnLU#AS6s5)D*X-OR3e3q6e#Bya{;(IBElH80e{uXvEbReHCwGBP`_1M5Sh+pZu+D}fT4&~f$ z(sPPm_uY)%pbh1I$@d$q;moy$k?n(vjeoRu>YmHvNBEYm2e%8sGvABO@<=6e_Oz{ZtqQ!Lc!d)cIO(f5iI$;U`B#}@KF%wAROQN=$e zP-dRWU?-?dxYmm=rHqNm5{m%0V;3+NcPC<#8y|Gi39W7er`&D0IQd@Y#29r~Vgmc- z_tX>ZlTq4g*ul*eJ@{z_(1C2?F#eI&Yl>(~HkHl43-}9NQIp%; z2k#t)cjOEALifKc@E#gJk~k`MS}pjIk8vjLrDno^_(6%AJkAOcy%EPIR=kaU@qL{A zkmg%A-+K5aU%T@6gT_yi|E;)$Viuc;Z45SW)@1`{U9N+7I9sBRvn38w_Xu_Ss7r4B zz>!t>ziT|=Yx0Rh{hQ1<*eeEYv_Sh$e*XCS$+~BfwZOhM@A)F^Fk%1)6xSe!WLGig z-X5O(F?{8}Y(G4~Yk%?LQ2XI^v;+0$lkYhm%r}q<4fOd?v&!9ft;7X@9w)>12i^i=6B^j zL_2=MJr$X9*!%UwfED*r`?=*gPlcFu*}WIWmt#{bTy=c?k4#;!1Da$l@sjv`=j7_q zpuZUOJ(vAFt6PVPzfKuK-Ah9Krthy&Wx{bv}YZY!1H{_M zt*zDGo3BkH_dmAdN36pSHWapRW}jR=dmHDW8(L$sZOPf%zG4IWJO_H4$&V*C&f2BP zMNc6Qlp|u}ymr0lc66U|4Wutq7s)1EwnO!ZtL#WW&Ka!-3qPlLWO{d~{15fv_`{xe z`WwIdaQhqe-t!CKKXZmR`c8LBq@*(_n_NgNZ87@t4*uPx{>Tl0w-kHQ?3ZH3ryn8OBp#u)`OlpRo#7vp!RI=+dF#l6{e8@{cVyvyt+hSF`D3hA z?9zVFGV-715~E0yE3Q1HrU-Y%pr?||;p5}UC(RrGQ;a{O!>Iq0&>QQq=W^!wea(@6 z`Tm5PcQg6Z+DnspCy)BuyiXkK@+hqSE6aOVyhgmy|AOU>O6s`y9ETvIAF}&#bl=gP z&|D0C@QEVm3wl#5*YK&IU#7OcM_anj=!`J<*i2r2_>6w7hy7u^7atq;29#$bK6C%M z{-zS+$k#`*(VQ;QdXV6&{q_}{OLiT)qj=Gx8725}F?2@>>&msn#PaJ5au0eL@sfSm zbN60y{|k%0{7vIyRieB0a<}=mAK!26?Iz}nZO@s1u^rm4SqUDM)2KO`oFHG$_Q0R= zu|%UTP8#;#+lsKo2E*;x{|8z+&x|WhyagK58AsBQTY28g^S0`kxNuSKi zlokA%Oy30tzOF3x1?Qig*oSyNzhC>!&(HDo*^qUy!4HwIQ&JkqoN+poE#=m;r}(^( zgwBI{BDkJ?bAX0T{G!^fpI(PdcysjGnf0m{@8}Zo4iS83zjgL)?hMd5GBlWB^E#!R0#q4=TcF8|T z-W(ga`y7{NGW42Ua6LnCIE83 zyafKgn+Gr1pSPLw7y|c$%_c4|ScuPG)D9gy!I@vLwBW}yBEy@|Rm<^XDwG$14XSl} z>;cYH;ci=KNjA3GE6LqqDkE7tZhOmy!G;KaQM6ra1?e>F_pA{#Qs3A^@V4@WQ=_Xn z*MC-f>VZPe_AhD|UuS3yz1A72VK1fK1Mq>D$(sT$+80pjpQG^7J?L|Ep!7zw_MRn- z?=p}+8(o6Wycxa=o}(b0shC2Paff5*7~bz9$HUFtj7?{NvQ}Vas~v-zqZ{ATz*PHT zTBq1^@w69)HCeMCIXZ=P5kC(hN=|~FL&)Gl)@HKpXziA>1!yP1e3HOOdoI)9U$|Z% zTr&sdqNUJ9>G83FIAtxp+x6Mo%=&D0|Df&zO|OTpTcPWRg-<_*GdQ|^a20VJWKL=w zJV3eR1MmPi&OZn7-ro(bk0C44>#>m@Ms~EKW3gHGdXwXw(83;Q;YnygYh%GOi8YKB z8z8mL(#b}65udu8^DN7`ho^klNSzZ<*xo@~*RwC_h648Xb56iZ;BN7^zqH}{P;B7k z%^}VS7}cLZH}tZ1zfXJk*~@=~J^jjskZzHWl;AAWBs`fShhYjdlz{h~uM!+nZwc%2 zoTYyF>`L0GELUH>2Wj`0wEG*{J;Yf7^x4OEt?!Gjv1#U*a?rHa^hGE3-L7%7mbJf6D;lBpjQLgh`@qmAq<>273_Q6|(A8=X09Gbmd$y<>T zW5VRVd;RdyoIfHbQxD9B53c3Ti|gQtQ9Pf<^XPWT9o?DW=+DrmzYlWpOYjA7udx*1E)be^H*#}9xb z=r;*$#D8gIlVVyu)5+Hg$R>~fEPdPiXI5il{GmGc{+XUG`gxpwzDwKRrypP`{Z)$( zSn@e^9X_&**SxJYvSfhu5K39Mt> zF)$LDG^#x{`m}cOUTP`*js7U#KEiJ|8hmtfPf6;5Gul&2`5m51J@A**=bn<*o7xY< zGlds=?a}vy+QXy5?I~~`J{Nis|3O!Zb>!l)z{)wv9r8x)eR_7!p~bWRyT2BYLU#VP zADqMEiW57Ww=>T!;u*dye5L+^0*iCzJCrOGe@BC|koWh4bID&~b!)4TfhNx7?2u|Z zjz*KWe_H&0!F6*kTm?_%|GdA_c_cQf*2q}Tow z_c)yre8}Oo``L$pPZ47oAzVQlW1x+*p@Z|`)e_#J!!tyOMKQBKWhmRCE+b!kd&1;n zW$g*s4$fAPp4*6B8zt`0>aQcP9=>Y@vETw?!R&`Mv0(E~yjAaI$h9QCV6FVZotMP5 zj-WbQh|vb?n0LQUlk}yl^W#h6iE8EupP`=*v@~8QdlDbX(p00_pFPsZqYuXI8S8cI zLFl=aeP#1>CSBtT8@DgtkQ~pMWi|Mk4IcWruwDBp$id>gVXwayJG^@)Ff_DQ*l|Gl zkNlQ|e^tMGCVWGCs#8Imhsh6AZkqD_pu+=Nzb_J9K$mV$N1gU`{OW^teX^SIA_pS= z-tKN}*B;vHrA_g~qwH5qL9dl|oqw%c=dZ)IjzO!^JF}#>nX}E6iFP!T{~;Kt{vP6& zWlncjTYF3UixhL6#@ve7zjHVmdcK%_9VPSa9a(*iUcAV^BP#$)=A!#oq8*30Yuf|P zmC}ohQ|D_mc$`^!OlOJ)@>Bi(ROW}!(o}e9D7#m*_;)`$kro~O$v!&*Z3Xk?}0P`r?KM$c2t*VAB+)i-j+ zFP8}N5o4{+8|yCvGTX@OE_**Kxq_@8=HAbmjD!YKMWKQ8h!B2KXkaCIN!U6E${I(W zn3uGTIo^z%B#z@XUKalc?pT)ntoS4A0)`ecc}d$?7eJp$KO3C!9)b=^pqori(wNHJ zoFv|l{Ze;T#dZ`tqdm?x*4zcn)VJlGoz+!jVAef4G>{l%T#QX~;A|l?AGcn2C%OEw ztB3{A|2+AuMU?|h@L^eFsdD$%R>j_n4PEhzF737OrWzYqx?X)JYiO7Fg5pR2!e7OZ z5{xlkRB)Yy_a8FX6UOD0G4U$NmsW3})2tI+6+c}#sW&+!M^l@Lv7Ekq1G<8;^(dNJ*_ ziS2muk9-GawcsIye36g596GH^oTa%8EJe=O@jZEq=i3$I;y?LnjgRYCC}ZAG3v*XTU3{EM_J=B{z@a|c%Q9u%qz-y z`#H4EIryerC*_#?UkFwUfj736k(bEXuWiF_XtwZPA^8DZ+n~?Eh6~UI7q$=nUhBi} z;rXog#N(7}M&5lLJsK&B_k4@FV*@0SbCUU5M-wmUKK5^Z`uO_N)4V5Aqd$dS|0KHq zTmZk(>Lmr>RX;n`WQHWCo<{Z$-U?SS2?+o;3g+mlJ^%>uA;KM zpwlZiI*j=nomRs*-s|lwV7@&UvX==PMD}L-Ab9y1GLZA1bgwn`MSl}=#la@R++8kZ zdNz1m#k!!8CljD|#gaoEOFj$DucNJ1z#d$NSkrer5P?3$11+*M-~rhg55oh^d^dZI zeY*PIql4=ku`z_pSR_UsTE#EgjI1b$7dZa#t}y(;ytbFccpgHYr=YVO|AY7Yfr+V8 zOC9*;J(b7TpU0SN`{Uv-f8NEDFMG@O#e=SW<;iMaRE7uX=Pvp&Jjic%^89)XzCj+9 zDMki=7&>?W8f*ael8fFYMkZ8&6Uj}{;Bz0hdbbnW_1b1??-=^(z45V(H}L@QZ9wM+ z=y$HEYtKFZzF*hK8}F)k3|Lq4yJTN}-Efdz^Judjc$|zjdzlaT%+Z%uFjvV(?Qxuh z++7KrdZERfTuR<6FgZU)%I}iswG&H^{mLd}s8U=*H{=X3j0l z&B*Je$VO;82|aJb5Bd=E`vQNjfo7Z@7QLGFXK3H%X|f+gJV;$v=B;#f3cI!YQt0_s zSre_DA#lJA0%be&>M;!*jTZckZoELF&XDsMu3 z;BQ}F-?s+c&_?bEHnMD*)NJYYaQ`&c9_3r6*LVYSPmi_FKc})iHRkO0p7YOX=Y1fx zKQNZAg821+$Nt3%_AHX;J^?>KISoDQVgsBNacnbpU=u@M>-OO;gwAS_0ZHu0g{8nR zW6KwHtObsed%7>97h3r@U?3Vv12@g3`zGeQ9(fL3m^}eJn=@sKXm14kIhrw#fey|_ zXPuw*{T}==G+Y!rsqgpEH*)i%pM|IM*I(B9>o1j~?HY{iwHV_tux<8jZ0zM*=u7(( zgKIFAfi)Pd&v^cSvY$;pz<;B^neU>%+l+sajsMO%n>>T_fprOU0#22TtBQG6kMVgu zad!MQXmK`kPB7;*w5W5#z6RdK-zKgz8ToI{BRnrBb}E18OvWgDyZLJUD42hqf>)E5 zfv?%{?s(c3?ZMAI=zV8vZyD`9R5k+L4xP0Tqt<%ELSnvs?3ca>{=xP?8iH^7;BWG8 zKEE1Yyd*SiaT9Xs2rvsHYeXk=%d6@6YA*=-+lhua&ddk=~8p}(bCx;Q- z(B3Y!Hw@oibrXCu@A&C@ujL)2j#W9e@5(Vw)88<^+#bp)2V47#?3sbY&a06N@Lghj zY~XLW8x;MxQ+#abs@le%4d3HizyEW0HGZgYoB&`8oNFTm3fW@8@Jrkzl{Pf7SMT zK>qnq{aP8HJMSD{bO^rw+WxoZ>v;iQ6U!NY)!*OrtU2>AcYl+7h%~yRXQ?;Ph<-W` z`SS_>8oJNOQ^{8C72*sZ^1{RqiXZ<0Tm{$L*C5NZ-aaUO#BWc3e{lVB&Lm4g-)VS< z7!J8#m&8}VS32jo1{)6Dh&`L#AG&jnwJV;~{&nn%X5d_pU7@{EDdQu>PNkN7?pyETD~NrDSEr@5TjpJMODd4CDLBl|XTUXWrWiXY8|m;X0yC3#Q4 zM^*4&)#dL)e|>SsPZ?JQap;TKpB_bDYrna4yY^~|HZ+gdZqC}s!SU=x_evHV0{=Rb zWEJO5nX?-GGf7JPGf5V4u38`Gs`XtEJJ=U3UZZnJ$X7P!s-=0>dYtCE64~f%kTCCx zvCTVHbR}_@fi$$2K-Oxl$w3f5>J%3hr_b{XUF$J>Vt>A|n) zyA-$r3*B*6f<5`%tDJR&J=cRyP=6_Of%-JMN4(>Y-HrK=YqDe3S--(CyD}-{kkhF#4b2hpxtw?t@KX-in$9fG2g*xJ25SD_D_s?WbMRA#~fsqeoKNU*>h?~ zZ7A0JjKAh9nlfvjeoR$spIeEk?u9N7&9gDpEsb8hfHTK*Png3)UaXoJpN+4s0&h|9 z8&Z6g{Yy(N@OiYk$n38;g1-4f z^RV3g6*Gw^RuCVpCO&!tu||A@BITFBdsBbv&bb<9Vv$M8CZ^l+y*JtN-Lq|7jcpaQ z(APF0-Un?=cC^8}p^eh%@i^yuC#F}@4{@=ZDy`n&{3YQJ z=yN79$qM3U)s@_tSvk;6{T}My|INYmJ>a@o4c(~(c=_)R(Qz4$r8LpQQ97FFNQm&>(1jax9H`j4>!J`c;2|rVN0+M zT-n*QK`^s=*7|0RlnK6zcSka&v`-t(J~a6;=IoZ-{jr@Ryq%I$E&P>U5`Gr_YH4{?9op2>V<1Kos378Mcd@5?5vd zb(=XerRDwTY+@U;@E7JmzY${3rcRr!^H_eJtEe-BI>eeYb%;ZoItg2+HBhIUIT80a zWn1KrFu%wI&&Ezl$y?=p9p#Zx_yuFFUjQr&o_ya&e8=zjDe*rg_4uKmIWlT)O@&B`V=XuqF6WOTa zgd52@e5576WbF;y$hJ`qmBY)ze7syc)8Yl0_fC1{C2|JdDbF0ruX74`c_C0odMn5? zDfl5A}#b z;ydzE>)POMt=Bj{e(WyA8Ekw5o;pzWH9yWUw7fg;R`Tv13sY03WLda9hp*m3e%%qM zm(L@T&pEi@y*`VJ?H)2LUv^2i2ESQ*)8OYo20w2h%j$hx1#@CI(KE3$3G+dFATu(oxp!|px&v#Kk|PW{*hCFzwR6k`h&=f16AI%conwzlh!WetkY@n zjnZSRn|zbA^@*7sD2q*tm%<~4J_7z?@809k{u}_|5c}d!D)Y zsEeG=dSXiRXw$7R)na>yf91E8ek}J6E@!hzCOk`@E=Jz#(^t3@pK3zP$lGB5M~wc= z+RtsWfru-F=r@ebQ$P%)kQfN-7ABUN9?sfr>~!*9V>`aZUdN2DMO>hObvB(#c@6o) zvR!4z?$O#bvZ9pOnrzizeY3Y&K80iww(P_C?U9E;nVki+(IcCea@EL^`U#WhzhTE> z%FABS_h7s8`JR++(HIz4HSNs0AUDs(j0K;@-feCBza_7KjbHPK06P!Z)dPoGe;#HW zEp{CF^SF(6EFD-m9%IZocYZWy?QG%eQ$D^P4#@BfeVAPM?Eb!ZJl^(Bc1RD!!I#@wd$;>J<&@!aqQ7oF_I{e|d?L_U6gq2Ve@PR*0`$IX;_Y90Vg6%}nOwUh{87*TlIWMe z`~taJi|cq7KBB;Y{DK2p(2t5S2nNlxCEk!vR>u4rer5LwH~ie@1IxD!&hy>Fazy;V zqIU|*5%I25tm9z$%cm_LYY&oxpOsHpes%CG0@vK(2CtQL7#sE{vi4!4*0`_<9j*i^%87nD$(e0>v@0Kd*`xefEtU zJ>uvs7_JySa|*Ph|s*fWh+#=p>eeEpNy9#x$en*0^T zX|5x-k#E;*r{AEwaPU}d_$k|8PFu|JD}Q}rTmM8`C)>|BjJ&a&{8?f$UgJ5$;Jk-Q z@I#F4_2aS1K`pORZUucPK0~Z}drR!x_^r!g>za?hes4o0yts$>+z4=)U*_TCHRgAt zLyn(+FM9Y1l`YUdVf9BlBYS*1kG@>nDSoS}J=efVW6>BkK{H|U;+nnG_v*dy8rdi2 zoj&y5O#AFTeIo67mnX(xqxkJBm+P1GkzlRLz`84&hw#_H=LdQ8>frq>`y_()s{H3l zY)s_K0q+9f67n9>8Pc~Z=L&KSn5nHl(DLVf))G>y-3G!pT#t)fX%-O8H8G55`6?Kn5_JD#$^MjnTOvMeTIC z-RmrjYn@SLO_l@{%k~y{gSG2&_~uG0%VIme5C1JN{8zBJ z51vxo)cv;9@Lhp9r)h!DcPeu=?X42;Av1f>EormHSkQ4%H+WLan?AMw$@MAyvXcIl zmqbq6t_41Ai}$J$qEW@#y^h7eLUbxTFAwnQJb1Mwz^n5Zm)__3yh^l-d|a z8}DTO^13{E?ukF3nF-_}1lxA}I?W&B$>h0R4?QQdw^zJ42u}^RdgX)IG9Qh45ADH* zRE}H{SypTIevOLHy90fBc4l3W{L}0`BJv$W@Pnb_M(CdRSCqRzduELAxUsR|P3@Bj zAwJ3)xsOnE1)nCH;bX>N_?U4J2YzTCerFG3(E5}cL-jix!_WLNXl}2~%+gB&{>>Q| zu`{zL@_fbvpZ^7T(;5Qf9MJl$;?n53+&M$@%6&9*jxlH6A3w$Zjz$EVyfHvy&X(Qv zq@^?2vJd)l*Xf(LqPIijJOyb&^tO_=PLxOz@U;l2gDPm`fV<_i}GZjK5*plfK<}Y;fl|+A()5 zQKyzV4b&;sU+N?%+d!Q*{{9sFb&f=Tv;SnB$?;p}a?aM4CG36&)@0U}m7W$)G1f|( z1D2sR>3hzFFnQLM;w@vNOHYM5&W7F;E0C_Vc+bvJ_c*%qQ$6xUG)H2{<-7ek?)K-n z+n?j^oH-VB)KPvSb1dY((?k9o5BYOER57N*~3YtkomhMP^>)`=h zcOnZ_Pc##m=w%NPeAdjdrm$Sowo#w** z5a4j-eZADxTx@=ca^-Apg*oedIzB#Q4$dI~9Fz3Z3q9?_&e_Jj5!x%=jqRng8eV4a zhLdOGe7mrlvW?g-!jYbrw^>^IBKbD5Ytj|iBGuSH^{lD$`(Oim;dNfy8qR?L)_qIC zTLbMkGw)UO#rHk*jSY)E8i}WFrVZhpb5Em+6QRen7h|KLolyUB;!26d!n@+85K2JWnY%-nqw}LruL050}ZPer~ zRBs*ji7XUXWgM|AgWY9*+OZGJSdVRSsdtOuS0pkzK8`tlx^jqoY6E!KH=+XC? z^+MP7JC$#T=xZqX=JJ>yXWWY0h_|=%+{!=kO&@&I2X6Yn%@)r8YXLXgz|EkKn?WBp zgFbEs1Gv%MTZ)&hqMb(Myo6&5#wg=DeuA2_2AD{niI(@A7^3c5}}_iE?8wC8B=2e;?Z-kqg(tr|EG z&spoCU+vs&KCY|xP3qObPm&jgzh?M*5KmH1_sleCUk7+9;Lge2UU&(2QOuc-9MgB@ zc%~(P!Mn~E_-F?>mfm69CHyY^ZSFK+4oT$dCeDv3q@6?2(30`wydGK<;<{+;2g*LD zISY^Yx!1zy@)fV8ed)hu;xZF`z1u}T;b6mX=wn3tAo9JJJ3e}w!{tUUpjWR!H9<=O!ED+e2Gz$mLDQWwjqh9t(GmVE?yZySy|HIZWA8k;6yH zOF*vY$lp*v{-O_eMI?XyvkWGTMgERN{-RqXf2D)kjNefjPvO^nY6bQta~GcnacJd0 zxZ~T%i8lTrmsyVq_v@Z&*=F;|rEDRWvUQ%#rL0GWMKb%-#TPc-`T4s9Ti(G3Nu9`A z|G4^zeqf4qI3$ftqxrx|0!JpJx+#qkRyVl^v_kyIgOl9 zj)c3LQtLRII-55%(^fCC#MvR;$Wz_ft{BKF;Ss*?LH;PtlDNp~Y@Lz19{HyDKvFV@ zvOQz46=+9xO$0l=5BT<=$9vH)=%uyNOIx6Y`RJK$=*8%yQrR8Rj#_9a1^pR(;~&a@ zj5Nl|Hxt{~_MS1hG%Tv%mHfJu{affVc@MYFwX(K_*$F$=W4%v?4Il=lh)YsVP z$HeLD8ohGy&R;VBAl`z{7S7R*AAsMIfG#}#Bgxnh* z)ZBzyd#8`~;wtu>d)K<`_arB=z1G3ZV`_#MtH>J2pZds_pgvsfo*Eaaefc-;LaV|8;>n&?k^ON=bUH2 z`)cZxfGgX#FH_yz7>~i1d-rv+cwwDCU&+3q;=v{#*x)PIez^y^_qO<|_F*gBAg^-p z1zd!~6nv9LrWkx7R}8*@K?=Ue!54Ehb8u}2<}f!fhl2s0cKEw4kKV*L3HU}jT`?j@ z6KBE;tV0a+Fs=~tHboz4(HcJMr)HtA7^iZQMOOto8#gE~HHutSe97<}_JCrjS||K5 zdSAM1D7XjLnl1~B-K{mfkjF2pIYaWz(OG%qa;znn($(C_3U7uPhmi$_1}`yd2%U2! zyBWWsM@z4g$7LF`k&WDaHq)LJ@C{^`WIy@21KR&0ITz->c=?EF;2=M-8(5^Y|Hp?# zf;*EF;7q!q1pDGM*iVO%ofAB7f5vC0oi6-b!Adeo_R?~4{d&WH)mklx&8>#^x&Oc%B@H6z3&E_wgdWt1VYgZD|jU_+m1@KLh+UrlHF8 zFG^B608Im}q? zy;KDqTN$hLT|HxwEO+fZgY33`MXsK5-)>hf6|(jd=CAg-Ar*HLrdc^_S@aYwY5`PI_8na?7 zP3&ou>`TB~&KF7%2NNG%Tb=cVV!%8FZOTrs$A3s< zFFc_-Y0An!ByYg%TN)1!24i(m?7U`dyvu0E)mQt9hpU|&xeClBFM{6$$Nz5ZvF!E1 zQ;t3A{K#Pce~#G9+~1#iY-X+G2RK{{A2;yt1fD~0KK+ASe)|-496eflA-i5L+dwi^ zvg9TBVS*RgFCCGF?VcByW4-Zjqlon*0XlS29-nS9>hOb+-YuKiTUT9An|JmxK_1SaA!t& z@i)Oi{HJj!hAX+!u+v+z2e=Hy*UBxBJt2Fm=K-(W$vNo?D^GH5Ao&I2H5O`(>_ZnU z`3!Ae15DLdda}1`&Q|33w;}3%;5Ou4ggge}RDZ4QEq=?*q3iLy>0#4mcyT>-Q+L}l zjGs1n5b7(u_%^<)jOc=x#I)U>_t{u<`M+g&cL-bWoB+eH)R?|=3^C$9HvUv5k} z4`XMR$?PvK)|%h;vQC|O1l(uK&R~D>4f<>M7e97<(BzU@n)TNUD~L_- z9i4h*ax(R1X652se@!V|W#wZ2{^ADaDqZUDFJ9~R7k`IwW%d{2Qz^gJ;a`4|=5eyM z<$CZfT97`P1}?WE=gnO}=t2C_IfLEal12QTT^wGs7kuu8XZA*m*7Tvn*4*dWg;5{kZOL_vEv;`T_ zBA!5QXw85-M&iA!8*K6l*Jw@UX>!xHaK<4qUB%G414d|vS3Y*nqLOy=xT!!N{vCF3(T1HP?^4>R6Lj5kq4y@0J3%ukzY;!9b1+v)EQ z!tT!O5BiUr-&`;IxLPy;-I={YlAp-;PJe&hCl|tp-lL`2{dFnic6frd(Zbqa z$NTpwpG3A3pE;1(pW@3-6SE-~de2Gr3dsf+{XF?ES$yQ5-ynK9!hMo&j?U(1NJg4C zx$l2Ub`m={;5D8ZA5;z_Jh_SSRJEO9VxM)=0q~HO^(7t1;5oC9aaRM!Yv89=p7ib`9wUZ7`1%eZM5Cjb^-ia)L+IrfMkT|ROb#%kbFlTR(|@;_2anfEUY*R z^<*dN>;dUP#UJgx8rV9{JD9lB_Lk0)IKGn6%Psuo+q>LXGb~Lp4scG7>x8u zSn*7LznHOvV?0x4s-A0kp3S}vp3S~A;@*blSc5e&4)Vc7YYA-cTHx6zT|wPi;8Q2L zh`i9AFY#pxSgDVB{MG}VKH^39&kDo_>jYEaA^1-N{*{WIAxlcZpJZqwzn4H4>0h>P zF!IFZ>rmzqVv#M-bqRWCBeG26a5mC;%+E79wO7PHDOwEj|1qEcX+wE34rXQe!cB^0 zA-@D8;oiW4_cXaGS^j#j^@sVcF^VokyBeeQffc*=*CGA!svKpYH|v);`U%b{SVp?{ zWWO1G2kqpS$>p2e`Z@9!Uf;JX%j@#9ivl*Uvv;RrQwHOkvncm4`t@q$wa(qD8iVWv zr`Hq_w}6)nO)zf{nXGsq_%Qw)FddkWTn)z5mqU}%$4#O^>2G-RKIIlc2X@}M@ywu*^j@vlf| zn&~s3OB?9V?T->X+2V?!QU!~G5wz+*A^UI-uD z0pHw(ow1aB1lAI}?-m`{`wnEYG46-Onz^ul(F5# z^Tk=cR|O9&hX)Sd!MeZ{i=%K19mD%L@S}Dm=TjBDv$r!{P5VXO6Kxt7<7rq zHL>Ooa&B&NA@f(mpsk)zbZBM7nO{dnj=BM`U*drai>&Pde z4@0x`Q%OFanFG2|xh?8vmh0y-`nloM`bpkGU1+BcUE}VXs*J?2p^=5iSOXKrlDZ|Y zy^NgjVN}F?M|hc-S~q;@&dB4ggYuKzJJR*NTzMclFCLa{taY-!2zM+@KJng>a_4{f z>+w@>5>IB=R({x2@?9<=?sW$D6Tk}>ai8O3KfV8ji${Iy)rQc>#mL_|8beJPcO_xt@cV%K z{iPd!`s&4xy{vNmxM=PFJ!$BUfo0cRv!&R{toZx8cq%p z_osFvgU?@#eFFXV+{`^Qz=yqDz&AFa^XyNk<6Ua%oOY5rufg}%Ld!n>_cspey8|J!@@PhZm~&g~xf@32>9-H_0pEsvF#y94~Mp+)DomzdAQ)F7{o> z*mzN6mDg**F@<+|p3F&H`0#q+&xxmR0-wJH)pT z{z(}BBu)KMA9-_q+xwV1?N~gp)+`x^{Fux9)aE1Pq08=Deme45^JcuQ$n7%p<-Ah+ z+ywn#Kdo))oDnZ$EUnN(=3C>8xbj?Ek>erg23z!%mbMvjf?}pzEp=NtecCvS-jyaqlshg1#t60YBGbn5|kh5^3A70Qj9ce%NndF;Hl5OEvD2C?V(ejT|^ z_?M=<*4%4nSif%`_3Ey&>#K7UA=bTQ|AjjKg7Tu(nEXC-Pfer)KNf%Dsd&u9Ubnj$j=l=`vPWbQ!zT#O2Z!<9~fo47q&Ab&n8G~>S>2<~}F-Gsgf`melS#+ZEn zb-Tye0Kxu-(nGnwk3dfi@93os*=ISv3817o*W+=_-x=j=A+gA z`Jj_zKW6Xa(H(yB54zC_Y1wz^xdisS_I_z!yY_@%j341mK)+(2NMCd_-zNTw4r-Cb z%g6ECLURX^m37dB=0VH`y71z2fG>8Rf#Epc|4}|6HfGk&gXFaI?I!f`R`hZW zX9*|KDa!kP6nk$9_8#YTE|wic~0MIJBkekXW5kr!-yaV~2NRgGuIKLNhXoETdzbe6o-%9NqT^pwWLeYrk= zzEbwdA{$?R2V=V7Eyk2!3_%<4OV@L*&j{j_e3u@dk^+xB|BttoYOUVO=sU(7Lk8Ew zdoGtuc21>l8_h!gN;XOU%GL=3Bdy=K@-@g|;)-U!at$(AGJBR}Fg}5+_eb(cRL99< z#m@3&@+0@<%VbLnRtBEBY#(JCKiedGIH)vmTyBhK?WU?KD1@S7h#=-pJZYH*$0(@!D0;5IIW&i||pj z)+Zk?eFOE$Q?mE46?Lrp8L^ytWFWjQJ5@4PcPU7ANDfRI=3N=09mUv>vww(nm?vT; z{u+uOug#UOj`#=8H!~*RGu~ca2Dv zI9W~p&A56V4&(!yo zxp(S{c-iVaUEsq#$j8Cw99`gWgiWfp&x0S|O8!gs&wu>nvVWy7_uYETYIC3Sxtaa( zNoX&HypZp%^Kds}6V?!?DCO_qU_tvt?nvLl9qF=_S${#caYs7x$31W1oQtcqzF!?K zujO}hPkMbQ{{M0JF5ppB=l=hm%;Y8@C|ED3$q=sMg^C~%S|$nJ?a>qIPtTz}2?P`l z_EdV43Q7V2M6_nqQ(CYkh(VcZn^HW5(jI~+3iQIIx1+YqwVw#-qyR`wU(v*!SUr{@M0q}&{R@fXx`ym^g7m5Nv|oF zN%If-UCO!#;W>+(l9tKV)?jAkff=l|Yx=)B3;F&{Pc$XhSLVcF1ZxrgujUjiep`rd zwM^v9T;^qzTiDcOzyA>LS7Mvoag*luq6Nq~@*dUPs5LHJQN|i8a(m)FSZ%KDgB8U6 z!uq5!61pHs?znz~d;~}CYT{$0oz6TIc*b**+|GIb_`L}NR5q@<1`{aH^ z*C*k@_55^rIDO{wn2GrsKD#H*XGhWLmFf5l`ElXf-5q@0@!4f5@Ns=h5AbPhEj}u9 z=&UtgE`9C&wG#O-qMP!a3XnUSzV~ek-*j@-Q|LE$UVI0-pbJie;T^{8E>4ekhtuG0 zXnuAIPFxR8hm$|SJLoDSAER9PCWTgZA)I{lJ6m}$ViO- zGkHYXTeJ4;@V)quC4M`8puE=@G?RbfBQHU^F2ZUcXFmI69N&s?}GfSb7M zc;!fvQ$-HRXx1(@ZK)$yR&XcX2X5V8>cE`|+_p{@teKIUf1lh=6=P$!|Ax|kp7H0t z;LIFb_jS{M%Foido6_SM%Jty-d*uF@d@f=`va1#_8#}ke?!y?kK1iNdrS^0a|3Hf( zXq7Zq2_58bxp1BQJbu4dC;$HZ4-MDSUf?pcM>i{>G@Z0;Zy7T?lpDrDpnD58W+pIZ#Km4I}j#}@?e1uu^Cm8U_nb+}0I)Bdj*cuz% z318g|z0e_k_8cf-e+M7Aof;=)>D=Ypc!tl~NV%(tsa!)Dm>IZhL=M^DK16g%sY@4ONo7#KRXgEe`wlj}^b*A?_7b57Ind+~FJfoI+3k!HWg zw%hP`uM8cVN1bN8#XB*|HBxRp?^cBDIlUIjX&uQ#${G6l?RhE-9De&hz@u>*I$Yzl zM(HkKZvw6+r#HPyf66XB06rZ$4x`^M~$wR^`^zl1nmuZ%SSx^fm2x@*JhV|6FhLn{v_J z`mZO~f>$|b4GavScUl<%h8M_PNNUn+p|GEcx~xb0O>9d8?TkJ2Q?}u6H1$T;o9GyX45sK(DFHP;fYv zT*z?hJCl0Pg{=0xW7Zjxw=#wCd^Ip>4U~VVqs#J%{ct^>^0qE>&KiIgHZLT6Ii9m` zXP@v3%z4Mp8t~dHc-Z)L^yNaQFJpb6XaCT#hdjI^r_Sx)jmDo#?7u0yBbzgs+%SK` z>H`HY{NQMX)xfuEwQ^vkQ^{d^yb<`yDD#}+w6aCq_n#yWM*n$s3uU7CKjJ?hbbeoY zh5ORAwPydG@!|EKGclGV-zX;Ek9ddlymV0$*Pnzosr(xEVZpU11=rmk{!Put6~Bsy z8_36%eI(bjrZ_)HK3+yg5q`%+e3N{Wm-OlI0^oDU#q#51FAK>1a`~s2{+uBm170`2 zk_D{99CHI@A$K2Rdrh^@O_VKD z8|5Yk&bjVy|61g^=P~E-Any)gZO!7&&MV%fuZN6euc;IMc{m80%{Cp^whH z^zwTyee4~-)S@r59k~41#sD@V3wxHSxdP~>b@;wRj{Yo3$fBLo1%Fb;(87J@p~V^x zEu!7XUwexFmh5SaBsr9hm0kYDJDsbR;FEb}pi=Xg`OFU@AC35dn#XwLjTAlaz~btJ zdpz(+Cmiy?Gy4ki?l_adrk7&h z+03UXH%9aQIp(ZfFTVucef%8V^-=0b@|BPi&F6{#KAnQ2n-ivWsp13oBYa(d$v)pN z;V&r%Qu&Yl#)OWs_r>$4GjH}5{Mgxf+D7KRYJTY(6n+aINPf+m>odagt=`06(mQ&$ z`Bq^0vUTiq=+Ym$D89+u(!O2MOmc^`KW1oCJ3P+b1vNJe8yoH*-tZ@XKWNn-nq@H$ zAifhFPmjFydgrP)=hFTcL&yG%zxAh^?HG33t@Jr{D3`l&9RCYN|9-r8dW5mmzG~WH z?Mm9V{zr9A#y82d!rj(AnKg67JRW3Ulsa&)M=tK>SGh|ewRt1BmOz7R*`LAACme5L zFE?^NHoW;SyK&m2>z{`Q(@nMFvg% z;0q1jf);K)hkOIf+Pt@NdDbs<%&qs3?~IOebb|DT<|U)hAOKfkvwwimF9~^;@78=JF=zU>jsCkX zJ9O;4OYB@XH!f(;UD^8^wIIuiEqmoR9c=M@O>~#!a8fsL#&a{#S- zuD@9ou%6FCp0bh2rx{1);DcGnR*3%yWzDE{mxY5q_M6fFs>{NiR&K`*bbTJbL4IF` ze{mInn9mIDfDUZ&_X)OrN>4SKTX6JG>@y_0uAcj&qnYo#bTo6-;iGj6r>vQwg(v-MQcP=K(2Y%EZ=9G`O;T(U`;!#Y;(90f6jkVeAmek}pL6#J zl5WEvbo88|>k`MdGHw&BX3u(joYR08eOA*`Y)JMpIywP+zwTfk-3{#UViN3JKMw5j zfowbL*XCM-#s|JAvb`$q6b-#3>T} z1I^O*4}M(|j$BVmhofVY4Zk|^uQ@J`p7>Y3_WS=idtLk;;}3_(Iqfa}(5g89ZO|V% zXuPva{DCtAlH(6ol~W!&oi6@x?bt5yhke0@F7bz&)cC_cQ)im^19M8r@rS{bvvo!y z{_tOdAOE1I_(QNKxUfx5{2>7sHcRn`(O$SH=focpa8XY2hj+`8;WB;ML;RurS)0c{ zYW$&y@rT4T(^YHPfZbsKnX53Nq2~%#X%4Kq9y2{q#JD6+E zLf3VW^)dyDnc=tH!2T}p6eORYy#=|^nV`y_ZiKg#=iO8WEET|XCwo0=Jw*9Ha+E{I zqP*L@L_VM|V#e>~Lx@9UMw%9djt@gip&+L%YqpVr3_@A$**@FmYR1}_+(^;!3u zao-SRu6XEJt>ZeT^)`}c#-cTDyrY`2XfrSc7$1s1-I#~T)8&5I^Q?uTPWK(<>e{+> zOn52nWHJt9oM`79Fh*3|B(qj=lg!91yz9Q_p0Q}!1GfO{a+Jpsh%$cUTK>ZnPkHT+ z5%9)8upvqD53VOr-nJD^`~yGBwhOlGB>6~7?0YV~!XFd82KGR&YUmY!UW)0=R1CnO zSHRFK5D9qj&s*r<_>}e&%kLXr0#BI#R$sF=)1`~4gP4%w2wETe4*4}b(Zj{PG!=K~ zuei(<;A??zGKm)utE{PmZ-@)9p39B{+yUQce|hBqiYJzXLmNDj4ex0Gx9pG=cK82j z*Eo)6zXB$e)m}htW^9)mc?R2@6C4xHJ%hdQp~r6OQ~T_Z5T{8lG_l7sxsm^N>WE^q zb9g6*^X^{Zo!OKZ9|eTJ_y`{Qk#dair8Jjt;xnARfG<&8dsVopfE;!B$>m2k4pR>O z#IvkbpgoN}t;mzqp)tC~2GDa~(46Jz?g3=;QIc=QSW>#^Sb03UCB$@WjiB*m9ZnXn&~g;!8IG&xegKeTsJyzEv{py~UTV@$}38U*b!1Uj1nC zCBKIjQIGHGjvtPc*!gzXvyRJ~pRC;EMtrEQ@r`UdzOiFK_$|hV(GubsO}?-j$8i01 z#U-4WM*S{w$LyHKA`{a%jrFYQVj4fyd9}okq7&WR_6gwvc&-Tk@{S{#CSn`lcj*BW z|K<9J*L+$74*ZF}q@>_%NF@uq~SVaqn4LTkQCCDkHvdKed!sS?Ti_Yiqu6Cw#{XOQ=CbO=wi2ROztZV$n#lZ2U~a@;YnqGShVS+Ua?t_L z3%_dO3d%;ncBOV_O4~m7}H*Mx9yp;&++fw_LTqH)=hg|$~v&NB8!W1p%1=qHUF8f ztFOQ(nNEMqFg)bQ)=pd2CZ9_m5JxezyyW2n|M89Q8(Ic+FBjVX{9!};b;!?QYTwmC?*!<;8R~brqADm&zsLAc+>5lD01wzAuj)|F#ByJ_%9zlCLT2T zG?n?`i-Zf~yHn-0{{k2BmAlsn{_Q?1e~9hhrtp{X53pC=@!2*H9>4BJesYa()OCNL zKE#AgPzoSDy}ttJQF(GaR|%o2`1VN1GeUF_{ly`DlZa>AyL2nX5AFYp)UA=ZWpzxK{?oo8QT{k|})c=5@1xxXe9g_D-ezW-|Lk5755Z3dd`0Kw)Oin!$nz@2Y$n|SGebu zYtjAXr%$Z zw_l?k`}7>`xZ?$PKOL{`lf6p4cKfe=r+nqad`&Iqi(8>H!&V@)F}mE^_-ZM0`O1wV z=VT`IE@L04>G)vs8Rai7e-af@mXQ|_*gmrt$fSmJDUIHX20jJ+cZ?p zRcPxv?g{T~@b2uiHctOvgloKyi&!J!;#%%Y^l_~(j0~p7 zwbIwMkGUsYe@>o->0{PvxP4sk569bbczZ#Dw__f>t&9ZTp^WbF&d=zIH}{11H(b1} zfpNTB{`ns)(;*k{g$drS%1H2btq1RDM)$nkkOpt=3GZ86yh91RpZ?#7chH}}JLFIF zccs63yvzMv`t4sR*wv|Wvzu6AsArQ#^MhwWX=y_x!NW$IjS`+t6B z7+bEr(%uf1XR^1b^>zIGeTsb!#jZYuU9I3*MJSWpAlnbser>j0%?#fST;zh*SXM#! zH=IN5uAMOB@u#xQoFMZC`!p9=LVfG0&%hnJAY2}=&x$OjjbiS7j`}LiI<)-o4(eOy zfQt7(C;?GuQH+OFV5nBbfWx z`+*cGhnqDrKHwszQm?Z*jn7?qTDXXNsd$+7YfnqU!<6UVMV>Yup^YNvygb^d5AM6L zYa5{++9*%c2KUbJwDC2y;hb*!_YQg5m_i#thgQYv z^D(D)?ekFI?)$vFZ*re=tv=u7X=Aj9R^YKO2(7yGc|*VM`#jpOYoBxPIocS&I9WMA zZmb~R>^J*~@M5#CMab-Hk;+GYV5oTg;xK-+@r~VU#Sy+moo*em(VD{!ZTcd06(ARW z;$x|OnMuFY)s8cBs^WXqL4B;l8W&#LrLIMrKG$1ax2LI#dtXYei+r2wscSv)?QY=O zSJyBx6|Q|1+$&41i+IF%>T06S)VhYT#@44kJAAR}GttE8j{FNue`%k72j_hil(~+& z-RD}HHHB-JpEur;!fRh4K1ClS=@+X9{gR)eU$_>pjrO!rLmR9+F#TR6nVJ8|uDllN z(><@1_vy-O+&k0L#yx6-TyzsJHF9}Y*ETA9Xrnew8{9ia-iu4Ce@ms+=lXZ0RYMPQ z8BLK(u0^Y;r;V#=V>)AS;W1r$vizd1cvwBiWqumDWf3?g+mFwXRZa;Pk85oH1D8C>#NJp^Xi!TVy^YhbG$P}&ud2-TYEMCwN89Jc9%F$ zy?qYY!cE!NonSxy%0~lZtir$*d?)aoq;t9!ZZhNI^0BPB;_N(ZVqK;EpE-ki_k7n4 zz;4FPp|Rlx2X@2bTnmnsHXJn`IBGm_5N{e6ZoO7}X4^32?X%`_yFUyao&tuvzSh=em-f-IVf+W1_SO~Ve`=e?e`y#SmrK(o*TVZ^+O%VO zI`i#*@FfU+zJ>Fiq-G)um9@-0yOKy*A;r9-6`>E}HFQq-!wiOD; zrZ|q{jNf77INtR^lKQa<{DTeSOe|7%%f``e^LMm)RVj9Lgl$*xE$fS46us}?WZTBv z@HN`286K7$ckjiRr!r-m?XsUTWzdu9%51(QEPHc>%4q*7PZ?7OIi-58I!99`C_l(k z#%XI`al`nqZ1WJx6cKY&8RAs+7XGi|R6CGel?A_j#pSlma_}|RS}(H(d{5$|M9D=u zp|Btx z%)a6iHcr1$8Dh9;>)CAA^K;7hPwS>k`6P60<$;})skpM6GGDRF{Dd-1XLM8M0lUl( zDYIm7H)Wo%%REDwf`#3bsg{i1ziBOHcJ}M0%*;<2n7>Jxitg(9isaz_O%JOreB-qA zdB*OOYPFTVFZLBr$~C;RfHF->!#B=@g7vFZ=UI?s0V=-hdVkNY}4|3R*S zcRhLm`2||@NsNOrm*zD59YxI9_?gQZ&i4@4JBX*ac?nL5b%G3EH3 z&i-(V`KnwD+WZUUYDEjRmG6|}cluDu@!ihZPvyj)L=W-cXDHtrecq`}&}XY>{*gV? z|1SO4w}<}AJca)Ixd%RP|K+CS8~EWV!&~s!5Wb5vp9X&=`b+24WJYqlG^C#lt@)i! zA1~%BT6<}DVpQ)mT83p~7m-$T&Xhdj)L|2FW|brpRwGry>C1K(;ZYY#Ee1FV@GKjY%iv2`QiS-wy4 zUvrn@`=!7e=X>%jOkeQ3m|TkKd|kd@Lm$NXo*WBPj^D+TD91Oo&mK92J{#|$!*)-f zx%w-W9_jQ$75IDggXp1sQik)DJ`+9s4WYu}e0N&@Jr&RceLdd)BKP=KKqK8N(Y;r= z$Jf2L9(~~UfvXD(MK6yoY(@`M!n@+z%e{Pojxjod-xd%AXLPJ% zt^PX&R(MbbIhanL#QWnzw14xqJg4}kxR z(4v`q<0gD}`4WpcgR=2#a(d!tl4nFFO<^4ZKAX-(Q+@)uM1yMaq45W5g5>DRr*m_N z3=RFZP0yS?d_s_Y4<;i!r$LKZoC`gi`ky|3%0ZJ?G<{S!d(NE`>iUKr&73o9!l6K* zV+iH4d2bi*>ADH}Dqg3tjrMzxofvSd#+QjUl|OFI732B2%4Z`#DaQX#@c%n0be!eT zQTfxRA6et1ew@xZif%t{ar)76K5l>Jn*L1WYlxl$;3o?j`k<%im%lLdSai%u$G5R_ zWfrEuFvWpE{9<5OZ}ZX)4=;6iU~t=S$DW?-pUBTq`)`xy6;(bo?N4USdz5@=(+4GX z+n-NqdzjO<>Njmy*llai2^W8zq3GhSU$=b@?(EWjJ?+%5O1nY! zy>Q!2-S5KAM@pvm-L$7M$KKyM^0LInQ#mk_(>K3s>x4hM?X0))o9=1n?QZZ}Vem`V z7q`&A%0E?`zx++IjJkO@ZqB~i|Ao`OckRt#7nUX)mMRaerB5>GJI30ZORx{c*apUK z`1^K#oOF|NR9s)!+aKM*+r-?0;C;)b(ar>owD#8v@4Alwuged;wSVdFdZ$;_$I!mp zU$34*e@*`z+V6=!3tZZ#@aNS|dmjgX4nGBahkXQmKQ8{f#-&jY{CVs<2^;U`diEwy zr^=tpPNDt(`54-F`SbEq=&!ARL;F4P=K{Cw6#o2<)85CypZEW|cYSc*N5J>v;?M88 zH0psr|M?@pd#e2T$5UwklOIF-E`L6F3jKA)-_U+f{CUuAJB2^red6P@@4r3RJAeMh zY5#wNegBI~qaOHk<41t^RQYrKDe&itkD+~+KO0Y>zvlc6?Wgni_u&tk{p}bpY2Sk; ze8UXJvKs${y2;D-`de40fk*lH-f@7>;~%#0%7?B8SlB{&3xupt=F@|JD4N#jyHF(|E$Kr?s#m4)9yzZZ(g4g&((N$pWhyj zH8Rg@Wmub;XRoQSE-~v7Dv$xi8p@q`vgS8NZe%MrVIYb-Ot93nauOR zB)KhgU}KF;Z%t`;a4Nr4^sX;#{d8*WU76Be=js&s zJcahIH}p;!ufrd13{pIj>F8#A4-f6D5s1{fI&x?Fad9*8FVX&02c{%hRSe4Q3x^-7 zJp2&z@Wbvj@q`*Do)B1KBaC`X+(Tz>1R{zJPQ-^x?}jK5?3*-vz>|Ar4)|8B!i zgX8PpOni^M`*hxn+4G9ElRA_3TIkivyi8)BQ0)ol?hlt8xqY7lONlMhsc|ClR}21w zXdFz_ukJa}ue!9auw#@vjwkfaYw7xzSiX1uQZe4t`K5K}R98Oi*ivTX?gG!82C?~c z^Glk`yMuDI#PVar@P|~g*FN(qGx;sH0(**?6L^7rUW3)4!Wn#nR>qzn_cXVon6dP* zu@gI!Wll7(JT&+Pc)9$Px<0qS(pe~>!X?hUgr7MG?Iodk4(Zlm{4ZlJtcZTh#1|OO z_Yl{~bF?}K-X9s5=b4j22F=_9zcYBJFVA|LlREhAL|mfV^|>kb3;4;SvFG{LK~Fz0 z59ON)+(Y=TW&Wkyv0cjHa{DI-y7vap4?OTlKe@86-wbf_86U-tBf9h*W%$K&eh9qX z+3DZd*%{!Qxl!Y4&5>vyfxX0YpX@_!QRO9J`Mpv6-loa+ytd{ccY2?rca`7V$nz4~ zEvEfq;+w_Pr9C{GSTk&CJ>@NzvhOANL+CH%O=-{FbvHV(^PLIV5s%#C;J4qyAGZEa z*jpd%WYC^v)&^V}zJWO$=xNTe(cE$uKi!|)#=kjjbZ1X{Y_Ia-@TDKJz2aWl+i2#C z6a5n_fv)tC{Hub1Z)L@al9e+~6g}2RUoc;@&(0mqi|qT9v*!%*sXl5hVXr}QX6^ke zvLd&9>I3Fa9DP;b3;*;c_D92yYhq5toWX7TC~pU!y(;|fjgEif=@0oz>XS1)Ja^E; zb1r}7rtsIP!e849{P`*HKLq^69{9;`udkalF1!KWa{R5ggMEYH)*f&<^sR(E@AKed zfdByx{J+1$+Q)YlQPwkZ5<(sGa%D&>8H{H{Y zsrRR}O&fau6_rta=pS8&_`N~(J)39~;hyT>oVd`CDT&ngKDqZhS^tZ?GMsV;Fi?4Zao$s@w>YpckXqv!O8n^NAE-zvKNo$blm-Q zq|cj}r<{z=@0VvyZNJ)@+Jt}6a+|NP86BB5yJA8%=hL*^$i76B%ll98WgnqCax|Zs z)$uU<8qGFyt2rIJORT9mvu97p-C^y&=mL0bm<_ASX|A@Omq5* z7P%b-6FFm^-v_R;rsmGBnE(AL%MMJ|o=xnP)XrW5lYe9L%p9klGURcc_}zh3I1c1l zF0h*V!SNYj%>`CHQ`?fqT;NQ44xH|D!D#=_i%6bdfnGVln&;4b@8`It%q!3>>Hh21 ze(^#Fym7}F{UWmsPB|Sr#|o#Mj*4vxQtww+lmU?Zj}GZ{P~^OOWM|Z8#1jctKp|RX#Zc) ze|gVY^VZQ;8FJKuEZ)JhsoYmT8~KBVLE6vrWz4IfTvFTk3qSf0ZC^v%s(%von>`bO z{Rf50)y|8|FnbW@n4Ce$u<;?CGjZIqPn|;9A(nq{vp-{R#ffT;VDPUL9-jg3M&)Y* z?_;M>$8=y^WcfO-_UFq%%_oNFZ|&0i(rwy5`XLj zZ|SLDoMTO0ae?$h#e_C=Qs?8=JRf_Msqdsa=5Q{ybjQo+j>F|>k z|GezT!pq1)(tSr3v>%wO=T@NSa;Vd*+f=7lR%e5oWL5Izl~Hpa85IsXvtYy-*%8tC zF#C@^fIph&v-9S@&vViJFtp3zT!D6I_6Bq>^W}6bhR0j+yV|Dt3Zv+O82fiMvNu>0 zcH}8&UtKva{0ww&bZ9796YW~@x!R@`6&}W>kw<4_O|(4>&1qx*h&dxCMBw)(eBsV# zk>6Zf)|7uG81-!h&Sk)!F2uu<>+!|c~_m>is;wAURhw|zudKK~(MnN9w*U=d8Mj1N99-2`pgpbh)J zZtiqwbEyN5WTp+;9ELXS&_;Xa&rlzhssD7oayInIO`^|)?qDiIS3;x19vZblBkJFu zHD|;G!BZ%mMO!*&p~Y|QjnV#OU^*;$Bi58o=BEI6pUM-f&f{y#?{^;-sQ`R48ampCJ=D$5I$cg+a zem^(zdi;KFWVgAW71?fnb0R-;%5CFU{gM>xV2qIa&4gdA`TOTTu*diA{*01u@BWOj z3iMDJ{t`Zu*I$yq(mI-PCVd+%Lr+y;*U(owYgM{Qx>0#A&BRp#=%?oGS}T`9+#wJd z@ImJ)V#VW|wucHARid-dA2HsQkGO+=Qf}K!>TS6U-l0GBtcm}#xTpP}8=ZUluQGq+ z`YFqLekor&reW`2)ww8ZW9Oo5zBznzHx>jkS2i(L#%3IOh<2VigS~Q=uO5lHmT=H>@cXIqLLHju-Ddbvd^b%p z!LMwybYLC$h&La`_i15_-paT!d-g133%!UBVfd;4f1&=@+)FSR{fD+&|M*zc^8xuZ z#fGjK9bceNGH1`2upJ%~UzI__C%HF^wwBHwGT|?@rT_1wwE22Uo9@1it<fnDm`TFF4Cd=0->UPK9cKjf*pA+N3%{qfaaY4m(o+O7;F(&qBTqXZdvAlqCc#)$R z{83I!O0gZ48%UW(=)Ht3wkY(X+6&Rlg)}DDz0wz!-us-hkqGjoucxJp=T_M zIkHKgvgwI0eSaK@a zE_tV}3k46t3PjrU|_9HDG$W9U-To;@o z9_RLk2lD2|>xO&!Io){}b3Q5gOXv&f3U>@pVRW3o<2iJz?CV-|oW^}?Px$5qkv~@^ zJ`e6ebe#H-{(n38&N$PDHmy_ksdaQhV-vm^ZN(@c>deui9&*6!;gA04F zFKYIhxgdNM?;0MPh^-G`*N}Ik=a@rS`;0ZOO4o`(+QY-}8Douc4XnA#ffwzw2eR<{?S1^~$$7AS^4v)EQ0sZ++G}p| z)i0l1)ks}M)K%cwn`S0;g{VvO*NVy3@;=Ya8cVIM6fXY`?WL~FkN(hR?rbCyyg z_)OPXw9(7Lubu<`j63y?+Hvd9d;NGXDjw(A49XW%UbJ}l3ny3QQGYXI{?zxXnfqy` z%#@kF!eO*2TU|ozig7izFf*e1h5@JcAUM;h-&^--_ntJex#SAYb#ThDSK!t=z<2Q& z8{cJSk2cMxWkqIyw{YzM*DUgxcQJ-MMEtK6*mPfZLB5T2kMzqm0qe?T*tJ&X+pEwQ zb<{nJx+@(Wu~<3+dfucQ6!`>>o;LCw=f$GJ#b;SpqT}j|tpSE6uYdjIDuV}S;LI@ zc&`0k3BKsi9QX!(%{=Dbx)X~YtFsn8YFU{prO&M$SVI3*z(afKBR_m+;`H!c6MQG0lTJkUjTbL0Dfbn|=TfL=p3aV??-TbN zKfqjl5i-c9(vnMrl3kN(NX3H$%>YvYp{xt{+?ekf;7%ZGU6(S#4tSP?3mo94Wc zc49{-`zP;Lte8|IykGplFe6((ybFH<9*M$h8Q7fIjp#f0ZT(=@t-)*9q5aGg?ky&c zr~TmXuaX!;R=n8CV zU;d%-r6&SAa`SY+x4#o#b_F>dPgmRjN9jL)Z6`kMZgNhxGoNxX^1r>BSTNU5*YIp4 z{w{d}+woT;{7ScMXYS7;>X$bv%QQpEv#j z?e~&%&_bO$S9ln@XDPa;g?1Q=Cj3dRcc>h4o>^%XUS#^u9@BK!|F%4J&mS)S!sScg zvRJs_JI2t%;zbvqKEemx>BT1qoK=Do|1}98u2%tP-a_BTJm8GMLyho|%g07nxO-~T zS3U8sJ@yDhZbolPu0GGNSKcM-kB1Yop6iSk-1)Eep_1{${FmmwWP_wj+0Ur38XLZr zc})2i(xvi6Vsq(Z%1yz3d->w~bB!H-6gyRX;hCVV2c!c6=m5p6Gx2*0$OR0{ zo;hJHd~f_ZXxefk`xi=IOeWTWjoXEd+hv6w-GzN>y%oJf+vsX!J}>U%A-> zQ!6}vm^kxOvb*S>c3>Ly!J@}T`9hD5^5v{-cVNN}8kl6GPnkieUvYPKvS?s1OKVH~%7GP5eZNt-XJt@AqmU-6_ z*`_?Bv%T-6t0&z(&Ar%h;jGA+V@-}rjmdGj4Vb5~SB>&i4i60%p$i+=Yfi+@Q#o`c zI!n65jen%jTXZvXDd0B0C*0D)t~Gyw$oWmvG7}&)1a;n!3+Hb+YQVYmoY~pyCNFigDi{R zzRIt3_`lKa3&*mrv}u${{r<@A%TJv~-|U4(8WRbpJ;=$+#B@3xTX`Kg$!?i-yueWj zP8zc}gHy|m-~}$4x6s^*OXoJnF3xdqIpE-;T#k#uBUOi0)FgD+K98?r@p0p4_WJ2W zeyNE^A@?!lBav4e+GNqcGmsChZLeZ1>Gf$D2aKz9&W2kYwZ|V9lQ$zefBJnprY8TU z2pXubqsZ7@XW4mns&DPcM18KGyLPB`OuowEeC=nQ7deOe!~>1=tKM0h@{VjY4oc4S$8s=m^DaHGb8v_IH?- zFTHHfkqIAcBYIQ$O@YX{&{E}UGps9BhoAC3l}A4p;XBQAVgWH^shn}Je2EzCCDX%( z?*R7Nd%ql9rh|+3p5khv&)!FD{`whoap^H9g&vIq9bUrrs~=?#@o&vs>%+vxo1nE~ zEy^?9PR`71`FiB_ydqx?pRblUr>@KSm95y$e5}QPt=*Har~I8|^2YwjL&XQKyiGFlQRD7=Xyk2z!{-f>4=ZvDxm}ICH$%Q7GLkB9 zHG@3zHYHJCT;4*Cyjk{~_$2B}lDCw1;_}9OM&9%u^t)6!X3*`U$lH}E^h+mi*R%JJ zH~&}q${&K?r=*cL=s})`u`lXhBX3Sw(MqzihyL#(Z>&+D#TxbQh-0{5N%Eez9e39Wa#~G*fR8rhgZZilBXj(?ele4lnUoF;yK&VMap6AOHM_< zjXsOGZvdWUzl%J4YkgY^{Na{6@dv-iJQA_?#xLWqVGGNw?2Z?ZmskbQu0{82fotWaI6Bkp#0%7=7o93@=+(a{tn%$vQ1y4F3LB3ncp&g z@pWBTn(ho8BQCL7FfBrVRU+5_nnB#efw2V`*P#!hz$ZA%@P8XABOk?4#&?NP6_dLgFkK7(Pk@cY`3yZn-fynyaWGO?X?-YWEr}& zI5ZJ`+&lvphS?5XTEJ6wS>srjE+%&Z+C)_+bP4xBmqH(B_R?R#_k89#@R@$e>8(4< z+MHQlRLK4D-uo?sxKBA#K0i?&8YKEV4ZeS+og^AF|0sN04ZgmPV)#J#%KvC$zfl*@ zOTkk(n%pU9+myu^_=@4-3eIlcIeXZA(O-ShN?-VayMptP#rNmK^P+ttusrGXcbU`Q zzw*E$o_yKzCGlhIe%@s*k;5YvT zJ>OmX_oTGH!J(VWv!a{MS&!bzIMC27JB4mpk)HsQmuI85LN|P7(aq)CCipfT-IOof zoqS8~wv%(9@k4B~b!P*}A}%OIH@XI-%M_YqceLGt9Eg#brx+F6!VRSl#y1(eDuWck>4c(`)b66XP5#|-HQ`^MNbRQpTmKiPzG+FmBw!FOtNgU0CT?7>+0`)27R z<%49!byD*u?eUsdwqiFs`UqVl*>deczustt@36E78ksz_UT9RDhDO_f(Y2e3DY*0r zLZ2DruRJ+BI3a=zt8dcj?JGQeW7Eji+g|+>y%G9c*1i5&4GdlyMQ@~!E<--iKaJ3+ z4O(@lf3~lJ#@Awl=u@MIusg1QVf+Pf!uQ=9qyLmQ^bCEP$Um@SLdEp=oUff&HJ@*# z+3)L;aFNalB@b=wKF&N#xwksaz5h&euO`jCm1*uROLMO(&Ao+b?%k8--j~wc`$C#~ zv(wzG;GX(AnhhNpzfF6{_C060`D*@*{gX2WbnL#|n);4Eu>U*nPu{pT!wP>;VC|1C zr@tOy4%s3`hOSjy=p6XtYDecY_MF=E7(7q8*h;&sSGRuUj+3j1^M)H&+Iq3#GWx0{ zgZUcfA|7E({}_C+Jap{L$@IBXKlYPz9sA+up6=uhOFtl6_n5iqa8&-x0 z{I({12+gZ{b;YqU$iV_&gMS+FWp##iONBoiyGMD*#5J)I+K(-Y&l%&Zc&+9U?f8sm zEaMNDoFA1p{t;tVttHaDuCfET1}!@AvmPKO-AVmT1w5Dj z<5>=I*Bs)mS@=b5#AA)FCEpVrIKCBlWgAD(hvEr+CF91v@k}~W`gxUf0M~}@`lY=( z*=S%m4DFR)TntRMe$0d~?7UppcU$eHeHpaJ_h=?(SnbP4Gd3H&ESudze^9q$vxiOa z!sXT5UjQcAcfs;BK2bYxya7DQgOyKY`$DGyi*jI%AGuFs8~Kr610Lxk#R)aGX(tY3 z;%l_ucCB^n4Qy{ada1-GUtWES-lQ*|Aji|_B49MS2!3k9Mrq7r#=E@V=)uqETkukx zaV`B)1ub7eR`RwIo8bRi^(}Eu+5T7P+e22)Tp!oMS$+_C7iPGEoA&{l9u*)rEY~sjSm8dbVDA_Ud05J)3kdl;++< z?kVs1Y3scozcTyI33)#Q4)Si)ZZ_uzwBl>FU1pChy?Q}-9fqF{L!)+ZV$Ek*{Llf7 z7Wr~JUXaX;RX?3Zf98U_&UiKBOGC3GmwEJqw-3i6XVc(|%iwkDZ-*bmH!i=lLtEO~ z-vOO(oHJ?y^7lhqrbC;?0<+|jJs?e=O15ks&N05nB|I0r;^B7u?>B(;PrzITya^ue z>%gmA{A~Fi2Hux|S3K;(_9tL^gFZFz!NcO;Kf%Y9@UVQAM&A7sxrl~u#lO7UR;}jyRj$=X zvODqk>OkPY2L0qg+XlHYv!;QeW1lBh?Zy*#(|6u@kBLk3t{a;^o%qc<+DeVp8M&n{ zV#vf>J?HRt6YKp}3LMci@tDqvF&%R__x@!6#QOP|_zIqEF!_BKgnv8U&c}KO-dU4T zS?J@OR`;v{WOdxT^wk>68t}oNKfUpT3TuB3{UZCC3qJ_vM*pCQTi0tht1kRkr;cXo zTuSUG7=fm`zIfNkZBQN9foVkMxGk1^|xq#9@0bz+OEkUJmzl>y&WkSFHmLrcznF^O>_uo@c& zZ;5w*3Vf`oJ)+#XWmeT{lb=U!*)Xeeb(AvM^xd6|2eav~r{TM7`Ywn6cC1)_LsrDJ zLyn&6XhE;E;!A9zEzwVUOtkazh3m&|ba3D4k=Z!@l3~wmpTd$z=Xo zxg@Tw31Dkf4x9MH5VX;JcnP^+!>qtw{I0#r$YIWAoIMQsX)T!YrmL`>+VevCKt4e0(eATMO{*px@23tzX-&hBn!DH7~MQ`EImT!J34n*xt$5kDb_$;k3JpIyL`Z z$NYPpWv$e^@;&9J%7>KwRt_O{vapT(gHGl<+Q>i9ebuk^X3Lpx(tN7)q2|`Kj-(Yh zTYzf`_4^qE({J@b@&X#^1Nl9RPd~oOtO-E}w2C+3Q}w6nR6Wyyxr%q!;){@~BOk%Cvav;4E2MFJR&qZ&cH=nmp**#AM@}Sf?i^RM`LDUu%nlrp zE_11N-jUWT5bygk^TTK3PXcc%aLdOu^QgcbL*Ck)c~s>csUMz%Z-j3xztV^QLt9>Z zCHWfQk*_%(`O-Q)uYEex=u+2j%!_>DQyS0MYogP}{~xgBw!8g^+li%l>o@j~K9k%m zM>hWHolbI?tmoea*KODv?TPEhUg)e6VzyiT*qnF3-)nQ`O21-rvP>VIMW1l~x?{gS z&3PWSOs39#38&=TepmlA_Q#ex_I#IvkJp}i_dA)xoSzq;0`!Y?47LKhC7;&cu>+a& z?%!U-wb7UGsdRw&==Fa1l<;#C{W~3fra9qCeix(He#5g`__B$6<>+GNmoDYkJ>Oxw zm3$sU`x(9OJyPSr%ZpF0@lTTXt8@3u&Hx`DxXE9h^5^8ed+OPz%jGfg*Lk;0$p`ZETNG(R((?;-kkx~?nPSD&xDul`Q@E47a+=toQa z==8DaPx^QU^?Z(J(m~?YRJn530u*@qth@bd+F3u}8$TA2FXZLN9jxKe+=spQ4(FwC zU0{3y8^0ao4He{LWBCf-B3+NRu)fF7T+eX6F8&4NEc>yM!}+@RmXOb+_~mfE zde4VlC@?;ZeO-lZD40UMe9d#NQ)zf6bP8o9Xy}!bK0GVe84{xJAV-GyT?{S(o>l6M z6g@lNdB*QzaQdJx^2M4s^K7W|jNirJ_ZOZuxN?b&H|_De7##l0v#8sj_+#c7zl*`? zFwf$B9b$YU+2wZzxW#zZTVFr3JmLSW@aX3`W_?d${~YDCHDRM$Co_l2J{axvZF@;Z zVQe(Ig=fuI+Rt}b>@(Q6;nfR$*5ket&nH+4FYQe|1JH;KUgwYwvdEdq#oN^7(hZceu}@O}Ux6m)mjJC>Seeo*d?#+Ak=0CxE?ZSeJB;A}4` zDpZVSXl3!9rGxH2IQ#V#YRa=_rlyVaqR5Nf@)Y}q1^5mdKtECDYMx)j^Bb!2!&lFl zwdF?In0wa!2QTK{LsjR5SI(KcWtJ~<&yBR9`YC2X``4rMst5|RZe)u zoEcl5WFN9hz8RGzd#3R0McTcZdh7VlnG;($=X%f8)TirVTni?*p2pcTwvb=GX9(ZG zfXaatJex_mDRX9SndQ{6)Olx?Q%9Y1T>&f=l&zRku|@lp74g-YNQ;l_f9Im>PWDgO zN6Cj|*@BP7Bd$NHF{|OtCH5LX<|x9G*?(gXxjypIl*?n&H79&H-&$FH{{08D<_z6Z zOu4cUYfUIuaxQ*P<(c7`=kR=hZ)G+4b}jG_NvRr;NasH^LTLR?$wih zz9ZLva_ws6w!XpHwl}he#i-!k)r+`4iu-NAw#&+mbXGFP0zU0!X!G~In?^c3EnfZl zvJv)fvg;^YMA;(B1}*EsA=O2DimH8k_`m0)!f>iMei*t9f%YX0 zzCAM@E#o=$A2p&-2VX>{Ff*tuzT3{JYP4Bef}*j4|7*rFghTymhXM1OcO0IyeD zlfqhmF?{GttGC0aFTvM!@NsKa<$;$i|K7U%msg8_>$tC+JM>RvQPk!|?S0qT$y)wS z*7A4eY%DtQxr3@(`x#MpeRbt!rtS>`tndir#^l#gS1Wb3u}=m1ZtpY5$Edp&9vn98 zrPX=xyxQ5daLU1TRu=OizVN#F1zXhaBII)}_NuefM_Ujbr_F{voG3lG>-_l#@v$NsPW&7H?>@*GQ2hUQ{?E4mpI`3WyNP?ZJO6Lz|1IW! z-Lo?fRzz7ZKR@`M(No}e5w@)noJ;0U-y%4c^1J?S<)PSfNzxy-ezVuuWYd3b)`j82 z#1G~SeZ|mkBsxR$HSNS*FY;yW%?a*VT?SoqxG%e3XXQi=HQ4?4bLkReA2T9nkvEsl zK1#RDSPE}t!&~sHYX|?CcjNlmj9(J|Q4#A<=Z*Ma)sy6cE3eSASKhwhl*_^wO>km! zt`9*>SM6NqwBw!+74_d|_8^n&>*Ka($DiBX7`Eh4-wyHpCL1EQ4@@w6+U~nnYT#Xt34}xX6n82v%>wj zmyZ5k|3ozEtnS(uUY|tgHQChqN775NxAgQH-3z_;zS5OmyHf8#uN~Yw6?*;XBhYKN ziFYRWSw8*ba`y9rZ{&+_;%r0dgksjk7uSw9xwG*xq|4L1qjmlbW)Fmm!m%-oTktbu z_=}D3brW%0}u#mfc4TH{d?vi7Tdafr1x zW*+XoO<$l)2wPxPo)cD`uAWcw)seHf?+Y*8l|q{a5ATSFx|6?A##SZhqj8VMJd(ea zXWH`jJ?xI?re}&rigxNR#p0Go4w22Bj4QOy^wnH%r_2oEqs{P*%2hdIr(eM@-my~? zc#GDuU!v#C`7=FZ3&jNkkqddpJH8MNnlV=>^e+ab2;v=MRIXlDFEEOzg9wZr)O z4*L70`Lo_@V+?bc`*}sykpkMf%xOzG(@|n!>yvQHiZISurL*PSaZ@_H9!$Zj5#2n? z3WT%3ZNuz4l5o@7fOKQO4WhYx1;%AXspCCxi?JX3iigod&i`fRzxIq;xM_*`ulU-+ zO_iQ9_j&%`%l}k8`HPpk%Ka;;_mKOY+&dMye||~Ndh#G}D44nObx2>iS_ z4L=X=hM!HJ!_PK<*>O_w*j)8F^4wFOr{l9?`1ua{J(bUz7>A_tw9RMY>8!}jYOe>L zPUWv+_<0umoXTG%@beglpN*`-&oddfCt?}4td9K z=_9n$Jx?oMuyE6_mCFRp^?$$lZ}a*uJ^%Nb|2D6`;wk?U|KaHx*?!}bN6!kMWAks~ zUhP@ofvNZ4>C;b$Oi`lb~9?fOgh{C9%C&G`__XW|=ew$QWk*D{Bt_1Eg)mt6`hRRLm7%qJ=)%^0WN zVh#crx7ISpn@`T2)i69<%i3d&^`FH46>zVDd+Sy@Fgj!ZD7msT=@aP+!T3YLm_nam zdG&#Hho3#_v#hNyG{Gs4rk`<^H2ZXaDFZu~OYXP?YuLQTC(Rnzt}>qZ^x$ zeKg~@5_|l%!o+~jj*s7>H)H#-8;ko?9$E0Yz9Y}z0}Z={xCnD) z#k?OQ*6HLynf4T46F#O*Yg)y@URdjnKTAokNlnnTGB+IMYrG z@kQcDd#fy8xN)MLi?ma6eX-UD`e@tNA-tm{%<~FwVy^n%g#YB?JrEeQ&btnKH9X(i z&snPPCC!zU*kh$P;ScQ(*2J%CKg1WK9o~J|V-I!{&-KRhHD6Xn97$`lm5)&O@Iwdc zhSwflYh})jLYt7YC&lbb6MOmub#}>^G0vJ}D}rxUW3lGg_+vZm_*B{5z9Z|K-{dB*TRn(zx|+~V7>{I6o>W{a(R9~Di9%%1UH zG5wHnv30C?Q0UPN)>q1Rk{o#PcIkCK^qNi%F*0ZG3$|rQkMv46SGcXp);->_={FoX zclDoQ-`@VrH}jNv;S-nGdhDa<0nK64r~9n@F-d(Yp86&*#egA-jC%D&6gqmZUHIC~ z{6g}0wh?*L-VFg{q1wt=8Gxn%WM-{p9eEhpTq_xcPn(c6jelFHdjqmmMqK~e`em!z z@FjBS>sGVge%XToUtp#D@Jjmku;wX{OU)Q6^nIS~JEPps5vB_TDLcTiKI9d$C4)WAj8(Db3?~Wt^>dJ z_)&WREsX2b{~m^pHe($0Ht(BrET+*mJQW~UmN_D$*L5ya8||8PCeU8{9NFVdJ8wQ6 z?!RI$*VI_j3m$nr;@H#O%u}B1pRlLe|9K{PCDozx!%NQzZCsvTv~k7A;*Hf8muzeq z9N5@akh!sabk@e^%d(wv7og{uuR%T}LoLKJ>yVE+^wI{#cmCYU1JkXnz2xtbU$gu{ z&2#N0W~3PF^0)8PJXm-H`P{?d(dBPneemT0*8JsffA-+ZWAr=g;LEpI^Q+(f>cJP! zw+f#eYK8l;Mzr}h#_qCfcg+VjK9UnFiojP4SbpTz(0(0!s~|K#=LUb+?|14E`;n?Fl`1qOvi zWu0F%>LJeDeva=i`Tm*jNUL&dJHLY;dAxMmn?LzdwKcd;wUyInWT0~EC|}kMqkNgC zjq+vRP;KS*sh(Lqa5rVK9erMVN%;Wfvuu!LHS))cAwY&@a@uVS8n-I z9p#Bv_8B=q<+CZDMft!Db(F6gxpbglud}lH9Dlc}bj=U`I|2Wop5dSN(zi;Fzx_-C z{&RYP|Ahxi2WLH>fdBlS;h$LhXz6RuY)`>2*oRy=-Yoc0&@4Et+;U0u3n^bZrTkLelqX+sy64*rq{_A7dZeZl4M!jHBm zV4u(n?DHNdo%pNG3EEHU8UBd@cwzj;1pM%LPrM^u7azUBciOYnrLXPu@DY4*12VAN z8g<$YzTAs;Q>NNFtzNvM_k|H%kZSY)Rk)eQ!VxHahQYq--1SMD+W)G795at)vKhR=cr7niQNt~P-W^zId(eNU859JDRbN62e$_zeE~ z+R_E@|1^OQJl`8Wul@Afr4uJTm5>v7r#F0Fd%v>u_#K}9LHG2A&++=I(rv5%JAn`K z+Z#UHzO%S=+V`GG;Da3WhR?SA@02c>^n3yz^k{GR3|{nj>GAJ)96< z8=EGZlV#hFp-YWDlbo!%?mMNgt=gP`H*Rmz!29mEOJ7^CF#)f!1?k}(eAkN71;6v~ zQCv@Vg?I2bR+S$A-H(&_$F`AO;eGA*kCZMLSeJm8zUhv>(>kk5Crn92NqW^5W-WA?$wM$9|hien?8k?1#z7w;tDOYVvz#F$IUFo}R(qp9yUi)c+ zzDD17L*KQJlumnReF9$Or(1Y`{$S~v|Md72hGyyEHGYwQ#6@eagLX?j_Q3RY=0&2P z@rhFf0HPJ8s* zrE6lTK16zWw>|RR(&Ha&Pte)OQaAAaWM%1^`uYT47}-w`@A2J_ln#E^<2#tXP7m+k z*Pkd|^O8sJ8Qx3}@0uC-4CNl50bSfJeXqcO+2QdQjO?d}ciKMW?hOw=7+sYf-fh=> zw{+UmKThzm;m!2$F1T%V>G6N9OVHQIQaAMd((2OJ?)LZrhL6+3TW$5lf9{9ReL8-6 z|2{$DY}+$@9Xr-`P7MsQ7!&wLrHe<5A|`dRe_}uLDDi^dXuPfQI5B}YG`?gktvSfW zneY9WH5|kpGCN*j{8Yu7o);|Zd1ALUR_H>rmPc!0HNO!fe&^n|$DPVWVefZm-7Q0TwIO$HP*b0*aUUD@g;k{Q*&>c$8h)Lvd8DlVQoJ5&J(Lf z@;#fcJ1#fzzx(X*=niN6t@T;CCSH_?mw$s?$Q{o5uy`zs@u6s^dAd!E{mk4h@rfw$ zvA0Ak#l090Hxi%t{+Q(WxyHq6yRXx>&dqS+$!dSM$!|~4zwugPA>glm(EjO%&m)Jd z=-hC&5BkuK=1lGRc7G)Qeb#HT4xy3n6Mqyv?fi=t=%T)hLAOR|JL}aGs~-552M=5~ z_eV!_-g)V0&Z@&la~58=Cg+3CJ(lx9<=))Tw+~$Z<)@F1s>)eo`DT1K$aewzT+G;B z^g-~P85de3r(a0S^n2xp)GL_(;q1?{3r#6CWqEudavlI{m__r`+@w*0|9H@ zQRU;+tz+LCG-1%L# zS(m0wwRexxUb}~%)7IZ`S&#KU+)e#ur&>SrIX%Ju)o$v)_EhU9&r5UqUjDcHL^>cV z^7%CNi#J81OFey(?)>Mp^s4N+KZ??{r?v*B!6!GRzu|{^t3mZEwkVv$>slMfT0Z*w zqLjK-?*|J`tm5s%V}o5 zg!$%uUG^<^^kGuG+M^>y^Sc~af9ufPrFXmGPtSgy*f`ar{At;@^RRd0_$n8$h*+xb z#fVFuP@WR^@+@D+&&gHR{n3=OZG=7N<=Vc_IBloX$9DUP`4F>*^$6Sk6*In+jn|y@ z?H6!9FFpcusx=k!&tc8yedL`bpS3ggQitD`q}YeS%)LT`(GDDD{%COJ){&{D>JMsIv0^ITVZX@V6WWbyZeS4WzYLB z+N3J6da^JCk!tEXQgLUOLX}y`r zr%&uJAH9}!EX*Nw=J^Uc!Aa+Hol9Q|Ugl?NDy%cZnh%r@)&y+YAEgQZqKWe6c|(Gi zlX=)aTi|{6&9PWt=<@M}@NtlMyfg2&FBrPY@UhxX-kZz9ZCeMn>q^JL}0c%Q&NB9rE%{ffXKIJ_JRCP`b%^Crq7nxeP;5;S6W+N$l_d;spo_>=UGgSLL+lFo!pPh zLz6GOfAH~D!gB~RQ7oB&H<(M|`{CRDH}!otFnR6XP*1;qhdy!jV^974XJ~HYXzM%m z_tCGPdVd@L-`I;w8x`XqL~y;lb7 z9n2X3(iJ{(7&TTjyv+4CmGeQp7P2Xw7URG2(ke|mp=0;!mvNG-i@N9$r;LAX z{=cF}`b-D@kjGbAI!wI1V3T+PU#UJ=bH0;XV*A)8Z!Gm(j-3u|!S!dy9bSWXjo!po zyl40izJ*^Df3SJCtNm5KoaNxQ*TVyD|99EHnVc}|D;I`i$mulNXoQE0qi2Uh@NHDj z&at0Ob)VJ7pS^9}b!B)R{qq_3S%dwoLGQgcA{@)Uf73PYvHP*}t;T^O$*?m@S zKXc`39Q14Cc?R@Dm(&;M7lc_GVe4P$Rx((A!PxK&?iqN=(te1Ii}*3Q4~CDO94OIh4`Yw5&}rB-PM`C9hNfH>q+Ab4xelgW=ciofrCeW_ za(zL{_4z5+gHx{0OSwKb<@%hI>$6j?Kap~MR?79Dlh*Jq|&pOJFy^4snde?Hy% z`XD}xpV;SczK1OT+;z&kGr6#V$fF;;-|O1xf1wXudypE>vhzI?_Dud!4gMhdW^)EP z8uEkvs@Ke*~q_Y1&Z#k(h9RC3fr;?L;9sRG|%1=9d;Es)#F4PO|1a}X znM+$aDbKLWV($muQd%SsoeVu+bv4{TXKlGyaywMMvmm1r##63orGSANvDjv&Z~c+BEsG@QZRv ztFWWyjCgdB;`Rl8CpVVo-Q~uXoMLY5N^DLOvhL=_x;e3&b@aIQCu(7?3E9}&%$`}= zpW;Q%{i-GpuuX9e^1EN;nQ(FQVUzM;p+&kp*e^Qx$Max~T=bj=d!BL=ojlmH`S04~ zcua+OqHNwx@Iu^YaQJ_TN9Wo0&pyAxUXwX6zP=*%Wq9Bo>RCWOY(>|6*xj7I<=GzwG45^6TcvE`eWN9sllm z_FSc6etO^J$W{Q)V2w4&k);jMU@`ApC>mB!k2goQr28D%tTc4_8Fcab1NIr<$@#IJ zC8xb7e3z2r+S=#7O`PAhx2^wuo7(u@9<^B8zkIbB-zg4BjIVPM>-I|+oA76WfXkRgXOk1pU)?snR%9b zx$bMfuj{%W!k<~ZY6Lhi!gpv4JiiGa?i1MYs?D!hSS!;3ICq2ek}Znu}g|~s@HYrZR{mRMTzU2(O<)0*#! ztwp~u--)kPJLS0{6Jsmh9|b;!mzUZ0I(pN3Cts^RNUZHIUci?C-F~NqKX-8SpTW=I|1f@D{u%J|-$bvU0YASjIG~?+<(7+|M!uXZUDf0Np*BRS zEdQ|9Q~0U%m+oqGP4M*be!lI?N7;2%Ol^n+e3`oPLG~7=j3BQM->7)|vZ%Fl?eNgU zM(+h@l{=tkl*e!?H635_NlaMYE#hHY;v1B>3`nBd6TyeUv@uruNzP0c~f`gYRl9)jPJIJ zeY9)j5c-?=e1yI5R0`ioS@vO_k3r0J->OGuFjhS`S#AzSC^#0xCZrzRE-%;eFZqTWd$#V=xsGl?Tl%@BlxJUl^ z%>0F?O@4**A|lk;aj%a=Kh*WD{iyfgv{Q@CQ%=7|2JH?N%Xfi2Z_d%0YuCuA@&h~g zL=`stOkEoZeapx7KKMS@hW#$(c+Y14U>^6|fm7>(xsyi|Cx3uvOnw!xmEiO|1Hhx2xz5HX z)CwH*&NKs`$L^;dX5-_$HxIZ7R`~a3uA>&lCBP`}l*jJR_2o9MV{G$)kAWrgv+rM$ zalaBcsgGJ}O)1YTy8I$|MqVUZHuZ26yfr+-_3;sFp**@v?}7%{qto|`J>SdBcl(); z`L2A@JD<7G^UPPw_gwStB+vJAJkOl%eAl~Y^4-ga?xG&D_|Pba4@q~@pZJmJZ!Bkx zd(WpAo_4RBk_BJo451ft;G?h)t0RuMZmZR|uHEWam*?wWM_r(uoYC%_ z!TJ9^6yzD|0qvY+`3}uM-%))G)nDP9PHISJb9Q1*<34C|Kebm6aPQ09!~aTu=1l|F~<{ti1frJ)9>> zeGlxvzMW(BJ>UMm@C0k-^#1zZr;|O8nZKaFH+XKnm2>|gYxMmC{ev3A#A~1BA6Pfg zpI5iD|6RNOPCr%GS3S?Yy0a%f_~uuydh&1j{&e25!3P2bCeEaTIkW@@QsXIy+8=`& zcQc+Dv|pt5`&&ETp`C-YQ*ixF&+iOcJI@|)*RDad`HpYUYded({pQ)h+`GwN@Y*|f zJ~+7G`m>*Z{TO2`@E6pb#kj6wT>8GAaVhr29#ercrh$#SziJ(N61*Mx#g6HFOMN>p zvaVQ~H{v^M`QOTaJOAI!>32o_(xpQsKc2-u#^~bq>kn79O%Fej{3fGU;epSwpE7mW4#_nTax^KIWXY4*a*X=%@vHS2` zxBGa;o`dJQJ%^s#|8CCkE4t<}BHee!JUrJk=Ha=X0VmJ(3^;kNf7%>Idd4rhriRdo@H{Y!rJnhP{gH zO^&3$BI=oL(%C_lAKxXsoil@VuVoSbW9Y3FeN*SuxPB-*7SOIa*nwP?+}+E6C;$8S zKLL76KkIY$Zf!erKmN^MB5w|$m%XznlsrhgZAP|b@qQlftNv91@YB!jgPf5 zi@sY%5q+t`C&she-H9p<;E7ZR8yxV?^_D{v{GL8TCK<@Un*v+clpG|v;`A)F* zZok_5Q2m~3)GzDN+kVT`uk(Db`(;hL_ghTAnoo@RYOc0!@A$ZYv$5HMRp#~nTp!T* z9&0N8;rhts8=P8|=B|fEw>VC){=CqYL zy~3R4GpCizN3k@kH6QT4nfWN6K()whUICv3KNRmZC(qItc0N8Ns}8=K+`?}!-`qxf zOFM4gwQ|9z!!6LvOY|q6q48+l)c%vSUs_II+D$OZgc?oGUbyM-0o1fmd{+EQVWadMTi>wb10!QZ59#^4QCnWW|E#%!8|fNdfySbbh^tXueeNqxFwWY3P$ZdV*O9g9+4iTh zHwONW2tQ8js{A5?(dHatSf4ndEB1!?Jz_xy7~D~t-uIiXvZ_M(mYS~RQ$Fa$R#lL( z`vcGbbTW&&P&%LFBH%rW^HxM-7jZ_&XueOitaBuLThLMN{;*`1;sb4X+p(#C7y|CF zR>Cu_ciZ_kEWgK`-El8g%x!wy>w`n`dNpp(lDF( zl!Cu;<`ZT77V+lRF9w9Qf9xH9`w1U6=zYy0N?Wq|G{%v{cDQgI*&VLe_71K+;n*0~ zK6mk$#Y;2JhN*stn(B31xt4>Ty$-&)n=@<1;zxuw!%uJ?U2ZV9t{OhzXO8Vn)@{O* zHgKdBeZa_U*5e|RhxX<0UEoR!_|aMho`5s$O`+T5<5f)`J^PbqKZXxU&$DH}*66QC zS&Jy`NE98?IcJk)-yg+& z{r;)*JI|_$;D?&?3+MMh?(@64hI0Y&^Hy_~&`N#2YgLu&^FwG~pHFZfA4v6&xX&l+ zgB%+X{!hh$rtuznO~=al;a^9iSIzr!9g=u?_8Lx87p&g$M9puuqr)< z^}#=l@1ng=8^a%uGKOf8RovazFySU>sVKyCaJB%MF_?I6uYS?&H}$yh!+v?Ux!d`r zE1~&BjX1Ve=%?_=XwzOclhGL zVEs@tMml;oP!>cPaqQueL0=*Qh2?64zYXACbAH@e|mV+U}PchIkJ!(6_4ES zCJUASBDt?KyxK+k(1~~W(y+!h^bG~e~uh`rx z2rH?BhulG*=~}~F>c_ViT}6$g zuSV95up*H$zDWDSoTJ9sa?b;E6Hg{yh@2@m_&SVv%BIK)zlKf~y^{5XAIh$B+im2% zRH{#;oZMJHxMuTyVwkT1uGj#r=pZAAy|wPh3vUKj<7?7#?;FQU?xp#scfH*8e}wqr zl60O(eb74PQ|ZNhcbQ_7z38 zzM&%Cz1>Q_Q*9*=))HUASi1LH<&4MV(2NH!CV-FNYYVvA+RWL!;7L39(gB|C0T=dy zKb==|J}Ld~cX?cy&EwoPJ5lTH<&W#_`iVXD|5c~|*lF}l|I+<+wx#0t+UUQX{yXS@ z5B=|@|4#bfNB{c`FA(0@dE%-U-2$HL{FyfRVmp4C4*Xwx@Q3Zi7vCA^*Vqpk_(0I9 z-RO+Dr!k%WKLC?mCs8BOD;M)@-KnSk`~Ck6lkPMy^TtdX2*EG9j2XVT{@F`SZc{qn zK2^>64&bdHxfOt~)WTmbLZ@5tO{>a6chc`teiKJpwGz9|#h-hD)hY*nV#KTm%X19f znmvS};0X9_+i&Uh53shC$X>&L0`?w7tkw$u<1Zg8XKj+(b`@>Yj>#u5ZU5AX_ZtlU zea5!W6phNJ;@ueUs%~CJE`c)+x9_j1?=%kV2o7}WihjnvwLbE#9Js+=mz76Z54-lD zC;zh$zEor-LSWnr`{uUCA-_MMPT!K zH$N&}pTIp&C)yXd6aW|I=Y96GwA&pQpLXW#>U}RWcVj;{JNb3^u|F<2zRO=9Mc0Z| zGH3Xrd)A0K?*!e!#7$Kb(^8$UTq|IL&d^M}*W2h~@ZQ8M+s@1a7Q|r}SCh-M3j51E zSL6?W?N1*!pbwpw0)9Hn#9RmG;>1B$f*a+Wi?)Zk?*%tH!HqrW345=^mrh@M#$Oug zoOnrO|M}A*`(F%1I-kvo?0J&fhgb6)V>2PCsz9bXVMt{nGZK1zb z`fH=V_DS&HPvNz>&|bSsd(D~S`FFEc8w=im&KU==f_jUcq$zD zK>r7o-{M0jj`h`efXy)A^l$*!WC5rDx$$(z>m!RYdF%`iO&k0U1dKfs`8xVWAbaP} zK9~|&;kUvjHWHts&Tq}eKiJAz<_s^3&!WH#hKC(RDV>T-Z-Rc?l4X zd!fH%8TMTz`$poCvJWI5XDc6pjYeVzJE9G2h+5>BRItROz(eJ@2B{PyIr>CvGB$1 ze>U&O`rc)9ht1+0cR0N4Q{Fe{UO6nsxoow`Z#Yd|Er2ANeE2v7Xq;87oRk(=P>xA5$(X$7+t)4&sSkyzyao%9o~n5bft?;Rn#U zms$Aw`!G(w_7S-MG%+Cl5Z`&`SNblWKhHhMcQ2kJM=#F9OU2O{rcd&!Ct-p>Fa!A#yZosS!bOWqcyHY7n@RJ z9fHS67dABaGGnRm;`}chdG#qc_X_8vdf~m&AFhpU=z3+pe|o-~;pIW= zgs^y85MDF|{Kp4k_9xC^zAemmln$rUJXOETTwhLJxJ19Fn7vEr_4x3G`aL0& zR!g8&Q|lbsbY)ip8#(}N6WG%MXjgUI3~i$Gy+r(r#-nF9^F2$n%=3zO_%D7Ndgi_V zAIb04f^pJog#! z#I)l))5tUIoxU09LtAPC+33B$n)@RpJGnOs-Des1=Xzx4Qe@|x9%Sb)!NXDDWpAH9 z1NlnsT(6)1CA!Zj#?ssNPxsLKtH-DF(cljUgVzr19UdwNf<501AHJjSxV+>U+Rl() zKkc2q%>}Lg;cNAO1)o%@-qpjy?$M{NyNw7l)+_2u+dfTOQ-sqqQP|5M#3lDf{=c=by|7lvCT+iHDb$+wmSpUAitVAX;S-U2?i@N5Ek#(6^x zEyzmwtJ|T4y}&4r993LG2Xd(scGjcyu7f560zUATsrlMZ}qy0<|0fRF49 z(e!)p;=&VopLW`Sm!6rWXIKZrkMvv5a8^f*n3Y)rIg=B9s`>>b=)|qa+O_CaQTRj~ za&$NRb~ZA&9hk=-qz%TOc$iPKua#rR0iiQ2t(g>F(k~qc1V7$!ti8{Bh|!5Z$l5&2 z+L^rr{K<8!C3@0hS=n8CpV{nvuIAbr^d`4WH@3*f-sh>z#f~lVHCEB)NPfGu?N;S~ z)ZoXKaebx+-zC>uP7D9*$-rb9^MK|pC%6CA!PIL3Z)Ce~Vf>}+-NKiRA3}JA4KgRS0tPO2B*QC?AF(m1E;II zVoLf&mgOI5C`H#WF(uGebdiZEsdr;ar1L2rCSDW>e{BFUCA@EB0By;CA^eEz zZ;sZU+8lnZJEhW0@XTXxtq(W}85_+OI;Z{E-A zJ>I;;m`&`j)`zxSydigRW9zKUcnBLGayqvde6Zso1aJ1@*DodR>CV24i+6g16L+(| zU2zc39PBs<&gmVPRaXL@c=2Ny_;EMqu|^k+JUrULkt*64DPHW*^B;)8^5`M;!TKrx z6r6AK!g&U8o|p;epM3^6UoSZGzM)Ur%7Am_XM=N*;LJO{f%6zIoSixJ7S7w*e-|wd zrHyTh_i^BSJ8*V=Hk-v?2f99+p7A+Do(@KyAX7h>3qSVAROuLJxcmLh_WqJ`7mv2T zWcGg;oBY9vKVsLr@s{Fw{L5aj>xvdOo&pWKW4|mDN7e^N`MY#o#a7tw*>!|-;PYGA zYca7pv}gE9v%TkH_*qvxo8oSB%zmA{FP_`j!TMa%pV)bLj%qF@CZfy0e_N41ilZ@g zC^?_Y%mdx#OW4;T?CTDAjQ0Lt!`Cu>$-wXoUnqH5cF4$ecqFo}u#wsoGnHH5BR54g z0o^zk`4r3%U73o=+0ev71qvtE3YoW_}$oraoJXKe7==@4PHN; zI40)v0`}awfdyj@XVadY`;p&x7qK6bmtA9I{BCS?jJcXvB<8x>L+^hcltJ(R#9F%f zLBPf6iHdW`LqF8Ix;kTi#`-_G#0uN~sD7Q-|2;KxKXDJ=VXbartrq2@<6%=)`|>(B z6R&4{-pn-!|DIyy8UNMz+bRwp+8(41;K>;@!v6ny?f=_x z0S;Z%+H_%X%R?8f*Wo83rbf1wYL-c-Rs9Ub%-Un(9Cv8=Z{WX`%l@upG&MF@Z+s8F z@U^mKm47teiR%J4yKoZxG&sqp7boA&C$0;eG;v+T)8$y%b&6wd2Y))idujqCx1qPZ z0!}K2%FRa#EEs)w2XM72Tm4V_`^rJR(p?373)LT|@;uh%iR_R5o0er{s zIPtgBw2stF(Rx$s*5!Apx2@t7wIE{Hbz1i*_TDY5eGU1uvhDC8ZjgUSzRW1k#Ab{BR*8MW@XSWq@=6;0xS@zq;Gl&t~lB_AvG{oUvD=$3D~@`=yNi@^rt=Q=PE~j|&gb z*ee+O-1Pme-*Uzkv&WvTvERnn?@T}Q>i3;zR@r0!keHKx__%~ywoTO!Ufe%}_a-XK ziko8ti=%H5lML??|MJS_W4-Ir;B;b0UEfJe`4(erT~Y61i?9EL@3PtEZ|?hF;r&>e zM;;8GZu^8j?fnee91Ojzv5H%VK~vydyYLNOzpFBnUZoqgtO@ZPHactCUPL@>2LI18 z@e293;eV*j$%t2oz6H;H8{WIyN?wtRKjcYd0q}C+mgXmg*b}ZC%*>P3S@Z{=WS%-Db|J#_(uCW=82892VN4N&p0ZH&zXfz zgp9(^oZP#D`CkJ}9))K#i*KA5Nj)b%GSrC`&VinC4BwcCTv$0&K54G4$?l3DE=RUS zPar;%_~G68{;HMKW7>U+ziO5I%FjU$F9ORZ$!Gk|_(7Hpw06!Ls5pVU3{NR!PcS%$ z>mh3=ev0kwoYmZJ-SJSH6{yqM#4g%e74IMi zY+xz*xs}l0eEMAzVs7+(9lY{U*6}9R5#HIc4t;MC`V#!4a|Lz)>l$O6amJ~2+DEQo zv<~>dM}_CD_=3FmTXg?n?q6-+4|Kc#7u|o5`&Zicf6iK_QpZQWlWlB7J747~*5Xw%w<^@1aC#^yw?JtG{= z{jlLo`YISWpza{!I+$%GUDyxuhhBIZ9{c+KJ9fRpxC<7XY4VK|e79wML1UCyAjx?5 zo!+d`g{+Za_)!*m65|Mx6Blz}hz?V4{f4@l$Tq>wh2!3Q!O*o!>~m>sdh-)sraasn zVrTut&ie65TF@4@J=YX-Yj|62j_sR-S6T2H@t$;hfyOt#p!VHZW7}`)#(WNdzP-9| zLE}NjmX7@$2+e!re+OlZ+4Y0{;6Q3-Pkyi!mwEhPtc~!?^@Dxgfpyfmz6qG)6Z<6I zju;uPkPpZM^B;UcFezcbQ#d*TxgRIiK{~E%6Vaz_|DF;qB_}dk4V_If{>2>@F;h|;k18|-xq?5Hh;;qLv1|qfhRr(Pki8sPchc@ zim|rivvaz^+|Fm?UXS@~rNCVJyUAyJ7?`6Ur1RO1kIXw7oO|F86Ahf5d_1QuFMlW< zWNo}#^|0?9ZRnwF8oWE_@UP`>Vh?14;%>^|9n}u+0ABD8Ul;Evb9jgRaEd!n+vYp( zX-Fj9mdp7Tj;cdO4vjyZCMsJ7C&QH_XTm7N4^N&Jjw|Ap6epdpkFOJS^AHV3VC*HPT zhKIM+0q==v-X?fI&;y*0CWpUa;Ox+u)0UUcW)HMB)-O#pjOd52pMDH&@!aR4E#4Dt ztt^1Hgv+xWTwdhCdm;CtU(V;;mJm9(YUrh`Kvh)tcxEM^19dGLsM^MJsZD_@OZWJ_iQn=Yqz(qE z@FUDj9S&4g@EJ#+RGxC`L)sz7S8FHvqJ2i`U~l-3G!)_QtR%iTk)h}L!>hW^|ul-AC{e@cT7t8InlB`Ma zUHcBBSu6KB>Rl%fOyij$*oD0FL%mbWZ{pZgXJvq5N%v9n zF#36%8cW(wlb&^$SOj;>^2NG(y69atmF*)AG#<^Kl6*@ro~u6mq)+wFv%vpcctl^u zT)_SV&zSxE+H5=i|3=x2{@UYfMJmXQ-(+SoP^ESiOsurzGWS{BuK6}dSGRZ6~2A(^@qy?g?~&W zfJ-}eW+!vM4jh^V4pm}D*U6?H6p7-?h>?@0+?hvqpo@*e9|o`NK*!$mFmQc8l+4@Y zOXk1iOK$6ye;oLY&)9zcX#a4SwUONI00$L!A$#N=?BXc>$LK#!|8w4>jtuRU-|R~U z$12v|t~KO+=eBO|%zr=CaDaC_#Kpy}tU()V(9Rkx{~*;6EVMRet`*~;zms_{17B_dUv33oZikj@ z(>WJ?z>`p^HEEybee6${XnKRqA#u6)4uC$26Z(zR9rXRWB| z1DuG%>o%8v;KRrm6TTwVcWb=~{C!b4JTwwzuRqp|-$(m@Z{YJ8&feLJ;9*lJ84>&$ zlZ(5R*68Pg^YP|-Ws7&u8Efd^NuqHhr7&0gC+}(b}6ZV3Sw}ZsJRImxc_3~sUu~}K-(fsypO1S@FmQa}UC-$}0q4x_u4|us*B!?X z8ON%$zq&q{=f)EsZ5;B+WjQ_tdmL_Cx6{^UZ(EzvaTYzz$$js}&-kA0|H{o6gW;#( zl%?HjjL{D?X&Bad%wJ z9{wKcT)YC$sXi%UaKFg*KW}{<+$RSu)u4NW;YadAXN6Dy9eY&NxafEV-myKDypR1X z!+Y=%i}y$tx-{Rx*vxz2=}36b)3m7^*N#Vdw;_~lgjT078PpX6Q0VJtXjL$Pw>q>u z$V1C{oy7bTt7YGhF@`u}(C>d81Rc=#?7x&G=lrR}u5I!izmPrtaqp&P zo_<^T;T!pHV%?OZ@`!NJy^l?D2KRo*zl*D0+^7&7JnOf2ptF7*tY3?>e$n2o-%xk` zI(k^YsIz`nf#H|KkG6g-y<5MDp7qOj*6&QNxqMf=vEx?gDvv!rY^hZB2@#`bV1rAR zAB28Z;%`W;;a+Npz3;=lSisriVV`$`=!E^^4)%DS_$Ze>AV+?4FUtEPa;!=2x?jcm zE%EZICk7mo=H2&7Kj(Yre8%^>%T3A4jlip84Lo2Sx(s!8T>eq=9=0hyX4Td)b4~=p z;u~w2a}D*3V%5-ltxfOWcJbxj(&U__r8d3Sl=h0=>wFHq-`j&eS7YnKtF0jhU+RfV z>5<--`g=w1TRr%4r)kUAxS4D2Iz)-F`z-4h%|&lu5B2VE+P2*T*mRcX&)9d(#~J%> z>>b#5%|kNmyZAbPGPcH_jIQt}H%UI%oE&aq3?_DXMQJkjBz$rWpWtq69iQx*#ma2l zRqW6l*24NW`s0)6;ZKEig;_^^dsz9x*JcHI=GGMrr)bcD<>V-!h&u;PkNg#c?*AYO!sB z;a|D8DMa2)12pk4a_DyKBWT3UaUUD|K<6=c@rtR8H<)MF8Y9nRNAUMf&b7vmo@T}m zecG`GLu`GGHeI^=!+y>`eZ!ZG?ebyM`>@4)$(G%|WNV-O2$O^@--gH&tuk^sk`LPbmSvO28p>fycD2 zb8zPzaAz{H_~hez@w1sT!VK=zaK5_YhdV$f;Wv9U2B&1-pP%}; z!HxGZYgK0B?QQfOn!uj@4BEJoHqfuuAHW{sed`;(r0-k4WQ6{`_K?5Am&^kf`uO^? zN3Yle)%3URqAJECyC^Uh8Me@u9EC2Sn40VxZJFk;=nId^Zk*3^TgP!uZ>4aAcyi%S zz{a1&jL8}UJSu_5eBiOjfyWr&ae5E%80ElYgfIM6!GrhYV~X?Mg}@^?+JQ$@u?pZj zV}1W);33=9lS3~2{D$x|NZ&Wn_bv2|Tr_k%oW4i&(D#W>-iQ6Sn>0W6RxfRSJ!~6>%i3~!PTe0)!P2WZO?(LFM_L0 z;A%6t`U<$Z9bB#K8-6#@F9TP913wY2_9F%$dK0*M3%Gh~N%H=a$tz%8%P$kmPl}{c zC);DH%n7gCj*K4+U2?zdGWKJr+x>3YaT)E7cG^un>`(q<&2i93-;Db|ckajDU_QH` z>$ia6+stpdKN+v{Cle16W5l~r+U@%ez7_haxynke1;3PYKz@U%SG#1UT|f7pmGC}; zUy9=ue)$^zOdO7AK0$2D?Eb7P_D~r-ubRA_{uiM$gGZZ@zY_&})dS%7Dt=Gk_XzZO z^|_4ao8XH}O7S;8r?nxLrAc+~z`-@hjV52X7C!rdU_zW@ys4zvU&1=3P61|L;=eHR zZlWM#?*E6i7tB-Bm>>6|@8f4gzmK;2UWn4B%iDiOn>FJNf2)@*+CP_g1*ay%D#biq z;?zV^4)9U<8*>G;Ip8x*YE!5bG)m$cx9M7j%Bp9IX#Z`!QoDxD7kb_DNrauh$M&7Q{ht!Z{M_ht9`-C=q+y-xMPYn^cPr97?_lttQ*Waeu-g1N-j&~Y&2iYa&60a3qHBmB+diY>*U+_zJ&rabr(QvB zZ4V`XfzCjjb24@sa(Fy)xH7-EWg>ETl8?MrU-C$8zNx!^B#_UUaMa^3%MULc&u3Ad zIV0{!Wgfq&&%Y+muEBpkdSW5+o4mhhF7mi9^0)wbyn?>V;78|M?9 zFW-}L{zA_z#b2Yk_!M|=FnatQzU1S`-i#d4@43Ds>1kHuM-_@m3O%FTHud3K3_KJE z)X!H}Np0N9sI_wyu|R8RM`s4iMTW1X{)S*+U;|9%7Xce!AsC%T&DPN;`XXb;_#>@_ zoC|{f^doG`8skf%egn^!e@V6-Yv#16{vWjMPb2q2!aXmI=biqkbZX0rTzFz$k9>AK zZ3fdgxg&V3Q*-ASIH@uInZ1KeevVQuYbF=M$;sQmlx**$-3j zC~Ko?V73&gep;Xt8*iq|vwzFjE7JV0J~%V)80%>n8_$M;{XH!^o!{NYKd0OHe=l6} z{JHfABHik5q!>H)S}{+X+#!RHBZ|V6AMU=l8JlJ$_-XMQeWE@X8W-;4od02-`|Xf$ zCA6C$UP82IY`9JGF(jT}3%$sG%DDdFtb28R*@wgKeKD2V__B5QJk$RAvG6K;-T#%` zzktKgyV+^cQ8^)-aw64GmkWH^CedI?j4D zYgB8miQ0)@^I^jw+8N{zCEs0Rg;)3ob*>^8>)j$NJj8D$RZB$6;0xHvH1|Dz)|oSff+)APWodp!fu*RkN;&;z{h`3&$r)SPGhZ}(j;|6897 z|68ommyFKxB~!>S$vmBDEdH*~JKsiDmVsN<{k0DDLF>$LjD6uKwsouwd$*JC@WR0j zoDpJSb5XZ1fq$eNoUDK!sHV{ae}O*~AZrKvl1soJW22Xal6TQ|96yR`0+J8Ep`7O{ z_#T@fzEs#aRQvU&Uf+oDi^OwzbXxY(iVY9(ju|>#FPlnzMd|B@z&?Q-jv|L*Mfh|d*&bfk~9B_q2#|9*fL+f7kHjoG7LRpg8J+0zdUzbWdkkDZSNeI>4@k84N!o|68(2_7-kpZ;CLzL|6l;bsZ@d_mwF8wzd>^CiobOL2G{{PfOe;yfe%tC*&a zk3MSf;z<*z4ZV0Uz}Fh|kOhF7Ssa_pUw8dL#;8(zCjsdkSa%jV9hM zNQ?@+Fm)v{fxt_(s}=v%Ug;0-;Zu6&82FQSY%cG3A6_ULJ{Equva27ltQF1~4>9>; zX4-Y>yzScbnU-C8$%+>N4JsUfG5WH~Jy=Z4~>~mE+rcG2TtUYBO*Y zKFR;uf-Tib?A^P-Zv=b4QQ#LnO8d|DqWv`Ay36pbBb7Ek^YSep=U{r_V)K(TyZFhE zdjS_$znJ%D^b73q5W1uBdqXd=8Q3`BKsEF-eRFDNVj47->r3jq&l2=z&I&U?H=0yKVM+`wX9`#dt>Vt*#4p(+W*yOY(F15^xDV&hJJ^A zxWV>Kkk{$Pc44<{3e5WBxDTBx?seP8eM=K9U&g=5{WYrJM0 z9Vc{+V>aU`?LH3oxtdeDp4-B6le;}f+{Qs`WnQ=fpMX z|EaSsvSsxr`a9HYpZA$>&Sx0ZWiy-n#9Hj#|_GZFnEylNY*^#c^cHzh9k}Df0bY&NBv|%k26j z5$YFyTrf0^&&)u9a5Jn`W+KCWn>BvXW<4A!}D7hu7d&yU17b<{#%MFH0~GEPde|)=BUe zu2u-|Mhp$d`^v`CwZg`K0Y-7)qkUvuixq}U9EEZWR3pmNL`mhQ?MC3P^UZAEYoPI- ze|*p|(#>-gzC%X_7k_$uxB@;BUn765U3YF#_QwsY@lj{sgZ2?`4upp@jx6T1iu+Nn zSzI%Grp&Hqk+BAYZ9X%x+d7EPm>5ilzsNs?ah~BXb8D%hn{DtLd(qbzQoc0&*1+}w zo36U*)&ZlK;I{3!@KDBRkI9h->kht1|LEfxP;IP&98~PLw|D zIS*5xk8mEQJ~;<7%G#%X%6)xuK4!T-f5ClyZs0yVCiNTpoT-$~)6{RBr>W1yK08xsS_(tko?(6d~_w`9`_!8Q;YX$}ycjMpNL#*=>cpUYc zie+=g|B;&61|79SD;?MPie+~azgEALwftYKV;gJI4!`ZVrlj~W@gLU1_ILNZCZ>k( zQ`T);p`Ette8p|Ee8oBRwVSbMF82WYoCWhH>-S3Lp!!GRtu65E7(AwMMBopKp-)^# z4O?inmG6tc^ie}$mi6=qp8vG|qwo*;wG6L^pXc`ik80p`qZwn9WyAB+`jF11TFB&G z?2H3DWOG;EeYxeU6WTo(>awyLPd4=(zuwm~03a7TDk%5!btORJfG z8fRX84_^gyBi62XFY`RjtoLb?pWw_~#=Lzkw9h`;L(_fPb@Des!agV0I+y$d2tG3Li;ln?B->vUr@{m~5Z}z574_|+TeJ6MS zFHEestp$sNxlm^UUBNbDxOTWJ+h3BAl{?>LE57(U`}UQ0r<-IF;@2Wylk5Wwtjfu z{W-{%S?ElD;m&w?8+@kC=xEB(vHfc{pF1NwTsS)(oJBuVtviifwI8C4eGlWleqeqb zXPbA8yDu@5b&Pu~`4{sRjP;DWk2CI^#-SPGMh~T}R{CAb*e{}f$6WNKY)2oq`KevM z#PEY=ThEXWzlCwzI*!I|+ZvT2H*Yqpa~$(yPd_=2_S)cM%122cm!+2~2fCeiOr9~H zN9)J%TbCC(eW!G02xmDzv0(mW0^Rtyh2a71jsdCVAfi>=d^k9k;`U zA@W?gEP2bUorT}`Rb9&Y(P?`5xIazM%rJ>)e09GFTzxcZ88 znmQ0Np-!{LQ1+iso2bqnG|>vQsn3J_lGd z^RxFq^61=|ZFcp|Tx54iKH2z|sVkbeg2BLMC~yHbg7fVjILppR3}(HDvfj)^dV%2X z{<-jvK${;IoZJO}`NOl=c{i#bP`gw9X~gJoL;G;EnI^&01hC`yt9Rg1dCf5Pg@>_u|E= zhNbx9rSo;NegUhdxDwe?eS@zmLB6oAYp+fH8C=o2BF9Ao;+>+WBKlW-F7;`6pfiRF z`d7cwS=G1N(L1vl&%fP5EDE~5_6R0!PBo-bS&?tBwn6kQ#XiQsN8u%FyWaZ!`Sw}H zMd`IYwWqbMb=Ho)OuwSVDac)SZQc8t3plCz3}(%p>w}zeOzL?Y2Q7>JO8if8&p5J< zHI7`?vM*~|VB^jHE7SBTypav-wJ#Q$`m34tY5W@ArT(ctWn;+JkgYnM^Q>#hhc$45 z2IAM)bz0CNU#Nyx_>f7;?N}<@2xN8X8l~>uDfh%nrEALW7Cg?S%`(-|gf3U0*Nm4g zF(vdu6YW*7-nv%9XH5J87+%17rukQzI1w`Axh*=Uzd z3@<@9jwjOVy8gW$Xx6cDOqgQV`k!J2&^hZw@s(=Sf_k_=wE&BwC+E4!(#E(1Z`?73wE$x03tbAYXbHc=e=} ze1KT`LgdN;&IEgXb8+}}^4@<4PMF`Z;_z>MR`OTmAiYi=^Bc&1a=y=fhiBjMeI>k~ zdws!)cjTYrTB-FFcvk<$p~U3GIU_?kP4W-A@9zVr_k+v(z}?Hx1Ag$WQ1MfPLJuAE z-S*5ceYZc<!`yc#?#`6yNDt@PPtW{&~9sb43+_v=Fy{DLh_&ST+1ACsDFEK{R zw&&pC%)jL+&e;YJ_pyeW|K1slgEd{RzM+T0Z&Nb^JU^5jN}fm`b`E&~>)F5Y_az@S z#MVGN>%eQ~)AAI2|5@bxbJ&J2BI}#blbX?+XHbuEJ2fxCqy0skf8xOG9r)2fXyTA~ z;tF^lICQpuaNXI&=*+SPb)rknRR4#V&uIGYI&a`6(HyY=w-DRF`2#CWd=UHNm4Wbl z&f1im-DL8?&$RtB%~{4T|M&5sWL1t8);QF+#^TMv>CGJ6v72#^w~~U*-+|3Z-C*;B zFA6q{`R@*VruYYU-j99eU4ukmP~$@(ofk(uDSevUx-u*I0dT)4z}oPxd?ZoUBgT5v z;74i!=A31HXfu1xY=flLe$rt~GKU{*ZIG*5Khg>^m<6#TmA8Q>qYl!?{4WqYO$=L0@<5|al zymRz*^u|#1rmgrf+Un!b_&#X#0ciXIX#6s0-28^d@Ap~B-$L8JfVRywXuFPU@*nK; z(Dr^~m-KBcBz7xKodwalduFogw@-(rXF$_8KvzG2rWZle)zI{lz6T6V>umTu+Ux|^ zU$9J@X~?cMMuwdJMQ9K(2y+VfDM0 z{?+%f=uhJ^x)bA)oOkD}npM=}EsmO8HhbQ`(!6OuuKLvA^HKTIQRY3x8qkRW44w5c za1{Lrrq55Y>1-VB_lCZL*m0W<=Vs)uiZ{CR(0YAVT%K?Ym~QdZp||ySoA0GkeW7h~ z^}tc-Hd|<;i?(M$f0b$4e$jhxKGzo+{bap0XHeK@^b_L79AEj$6#5D4@oBW|KgO85 z%XZhcaBDbsu-1FvvwOkyPVirHYCrfd9pIanXX=n%+oKJOc>?F_33u+~e3X>#${>AYQNo+bBQz?OlC{7aT{tU?cH@ zW2wO++e0;S^TE%;?_1y93|*i53;PTi+dikZ7-MO_5}g5<%MYCOP4*khOOk71DV9k-Na@v0oa05jhVe;8ff3g>v=NuX{(ucDb8h5_@c1OK=xgUh zu?Iq&sC#Cvs{;&h&W^R=qxRLF>cEye{Zz0{(yNwJBc#3NIQhVn?dYuu=CqLg-0RuT z70+8n%^$t5?~G@NcaF8lyUO*x@F;Q-epm-yUWZJZ#++#5ap18I*sKON-sjw!EO+bq zYj_^H-KFDP2mFw!Z?V?d*b8g1168vrDtUPg_mHzYy!Viy(c7(LjpXj1CWR{)M;v{~ zrPYlef7GC{w1QWy=nAcp=ga96+3m%xp~t|jqs{kg-RBFAtOH+GgD*YJ_u^yB_fhYh zy3O|y?>%R};8ndf{DiR12ldYPwqDNn?fplmC8I;GJS$9`YrW!J4NrCG4Bmd8!53?= z!IwSY%WL4tcJM{`fet&QLiQ0bFRQs+=Ovt1w)FC1`~{QZtbuaxyVLda#~6#-PA$4g z*#_G5AAT+i-cyaQNpS^gGmehc6Tet}jCNg{)jPLEUG?|+n6_`A=H7Rxxp(u_P~_mW zWHJeSsKs{4cg&S+&F3t_JV876S+E z>%PWO=<14R+;s3r13AUiMzC{=??LBkyW03^jISoaciRtaHNH&zhWx+c8SXkr@0T8I z=o=dDU`_S_|8d_hNshmbIB~`yn`=7r!xs=P|9HNQMFzXP;$BkkPJ9@;$GnT1bui{bV5-lE39oOWnVbmh2YS=ik9^S686#`nALy zx6VTTR?;VaiMIKCHuH&2VDCxDuE!sr@Q0J}RKv<6sSP;%438|q7FQid#Z4F-#b=yZ zzi~KtbP9O%CA)s(5oCNjGCBdwS-btL-7M-(#qbNumK7|#IQmO;$0lDN6BqHF+ipDk zApa@f08<+%PTw7WNAG(d9)2X0)R{A{^ZagV2fYSPK6Tr74)0j}9nK3XFwft?ec{3b ze3qK^w4eLcZL<#-@b9+!74A==uG(}y$9AKU@n?r3XB3x2CX|#$I-fl;vj4@CBJVVx z92pM|b?!!Y+0MLPA>ZAX+eIUqQ*7OepGc^QnTp zyu1&hxr!SGaBm2bDS9!O-5^KP# z6|4n#?QQda&t+ZUapJA5u zXEqp@7(-H*Sv-Y2 z+xzi96k?O;y7G~9t#rJ-w;meet5aNiC}8Jc#&zxz*TysVgk_v zX}2G7*EI#$>dyk#=g^C2ThAiMj==8TyFg_VrOOHu#znt}|01mSm$I!Nq8xjwb z_rA+-Y5*L$8XabED3Tc5&$-6;hx7S;S>(vW_A?1+paOflMzL;|&f4*Ze~eukApRym z9U9BzI-VV_Ar4Xe-~6tb5Wa)oOO*HOzK?Z^si`CKl5joA#CE<7wYTd@DH=iAnAp&JWLE4$|d)j3Ek*=z9!0i9sjPiPW`n z<|mn?*e181_BYVaX;0($GUGfdt#DuS(i+>(Wa8bY;iYUW_Fw8t$^9*3olS1va^_QK zYQR&o0U1@475>Iv&BLbEW_0(;5oe)O2oCOEo=v+3_kddveDva}ZBOKNUXLBH2Y=9g zZ$~8St!Wz`YE(-ws~iY8kwizd*RHeRScs_SD;eeG9N}eTy~0m-9F1BLtpG zH`q-3apaR?xv*JhMsIh{rQlOI)xubpGS;s%)>Anbax1kYww4nUMO;nC`Lem-l~ecx zKV6$9ADc$;Jngrjn-S0RTXfh2-&^EA$B*RYU&}LlTub>vUE9aImbPvXXgtWc#DkBf zZy(J^DH(L`C7+Z*Zd}CCe3REAqu?K1f3|7gq!dQT#xQFZ+IxOfP91N$v0>#%p=zzpIn1Jk$LzB+pYr-fNwiEbuW7#dA`A6 z)+yO1TfWOaovX0Bv=6bAb_FA&bHW2+;+ciu8rLMRg!i-P?{eZ{<+~jX?khGVXN>I& zeS*)(DCINcn3x#x_